 |
IMS Simple Sequencing
Information and Behavior Model
Version 1.0 Final
Specification
|
Copyright © 2003 IMS Global Learning Consortium, Inc. All
Rights Reserved.
The IMS Logo is a trademark of IMS Global Learning Consortium, Inc.
Document Name: IMS Simple Sequencing Information and Behavior Model
Revision: 03 March 2003
IPR and Distribution Notices
Recipients of this document are requested to submit,
with
their comments, notification of any relevant patent claims or other
intellectual property rights of which they may be aware that might be
infringed by any implementation
of the specification set forth in this document, and to provide
supporting documentation.
IMS takes no position regarding the validity or scope of
any
intellectual property or other rights that might be claimed to pertain
to the implementation or use of the technology described in this
document or the extent to which any license under such rights might or
might not be available; neither does it represent that it has made any
effort to identify any such rights. Information on IMS's procedures
with respect to rights in IMS specifications can be found at the IMS
Intellectual Property Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.
Copyright © IMS Global Learning Consortium
2006. All
Rights Reserved.
If you wish to distribute this document or use this
document
to implement a product or service, you must complete a valid license
registration with IMS and receive an email from IMS granting the
license. To register, follow the instructions on the IMS website: http://www.imsglobal.org/specificationdownload.cfm.
This document may be copied and furnished to others by
Licensee organizations registered on the IMS website provided that the
above copyright notice and this paragraph are included on all such
copies. However, this document itself may not be modified in any way,
such as by removing the copyright notice or references to IMS, except
as needed for the purpose of developing IMS specifications, under the
auspices of a chartered IMS work group.
Use of this specification to develop products or
services is
governed by the license with IMS found on the IMS website: http://www.imsglobal.org/simplesequencing/ssv1p0/ssv1p0seclicense.html.
The limited permissions granted above are perpetual and
will
not be revoked by IMS or its successors or assigns.
THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY
WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS
EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE
ENTIRELY AT THE IMPLEMENTER'S OWN RISK, AND NEITHER THE CONSORTIUM, NOR
ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER
TO ANY IMPLEMENTER OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE
WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF THIS
SPECIFICATION.
Table of
Contents
I.
Introduction
I.1
Overview
I.2
IMS Simple Sequencing Components
I.3
Simple Sequencing Specification Sections
I.4
Assumptions
I.4.1
Activity Tree
I.4.2
Sequencing Loop
I.4.3
Rule-Based Model
I.4.4 Default
and Authored Behavior
I.4.5
Objectives
I.4.6
Auxiliary Resources
I.4.7
Presentation and Environment
I.4.8
Suspending and Resuming Activities
I.4.9
Starting and Stopping the Sequencing Process
I.4.10 Data
Persistence
I.4.11
Content Types
I.4.12
Active/Passive Content
I.4.13
Relationship to IMS Content Packaging Specification
I.5
Nomenclature
I.6
References
SM. Sequencing
Definition Model
SM.1
Sequencing Control Modes
SM.2
Sequencing Rule Description
SM.3
Limit Conditions Description
SM.4
Auxiliary Resource Description
SM.5
Rollup Rule Description
SM.6
Objective Description
SM.7
Objective Map
SM.8
Rollup Controls
SM.9
Selection Controls
SM.10
Randomization Controls
SM.11
Delivery Controls
SM.12
Sequencing Description
TM. Tracking
Model
TM.1
Tracking Information Model
TM.1.1
Objective Progress Information
TM.1.2
Activity/Attempt Progress Information
TM.2
Tracking Model Behaviors
AM. Activity
State Model
AM.1
Activity State Information Model
AM.1.1
Activity State Information
AM.1.2 Global
State Information
AM.2
Activity State Model Behaviors
OP. Overall
Sequencing Process
OP.1
Overall Behavior
NB. Navigation
Behavior Model
NB.1
Navigation Requests
NB.2
Navigation Behavior
NB.2.1
Navigation Request Process
TB.
Termination Behavior Model
TB.1
Termination Requests
TB.2
Termination Behavior
TB.2.1 Sequencing Exit
Action Rules Subprocess
TB.2.2
Sequencing Post Condition Rules Subprocess
TB.2.3
Termination Request Process
RB. Rollup
Behavior Model
RB.1
Rollup Behavior
RB.1.1 Measure Rollup
Process
RB.1.2
Objective Rollup Process
RB.1.3
Activity Progress Rollup Process
RB.1.4 Rollup
Rule Check Subprocess
RB.1.5
Overall Rollup Process
SR. Selection
and Randomization Behavior Model
SR.1
Select Children Process
SR.2
Randomize Children Process
SB. Sequencing
Behavior Model
SB.1
Sequencing Requests
SB.2
Sequencing Behavior
SB.2.1 Flow
Tree Traversal Subprocess
SB.2.2 Flow
Activity Traversal Subprocess
SB.2.3 Flow
Subprocess
SB.2.4 Choice
Activity Traversal Subprocess
SB.2.5 Start
Sequencing Request Process
SB.2.6 Resume
All Sequencing Request Process
SB.2.7
Continue Sequencing Request Process
SB.2.8
Previous Sequencing Request Process
SB.2.9 Choice
Sequencing Request Process
SB.2.10 Retry
Sequencing Request Process
SB.2.11 Exit
Sequencing Request Process
SB.2.12
Sequencing Request Process
DB. Delivery
Behavior Model
DB.1
Delivery Behavior
DB.1.1
Delivery Request Process
DB.2
Content Delivery Environment Process
DB.2.1 Clear
Suspended Activity Subprocess
UP. Utility
Processes
UP.1
Limit Conditions Check Process
UP.2
Sequencing Rules Check Process
UP.2.1
Sequencing Rule Check Subprocess
UP.3
Terminate Descendent Attempts Process
UP.4
End Attempt Process
UP.5
Check Activity Process
E.
Extensibility
E.1
Extensibility of Information Model and Behaviors
E.2
Extensibility of Bindings
C. Conformance
C.1
Behavior Conformance
C.2
Binding and Interchange Conformance
G. Glossary
UC. Core Use
Case Descriptions
UC.1
Boeing Fuel Valve Removal Use Case
UC.1.1
Terminology
UC.1.2
Content Structure
UC.1.3
Narrative Description
UC.2
NETg Precision Learning Use Case
UC.2.1
Terminology
UC.2.2
Content Structure
UC.2.3
Narrative Description
UC.3
Click2Learn Blended Content Use Case
UC.3.1
Terminology
UC.3.2
Content Structure
UC.3.3
Narrative Description
UC.4
GIUNTI Conservation of Paintings Use Case
UC.4.1
Terminology
UC.4.2
Content Structure
UC.4.3
Narrative Description
About this Document
List of
Contributors
Revision History
Index
I.
Introduction
I.1
Overview
This document, the "IMS
Simple Sequencing Specification," defines a method for representing the
intended behavior of an authored learning experience such that any
learning technology system (LTS) can sequence discrete learning
activities in a consistent way. A learning designer or content
developer declares the relative order in which elements of content are
to be presented to the learner and the conditions under which a piece
of content is selected, delivered, or skipped during presentation.
This specification
defines the required behaviors and functionality that conforming
systems must implement. It incorporates rules that describe the
branching or flow of learning activities through content according to
the outcomes of a learner's interactions with content. This
representation of intended instructional flow may be created manually
or with authoring systems that produce output that conforms to this
specification. While learning content developers need to know how to
create and describe content sequences, authoring systems may hide the
details of the models presented in this specification. The
representation of sequencing may be interchanged between systems
designed to deliver instructional activities to learners. The
components of an LTS used to execute the specified rules and behaviors,
when content is delivered to a learner, are referred to in this
specification as a 'sequencing engine'.
Simple Sequencing
is labeled as simple because it includes a
limited number of widely used sequencing behaviors, not because the
specification itself is simple. Simple Sequencing is not all-inclusive.
In particular, Simple Sequencing does not address, but does not
necessarily preclude, artificial intelligence-based sequencing,
schedule-based sequencing, sequencing requiring data from closed
external systems and services (e.g., sequencing of embedded
simulations), collaborative learning, customized learning, or
synchronization between multiple parallel learning activities.
Simple Sequencing
recognizes only the role of the learner and does not define sequencing
capabilities that utilize or are dependent on other actors, such as
instructors, mentors, or peers. This specification does not prohibit
usage in contexts involving other actors; however, it does not define
the roles of other actors or sequencing behaviors that result from
participation of other actors.
Simple Sequencing
enables digital content to be rendered and presented to a learner in a
Web-based environment; however, it is not restricted to a Web-based
environment. The nature of the control and communication interfaces,
and the mechanisms for mediating interactions between a learner and a
LTS, are not part of this specification. In addition, issues such as
look and feel, presentation style, and placement of navigation controls
are not defined by this specification.
Simple Sequencing
provides an external representation, via extensions to the "IMS Content
Packaging XML Binding" [3], to exchange
sequencing descriptions between different runtime components or LTSs.
Although the Simple Sequencing Specification is based on the same
content organization and tree structure as the Content Packaging
Specification, Simple Sequencing does not require Content Packaging.
However, Content Packaging is currently the only defined mechanism for
exchanging definition model instances.
I.2
IMS Simple Sequencing Components
Simple Sequencing is
described in the following set of interrelated documents:
- Simple
Sequencing Information and Behavior Model (this
document) - This document is the normative reference that defines the
behavior and an Information Model consisting of a Sequencing Definition
Model, a Tracking Model, and an Activity State Model. It is written for
implementers of sequencing services and authoring tools.
- XML
Binding [4] - This
document describes how the Sequencing Definition Model is represented
as extensions to the organization component of the manifest of the XML
binding of the IMS Content Packaging Specification.
- Best
Practice and Implementation Guide [5] - This document
describes implementation considerations for those implementing the
behaviors described in this specification.
I.3
Simple Sequencing Specification Sections
This specification defines a
small subset of all possible sequencing operations and the
informational elements required to describe the desired operations and
their parameters. To enable interoperability, systems that deliver
learning content must be able to interpret the sequencing information
and exhibit the behaviors defined in this specification. This
presentation is divided into several sections, each section being
standalone and describing one part of the Simple Sequencing
Specification.
- Sequencing
Definition Model - The information model in Simple
Sequencing used to describe the desired sequencing behavior (see part SM).
- Tracking
Model - The information model in Simple Sequencing used to
record information about the results of a learner's interactions with
activities, and the learner's record for objectives (e.g., completion,
measure) to control the selection and sequencing of other activities
(see part TM).
- Activity
State Model - The information model in Simple Sequencing
used to record information about the state or status of a learner's
interactions with an activity and a set of global attributes for
activities (see part AM).
- Overall
Sequencing Process - The overall Simple Sequencing process
that relates the selection and randomization, navigation, sequencing,
exit, rollup and delivery processes (see part OP).
- Navigation
Behavior Model - The Simple Sequencing process that
evaluates a navigation request and determines the sequencing and
termination requests that should be processed to identify and deliver
content to the learner (see part NB).
- Termination
Behavior Model - The Simple Sequencing process that
evaluates a termination request to end an attempt on an activity (see
part TB).
- Rollup
Behavior Model - The Simple Sequencing process that computes
the results data for an activity from the results data from the
children of the activity (see part RB).
- Selection
and Randomization Behavior Model - The Simple Sequencing
process that selects and reorders a subset of activities (see part SR).
- Sequencing
Behavior Model - The Simple Sequencing process that
evaluates a sequencing request in terms of the content model described
by the activity tree and determines what actual content object should
be delivered to the learner (see part SB).
- Delivery
Behavior Model - The Simple Sequencing process that
validates that the learning resources for the identified activity may
be delivered, i.e., all of the conditions that apply to the delivery of
the content for the activity and attempt still hold (see part DB).
- Utility
Processes - Sequencing processes that are utilized by
multiple behavioral models (see part UP).
- Extensibility
- The extensibility mechanisms in Simple Sequencing (see part E).
- Conformance
- Requirements on an implementation to conform to the Simple Sequencing
Specification (see part C).
- Glossary
- A collection of terms used throughout the Simple
Sequencing document set to describe parts of the information models of
sequencing behaviors specific to this description of Simple Sequencing
(see part G).
- Use
Cases - A collection of sample sequencing cases used
throughout the Simple Sequencing development process to guide the
selection of features and functions (see part UC).
| Section
|
Mnemonic
|
Introduction
|
I
|
Sequencing Definition Model
|
SM
|
Tracking Model
|
TM
|
Activity State Model
|
AM
|
Overall Sequencing Process
|
OP
|
Navigation Behavior Model
|
NB
|
Termination Behavior Model
|
TB
|
Rollup Behavior Model
|
RB
|
Selection and Randomization Behavior Model
|
SR
|
Sequencing Behavior Model
|
SB
|
Delivery Behavior Model
|
DB
|
Utility Processes
|
UP
|
Extensibility
|
E
|
Conformance
|
C
|
Glossary
|
G
|
Use Cases
|
UC
|
The sections are
intentionally independent so that an implementer or reader has all the
information related to the topic and other key information needed to
interpret and implement the corresponding part of a Simple Sequencing
system. Each section may include:
- Information
Model - The detailed description of the corresponding
information model (the Sequencing Definition Model, the Tracking Model,
and the Activity State Model). Each information model is divided into
logically related sets of data attributes. Each set describes the data
items in a binding-independent fashion.
- Behavior
- The detailed description of the behaviors and procedures
that describe the parts of Simple Sequencing (for each of the behavior
models). Each behavior includes one or more process descriptions in
pseudo code.
I.4
Assumptions
I.4.1
Activity Tree
The Simple Sequencing
Specification relies on the concept of learning activities.
A learning activity may be loosely described as an instructional event
or events embedded in a content resource, or as an aggregation of
activities that eventually resolve to discrete content resources with
their contained instructional events.
Content in Simple
Sequencing is organized into a hierarchical structure. Each activity
may include one or more child activities. Each activity has an
associated set of sequencing behaviors, defined by the sequencing
definition model (see Sequencing Definition Model SM).
The sequencing behaviors describe how the activity or how the children
of the activity are used to create the desired learning experience.
The sequencing
behavior process (see Sequencing Behavior Model SB)
traverses the activity tree, applying the sequencing rules, to
determine the activities to deliver to the learner. Content resources
from the identified activities are delivered to the learner to create
the desired learning experience.
Simple Sequencing
makes no requirements on the structure, organization, or instantiation
of the activity tree. The tree and the associated sequencing
definitions may be static or they may be dynamically created. How to
create, represent, and maintain the activity tree and associated
sequencing definition is not specified.
I.4.2
Sequencing Loop
The following sequencing
loop describes how the various behavior processes interact during
sequencing and delivery. The description assumes the activity tree
exists and has been initialized.
Begin Sequencing
Session
- The
learner initiates access to the content delivery environment or LTS
(e.g., accesses the system, logs in) and establishes a context within a
particular unit of instruction (e.g., selects a course or content
aggregation).
- The
LTS initiates a sequencing session by issuing a "Start", "Resume All",
or "Choice" navigation request.
- The
navigation behavior translates the "Start", "Resume All", or "Choice"
navigation request into the corresponding sequencing request and
processes it. The sequencing session 'officially' begins when an
activity is identified for delivery (successful completion of steps 4
and 5).
Start of
Sequencing Loop
- Using
the information in the tracking model and the sequencing request, the
sequencing behavior traverses the activity tree attempting to identify
the appropriate activity (node in the tree) to deliver to the learner.
- The
delivery behavior determines if the identified activity can be
delivered, and if so, prepares to deliver the activity's content
resource(s) to the learner. If the selected activity cannot be
delivered, then the overall sequencing process stops and waits for
another navigation request (step 8).
- The
learner interacts with the content resource. The sequencing processes
are idle and waiting for requests while the learner interacts with the
content resource.
- The
activity may report values that update the various tracking model
elements during the learner's interactions with the content resource.
- The
learner, delivery system, or activity invokes a navigation event, such
as "Continue", "Previous", "Choose activity X", "Abandon", "Exit",
etc...
- The
LTS informs the sequencing process of the navigation event by issuing a
navigation request.
- The
navigation behavior translates the navigation request into a
termination request and a sequencing request. If the navigation request
indicates that the learner wants to end the sequencing session, the
sequencing session ends (the behavior of ending the sequencing session
and the persistence of the activity state model is unspecified and left
to the implementation).
- If
the activity triggered the navigation request by terminating or
exiting, it may report additional values that update the tracking
model. The activity then exits. The rollup process is invoked to
determine the effects of any state changes that occurred as a result of
delivering the content resource for the activity. The process updates
the tracking model for the activity and for any of its parent
activities within the activity tree.
- The
process repeats beginning at step 4, until the sequencing session ends.
Several variations exist on
the order described above, including:
- Selection and
randomization of activities may occur prior to the processing of a
sequencing request.
- An activity may
report state and status information and exit without triggering a
specific navigation request.
- Only certain
classes of resources and activities may report information to the
tracking model during delivery of content and learner interaction with
the content.
The sequencing process may
not be able to identify an activity to deliver, or the activity may not
be delivered due to failure to meet the defined delivery conditions.
Figure
I.1 - The various steps in the sequencing process.
Figure I.1 above shows the
various steps in the sequencing process. The control process is shown
on the left. In normal operation, the overall sequencing process flows
from navigation behavior to termination behavior to sequencing behavior
to delivery behavior, followed by a wait while
the learner interacts with the content resource, as described in steps
4-12 above.
The right side of
Figure I.1 shows the learner's view of the learning experience. A
content resource is delivered to the learner. The learner interacts
with the content resource and results may be returned to the tracking
model. The learner triggers an event that maps to a navigation request.
The navigation request triggers the various steps in the sequencing
process.
Throughout all
sequencing processes, a collection of state and tracking model data is
maintained. Content resources may directly set values in the tracking
model through a runtime communications interface to tracking model;
this interface is not part of the specification and is not required.
All of the other sequencing processes access and update elements of the
tracking models.
Changes to the
state of an activity occur because of learner interaction with a
content resource delivered for the activity or one of its descendents.
If an external event affects the tracking, such as an instructor
changing a grade, the model assumes processes are invoked as required
to update the activity state model.
Changes to the
activity state model and tracking model that occur outside of the scope
of delivering the learning experience via the sequencing process are
outside of the scope of the specification. Systems that implement such
side effects and additional capabilities must deal with these
conditions accordingly.
I.4.3
Rule-Based Model
The behaviors described in
the Simple Sequencing Specification are defined in terms of sequencing
information (see Sequencing Definition Model SM)
associated with activities in the activity tree. Sequencing information
includes 'rules' that provide a means to describe conditional
sequencing behavior at content development time. These 'rules' and
tracking status information affect the various sequencing processes
during content delivery.
I.4.4
Default and Authored Behavior
In the absence of explicitly
defined sequencing information, activity trees exhibit default
sequencing behaviors when content resources are delivered. These
default behaviors and associated values are specified in the sequencing
information (see Sequencing Definition Model SM).
Content developers may change default behaviors by explicitly defining
sequencing information and associating it with activities.
I.4.5
Objectives
Learning objectives are
separate from activities in Simple Sequencing. Learning objectives
represent a set of locally and globally scoped data items, each with a
satisfaction status and a satisfaction measure. Simple Sequencing makes
no assumption as to how to interpret the objective (e.g., is it a
competency, is it a mastery, or is it simply a shared value?).
Activities may have more than one associated local objective and may
reference multiple globally shared objectives. Multiple activities may
reference the same global objective, thus sharing the data values.
The resolution of
local and global objective IDs is not specified. An objective may be
shared within a single activity tree or may be shared globally across
multiple instantiations of tracking models. The lifetime of shared
global objectives and the scope of sharing is not specified; it is
determined by implementations. Activities may reference multiple
objectives, thus providing a mechanism for activities to have
sub-objectives. However, this specification makes no assumptions about
the semantics or meanings of multiple objectives associated with an
activity.
I.4.6
Auxiliary Resources
An activity may have
auxiliary resources associated with it that provide additional services
or resources for the learner. This specification does not define any
semantics or meanings for these auxiliary resources. This specification
does not define which resources may be made available, or how the
resources are to be used; it only provides a means for the auxiliary
resources to be associated with an activity.
I.4.7
Presentation and Environment
Simple Sequencing makes no
assumption as to how content and controls are rendered or presented to
the learner (e.g., style, placement, GUI widgets). How events are
triggered in the interface environment, how they are communicated to
the LTS, and how the LTS delivers content to the learner and the
learner's environment are not specified.
While an external
event may trigger a navigation event and a resulting navigation
request, the external event also may trigger other actions. These
behaviors are not specified.
I.4.8
Suspending and Resuming Activities
An activity may be suspended
and later resumed. Certain navigation requests result in an activity or
collection of activities being suspended. Other activities may be
delivered while the activity is suspended. A suspended activity may be
resumed later without counting as a new activity attempt. Additionally,
the suspended activity may be abandoned or exited.
The current
sequencing session may be suspended and later resumed at the last
activity experienced by the learner.
I.4.9
Starting and Stopping the Sequencing Process
Simple Sequencing does not
specify how to start the overall sequencing process or how to stop the
process. Generally, the LTS will recognize some event, e.g., a course
login, to start sequencing. Some other event, e.g., a logout, is mapped
to the appropriate navigation, exit and sequencing requests, after
which the LTS may terminate the overall sequencing process.
I.4.10
Data Persistence
Simple Sequencing does not
specify how data (e.g., tracking data) is to be persisted across
multiple instantiations of the overall sequencing process for a
particular learner and activity tree or learning experience, e.g.,
across multiple login sessions. Implementations shall persist control,
tracking, and state data at least until the current attempt on the
activity tree is terminated. Such an attempt may include one or more
login sessions. LTS policies govern whether to persist data beyond that
time; such policies are beyond the scope of this specification.
I.4.11
Content Types
The Simple Sequencing
Specification is independent of the types of learning content and
learning objects and can be used to sequence all types of content. For
example, content may include simple static Seb pages, MIME resources of
any type (e.g., DOC, PDF files), services and proxies for services, and
dynamically created objects. In particular, content need not use a
communications adapter, such as the AICC/IEEE/ADL SCORM API
communications adapter used by sharable content objects [2]. Nor does
Simple Sequencing require a runtime service or assume the existence of
other data models, such as the CMI data model [1].
I.4.12
Active/Passive Content
Simple Sequencing relies on
values within the tracking model to control sequencing. Simple
Sequencing does not specify how the tracking model values for an
activity or an objective are set or updated. Simple Sequencing
differentiates between active and passive content and supports both
active and passive content on an activity-by-activity basis. Active
content is responsible for setting elements of the tracking model
directly. For passive content, Simple Sequencing will automatically set
certain values in the tracking model. Simple Sequencing makes no
assumptions about how content actually behaves, e.g., passive content
may set values in the tracking model, active content may fail to set
values Simple Sequencing relies only on the declaration of how the
content should behave.
I.4.13
Relationship to IMS Content Packaging Specification
The Simple Sequencing
Specification relies on the concept of learning activities.
A learning activity may be loosely described as an instructional event
or events embedded in a content resource, or as an aggregation of
activities that eventually resolve to discrete content resources with
their contained instructional events.
The IMS Content
Packaging Specification provides a ready structure for relating a
learning activity to a content resource - the item
element and its relationship to a resource
element. Furthermore, item elements can be
clustered into collections, with such collections contained in a parent
organization element, just like learning
activities may clustered together in a parent activity or activities.
Therefore, Simple Sequencing maps the concept of a learning activity to
an item element or a collection of item
elements within an organization element, and to
an organization element itself, as defined by the
Content Packaging Specification. The Content Packaging XML Binding is
extended by this specification to define how sequencing information is
associated with packaged content.
The process of
defining a specific sequence of learning activities begins with the
creation of an aggregation of content. The Content Packaging
Specification enables aggregations to be interchanged among systems. As
shown in the figure below, the content packaging organization
element and each item element within it can have
defined sequencing behaviors through the association of sequencing
information defined in the sequencing definition Model (see Sequencing
Definition Model SM). Sets of sequencing
definition elements can be created and defined for or referenced by
items within the organization, as well as for the organization itself.
A single set of sequencing definition elements and values can be
referenced by more than one item and therefore are reusable.
All information
defining sequencing behavior for an organization is present within that
organization. Where multiple organizations are present within a
manifest, each organization may have its own set of sequencing
behaviors.
IMS Simple
Sequencing only describes how sequencing information relates to IMS
Content Packaging, but does not prohibit sequencing information and
behavior from being used in other contexts.
This version of
Simple Sequencing does not use or prohibit the use of sub manifests,
defined in IMS Content Packaging.
Figure
I.2 - How sequencing information can be associated with an IMS Content
Package.
I.5
Nomenclature
The following abbreviations
and acronyms are used in this document:
ADL
|
Advanced Distributed Learning
|
AICC
|
Aviation Industry CBT Committee
|
ANSI
|
American National Standards Institute
|
API
|
Application Programming Interface
|
CBT
|
Computer Based Training
|
CMI
|
Computer Managed Instruction
|
CPI
|
Content Packaging Interchange
|
DTD
|
Document Type Definition
|
IEEE
|
Institute of Electronic and Electrical Engineering
|
ISO
|
International Standards Organization
|
JTC
|
Joint Technical Committee
|
LTS
|
Learning Technology System
|
LTSC
|
Learning Technology Standards Committee
|
SCORM
|
Shareable Content Object Reference Model
|
SS
|
Simple Sequencing
|
W3C
|
World Wide Web Consortium
|
XML
|
Extensible Mark-up Language
|
I.6
References
[1]
|
IEEE P1484.11.1 Draft Standard for Data Model to
Content Object Communication
|
[2]
|
IEEE P1484.11.2 Draft Standard for ECMAScript API for
Content to Runtime Services Communication
|
[3]
|
IMS Content Packaging XML Binding
v1.1.2 Final Specification, IMS Global Learning Consortium, Inc.,
August 2001
|
[4]
|
IMS Persistent, Location-Independent Resource
Identifier Handbook v1.0, Final Specification, IMS Global
Learning Consortium, Inc., April 2001
|
[5]
|
IMS Simple Sequencing XML Binding
v1.0 Final Specification, IMS Global Learning Consortium, Inc., March
2003
|
[6]
|
IMS Simple Sequencing Best Practice and
Implementation Guide v1.0 Specification, IMS Global Learning
Consortium, Inc., March 2003
|
SM.
Sequencing Definition Model
The Simple Sequencing
process uses information about the desired sequencing behavior to
control the sequencing, selection and delivery of activities to the
learner. The intended sequence is described by a specific set of data
attributes. These attributes are associated with learning activities in
the activity tree to describe the sequencing behavior. The set of
attributes used by Simple Sequencing is called the "sequencing
definition model".
The sequencing
definition model consists of:
- Sequencing
Control Modes - controls for types of sequencing requests
that may apply to a collection of activities.
- Sequencing
Rule Description - rules applied to an activity used to
specify sequencing behaviors for the activity.
- Limit
Conditions Description - limits on how many times, how long
and when an activity is allowed.
- Rollup
Rule Description - rules that specify how tracking data from
an activity or its associated objectives is produced from the results
of the child activities.
- Objective
Description - the learning objectives associated with an
activity.
- Objective
Map - the mapping of local objective information to and from
shared global objectives.
- Rollup
Controls - controls which data from an activity contributes
to the rollup of the parent activity.
- Selection
Controls - controls how an activity's children are selected.
- Randomization
Controls - controls how an activity's children are ordered.
- Delivery
Controls - controls when progress and objective information
for an activity are recorded.
There are no overall
behavior requirements on the use and instantiation of the sequencing
definition model. Individual parts of the model describe how the
sequencing definitions are associated with the activity tree to define
intended learning experiences. The use of the sequencing definition
model is detailed as part of the behavior descriptions of the
navigation, sequencing, delivery, exit, selection, randomization, and
rollup processes.
Sequencing
definitions describe the intended learning experience for a learner.
How the learning experience and definition for a learner relate to the
definition for a cohort of learners (e.g., individualized experiences
versus a common experience for all members of the cohort) is not
specified. A sequencing definition model instance defines a learning
experience independently of how it is instantiated for one or more
learners.
SM.1
Sequencing Control Modes
Sequencing control mode
information (the set of attributes shown below) includes descriptions
of the types of sequencing behaviors specified for an activity.
Sequencing control mode information for an activity includes the
associated data listed below.
Simple Sequencing
processes may reference the sequencing control modes for any activity
in the activity tree. Sequencing control modes are optional. Default
data is used if the data is not defined for a given activity.
The control modes
are not exclusive; multiple control modes may be specified.
| No.
|
Name
|
Description
|
Value
Space
|
Default
Value
|
1
|
Sequencing Control Choice
|
Indicates that a Choice
sequencing request is permitted (True or False) to target the children
of the activity.
|
Boolean
|
True
|
2
|
Sequencing Control Choice Exit
|
Indicates that an active child of this activity is
permitted to terminate (True or False) if a Choice
sequencing request is processed.
|
Boolean
|
True
|
3
|
Sequencing Control Flow
|
Indicates the Flow Subprocess
(SB.2.3) may be applied (True or False) to the children of this
activity.
|
Boolean
|
False
|
4
|
Sequencing Control Forward Only
|
Indicates that backward targets (in terms of activity
tree traversal) are not permitted (True or False) for the children of
this activity.
|
Boolean
|
False
|
5
|
Use Current Attempt Objective Information
|
Indicates that the objective progress information
(TM.1.1) for the children of the activity will only be used (True or
False) in rule evaluations and rollup if that information was recorded
during the current attempt on the activity.
|
Boolean
|
True
|
6
|
Use Current Attempt Progress Information
|
Indicates that the attempt progress information
(TM.1.2.2) for the children of the activity will only be used (True or
False) in rule evaluations and rollup if that information was recorded
during the current attempt on the activity.
|
Boolean
|
True
|
SM.2
Sequencing Rule Description
Sequencing rule description
(the set of attributes shown below) specifies the details of individual
rule-based sequencing behaviors for an activity. Sequencing rule
description information for an activity includes the associated data
listed below.
Simple Sequencing
processes may reference the sequencing rules for any activity in the
activity tree. Sequencing rules are optional. The data attributes below
specify one rule. Each activity may have an unlimited number of
sequencing rules. Sequencing rules are defined only where needed.
Default data is used if the data is not instantiated for a given rule,
if needed.
- The data
attributes below describe one rule. Each activity may have an unlimited
number of sequencing rules.
- The general
format of a rule can be expressed informally as: If
condition set Then action.
- There may be
multiple conditions.
- The conditions
may be combined with a single and combination
(all conditions must be True) or a single or
combination (only one condition must be True).
- Individual
condition values may be negated before being combined in the rule
evaluation.
- No other
operators on the conditions are defined.
- Each condition
references an item in the tracking model for the activity or one of its
associated objectives.
- There is one
action that may result if the rule conditions evaluate to True.
Actions are divided into
three groups:
- Preconditions
- Actions that control sequencing decisions and delivery of a specific
activity. Rules that include such actions are used to determine if the
activity will be delivered.
- Post
Conditions - Actions that control sequencing flow by issuing
sequencing requests. Rules that include such actions are applied when
an activity terminates.
- Exit
Actions - Actions that terminate an activity. Rules that
include such actions are applied when a descendent of an activity
exits.
The Rule
Conditions, Condition Combination, and Rule
Actions are tokens in a vocabulary. The tokens have no
semantics or meanings themselves. The description of the condition or
action is the complete definition of the required behavior.
| No.
|
Name
|
Description
|
Value
Space
|
Default
Value
|
1
|
Condition Combination
|
How rule conditions are combined in evaluating the rule.
- All
- The rule condition evaluates to True if and only if all of the
individual rule conditions evaluate to True (logical and).
- Any
- The rule condition evaluations to True if and only if any of the
individual rule conditions evaluates to True (logical or).
|
Vocabulary
|
All
|
2
|
Rule Conditions
|
An unordered collection of conditions for a sequencing
rule. A rule may include multiple rule conditions.
|
Collection
0:N
|
|
2.1
|
Rule Condition
|
A condition element for the rule.
- Satisfied
- evaluates to True if the Objective Progress Status
(TM.1.1) for the objective associated with the activity (indicated by Rule
Condition Referenced Objective) is True and the
Objective Satisfied Status (TM.1.1) for
the objective associated with the activity (indicated by Rule
Condition Referenced Objective) is True.
- Objective
Status Known - evaluates to True if the Objective
Progress Status (TM.1.1) for the objective associated with
the activity (indicated by Rule Condition Referenced
Objective) is True.
- Objective
Measure Known - evaluates to True if the Objective
Progress Status for the objective (TM.1.1) associated with
the activity (indicated by Rule Condition Referenced
Objective) is True and the Objective
Measure Status (TM.1.1) for the objective associated with
the activity (indicated by Rule Condition Referenced
Objective) is True.
- Objective
Measure Greater Than - evaluates to True if the Objective
Measure Status (TM.1.1) for the objective associated with
the activity (indicated by Rule Condition Referenced
Objective) is True and the Objective
Normalized Measure (TM.1.1) for the objective associated
with the activity (indicated by Rule Condition Referenced
Objective) is greater than the Rule Condition
Measure Threshold.
- Objective
Measure Less Than - evaluates to True if the Objective
Measure Status (TM.1.1) for the objective associated with
the activity (indicated by Rule Condition Referenced
Objective) is True and the
Objective Normalized Measure
(TM.1.1) for the objective associated with the activity (indicated by Rule
Condition Referenced Objective) is less than the Rule
Condition Measure Threshold.
- Completed
- evaluates to True if the Attempt Progress Status
(TM.1.2.2) for the activity is True and the
Attempt Completion Status (TM.1.2.2)
for the activity is True.
- Activity
Progress Known - evaluates to True if the Activity
Progress Status (TM.1.2.1) for the activity is True and
the Attempt Progress Status (TM.1.2.2) for the
activity is True.
- Attempted
- evaluates to True if the Activity Progress
Status (TM.1.2.1) for the activity is True and
the Activity Attempt Count (TM.1.2.1)
for the activity is positive (i.e., the activity has been attempted).
- Attempt
Limit Exceeded - evaluates to True if the Activity
Progress Status (TM.1.2.1) for the activity is True and
the Limit Condition Attempt Limit Control (SM.3)
for the activity is True and
the Activity Attempt Count (TM.1.2.1) for the
activity is equal to or greater than the Limit Condition
Attempt Limit (SM.3) for the
activity.
- Time
Limit Exceeded - evaluates to True if the Activity
Progress Status (TM.1.2.1) for the activity is True and
any of the durations for the activity (Activity Absolute Duration,
Activity Experienced Duration, Attempt Absolute Duration, Attempt
Experienced Duration) exceed the corresponding duration Limit Condition
values for the activity (SM.3 - Limit Condition Activity
Absolute Duration, Limit Condition Activity Experienced Duration, Limit
Condition Attempt Absolute Duration, Limit Condition Attempt
Experienced Duration) and the
associated Limit Condition control value (SM.3 - Limit Condition Activity
Absolute Duration Control, Limit Condition Activity Experienced
Duration Control, Limit Condition Attempt Absolute Duration Control,
Limit Condition Attempt Experienced Duration Control) for
the activity is True.
- Outside
Available Time Range - evaluates to True if the current time
is before or after the corresponding time Limit Condition values for
the activity (SM.3 - Limit Condition Begin Time, Limit
Condition End Time) and the
associated Limit Condition control value (SM.3 - Limit Condition Begin
Time Control, Limit Condition End Time Control) for the
activity is True.
- Always
- always evaluates to True.
|
Vocabulary
|
Always
|
2.2
|
Rule Condition Referenced Objective
|
The identifier of an objective associated with the
activity used during the evaluation of the condition.
If a rule for an
activity does not explicitly reference an objective by an identifier,
the rule references the objective that contributes to rollup for an
activity by default.
|
Unique Identifier
|
None
|
2.3
|
Rule Condition Measure Threshold
|
The value used as a threshold during measure-based
condition evaluations.
|
Real [-1..1]
Precision of at least
4 significant decimal digits
|
0.0
|
2.4
|
Rule Condition Operator
|
The unary logical operator to be applied to the
condition.
- Not
- The corresponding condition is negated in rule evaluation.
- NO-OP
- The corresponding condition is used as is in rule evaluation.
|
Vocabulary
|
NO-OP
|
3
|
Rule Action
|
The desired sequencing behavior if the rule evaluates
to True.
Actions are divided
into groups based on when the action is applied.
Precondition actions
apply when traversing the activity tree to identify an activity for
delivery:
- Skip
- The activity is not considered a candidate for delivery during a Flow
sequencing process (SB.2.3).
- Disabled
- The activity may not be the target of any sequencing or
delivery request.
- Hidden
from Choice - The activity may not be the target of a Choice
sequencing request.
- Stop
Forward Traversal - Stop walking the activity tree, in a
forward direction, at the activity while processing a sequencing
request.
- Ignore
- No action.
Post Condition actions
apply when an attempt on the activity terminates:
- Exit
Parent - Process an Exit Parent exit
request.
- Exit
All - Process an Exit All termination
request and return an Exit sequencing request.
- Retry
- Return a Retry sequencing request.
- Retry
All - Process an Exit All termination
request and return a Start sequencing request.
- Continue
- Return a Continue sequencing request.
- Previous
- Return a Previous sequencing request.
- Ignore
- No action.
Exit actions apply
after an attempt on a descendent activity terminates:
- Exit
- Unconditionally terminate the activity.
- Ignore
- No action.
|
Vocabulary
|
Ignore
|
This
identifier should be globally unique, or at least unique in any scope
in which sequenced activities might be used. The IMS Persistent,
Location-Independent Resource Identifier Handbook [4] describes the
recommended way to construct such an identifier.
|
SM.3
Limit Conditions Description
Limit conditions description
(the set of attributes shown below) define constraints on the access to
an activity based on time of day, time spent on the activity and number
of attempts. Limit conditions description for an activity includes the
associated data listed below.
Simple Sequencing
processes may reference the limit conditions description for any
activity in the activity tree. Limit Conditions are optional. Limit
condition data need not be defined for each activity in the activity
tree. Default data is used if the data is not instantiated for the
activity, if needed.
| No.
|
Name
|
Description
|
Value
Space
|
Default
Value
|
1
|
Limit Condition Attempt Control
|
Indicates that a limit condition on the number of
attempts for the activity has been established (True or False) for the
activity.
If the value is False,
there is no constraint on how many times the activity may be attempted.
|
Boolean
|
False
|
2
|
Limit Condition Attempt Limit
|
The maximum number of attempts for the activity. A zero
value indicates the activity may not be accessed.
The value is
unreliable unless Limit Condition Attempt Control
is True.
|
Non Negative Integer
|
0
|
3
|
Limit Condition Attempt Absolute Duration
Control
|
Indicates that a limit condition on the maximum time
duration that a learner is permitted to spend on any single attempt on
the activity has been established (True or False) for the activity.
If the value is False,
there is no constraint on how long the learner may spend on the
activity.
|
Boolean
|
False
|
4
|
Limit Condition Attempt Absolute Duration
Limit
|
The maximum time duration that a learner is permitted
to spend on any single attempt on the activity. This limit applies to
the time the activity is active - from the time
the activity begins until the time the activity ends, including any
time the activity was suspended. A zero value
indicates the activity may not be accessed.
The value is
unreliable unless Limit Condition Attempt Absolute Duration
Control is True.
|
Duration Accuracy 0.1 second
|
0.0
|
5
|
Limit Condition Attempt Experienced Duration
Control
|
Indicates that a limit condition on the maximum time
duration that a learner is permitted to spend on any single attempt on
the activity has been established (True or False) for the activity.
If the value is False,
there is no constraint on how long the learner may spend on the
activity.
|
Boolean
|
False
|
6
|
Limit Condition Attempt Experienced Duration
Limit
|
The maximum time duration that a learner is permitted
to spend experiencing a single attempt on the activity. The limit
applies to only the time the learner is actually interacting with the
activity and does not apply when the activity is suspended (i.e., when
the activity is not being experienced or is inactive). A zero value
indicates the activity may not be accessed.
The value is
unreliable unless Limit Condition Attempt Experienced
Duration Control is True.
|
Duration
Accuracy 0.1 second
|
0.0
|
7
|
Limit Condition Activity Absolute Duration
Control
|
Indicates that a limit condition on the maximum
duration that a learner is permitted to spend on the activity (which
includes all attempts) has been established (True or False) for the
activity.
If the value is False,
there is no constraint on how long the learner may spend on the
activity.
|
Boolean
|
False
|
8
|
Limit Condition Activity Absolute Duration
Limit
|
The maximum time duration that a learner is permitted
to spend on all attempts at the activity. A zero value indicates the
activity may not be accessed.
The value is
unreliable unless Limit Condition Activity Absolute Duration
Control is True.
|
Duration Accuracy 0.1 second
|
0.0
|
9
|
Limit Condition Activity Experienced Duration
Control
|
Indicates that a limit condition on the maximum
duration that a learner is permitted to spend on the activity (which
includes all attempts) has been established (True or False) for the
activity.
If the value is False,
there is no constraint on how long the learner may spend on the
activity.
|
Boolean
|
False
|
10
|
Limit Condition Activity Experienced Duration
Limit
|
The maximum time duration that a learner is permitted
to spend on all attempts of the activity. The limit applies to only the
time the learner is actually experiencing the activity and does not
apply when the activity is suspended (i.e., when the activity is not
being experienced or is inactive). A zero value indicates the activity
may not be accessed.
The value is
unreliable unless Limit Condition Activity Experienced
Duration Control is True.
|
Duration Accuracy 0.1 second
|
0.0
|
11
|
Limit Condition Begin Time Limit Control
|
Indicates that a limit condition on the availability of
the activity has been established (True or False) for the activity.
If the value is False,
there is no constraint on when the learner may access the activity.
|
Boolean
|
False
|
12
|
Limit Condition Begin Time Limit
|
The date and time before which the activity is not
available.
The value is
unreliable unless Limit Condition Begin Time Limit Control
is True.
|
Time Point
Accuracy 0.1 second
|
October, 15 1582
00:00:00.0
|
13
|
Limit Condition End Time Limit Control
|
Indicates that a limit condition on the availability of
the activity has been established (True or False) for the activity.
If the value is False,
there is no constraint on when the learner may access the activity.
|
Boolean
|
False
|
14
|
Limit Condition End Time Limit
|
The date and time after which the activity is not
available.
The value is
unreliable unless Limit Condition End Time Limit Control
is True.
|
Timepoint
Accuracy 0.1 second
|
October, 15 1582
00:00:00.0
|
SM.4
Auxiliary Resource Description
Auxiliary resource
description (the set of attributes shown below) defines an auxiliary
resource associated with an activity. When an activity is delivered to
the learner, the auxiliary resources are also made available to the
learner. An auxiliary resource description for an activity includes the
associated data listed below.
Simple Sequencing
processes may reference the auxiliary resource description for any
activity in the activity tree. Auxiliary resources are optional.
Auxiliary resource data need not be defined for each activity in the
activity tree. If an auxiliary resource is instantiated for an
activity, it must provide the required data.
The data attributes
below describe one auxiliary resource. Each activity may have an
unlimited number of unordered auxiliary resources.
Purpose
is an open, unspecified vocabulary. The vocabulary tokens have no
semantics or meanings themselves. No behaviors are specified for any
token value.
| No.
|
Name
|
Description
|
Value
Space
|
Default
Value
|
1
|
Resource ID
|
The identifier of the auxiliary resource.
|
Unique Identifier
|
None
Value is Required
|
2
|
Purpose
|
Indicates the purpose of the auxiliary resource.
|
Open Vocabulary
|
None
Value is Required
|
This
identifier should be globally unique, or at least unique in any scope
in which sequenced activities might be used. The IMS Persistent,
Location-Independent Resource Identifier Handbook [4] describes the
recommended way to construct such an identifier.
|
SM.5
Rollup Rule Description
Rollup rule description (the
set of attributes shown below) specifies the details of individual
rule-based rollup behaviors for an activity. Rollup rules describe how
values of the child activities influence the Objective Progress
Information (TM.1.1) and Activity/Attempt Progress Progress Information
(TM.1.2) for an activity. Rollup rule description information for an
activity includes the associated data listed below.
Simple Sequencing
processes may reference the rollup rules for any activity in the
activity tree. Rollup rules are optional. Rollup rules are defined only
where needed. Default data is used if the data is not instantiated for
a given rule, if needed.
The data attributes
describe one rule. Each activity may have an unlimited number of
unordered rollup rules.
The general format
of a rule can be expressed informally as: If child-activity
set, condition set Then action.
- There is one
child activity set that determines the child activities that are
required for the condition to be true.
- Multiple
conditions are permitted.
- The conditions
may be combined with a single and combination
(all conditions must be True) or a single or
combination (only one condition must be True).
- Individual
condition values may be negated before being combined in the rule
evaluation.
- No other
operators on the conditions are defined.
- Each condition
references an item in the tracking model for the activity; conditions
that reference objectives refer to the objective that has the attribute
value Objective Contributes to Rollup value of
True.
- There is one
action that may result if the rollup conditions evaluate to True.
- Actions may
result in setting of the Attempt Completion Status
(TM.1.2.2) or Objective Satisfied Status (TM.1.1)
(for the objective that has the attribute value Objective
Contributes to Rollup (SM.6) value of True) for the
activity.
The Rollup Child
Activity Set, Rollup Conditions, Condition Combination, and Rollup
Actions are tokens in a vocabulary. The tokens have no
semantics or meanings themselves. The description of the condition or
action is the complete definition of the required behavior.
| No.
|
Name
|
Description
|
Value
Space
|
Default
Value
|
1
|
Rollup Child Activity Set
|
The set of children of the activity whose data values
are used to evaluate the rollup condition.
- All
- The rollup rule evaluates to True if and only if all of the children
have a rollup condition (the result of the Condition
Combination) value of True.
- Any
- The rollup rule condition evaluates to True if any of the children
have a rollup condition (the result of the Condition
Combination) value of True.
- None
- The rollup rule condition evaluates to True if none of the children
have a rollup condition (the result of the Condition
Combination) value of True.
- At
Least Count - The rollup rule condition evaluates to True if
at least the number of children specified by the Rollup
Minimum Count attribute have a rollup condition (the result
of the Condition Combination) value of True.
- At
Least Percent - The rollup rule condition evaluates to True
if at least the percentage of children specified in the Rollup
Minimum Percent attribute have a rollup condition (the
result of the Condition Combination) value of
True.
|
Vocabulary
|
All
|
1.1
|
Rollup Minimum Count
|
The number of children activities associated with a Rollup
Child Activity Set attribute value of At Least
Count.
This value is
meaningless if the Rollup Child Activity Set
value is not At Least Count.
|
Non Negative Integer
|
0
|
1.2
|
Rollup Minimum Percent
|
The percentage of children activities associated with a
Rollup Child Activity Set attribute value of
At Least Percent.
This value is
meaningless if the Rollup Child Activity Set
value is not At Least Percent.
|
Real [0..1]
Precision of at least
4 digits
|
0.0
|
2
|
Condition Combination
|
How rollup conditions are combined in evaluating the
rule.
- All
- The rule condition evaluates to True if and only if all of the
individual rollup conditions evaluate to True (logical and).
- Any
- The rule condition evaluations to True if any of the individual
rollup conditions evaluates to True (logical or).
|
Vocabulary
|
Any
|
3
|
Rollup Conditions
|
An unordered collection of conditions for a rollup
rule.
A rollup rule may
include multiple conditions.
|
Collection
0:N
|
|
3.1
|
Rollup Condition
|
A condition element for the rule.
- Satisfied
- evaluates to True if the Objective Progress Status
(TM.1.1) for the rolled up objective associated with the child activity
is True and Objective
Satisfied Status (TM.1.1) for the rolled up objective
associated with the child activity is True.
- Objective
Status Known - evaluates to True if Objective
Progress Status (TM.1.1) for the rolled up objective
associated with the child activity is True.
- Objective
Measure Known - evaluates to True if the Objective
Measure Status (TM.1.1) for the rolled up objective
associated with the child activity is True.
- Completed
- evaluates to True if the Attempt Progress Status
(TM.1.2.2) for the child activity is True and the
Attempt Completion Status (TM.1.2.2)
for the child activity is True.
- Activity
Progress Known - evaluates to True if the Activity
Progress Status (TM.1.2.1) for the child activity is True and
the Attempt Progress Status (TM.1.2.2) for the
child activity is True.
- Attempted
- evaluates to True if the Activity Progress Status
(TM.1.2.1) for the child activity is True and
the Activity Attempt Count (TM.1.2.1) for the
child activity is positive (i.e., the child activity has been
attempted).
- Attempt
Limit Exceeded - evaluates to True if the Activity
Progress Status (TM.1.2.1) for the child activity is True and
the Limit Condition Attempt Limit Control (SM.3)
for the child activity is True and the
Activity Attempt Count (TM.1.2.1) for
the child activity is equal to or greater than the Limit
Condition Attempt Limit (SM.3) for
the child activity.
- Time
Limit Exceeded - evaluates to True if the Activity
Progress Status (TM.1.2.1) for the child activity is True and
any of the tracked durations for the child activity (Activity Absolute
Duration, Activity Experienced Duration, Attempt Absolute Duration,
Attempt Experienced Duration) exceed the corresponding duration Limit
Condition values for the child activity (SM.3 - Limit Condition Activity
Absolute Duration, Limit Condition Activity Experienced Duration, Limit
Condition Attempt Absolute Duration, Limit Condition Attempt
Experienced Duration) and the
associated Limit Condition control value (SM.3 - Limit Condition Activity
Absolute Duration Control, Limit Condition Activity Experienced
Duration Control, Limit Condition Attempt Absolute Duration Control,
Limit Condition Attempt Experienced Duration Control) for
the child activity is True.
- Outside
Available Time Range - evaluates to True if the current time
is before or after the corresponding time Limit Condition values for
the child activity (SM.3 - Limit Condition Begin Time, Limit
ConditionEnd Time) and the
associated Limit Condition control value (SM.3 - Limit Condition Begin
Time Control, Limit Condition End Time Control) for the
child activity is True.
- Never
- always evaluates to False.
|
Vocabulary
|
Never
|
3.2
|
Rollup Condition Operator
|
The unary logical operator to be applied to the
condition.
- Not
- The corresponding condition is negated in rule evaluation.
- NO-OP
- The corresponding condition is used as is in rule evaluation.
|
Vocabulary
|
NO-OP
|
4
|
Rollup Action
|
The desired rollup behavior if the rule evaluates to
True.
- Satisfied
- The Objective Progress Status (TM.1.1) for the
rolled up objective associated with the activity is set to True. The Objective
Satisfied Status(TM.1.1) for the rolled up objective
associated with the activity is set to True.
- Not
Satisfied - The Objective Progress Status
(TM.1.1) for the rolled up objective associated with the activity is
set to True. The Objective Satisfied Status
(TM.1.1) for the rolled up objective associated with the activity is
set to False.
- Completed
- The Attempt Progress Status (TM.1.2.2) for the
activity is set to True. The Attempt Completion Status (TM.1.2.2)
for the activity is set to True.
- Incomplete
- The Attempt Progress Status (TM.1.2.2) for the
activity is set to True. The Attempt Completion Status (TM.1.2.2)
for the activity is set to False.
|
Vocabulary
|
Satisfied
|
The value
is normalized between 0 and 1.
|
SM.6
Objective Description
The objective description
(the set of attributes shown below) defines the learning objective(s)
associated with an activity.
Each activity may
have an unlimited number of learning objectives. The tracking model
(see Tracking Model TM) defines a set of
data that records the satisfaction status (e.g., passed/failed) and
measure (e.g., score) for each objective, for each attempt on the
activity. The meaning of a learning objective is not defined in this
model; it is defined only in terms of its ID and its association with
an activity.
Simple Sequencing
processes may reference the local objective information for any
activity. The use of Objective Maps (described in SM.7) allows Simple
Sequencing processes to also reference objective information for
globally shared objectives. An activity will
have local objective information for each objective associated with the
activity. An activity must have at least one objective; if one is not
defined in the sequencing description associated with the activity, one
will be instantiated for the purposes of sequencing. Each activity must
have one and only one objective that contributes to rollup; if one is
not defined in the sequencing description associated with the activity,
one will be instantiated for the purposes of sequencing.
The Objective
ID is required if the activity has more than one objective
or if the objective information for the activity is to be shared with
another activity.
| No.
|
Name
|
Description
|
Value
Space
|
Default
Value
|
1
|
Objective ID
|
The identifier of an objective associated with the
activity. The ID is a link to the corresponding objective information.
|
Unique Identifier
|
NoneRequired Value
|
2
|
Objective Satisfied by Measure
|
Indicates that the Objective Minimum
Satisfied Normalized Measure is to be used (True or False)
in place of any other method to determine if the objective associated
with the activity has been satisfied.
|
Boolean
|
False
|
3
|
Objective Minimum Satisfied Normalized Measure
|
The minimum satisfaction measure for the objective,
normalized between -1..1 (inclusive).
If the Objective
Measure Status (TM.1.1) for the objective is True and
the Objective Normalized Measure (TM.1.1) for the
objective exceeds this value, the Objective Progress Status
(TM.1.1) is set to True and the Objective Satisfied Status
(TM.1.1) is set to True.
If the Objective
Measure Status (TM.1.1) for the objective is True and
the Objective Normalized Measure (TM.1.1) for the
objective is less than this value, the Objective Progress
Status (TM.1.1) is set to True and the Objective
Satisfied Status (TM.1.1) is set to False.
The value is
unreliable unless Objective Satisfied by Measure
is True.
|
Real [-1..1]
Precision of at least
4 significant decimal digits
|
1.0
|
4
|
Objective Contributes to Rollup
|
Indicates that the Objective Satisfied Status
(TM.1.1) and Objective Normalized Measure
(TM.1.1) for the objective are used (True or False) during rollup.
|
Boolean
|
False
|
This
identifier should be globally unique, or at least unique in any scope
in which sequenced activities might be used. The IMS Persistent,
Location-Independent Resource Identifier Handbook [4] describes the
recommended way to construct such an identifier.
|
SM.7
Objective Map
The objective map
description (the set of attributes shown below) defines a mapping of an
activity's local objective information to and from a shared global
objective.
Each activity may
have an unlimited number of objective maps.
By default, no
objective information is shared between activities. If objective
mapping is desired, each activity must define a set of Objective
Maps to describe how local objective information is mapped
to shared global objectives. The Objective Map data
is evaluated whenever local objective information is processed, as
described in the tracking model (see Tracking Model TM)
behaviors. For any given local objective, a 'read' map with at most one
global objective may be defined. Also, for any global objective, for
any activity, a 'write' map with at most one local objective can be
defined.
Simple Sequencing
processes may reference the objective map data for any activity.
Objective mapping does not occur if objective map data is not defined.
Default data is used if the data is not instantiated for the activity,
if needed.
| No.
|
Name
|
Description
|
Value
Space
|
Default
Value
|
1
|
Activity Objective ID
|
The identifier of the local objective associated with
the activity.
|
Unique Identifier
|
None
Value is Required
|
2
|
Target Objective ID
|
The identifier of global shared objective targeted for
the mapping.
|
Unique Identifier
|
None
Value is Required
|
3
|
Read Objective Satisfied Status
|
Indicates that the Objective Satisfied Status
(TM.1.1) for the identified local objective (Activity
Objective ID), should be retrieved (True or False) from the
identified shared global objective (Target Objective ID),
when the progress for the local objective is undefined - Objective
Progress Status (TM.1.1) for the identified local objective (Activity
Objective ID) is False.
This operation does
not change the Objective Information associated with the local
objective.
|
Boolean
|
True
|
4
|
Write Objective Satisfied Status
|
Indicates that the Objective Progress Status
(TM.1.1) and Objective Satisfied Status (TM.1.1)
values, for the identified local objective (Activity
Objective ID), should be transferred (True or False) to the
identified global shared objective (Target Objective ID),
upon termination of an attempt on the activity.
|
Boolean
|
False
|
5
|
Read Objective Normalized Measure
|
Indicates that the Objective Normalized
Measure (TM.1.1) for the identified local objective (Activity
Objective ID), should be retrieved (True or False) from the
identified shared global objective (Target Objective ID),
when the measure for the local objective is undefined - Objective
Measure Status (TM.1.1) for the identified local objective (Activity
Objective ID) is False.
This operation does
not change the Objective Information associated with the local
objective.
|
Boolean
|
True
|
6
|
Write Objective Normalized Measure
|
Indicates that the Objective Measure Status
(TM.1.1) and Objective Normalized Measure
(TM.1.1) values, for the identified local objective (Activity
Objective ID), should be transferred (True or False) to the
identified global shared objective (Target Objective ID),
upon termination of an attempt on the activity.
|
Boolean
|
False
|
This
identifier should be globally unique, or at least unique in any scope
in which sequenced activities might be used. The IMS Persistent,
Location-Independent Resource Identifier Handbook [4] describes the
recommended way to construct such an identifier.
This
identifier should be globally unique, or at least unique in any scope
in which sequenced activities might be used. The IMS Persistent,
Location-Independent Resource Identifier Handbook [4] describes the
recommended way to construct such an identifier.
|
SM.8
Rollup Controls
Rollup controls (the set of
attributes shown below) include descriptions of the types of rollup
behaviors specified for an activity. Rollup controls for an activity
include the associated data listed below.
Simple Sequencing
processes may reference the rollup control data for any activity in the
activity tree. Rollup control data need not be defined for each
activity in the activity tree. Default data is used if the data is not
instantiated for the activity, if needed.
| No.
|
Name
|
Description
|
Value
Space
|
Default
Value
|
1
|
Rollup Objective Satisfied
|
Indicates that Objective Satisfied Status
(TM.1.1) for the objective (which has Objective Contributes
to Rollup (SM.6) equal to True)
associated with the activity is included (True or False) in the rollup
for its parent activity.
|
Boolean
|
True
|
2
|
Rollup Objective Measure Weight
|
A weighting factor applied to the Objective
Normalized Measure (TM.1.1) for the objective (which has Objective
Contributes to Rollup (SM.6) equal to True)
associated with the activity used during rollup for its parent activity.
|
Real [0..1] Precision of at least 4 significant decimal
digits
|
1.0
|
3
|
Rollup Progress Completion
|
Indicates that the Attempt Completion Status
(TM.1.2.2) value for the activity is included (True or False) in the
rollup for its parent activity.
|
Boolean
|
True
|
SM.9
Selection Controls
Selection controls (the set
of attributes shown below) include descriptions of how the children of
an activity should be selected during the sequencing process. Selection
controls for an activity include the associated data listed below.
Simple Sequencing
processes may reference the selection control data for any activity in
the activity tree. Selection control data is optional. Selection
control data need not be defined for each activity in the activity
tree. Default data is used if the data is not instantiated for the
activity, if needed.
| No.
|
Name
|
Description
|
Value
Space
|
Default
Value
|
1
|
Selection Timing
|
Indicates when selection should occur.
- Never
- Selection is never applied; all of the children of the activity are
selected by default.
- Once
- Selection is applied before the first attempt on an
activity.
- On
Each New Attempt - Selection is applied before each new
attempt on an activity.
The On Each
New Attempt option and its associated behavior is not
specified in this version of the Simple Sequencing Specification.
|
Vocabulary
|
Never
|
2
|
Selection Count Status
|
Indicates the selection count data is (True or False)
meaningful for the activity.
|
Boolean
|
False
|
3
|
Selection Count
|
Indicates the number of child activities that must be
selected from the set of child activities associated with the activity.
If Selection
Count is larger than the number of child activities, all
child activities are selected.
This value is
unreliable unless Selection Count Status is True.
If Selection
Count Status is False all child
activities are selected.
|
Non Negative Integer
|
0
|
Although
the selection of child activities 'on each new attempt' is a desired
feature, when to perform the operation is not well defined.
|
SM.10
Randomization Controls
Randomization controls (the
set of attributes shown below) include descriptions of how the children
of an activity should be ordered during the sequencing process.
Randomization controls for an activity include the associated data
listed below.
Simple Sequencing
processes may reference the randomization control data for any activity
in the activity tree. Randomization control data is optional.
Randomization control data need not be instantiated for each activity
in the activity tree. Default data is used if the data is not
instantiated for the activity.
| No.
|
Name
|
Description
|
Value
Space
|
Default
Value
|
1
|
Randomization Timing
|
Indicates when the ordering of the children of the
activity should occur.
- Never
- Randomization is never applied.
- Once
- Randomization is applied before the first attempt on the
activity.
- On
Each New Attempt - Randomization is applied before each new
attempt on the activity.
|
Vocabulary
|
Never
|
2
|
Randomize Children
|
Indicates that the order of the child activities is
randomized (True or False).
|
Boolean
|
False
|
SM.11
Delivery Controls
Delivery controls (the set
of attributes shown below) describe actions and controls used when an
activity is delivered, i.e., Objective, Activity, and Attempt Progress
Data are recorded when the activity is delivered. Delivery controls for
an activity include the associated data listed below.
Simple Sequencing
processes may reference the delivery control data for any activity in
the activity tree. Delivery controls are optional. Delivery data need
not be defined for each activity in the activity tree. Default data is
used if the data is not instantiated for the activity, if needed.
| No.
|
Name
|
Description
|
Value
Space
|
Default
Value
|
1
|
Tracked
|
Indicates that Objective Progress Information and
Activity/Attempt Progress Information (TM) for the attempt should be
recorded (True or False) and the data will contribute to the rollup for
its parent activity.
How the data is
tracked and recorded is not specified.
|
Boolean
|
True
|
2
|
Completion Set by Content
|
Indicates that the Attempt Completion Status
(TM.1.2.2) for the activity will be set by the content object (True or
False).
A False value
indicates that default rules will be used to set progress data. For a
True value, how, if or when the completion data is set is not specified.
|
Boolean
|
False
|
3
|
Objective Set by Content
|
Indicates that the Objective Satisfied Status
(TM.1.1) for the activity's associated objective that has the Objective
Contributes to Rollup (SM.6) value of True will be set by
the content object (True or False).
A False value
indicates that default rules will be used to set objective information.
For a True value, how, if or when the objective information is set is
not specified.
|
Boolean
|
False
|
SM.12
Sequencing Description
The complete set of
sequencing information (all of the items described above) is associated
with each activity in the activity tree. The table lists all of the
elements in the overall sequencing description and their
multiplicities.
The sequencing
description model describes the data that specifies the intended
sequencing behavior. This data is used by a system that delivers
sequenced activities. How this information is encoded, stored,
represented, or bound is outside the scope of this specification. The
overall sequencing definition model only describes a set of related
data items and internal constraints on the values of those items.
There is no
requirement that the value for any specific sequencing definition model
data item exist. There is a defined default or initial value for most
attributes. When a data item does not exist and its attributes are
required for some process, the default value is supplied upon reference
if the data value does not exist.
The mechanisms used
to create or maintain the sequencing definition model data are not
specified as part of the information model.
An implementation
must be capable of representing the range of values described. There
are no additional requirements on implementing the sequencing
definition model.
The sequencing
behavior model, navigation behavior model, termination behavior model,
rollup behavior model, selection and randomization behavior model and
delivery behavior model (see Sequencing Behavior Model SB,
Navigation Behavior Model NB, Termination
Behavior Model TB, Rollup Behavior Model RB,
Selection and Randomization Behavior Model SR,
Delivery Behavior Model DB) describe how
a sequencing system uses a sequencing definition instance for an
activity tree to control the sequencing and delivery of activities.
| No.
|
Name
|
Description
|
Value
Space
|
Default
Value
|
1
|
Sequencing Control Modes
|
Describes the types of sequencing behaviors specified
for an activity.
|
Sequencing Control Mode
|
0..1
|
2
|
Sequencing Rules
|
Describes the details of individual rule-based
sequencing behaviors for an activity.
|
Ordered set of Sequencing Rule Description
|
0..N
|
3
|
Limit Conditions
|
Describes the constraints on the access to an activity
based on time of day, time spent on the activity and number of
attempts.
|
Limit Conditions Description
|
0..1
|
4
|
Auxiliary Resources
|
Describes the auxiliary resources available while the
activity is active.
|
Auxiliary Resource Description
|
0..N
|
5
|
Rollup Rules
|
Describes the details of individual rule-based rollup
behaviors for an activity.
|
Rollup Rule Description
|
0..N
|
6
|
Objectives
|
Describes an unordered collection of objectives
associated with an activity.
|
Objective Description
|
0..N
|
7
|
Objective Maps
|
Describes mappings of local objective information for
an activity to a global shared objective.
|
Objective Map
|
0..N
|
8
|
Rollup Controls
|
Describes the types of rollup behaviors specified for
an activity.
|
Rollup Controls
|
0..1
|
9
|
Selection Controls
|
Describes how the children of an activity should be
selected during the sequencing process.
|
Selection Controls
|
0..1
|
10
|
Randomization Controls
|
Describes how the children of an activity should be
ordered during the sequencing process.
|
Randomization Controls
|
0..1
|
11
|
Delivery Controls
|
Describes actions and controls used when an activity is
delivered.
|
Delivery Controls
|
0..1
|
TM.
Tracking Model
Simple Sequencing processes
uses information about the results of a learner's interactions with
activities, and the learner's record for objectives (e.g., completion,
measure) to control the selection and sequencing of other activities.
The sequencing behaviors are defined in terms of a limited set of
specific data attributes that describe the results of the learner's
interactions. The defined set of attributes used by Simple Sequencing
is called the "tracking model".
The tracking model
consists of:
- An information
model, defined in two parts:
- Objective
Progress Information - information about the results of the
learner's interactions related to an objective.
- Activity
/ Attempt Progress Information - information about a
learner's attempts at an activity.
- Behaviors -
requirements on instantiation and use of the tracking information
model.
TM.1
Tracking Information Model
The tracking information
model describes the data used by a system that delivers sequenced
activities. How this information is encoded, stored, represented, or
bound is outside the scope of this specification. The tracking
information model only describes a set of related data items and
internal constraints on the values of those items.
An implementation
must be capable of representing the range of values described. There
are no additional requirements on implementing the information model.
The tracking model
behaviors description states requirements for the instantiation and use
of the information model.
TM.1.1
Objective Progress Information
Objective progress
information includes results of the learner's interactions related to
an objective. Tracking information for an objective includes the
associated data (i.e., the objective information) listed below. How the
tracking information is associated with an objective is not specified.
Simple Sequencing
descriptions may reference objective information for any local
objective associated with any activity in the activity tree, or any
shared global objective. Objective progress information should be
instantiated for objectives referenced in the activity tree for each
learner as appropriate.
| No.
|
Name
|
Description
|
Value
Space
|
Default
Value
|
1
|
Objective Progress Status
|
Indicates the objective has a satisfaction value (True
or False).
|
Boolean
|
False
|
2
|
Objective Satisfied Status
|
Indicates the objective is satisfied (True or False).
The determination or meaning of satisfied or not satisfied is not
defined in this model.
The value is
unreliable unless Objective Progress Status is
True.
|
Boolean
|
False
|
3
|
Objective Measure Status
|
Indicates the objective has a measure value (True or
False).
|
Boolean
|
False
|
4
|
Objective Normalized Measure
|
The measure (e.g., score) for the objective, normalized
between -1..1 (inclusive). The mechanism to normalize a measure is not
defined in this model.
The value is
unreliable unless Objective Measure Status is
True.
|
Real [-1..1]
Precision of at least
4 significant decimal digits
|
0.0
|
TM.1.2
Activity/Attempt Progress Information
TM. 1.2.1
Activity Progress Information
Activity progress
information (the set of attributes shown below) describes a learner's
progress on an activity. This information describes the cumulative
progress information for an individual activity. Tracking information
for an activity includes the data listed below.
Simple Sequencing
descriptions may reference activity progress information for any
activity in the activity tree. Activity progress information should be
instantiated for each activity in the activity tree for each learner.
The mechanism for determining an activity's duration is not defined in
this model. How the activity progress information is associated with an
activity is not specified.
| No.
|
Name
|
Description
|
Value
Space
|
Default
Value
|
1
|
Activity Progress Status
|
Indicates the activity progress information is (True or
False) meaningful for the activity.
|
Boolean
|
False
|
2
|
Activity Absolute Duration
|
The cumulative duration of all attempts on the
activity, i.e., the time from the initial start of the activity to the
end of the activity. The mechanism for determining the duration is not
defined in this model.
The value is
unreliable unless Activity Progress Status is
True.
|
Duration
Accuracy 0.1 second
|
0.0
|
3
|
Activity Experienced Duration
|
The cumulative experienced
duration of all attempts on the activity, i.e., the time from the
initial start of the activity to the end of the activity, not including
any time elapsed while the activity is suspended (i.e., when the
activity is not being experienced or is inactive). The mechanism for
determining the duration of the suspend time is not defined in this
model.
The value is
unreliable unless Activity Progress Status is
True and the activity is a leaf.
|
Duration
Accuracy 0.1 second
|
0.0
|
4
|
Activity Attempt Count
|
The number of attempts on the activity. The count
includes the current attempt, i.e., 0 means the activity was not
attempted and 1 or greater means it either is in progress or completed.
The value is
unreliable unless Activity Progress Status is
True.
|
Non Negative Integer
|
0
|
TM. 1.2.2
Attempt Progress Information
Attempt progress information
(the set of attributes shown below) describes a learner's progress for
a unique attempt on an activity. This information describes the
progress information for one attempt on an individual activity.
Tracking information for an attempt on an activity includes the data
listed below.
Simple Sequencing
descriptions may reference attempt progress for any activity in the
activity tree. Attempt progress information should be instantiated for
each new attempt for each activity in the activity tree for each
learner. The mechanism for determining an activity's duration is not
defined in this model. How the attempt progress information is
associated with an activity is not specified.
| No.
|
Name
|
Description
|
Value
Space
|
Default
Value
|
1
|
Attempt Progress Status
|
Indicates the attempt progress information (True or
False) is meaningful for the activity attempt.
The value is
unreliable unless Activity Attempt Count (TM.1.2.1)
is greater than (>) 0.
|
Boolean
|
False
|
2
|
Attempt Completion Amount
|
The measure of the completion of the attempt on the
activity, normalized between 0..1 (inclusive) where 1 means the
activity attempt is complete and any lesser value means the activity
attempt is not complete. The mechanism to define the completion amount
is not defined in this model.
The value is
unreliable unless Attempt Progress Status is
True.
|
Real [0..1]
Precision of at least
4 significant decimal digits
|
0.0
|
3
|
Attempt Completion Status
|
Indicates the activity attempt is completed (True or
False). The determination or meaning of completed or incomplete is not
defined in this model.
The value is
unreliable unless Attempt Progress Status is
True.
|
Boolean
|
False
|
4
|
Attempt Absolute Duration
|
The duration of the attempt on the activity, i.e., time
from the start of the attempt to the end of the attempt. The mechanism
for determining the duration is not defined in this model.
The value is
unreliable unless Attempt Progress Status is
True.
|
Duration
Accuracy 0.1 second
|
0.0
|
5
|
Attempt Experienced Duration
|
The experienced duration of the
attempt on the activity, i.e., the time from the start of the attempt
to the end of the attempt, not including elapsed time while the
activity attempt is suspended (i.e., when the activity attempt is not
being experienced or is inactive). The mechanism for determining the
duration or the suspend time is not defined in this model.
The value is
unreliable unless Attempt Progress Status is
True.
|
Duration
Accuracy 0.1 second
|
0.0
|
In
SS v1.0, Attempt Completion Amount cannot be evaluated as a rule
condition and is not managed by the sequencing engine.
|
TM.2
Tracking Model Behaviors
The objective progress
information applies to an objective. It should be instantiated for each
local objective for each learner, and should be initialized for each
new attempt on each activity. It should be instantiated once for each
shared global objective for each learner.
The activity
progress information is for an activity. It should be instantiated for
each activity for each learner.
The attempt
progress information is for an attempt. It should be instantiated for
each learner, and should be initialized for each new attempt on each
activity
There is no
requirement that the value for any specific tracking data item exist.
There is a defined default or initial value for each data item. The
default value shall be supplied upon reference if the data item does
not exist.
Activity and
Attempt durations (absolute and experienced) should be maintained by
the LTS. The mechanisms or processes for managing durations is not
defined in this document. The only requirements for duration values
are:
- The Activity
Absolute Duration (TM.1.2.1) shall equal the sum of all of
the activity's Attempt Absolute Durations - any
absolute duration will occur during some attempt.
- The Activity
Absolute Duration (TM.1.2.1) of a parent activity shall
equal the sum of all of its children's Activity Absolute
Durations. See Figure TM.1.
Figure
TM.1 - Activity Duration Tracking.
Figure TM.1 illustrates how Activity
Experienced Duration and Activity Absolute
Duration are tracked. It shows the tracking of one
attempt on one activity. An attempt on an activity begins; is
suspended; and is resumed twice, finally terminating without a suspend.
Absolute duration is accumulated from the time the activity begins
until it exits. Experienced duration is accumulated from when each
attempt on the activity begins until when it is suspended. Accumulation
resumes when the attempt is resumed, and continues until it is
suspended. Accumulation again resumes when the attempt is again
resumed, and continues until the activity terminates.
As only one attempt
on the activity is shown, the attempt durations (experienced and
absolute) are the same as the activity durations (experienced and
absolute).
The timeline is
independent of the state of the sequencing session. The attempts may
occur across multiple sequencing sessions.
The objective ID
and an associated activity identifier are required to reference a
specific objective. If an activity only has one local objective and
that objective is not shared with any other activity, only the activity
identifier is required.
When a local
objective's data is undefined (either Objective Progress
Status (TM.1.1) or Objective Measure Status
(TM.1.1) are False) and a 'read' Objective Map (SM.7)
is associated with the objective, the corresponding shared global
objective information is used. This is an access-only operation and
does not affect the local objective information for the activity. The
reference to a global objective only uses the objective ID to locate
the actual objective information.
Simple Sequencing
processes access local objective information and the attempt progress
information only for the most recent attempt at an activity by a
learner. If the learner is interacting with the activity, for the
purposes of the tracking model, the most recent attempt is the current
interaction or current attempt. Otherwise, the most recent attempt is
the last fully completed interaction with the activity (if there was
one), i.e., the last completed attempt.
Accessing tracking
information for the most recent attempt at an activity is controlled by
the Use Current Attempt Objective Information (SM.1)
and Use Current Attempt Progress Information
(SM.1) elements. If either of these elements for an activity is True,
the tracking model will not maintain the most recent attempt tracking
data (although an implementation is free to retain the historical
tracking information) for any of the activity's children, unless those
attempts occurred while the current active attempt on the activity is
in progress, i.e., the attempt on the child activity occurred while the
current attempt on its parent activity was active.
There is no
requirement that the attempt progress information be maintained for any
attempt other than the most recent attempt. Simple Sequencing makes no
requirement to maintain prior history for objective information or
overall activity information.
There are no
requirements on how or when the values of the tracking data are set and
updated for the learner. Simple Sequencing relies only on the "current"
values in the information model. Generally, learner interactions with
an activity will result in appropriate changes to the tracking data,
but these mechanics are not specified.
The overall rollup
process (see Rollup Behavior RB) defines
how tracking data for one activity contributes to the tracking data for
ancestors of that activity. How the rollup process uses the tracking
data is not specified here but is detailed in the description of the
behavior of the rollup process.
The termination,
sequencing, and delivery processes (see TB,
Sequencing Behavior SB, and
Delivery Behavior DB) use the tracking
data for elements of the activity tree to determine what happens when
an attempt on an activity ends and how subsequent activities are
sequenced and delivered to the learner. How the processes use the
tracking data are not specified here but are detailed in the
descriptions of the behavior of these processes.
The mechanisms used
to record and set the tracking data are not specified as part of the
information model.
AM.
Activity State Model
Simple Sequencing processes
uses information about the state or status of the learner's
interactions with activities. These attributes are used to control the
overall sequencing process, but are not referenced in any specific
sequencing definition or sequencing rule. The defined set of state
attributes used by Simple Sequencing is called the "activity state
model".
The activity state
model consists of:
- An information
model, defined in two parts:
- Activity
State Information - information that describes the state of
the most recent attempt at an activity.
- Global
State Information - information that describes the overall
state of sequencing.
- Behaviors -
requirements on instantiation and use of the activity state model.
AM.1
Activity State Information Model
The activity state
information model describes the data used by a system that delivers
sequenced activities. How this information is encoded, stored,
represented, or bound is outside the scope of this specification. The
state information model only describes a set of related data items and
internal constraints on the values of those items.
An implementation
must be capable of representing the range of values described. There
are no additional requirements on implementing the activity state
information model.
The activity state
model behaviors description gives requirements for the instantiation
and use of the activity state information model.
AM.1.1
Activity State Information
Activity state information
(the set of attributes shown below) describes a learner's state or
status for an activity.
Simple Sequencing
descriptions and behaviors may reference activity state data for any
activity in the activity tree. Activity state data should be
instantiated for each activity in the activity tree for each learner.
How the activity state information is associated with an activity is
not specified.
The activity state
values of Activity is Active and Activity
is Suspended cannot both be True at the same time.
| No.
|
Name
|
Description
|
Value
Space
|
Default
Value
|
1
|
Activity is Active
|
Indicates that an attempt is currently in progress for
the activity, i.e. the activity has been delivered to the learner and
has not been terminated, or the activity is an ancestor of the Current
Activity (AM.1.2) (True or False).
|
Boolean
|
False
|
2
|
Activity is Suspended
|
Indicates the activity is currently suspended (True or
False).
|
Boolean
|
False
|
3
|
Available Children
|
A list indicating the ordering of the available child
activities for the activity.
|
Ordered List of Activities
|
All children
|
AM.1.2
Global State Information
Global state information
(the set of attributes shown below) describes a learner's state or
status within the overall sequenced learning experience.
Global state
information should be instantiated once for an activity tree for each
learner. How the global state information is associated with an
activity tree is not specified.
| No.
|
Name
|
Description
|
Value
Space
|
Default
Value
|
1
|
Current Activity
|
Indicates the current activity.
If an activity is
being experienced by the learner, the current activity is the activity
delivered by the most recently completed Content Delivery
Environment Process (see Delivery Behavior DB).
If an activity is not
being experienced by the learner, the current activity is the last
activity identified to terminate by the most recently completed Termination
Request Process (see Termination Behavior TB),
or the undeliverable target activity of the last successful Choice
Sequencing Request Process (see Sequencing Behavior SB)
|
Activity
|
None
|
2
|
Suspended Activity
|
Indicates the activity from which a Suspend
All navigation request was triggered.
|
Activity
|
None
|
AM.2
Activity State Model Behaviors
The activity state data is
for an activity. It should be instantiated for each activity for each
learner.
The global state
data is for the overall sequencing process. It should be instantiated
for the entire sequencing process for each learner.
There is no
requirement that the value for any activity state or global state data
item exist. There is a defined default or initial value for each data
item. The default value shall be supplied upon reference if the data
item does not exist.
The mechanisms used
to record and set the activity state data are not specified as part of
the information model.
The navigation,
termination, rollup, selection and randomization, sequencing, and
delivery processes (see Navigation Behavior NB,
Termination Behavior TB, Selection
and Randomization Behavior SR, Sequencing
Behavior SB, Rollup Behavior RB,
Delivery Behavior DB) use
the activity data for elements of the activity tree and the global
state data to determine the activities that are sequenced and delivered
to the learner. How these processes use the activity and global state
data are not specified here but are detailed in the descriptions of the
behavior of these processes.
Although the
detailed behavior for changing the Current Activity
is described in the termination, sequencing, and delivery processes
(see Termination Behavior TB,
Sequencing Behavior SB, and
Delivery Behavior DB) that follow, the
state transition diagram in Figure AM.1 for the Current
Activity is intended to provide a summary of the behaviors.
Figure
AM.1 - The Current Activity State Transition Diagram.
Figure AM.1 depicts the
state transitions of the Current Activity; it
summarizes the effects of the various sequencing processes on the Current
Activity and the activity's state.
Begin Loop:
Starting at the star, the
sequencer assumes that a content resource has been delivered to the
learner; the resource's associated activity is the Current
Activity (AM.1.2) - it must be leaf of the activity tree and
it is currently active. All ancestors (along the 'active path') of the Current
Activity are also active, because attempts on an activity
only occur within the context of attempts on the activity's ancestors.
The state of the
activity tree remains like this until some navigation request triggers
the Overall Sequencing Process (see Overall Sequencing Process OP).
If the navigation request is valid, it will result in a termination
request to end the attempt on the Current Activity
- its Activity State attribute of Activity is Active
becomes false. The Current Activity remains the
leaf activity.
When an attempt on
a leaf activity ends, the system may indicate the state of the
termination was to suspend the activity - this is done in the End
Attempt Process (UP.4). If the system indicates this, the Activity
is Suspended (AM.1.1) for the leaf activity (still the Current
Activity) becomes true.
During Termination
Behavior, Exit Action Rules (see Sequencing Exit Action
Rules Subprocess TB.2.1) are evaluated on all of the
ancestors of the Current Activity. The result of
this subprocess will be that either the leaf activity remains the Current
Activity, or an ancestor of the leaf activity becomes the Current
Activity.
During the
Termination Behavior, post condition rules are evaluated (see Sequencing
Post Condition Rules Subprocess TB.2.2) only on the Current
Activity, which is either the leaf activity or the activity
identified during the Sequencing Exit Action Rule Subprocess,
if that Current Activity is not suspended.
The Sequencing
Behavior processes any pending sequencing request, which may result in
a delivery request. It is possible, during the evaluation of a Choice
sequencing request (see Choice Sequencing Request Process
SB.2.9), the the process succeeds in reaching the target activity, but
the activity is not deliverable, e.g., the activity is not a leaf. If
this happens, the Current Activity is moved to
the target of the successful Choice sequencing
request and any intermediate activities are terminated.
The Delivery
Behavior validates any pending delivery request. If the delivery
request is validated, the Content Delivery Environment
Process (DB.2) is invoked. During this process, the activity
identified by the delivery request becomes the Current
Activity and an attempt is started (or resumed) on it - the Current
Activity has Activity is Active equal
to true and Activity is Suspended equal to false.
Repeat Loop
OP.
Overall Sequencing Process
The overall sequencing
process combines all of the other elements of Simple Sequencing to
produce the complete sequencing, delivery and control of learning
experience and relates all of the other Simple Sequencing processes and
behaviors.
- Navigation
Behavior Model - The Simple Sequencing process that
evaluates a navigation request and determines the exit and sequencing
requests that should be processed to identify and deliver content to
the learner (see Navigation Behavior NB).
- Termination
Behavior Model - The Simple Sequencing process that
processes a termination request to terminate or suspend an activity or
set of activities (see Termination Behavior TB).
- Selection
and Randomization Behavior Model - The Simple Sequencing
process that selects and reorders activities before being used in
sequencing (see Selection and Randomization SR).
- Sequencing
Behavior Model - The Simple Sequencing process that
evaluates a sequencing request in terms of the content model described
by the activity tree and determines the actual content object that
should be delivered to the learner (see Sequencing Behavior SB).
- Delivery
Behavior Model - The Simple Sequencing process that
validates that the content resources for the identified activity may be
delivered, i.e., all of the conditions that apply to the delivery of
the content for the activity and attempt still hold (see Delivery
Behavior DB).
The overall sequencing
process describes only a logical workflow. It makes no assumption on
how or when the various steps of the process are invoked, or in what
order they are processed.
The behavior of the
sequencing process is defined in terms of different processes:
- Navigation
Request Process - processes the navigation request to
identify the corresponding sequencing and termination requests.
- Termination
Request Process - processes the termination request, sets
the corresponding activity state, evaluates exit and post condition
rules, and may identify a sequencing request.
- Selection
and Randomization Processes - select and order activities as
defined prior to processing a sequencing request.
- Sequence
Request Process - processes the sequencing request that
controls all sequencing behavior, combining:
- Start
Sequencing Request Process - processes a Start
sequencing request.
- Resume
All Sequencing Request Process - processes a Resume
All sequencing request.
- Continue
Sequencing Request Process - processes a Continue
sequencing request.
- Previous
Sequencing Request Process - processes a Previous
sequencing request.
- Choice
Sequencing Request Process - processes a Choice sequencing
request.
- Retry
Sequencing Request Process - processes a Retry sequencing
request.
- Exit
Sequencing Request Process - processes an Exit
sequencing request.
- Delivery
Request Process - processes a delivery request.
- Content
Delivery Environment Process - manages the actual delivery
of content resources to the learner.
OP.1
Overall Behavior
The overall behavior
functions within the scope of some Learning Technology System (LTS),
e.g., an LMS, that has identified learners and internal representations
of content activity trees, sequencing descriptions, content resources,
and information models used to track the learner and record state. How
these actual information models are implemented or initialized is not
specified.
An implementation
must be capable of representing the processes described and have the
implemented processes exhibit the behavior described. There are no
additional requirements on implementing the overall sequencing
behavior.
When the learner
initiates a learning experience, the LTS will generate either a Start
or Resume All navigation request. Other
interactions with the LTS will result in other navigation requests. How
or when a navigation request is generated is not specified.
The sequencing
system operates in a loop, awaiting external navigation requests,
processing these, possibly delivering content, and then waiting for
additional requests.
The sequencing
system continues operations until terminated by the controlling LTS.
The navigation
requests are translated by the navigation process into termination and
sequencing requests. If the learner is experiencing an activity, the
navigation request results in the current activity being terminated by
the termination process when it processes the termination request -
only one activity may be active. Sequencing rules in the termination
process may override the sequencing request. The rollup process is
performed to propagate results from an activity to its ancestor
activities. The sequencing request is processed by the sequencing
process to determine the next activity in the sequence, i.e., the next
activity to present to the learner. If the sequencing process
identifies an activity, the designated activity is passed to the
delivery process. The delivery process will verify that the activity
should be delivered, i.e., that the limit conditions and sequencing
rules applied to the activity permit it to be delivered. If the
delivery process identifies an activity for delivery, the auxiliary
resource descriptions are provided to the LTS, content resources
associated with the identified activity are presented to the learner,
and the learner's interactions with the content may be tracked by the
LTS (how this tracking is done is not specified in Simple Sequencing).
Once the content has been delivered to the learner, the Overall
Sequencing Process waits for the next navigation request.
Figure OP.1 depicts
the process flow of the Overall Sequencing Process.
Figure
OP.1 - The process flow of the Overall Sequencing Process.
Figure
OP.2 - Sequencing Session Timeline.
Figure OP.2 illustrates a
portion of a sequencing session. A sequencing session may be triggered
in one of three ways:
- A
Start sequencing request.
- A
Resume All sequencing request.
- A
Choice sequencing request prior to either a Start
or Resume All sequencing request.
A sequencing session ends
normally when an Exit sequencing request is
processed from the root of the activity tree.
The overall
behavior assumes one request is fully processed before another request
is processed. There is no constraint on the timing of when requests are
received. The description does not detail or otherwise make any
assumptions as to how the requests are serialized or how any request
may preempt or terminate any in-process request.
The Overall
Sequencing Process is specified by the following pseudo
code. The pseudo code describes only the processing. How this process
is implemented or how information is encoded, stored, represented, or
bound is outside the scope of this specification. The Overall
Sequencing Process only describes the expected behavior that
an implementation will exhibit. See Figure OP.2.
|
Overall
Sequencing Process:
|
Reference: Section:
Content Delivery
Environment Process DB.2
Delivery Request
Process DB.1.3
Navigation Request
Process NB.2.1
Sequencing Request
Process SB.2.12
Termination Request
Process TB.2.3
|
1.
|
Loop
- Wait for a navigation request
|
|
1.1.
|
Apply
the Navigation Request Process to the navigation
request
|
|
1.2.
|
If
the Navigation Request Process returned
navigation request Not Valid Then
|
|
1.2.1.
|
Handle
the navigation request error
|
Behavior not specified
|
1.2.2.
|
Continue
Loop - wait for the next navigation request
|
|
|
End
If
|
|
1.3.
|
If
there is a termination request Then
|
If the current activity is active, end the attempt on
the current activity.
|
1.3.1.
|
Apply
the Termination Request Process to the
termination request
|
|
1.3.2.
|
If
the Termination Request Process returned
termination request Not Valid Then
|
|
1.3.2.1.
|
Handle
the termination request error
|
Behavior not specified
|
1.3.2.2.
|
Continue
Loop - wait for the next navigation request
|
|
|
End
If
|
|
1.3.3.
|
If
Termination Request
Process returned a sequencing
request Then
|
|
1.3.3.1.
|
Replace
any pending sequencing request by the sequencing request returned by
the Termination Request Process
|
There can only be one pending sequencing request. Use
the one returned by the termination request process, if it exists.
|
|
End
If
|
|
|
End
If
|
|
1.4.
|
If
there is a sequencing request Then
|
|
1.4.1.
|
Apply
the Sequencing Request Process to the sequencing
request
|
|
1.4.2.
|
If
the Sequencing Request Process (SB.2.12)
returned sequencing request Not Valid Then
|
|
1.4.2.1.
|
Handle
the sequencing request error
|
Behavior not specified
|
1.4.2.2.
|
Continue
Loop - wait for the next navigation request
|
|
|
End
If
|
|
1.4.3.
|
If
the Sequencing Request Process returned a request
to end the sequencing session Then
|
|
1.4.3.1.
|
Exit
Overall Sequencing Process - the
sequencing session has terminated; return control to LTS
|
Exiting from the root of the activity tree ends the
sequencing session; return control to the LTS
|
|
End
If
|
|
1.4.4.
|
If
the Sequencing Request Process did not identify
an activity for delivery Then
|
|
1.4.4.1.
|
Continue
Loop - wait for the next navigation request
|
|
|
End
If
|
|
1.4.5.
|
delivery
request is for the activity identified by the Sequencing
Request Process
|
|
|
End
If
|
|
1.5.
|
If
there is a delivery request Then
|
|
1.5.1.
|
Apply
the Delivery Request Process to the delivery
request
|
|
1.5.2.
|
If
the Delivery Request Process returned delivery
request Not Valid Then
|
|
1.5.2.1.
|
Handle
the delivery request error
|
Behavior not specified
|
1.5.2.2.
|
Continue
Loop - wait for the next navigation request
|
|
|
End
If
|
|
1.5.3.
|
Apply
the Content Delivery Environment Process to the
delivery request
|
|
|
End
If
|
|
2.
|
End
Loop - wait for the next navigation request
|
|
NB.
Navigation Behavior Model
When a learner is
interacting with a learning experience through a user interface, each
leaner request to move through the content or branch within the
learning experience results in a "navigation event", e.g., a click to
move to the next activity. These events map to a set of "navigation
requests". In turn, each navigation request maps to an "termination
request" and a "sequencing request" that will be used to both terminate
the attempt on the current activity and determine the 'next' activity
in the learning experience. There is a mapping or resolution process
that converts a navigation request into the corresponding termination
and sequencing requests. The process of evaluating the navigation
request and identifying the appropriate termination and sequencing
requests (or returning an error) is called the "navigation process".
The navigation
process makes no assumptions as to how or when a navigation request is
generated. The navigation process makes no assumptions about user
interfaces and rendering of navigation structures and controls, either
within content objects or external to content objects. Mapping of a
user interaction to the generation of a navigation requests outside of
the scope of this specification. The navigation behavior is defined
only for the navigation request.
The navigation
process only provides minimal insurance that navigation requests are
valid. If the navigation process declares a navigation request valid,
it does not guarantee that any ensuing sequencing request will result
in identifying a 'next' activity. The navigation process makes no
assumptions on how or when the identified termination and sequencing
requests will be processed. In most cases, the termination and
sequencing requests will be passed immediately, by the overall
sequencing process (see Overall Sequencing Process OP),
to the termination and sequencing processes.
The overall
sequencing process relates the navigation process to the termination,
rollup, selection and randomization, sequencing, and delivery
processes.
The navigation
process only uses Sequencing Control Mode data
from the sequencing definition model.
The navigation
process does not use data from the tracking model.
The navigation
process uses data from the activity state model.
The behavior of the
navigation process is defined in terms of a single process:
- Navigation
Request Process - processes the navigation request to
identify the corresponding sequencing and termination requests.
NB.1
Navigation Requests
The navigation process
responds to one of a set of different navigation requests. A navigation
request defines the actions to be performed when the request is
processed. The request names are tokens in a vocabulary. The names have
no semantics or meanings themselves. The definition of the action is
the complete definition of the required behavior.
| Navigation
Request
|
Action
|
Start
|
If the Current Activity (AM.1.2) is
undefined, Issue a Start sequencing request.
|
Resume All
|
If the Current Activity (AM.1.2) is
undefined and the Suspended Activity (AM.1.2) is defined,
Issue a Resume All sequencing request.
|
Continue
|
If Activity is Active (AM.1.1)
for the Current Activity (AM.1.2) is True,
Issue an Exit termination request.
Issue a Continue
sequencing request.
|
Previous
|
If Activity is Active (AM.1.1)
for the Current Activity (AM.1.2) is True,
Issue an Exit termination request.
Issue a Previous
sequencing request.
|
Forward
|
Issue a sequencing request to traverse the
"history-based activity record" forward in time.
The corresponding
sequencing request and associated behavior is not specified in this
version of the Simple Sequencing Specification.
|
Backward
|
Issue a sequencing request to traverse the
"history-based activity record" backward in time.
The corresponding
sequencing request and associated behavior is not specified in this
version of the Simple Sequencing Specification.
|
Choice
|
If Activity is Active (AM.1.1)
for the Current Activity (AM.1.2) is True,
Issue an Exit termination request.
Issue a Choice
sequencing request. The request is accompanied by the identification of
the target activity.
|
Exit
|
Issue an Exit termination request.
Issue an Exit
sequencing request.
The current attempt on
the Current Activity (AM.1.2) is terminated
normally; the attempt is over. The termination of the activity was not
the result of any other external navigation event (e.g., Continue,
Previous, Choice).
|
Exit All
|
Issue an Exit All termination
request.
Issue an Exit
sequencing request.
|
Suspend All
|
Issue a Suspend All termination
request.
Issue an Exit
sequencing request.
The current attempt on
the Current Activity (AM.1.2) and all of its
ancestors are terminated normally; the attempts are not over and the
activities are not complete. The activities may be resumed at some time
in the future (resumption is not a new attempt). A Simple Sequencing
processor must record sufficient state and tracking information so that
the activities may be resumed in the future.
|
Abandon
|
Issue an Abandon termination
request.
Issue an Exit
sequencing request.
The current attempt on
the Current Activity (AM.1.2) is terminated
abnormally and the activity is not complete. The attempt may not be
resumed. There is no rollback of any tracking data.
|
Abandon All
|
Issue an Abandon All termination
request.
Issue an Exit
sequencing request.
The current attempt on
the Current Activity (AM.1.2) and all of its
ancestors are terminated abnormally and the activities are not
complete. The attempts may not be resumed. There is no rollback of any
tracking data.
|
NB.2
Navigation Behavior
The navigation behavior
describes how a navigation processor interprets a navigation request to
validate the navigation request and to identify the corresponding
termination and sequencing requests.
An implementation
must be capable of representing the processes described and have the
implemented process exhibit the behavior described. There are no
additional requirements on implementing the navigation behavior model.
NB.2.1
Navigation Request Process
The Navigation
Request Process examines the navigation request, validates
it and determines the corresponding termination and sequencing
requests. The process may return a sequencing request. The process may
optionally return an termination request. If the process does not
return an termination request, there is no termination request for
further processing. The process implements the behaviors that describe
the navigation requests.
The Navigation
Request Process for a navigation request is specified by the
following pseudo code. The pseudo code describes only the navigation
request processing and conversion to termination and sequencing
requests. How this process is implemented or how information is
encoded, stored, represented, or bound is outside the scope of this
specification. The Navigation Request Process
only describes the expected behavior that an implementation will
exhibit.
|
Navigation
Request Process (for a navigation request and possibly a
specified activity, returns the validity of the navigation request; may
return a termination request, a sequencing request, and/or a target
activity):
|
Reference: Section:
Current Activity AM.1.2
Sequencing Control
Choice SM.1
Sequencing Control
Choice Exit SM.1
Sequencing Control
Flow SM.1
Sequencing Control
Forward Only SM.1
Suspended Activity
AM.1.2
|
1.
|
Case:
navigation request is Start
|
|
1.1.
|
If
the Current Activity is Not
Defined Then
|
Make sure the sequencing session has not already begun.
|
1.1.1.
|
Exit
Navigation Request Process (Navigation
Request: Valid; Sequencing
Request: Start; Termination
Request: n/a; Target
Activity: n/a)
|
|
1.2.
|
Else
|
|
1.2.1.
|
Exit
Navigation Request Process (Navigation
Request: Not Valid; Sequencing
Request: n/a; Termination
Request: n/a; Target
Activity: n/a)
|
|
|
End
If
|
|
|
End
Case
|
|
2.
|
Case:
navigation request is Resume All
|
|
2.1.
|
If
the Current Activity is Not
Defined Then
|
Make sure the sequencing session has not already begun.
|
2.1.1.
|
If
the Suspended Activity is Defined
Then
|
Make sure the previous sequencing session ended with a
suspend all request.
|
2.1.1.1.
|
Exit
Navigation Request Process (Navigation
Request: Valid; Sequencing
Request: Resume All; Termination
Request: n/a; Target
Activity: n/a)
|
|
2.1.2.
|
Else
|
|
2.1.2.1.
|
Exit
Navigation Request Process (Navigation
Request: Not Valid;
Sequencing Request: n/a;
Termination Request: n/a;
Target Activity: n/a)
|
|
|
End
If
|
|
2.2.
|
Else
|
|
2.2.1.
|
Exit
Navigation Request Process (Navigation
Request: Not Valid;
Sequencing Request: n/a;
Termination Request: n/a;
Target Activity: n/a)
|
|
|
End
If
|
|
|
End
Case
|
|
3.
|
Case:
navigation request is Continue
|
|
3.1.
|
If
the Current Activity is Not
Defined Then
|
Make sure the sequencing session has already begun.
|
3.1.1.
|
Exit
Navigation Request Process (Navigation
Request: Not Valid; Sequencing
Request: n/a; Termination
Request: n/a; Target
Activity: n/a)
|
|
|
End
If
|
|
3.2.
|
If
the Current Activity is not the root of the
activity tree And the Sequencing
Control Flow for the parent of the Current
Activity is True Then
|
Validate that a 'flow' sequencing request can be
processed from the current activity.
|
3.2.1.
|
If
the Activity is Active for the Current
Activity is True Then
|
If the current activity has not been terminated,
terminate the current the activity.
|
3.2.1.1.
|
Exit
Navigation Request Process (Navigation
Request: Valid; Termination
Request: Exit; Sequencing
Request: Continue; Target
Activity: n/a)
|
|
3.2.2.
|
Else
|
|
3.2.2.1.
|
Exit
Navigation Request Process (Navigation
Request: Valid; Sequencing
Request: Continue; Termination
Request: n/a; Target
Activity: n/a)
|
|
|
End
If
|
|
3.3.
|
Else
|
|
3.3.1.
|
Exit
Navigation Request Process (Navigation
Request: Not Valid; Sequencing
Request: n/a; Termination
Request: n/a; Target
Activity: n/a)
|
Flow is not enabled or the current activity is the root
of the activity tree.
|
|
End
If
|
|
|
End
Case
|
|
4.
|
Case:
navigation request is Previous
|
|
4.1.
|
If
the Current Activity is Not
Defined Then
|
Make sure the sequencing session has already begun.
|
4.1.1.
|
Exit
Navigation Request Process (Navigation
Request: Not Valid;
Sequencing Request: n/a;
Termination Request: n/a;
Target Activity: n/a)
|
|
|
End
If
|
|
4.2.
|
If
the Current Activity is not the root of the
activity tree Then
|
There is no activity logically 'previous' to the root
of the activity tree.
|
4.2.1.
|
If
the Sequencing Control Flow for the parent of the
Current Activity is True
And the Sequencing
Control Forward Only for the parent of the Current
Activity is False Then
|
Validate that a 'flow' sequencing request can be
processed from the current activity.
|
4.2.1.1.
|
If
the Activity is Active for the Current
Activity is True Then
|
If the current activity has not been terminated,
terminate the current the activity.
|
4.2.1.1.1.
|
Exit
Navigation Request Process (Navigation
Request: Valid; Termination
Request: Exit; Sequencing
Request: Previous; Target
Activity: n/a)
|
|
4.2.1.2.
|
Else
|
|
4.2.1.2.1.
|
Exit
Navigation Request Process (Navigation
Request: Valid; Sequencing
Request: Previous; Termination
Request: n/a; Target
Activity: n/a)
|
|
|
End
If
|
|
4.2.2.
|
Else
|
|
4.2.2.1.
|
Exit
Navigation Request Process (Navigation
Request: Not Valid; Sequencing
Request: n/a; Termination
Request: n/a; Target
Activity: n/a)
|
Violates control mode.
|
|
End
If
|
|
4.3.
|
Else
|
|
4.3.1.
|
Exit
Navigation Request Process (Navigation
Request: Not Valid; Sequencing
Request: n/a; Termination
Request: n/a; Target
Activity: n/a)
|
Cannot move backward from the root of the activity tree.
|
|
End
If
|
|
|
End
Case
|
|
5.
|
Case:
navigation request is Forward
|
Behavior not defined.
|
5.1.
|
Exit
Navigation Request Process (Navigation
Request: Not Valid; Sequencing
Request: n/a; Termination
Request: n/a; Target
Activity: n/a)
|
|
|
End
Case
|
|
6.
|
Case:
navigation request is Backward
|
Behavior not defined.
|
6.1.
|
Exit
Navigation Request Process (Navigation
Request: Not Valid; Sequencing
Request: n/a; Termination
Request: n/a; Target
Activity: n/a)
|
|
|
End
Case
|
|
7.
|
Case:
navigation request is Choice
|
|
7.1.
|
If
the activity specified by the Choice
navigation request exists within the activity tree Then
|
Make sure the target activity exists in the activity
tree.
|
7.1.1.
|
If
the activity specified by the Choice
navigation request is the root of the activity tree Or
the Sequencing Control Choice for the parent of
the activity specified by the Choice navigation
request is True Then
|
Validate that a 'choice' sequencing request can be
processed on the target activity.
|
7.1.1.1.
|
Find
the common ancestor of the Current Activity and
the activity specified by the Choice navigation
request
|
|
7.1.1.2.
|
Form
the activity path as the ordered series of activities from the Current
Activity to the common ancestor, excluding the common
ancestor.
|
The common ancestor will not terminate as a result of
processing the choice sequencing request.
|
7.1.1.3.
|
If
the activity path is Not Empty
Then
|
|
7.1.1.3.1.
|
For
each activity in the activity path
|
Make sure that 'choosing' the target will not force an
active activity to terminate, if that activity does not allow choice to
terminate it.
|
7.1.1.3.1.1.
|
If
the Activity is Active for the activity is True
And the Sequencing
Control Choice Exit for the activity is False
Then
|
|
7.1.1.3.1.1.1.
|
Exit
Navigation Request Process (Navigation
Request: Not Valid; Sequencing
Request: n/a; Termination
Request: n/a; Target
Activity: n/a)
|
Violates control mode.
|
|
End
If
|
|
|
End
For
|
|
7.1.1.4.
|
End
If
|
|
7.1.1.4.1.
|
If
the Activity is Active for the Current
Activity is True Then
|
If the current activity has not been terminated,
terminate the current the activity.
|
7.1.1.4.1.1.
|
Exit
Navigation Request Process (Navigation
Request: Valid; Termination
Request: Exit; Sequencing
Request: Choice; Target
Activity: the activity specified by the Choice
navigation request)
|
|
7.1.1.4.2.
|
Else
|
|
7.1.1.4.2.1.
|
Exit
Navigation Request Process (Navigation
Request: Valid; Sequencing
Request: Choice; Termination
Request: n/a; Target
Activity: the activity specified by the Choice
navigation request)
|
|
|
End
If
|
|
7.1.2.
|
Else
|
|
7.1.2.1.
|
Exit
Navigation Request Process (Navigation
Request: Not Valid; Sequencing
Request: n/a; Termination
Request: n/a; Target
Activity: n/a)
|
Violates control mode.
|
|
End
If
|
|
7.2.
|
Else
|
|
7.2.1.
|
Exit
Navigation Request Process (Navigation
Request: Not Valid; Sequencing
Request: n/a; Termination
Request: n/a; Target
Activity: n/a)
|
Target activity does not exist.
|
|
End
If
|
|
|
End
Case
|
|
8.
|
Case:
navigation request is Exit
|
|
8.1.
|
If
the Current Activity is Defined
Then
|
Make sure the sequencing session has already begun.
|
8.1.1.
|
If
the Activity is Active for the Current
Activity is True Then
|
Make sure the current activity has not already been
terminated.
|
8.1.1.1.
|
Exit
Navigation Request Process (Navigation
Request: Valid; Termination
Request: Exit; Sequencing
Request: Exit; Target
Activity: n/a)
|
|
8.1.2.
|
Else
|
|
8.1.2.1.
|
Exit
Navigation Request Process (Navigation
Request: Not Valid; Sequencing
Request: n/a; Termination
Request: n/a; Target
Activity: n/a)
|
Activity has already terminated.
|
|
End
If
|
|
8.2.
|
Else
|
|
8.2.1.
|
Exit
Navigation Request Process (Navigation
Request: Not Valid; Sequencing
Request: n/a; Termination
Request: n/a; Target
Activity: n/a)
|
|
|
End
If
|
|
|
End
Case
|
|
9.
|
Case:
navigation request is Exit All
|
|
9.1.
|
If
the Current Activity is Defined
Then
|
If the sequencing session has already begun,
unconditionally terminate all active activities.
|
9.1.1.
|
Exit
Navigation Request Process (Navigation
Request: Valid; Termination
Request: Exit All; Sequencing
Request: Exit; Target
Activity: n/a)
|
|
9.2.
|
Else
|
|
9.2.1.
|
Exit
Navigation Request Process (Navigation
Request: Not Valid; Sequencing
Request: n/a; Termination
Request: n/a; Target
Activity: n/a)
|
|
|
End
If
|
|
|
End
Case
|
|
10.
|
Case:
navigation request is Abandon
|
|
10.1.
|
If
the Current Activity is Defined
Then
|
Make sure the sequencing session has already begun.
|
10.1.1.
|
If
the Activity is Active for the Current
Activity is True Then
|
Make sure the current activity has not already been
terminated.
|
10.1.1.1.
|
Exit
Navigation Request Process (Navigation
Request: Valid; Termination
Request: Abandon; Sequencing
Request: Exit; Target
Activity: n/a)
|
|
10.1.2.
|
Else
|
|
10.1.2.1.
|
Exit
Navigation Request Process (Navigation
Request: Not Valid; Sequencing
Request: n/a; Termination
Request: n/a; Target
Activity: n/a)
|
|
|
End
If
|
|
10.2.
|
Else
|
|
10.2.1
|
Exit
Navigation Request Process (Navigation
Request: Not Valid; Sequencing
Request: n/a; Termination
Request: n/a; Target
Activity: n/a)
|
|
|
End
If
|
|
|
End
Case
|
|
11.
|
Case:
navigation request is Abandon All
|
|
11.1
|
If
the Current Activity is Defined
Then
|
If the sequencing session has already begun,
unconditionally abandon all active activities.
|
11.1.1.
|
Exit
Navigation Request Process (Navigation
Request: Valid; Termination
Request: Abandon All; Sequencing
Request: Exit; Target
Activity: n/a)
|
|
11.2.
|
Else
|
|
11.2.1.
|
Exit
Navigation Request Process (Navigation
Request: Not Valid; Sequencing
Request: n/a; Termination
Request: n/a; Target
Activity: n/a)
|
|
|
End
If
|
|
|
End
Case
|
|
12.
|
Case:
navigation request is Suspend All
|
|
12.1.
|
If
the Current Activity is Defined
Then
|
If the sequencing session has already begun.
|
12.1.1.
|
Exit
Navigation Request Process (Navigation
Request: Valid; Termination
Request: Suspend All; Sequencing
Request: Exit; Target
Activity: n/a)
|
|
12.2.
|
Else
|
|
12.2.1.
|
Exit
Navigation Request Process (Navigation
Request: Not Valid; Sequencing
Request: n/a; Termination
Request: n/a; Target
Activity: n/a)
|
|
|
End
If
|
|
|
End
Case
|
|
13.
|
Exit
Navigation Request Process (Navigation
Request: Not Valid; Sequencing
Request: n/a; Termination
Request: n/a; Target
Activity: n/a)
|
Undefined navigation request.
|
TB.
Termination Behavior Model
The Simple Sequencing
process delivers activities and tracks the current activity and other
activities that have been attempted but not completed. Activities
finish or are terminated due to other events and requests. When the
activity finishes, the triggering event may imply that one or more
other activities must also terminate or exit. Upon termination, post
condition sequencing rules may imply that a pending sequencing request
is replaced by the sequencing request specified in the sequencing rule.
The process of evaluating exit action and post condition sequencing
rules, recording information about the state of the activity when it
finishes, and terminating other activities based on the defined
sequencing behaviors is called the "termination process".
The termination
process makes no assumptions as to how or when a termination request is
generated.
The overall
sequencing process (see Overall Sequencing Process OP)
relates the termination process to the navigation, sequencing, rollup,
selection and randomization, and delivery processes.
The termination
process is controlled by parts of the sequencing definition model:
- Sequencing
Rule Definitions - rules that when applied to an activity
are used to specify sequencing behaviors for the activity.
The termination process uses
parts of the tracking model:
- Objective
Information - information about the results of the learner's
interactions related to an objective.
- Progress
Information - information about a learner's attempt at an
activity.
The termination process uses
data from the activity state model:
- Activity
State Information - information about the results of the
learner's state for an activity.
The behavior of the
termination process is defined in terms of three process and two
associated subprocesses:
- Termination
Request Process - processes the termination request on the
Current Activity (AM.1.2).
- End
Attempt Process (UP.4) - processes completion data when the
sequencing engine, not content objects, controls completion, and ends
the current attempt on the activity.
- Overall
Rollup Process - propagates state information (see Tracking
Model TM) from Current Activity (AM.1.2)
to its ancestors.
- Sequencing
Exit Action Rules Subprocess - evaluates Exit action
sequencing rules when an activity terminates and may identify an
exiting ancestor.
- Sequencing
Post Condition Rules Subprocess - evaluates Post Condition
sequencing rules when an non-suspended activity terminates and may
identify a sequencing request.
TB.1
Termination Requests
The termination process
responds to one of a set of different termination requests. A
termination request defines the actions to be performed when the
request is processed. The request names are tokens in a vocabulary. The
names have no semantics or meanings themselves. The definition of the
action is the complete definition of the required behavior.
| Termination
Request
|
Action
|
Exit
|
The current attempt on the Current Activity
(AM.1.2) is terminated normally; the attempt is over.
|
Exit All
|
The current attempts on all active activities (from the
root to the Current Activity (AM.1.2),
inclusive) are terminated normally; the attempts are over.
|
Suspend All
|
The current attempts on all active activities (from the
root to the Current Activity (AM.1.2),
inclusive) are suspended. The attempt on the Current Activity
(AM.1.2) may be resumed.
|
Abandon
|
The current attempt on the Current Activity
(AM.1.2) is terminated abnormally; the activity is not complete. The
attempt may not be resumed. There is no rollback of any tracking data.
|
Abandon All
|
The current attempts on all active activities (from the
root to the Current Activity (AM.1.2),
inclusive) are terminated abnormally; the activities are not complete.
Attempts on any abandoned activity may not be resumed. There is no
rollback of any tracking data.
|
TB.2
Termination Behavior
The termination behavior
describes how a termination request is processed. It marks attempts on
activities as ended, updates the state of the activity tree, processes
exit action and post condition sequencing rules, and may identify an
alternative sequencing request.
An implementation
must be capable of representing the processes described and have the
implemented process exhibit the behavior described. There are no
additional requirements on implementing the termination behavior model.
The termination
behavior relies on the data descriptions from the sequencing definition
model (see Sequencing Definition Model SM),
the tracking model (see Tracking Model TM),
and the activity state model (see Activity State Model AM).
These information models also specify default data values in the
activity tree that govern the access to activity, tracking, or state
data. Simple Sequencing does not specify how content can set the data
values in the tracking model.
TB.2.1
Sequencing Exit Action Rules Subprocess
Exit action sequencing rules
on the current activity's ancestors are evaluated when the attempt on
the current activity ends. This rule evaluation may result in the
identification of one and only one of the current activity's ancestors
to also terminate. The current attempt on all descendents of the
identified activity end.
Sequencing rule
conditions are specified by the Sequencing Rule Definitions. Sequencing
rules are evaluated using the Sequencing Rules Check Process
(UP.2).
- This subprocess
assumes that the Overall Rollup Process (RB.1.4)
has completed. It evaluates only sequencing rules whose actions are
defined as Exit Action rules (see SM 1.2 Sequencing Rule
Description), for all ancestors of the current activity.
Rules on each activity, beginning at the root of the sequencing tree,
are evaluated in order. The subprocess stops at the first rule that
evaluates to True. This subprocess may cause one and only one of the
current activity's ancestors to terminate. If one of the current
activity's ancestors terminates, all of its active descendents also
terminate and that activity becomes the current activity. See Figures
TB.1 and TB.2.
Figure
TB.1 - Sequencing Exit Action Rules Subprocess - Start State.
Figure TB.1 illustrates an
activity tree for a sequencing session that is "in progress". The
current activity and all of its ancestors are active - an attempt on
them is in progress and durations are accumulating.
The current
activity has been identified in a termination request and the Exit
request process has been initiated, e.g., a navigation request
triggered exit. The End Attempt Process (UP.4)
is applied to the current activity and Rollup is performed to ensure
the activity tree is properly updated.
When the Sequencing
Exit Action Rules Subprocess is applied to the current
activity, one and only one of its ancestors may terminate. The ancestor
that terminates is the one closest to the root of the activity tree
that has an Exit Action Rule that evaluates to True.
For example, assume both the parent activity and the grandparent
activity of the current activity have Exit Action Rules
that evaluate to True; only the grandparent activity will terminate.
When an ancestor of the current activity terminates, the Sequencing
Exit Action Rules Subprocess will terminate the attempt on
the ancestor and all of its active descendents by applying the Terminate
Descendent Attempts Process (UP.3) and make the current
activity the activity identified for exit. For the example described
above, Figure TB.2 shows the activity tree after the Sequencing
Exit Action Rules Subprocess has completed.
Figure
TB.2 - Sequencing Exit Action Rule Subprocess - End State.
The Sequencing
Exit Action Rules Subprocess evaluates sequencing rules for
the ancestors of the current activity, and as a result, one of those
activities may terminate.
The Sequencing
Exit Action Rules Subprocess is specified by the following
pseudo code. The pseudo code describes only the exit action rule
processing. How this process is implemented or how information is
encoded, stored, represented, or bound is outside the scope of this
specification. The Sequencing Exit Action Rules Subprocess
only describes the expected behavior that an implementation will
exhibit.
|
Sequencing
Exit Action Rules Subprocess (for the Current
Activity; may change the Current Activity):
|
Reference: Section:
Current Activity AM.1.2
End Attempt Process
UP.4
Sequencing Rules Check
Process UP.2
Sequencing Rule
Description SM.2
Terminate Descendent
Attempts Process UP.3
|
1.
|
Form
the activity path as the ordered series of activities from the root of
the activity tree to the parent of the Current Activity,
inclusive
|
|
2.
|
Initialize
exit target to Null
|
|
3.
|
For
each activity in the activity path
|
Evaluate all exit rules along the active path, starting
at the root of the activity tree.
|
3.1.
|
Apply
the Sequencing Rules Check Process to the
activity and the set of Exit actions
|
|
3.2.
|
If
the Sequencing Rules Check Process does not
return Nil Then
|
|
3.2.1.
|
Set
the exit target to the activity
|
Stop at the first activity that has an exit rule
evaluating to true.
|
3.2.2.
|
Break
For
|
|
|
End
If
|
|
|
End
For
|
|
4.
|
If
exit target is Not Null
Then
|
|
4.1.
|
Apply
the Terminate Descendent Attempts Process to the
exit target
|
End the current attempt on all active descendents.
|
4.2.
|
Apply
the End Attempt Process to the exit target
|
End the current attempt on the 'exiting' activity.
|
4.3.
|
Set
the Current Activity to the exit target
|
Move the current activity to the activity that
identified for termination.
|
|
End
If
|
|
5.
|
Exit
Sequencing Exit Action Rules Subprocess
|
|
TB.2.2
Sequencing Post Condition Rules Subprocess
Post condition sequencing
rules are applied to the current activity when it terminates, if the
current activity was not suspended. These sequencing rules may override
the sequencing request generated from a navigation request or produce
an additional termination request. The Sequencing Post
Condition Rules Subprocess evaluates post condition
sequencing rules on the current activity and may identify a termination
or sequencing request.
Sequencing rule
conditions are specified by the Sequencing Rule Definitions. Sequencing
rules are evaluated using the Sequencing Rules Check Process
(UP.2).
- This subprocess
assumes the Sequencing Exit Action Rules Subprocess
has completed, so that the Current Activity
(AM.1.2) is accurate, given the current state of the activity tree. It
evaluates only sequencing rules whose actions are defined as Post
Condition rules (see SM 1.2 Sequencing Rule Description),
on the current activity. Rules are only evaluated if the current
activity was not suspended during its previous attempt. The subprocess
stops at the first rule that evaluates to True and may return a
termination and sequencing request.
The Sequencing
Post Condition Rules Subprocess evaluates sequencing rules
for the identified activity and may optionally return one and only one
termination request and one and only one sequencing request, determined
by the rule action.
The Sequencing
Post Condition Rules Subprocess is specified by the
following pseudo code. The pseudo code describes only the post
condition rule processing. How this process is implemented or how
information is encoded, stored, represented, or bound is outside the
scope of this specification. The Sequencing Post Condition
Rules Subprocess only describes the expected behavior that
an implementation will exhibit.
|
Sequencing
Post Condition Rules Subprocess (for the Current
Activity; may return a termination request and a sequencing
request):
|
Reference: Section:
Activity is Suspended
AM.1.1
Current Activity AM.1.2
Sequencing Rules Check
Process UP.2
Sequencing Rule
Description SM.2
|
1.
|
If
Activity is Suspended for the
Current Activity is True Then
|
Do not apply post condition rules to a suspended
activity.
|
1.1.
|
Exit
Sequencing Post Condition Rules Subprocess
|
|
|
End
If
|
|
2.
|
Apply
the Sequencing Rules Check Process to the Current
Activity and the set of Post Condition actions
|
Apply the post condition rules to the current activity.
|
3.
|
If
the Sequencing Rules Check Process does not
return Nil Then
|
|
3.1.
|
If
the Sequencing Rules Check Process returned
Retry, Continue, Or
Previous Then
|
|
3.1.1.
|
Exit
Sequencing Post Condition Rules Subprocess (Sequencing
Request: the value returned by the Sequencing
Rules Check Process; Termination Request:
n/a)
|
Attempt to override any pending sequencing request with
this one.
|
|
End
If
|
|
3.2.
|
If
the Sequencing Rules Check Process returned
Exit Parent Or
Exit All Then
|
|
3.2.1.
|
Exit
Sequencing Post Condition Rules Subprocess (Sequencing
Request: n/a; Termination
Request: the value returned by the Sequencing
Rules Check Process)
|
Terminate the appropriate activity(s)
|
|
End
If
|
|
3.3.
|
If
the Sequencing Rules Check Process returned
Retry All Then
|
|
3.3.1.
|
Exit
Sequencing Post Condition Rules Subprocess (Termination
Request: Exit All; Sequencing
Request: Retry)
|
Terminate all active activities and move the current
activity to the root of the activity tree; then perform an 'in-process'
start.
|
|
End
If
|
|
|
End
If
|
|
4.
|
Exit
Sequencing Post Condition Rules Subprocess
|
|
TB.2.3
Termination Request Process
The Termination
Request Process processes the termination request.
The process uses
the Overall Rollup Process (RB.1.4), the Sequencing
Exit Action Rules Subprocess (TB.2.1), the
Sequencing Post Condition Rules Subprocess (TB.2.2), and the
End Attempt Process (UP.4). It updates values in
the tracking model and the activity state model.
- A termination
request results in the current attempt on the current activity ending
and status information in the activity tree being updated (through the End
Attempt Process and the Overall Rollup Process).
The Sequencing Exit Action Rules Subprocess may
cause certain ancestors of the current activity to also terminate. The Sequencing
Post Condition Rule Subprocess evaluates post condition
rules on the Current Activity (AM.1.2). The
result of the Termination Request Process may
identify a new sequencing request.
Certain termination requests
(Suspend All, Abandon, and Abandon All) do not result in any tracking
model status change to the current activity; the End Attempt
Process is not invoked for these termination requests.
The Termination
Request Process processes the termination request and
optionally returns a new sequencing request.
The Termination
Request Process for a termination request is specified by
the following pseudo code. The pseudo code describes only the
termination request processing. How this process is implemented or how
information is encoded, stored, represented, or bound is outside the
scope of this specification. The Termination Request Process
only describes the expected behavior that an implementation will
exhibit.
|
Termination
Request Process (for a termination request, ends the
current attempt on the Current Activity; returns
the validity of the termination request; may return a sequencing
request):
|
Reference: Section:
Activity is Active
AM.1.1
Activity is Suspended
AM.1.1
Current Activity AM.1.2
End Attempt Process
UP.4
Overall Rollup Process
RB.1.4
Sequencing Exit Action
Rules Subprocess TB.2.1
Sequencing Post
Condition Rules Subprocess TB.2.2
Terminate Descendent
Attempts Process UP.3
|
1.
|
If
the Current Activity is Not
Defined Then
|
If the sequencing session has not already begun, there
is nothing to terminate.
|
1.1.
|
Exit
Termination Request Process (Termination
Request: Not Valid;
Sequencing Request: n/a)
|
|
|
End
If
|
|
2.
|
If
Activity is Active for the Current
Activity is False Then
|
If the current activity has already been terminated,
there is nothing to terminate.
|
2.1.
|
Exit
Termination Request Process (Termination
Request: Not Valid;
Sequencing Request: n/a)
|
|
|
End
If
|
|
3.
|
Case:
termination request is Exit
|
|
3.1.
|
Apply
the End Attempt Process to the Current
Activity
|
Ensure the state of the current activity is up to date.
|
3.2.
|
Apply
the Overall Rollup Process to the Current
Activity
|
Propagate the state of the current activity up the tree.
|
3.3.
|
Apply
the Sequencing Exit Action Rules Subprocess to
the Current Activity
|
Check if any of the current activity's ancestors need
to terminate.
|
3.4.
|
Repeat
|
|
3.4.1.
|
Set
the processed exit to False
|
|
3.4.2.
|
If
the Current Activity is Not
the root of the activity tree Then
|
|
3.4.2.1.
|
Apply
the Sequencing Post Condition Rules Subprocess to
the Current Activity
|
|
3.4.2.2.
|
If
the Sequencing Post Condition Rule Subprocess
returned a termination request of Exit All Then
|
|
3.4.2.2.1.
|
Change
the termination request to Exit All
|
|
3.4.2.2.2.
|
Break
to the next Case
|
|
|
End
If
|
|
3.4.2.3.
|
If
the Sequencing Post Condition Rule Subprocess
returned a termination request of Exit Parent Then
|
If we exit the parent of the current activity, move the
current activity to the parent of the current activity.
|
3.4.2.3.1.
|
Set
the Current Activity to the parent of the Current
Activity
|
|
3.4.2.3.2.
|
Apply
the End Attempt Process to the Current
Activity (AM.1.2)
|
|
3.4.2.3.3.
|
Set
processed exit to True
|
Need to evaluate post conditions on the new current
activity.
|
|
End
If
|
|
|
End
If
|
|
3.5.
|
Until
processed exit is False
|
|
3.6.
|
Exit
Termination Request Process (Termination
Request: Valid; Sequencing
Request: is the sequencing request returned by the Sequencing
Post Condition Rule Subprocess, if one exists, otherwise n/a)
|
|
|
End
Case
|
|
4.
|
Case:
termination request is Exit All
|
|
4.1.
|
If
Activity is Active for the Current
Activity is True Then
|
Has the completion subprocess and rollup been applied
to the current activity yet?
|
4.1.1.
|
Apply
the End Attempt Process to the Current
Activity
|
|
4.1.2.
|
Apply
the Overall Rollup Process to the Current
Activity
|
|
|
End
If
|
|
4.2.
|
Apply
the Terminate Descendent Attempts Process to the
root of the activity tree
|
|
4.3.
|
Apply
the End Attempt Process to the root of the
activity tree
|
|
4.4.
|
Set
the Current Activity to the root of the activity
tree
|
Move the current activity to the root of the activity
tree.
|
4.5.
|
Exit
Termination Request Process (Termination
Request: Valid; Sequencing
Request: is the sequencing request returned by the Sequencing
Post Condition Rule Subprocess, if one exists, otherwise an Exit
sequencing request)
|
Inform the sequencer that the sequencing session has
ended.
|
|
End
Case
|
|
5.
|
Case:
termination request is Suspend All
|
|
5.1
|
If
the Activity is Active for the Current
Activity is True Then
|
If the current activity is active, suspend it and all
of its descendents.
|
5.1.1.
|
Set
the Suspended Activity to the Current
Activity
|
|
5.2.
|
Else
|
|
5.2.1.
|
If
the Activity is Suspended for the Current
Activity is False Then
|
The current activity has already terminated; check if
it was suspended.
|
5.2.1.1.
|
If
the Current Activity is not the root of the
activity tree Then
|
Make sure the current activity is not the root of the
activity tree.
|
5.2.1.1.1.
|
Set
the Suspended Activity to the parent of the Current
Activity
|
|
5.2.1.2.
|
Else
|
|
5.2.1.2.1.
|
Exit
Termination Request Process (Termination
Request: Not Valid;
Sequencing Request: n/a)
|
Nothing to suspend.
|
|
End
If
|
|
|
End
If
|
|
|
End
If
|
|
5.3.
|
Form
the activity path as the ordered series of all activities from the Suspended
Activity to the root of the activity tree, inclusive
|
|
5.4.
|
If
the activity path is Empty Then
|
|
5.4.1.
|
Exit
Termination Request Process (Termination
Request: Not Valid;
Sequencing Request: n/a)
|
Nothing to suspend.
|
|
End
If
|
|
5.5.
|
For
each activity in the activity path
|
|
5.5.1.
|
Set
Activity is Active for the activity to False
|
|
5.5.2.
|
Set
Activity is Suspended for the activity to True
|
|
|
End
For
|
|
5.6.
|
Set
the Current Activity to the root of the activity
tree
|
Move the current activity to the root of the activity
tree.
|
5.7.
|
Exit
Termination Request Process (Termination
Request: Valid; Sequencing
Request: Exit)
|
Inform the sequencer that the sequencing session has
ended.
|
|
End
Case
|
|
6.
|
Case:
termination request is Abandon
|
|
6.1.
|
Set
Activity is Active for the Current
Activity to False
|
|
6.2.
|
Exit
Termination Request Process (Termination
Request: Valid;
Sequencing Request: n/a)
|
|
|
End
Case
|
|
7.
|
Case:
termination request is Abandon All
|
|
7.1.
|
Form
the activity path as the ordered series of all activities from the Current
Activity to the root of the activity tree, inclusive
|
|
7.2.
|
If
the activity path is Empty Then
|
|
7.2.1.
|
Exit
Termination Request Process (Termination
Request: Not Valid;
Sequencing Request: n/a)
|
Nothing to abandon.
|
|
End
If
|
|
7.3.
|
For
each activity in the activity path
|
|
7.3.1.
|
Set
Activity is Active for the activity to False
|
|
|
End
For
|
|
7.4.
|
Set
the Current Activity to the root of the activity
tree
|
Move the current activity to the root of the activity
tree.
|
7.5.
|
Exit
Termination Request Process (Termination
Request: Valid; Sequencing
Request: Exit)
|
Inform the sequencer that the sequencing session has
ended.
|
|
End
Case
|
|
8.
|
Exit
Termination Request Process (Termination
Request: Not Valid;
Sequencing Request: n/a)
|
Undefined termination request.
|
RB.
Rollup Behavior Model
Simple Sequencing processes
uses information about the results of a learner's interactions with
activities (e.g., complete, incomplete) and the learner's record for
objectives (e.g., satisfaction, score) to control the sequencing of
other activities. The data attributes that describe the results of the
learner's interactions, i.e., the elements of the tracking model, may
be referenced for any activity in the activity tree. The results data
for an activity may be determined from the results data for the
children of the activity. The process of computing the results data for
an activity from the results data from the children of the activity is
called the "rollup process" or just "rollup".
The rollup process
is used to maintain the tracking model data for all activities and
objectives in the activity tree. The Termination Request Process (see
Termination Behavior TB) invokes the
rollup process to update the tracking model data when an attempt on an
activity terminates. Other processes may invoke the rollup process at
other times, but such invocation is not detailed in this specification.
The rollup process
is applied to all parts of the tracking model (see Tracking Model TM):
- Objective
Information - information about the results of the learner's
interactions related to an objective.
- Progress
Information - information about results of the learner's
interaction on an attempt at an activity.
The rollup process is
controlled by parts of the sequencing definition model (see Sequencing
Definition Model SM):
- Rollup
Controls - controls which data from an activity contributes
to the rollup of the parent activity.
- Rollup
Rule Definitions - rules that indicate how tracking data
from an activity or its associated objectives is produced from the
results of the children of the activity.
- Objective
Description - the learning objective(s) associated with an
activity.
- Delivery
Controls - controls when progress and objective information
for an activity is recorded.
Rollup behavior is defined
by the Overall Rollup Process (RB.1.5); the
process propagates results data from a given activity up the activity
tree. The behavior of the Overall Rollup Process
is defined in terms of different processes, each of which is applied to
one part of the tracking model. Each individual process is applied only
if enabled by the corresponding Rollup Control
(SM.8) elements in the sequencing definition model. Rollup of both
Objective and Progress values is applied only to tracked activities.
Rollup is not otherwise conditional on any other sequencing rules or
conditions:
- Measure
Rollup Process - determines the normalized measure (e.g.,
score) of the objective associated with an activity.
- Objective
Rollup Process - determines the objective progress status of
the objective associated with an activity.
- Activity
Progress Rollup Process - determines the completion status
of an activity.
The Objective
Rollup Process (RB.1.2) and Activity Progress
Rollup Process (RB.1.3) may evaluate rollup rules associated
with the activity to determine the activity's objective and progress
status using the Rollup Rule Check Process (RB.1.4).
RB.1
Rollup Behavior
The rollup behavior
describes how a sequencing system interprets the elements of the
sequencing definition model in combination with instance data from the
tracking model to update the tracking model.
An implementation
must be capable of representing the processes described and have the
implemented process exhibit the behavior described. There are no
additional requirements on implementing the rollup behavior model.
The rollup behavior
relies on the data from the sequencing definition model (see Sequencing
Definition Model SM) and the tracking
model (see Tracking Model TM). These
information models also specify default data values that govern the
access to activity or tracking data.
RB.1.1 Measure
Rollup Process
Measure rollup is used to
determine the normalized measure for the objective that is associated
with an activity and that has the attribute value Objective
Contributes to Rollup (SM.6) value of True. The normalized
measure is computed from the values of the measures for the objectives
that are associated with the children of the activity and that have the
attribute value Objective Contributes to Rollup
value of True.
Measure Rollup
computations (i.e., computing the values of Objective
Measure Status and Objective Normalized Measure from
TM.1.1) are controlled by the Rollup Control value of Rollup
Objective Measure Weight (SM.8) and the Delivery Control
value of Tracked (SM.11).
The measure rollup
behavior is defined by a weighted measure-based computation.
- All Tracked
children with a non-negative Rollup Objective Measure Weight
are included in the computation. If the Objective Measure
Status (TM.1.1) is False for the objective associated with a
child activity that has the attribute value Objective
Contributes to Rollup (SM.6) of True (i.e., there is no
measure for the child), then the Objective Measure Status
is False for the objective associated with the activity that has the
attribute value Objective Contributes to Rollup
of True. Otherwise, compute a weighted average measure across all of
the activity's children for the objectives. The computation of the Objective
Normalized Measure (TM.1.1) for the objective that is
associated with the child activity is weighted by the Rollup
Objective Measure Weight for the child activity. The
computation is only performed using the child activity's objectives
that have the attribute value Objective Contributes to Rollup
value of True.
The sum of the Rollup
Objective Measure Weight values for the contributing child
activities need not total to 1.0.
The Measure
Rollup Process for an activity is specified in the following
pseudo code. The pseudo code describes only the measure rollup logic.
How this process is implemented or how information is encoded, stored,
represented, or bound is outside the scope of this specification. The Measure
Rollup Process only describes the expected behavior that an
implementation will exhibit.
Measure Rollup
Process (for an activity; may change the Objective
Informationfor the activity):
|
Reference: Section:
Objective Contributes
to Rollup SM.6
Objective Description
SM.6
Objective Measure
Status TM.1.1
Objective Normalized
Measure TM.1.1
Rollup Objective
Measure Weight SM.8
Tracked SM.11
|
1.
|
Set
the total weighted measure to Zero (0.0)
|
|
2.
|
Set
the counted measures to Zero (0.0)
|
|
3.
|
Set
the target objective to Undefined
|
|
4.
|
For
each objective associated with the activity
|
|
4.1.
|
If
Objective Contributes to Rollup
for the objective is True Then
|
Find the target objective for the rolled-up measure.
|
4.1.1.
|
Set
the target objective to the objective
|
|
4.1.2.
|
Break
For
|
|
|
End
If
|
|
|
End
For
|
|
5.
|
If
target objective is Defined Then
|
|
5.1.
|
For
each child of the activity
|
|
5.1.1.
|
If
Tracked for the child is True
Then
|
Only include tracked children.
|
5.1.1.1.
|
Set
rolled-up objective to Undefined
|
|
5.1.1.2.
|
For
each objective associated with the child
|
|
5.1.1.2.1.
|
If
Objective Contributes to Rollup for
the objective is True Then
|
|
5.1.1.2.1.1.
|
Set
rolled-up objective to the objective
|
|
5.1.1.2.1.2.
|
Break
For
|
|
|
End
If
|
|
|
End
For
|
|
5.1.1.3
|
If
rolled-up objective is Defined
Then
|
|
5.1.1.3.1.
|
If
the Objective Measure Status for the rolled-up
objective is True Then
|
|
5.1.1.3.1.1.
|
If
the Rollup Objective Measure Weight for the child
is Non-negative (>= 0)
Then
|
Only include children with non-negative weights.
|
5.1.1.3.1.1.1.
|
Increment
counted measures by the Rollup Objective Measure Weight
for the child
|
|
5.1.1.3.1.1.2.
|
Add
the product of Objective Normalized Measure
(TM.1.1) for the rolled-up objective multiplied by the Rollup
Objective Measure Weight for the child to the total weighted
measure
|
|
|
End
If
|
|
5.1.1.3.2.
|
Else
|
|
5.1.1.3.2.1.
|
Set
counted measures to Zero (0.0)
|
No measure defined for the child; incomplete tracking
state.
|
5.1.1.3.2.2.
|
Break
For
|
|
|
End
If
|
|
5.1.1.4.
|
Else
|
|
5.1.1.4.1.
|
Exit
Measure Rollup Process
|
One of the children does not include a rolled-up
objective.
|
|
End
If
|
|
|
End
If
|
|
|
End
For
|
|
5.2
|
If
counted measures is Zero (0.0) Then
|
|
5.2.1.
|
Set
the Objective Measure Status for the target
objective to False
|
None or incomplete tracking state rolled-up, cannot
determine the rolled-up measure.
|
5.2.2.
|
Exit
Measure Rollup Process
|
|
|
End
If
|
|
5.3.
|
If
counted measures is greater than Zero
(0.0) Then
|
Set the rolled-up measure for the target objective.
|
5.3.1.
|
Set
the Objective Measure Status for the target
objective to True
|
|
5.3.2.
|
Set
the Objective Normalized Measure for the target
objective to the total weighted measure divided by counted measures
|
|
5.3.3.
|
Exit
Measure Rollup Process
|
|
|
End
If
|
|
|
End
If
|
|
6.
|
Exit
Measure Rollup Process
|
No objective contributes to rollup, so we cannot set
anything.
|
RB.1.2
Objective Rollup Process
Objective rollup is used to
determine the objective status of the objective associated with an
activity from the values of the objective information associated with
the children of the activity.
Objective Rollup
computations (i.e., computing the values of Objective
Progress Status and Objective Satisfied Status
from TM.1.1) are controlled by the Rollup Controls value of Rollup
Objective Satisfied Status (SM.8) and the Rollup
Rules (SM.5) for the activity.
The objective
rollup behavior is defined by a measure-based computation, a rule-based
computation or an alternative default rule-based computation, applied
in that order.
- Measure-Based
Computation - The objective is satisfied (set values for Objective
Progress Status and Objective Satisfied Status)
if the Objective Normalized Measure (TM.1.1) for
the objective is equal to or greater than the Objective
Minimum Satisfied Normalized Measure (SM.6) for the
objective. Measure-based rollup is used only if the Objective
Satisfied by Measure (SM.6) attribute is True for the
activity's objective that has the attribute value Objective
Contributes to Rollup (SM.6) of True.
- Rule-Based
Computation - Rollup rules with Rollup Actions
(SM.5) of satisfied or not satisfied are
evaluated for the activity. Child activities that are part of the child
set (i.e., child activities that have Rollup Objective
Satisfied (SM.8) equal to True and
have Tracked (SM.11) equal to True)
are used to evaluate the Rollup Conditions (SM.5)
of the rule. No rules are evaluated if there are no child activities
that have a Rollup Objective Satisfied value of True.
If the rollup rule evaluates to True, the Rollup
Action sets values for Objective Progress Status
and Objective Satisfied Status for the objective.
The computation is performed only if the objective has the attribute
value Objective Contributes to Rollup value of True.
All rules with Rollup Action of Not
Satisfied are evaluated before evaluating any rules with Rollup
Action of Satisfied; thus, the rollup
rules for Satisfied override rollup rules for Not
Satisfied. If no rules fire, there is no change to the
values of Objective Progress Status and Objective
Progress Status for the objective.
- Default
Rule-Based Computation - If the activity does
not have any defined rollup rules with Rollup Actions
of Satisfied or Not Satisfied, the
rule-based computation described above is applied using the following
default rollup rules:
- Default Satisfied
Rule - a Rollup Child Set value of All,
a Rollup Condition value of Satisfied,
and a Rollup Action value of Satisfied.
- Default Not
Satisfied Rule - a Rollup Child Set
value of All, Rollup Condition
values of Not Satisfied And
(the Condition Combination of All)
Attempted, and a Rollup Action
value of Not Satisfied.
The Objective
Rollup Process for an activity is specified in the following
pseudo code. The pseudo code describes only the objective rollup logic.
How this process is implemented or how information is encoded, stored,
represented, or bound is outside the scope of this specification. The Objective
Rollup Process only describes the expected behavior that an
implementation will exhibit.
|
Objective
Rollup Using Measure Process (for an activity; may
change the Objective Information for the
activity):
|
Reference: Section:
Objective Contributes
to Rollup SM.6
Objective Description
SM.6
Objective Satisfied by
Measure SM.6
Objective Measure
Status TM.1.1
Objective Normalized
Measure TM.1.1
Objective Progress
Status TM.1.1
Objective Satisfied
Status TM.1.1
|
1.
|
Set
the target objective to Undefined
|
|
2.
|
For
each objective associated with the activity
|
|
2.1.
|
If
Objective Contributes to Rollup for
the objective is True Then
|
Identify the objective that may be altered based on the
activity's children's rolled up measure.
|
2.1.1.
|
Set
the target objective to the objective
|
|
2.1.2.
|
Break
For
|
|
|
End
If
|
|
|
End
For
|
|
3.
|
If
target objective is Defined Then
|
|
3.1.
|
If
Objective Satisfied by Measure
for the target objective is True Then
|
If the objective is satisfied by measure, test the
rolled-up measure against the defined threshold.
|
3.1.1.
|
If
the Objective Measure Status
for the target objective is False Then
|
|
3.1.1.1.
|
Set
the Objective Progress Status for the target
objective to False
|
|
3.1.2.
|
Else
|
|
3.1.2.1.
|
If
the Objective Normalized Measure for
the target objective is equal to or greater than the Objective
Minimum Normalized Measure (SM.6) for the target objective Then
|
|
3.1.2.1.1.
|
Set
the Objective Progress Status for the target
objective to True
|
|
3.1.2.1.2.
|
Set
the Objective Satisfied Status for the target
objective to False
|
|
3.1.2.2.
|
Else
|
|
3.1.2.2.1.
|
Set
the Objective Progress Status for the target
objective to True
|
|
3.1.2.2.2.
|
Set
the Objective Satisfied Status for the target
objective to True
|
|
|
End
If
|
|
|
End
If
|
|
|
End
If
|
|
3.2.
|
Exit
Objective Rollup Using Measure Process
|
|
4.
|
Else
|
|
4.1.
|
Exit
Objective Rollup Using Measure Process
|
No objective contributes to rollup, so we cannot set
anything.
|
|
End
If
|
|
|
Objective
Rollup Using Rules Process (for an activity; may change
the Objective Information for the activity):
|
Reference: Section:
Objective Contributes
to Rollup SM.6
Objective Description
SM.6
Objective Progress
Status TM.1.1
Objective Satisfied
Status TM.1.1
Rollup Rule Check
Subprocess RB.1.4
Rollup Action SM.5
|
1.
|
Set
the target objective to Undefined
|
|
2.
|
For
each objective associated with the activity
|
|
2.1.
|
If
Objective Contributes to Rollup for
the objective is True Then
|
Identify the objective that may be altered based on the
activity's children's rolled up status.
|
2.1.1.
|
Set
the target objective to the objective
|
|
2.1.2.
|
Break
For
|
|
|
End
If
|
|
|
End
For
|
|
3.
|
If
target objective is Defined Then
|
|
3.1.
|
Apply
the Rollup Rule Check Subprocess to
the activity and the Not Satisfied rollup action
|
Process all Not Satisfied rules first
|
3.2.
|
If
the Rollup Rule Check Subprocess returned
True Then
|
|
3.2.1.
|
Set
the Objective Progress Status for the target
objective to True
|
|
3.2.2.
|
Set
the Objective Satisfied Status for the target
objective to False
|
|
|
End
If
|
|
3.3.
|
Apply
the Rollup Rule Check Subprocess to
the activity and the Satisfied rollup action
|
Process all Satisfied rules last.
|
3.4.
|
If
the Rollup Rule Check Subprocess returned True
Then
|
|
3.4.1.
|
Set
the Objective Progress Status for the target
objective to True
|
|
3.4.2.
|
Set
the Objective Satisfied Status for the target
objective to True
|
|
|
End
If
|
|
3.5
|
Exit
Check Child for Rollup Subprocess
|
|
4.
|
Else
|
|
4.1.
|
Exit
Check Child for Rollup Subprocess
|
No objective contributes to rollup, so we cannot set
anything.
|
|
End
If
|
|
RB.1.3
Activity Progress Rollup Process
Activity Progress rollup is
used to determine the completion status of the current attempt on an
activity from the completion status of the children of the activity.
Attempt Progress
computations (i.e., computing the values of Attempt Progress
Status (TM.1.2.2) and Attempt
Completion Status (TM.1.2.2) for the activity) are
controlled by the Rollup Controls value of Rollup Progress
Completion (SM.8) for the activity's children and the Rollup
Rules (SM.5) for the activity.
The activity
progress rollup behavior is defined by a rule-based computation.
- Rule-Based
Computation - Rollup Rules with Rollup Actions
(SM.5) of Incomplete or Completed
are evaluated for the activity. Child activities that are part of the
child set (i.e., child activities that have a Rollup
Progress Completion equal to True and Tracked
(SM.11) equal to True) are used to evaluate the
set of Rollup Conditions of the rule. No rules
are evaluated if there are no child activities that have a
Rollup Progress Completion value of True. If
the Rollup Rule evaluates to True, the Rollup
Action sets values for Attempt Progress Status
and Attempt Completion Status for the current
attempt of the activity. All rules with Rollup Action
of Incomplete are evaluated before evaluating any
rules with Rollup Action of Completed;
thus, rollup rules for Completed override rollup
rules for Incomplete. If no rules fire, there is
no change to the values of Attempt Completion Status
for the activity.
- Default
Rule-Based Computation - If the activity does not have any
defined Rollup Rules with Rollup Actions of Incomplete
or Completed, the rule-based computation
described above is applied using the following default rules:
- Default Completed
Rule - a Rollup Child Set value of All,
a Rollup Condition value of Completed,
and a Rollup Action value of Completed.
- Default Incomplete
Rule - a Rollup Child Set value of All,
Rollup Condition values of Incomplete
And (the
Condition Combination of All) Attempted,
and a Rollup Action value of Incomplete.
The Activity
Progress Rollup Process for an activity is specified in the
following pseudo code. The pseudo code describes only the activity
progress rollup logic. How this process is implemented or how
information is encoded, stored, represented, or bound is outside the
scope of this specification. The Activity Progress Rollup
Process only describes the expected behavior that an
implementation will exhibit.
|
Activity
Progress Rollup Process (for an activity; may change the
Attempt Information for the activity):
|
Reference: Section:
Attempt Completion
Status TM.1.2.2
Attempt Progress
Status TM.1.2.2
Rollup Rule Check
Subprocess RB.1.4
Rollup Action SM.5
|
1.
|
Apply
the Rollup Rule Check Subprocess to
the activity and the Incomplete rollup action
|
Process all Incomplete rules first
|
2.
|
If
the Rollup Rule Check Subprocess returned True
Then
|
|
2.1.
|
Set
the Attempt Progress Status for the activity to True
|
|
2.2.
|
Set
the Attempt Completion Status for the activity to
False
|
|
|
End
If
|
|
3.
|
Apply
the Rollup Rule Check Subprocess to
the activity and the Completed rollup action
|
Process all Completed rules last.
|
4.
|
If
the Rollup Rule Check Subprocess returned True
Then
|
|
4.1.
|
Set
the Attempt Progress Status for the activity to True
|
|
4.2.
|
Set
the Attempt Completion Status for the activity to
True
|
|
|
End
If
|
|
5.
|
Exit
Activity Progress Rollup Process
|
|
RB.1.4
Rollup Rule Check Subprocess
The Rollup Rule
Check Subprocess evaluates a set of rollup rules with a
given rollup rule action for an activity. The Rollup Controls
for each of the activity's children are evaluated by the Check
Child for Rollup Subprocess to
determine which children contribute to the rollup evaluation. The Evaluate
Rollup Conditions Subprocess is applied to each contributing
child to determine if its current tracking status meets the rollup rule
criteria. If the appropriate set of children, defined by the rollup
rule, successfully contribute to rollup, the Rollup Rule
Check Subprocess indicates that the status of the activity
should be changed. The Rollup Rule Check Subprocess
ends after evaluating a rule that indicates that the status of the
activity should be changed.
The Rollup
Rule Check Subprocess for an activity is specified by the
following pseudo code. The pseudo code describes only the rule-checking
logic. How this process is implemented or how information is encoded,
stored, represented, or bound is outside the scope of this
specification. The Rollup Rule Check Subprocess only
describes the expected behavior that an implementation will exhibit.
|
Rollup
Rule Check Subprocess (for an activity and a Rollup
Action; returns True if the action applies):
|
Reference: Section:
Check Child for Rollup
Subprocess RB.1.4.2
Evaluate Rollup
Conditions Subprocess RB.1.4.1
Rollup Action SM.5
Rollup Child Activity
Set SM.5
Rollup Minimum Count
SM.5
Rollup Minimum Percent
SM.5
Rollup Rule
Description SM.5
Tracked SM.11
Tracking Model TM
|
1.
|
If
the activity includes Rollup Rules with the
specified Rollup Action Then
|
Make sure the activity has rules to evaluate.
|
1.1.
|
Initialize
rules list by selecting the set of Rollup Rules
for the activity that have one of the specified Rollup
Actions, maintaining original rule ordering
|
|
1.2.
|
For
each rule in the rules list
|
|
1.2.1.
|
Initialize
contributing children bag as an empty collection
|
|
1.2.2.
|
For
each child of the activity
|
|
1.2.2.1.
|
If
Tracked for the child is True
Then
|
|
1.2.2.2.1.
|
Apply
Check Child for Rollup Subprocess to the
child and the Rollup Action
|
Make sure this child contributes to the status of its
parent.
|
1.2.2.2.2.
|
If
Check Child for Rollup Subprocess returned
True Then
|
|
1.2.2.2.2.1.
|
Apply
the Evaluate Rollup Conditions Subprocess to the
child and the Rollup Conditions for the rule
|
Evaluate the rollup conditions on the child activity.
|
1.2.2.2.2.2.
|
If
Evaluate Rollup Conditions Subprocess returned
True Then
|
|
1.2.2.2.2.2.1.
|
Add
a True value to the contributing children bag
|
|
1.2.2.2.2.3.
|
Else
|
|
1.2.2.2.2.3.1.
|
Add
a False value to the contributing children bag
|
|
|
End
If
|
|
|
End
If
|
|
|
End
If
|
|
|
End
For
|
|
1.2.3.
|
Initialize
status change to False
|
Determine if the appropriate children contributed to
rollup; if they did, the status of the activity should be changed.
|
1.2.4.
|
Case:
the Rollup Child Activity Set
is All
|
|
1.2.4.1.
|
If
the contributing children bag does not contain a
value of False Then
|
|
1.2.4.1.1.
|
Set
status change to True
|
|
|
End
If
|
|
|
End
Case
|
|
1.2.5.
|
Case:
the Rollup Child Activity Set
is Any
|
|
1.2.5.1.
|
If
the contributing children bag contains a value of True
Then
|
|
1.2.5.1.1.
|
Set
status change to True
|
|
|
End
If
|
|
|
End
Case
|
|
1.2.6.
|
Case:
the Rollup Child Activity Set
is None
|
|
1.2.6.1.
|
If
the contributing children bag does not contain a
value of True Then
|
|
1.2.6.1.1.
|
Set
status change to True
|
|
|
End
If
|
|
|
End
Case
|
|
1.2.7.
|
Case:
the Rollup Child Activity Set
is At Least Count
|
|
1.2.7.1.
|
If
the count of True values
contained in the contributing children bag equals or exceeds the
Rollup Minimum Count of the rule Then
|
|
1.2.7.1.1.
|
Set
status change to True
|
|
|
End
If
|
|
|
End
Case
|
|
1.2.8.
|
Case:
the Rollup Child Activity Set
is At Least Percent
|
|
1.2.8.1.
|
If
the percentage (normalized between 0..1,
inclusive) of True values contained in the
contributing children bag equals or exceeds the Rollup
Minimum Percent of the rule Then
|
|
1.2.8.1.1.
|
Set
status change to True
|
|
|
End
If
|
|
|
End
Case
|
|
1.2.9.
|
If
status change is True Then
|
|
1.2.9.1.
|
Exit
RollupRule Check Subprocess (Evaluation:
True)
|
Stop at the first rule that evaluates to true - perform
the associated action.
|
|
End
If
|
|
|
End
For
|
|
|
End
If
|
|
2.
|
Exit
Rollup Rule Check Subprocess (Evaluation:
False)
|
No rules evaluated to true - do not perform any action.
|
RB.1.4.1
Evaluate Rollup Conditions Subprocess
The Evaluate
Rollup Conditions Subprocess applies a set of rollup rule
conditions to an activity to determine if they apply. Each condition in
the set is evaluated against the current tracking information for the
activity. The condition combination is applied to the evaluated
conditions to determine the overall evaluation of the condition set.
The Evaluate
Rollup Conditions Subprocess for an activity is specified
by the following pseudo code. The pseudo code describes only the
condition-checking logic. How this process is implemented or how
information is encoded, stored, represented, or bound is outside the
scope of this specification. The Evaluate Rollup Conditions
Subprocess only describes the expected behavior that an
implementation will exhibit.
|
Evaluate
Rollup Conditions Subprocess (for an activity and a set
of Rollup Conditions; returns True if the
condition(s) evaluate to True):
|
Reference: Section:
Condition Combination
SM.5
Rollup Condition SM.5
Rollup Condition
Operator SM.5
Tracking Model TM
|
1.
|
Initialize
rollup condition bag as an Empty collection
|
This is used to keep track of the evaluation of the
rule's conditions.
|
2.
|
For
each Rollup Condition in the set of Rollup
Conditions
|
|
2.1.
|
Evaluate
the rollup condition by applying the appropriate tracking information
for the activity to the Rollup Condition
|
Evaluate each condition against the activity's tracking
information.
|
2.2.
|
If
the Rollup Condition Operator for the Rollup
Condition is Not Then
|
|
2.2.1.
|
Negate
the rollup condition
|
|
|
End
If
|
|
2.3.
|
Add
the value of the rollup condition to the rollup condition bag
|
Add the evaluation of this condition to the set of
evaluated conditions.
|
|
End
For
|
|
3.
|
If
the rollup condition bag is Empty Then
|
If there are no defined conditions for the rule, the
rule does not apply.
|
3.1.
|
Exit
Evaluate Rollup Conditions Subprocess (Evaluation:
False)
|
|
|
End
If
|
|
4.
|
Apply
the Condition Combination to the rollup condition
bag to produce a single combined rule evaluation
|
'And' or 'Or' the set of evaluated conditions, based on
the rollup rule definition.
|
5.
|
Exit
Evaluate Rollup Conditions Subprocess (Evaluation:
the value of rule evaluation)
|
|
RB.1.4.2
Check Child for Rollup Subprocess
The Check Child
for Rollup Subprocess determines if tracking information for
an activity should be included during rollup. The subprocess tests the
activity's Rollup Controls (see SM.8) against an intended rollup
action.
The Check
Child for Rollup Subprocess for an activity is specified by
the following pseudo code. The pseudo code describes only the checking
logic. How this process is implemented or how information is encoded,
stored, represented, or bound is outside the scope of this
specification. The Check Child for Rollup Subprocess
only describes the expected behavior that an implementation will
exhibit.
|
Check
Child for Rollup Subprocess (for an activity and a Rollup
Action; returns True if the activity is included in rollup):
|
Reference: Section:
Rollup Action SM.5
Rollup Objective
Satisfied SM.8
Rollup Progress
Completion SM.8
|
1.
|
If
the Rollup Action is Satisfied
Or Not Satisfied
Then
|
|
1.1.
|
Exit
Check Child for Rollup Subprocess (Child
is Included in Rollup: the Rollup Objective
Satisfied value for the activity)
|
Test the objective rollup control.
|
|
End
If
|
|
2.
|
If
the Rollup Action is Complete
Or Incomplete Then
|
Test the progress rollup control.
|
2.1.
|
Exit
Check Child for Rollup Subprocess (Child
is Included in Rollup: the Rollup Progress
Completion value for the activity)
|
|
|
End
If
|
.
|
3.
|
Exit
Check Child for Rollup Subprocess (Child
is Included in Rollup: False)
|
Undefined rollup action.
|
RB.1.5
Overall Rollup Process
The Overall
Rollup Process is used to propagate tracking results upward
through the entire activity tree. The rollup process is applied to:
- An activity
tree, designated by the root activity of the tree.
- The activity
within the tree that terminated and triggered rollup, i.e., the
activity whose tracking data has changed.
The root of the tree and the
current activity within the tree specify a unique single path through
the tree, denoted the rollup path. Rollup is applied to all activities
along that path, starting from the parent of the activity that
triggered the rollup and proceeding backward along the path of parents
of the activities to the root of the activity tree.
At each step along
the rollup path, all rollup processes, Measure Rollup,
Objective Rollup, and Activity Progress
Rollup, are applied. Measure Rollup
must be applied before any other rollup process, but there are no other
ordering constraints on the rollup processes. If rollup results in a
change to an activity's objective information and a 'write' objective
map is defined on the activity that transfers objective information to
a shared global objective, the shared global objective's information
must be set prior to continuing rollup. Whenever the rollup process is
initiated, it is performed on all activities along the path; the
process does not stop if rollup does not change any values for an
activity (other actions may have changed values of other children along
different paths that contribute to the rolled up values at some level
in the tree).
The Overall
Rollup Process is specified by the following pseudo code.
The pseudo code describes only the rollup logic. How this process is
implemented or how information is encoded, stored, represented, or
bound is outside the scope of this specification. The Overall
Rollup Process only describes the expected behavior that an
implementation will exhibit.
|
Overall
Rollup Process (for an activity; may change the tracking
information for the activity and its ancestors):
|
Reference: Section:
Activity Progress
Rollup Process RB.1.3
Measure Rollup Process
RB.1.1
Objective Rollup
Process RB.1.2
Tracked SM.11
Tracking Model TM
|
1.
|
Form
the activity path as the ordered series of activities from the root of
the activity tree to the activity, inclusive, in reverse order.
|
|
2.
|
If
the activity path is Empty Then
|
|
2.1.
|
Exit
Overall Rollup Process
|
Nothing to rollup.
|
|
End
If
|
|
3.
|
For
each activity in the activity path
|
|
3.1.
|
Apply
the Measure Rollup Process to the activity
|
Rollup the activity's measure.
|
3.2.
|
Apply
the appropriate Objective Rollup Process to the
activity
|
Apply the appropriate behavior described in section
RB.1.2, based on the activity's defined sequencing information.
|
3.3.
|
Apply
the Activity Progress Rollup Process to the
activity
|
Apply the appropriate behavior described in section
RB.1.3, based on the activity's defined sequencing information.
|
|
End
For
|
|
4.
|
Exit
Overall Rollup Process
|
|
SR.
Selection and Randomization Behavior Model
Simple Sequencing identifies
activities for delivery to the learner from those defined in the
activity tree. The structure of the activity tree may be statically
defined, during content development, or may be dynamically generated
while a learner is involved in a learning experience. Simple Sequencing
places no constraints on when the structure of the activity tree may
change. The Selection and Randomization controls define how an
activity's children are selected and reordered before and while being
used in sequencing.
The overall
sequencing process (see Overall Sequencing Process OP)
does not relate the selection and randomization behaviors to the
navigation, termination, rollup, sequencing, and delivery processes. An
implementation must invoke the selection and randomization processes at
the appropriate times during the overall sequencing process to exhibit
the following behaviors:
- The
selection and randomization processes have no effect if applied to a
leaf activity.
- The
selection and randomization processes may result in an ordered list of
available children for an identified activity. If a process does result
in a list of available children, that list replaces the activity's
current set of Available Children (AM.1.1).
- The
selection process must be invoked prior to the randomization process,
if both apply at the same time.
- The
children in an activity may not be selected or randomized if the
activity or any of its descendents are currently active (Activity
is Active - AM.1.1) or suspended (Activity is
Suspended - AM.1.1).
- Available
Children must persist, unaltered, for the duration the
activity is active or suspended.
- Unless
it is specified, through Selection Timing (SM.9)
or Randomization Timing (SM.10), that the
selection or randomization process should be applied on each new
attempt, the list of Available Children must
persist as long as there is a possibility of another attempt on the
activity, even if the activity is no longer active, regardless of
whether the activity is suspended or not. Typically this will be the
duration of the attempt on the entire activity tree.
Note: If the activity tree is dynamic,
the selection and randomization processes should be applied to an
activity each time the activity's descendents are altered.
- In
a directed traversal of the activity tree, through the Flow
Subprocess (SB.3), any activity for which Selection
Timing or Randomization Timing is
specified, must have the selection and/or randomization processes
invoked prior to the activity's children being traversed, in accordance
to the specified timing. For such an activity, the traversal only
applies the activity's list of Available Children,
in the order defined by the list.
Note: The selection and/or
randomization process must take place whether or not the activity is
activated but before its children can be traversed; the process must
not be applied to an activity whose children are not being traversed.
- A
Choice sequencing request, through the Choice
Sequencing Request Process (SB.9), may target an activity
that is a descendent of an activity for which selection or
randomization is required, only if the selection and/or randomization
processes have been applied as required for every ancestor of the
target activity.
The selection and
randomization processes are controlled by parts of the sequencing
definition model:
- Selection
Controls - controls how activities are selected.
- Randomization
Controls - controls how activities are reordered.
The selection and
randomization processes do not require data from the tracking model.
The selection and
randomization processes use data from the activity state model.
- Activity
State Information - information about the results of the
learner's state for an activity.
The selection and
randomization processes may change the Available Children
(AM.1.1) attribute for activities processed.
The selection and
randomization behavior is defined in terms of two processes:
- Select
Children Process - selects some number of an activity's
children.
- Randomize
Children Process - reorders the available children of an
activity.
SR.1
Select Children Process
Sequencing selects child
activities of an activity prior to selecting the activity to deliver to
the learner. The process is applied to an activity's children.
The sequencing
definition attributes Selection Controls control
activity selection. The process is defined as the Select
Children Process.
- From the current
set of all child activities, select some number of them, without
replacement, retaining relative order.
The Select
Children Process is applied to the identified activity's
children. It does not return any value. It may change the Available
Children (AM.1.2) for the identified activity.
The Select
Children Process is specified by the following pseudo code.
How this process is implemented or how information is encoded, stored,
represented, or bound is outside the scope of this specification. The Select
Children Process only describes the expected behavior that
an implementation will exhibit.
|
Select
Children Process (for an activity; may change the Available
Children for the activity):
|
Reference: Section:
Activity is Active
AM.1.1
Activity is Suspended
AM.1.1
Available Children
AM.1.1
Activity Progress
Status TM.1.2.1
Selection Count SM.9
Selection Count Status
SM.9
Selection Timing SM.9
|
1.
|
If
the activity does not have children Then
|
Cannot apply selection to a leaf activity.
|
1.1.
|
Exit
Select Children Process
|
|
|
End
If
|
|
2.
|
If
Activity is Suspended for the activity is True
Or the Activity
is Active for the activity is True
Then
|
Cannot apply selection to a suspended or active
activity.
|
2.1.
|
Exit
Select Children Process
|
|
|
End
If
|
|
3.
|
Case:
the Selection Timing for the
activity is Never
|
|
3.1.
|
Exit
Select Children Process
|
|
|
End
Case
|
|
4.
|
Case:
the Selection Timing for the
activity is Once
|
|
4.1.
|
If
the Activity Progress Status for the activity is
False Then
|
If the activity has not been attempted yet.
|
4.1.1.
|
If
the Selection Count Status for the activity is True
Then
|
|
4.1.1.1.
|
Initialize
child list as an Empty ordered list
|
|
4.1.1.2.
|
Iterate
Selection Count, for the
activity, times
|
|
4.1.1.2.1.
|
Randomly
select (without replacement) an activity from the children of the
activity
|
|
4.1.1.2.2.
|
Add
the selected activity to the child list, retaining the original (from
the activity) relative order of activities
|
|
|
End
Iterate
|
|
4.1.1.3.
|
Set
Available Children for the activity to the
child list
|
|
|
End
If
|
|
|
End
If
|
|
4.2.
|
Exit
Select Children Process
|
|
|
End
Case
|
|
5.
|
Case:
the Selection
Timing for the activity is On Each New Attempt
|
|
5.1.
|
Exit
Select Children Process
|
Undefined behavior.
|
|
End
Case
|
|
6.
|
Exit
Select Children Process
|
Undefined timing attribute.
|
SR.2
Randomize Children Process
Randomizes the available
child activities of a activity. The process is applied to an activity's
children.
The sequencing
definition attributes Randomize Controls controls
randomization. The process is defined as the Randomize
Children Process.
- Randomly reorder
the activity's available children.
The Randomize
Children Process is applied to the identified activity's
available children. It does not return any value. It may change the Available
Children (AM.1.2) for the identified activity.
The Randomize
Children Process is specified by the following pseudo code.
How this process is implemented or how information is encoded, stored,
represented, or bound is outside the scope of this specification. The Randomize
Children Process only describes the expected behavior that
an implementation will exhibit.
|
Randomize
Children Process (for an activity; may change the Available
Children for the activity):
|
Reference: Section:
Activity is Active
AM.1.1
Activity is Suspended
AM.1.1
Available Children
AM.1.1
Activity Progress
Status TM.1.2.1
Randomize Children
SM.10
Randomization Timing
SM.10
|
1.
|
If
the activity does not have children Then
|
Cannot apply randomization to a leaf activity.
|
1.1.
|
Exit
Randomize Children Process
|
|
|
End
If
|
|
2.
|
If
Activity is Suspended for the activity is True
Or the Activity
is Active for the activity is True
Then
|
Cannot apply randomization to a suspended or active
activity.
|
2.1.
|
Exit
Randomize Children Process
|
|
|
End
If
|
|
3.
|
Case:
the Randomization
Timing for the activity is Never
|
|
3.1.
|
Exit
Randomize Children Process
|
|
|
End
Case
|
|
4.
|
Case:
the Randomization
Timing for the activity is Once
|
|
4.1.
|
If
the Activity Progress Status for the activity is
False Then
|
If the activity has not been attempted yet.
|
4.1.1.
|
If
Randomize Children for the activity is True
Then
|
|
4.1.1.1.
|
Randomly
reorder the activities contained in Available Children
for the activity
|
|
|
End
If
|
|
|
End
If
|
|
4.2.
|
Exit
Randomize Children Process
|
|
|
End
Case
|
|
5.
|
Case:
the Randomization
Timing for the activity is On Each New Attempt
|
|
5.1.
|
If
Randomize Children for the activity is True
Then
|
|
5.1.1.
|
Randomly
reorder the activities contained in Available Children for
the activity
|
|
|
End
If
|
|
5.2.
|
Exit
Randomize Children Process
|
|
|
End
Case
|
|
6.
|
Exit
Randomize Children Process
|
Undefined timing attribute.
|
SB.
Sequencing Behavior Model
The Simple Sequencing
process is driven in part by a "sequencing request" - a request to
identify an element of content for eventual delivery to the learner.
The Simple Sequencing process evaluates the request in terms of the
content model described by the activity tree, the learner's current
location in the content experience, and determines what content object
should be delivered to the learner. This is essentially a mapping or
resolution process that converts a sequencing request into the
identification of a content object. The process of evaluating the
request and identifying the content object (or returning an error) is
called the "sequencing process".
The sequencing
process makes no assumptions as to how or when a sequencing request is
generated. The sequencing process must insure that sequencing requests
are valid. Additionally, the sequencing process makes no assumptions
about how or when the identified content object is actually delivered
to the learner. In most cases, a delivery request for the identified
content object will be immediately delivered to the learner. As part of
identifying the content object, the sequencing process uses elements of
the tracking model and overall activity tree structure.
The overall
sequencing process (see Overall Sequencing Process OP)
relates the sequencing process to the navigation, termination, rollup,
selection and randomization, and delivery processes.
The sequencing
process is controlled by parts of the sequencing definition model:
- Sequencing
Control Modes - controls for types of sequencing requests
that may apply to a collection of activities.
- Sequencing
Rule Definitions - rules, applied to activities, that are
used to specify sequencing behaviors for the activity.
- Limit
Conditions - limits on how many times, how long and when an
activity is allowed.
- Objective
Description - the learning objectives associated with an
activity.
The sequencing process uses
all parts of the tracking model:
- Objective
Information - information about the results of the learner's
interactions related to an objective.
- Activity
/ Attempt Progress Information - information about a
learner's attempt at an activity.
The sequencing process uses
data from the activity state model:
- Activity
State Model - information about the results of the learner's
state for an activity and the global state of the activity tree.
The behavior of the
sequencing process is defined in terms of seven processes (one for each
sequencing request), an overall sequencing process and seven associated
supporting processes:
- Sequencing
Rules Check Process - applies sequencing rules to determine
if some sequencing rule action should be performed.
- Check
Activity Process - applies limit conditions and disabled
rules to determine if the activity is allowed for sequencing
- Flow
Tree Traversal Subprocess - determines the next activity in
a preorder traversal of the activity tree.
- Flow
Activity Sequencing Subprocess - determines if a single
activity should be delivered by checking limit conditions and
sequencing rules, optionally traversing the activity tree to the next
activity.
- Flow
Subprocess - traverses the activity tree in a specified
direction to find the next activity allowed for delivery.
- Check
Activity Process - determines if a single activity is
disabled or violates limit conditions.
- Choice
Activity Sequence Subprocess - determines if a Choice
sequencing request is permitted for a single activity by checking limit
conditions and sequencing rules.
- Start
Sequencing Request Process - processes a Start
sequencing request.
- Resume
All Sequencing Request Process - processes a Resume
All sequencing request.
- Continue
Sequencing Request Process - processes a Continue
sequencing request.
- Previous
Sequencing Request Process - processes a Previous
sequencing request.
- Choice
Sequencing Request Process - processes a Choice sequencing
request.
- Retry
Sequencing Request Process - processes a Retry sequencing
request.
- Exit
Sequencing Request Process - processes an Exit sequencing
request.
These individual processes
are part of the overall Sequencing Request Process that
controls all sequencing behavior.
The sequencing
process traverses the activity tree, in a forward (or reverse) preorder
traversal. Tree traversal continues until the traversal identifies a
termination point or an activity to deliver. Identifying the activity
to deliver is always constrained by limit conditions.
SB.1
Sequencing Requests
The sequencing process
responds to one of a set of different sequencing requests. A sequencing
request defines the actions to be performed when the request is
processed. The request names are tokens in a vocabulary. The names have
no semantics or meanings themselves. The definition of the action is
the complete definition of the required behavior.
| Sequencing
Request
|
Action
|
Start
|
Start the sequencing process at the root of the
activity tree. Perform a forward preorder tree traversal and evaluate
the activities:
- If the
activity does not have a "Flow" sequencing control mode (value False),
exit without identifying an activity to deliver - the sequencing system
waits for another navigation request.
- If the
tree traversal reaches a leaf activity, the activity is the candidate
to deliver to the learner.
|
Resume All
|
Resume the activity where the previous Suspend
All termination request was processed. The activity to be
resumed is retained in the Activity State attribute of Suspended
Activity.
- If the
Activity State attribute value of Suspended Activity
is a defined activity, the attempt on that activity (and all ancestor
activities) should be resumed, and the Suspended Activity is
the candidate to deliver to the learner.
- If the
Activity State attribute value of Suspended Activity
is undefined, exit without identifying an activity to deliver - the
sequencing system waits for another navigation request.
|
Continue
|
A Continue sequencing request is processed only if the
"Flow" sequencing control mode (value "True") is enabled for the parent
of the current activity; otherwise, this sequencing request has no
effect.
Start the sequencing
process at the current activity. Perform a forward preorder tree
traversal and evaluate the activities:
- If the
activity does not have a "Flow" sequencing control mode (value
"False"), exit without identifying an activity to deliver - the
sequencing system waits for another navigation request.
- If the
tree traversal reaches a leaf activity, the activity is the candidate
to deliver to the learner.
|
Previous
|
A Previous sequencing request is processed only if a
"Flow" sequencing control mode is enabled (value "True") for the parent
of the current activity; otherwise, this sequencing request has no
effect.
A Previous sequencing
request is processed only if the "Forward Only" sequencing control mode
for the parent of the current activity is "False".
Start the sequencing
process at the current activity. Perform a reverse
preorder tree traversal and evaluate the activities:
- If the
activity does not have a "Flow" sequencing control mode (value
"False"), exit without identifying an activity to deliver - the
sequencing system waits for another navigation request.
- If the
tree traversal reaches a leaf activity, the activity is the candidate
to deliver to the learner.
|
Choice
|
A "target" of the request, the activity that is
requested as the next activity in the sequence, accompanies this
sequencing request.
If the parent of the
target activity does not have a "Choice" sequencing control mode (value
"True"), exit without identifying an activity to deliver - the
sequencing system waits for another navigation request.
Find the first common
ancestor activity of the current activity (or the root if there is no
current activity) and the target activity. Form a path from the current
activity to the common ancestor activity and then to the target
activity.
If any activity along
the path from the parent of the current activity to the common
ancestor, but not including the common ancestor, does not have a
"Choice Exit" sequencing control mode (value "True"), exit without
identifying an activity to deliver - the sequencing system waits for
another navigation request.
Start the sequencing
process at the current activity. Traverse the path from the current
activity to the target activity and evaluate the activities (each step
in the traversal may be forward or reverse
relative to a preorder tree traversal):
- If
traversal is in the forward direction, and a Stop
Forward Traversal rule for the activity evaluates to "True",
exit without identifying an activity to deliver - the sequencing system
waits for another navigation request.
- If
traversal is in the reverse direction, and a Forward
Only rule for the activity evaluates to "True", exit without
identifying an activity to deliver - the sequencing system waits for
another navigation request.
- If the
traversal reaches the target activity, the target activity is the
candidate to deliver to the learner.
|
Retry
|
The current activity is identified as the activity to
deliver (recorded as a new attempt).
|
Exit
|
Start the sequencing process at the current activity.
- If the
current activity is the root of the activity tree, exit sequencing.
Otherwise, the
sequencing system waits for another navigation request.
|
SB.2
Sequencing Behavior
The sequencing behavior
describes how a sequencing processor interprets a sequencing request in
combination with the elements of the sequencing definition model and
with instance data from the tracking model and activity state model to
validate the sequencing request and identify the content object for
delivery. Except when the sequencing request is Exit,
the sequencing process attempts to determine an activity that can be
delivered to the learner.
An implementation
must be capable of representing the processes described and have the
implemented process exhibit the behavior described. There are no
additional requirements on implementing the sequencing behavior model.
The sequencing
behavior relies on the data descriptions from the sequencing definition
model (see Sequencing Definition Model SM),
the tracking model (see Tracking Model TM),
and the activity state model (see Activity State Model AM).
These information models also specify default data values that govern
the access to activity or tracking data.
SB.2.1
Flow Tree Traversal Subprocess
Sequencing performs a
preorder traversal of the activity tree. Different sequencing requests
traverse either forward or backward through the activity tree. The Flow
Tree Traversal Subprocess is used to determine the next
activity in traversal order, starting at a particular activity (or the previous
activity if traversing in the backward direction).
Traversal is
controlled by sequencing rules and Control Modes. Sequencing rule
conditions are specified by the Sequencing Rule Descriptions (SM.2).
The process uses the Sequencing Rules Check Subprocess
(UP.2).
The traversal
process is defined as a rule-checking and limit-checking traversal of
the activity tree.
- The Flow
Tree Traversal Subprocess traverses the tree, either forward
or backward, from the specified activity to identify the next activity
(one single step in the tree traversal). Traversal beyond the end of
the tree (in forward traversal) or the start of the tree (in backward
traversal) is an exception. Only precondition sequencing rules related
to traversing the tree in a Flow control mode are
applied.
The Flow Tree
Traversal Subprocess is applied to the identified activity
in the specified direction. If successful, it returns the Next
activity in the tree in traversal order.
The Flow
Tree Traversal Subprocess is specified by the following
pseudo code. The pseudo code describes only the tree traversal logic.
How this process is implemented or how information is encoded, stored,
represented, or bound is outside the scope of this specification. The Flow
Tree Traversal Subprocess only describes the expected
behavior that an implementation will exhibit.
Flow Tree Traversal
Subprocess (for an activity, a traversal direction, a
consider children flag, and a previous traversal direction; returns the
'next' activity in directed traversal of the activity tree):
|
Reference: Section:
Available Children
AM.1.1
Flow Activity
Traversal Subprocess SB.2.2
Sequencing Control
Forward Only SM.1
Sequencing Rules Check
Process UP.2
|
1.
|
If
the activity is not the root
activity of the activity tree Then
|
|
1.1.
|
If
Sequencing Control Flow for the parent of
the activity is False Then
|
Confirm a 'flow' traversal is allowed from the activity.
|
1.1.1.
|
Exit
Flow Tree Traversal Subprocess (Next
Activity: Nil)
|
|
|
End
If
|
|
|
End
If
|
|
2.
|
If
(previous traversal direction is Defined
And is Backward)
And the activity is the last
activity in the activity's parent's list of Available
Children Then
|
Test if we have skipped all of the children in a
forward only cluster moving backward
|
2.1.
|
traversal
direction is Backward
|
|
2.2.
|
activity
is the first activity in the activity's parent's list of Available
Children
|
|
|
End
If
|
|
3.
|
If
the traversal direction is Forward Then
|
|
3.1.
|
If
the activity is the last activity in a forward
preorder tree traversal of the activity tree Then
|
Cannot walk off the activity tree.
|
3.1.1.
|
Exit
Flow Tree Traversal Subprocess (Next
Activity: Nil)
|
|
|
End
If
|
|
3.2.
|
If
the activity is a leaf Or
consider children is False Then
|
|
3.2.1.
|
If
the activity is the last activity in the
activity's parent's list of Available Children
(AM.1.1) Then
|
|
3.2.1.1.
|
Apply
the Flow Tree Traversal Subprocess to the
activity's parent in the Forward direction and a
previous traversal direction of n/a with consider
children equal to False
|
Recursion - Move to the activity's parent's next
forward sibling.
|
3.2.1.2.
|
Exit
Flow Tree Traversal Subprocess (Next
Activity: the result of the recursive Flow
Tree Traversal Subprocess)
|
Return the result of the recursion.
|
3.2.2.
|
Else
|
|
3.2.2.1.
|
Apply
the Sequencing Rules Check Process to the
activity and the Stop Forward Traversal sequencing rules
|
Make sure we can move past the activity.
|
3.2.2.2.
|
If
the Sequencing Rules Check Process does
not return Nil Then
|
|
3.2.2.2.1.
|
Exit
Flow Tree Traversal Subprocess (Next
Activity: Nil)
|
|
|
End
If
|
|
3.2.2.3.
|
Traverse
the tree, forward preorder, one activity to the next activity, in the
activity's parent's list of Available Children
|
|
3.2.2.4.
|
Exit
Flow Tree Traversal Subprocess (Next
Activity: the activity identified by the
traversal)
|
|
|
End
If
|
|
3.3.
|
Else
|
Entering a cluster
|
3.3.1.
|
Exit
Flow Tree Traversal Subprocess (Next
Activity: the first activity in the activity's list of Available
Children)
|
|
|
End
If
|
|
|
End
If
|
|
4.
|
If
the traversal direction is Backward Then
|
|
4.1
|
If
the activity is the root activity of the tree Then
|
Cannot walk off the root of the activity tree.
|
4.1.1.
|
Exit
Flow Tree Traversal Subprocess (Next
Activity: Nil)
|
|
|
End
If
|
|
4.2.
|
If
the activity is a leaf Or
consider children is False Then
|
|
4.2.1.
|
If
the activity is the first activity in the
activity's parent's list of Available Children Then
|
|
4.2.1.1.
|
Apply
the Flow Tree Traversal Subprocess to the
activity's parent in the Backward direction and a
previous traversal direction of n/a with consider
children equal to False
|
Recursion - Move the activity's parent's next backward
sibling.
|
4.2.1.2.
|
Exit
Flow Tree Traversal Subprocess (Next
Activity: the result of the recursive Flow
Tree Traversal Subprocess)
|
Return the result of the recursion.
|
4.2.2.
|
Else
|
|
4.2.2.1.
|
If
Sequencing Control Forward Only for the
parent of the activity is True Then
|
Test the control mode before traversing.
|
4.2.2.1.1.
|
Exit
Flow Tree Traversal Subprocess (Next
Activity: Nil)
|
|
|
End
If
|
|
4.2.2.2.
|
Traverse
the tree, reverse preorder, one activity to the previous activity, from
the activity's parent's list of Available Children
|
|
4.2.2.3.
|
Exit
Flow Tree Traversal Subprocess (Next
Activity: the activity identified by the
traversal)
|
|
|
End
If
|
|
4.3.
|
Else
|
Entering a cluster
|
4.3.1.
|
If
Sequencing Control Forward Only for the
parent of the activity is True Or the
activity is the root of the activity tree Then
|
|
4.3.1.1.
|
Exit
Flow Tree Traversal Subprocess (Next
Activity: the first activity in the activity's list of Available
Children)
|
Start at the beginning of a forward only cluster.
|
4.3.2.
|
Else
|
|
4.3.2.1.
|
Exit
Flow Tree Traversal Subprocess (Next
Activity: the last activity in the activity's list of Available
Children)
|
Start at the end of the cluster if we are backing into
it.
|
|
End
If
|
|
|
End
If
|
|
|
End
If
|
|
5.
|
Exit
Flow Tree Traversal Subprocess (Next
Activity: Nil)
|
|
SB.2.2
Flow Activity Traversal Subprocess
Sequencing traverses the
activity tree, applying sequencing rules and limit conditions. The Flow
Activity Traversal Subprocess is used to determine if an
activity should be delivered, or if the traversal should examine the
next activity in the tree. The process is applied to a single activity,
checking both limit conditions and precondition sequencing rules.
Traversal is
controlled by sequencing rules and Control Modes. Sequencing rule
conditions are