cmi5 Implementation Flow for an AU

The following document provides high-level description for implementing cmi5 in learning activities. For specific details see the cmi5 specification.

The chart below provides a high-level description of the execution flow for an implementing cmi5 in an AU (Assignable Unit) - i.e. learning content. Each of the shapes in the chart are further explained (below the chart).

It is assumed that prior to the learner starting a learning activity:

  1. The learner has been authenticated by the LMS.
  2. The LMS has authorized permissions for the learner for system access.
  3. The LMS has authorized access to the learner for the learning activity (called a “Registration”)

LMS Launches AU

AU parses Launch URL for connect information:

See Sections:

Get Authorization Token

It is important to note that the AU does NOT authenticate to the LRS. Authentication is performed by the LMS and the LMS provides authorization to the AU with an LRS access authorization token.

AU uses the fetch URL to get the LRS access authorization token. The fetch URL can only be used once. The retrieved token must be used for all subsequent xAPI calls in the AU launch session.

See Sections:

Get State Document

The AU retrieves the state document LMS.LaunchData using the current registration id

The AU retrieves the following data from LMS.LaunchData:

See Sections:

Get Agent Profile

The AU retrieves the “cmi5LearnerPreferences” document from the Agent Profile using the Actor provided from the Launching URL.

The AU checks for “languagePreference” and “audioPreference” values.

See Sections:

Perform AU Setup

The AU performs it is internal setup activities prior to being for learner interaction.

This includes activities such as:

Send Initialized Statement

To indicate that the AU is ready for learner interaction, the AU sends a Statement to the LRS using the “initialized” verb and the other “cmi5 defined” statement required data elements (i.e. object requirements, context template, extensions, etc.).

See Sections:

Deliver Learning Experience

The AU delivers the learning experience to the learner. As the AU processes its events, it may

See Sections:

Write Completed Statement

When the learner views or performs all of the relevant activities, the AU sends a Statement to the LRS using the “completed” verb and the other “cmi5 defined” statement required data elements (i.e. object requirements, context template, extensions, etc.).

See Sections:

Write Failed Statement

If the AU is designed to have a judged activity and the learner fails to meet the minimum criteria (e.g. passing a quiz), the AU sends a Statement to the LRS using the “failed” verb and the other “cmi5 defined” statement required data elements (i.e. object requirements, context template, extensions, etc.).

See Sections:

Write Passed Statement

If the AU is designed to have a judged activity and the learner successfully to meets or exceeds the minimum criteria (e.g. passing a quiz), the AU sends a Statement to the LRS using the “passed” verb and the other “cmi5 defined” statement required data elements (i.e. object requirements, context template, extensions, etc.).

See Sections:

Exit AU

Depending on the AU design, the learner may take an action to exit from the presentation or the AU may start its exit process based on some other criteria.

Terminate

When the AU was terminated by the Learner and that the AU will not be sending any more statements for the session, it sends a Statement to the LRS using the “terminated” verb and the other “cmi5 defined” statement required data elements (i.e. object requirements, context template, extensions, etc.).

See Sections:

Redirect or Close Window

After the AU has finished all processing, it will do one of the following things:

See Sections: