在 SCORM 2004(第 4 版)中,为什么选择导航到群集 activity 会更改当前 Activity?

In SCORM 2004 (4th ed), why does a choice navigation to a cluster activity change the Current Activity?

SCORM 2004 第 4 版伪代码处理选择请求的情况(SB.2.9,第 12 步以后),如下所示:

If the target activity is a leaf activity Then
    Exit Choice Sequencing Request Process (Delivery Request: the target activity; Exception: n/a)
End If
Apply the Flow Subprocess to the target activity in the Forward direction with consider children equal to True
// The identified activity is a cluster. Enter the cluster and attempt to find a descendent leaf to deliver.
If the Flow Subprocess returns False Then
    // Nothing to deliver, but we succeeded in reaching the target activity - move the current activity.
    Apply the Terminate Descendent Attempts Process to the common ancestor
    Apply the End Attempt Process to the common ancestor
    Set the Current Activity to the target activity
    Exit Choice Sequencing Request Process (Delivery Request: n/a; Exception: SB.2.9-9)
    // Nothing to deliver.
Else 
  Exit Choice Sequencing Request Process (Delivery Request: for the activity identified by the Flow Subprocess; Exception: n/a)
End If

看起来这意味着如果目标 activity 解析为集群 activity 但流子进程找不到任何可用的后代叶 activity,当前 Activity 仍然被修改并且排序请求“成功”尽管返回异常。

在这种情况下,LMS 的预期行为是什么?集群 activity 无法交付,但这会终止前一个 activity。 LMS 是否应该简单地提供一个空白页面而不是 activity,并希望学习者可以使用导航控件导航到另一个 activity?

整体排序过程的定义没有指定应该如何处理异常,但考虑到此行为设置当前 Activity 并且所有后续请求都将引用该请求而不是之前处于活动状态 activity,显然需要发生某些事情,否则 LMS 将卡在不一致的状态。

你对伪代码的解读是正确的。与其他流程事件相比,选择有点特殊,但终止步骤和向用户显示“请 select 来自 activity 树的 activity”屏幕可能会在几种情况下发生.唯一有点独特的部分是当前 activity 的设置,这使得用户可以 select 从他们最后一次有意选择开始的其他流程导航事件开始,而不是从之前加载的任何内容开始。 Current Activity 在集群上并不罕见,如 SN-4-18 所述:“在终止行为期间,对当前 activity 的所有祖先进行排序退出操作规则评估– 这是在排序退出操作规则子流程中完成的。该子流程的结果将是“刚刚终止”的叶子 activity 仍然是当前 Activity,或者叶子的祖先 [=21] =] 成为当前 Activity".

你也说得对,OP.1(“整体测序过程”)对这个话题只字未提,甚至说“未指定行为”。对于无效的排序请求。我相信最常见的选择是前面提到的“请 select 来自 activity 树的 activity”样式屏幕代替可见的 SCO。

该规范非常努力地将 LMS 显示选择与排序本身的操作方式区分开来。 SN-5-3 指出:“SCORM 对在 run-time 向学习者呈现的用户界面的类型或风格没有强加任何要求,包括任何用于导航的用户界面设备。用户界面的性质和机制捕获学习者和 LMS 之间的交互是有意未指定的。外观和感觉、演示风格和用户界面设备或控件的放置等问题不在 SCORM 的范围内。“

但规范中另有说明了一些有启发性的内容。页 SN-3-6 声明“如图 3.2.1c 所示,选择导航请求 (Activity B) 的目标具有定义为 False 的排序控制流。在这种情况下,没有 activity 可以识别交付(无法交付集群)。因为 Activity B 将排序控制选择定义为 True,LMS 应为学习者提供某种机制 select(触发导航请求for) Activity B 的 children 之一直接,但不是 Activity B."

虽然这没有明确说明应该向该 SCO 区域的学习者显示指导性文本或不应允许选择,但它确实说明应该做一些事情来引导学习者进入故意执行另一个步骤来启动其他东西。同样,这不是完全相同的用例,但它可能是与选择相关的最接近的用例。