cmi5 Verbs: An In-Depth Look
There are nine xAPI verbs used in cmi5. Three of these are required for every Assignable Unit (AU) session. Some are required to give the student credit and allow “move on” to the next AU. In this article we’ll take an in-depth look at the cmi5 verbs.
This is the fourth in my series of articles on cmi5. In “The next generation SCORM: cmi5“, I provided an overview of the cmi5 specification. In “cmi5: An overview of the Process Flow” I provided a high level overview of the cmi5 process flow from beginning to end. Then I covered the cmi5 Course Package.
“Required” cmi5 Verbs
Every time an AU is “launched” from an LMS in cmi5, it is called a “session”. Each session will have a unique sessionId assigned by the LMS. During a single session, there are three required verbs that must be sent to the xAPI Learning Record Store (LRS).
A “Launched” statement is used to indicate that the LMS has launched the AU. It should be used in combination with the “Initialized” statement sent by the AU in a reasonable period of time to determine whether the AU was successfully launched. Note that this statement is made by the LMS, not the AU.
A “Initialized” statement is made by the AU to indicate that it has been fully started and is ready for student interaction. It must follow the “Launched” statement created by the LMS within a reasonable period of time.
The AU must record a statement containing the “Terminated” verb as the last statement recorded by the AU in a session.
Sequence of Required Verbs
It is important to send your verbs in the correct order. You should not, for example, send any statements after “Terminated” for a given session.
“Move On” cmi5 Verbs
If you want your student to receive “credit” in the LMS for the AU, you must pay attention to the moveOn element of the State API. This determines what verbs you need to send in order to give the student “credit”. The moveOn element can have the following values:
If the moveOn value is “Passed”, then you must send a statement using the Passed verb to meet the moveOn criteria.
If the moveOn value is “Completed”, then you must send a statement using the Completed verb to meet the moveOn criteria.
In this case the LMS must receive two statements; one with the cmi5 verb “Completed” and one with the cmi5 verb “Passed”. The AU is considered satisfied only when both statements have been received. The order of the two statements is not important.
If the moveOn value is “CompletedOrPassed”, you can send either a Completed verb or a Passed verb (or both) to satisfy the moveOn criteria.
- Not Applicable
In this case, no moveOn criteria is required. Please note that in this case simply registering for the course meets the moveOn criteria.
Sequence of “Move On” Verbs
You may not duplicate “cmi5 defined” statements in a session:
- You may not send more than one “Passed” statement.
- You may not send a “Failed” statement after sending a “Passed” statement.
- To meet the moveOn criteria of “CompletedAndPassed”, it is allowed to send a “Completed” statement in one session, then a “Passed” statement in another session.
Here are the remaining cmi5 verbs:
The AU records a “Failed” statement when the learner has attempted and failed the judged activity in the AU.
The LMS uses the the “Terminated” statement to determine that the AU session has ended. In the absence of a “Terminated” statement the LMS will make the determination if an AU abnormally terminated a session by monitoring new statement or state API calls made for the same learner/course registration for a different AU. When abnormal termination is detected, the LMS writes an “Abandoned” statement.
A “Waived” statement is used by the LMS to indicate that the AU may be skipped by the Learner. The LMS makes this determination based on the course structure in cmi5.
The LMS writes a “Satisfied” statement when the learner has met the “move on” criteria for all AU’s in a block or all AU’s in a course.
So there you have it, the 9 cmi5 verbs. Remember, if you want to track more data about a student’s activity in an AU, you can. cmi5 will ignore any statements that do not contain cmi5 verbs, but they will be stored in the Learning Record Store. For more information on cmi5, be sure and check out our blog’s xAPI and cmi5 category.