Feature Wiki
Tabs
xAPI: Integrated LRS
Page Overview
[Hide]- 1 Requirements
- 1.1 Purpose
- 1.2 Typical use cases
- 1.3 Responsibilities
- 1.4 Development Aspects
- 1.4.1 Features (work packages) to be implemented
- 1.4.2 Graphical User Interface
- 1.4.3 Miscellaneous
- 2 Additional Information
- 3 Discussion
- 4 Implementation
1 Requirements
1.1 Purpose
The « xAPI Activity Repository Object » is just one of the numerous potential scenarios to implement the new xAPI standard. It addresses the need to deliver some activities outside of the LMS (e.g. mobile apps) and to synchronize the Learning Progress of these activities with ILIAS.
1.2 Typical use cases
One typical use case is a gaming or a learning app delivered on a smart phone. In ILIAS, this app appears as an « xAPI Activity Repository Object » object in the course. When the learner is using the app on a smart phone, the results (e.g. completion, success) are automatically sent to ILIAS and appear in the Learning Progress.
Another use case for an external activity would be a web based activity, which is not integrated or imported to ILIAS. This could be a video from Youtube or any other (learning) content, that is provided by a third party and is compliant to xAPI Spec. An ILIAS object inside a course could be a starting point for such an activity. When using the reference (click on object in ILIAS) the necessary data (LRS endpoint, user access credentials) would be provided to the web activity inside the URL. The activity then reports the Learning Progress achieved by that particular lerner back to the ILIAS LRS.
1.3 Responsibilities
In this scenario, ILIAS provides its own integrated LRS.
ILIAS also provides an « LRS Proxy » which is able to « listen » the LRS incoming statements and identify statements which are relevant for an "external mobile activity".
Furthermore, ILIAS provides a new type of repository object called « External Mobile Activity (xAPI) ». This object is responsible for :
- Informing learners of what they have to do (e.g. « Take your smart phone, download this game and play with it. »)
- Displaying the learner status (e.g. « completed ») and updating the ILIAS Learning Progress report
- Providing all the necessary settings to implement such an object
The activity provider is responsible for :
- Delivering the activity on the mobile device
- Authenticating the user
- Providing settings (embedded or configurable) to enable the activity to discuss with the ILIAS LRS : LRS endpoint and activity ID
- Playing the activity and discussing with the ILIAS LRS
1.4 Development Aspects
Please take a look at Incorporating a TinCan LRS into an LMS and Building a Learning Record Store.
1.4.1 Features (work packages) to be implemented
Arbeitspaket | Beschreibung | Priorität |
---|---|---|
GUI | Grafische Oberflächen für die Verwaltung der Endpunkte (Endpoints, Statements, API's etc.) | hoch |
REST Service | Integration der REST-Services in ILIAS, die Grundvoraussetzung für xAPI | hoch |
OAuth 2.0 | Integration der Authentifizierung nach OAuth-Spezifikation in ILIAS. | hoch |
Statement Viewer (global) | Anders als im lokalen Statement Viewer (SV) sollen hier sämtliche Statements aus dem LRS abgefragt werden können. Ggfs. sind hier erweiterte Filter zu verwenden | hoch |
User Mapping | Ggf. nachträgliche Zuweisung zu ILIAS-Nutzern | mittel |
Reporting (global) | Auf Basis der vorhandenen Statements sollen Auswertungen zu den Lernvorgängen erstellt werden. Aufwand hängt vom Umfang des Reporting (Anzahl Berichte, ggfs. Aufbereitung durch Diagramme etc.) | mittel |
Statement PULL | LRS soll in der Lage sein, Anweisungen von anderen LRS zu ziehen. Die zu ziehenden Statements sollen eingeschränkt werden können. (Nur bestimmter Benutzer, nur im best. Zeitraum, nur best. Inhalte etc.) | mittel |
Statement PUSH (Statement Forwarding) | LRS soll in der Lage sein, Anweisungen an andere (ggfs. mehrere) LRS zu schicken (bspw. direkt nach Erhalt oder manuell ausgelöst). Die zu ziehenden Statements sollen eingeschränkt werden können. (Nur bestimmter Benutzer, nur im best. Zeitraum, nur best. Inhalte etc.) | niedrig |
Statement API | Übertragen der Statements (LF-Anweisungen) | hoch |
State API | Zwischenspeicher (z. B. falls die ausführende Plattform keinen eigenen Speicher besitzt oder zur Synchronisation der Zwischenstände mit anderen Geräten). Wird auch zur Speicherung der LF verwendet (Articulate) | hoch |
Activity Profile API | Aktivitätenbezogen, benutzerübergreifend (z. B. Highscore, Team-Foto eines Trainings etc.) | mittel |
Agent Profile API | Aktivitätenübergreifend, benutzerbezogen (z. B. Avatar d. Benutzers) | mittel |
Abspeichern (und Mergen mit POST) der xAPI Dokumente | Außer Statement API bieten alle API's die Möglichkeit beliebige Daten ("Dokumente") aufzunehmen. Wenn die Daten als JSON übergeben werden, sieht die Spezifikation eine Zusammenführung (Merge) der Daten vor. | niedrig |
About Resource | Liefert auf Anfrage die LRS-Versionen, die unterstützt werden, ggfs. weitere Infos | hoch |
Cross Origin Requests (alternativer Support | Es kann eine alternative Variante der Anfrage verwendet werden, die auch von älteren Browsern beherscht wird. Die Prio ist hoch, da Module (bspw. Articulate Storyline) diese Methode als Standardvariante auch bei aktuellen Browsern verwenden. | hoch |
HTTPS Unterstützung für LRS | Es ist noch zu klären, ob hieraus ein ToDo entsteht. | hoch |
Validierung der Statements in LRS (nur Syntax) | Die Spezifikation sieht vor, dass die Syntax der Statements validiert wird. Es soll also versucht werden, die Syntax so weit es geht zu verstehen, anderen Falls wird ein Fehler (HTTP 400 Bad Request) ausgegeben. Es sollte auch ein Log der Fehler implementiert werden, für leichteres Debugging. | mittel |
HTTP Head Request | Nur Metadaten werden zurück gegeben, keine (speicherlastigen) Inhalte | mittel |
Support for xAPI Version < 1.0.0 | Unterstützung für ältere Versionen der Spezifikation | niedrig |
Statement References | Implementierung der Funktion, so dass sich ein Statement auf ein anderes (vorhandenes) Statement beziehen kann. Bsp:
| mittel |
Sub-Statements | Das Objekt in einem Statement kann auch selbst ein vollwertiges (noch nicht vorhandenes) Statement sein. Somit sind verschachtelte Statements möglich. (Die Tiefe der Verschachtelung hat technisch
| mittel |
Voided Statement in LRS (über Request) und GUI | Statement für ungültig erklären (Löschen der vorhandenen Statements ist in der Spezifikation nicht vorgesehen) | mittel |
Signed Statement (digital signature mit JWS) | Digital signierte Statements: Wenn an die Authentizität und die Integrität der Statements höhere Anforderungen gestellt werden (Bspw. Abschlußexamen), so können digitale Signaturen helfen diese | mittel |
Implementation des Rechts auf Vergessen | Nutzer können eigene Daten einsehen und unter festzulegenden Bedingungen eigene Daten löschen | niedrig |
1.4.2 Graphical User Interface
Current Mockups for the Administration of the LRS in ILIAS
1.4.3 Miscellaneous
May be useful: TinCanPHP lib
Alex Killing, 24 May 2014: Could it be an option to integrate learning locker?
2 Additional Information
- Idea / concept: Stanislav Wischniak, Sébastien Fraysse (Knowledge Decision), Matthias Kunkel
- Funding: DoD NL (needs to be confirmed)
- Maintainer: Internetlehrer Uwe Kohnle
- Tested by: (name, e-mail)
3 Discussion
JF 28 Apr 2014: We do not think that we need two different repository object types for the xAPI support. We only support the development of one (External Activity). We would like to make this page the "Integrated LRS" feature request and schedule this for 4.5. The development of xAPI Activity Repository Object would be a prerequisite for this one.
JF 18 Aug 2014: We appreciate the current state of the concepts and mockups. We all need to get more experience with the topic to be able to give more constructive feedback.
Matthias Kunkel, March 18, 2015: This feature was already scheduled for 5.0 but not implemented due to missing funding / time. There is still a need for this feature. Therefore I have re-scheduled it for 5.1 to save time for discussing new feature requests. Nevertheless, funding is still needed to make this feature go into the 5.1 version.
Joel Hesse, 27.7.15: How much will is this expected to cost? (roughly calcuclated)
4 Implementation
...
Last edited: 27. Jul 2015, 08:52, Hesse, Joel [Joel_Hesse]