presentation

Adopting the Experience API to work
with the Virtual Patient Standard - how,
what and why?
Matt Cownie, Jonathan Wright
University of the West of England, Bristol
Abstract
The eXperience Application Programming Interface (xAPI)
is a new specification that allows learning content to link
with learning systems to track and share all types of
learning experiences. Learning activities can be tracked
using combinations of a limited vocabulary of activities,
verbs and subjects. While the specification provides a
default profile of activities and verbs it allows for
communities of practice to develop custom profiles of their
own agreed activities and verbs. This presentation will
have main 3 parts.
XAPI
Actor, Verb, Object
Leaner , Completed, Virtual Patient
Caveat Emptor
•
•
•
•
•
•
•
Tincan OR experienceAPI OR xAPI
Versions 0.90-0.95-1.0-1.01
Many examples are ‘slightly wrong’
Libraries for Java, JS and PHP
New .NET Library for the Tin Can API is Now Available!
Refer to the final spec 1.0.1
Assumes you are VP Standard aware
Part 1 - How
Firstly it will demonstrate how to use the experience API to
capture the stream of activities a learner generates while
playing a Virtual Patient (VP). It will show technical
examples that map VP concepts onto XAPI calls that can
be used to populate a Learning Record System (LRS) with
VP related learner data.
Simplest example (C#)
Actor
Verb
Activity
Activity
Type
Statement
LRS
statement = actor + verb + activity
We made a statement
http://tincanapi.com/public-lrs/
Statement in the LRS
JSON payload
URL
URI
URL
Simplest example (JavaScript)
More detail?
“verb” : { “display” : {“en-US” :”visited”}, “id” : ”http://medbiq/exapi/verbs/visited },
“type” : http://medbiq/exapi/activites/virtualPatient/ } } }
COP Activity ?
COP Verb ?
Looks like, but
More detail with context (simple)
Tie everything
together
sessionId
XAPI - ContextActivities
XAPI provides four possibilities - ‘parent’, ‘grouping’, ‘category’, and ‘other’
Parent - model the Virtual Patient as parent activity and set that as the
context for all subsequent related activities. Further granularity would be a
video and MCQ with a node as parent activity.
Grouping - might want to group an activity within the VP with related activities
in same VP or other VPs
Category - “Category SHOULD be used to indicate a "profile" of xAPI
behaviors” - e.g. PhysicalExam, Medication?
Other - none of the above, perhaps supporting learning material or making a
branching decision?
Some Concerns
• Media Resources, Counters, CounterRules,
DataItems,NodeRules, NodeAccessRules
• Extensions
• Exposing internal workings and Id’s
• Name spacing
• Versioning
• Who’s the audience?
Part 2 - what
Secondly it will review what this data looks like in an LRS and
examples of querying it for meaning. It will outline what verbs
and activities might be contained in a Virtual Patient specific
profile and what use cases these could meet.
Simplest – manual get (c#)
query
results
Dashboard
A Report Builder
Statement Forwarding
Painting by Eugene
Delacroix, available
under a Creative
Commons Public
Domain license.
Verbs and Activities and URL’s
VP Activities + types
Video : video
Document : file
Html5 activity : interaction
audio : audio
YouTubeVid : media
Page : page
MCQ : question
Short answer : note
Flash activity : interaction
DataItems : file?
CounterRules : event
Image : media
Blood Test : media
Unity activity : interaction
CounterRules : event
NodeRules : event
DataItemRequest : interaction
Media Resources : media
NodeAccessRule : event
VP Verbs
Visited : was at
Played : played
Commented : commented
restarted : terminated?
Watched : watched
Listened : listened
Altered: updated?
Read : read
Started : started
Triggered: ?????
Answered : answered
Requested : requested
Exited : exited
Completed : completed
Extensions and Profile
counter : extension
feedback : extension
Part 3 – why (for VP’s)
Lastly it will outline why the virtual patient community might
want to adopt the experience API and ask whether a
specific community profile is necessary. Influences for
consideration include the “Internet of Things”, mobile
learning, data-mining, combining virtual patients with other
simulation activities, capturing the complete educational
context of a learners VP experience and reporting into
competency frameworks.
What were my use cases?
1.
2.
3.
4.
5.
Reporting
Big Data
Learning Management System(s)
LTI 1.1 & outcomes
Simulation
Other VP use cases?
1.
2.
3.
4.
5.
3D & Games
Multi-modal simulation
Team based
Platform transition (state API)
Learner Profiles
Wider reasons to adopt XAPI
1.
2.
3.
4.
5.
6.
7.
Transversal
Transparency
System silos
Simulation (non-linear)
Mobile
Innovation
Future proof
Answer the Question…
Is a specific VP community profile
necessary?
A friend in need
http://www.adlnet.gov/tla/experience-api
https://github.com/adlnet/xAPIWrapper
http://nodejs.org/
https://www.npmjs.org/package/adl-xapiwrapper
https://github.com/LearningLocker/learninglocker
http://thedesignspace.net/misc/xapi
https://github.com/RusticiSoftware/TinCan.NET
https://github.com/RusticiSoftware/TinCanJS
https://registry.tincanapi.com/
http://tincanapi.com/public-lrs/
http://scorm.com/scorm-solved/scorm-cloud-developers/