如何根据客观跟踪模型和CMI数据评估SCORM规则条件?

问题描述 投票:0回答:1

我正在开发一个 SCORM 包,在交付活动之前,我会根据目标评估排序规则中定义的规则条件。据我了解,

sequencingRulesCheckSubProcess
处理基于目标跟踪模型的规则条件评估。然而,我在这个过程中面临一些挑战,希望得到一些指导。

<item identifier="etuqiette_item" identifierref="etiquette_resource">
  <title>Etiquette</title>
  <adlcp:data>
    <adlcp:map targetID="com.scorm.golfsamples.sequencing.forcedsequential.notesStorage" readSharedData="true" writeSharedData="true"/>
  </adlcp:data>

  <adlcp:completionThreshold progressWeight="0.3"/>
  
  <imsss:sequencing IDRef="content_seq_rules">
  
    <imsss:sequencingRules>

      <!-- Check it out, we can sequence off completion in 4th Edition-->
      <imsss:preConditionRule>
        <imsss:ruleConditions conditionCombination="any">
          <imsss:ruleCondition referencedObjective="previous_sco_completed" operator="not" condition="completed"/>
          <imsss:ruleCondition referencedObjective="previous_sco_completed" operator="not" condition="activityProgressKnown"/>
        </imsss:ruleConditions>
        <imsss:ruleAction action="disabled"/>
      </imsss:preConditionRule>
      
    </imsss:sequencingRules>
    <imsss:objectives>
      <imsss:primaryObjective objectiveID="ettiquette_completed"/>
      <imsss:objective objectiveID="previous_sco_completed"/>
    </imsss:objectives>

    <adlseq:objectives>
      <adlseq:objective objectiveID="ettiquette_completed">
        <adlseq:mapInfo targetObjectiveID="com.scorm.golfsamples.sequencing.forcedsequential.ettiquette_completed" readCompletionStatus="true" writeCompletionStatus="true"/>
      </adlseq:objective>
      <adlseq:objective objectiveID="previous_sco_completed">
        <adlseq:mapInfo targetObjectiveID="com.scorm.golfsamples.sequencing.forcedsequential.playing_completed"  readCompletionStatus="true" writeCompletionStatus="false"/>
      </adlseq:objective>
    </adlseq:objectives>
  </imsss:sequencing>
</item>

以上是我的第二个SCO。在完成第一个 SCO 时,我触发了一个导航请求来检查第二个 SCO 是否可交付。

活动交付前的规则条件评估

在交付已识别的活动之前,我会评估排序规则条件。这些条件根据目标进行评估,目标跟踪信息是根据 CMI 值初始化的,例如:

  1. cmi.objectives.n.success_status
  2. cmi.objectives.n.score.scaled

但是,我在运行时没有收到这些 CMI 值。没有它们,我无法正确初始化跟踪模型,因此规则条件的评估会失败。我需要明白:

运行时何时传输 CMI 值(

success_status
score.scaled
)?我什么时候可以使用这些值?

我应该如何使用这些 CMI 值针对跟踪模型评估规则条件?处理接收到的 CMI 数据并使用它来评估与目标相关的规则条件的正确流程是什么?

如果您能深入了解 SCORM 中 CMI 数据的正确排序和处理,尤其是在交付活动之前评估规则条件,我们将不胜感激!

scorm sequencing
1个回答
0
投票

(警告:我不是 SCORM 2004 测序模型的用户[或粉丝],所以我可能完全错误。)

TL:DR; 这两个是独立的过程,你不会使用CMI数据来影响测序。

  1. CMI 数据存储在 LMS 的数据库中,并在 LMS 启动 SCO 后通过基于 JavaScript 的 SCORM API 提供给 SCO(通常是 HTML 文件)。

    作为课程开发者,您可以查询 CMI 数据(例如

    cmi.objectives.n.success_status
    )的唯一地方是来自当前开放的 SCO,因为它是唯一向您提供 SCORM API 的地方。

  2. 排序规则以 XML 形式编写,并由 LMS 进行评估,以确定在 LMS 的 SCORM 播放器中打开哪个 SCO。 LMS 负责查询完成数据并在后台处理排序规则。对于 LMS 如何处理 XML 没有指定的标准,唯一的要求是处理/排序的结果符合 SCORM 2004 规范中定义的期望。

    作为课程开发人员,您没有对此流程的脚本访问权限,您只能使用基于 XML 的清单中可用的选项。

有关 SCORM 2004 测序和导航的更多详细信息,请访问 scorm.com https://scorm.com/scorm-explained/technical-scorm/sequencing/

© www.soinside.com 2019 - 2024. All rights reserved.