As noted in the April xAPI Medbiq tconf, we do need a better way of integrating xAPI statements that come from different systems and sources.
In the xAPI standard structure, the way to do this is using the context.registration UUID
One of the challenges that we raised previously is how to coordinate the context.registration so that other sources know to use this as well. This will be particularly challenging for dumb devices like the Arduino-based sensors that we used in our Medbiq workshop.
Brian Miller at Rustici suggested that we should use cmi-5 for this. Yes, ADL have plans for xAPI Authentication which would also do this but that is not slated for release until September, whereas cmi-5 was released 8Jun2016.
I also found some other notes on this:
In that thread, there is an alternative suggestion on how to do this: context.contextActivities or context.statement from Christian Glahn
Another thread here in the same group where they are struggling with this: https://groups.google.com/a/adlnet.gov/forum/#!topic/xapi-design/jBko7raCHHw - again, this states that using registration may not be appropriate since you really want to group statements by 'attempt' or 'session'. Suggesting that the use of cmi-5 is better and that the xAPI Launch spec was just a temporary kludge to accommodate Storyline. Andrew comments in the same thread that you can use the Moodle Launch plugin for this. This might be really helpful: https://github.com/garemoko/moodle-mod_tincanlaunch/blob/601d6b5addeafd320be471fccb9d01d567ecd929/locallib.php#L103-L138 - has most of the code that we would need to consider. But is this using xAPI/TinCan Launch, rather than cmi-5? The forum thread does touch upon the approaches needed if you do not use an LMS, which is something that we will face possibly.
Saltbox have some comments on related best practices here: http://blog.saltbox.com/blog/2012/11/28/making-statements-tin-can-api-best-practices/ from Russel Duhon.
What is happening with cmi5? https://github.com/AICC/CMI-5_Spec_Current -- yes, the spec was formally announced. See https://github.com/AICC/CMI-5_Spec_Current/wiki/CMI-5-Working-Group-Meeting-Minutes-%E2%80%93-June-17th%2C-2016.
TinCan has more about Launch here: https://tincanapi.com/launch/ -- suggests that you should use cmi5 if available and fall back to xAPI Launch if it is not.
But context.registration can only have one UUID. Same as the thread. Workaround: use a context extension rather than UUID. Not ideal but workable. See notes here: http://xapi.vocab.pub/datasets/cmi5/ for more about Context Extensions
Further reading: http://risc-inc.com/cmi5-overview-process-flow/ - gives a useful description of cmi5 process flow but a bit too much emphasis on SCORM-like parts for our purposes.
David Topps & Ellen Meiselman
Co-Chairs, Medbiq Learning Experience Working Group