Feature Wiki
Tabs
Optional enrichment of cmi5 requests with context information
Page Overview
[Hide]- 1 Initial Problem
- 2 Conceptual Summary
- 3 User Interface Modifications
- 4 Additional Information
- 4.1 Involved Authorities
- 4.2 Technical Aspects
- 4.3 Privacy
- 4.4 Security
- 4.5 Contact
- 4.6 Funding
- 5 Discussion
- 6 Implementation
- 6.1 Description and Screenshots
- 6.2 Test Cases
- 6.3 Privacy
- 6.4 Approval
1 Initial Problem
In many situations, it is helpful to have more information about the context in which learning takes place. This is especially true for self-study learning modules. Does the learning take place in a (repeat) course? Is the data collected from learners or also from tutors, for example?
Contextual information is helpful for evaluation (formative/summative) and for supporting learners.
The following contextual information should be transferred:
- Superordinate container objects (e.g., course)
- Keywords from LOM metadata
- Indication of whether the user is a learner
- Indication of whether the user is a teacher or supervisor
The integration of the first two pieces of information has already been implemented with a plugin (though not for cmi5) and has proven effective in enriching the quality of statements. The recommendation for keywords is to have at least one for content description (decimal classification is advantageous) and one that indicates the anticipated level of difficulty. The qualitative enrichment of statements can be very useful for learning analytics.
Information on whether the users are learners or supervisors (e.g., tutors) is helpful for reporting on a widely used, large range of content in the field of accident prevention.
At the same time, this distinction provides a starting point for better support. When reporting is separate from the content itself, the results are often not easily recognizable. If, as a support provider, you can display reporting directly alongside the content, analysis is often much easier.
One example of this is the representation of video usage in the context of the content (left: learner's view, right: tutor's view):

2 Conceptual Summary
According to cmi5 (section 10), the LMS must create or update a JSON document before starting an Assignable Unit. This document is stored with the following PUT parameters:
- activityId: The activity ID of the AU.
- agent: The agent (learner) to whom the document applies.
- stateId: LMS.LaunchData
- registration (optional, but recommended): The registration UUID for this learning attempt
The stateId parameter contains the JSON document, which is referred to as the LMS.LaunchData State Document. Example:
{
"contextTemplate": {
"contextActivities": {
"grouping": [ILIAS_SYSTEM, ILIAS_COURSE, ILIAS_MODULE]
},
"extensions": {
"https://www.ilias.de/xapi-extensions/isLearner": "true",
"https://www.ilias.de/xapi-extensions/isSupervisor": "false"
}
}
}
Explanation of grouping:
● Grouping: Ilias system (additional)
○ Activity Type: http://id.tincanapi.com/activitytype/category
○ Contains a unique IRI of the Ilias system as an ID, e.g., https://vb56.example.com/release_8lab/goto.php?target=root_1&client_id=inno&obj_id_lrs=1
● Grouping: Ilias Course:
○ Activity Type: http://adlnet.gov/expapi/activities/course
○ Represents the unique identifier of the course in ILIAS to which the learner is assigned. A course here corresponds to a group of learners who have jointly enrolled in a learning program.
○ The value of the ID should be a valid IRI that uniquely identifies the course (e.g., https://vb56.example.com/release_8lab/goto.php?target=crs_95&client_id=inno&obj_id_lrs=349).
● Grouping: Ilias module
○ Activity Type: http://adlnet.gov/expapi/activities/module
Explanation of isLearner:
Always set in the course or group if the role is set to member; outside the course/group: every user in the object is always a “learner” (unless the right “View learning progress of other users” is set).
Explanation of isSupervisor:
Depends on the right “View learning progress of other users”
It is the task of the content to use this information when generating statements.
TestCases only check the provision of context information.
In addition, context information on superordinate container objects (e.g., course) and keywords can be transmitted with a launched statement from ILIAS.
3 User Interface Modifications
3.1 List of Affected Views
- cmi5 > Settings
3.2 User Interface Details
The settings form is extended by an additional checkbox for 'transmit context information to content'. In the byline it should also be emphasized that one of the pseudonymization options provided by ILIAS should generally be used.
3.3 New User Interface Concepts
no new interface concept
3.4 Accessibility Implications
no accessibilty implications
4 Additional Information
4.1 Involved Authorities
- Authority to Sign off on Conceptual Changes: Kohnle, Uwe [ukohnle]
- Authority to Sign off Code Changes: Kohnle, Uwe [ukohnle]
If this request is related to multiple components, please list both authorities for all related components.
4.2 Technical Aspects
See above in chap 2.
4.3 Privacy
It should also be emphasized that one of the pseudonymization options provided by ILIAS should generally be used. Especially when a learning record store is not used itself. The privacy.md will be extended accordingly.
4.4 Security
no security relevant changes
4.5 Contact
Person to be contacted in case of questions about the feature or for funding offers: Kohnle, Uwe [ukohnle]
4.6 Funding
Funding status and funding parties are listed in the block 'Status of Feature' in the right column of this page.
If you are interested to give funding for this feature, please get into contact with the person mentioned above as 'Contact'.
5 Discussion
Kergomard, Stephan [skergomard], 09 OCT 2025: I must admit that from the outside it is very hard to see the consequences of your change. Am I understanding it right that the only thing this actually does is inform the content what context it is running in? Am I also understanding it right that "agent: The agent (learner) to whom the document applies." means that depending on the proxy settings something else will be contained there, identifying the user?
Finally, if I remember correctly, when I was in the Technical Board we were working on a framework to guarantee that we wouldn't run into the same issues we lately had with Scorm and LTI, where it was rather difficult to find somebody taking over the responsibility for rather important functionalities in ILIAS, with xAPI/CMI5. We had drafted a path into the future to ensure the future stability of this component. As we are now adding more complexity to this component and as I'm unable to find any communication about this, I was wondering where the process is at right now?
JourFixe, ILIAS [jourfixe], 13 OCT 2025: We highly appreciate this suggestion and accept the feature for trunk. Please use this feature and its funding to go on with the improvements in documentation of the CmiXapi component. For a better privacy handling we would prefer to have strict default settings in this component – even if the standard itself defines other, less strict settings. Please add a short information about the changed defaults in the 'Changed Behaviour' section of ILIAS 11.
6 Implementation
Feature has been implemented by Kohnle, Uwe [ukohnle]
6.1 Description and Screenshots
{ Description of the final implementation and screenshots if possible. }
6.2 Test Cases
Test cases completed at {date} by {user}
- {Test case number linked to Testrail} : {test case title}
6.3 Privacy
Information in privacy.md of component: updated at {date} by {user} | privacy.md should be extended
6.4 Approval
Approved at {date} by {user}.
Last edited: Yesterday, 16:10, Kunkel, Matthias [mkunkel]