Experience API: Difference between revisions
(Created page with "{{stub}} == Introduction == According to [https://www.adlnet.gov/using-xapi-need-help-choosing-an-lrs/ ADL] (retrieved June 2016) {{quotation|The Experience API (xAPI) i...") |
m (→Introduction) |
||
(12 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
== Introduction == | == Introduction == | ||
According to [https://www.adlnet.gov/using-xapi-need-help-choosing-an-lrs/ ADL] (retrieved June 2016) {{quotation|The [[Experience API]] (xAPI) is an open source specification that allows you to track any experience (i.e., formal, informal, or operational). xAPI can track reading an article or interacting with an eBook, watching a training video, chatting with a mentor, physiological measures such as heart-rate data, quiz scores, and answer history by question.}} | According to [https://www.adlnet.gov/using-xapi-need-help-choosing-an-lrs/ ADL] (retrieved June 2016) {{quotation|The [[Experience API]] (xAPI) is an open source specification that allows you to track any experience (i.e., formal, informal, or operational). xAPI can track reading an article or interacting with an eBook, watching a training video, chatting with a mentor, physiological measures such as heart-rate data, quiz scores, and answer history by question.}}. According to a more recent [https://github.com/adlnet/xAPI-Spec/blob/master/xAPI-About.md#partone definition] (retrieved April 2019), the {{quotation|Experience API (xAPI) is a technical specification that aims to facilitate the documentation and communication of learning experiences. It specifies a structure to describe learning experiences and defines how these descriptions can be exchanged electronically.}}. In more simple terms, the XAPI allows tracking of online student activities in various environments . It stores the data in a special purpose database - a socalled [[Learning Record Store]] - from which it then can be retrieved for various purposes, e.g. student monitoring or institutional learning analytics. | ||
See also: | |||
* [[Learning Record Store]] | |||
* [[Cmi5]] | |||
== Goals and components == | |||
According the [https://github.com/adlnet/xAPI-Spec/blob/master/xAPI-About.md#partone official developer home page] on Github (retrieved April 2019), the goals of the xAPI are: | |||
* To make it easier to understand and compare learning experiences and their outcomes recorded across a wide variety of contexts, platforms and technologies. | |||
* To maximize interoperability of services which create, gather, store and process information about learning experiences. | |||
* To provide a guide to those who want to build applications that conform to and implement this specification. | |||
* To provide criteria against which conformance to this specification can be tested. | |||
The API includes three major components: | |||
* Tracking Experiences | |||
* Activity Data and Metadata | |||
* Agent and Persona Management | |||
=== Tracking experiences === | |||
The following figure defines how learner experience is tracked | |||
[[file:xAPIDataFlow.jpg|800px|none|thumb|Data Flow in xAPI. Source: [https://github.com/adlnet/xAPI-Spec/blob/master/xAPI-About.md#partone Experience API] ]] | |||
{{quotationbox|1=A learner has a learning experience. This experience could take place in an online course, it could be on the job or it could be part of recreation. It really could be anything. This experience is tracked, on the learner’s behalf, by a trusted Learning Record Provider (LRP). The Learning Record Provider can also be responsible for the trusted relationship between the experience and the learner. This might even include launching content for the learner and managing digital rights associated with the content. | |||
The Learning Record Provider creates Learning Records and sends them to one or more Learning Record Stores (LRSs). The LRS stores the Learning Records and makes them available to any authorized Client. A Learning Record Consumer (LRC) is a type of Client that accesses Learning Records and makes use of them. | |||
:-([https://github.com/adlnet/xAPI-Spec/blob/master/xAPI-About.md xAPI-About] (retrieved April 2019). | |||
}} | |||
=== activity data and metadata === | |||
An XAPI statement is {{quotation|a data structure showing evidence for any sort of experience or event which is to be tracked in xAPI as a Learning Record. A set of several Statements, each representing an event in time, might be used to track complete details about a learning experience.}} ([https://github.com/adlnet/xAPI-Spec/blob/master/xAPI-About.md#def-statement xAPI About]) | |||
The statement includes: <code>Actor</code> <code>Verb</code> <code>Activity</code> <code>Additional Properties</code> | |||
Let us consider the statements "I did this" and "User X uploaded a file called ''King.pdf''" | |||
{{quotationbox|1= | |||
;Actor | |||
:An individual or group representation tracked using Statements performing an action within an Activity. Is the "'''I'''" in "I did this" or "User X" | |||
;Verb | |||
: Is the action being done by the Actor within the Activity within a Statement. A Verb represents the "'''did'''" in "I did this" | |||
;Activity (also called object) | |||
: A type of Object making up the "'''this'''" in "I did this" or "uploaded a file"; it is something with which an Actor interacted. It can be a unit of instruction, experience, or performance that is to be tracked in meaningful combination with a Verb. Interpretation of Activity is broad, meaning that Activities can even be tangible objects such as a chair (real or virtual). In the Statement "Anna tried a cake recipe", the recipe constitutes the Activity in terms of the xAPI Statement. Other examples of Activities include a book, an e-learning course, a hike, or a meeting. | |||
}} | |||
At the heart of the xAPI statements are '''Activities'''. Activities are defined with metadata, either by including or by reference. | |||
[[image: xAPIMetadata.jpg|thumb|none|800px|xAPI Statement and use of metadata to identify the activity]] | |||
Formally speaking, [https://github.com/adlnet/xAPI-Spec/blob/master/xAPI-Data.md#parttwo Part two: experience API Data] (retrieved April 2019), defines the following requirement for experience Data: | |||
* Statements and other objects SHOULD NOT include properties with a value of an empty object. | |||
* A Statement MUST use each property no more than one time. | |||
* A Statement MUST use "actor", "verb", and "object". | |||
* A Statement MAY use its properties in any order. | |||
* The LRS MUST NOT return a different serialization of any properties except those listed as exceptions. | |||
Below is a simple example statement in JSON format: | |||
<source lang="JSON"> | |||
{ | |||
"id":"fd41c918-b88b-4b20-a0a5-a4c32391aaa0", | |||
"timestamp": "2015-11-18T12:17:00+00:00", | |||
"actor":{ | |||
"objectType": "Agent", | |||
"name":"Project Tin Can API", | |||
"mbox":"mailto:user@example.com" | |||
}, | |||
"verb":{ | |||
"id":"http://example.com/xapi/verbs#sent-a-statement", | |||
"display":{ | |||
"en-US":"sent" | |||
} | |||
}, | |||
"object":{ | |||
"id":"http://example.com/xapi/activity/simplestatement", | |||
"definition":{ | |||
"name":{ | |||
"en-US":"simple statement" | |||
}, | |||
"description":{ | |||
"en-US":"A simple Experience API statement. Note that the LRS | |||
does not need to have any prior information about the Actor (learner), the | |||
verb, or the Activity/object." | |||
} | |||
} | |||
} | |||
} | |||
</source> | |||
=== Personas === | |||
[[image:xAPIPersonas.jpg|thumb|800px|none|xAPI Personas]] | |||
Each experience data that is stored through an XPI statement corresponds to a persona. | |||
In the figure above, a learner accesses multiple services. {{quotation|Some of these services are used at work, others at home. Some are used for social purposes and others are used for educational or professional puproses. Thus, there are multiple personas functioning collectively within these services. Each of these services send data to the LRS. Afterwards, there are Statements from three different personas of the same learner}} ([https://github.com/adlnet/xAPI-Spec/blob/master/xAPI-About.md xAPI-About] (retrieved April 2019). | |||
A learner sending Learning Records to an LRS could have multiple personas (Agents) associated with him or her and the LRS can then in principle aggregate all of the information of each of the personas into a single "Person" Object. How this can be done and controlled is not part of the specification. | |||
== Acknowledgement and copyright == | |||
A large part of contents from the [https://github.com/adlnet/xAPI-Spec/blob/master/xAPI-About.md#partone Experience API] specification, "''Copyright 2013 Advanced Distributed Learning (ADL) Initiative, U.S. Department of Defense''". These contents are licensed under the Apache License, Version 2.0. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0. In short, you can reuse the reused material in any way if you cite the original [https://github.com/adlnet/xAPI-Spec/blob/master/xAPI-About.md#partone Experience API] source. | |||
[[category:standards]] | [[category:standards]] |
Latest revision as of 20:30, 25 May 2019
Introduction
According to ADL (retrieved June 2016) “The Experience API (xAPI) is an open source specification that allows you to track any experience (i.e., formal, informal, or operational). xAPI can track reading an article or interacting with an eBook, watching a training video, chatting with a mentor, physiological measures such as heart-rate data, quiz scores, and answer history by question.”. According to a more recent definition (retrieved April 2019), the “Experience API (xAPI) is a technical specification that aims to facilitate the documentation and communication of learning experiences. It specifies a structure to describe learning experiences and defines how these descriptions can be exchanged electronically.”. In more simple terms, the XAPI allows tracking of online student activities in various environments . It stores the data in a special purpose database - a socalled Learning Record Store - from which it then can be retrieved for various purposes, e.g. student monitoring or institutional learning analytics.
See also:
Goals and components
According the official developer home page on Github (retrieved April 2019), the goals of the xAPI are:
- To make it easier to understand and compare learning experiences and their outcomes recorded across a wide variety of contexts, platforms and technologies.
- To maximize interoperability of services which create, gather, store and process information about learning experiences.
- To provide a guide to those who want to build applications that conform to and implement this specification.
- To provide criteria against which conformance to this specification can be tested.
The API includes three major components:
- Tracking Experiences
- Activity Data and Metadata
- Agent and Persona Management
Tracking experiences
The following figure defines how learner experience is tracked
A learner has a learning experience. This experience could take place in an online course, it could be on the job or it could be part of recreation. It really could be anything. This experience is tracked, on the learner’s behalf, by a trusted Learning Record Provider (LRP). The Learning Record Provider can also be responsible for the trusted relationship between the experience and the learner. This might even include launching content for the learner and managing digital rights associated with the content.
The Learning Record Provider creates Learning Records and sends them to one or more Learning Record Stores (LRSs). The LRS stores the Learning Records and makes them available to any authorized Client. A Learning Record Consumer (LRC) is a type of Client that accesses Learning Records and makes use of them.
- -(xAPI-About (retrieved April 2019).
activity data and metadata
An XAPI statement is “a data structure showing evidence for any sort of experience or event which is to be tracked in xAPI as a Learning Record. A set of several Statements, each representing an event in time, might be used to track complete details about a learning experience.” (xAPI About)
The statement includes: Actor
Verb
Activity
Additional Properties
Let us consider the statements "I did this" and "User X uploaded a file called King.pdf"
- Actor
- An individual or group representation tracked using Statements performing an action within an Activity. Is the "I" in "I did this" or "User X"
- Verb
- Is the action being done by the Actor within the Activity within a Statement. A Verb represents the "did" in "I did this"
- Activity (also called object)
- A type of Object making up the "this" in "I did this" or "uploaded a file"; it is something with which an Actor interacted. It can be a unit of instruction, experience, or performance that is to be tracked in meaningful combination with a Verb. Interpretation of Activity is broad, meaning that Activities can even be tangible objects such as a chair (real or virtual). In the Statement "Anna tried a cake recipe", the recipe constitutes the Activity in terms of the xAPI Statement. Other examples of Activities include a book, an e-learning course, a hike, or a meeting.
At the heart of the xAPI statements are Activities. Activities are defined with metadata, either by including or by reference.
Formally speaking, Part two: experience API Data (retrieved April 2019), defines the following requirement for experience Data:
- Statements and other objects SHOULD NOT include properties with a value of an empty object.
- A Statement MUST use each property no more than one time.
- A Statement MUST use "actor", "verb", and "object".
- A Statement MAY use its properties in any order.
- The LRS MUST NOT return a different serialization of any properties except those listed as exceptions.
Below is a simple example statement in JSON format:
{
"id":"fd41c918-b88b-4b20-a0a5-a4c32391aaa0",
"timestamp": "2015-11-18T12:17:00+00:00",
"actor":{
"objectType": "Agent",
"name":"Project Tin Can API",
"mbox":"mailto:user@example.com"
},
"verb":{
"id":"http://example.com/xapi/verbs#sent-a-statement",
"display":{
"en-US":"sent"
}
},
"object":{
"id":"http://example.com/xapi/activity/simplestatement",
"definition":{
"name":{
"en-US":"simple statement"
},
"description":{
"en-US":"A simple Experience API statement. Note that the LRS
does not need to have any prior information about the Actor (learner), the
verb, or the Activity/object."
}
}
}
}
Personas
Each experience data that is stored through an XPI statement corresponds to a persona.
In the figure above, a learner accesses multiple services. “Some of these services are used at work, others at home. Some are used for social purposes and others are used for educational or professional puproses. Thus, there are multiple personas functioning collectively within these services. Each of these services send data to the LRS. Afterwards, there are Statements from three different personas of the same learner” (xAPI-About (retrieved April 2019).
A learner sending Learning Records to an LRS could have multiple personas (Agents) associated with him or her and the LRS can then in principle aggregate all of the information of each of the personas into a single "Person" Object. How this can be done and controlled is not part of the specification.
Acknowledgement and copyright
A large part of contents from the Experience API specification, "Copyright 2013 Advanced Distributed Learning (ADL) Initiative, U.S. Department of Defense". These contents are licensed under the Apache License, Version 2.0. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0. In short, you can reuse the reused material in any way if you cite the original Experience API source.