Another Learning Standard? Where cmi5 Fits with SCORM and xAPI

Rustici Software
Rustici SoftwareRustici Software
Another learning standard?
Where cmi5 fits with SCORM and xAPI
Chris Tompkins & George Vilches
xAPI Party - Spring 2021
What we will be talking about
● Understand what cmi5 is
● How it bridges the gap between SCORM
and xAPI
● The state of cmi5 adoption today
● Preview the cmi5 tools and conformance
test suite currently under development
with Project CATAPULT
About Rustici Software
eLearning technology experts since 2002
We help connect content and platforms across the eLearning ecosystem,
leveraging our expertise in SCORM, xAPI, cmi5, LTI, and AICC.
450+
Vendors that use Rustici
Software in their product
1,500+
Paid SCORM Cloud customers,
plus thousands using free trial
80+
Organizations and government
agencies that contract direct
What is this new standard called cmi5?
● It’s still xAPI! cmi5 is an “xAPI profile”
● To use xAPI, you need an extra set
of rules (a profile)!
● AUs and Block, like AICC
● cmi5 has a “defined” set of verbs
1. Launched
2. Initialized
3. Terminated
4. Passed
5. Completed
6. Failed
7. Abandoned
8. Waived
9. Satisfied
SCORM vs xAPI vs cmi5 overlaps
Feature SCORM xAPI cmi5
“Player-like” UI Experience ✅ ❌ ✅
Well-defined launches ✅ ❌ ✅
A manifest ✅
imsmanifest.xml
❌
(tincan.xml)
✅
cmi5.xml
Multiple modules in a package ✅ ❌ ✅
Multiple distinctive launches ✅ ❌ ✅
Active learner “sessions” ✅ ❌ ✅
Sequencing ✅ ❌ ❌ (1)
Rollup ✅ ❌ ❌ (1)
Access learner data outside course ❌ ✅ ✅
Idempotency of learner data ❌ ✅ ✅
Extensions / custom learner data ❌ ✅ ✅
Beyond SCORM and xAPI
cmi5 also includes these capabilities beyond SCORM and xAPI
● Structured launch capabilities outside an LMS
● Wider “session” structure
● Firmer profile control to improve “Big 4” reporting
● Waiving, with structured tracking
● Control of exit behavior
● Launch remote content inside an LMS context
Verbiage
Most cmi5 verbs help represent actions or states in SCORM
cmi5 (LMS / AU) SCORM Command SCORM Key / Value
Launched* (L) LMSSetValue() / SetValue() “cmi.core.entry”
Initialized (A) LMSInitialize() / Initialize() --
Passed / Completed / Failed (A) LMSSetValue() / SetValue() “cmi.core.lesson_status” /
“cmi.completion_status” /
“cmi.success_status”
Terminated (A) LMSFinish() / Terminate() --
Abandoned (L) LMSSetValue() / SetValue() “adl.nav.request”
Waived (L) -- --
Satisfied (L) -- --
cmi5 is the glue that holds it together
● cmi5 is specially designed for the
LMS use case.
● xAPI is too flexible. Without
consistency across systems,
interoperability is lost.
● cmi5 ensures plug and play
interoperability.
Let’s see cmi5 in action
LRS
LMS
Create
course
package
Enroll
learner
in course
Learner
interacts
with AU
Author
Admin
Learner
LMS sets AU
launch
parameters
LMS sends
statements to
the LRS
Learner
launches
learning
AU retrieves launch
parameters
AU sends
statements to LRS
Adding “cmi5 defined” and “cmi5 allowed”
Use the Actor the LMS provides
ID and timestamp must come from the AU
“result” objects has lots of rules
cmi5 uses extensions on purpose
Structuring an xAPI statement for cmi5
cmi5 loves results!
{
"version": "1.0.0",
"verb": {
"id":
"http://adlnet.gov/expapi/v
erbs/passed",
...
},
"result": {
"score": {
"scaled": 1,
"raw": 40,
"min": 0,
"max": 40
},
"success": true,
"duration": "PT0H0M32S"
},
...
}
Verb (LMS/AU) “score” .* “success” “completion” “duration”
Launched (L) ❌ ❌ ❌ MAY
Initialized (A) ❌ ❌ ❌ MAY
Passed (A) MAY MUST (true) ❌ MUST
Failed (A) MAY MUST (false) ❌ MUST
Completed (A) ❌ ❌ MUST (true) MUST
Waived (L) ❌ MUST (true) MUST (true) MAY
Abandoned (L) ❌ ❌ ❌ MUST
Terminated (A) ❌ ❌ ❌ MUST
Satisfied (L) ❌ ❌ ❌ MAY
Anatomy of a cmi5 statement
{
"id": "fd85910e-b4d7-4b33-9859-de1a8104293a",
"timestamp": "2018-09-05T13:44:39.000Z",
"actor": {...},
"verb": {...},
"object": {
"id": "https://www2.virtualtrainingassistant.com/demo/8E632B45580E",
...
},
"result": {...},
"context": {
"registration": "676437af-c6b2-4619-9043-096de04ad996",
"contextActivities": {
"grouping": [
{
"objectType": "Activity",
"id": "https://presentations.scorm.com/EFE02C21-56AC-41A2-AE5A-9600275A6A00/presentation"
}
],
"category": [
{
"objectType": "Activity",
"id": "https://w3id.org/xapi/cmi5/context/categories/cmi5"
}
]
},
"extensions": {
"https://w3id.org/xapi/cmi5/context/extensions/sessionid": "1519",
"https://w3id.org/xapi/cmi5/context/extensions/masteryscore": 0.8
}
}
}
Required for all
cmi5 statements
(“defined” or
“allowed”)
Required for cmi5
“defined”
statements only
State of cmi5 adoption today
How’s cmi5 adoption looking so far?
6
Content authoring products
who have implemented cmi5
??
Tested on the cmi5
conformance test suite
6
LMS products who have
implemented cmi5
https://aicc.github.io/CMI-5_Spec_Current/adoption/ https://aicc.github.io/CMI-5_Spec_Current/adoption/ Coming this Fall!
Project CATAPULT overview
cmi5 Advanced Testing Application and
Player Underpinning Learning Technologies
12-month project that includes:
● Open Source cmi5 player Prototype
● cmi5 conformance test suite to test content
and platform conformance
● Sample cmi5 course templates
● Best practice guides and documentation for
implementing the tools
Project CATAPULT: Expected outcomes
Accelerate the adoption of cmi5 and xAPI
● Enable organizations to develop and implement cmi5
● Offer course creators options for migrating legacy content
● Provide resources to vendors and industry members to incorporate
support for cmi5 in their products
● Support procurement by providing a mechanism to validate existing
products and applications
Project CATAPULT: Prototype review
What’s next?
Adopt cmi5
● Assess where you are with cmi5 and determine where it fits with your plans
● Start having open conversations on where cmi5 fits in your existing tools in your
ecosystem
● Request your vendors to add cmi5 in their product roadmap and ask when will they have
support for cmi5
Follow along with Project CATAPULT
● Join the upcoming ADL webinars and follow xAPI.com blog for updates
● If you’re interested in working on the spec, join the cmi5 working group
Resources
Subscribe to the xAPI blog
● https://xapi.com/blog/
Keep up-to-date on Project CATAPULT
● https://adlnet.gov/projects/cmi5-CATAPULT/
Visit ADL’s cmi5 page and xapi.com’s cmi5 page for more background
● https://adlnet.gov/projects/cmi5-standard/ and https://xapi.com/cmi5/
View ADL’s cmi5 resources
● https://adlnet.gov/resources/cmi5-resources/
Join the cmi5 weekly working group
● http://aicc.github.io/CMI-5_Spec_Current/
Questions? Ask us anything.
Email us: info@rusticisoftware.com
Learn more: rusticisoftware.com | scorm.com | xapi.com
1 of 19

More Related Content

Similar to Another Learning Standard? Where cmi5 Fits with SCORM and xAPI

What is cmi5?What is cmi5?
What is cmi5?Art Werkenthin
1.6K views26 slides
cmi5-xapi-campcmi5-xapi-camp
cmi5-xapi-campBill McDonald
4.8K views13 slides

Similar to Another Learning Standard? Where cmi5 Fits with SCORM and xAPI(20)

More from Rustici Software(20)

Drinking the xAPI Kool AidDrinking the xAPI Kool Aid
Drinking the xAPI Kool Aid
Rustici Software258 views
State of xAPI Adoption: Our NumbersState of xAPI Adoption: Our Numbers
State of xAPI Adoption: Our Numbers
Rustici Software301 views

Recently uploaded(20)

Green Leaf Consulting: Capabilities DeckGreen Leaf Consulting: Capabilities Deck
Green Leaf Consulting: Capabilities Deck
GreenLeafConsulting177 views
CXL at OCPCXL at OCP
CXL at OCP
CXL Forum203 views
ChatGPT and AI for Web DevelopersChatGPT and AI for Web Developers
ChatGPT and AI for Web Developers
Maximiliano Firtman161 views

Another Learning Standard? Where cmi5 Fits with SCORM and xAPI

  • 1. Another learning standard? Where cmi5 fits with SCORM and xAPI Chris Tompkins & George Vilches xAPI Party - Spring 2021
  • 2. What we will be talking about ● Understand what cmi5 is ● How it bridges the gap between SCORM and xAPI ● The state of cmi5 adoption today ● Preview the cmi5 tools and conformance test suite currently under development with Project CATAPULT
  • 3. About Rustici Software eLearning technology experts since 2002 We help connect content and platforms across the eLearning ecosystem, leveraging our expertise in SCORM, xAPI, cmi5, LTI, and AICC. 450+ Vendors that use Rustici Software in their product 1,500+ Paid SCORM Cloud customers, plus thousands using free trial 80+ Organizations and government agencies that contract direct
  • 4. What is this new standard called cmi5? ● It’s still xAPI! cmi5 is an “xAPI profile” ● To use xAPI, you need an extra set of rules (a profile)! ● AUs and Block, like AICC ● cmi5 has a “defined” set of verbs 1. Launched 2. Initialized 3. Terminated 4. Passed 5. Completed 6. Failed 7. Abandoned 8. Waived 9. Satisfied
  • 5. SCORM vs xAPI vs cmi5 overlaps Feature SCORM xAPI cmi5 “Player-like” UI Experience ✅ ❌ ✅ Well-defined launches ✅ ❌ ✅ A manifest ✅ imsmanifest.xml ❌ (tincan.xml) ✅ cmi5.xml Multiple modules in a package ✅ ❌ ✅ Multiple distinctive launches ✅ ❌ ✅ Active learner “sessions” ✅ ❌ ✅ Sequencing ✅ ❌ ❌ (1) Rollup ✅ ❌ ❌ (1) Access learner data outside course ❌ ✅ ✅ Idempotency of learner data ❌ ✅ ✅ Extensions / custom learner data ❌ ✅ ✅
  • 6. Beyond SCORM and xAPI cmi5 also includes these capabilities beyond SCORM and xAPI ● Structured launch capabilities outside an LMS ● Wider “session” structure ● Firmer profile control to improve “Big 4” reporting ● Waiving, with structured tracking ● Control of exit behavior ● Launch remote content inside an LMS context
  • 7. Verbiage Most cmi5 verbs help represent actions or states in SCORM cmi5 (LMS / AU) SCORM Command SCORM Key / Value Launched* (L) LMSSetValue() / SetValue() “cmi.core.entry” Initialized (A) LMSInitialize() / Initialize() -- Passed / Completed / Failed (A) LMSSetValue() / SetValue() “cmi.core.lesson_status” / “cmi.completion_status” / “cmi.success_status” Terminated (A) LMSFinish() / Terminate() -- Abandoned (L) LMSSetValue() / SetValue() “adl.nav.request” Waived (L) -- -- Satisfied (L) -- --
  • 8. cmi5 is the glue that holds it together ● cmi5 is specially designed for the LMS use case. ● xAPI is too flexible. Without consistency across systems, interoperability is lost. ● cmi5 ensures plug and play interoperability.
  • 9. Let’s see cmi5 in action LRS LMS Create course package Enroll learner in course Learner interacts with AU Author Admin Learner LMS sets AU launch parameters LMS sends statements to the LRS Learner launches learning AU retrieves launch parameters AU sends statements to LRS
  • 10. Adding “cmi5 defined” and “cmi5 allowed” Use the Actor the LMS provides ID and timestamp must come from the AU “result” objects has lots of rules cmi5 uses extensions on purpose Structuring an xAPI statement for cmi5
  • 11. cmi5 loves results! { "version": "1.0.0", "verb": { "id": "http://adlnet.gov/expapi/v erbs/passed", ... }, "result": { "score": { "scaled": 1, "raw": 40, "min": 0, "max": 40 }, "success": true, "duration": "PT0H0M32S" }, ... } Verb (LMS/AU) “score” .* “success” “completion” “duration” Launched (L) ❌ ❌ ❌ MAY Initialized (A) ❌ ❌ ❌ MAY Passed (A) MAY MUST (true) ❌ MUST Failed (A) MAY MUST (false) ❌ MUST Completed (A) ❌ ❌ MUST (true) MUST Waived (L) ❌ MUST (true) MUST (true) MAY Abandoned (L) ❌ ❌ ❌ MUST Terminated (A) ❌ ❌ ❌ MUST Satisfied (L) ❌ ❌ ❌ MAY
  • 12. Anatomy of a cmi5 statement { "id": "fd85910e-b4d7-4b33-9859-de1a8104293a", "timestamp": "2018-09-05T13:44:39.000Z", "actor": {...}, "verb": {...}, "object": { "id": "https://www2.virtualtrainingassistant.com/demo/8E632B45580E", ... }, "result": {...}, "context": { "registration": "676437af-c6b2-4619-9043-096de04ad996", "contextActivities": { "grouping": [ { "objectType": "Activity", "id": "https://presentations.scorm.com/EFE02C21-56AC-41A2-AE5A-9600275A6A00/presentation" } ], "category": [ { "objectType": "Activity", "id": "https://w3id.org/xapi/cmi5/context/categories/cmi5" } ] }, "extensions": { "https://w3id.org/xapi/cmi5/context/extensions/sessionid": "1519", "https://w3id.org/xapi/cmi5/context/extensions/masteryscore": 0.8 } } } Required for all cmi5 statements (“defined” or “allowed”) Required for cmi5 “defined” statements only
  • 13. State of cmi5 adoption today How’s cmi5 adoption looking so far? 6 Content authoring products who have implemented cmi5 ?? Tested on the cmi5 conformance test suite 6 LMS products who have implemented cmi5 https://aicc.github.io/CMI-5_Spec_Current/adoption/ https://aicc.github.io/CMI-5_Spec_Current/adoption/ Coming this Fall!
  • 14. Project CATAPULT overview cmi5 Advanced Testing Application and Player Underpinning Learning Technologies 12-month project that includes: ● Open Source cmi5 player Prototype ● cmi5 conformance test suite to test content and platform conformance ● Sample cmi5 course templates ● Best practice guides and documentation for implementing the tools
  • 15. Project CATAPULT: Expected outcomes Accelerate the adoption of cmi5 and xAPI ● Enable organizations to develop and implement cmi5 ● Offer course creators options for migrating legacy content ● Provide resources to vendors and industry members to incorporate support for cmi5 in their products ● Support procurement by providing a mechanism to validate existing products and applications
  • 17. What’s next? Adopt cmi5 ● Assess where you are with cmi5 and determine where it fits with your plans ● Start having open conversations on where cmi5 fits in your existing tools in your ecosystem ● Request your vendors to add cmi5 in their product roadmap and ask when will they have support for cmi5 Follow along with Project CATAPULT ● Join the upcoming ADL webinars and follow xAPI.com blog for updates ● If you’re interested in working on the spec, join the cmi5 working group
  • 18. Resources Subscribe to the xAPI blog ● https://xapi.com/blog/ Keep up-to-date on Project CATAPULT ● https://adlnet.gov/projects/cmi5-CATAPULT/ Visit ADL’s cmi5 page and xapi.com’s cmi5 page for more background ● https://adlnet.gov/projects/cmi5-standard/ and https://xapi.com/cmi5/ View ADL’s cmi5 resources ● https://adlnet.gov/resources/cmi5-resources/ Join the cmi5 weekly working group ● http://aicc.github.io/CMI-5_Spec_Current/
  • 19. Questions? Ask us anything. Email us: info@rusticisoftware.com Learn more: rusticisoftware.com | scorm.com | xapi.com