CMI 5 Working Group Meeting Minutes – March 18th, 2016 - AICC/CMI-5_Spec_Current GitHub Wiki

cmi5 Working Group Meeting Minutes – March 18th, 2016

Attendees

  • Bill McDonald - cmi5 working group leader
  • Andy Johnson - ADL
  • Art Werkenthin - RISC
  • Ben Clark - Rustici Software
  • Ray Lowery - Pratt & Whitney
  • Bernard Bouyt - Airbus
  • David Pesce - Exputo
  • Christopher Thompson - Medcom Inc
  • Mike Kennedy - Workday
  • Henry Ryng - InXsol
  • Andrew McGarrity - Thrivist

Notes

Issue #378 - Explicitly allow the LMS to override the "masteryScore" as defined in the course structure

This issued is really about how Activity ID's are to be managed with cmi5. (The question about changing the AU metadata in the course structure raise the issue about the definition of Activity ID's). The group has struggled with this issue for several weeks and has agreed to the following approach:

  1. Activity ID for launch line (comes from the LMS – LMS generates it)
    • LMS MUST NOT use the “Publisher ID” (the AU ID the from the course structure).
  2. LMS writes "Publisher ID" to the state
  3. AU Reads "Publisher ID" from the state
  4. AU writes the "Publisher" ID Context in its statements

The rationale being that the LMS will manage the Activity ID generation, but the ID from the course structure will also be added to statements as a "reference".

As a result of this decision, the cmi5 specification will change as follows:


8.1 Launch Method

activityId

Description: The Activity ID of the AU being launched.

LMS Usage: The LMS MUST generate a unique actvitityId for the AU. The LMS MUST place its value in the query string. The actvitityId generated MUST NOT match the AU’s id from the course structure (See Section 13.1.4 - AU Metadata). The LMS MUST use the same generated actvitityId on all subsequent launches (for the same AU) within the same registration. The LMS SHOULD use the same generated actvitityId (for the same AU) for all registrations.

AU Usage: The AU MUST get the activityId value from the query string. The AU MUST use the activityId value in API calls that require an "activity id" when sending xAPI requests.

Data type: String (URL-encoded)

Value space: IRI (as defined in the cmi5 Course Structure Section 13.1.4 - AU Metadata)

9.6 Context

Sample JSON:

   "context": {
     "registration": "<registration value provided by LMS>",
     "contextActivities": {
        "category": {[
          {"id": "https://w3id.org/xapi/cmi5/context/categories/moveon"},
          {"id": "https://w3id.org/xapi/cmi5/context/categories/cmi5"}
        ]}
     },
     "extensions" {
       "https://w3id.org/xapi/cmi5/context/extensions/sessionid":"<the value of session ID provided by the LMS>",
       "https://w3id.org/xapi/cmi5/context/extensions/publisherid":"<the unaltered value of the AU’s id from the course structure>"
       "https://w3id.org/xapi/cmi5/context/extensions/masteryScore": 0.50,
       "https://w3id.org/xapi/cmi5/context/extensions/launchMode" : "Normal"
      }
   }

9.6.3.4 publisher ID

ID: https://w3id.org/xapi/cmi5/context/extensions/publisherid

Description: Used to identify the AU using the publisher’s original activity id from the course structure. (See Section 13.1.4 AU Metadata – id).

LMS Usage: The LMS MUST record the publisher ID in the State API (See Section 10) prior to launching an AU. The LMS MUST also provide the publisher ID in the context as an extension for all "cmi5 defined" and "cmi5 allowed" statements it makes directly in the LRS.

AU Usage: An AU MUST include the publisher ID provided by the LMS in the context as an extension for all "cmi5 defined" and "cmi5 allowed" statements it makes directly in the LRS.

AU Obligation: Required

LMS Obligation: Required

Data type: String (URL-encoded)

Value space: string value

10.0 xAPI State Data Model

Sample JSON

{
  "contextTemplate": {
    "extensions": {
      "https://w3id.org/xapi/cmi5/context/extensions/sessionid":"<The LMS generated session ID value>",
      "https://w3id.org/xapi/cmi5/context/extensions/publisherid":"<The unaltered value of the AU’s id from the course structure>"
    }
  },
  "launchMode": "<launchMode value>",
  "launchParameters": "<launch parameters from Course Structure>",
  "masteryScore": "<masteryScore from the Course Structure>",
  "moveOn": "<moveOn value from the Course Structure>",
  "returnURL": "<URL value>",
  "entitlementKey": {
    "courseStructure": "<Entitlement data or key from Course Structure>",
    "alternate": "<alternateEntitlementKey>"
  }
}

contextTemplate

Description: Context template for the AU being launched.

LMS Required: Yes

AU Required: Yes

LMS Usage: LMS MUST include a "contextTemplate" object and MUST place all of the following values in that object's “extensions”:

  1. The value for session id placed in the element "https://w3id.org/xapi/cmi5/results/extensions/session"
  2. The unaltered value of the AU’s id from the course structure (see 13.1.4 AU Metadata) placed in the element: "https://w3id.org/xapi/cmi5/results/extensions/publisherid"

The LMS MAY place additional values in the "contextTemplate".

AU Usage: AU MUST get the contextTemplate value from the "LMS.LaunchData" state document. The AU MUST NOT modify or delete the "LMS.LaunchData" state document. The AU MUST use the contextTemplate as a template for the context property in all xAPI statements it records to the LMS. While the AU may include additional values in the context object of such statements, it MUST NOT overwrite any values provided in the contextTemplate.

Data Type: JSON context object as defined in xAPI specification.

All Previous CMI-5 Meeting Minutes

https://github.com/AICC/CMI-5_Spec_Current/wiki

CMI-5 on GitHub:

https://github.com/AICC

⚠️ **GitHub.com Fallback** ⚠️