2015.05.19 tom de nies - tin can2prov exposing interoperable provenance of learning processes...
TRANSCRIPT
ELIS – Multimedia Lab
Tom De Nies, Frank Salliau, Ruben Verborgh,
Erik Mannens, Rik Van de Walle
Ghent University – iMinds – MMLab
http://research.tomdenies.be
@TomDeNies
TinCan2PROV:
Exposing Interoperable Provenance of Learning Processes through Experience API Logs
ELIS – Multimedia Lab
Logging learning processes
Tin Can a.k.a. the Experience API
W3C PROV: the standard for provenance
Mapping Tin Can to PROV
Put it to the test
What’s next?
Conclusion
Outline
ELIS – Multimedia Lab
Logging Learning Processes
ELIS – Multimedia Lab
Digital learning records can give us insight in:
Student performance
Learning circumstances/context
Correlation between students, assignments, teachers, materials, …
And much more!
Logging Learning Processes
ELIS – Multimedia Lab
(a.k.a. the Experience API, a.k.a. the xAPI)
Currently the go-to solution to effectively log (learning) experiences.
Pros: developer-friendly JSON format, easy-to-understand basics, plenty of Learning Record Store (LRS) options to manage the logs.
Cons: no full-fledged Linked Data, some awkward design choices
How can we log learning experiences?
ELIS – Multimedia Lab
{
"actor": {
"mbox": "mailto:[email protected]",
"name": "Tom De Nies",
"objectType": "Agent"
},
"verb": {
"id": "xapi-verbs:completed",
"display": { "en": "completed" }
},
"object": {
"id": "http://www.example.org/exercise1",
"objectType": "Activity",
"definition": { "name": { "en": "Example Activity" } }
}
}
Time for an example
“I”
“did”
“this”
ELIS – Multimedia Lab
See http://tincanapi.com/statements-101/
(of course there’s more to be logged…)
ELIS – Multimedia Lab
We could, but then we would miss some opportunities:
There’s just 1 serialization: JSON
This would limit the choices in database technology …
… which would limit the choices when building a LRS
Tin Can’s machine-interpretability is sub-optimal (e.g., the URL for the specification is either a PDF or a Github blob)
Interoperability could be improved
Why not just use Tin Can as is?
ELIS – Multimedia Lab
Let’s look at that earlier Tin Can statement in another way:
What can we do about this?
Tom De Nies completed
Example Activity
ELIS – Multimedia Lab
… called provenance
“Provenance is information about entities, activities, and people involved in producing a piece of data or thing.” – W3C PROV
http://www.w3.org/TR/prov-dm/
So if learning experience logs describe the things that led to a result … they are actually provenance!
… and that means we can model it in PROV!
This reminds me of something…
ELIS – Multimedia Lab
PROV has the power to address our previous concerns:
There’s many serializations: PROV-N, RDF, XML, JSON, …
This could go in any database: mongodb, relational, a triple store, linked data fragment, …
… we could use this to build a LRS ourselves!
Everything is machine-interpretable
Interoperability is PROV’s raison d’être…
Why PROV?
ELIS – Multimedia Lab
Learning logs could be cross-referenced with:
Imagine the possibilities…
Version history of educational software
Lineage and inventory of the study material
Provenance of the teaching staff, IT infrastructure, …
And so on!
ELIS – Multimedia Lab
Overview of our workflow
ELIS – Multimedia Lab
Step 1: bring the statement closer to actual Linked Data
http://www.w3.org/TR/json-ld/
In theory, all we need is to add an “@context” :
“http://semweb.mmlab.be/ns/tincan2prov/tincan2prov.jsonld”
which maps every JSON field to a concept in an ontology.
In practice, this revealed some flaws with the xAPI specification…
JSON-LD
ELIS – Multimedia Lab
There was no ontology (at least no machine-interpretable one).
So we created one: http://semweb.mmlab.be/ns/tincan2prov/
Adding this to root of JSON object should work now:
“@context”: http://semweb.mmlab.be/ns/tincan2prov/tincan2prov.jsonld,
“@type”: “xapi:Statement”
Converting xAPI JSON to JSON-LD (1/2)
ELIS – Multimedia Lab
Hiccups encountered:
- The field “id” is reserved for the URI in JSON-LD, so we need to add "@context": { "id": "@id"} to every verb and object property
- Language tags: xAPI conforms to RFC 5646, whereas JSON-LD conforms to RFC 4646
- Extensions & attachments are use case dependent
- Equally named fields don’t always have the same datatype
(e.g., id can sometimes be a UUID, other times a URI)
Converting xAPI JSON to JSON-LD (2/2)
ELIS – Multimedia Lab
{
"@context": “http://semweb.mmlab.be/ns/tincan2prov/tincan2prov.jsonld",
"@type": "http://semweb.mmlab.be/ns/tincan2prov/Statement",
"actor": {
"mbox": "mailto:[email protected]",
"name": "Tom De Nies",
"objectType": "Agent"
},
Our running example in JSON-LD (1/2)
ELIS – Multimedia Lab
"verb": {
"@context": { "id" : "@id" },
"id": "xapi-verbs:completed",
"display": { "en": "completed",
"nl": "afgewerkt"
}
},
"object": {
"@context": { "id" : "@id" },
"id": "http://www.example.org/exercise1",
"objectType": "Activity",
"definition": {
"name": { "en": "Example Activity" }
}
}
}
Our running example in JSON-LD (1/2)
ELIS – Multimedia Lab
[] xapi:actor [ a xapi:Agent;
xapi:name "Tom De Nies"@en;
foaf:mbox <mailto:[email protected]> ];
xapi:verb xapi-verbs:completed ;
xapi:object <http://www.example.org/exercise1> .
xapi-verbs:completed
xapi:display "completed"@en ,
"afgewerkt"@nl .
<http://www.example.org/exercise1>
a xapi:Activity ;
xapi:definition [
xapi:name
"Example Activity"@en
] .
…or in RDF/Turtle
ELIS – Multimedia Lab
xapi:actor → prov:Agent
xapi:verb → prov:Activity
xapi:object → prov:Entity
xapi:result, xapi:score, xapi:context, xapi:attachments→ prov:Entity
xapi:contextActivities → prov:Collection of xapi:Activity
xapi:stored → prov:wasGeneratedBy
xapi:timestamp → prov:qualifiedStart
Infer PROV assertions (in a nutshell)
ELIS – Multimedia Lab
The result
ELIS – Multimedia Lab
How do you evaluate a mapping?
→ by using it extensively in practice
Again, only experience will tell…
For now:
checked with 20 diverse statements from the public Tin Can LRS
http://tincan2prov.org/evaluation.html
- Smooth conversion (when input was valid)
- No loss of information observed (so mapping can be reversed if need be)
Put it to the test
ELIS – Multimedia Lab
Flemish project Edutablet http://www.iminds.be/en/projects/2014/03/20/edutab
User-driven development and optimization of digital teaching aids in education
Real-life tests in schools running as we speak
The end-game: a fully LD/PROV-based LRS
What’s next?
ELIS – Multimedia Lab
The foundations for interoperable learning logs are there.
Now we need to start harnessing the power of Linked Data in education…
… and TinCan2PROV is a small step in the right direction!
http://tincan2prov.org
Conclusion