Profile based statement validation
An xAPI profile describes what xAPI statements are valid in a community of practice. This tool allows you to input an xAPI profile and a statement, and test that the statement meets the profile.
Profile
{ "@context": "https://w3id.org/xapi/profiles/context", "id": "https://w3id.org/xapi/cmi5", "type": "Profile", "conformsTo": "https://w3id.org/xapi/profiles#1.0", "prefLabel": { "en": "cmi5 Profile" }, "definition": { "en": "This specification describes interoperable runtime communication between Learning Management Systems (LMS) and Assignable Units (AU).\n\nThe runtime communication and behavior of all parts of the system are carefully described in the full specification, which can be found at https://github.com/AICC/CMI-5_Spec_Current/blob/quartz/cmi5_spec.md . This is a structured representation of cmi5 concepts, statement structure, and statement communications patterns that the additional rules in the full specification build upon and provide the definitive interpretation of." }, "seeAlso": "https://github.com/AICC/CMI-5_Spec_Current/blob/quartz/cmi5_spec.md", "versions": [ { "id": "https://w3id.org/xapi/cmi5/v1.0", "generatedAtTime": "2017-03-27T12:30:00-07:00", "wasRevisionOf": ["https://w3id.org/xapi/cmi5/context/categories/cmi5"] } ], "author": { "type": "Organization", "name": "cmi5 Working Group" }, "concepts": [ { "id": "https://w3id.org/xapi/adl/verbs/abandoned", "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "type": "Verb", "definition": { "en": "Indicates that the AU session was abnormally terminated by a learner's action (or due to a system failure)." }, "prefLabel": { "en": "abandoned" } }, { "id": "https://w3id.org/xapi/adl/verbs/satisfied", "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "type": "Verb", "definition": { "en": "Indicates that the authority or activity provider determined the actor has fulfilled the criteria of the object or activity." }, "prefLabel": { "en": "satisfied" } }, { "id": "https://w3id.org/xapi/adl/verbs/waived", "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "type": "Verb", "definition": { "en": "Indicates that the learning activity requirements were met by means other than completing the activity. A waived statement is used to indicate that the activity may be skipped by the actor." }, "prefLabel": { "en": "waived" } }, { "id": "https://w3id.org/xapi/cmi5/activities/block", "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "type": "ActivityType", "definition": { "en": "A block represents a number of Assignable Units of which progress (completion/success) is rolled up to. In cmi5 it is every level above the AU and below the Course." }, "prefLabel": { "en": "block" } }, { "id": "https://w3id.org/xapi/cmi5/activities/course", "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "type": "ActivityType", "exactMatch": [ "http://adlnet.gov/expapi/activities/course" ], "definition": { "en": "A course represents an amount of content that is published and registered for with the purpose of gaining completion. It is represented with a Course Structure Format in cmi5 as the highest level of content (above Block and AU)." }, "prefLabel": { "en": "course" } }, { "id": "https://w3id.org/xapi/cmi5/result/extensions/progress", "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "type": "ResultExtension", "prefLabel": { "en": "progress" }, "definition": { "en": "An integer value between 0 and 100 (inclusive) indicating the completion of the AU as a percentage.\n\nThe AU may set this value in statements to indicate level of completion. The AU SHOULD NOT set a progress value in a Completed statement or if it has previously issued a Completed statement for the AU in the current registration." }, "inlineSchema": "{ \"type\": \"number\", \"maximum\": 100, \"minimum\": 0, \"multipleOf\": 1.0 }" }, { "id": "https://w3id.org/xapi/cmi5/result/extensions/reason", "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "type": "ResultExtension", "prefLabel": { "en": "reason" }, "definition": { "en": "Indicates the reason why an AU was 'waived' (marked complete by an alternative means)" }, "inlineSchema": "{ \"type\": \"string\" }" }, { "id": "https://w3id.org/xapi/cmi5/context/extensions/sessionid", "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "type": "ContextExtension", "prefLabel": { "en": "session ID" }, "definition": { "en": "A unique identifier for a single AU launch session based on actor and course registration." }, "inlineSchema": "{ \"type\": \"string\" }" }, { "id": "https://w3id.org/xapi/cmi5/context/extensions/masteryscore", "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "type": "ContextExtension", "prefLabel": { "en": "mastery score" }, "definition": { "en": "'masteryScore' as provided in the LMS Launch Data for the AU plus registration used to determine the pass/fail result based on score" }, "inlineSchema": "{ \"type\": \"number\", \"maximum\": 1, \"minimum\": 0 }" }, { "id": "https://w3id.org/xapi/cmi5/context/extensions/launchmode", "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "type": "ContextExtension", "prefLabel": { "en": "launch mode" }, "definition": { "en": "Indicates what launch mode an AU was launched with by the LMS" }, "inlineSchema": "{ \"enum\": [\"Normal\", \"Browse\", \"Review\"] }" }, { "id": "https://w3id.org/xapi/cmi5/context/extensions/launchurl", "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "type": "ContextExtension", "prefLabel": { "en": "launch URL" }, "definition": { "en": "The URL used by the LMS to launch the AU" }, "inlineSchema": "{ \"type\": \"string\", \"format\": \"uri\" }" }, { "id": "https://w3id.org/xapi/cmi5/context/extensions/launchparameters", "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "type": "ContextExtension", "prefLabel": { "en": "launch parameters" }, "definition": { "en": "'launchParameters' as provided in the LMS Launch Data for the AU plus registration" }, "inlineSchema": "{ \"type\": \"string\" }" }, { "id": "https://w3id.org/xapi/cmi5/context/extensions/moveon", "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "type": "ContextExtension", "prefLabel": { "en": "move on" }, "definition": { "en": "'moveOn' as provided in the LMS Launch Data for the AU plus registration" }, "inlineSchema": "{ \"enum\": [\"Passed\", \"Completed\", \"CompletedAndPassed\", \"CompletedOrPassed\", \"NotApplicable\"] }" } ], "templates": [ { "id": "https://w3id.org/xapi/cmi5#generalrestrictions", "type": "StatementTemplate", "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "prefLabel": { "en": "Restrictions for all cmi5-defined Statements" }, "definition": { "en": "Restrictions for all cmi5-defined Statements" }, "rules": [ { "location": "$.id", "presence": "included" }, { "location": "$.timestamp", "presence": "included" }, { "location": "$.context.contextActivities.grouping[*]", "presence": "included", "scopeNote": { "en":"An Activity object with an 'id' property whose value is the unaltered value of the AU's id attribute from the course structure (See Section 13.1.4 AU Metadata – id) MUST be included in the 'grouping' context activities." } }, { "location": "$.context.extensions['https://w3id.org/xapi/cmi5/context/extensions/sessionid']", "presence": "included" } ] }, { "id": "https://w3id.org/xapi/cmi5#launched", "type": "StatementTemplate", "prefLabel": { "en": "Launched" }, "definition": { "en": "Launched" }, "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "verb": "http://adlnet.gov/expapi/verbs/launched", "rules": [ { "location": "$.result.score", "presence": "excluded" }, { "location": "$.result.success", "presence": "excluded" }, { "location": "$.result.completion", "presence": "excluded" }, { "location": "$.context.contextActivities.category[*].id", "none": ["https://w3id.org/xapi/cmi5/context/categories/moveon"] }, { "location": "$.context.extensions['https://w3id.org/xapi/cmi5/context/extensions/launchmode']", "presence": "included", "all": ["Normal", "Browse", "Review"] }, { "location": "$.context.extensions['https://w3id.org/xapi/cmi5/context/extensions/launchurl']", "presence": "included", "scopeNote":{ "en": "The LMS MUST put a fully qualified URL equivalent to the one that the LMS used to launch the AU without the name/value pairs included as defined in section 8.1 in the context extensions of the 'Launched' statement."} }, { "location": "$.context.extensions['https://w3id.org/xapi/cmi5/context/extensions/moveon']", "presence": "included", "all": ["Passed", "Completed", "CompletedAndPassed", "CompletedOrPassed", "NotApplicable"] }, { "location": "$.context.extensions['https://w3id.org/xapi/cmi5/context/extensions/launchparameters']", "presence": "included" } ] }, { "id": "https://w3id.org/xapi/cmi5#initialized", "type": "StatementTemplate", "prefLabel": { "en": "Initialized" }, "definition": { "en": "Initialized" }, "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "verb": "http://adlnet.gov/expapi/verbs/initialized", "rules": [ { "location": "$.result.score", "presence": "excluded" }, { "location": "$.result.success", "presence": "excluded" }, { "location": "$.result.completion", "presence": "excluded" }, { "location": "$.context.contextActivities.category[*].id", "none": ["https://w3id.org/xapi/cmi5/context/categories/moveon"] } ] }, { "id": "https://w3id.org/xapi/cmi5#completed", "type": "StatementTemplate", "prefLabel": { "en": "Completed" }, "definition": { "en": "Completed" }, "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "verb": "http://adlnet.gov/expapi/verbs/completed", "rules": [ { "location": "$.result.score", "presence": "excluded" }, { "location": "$.result.success", "presence": "excluded" }, { "location": "$.result.completion", "presence": "included", "all": [true] }, { "location": "$.result.duration", "presence": "included", "scopeNote": { "en":"The AU SHOULD calculate duration as the time spent by the learner to achieve completion status."} }, { "location": "$.context.contextActivities.category[*].id", "presence": "included", "any": ["https://w3id.org/xapi/cmi5/context/categories/moveon"] } ] }, { "id": "https://w3id.org/xapi/cmi5#passed", "type": "StatementTemplate", "prefLabel": { "en": "Passed" }, "definition": { "en": "Passed" }, "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "verb": "http://adlnet.gov/expapi/verbs/passed", "rules": [ { "location": "$.result.score", "presence": "recommended" }, { "location": "$.result.success", "presence": "included", "all": [true] }, { "location": "$.result.completion", "presence": "excluded" }, { "location": "$.result.duration", "presence": "included", "scopeNote": { "en":"The AU SHOULD calculate duration as the time spent by the learner to attempt and succeed in a judged activity of the AU."} }, { "location": "$.context.contextActivities.category[*].id", "presence": "included", "any": ["https://w3id.org/xapi/cmi5/context/categories/moveon"] } ] }, { "id": "https://w3id.org/xapi/cmi5#failed", "type": "StatementTemplate", "prefLabel": { "en": "Failed" }, "definition": { "en": "Failed" }, "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "verb": "http://adlnet.gov/expapi/verbs/failed", "rules": [ { "location": "$.result.score", "presence": "recommended" }, { "location": "$.result.success", "presence": "included", "all": [false] }, { "location": "$.result.completion", "presence": "excluded" }, { "location": "$.result.duration", "presence": "included", "scopeNote": { "en":"The AU SHOULD calculate duration as the time spent by the learner to attempt and fail in a judged activity of the AU."} }, { "location": "$.context.contextActivities.category[*].id", "presence": "included", "any": ["https://w3id.org/xapi/cmi5/context/categories/moveon"] } ] }, { "id": "https://w3id.org/xapi/cmi5#abandoned", "type": "StatementTemplate", "prefLabel": { "en": "Abandoned" }, "definition": { "en": "Abandoned" }, "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "verb": "https://w3id.org/xapi/adl/verbs/abandoned", "rules": [ { "location": "$.result.score", "presence": "excluded" }, { "location": "$.result.success", "presence": "excluded" }, { "location": "$.result.completion", "presence": "excluded" }, { "location": "$.result.duration", "presence": "included", "scopeNote": {"en":"The duration property MUST, at a minimum, be set as the total session time, calculated as the time between the 'Launched' statement and the last statement (of any kind) issued by the AU. The LMS SHOULD also use other (LMS specific) methods (if available) to determine if the total session time was longer."} }, { "location": "$.context.contextActivities.category[*].id", "none": ["https://w3id.org/xapi/cmi5/context/categories/moveon"] } ] }, { "id": "https://w3id.org/xapi/cmi5#waived", "type": "StatementTemplate", "prefLabel": { "en": "Waived" }, "definition": { "en": "Waived" }, "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "verb": "http://adlnet.gov/expapi/verbs/waived", "rules": [ { "location": "$.result.score", "presence": "excluded" }, { "location": "$.result.success", "presence": "included", "all": [true] }, { "location": "$.result.completion", "presence": "included", "all": [true] }, { "location": "$.result['https://w3id.org/xapi/cmi5/result/extensions/reason']", "presence": "included" }, { "location": "$.context.contextActivities.category[*].id", "presence": "included", "any": ["https://w3id.org/xapi/cmi5/context/categories/moveon"] } ] }, { "id": "https://w3id.org/xapi/cmi5#terminated", "type": "StatementTemplate", "prefLabel": { "en": "Terminated" }, "definition": { "en": "Terminated" }, "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "verb": "http://adlnet.gov/expapi/verbs/terminated", "rules": [ { "location": "$.result.score", "presence": "excluded" }, { "location": "$.result.success", "presence": "excluded" }, { "location": "$.result.completion", "presence": "excluded" }, { "location": "$.result.duration", "presence": "included", "scopeNote": {"en":"The AU SHOULD calculate duration for Terminated statements as the time difference between the 'Initialized' statement and the 'Terminated' statement. The AU may use other methods to calculate the duration based on criteria determined by the AU."} }, { "location": "$.context.contextActivities.category[*].id", "none": ["https://w3id.org/xapi/cmi5/context/categories/moveon"] } ] }, { "id": "https://w3id.org/xapi/cmi5#satisfied", "type": "StatementTemplate", "prefLabel": { "en": "Satisfied" }, "definition": { "en": "Satisfied" }, "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "verb": "http://adlnet.gov/expapi/verbs/satisfied", "rules": [ { "location": "$.result.score", "presence": "excluded" }, { "location": "$.result.success", "presence": "excluded" }, { "location": "$.result.completion", "presence": "excluded" }, { "location": "$.context.contextActivities.category[*].id", "none": ["https://w3id.org/xapi/cmi5/context/categories/moveon"] }, { "location": "$.object.definition.type", "presence": "included", "any": [ "https://w3id.org/xapi/cmi5/activitytype/block", "https://w3id.org/xapi/cmi5/activitytype/course" ] } ] }], "patterns": [ { "id": "https://w3id.org/xapi/cmi5#satisfieds", "type": "Pattern", "prefLabel": { "en": "Satisfieds" }, "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "zeroOrMore": "https://w3id.org/xapi/cmi5#satisfied" }, { "id": "https://w3id.org/xapi/cmi5#waivedsession", "type": "Pattern", "prefLabel": { "en": "Waived Session" }, "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "sequence": ["https://w3id.org/xapi/cmi5#satisfieds", "https://w3id.org/xapi/cmi5#waived", "https://w3id.org/xapi/cmi5#satisfieds"] }, { "id": "https://w3id.org/xapi/cmi5#noresultsession", "type": "Pattern", "prefLabel": { "en": "No Result Session" }, "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "sequence": ["https://w3id.org/xapi/cmi5#launched", "https://w3id.org/xapi/cmi5#initialized", "https://w3id.org/xapi/cmi5#terminatedorabandoned"] }, { "id": "https://w3id.org/xapi/cmi5#completionnosuccesssession", "type": "Pattern", "prefLabel": { "en": "Completion No Success Session" }, "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "sequence": ["https://w3id.org/xapi/cmi5#launched", "https://w3id.org/xapi/cmi5#initialized", "https://w3id.org/xapi/cmi5#completed", "https://w3id.org/xapi/cmi5#satisfieds", "https://w3id.org/xapi/cmi5#terminatedorabandoned"] }, { "id": "https://w3id.org/xapi/cmi5#passedsession", "type": "Pattern", "prefLabel": { "en": "Completed And Maybe Failed" }, "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "sequence": ["https://w3id.org/xapi/cmi5#launched", "https://w3id.org/xapi/cmi5#initialized", "https://w3id.org/xapi/cmi5#passed", "https://w3id.org/xapi/cmi5#satisfieds", "https://w3id.org/xapi/cmi5#terminatedorabandoned"] }, { "id": "https://w3id.org/xapi/cmi5#completionpassedsession", "type": "Pattern", "prefLabel": { "en": "Completed And Passed Session" }, "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "sequence": ["https://w3id.org/xapi/cmi5#launched", "https://w3id.org/xapi/cmi5#initialized", "https://w3id.org/xapi/cmi5#completedandpassed", "https://w3id.org/xapi/cmi5#satisfieds", "https://w3id.org/xapi/cmi5#terminatedorabandoned"] }, { "id": "https://w3id.org/xapi/cmi5#failedsession", "type": "Pattern", "prefLabel": { "en": "Failed Session" }, "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "sequence": ["https://w3id.org/xapi/cmi5#launched", "https://w3id.org/xapi/cmi5#initialized", "https://w3id.org/xapi/cmi5#failed", "https://w3id.org/xapi/cmi5#terminatedorabandoned"] }, { "id": "https://w3id.org/xapi/cmi5#completionmaybefailedsession", "type": "Pattern", "prefLabel": { "en": "Completion Maybe Failed Session" }, "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "sequence": ["https://w3id.org/xapi/cmi5#launched", "https://w3id.org/xapi/cmi5#initialized", "https://w3id.org/xapi/cmi5#completedandmaybefailed", "https://w3id.org/xapi/cmi5#satisfieds", "https://w3id.org/xapi/cmi5#terminatedorabandoned"] }, { "id": "https://w3id.org/xapi/cmi5#terminatedorabandoned", "type": "Pattern", "prefLabel": { "en": "Terminated Or Abandoned" }, "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "alternates": ["https://w3id.org/xapi/cmi5#terminated", "https://w3id.org/xapi/cmi5#abandoned"] }, { "id": "https://w3id.org/xapi/cmi5#completedandpassed", "type": "Pattern", "prefLabel": { "en": "Completed And Passed" }, "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "alternates": ["https://w3id.org/xapi/cmi5#completedthenpassed", "https://w3id.org/xapi/cmi5#passedthencompleted"] }, { "id": "https://w3id.org/xapi/cmi5#completedthenpassed", "type": "Pattern", "prefLabel": { "en": "Completed Then Passed" }, "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "sequence": ["https://w3id.org/xapi/cmi5#completed", "https://w3id.org/xapi/cmi5#satisfieds", "https://w3id.org/xapi/cmi5#passed"] }, { "id": "https://w3id.org/xapi/cmi5#passedthencompleted", "type": "Pattern", "prefLabel": { "en": "Passed Then Completed" }, "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "sequence": ["https://w3id.org/xapi/cmi5#passed", "https://w3id.org/xapi/cmi5#satisfieds", "https://w3id.org/xapi/cmi5#completed"] }, { "id": "https://w3id.org/xapi/cmi5#completedandmaybefailed", "type": "Pattern", "prefLabel": { "en": "Completed And Maybe Failed" }, "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "alternates": ["https://w3id.org/xapi/cmi5#maybecompletedthenfailed", "https://w3id.org/xapi/cmi5#failedthenmaybecompleted"] }, { "id": "https://w3id.org/xapi/cmi5#maybecompletedthenfailed", "type": "Pattern", "prefLabel": { "en": "Maybe Completed Then Failed" }, "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "sequence": ["https://w3id.org/xapi/cmi5#maybecompleted", "https://w3id.org/xapi/cmi5#satisfieds", "https://w3id.org/xapi/cmi5#failed"] }, { "id": "https://w3id.org/xapi/cmi5#failedthenmaybecompleted", "type": "Pattern", "prefLabel": { "en": "Failed Then Maybe Completed" }, "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "sequence": ["https://w3id.org/xapi/cmi5#failed", "https://w3id.org/xapi/cmi5#maybecompleted"] }, { "id": "https://w3id.org/xapi/cmi5#maybecompleted", "type": "Pattern", "prefLabel": { "en": "Maybe Completed" }, "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "optional": "https://w3id.org/xapi/cmi5#completed" }, { "id": "https://w3id.org/xapi/cmi5#typicalsession", "type": "Pattern", "prefLabel": { "en": "Typical Session" }, "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "alternates": [ "https://w3id.org/xapi/cmi5#completionmaybefailedsession", "https://w3id.org/xapi/cmi5#completionpassedsession", "https://w3id.org/xapi/cmi5#failedsession", "https://w3id.org/xapi/cmi5#noresultsession", "https://w3id.org/xapi/cmi5#passedsession", "https://w3id.org/xapi/cmi5#completionnosuccesssession", "https://w3id.org/xapi/cmi5#waivedsession" ] }, { "id": "https://w3id.org/xapi/cmi5#typicalsessions", "type": "Pattern", "prefLabel": { "en": "Typical Sessions" }, "definition": { "en": "This pattern provides an option to use zero or more of the alernates for the Typical Session pattern." }, "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "zeroOrMore": "https://w3id.org/xapi/cmi5#typicalsession" }, { "id": "https://w3id.org/xapi/cmi5#toplevel", "type": "Pattern", "primary": true, "prefLabel": { "en": "General Pattern" }, "definition": { "en": "This pattern describes the sequence of statements sent over the an entire course registration." }, "inScheme": "https://w3id.org/xapi/cmi5/v1.0", "sequence": ["https://w3id.org/xapi/cmi5#satisfieds", "typicalsessions"] } ] }
Statement
Validate Statement