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/