Skip to end of metadata
Go to start of metadata

Proposal for JavaScript-Interface for MVP-Players
=================================================
 Author: Jörn Heid, University of Heidelberg
Version: 2009-07-14
 Abstract
--------
SCORM
[http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/2004%204th%20Edition/Documentation.aspx],
which is used by the MedBiquitous Virtual Patient (VP) specification,
offers very rudimentary possibilities to give feedback about working
process with a VP. There are possibilities to give overall feedback of
the overall process but there may be interesting informations which
can't be used e.g. for formative assessment judgement for example which
path the student took.
Secondly, regarding extensions like the QTI extension, there has to be a
possibility to log additional data outside SCORM or better the LMS (for
instance which answer was took).
The proposal shows a way to standardize this with a MVP JavaScript-API
which MVP compatible player can implement. Dependent on the player the
events can be just send to the SCORM API or to another server
(Cross-Domain-Request) which can for example be used for formative
assessment or just better log functionality.
Having a stable spec even learn management system extension can be build
for displaying better information about the student's path through a VP
for example.
  Implementation
---------------
There should be two JavaScript files: The API itself and an
implementation for a specific player. The API just uses the SCORM-API,
so that the additional player specific implementation is optional.
 The following API calls will be possible [TODO]
 mvp.activityNodeCalled(String id)
mvp.extensionEvent (String namespace, String... arguments)
...
 Here's the API implementation [not working]:

  if (typeof window.mvp == 'undefined') window.mvp = {};
mvp = (function () {
 // private
 var implementations = [];
 // public
 return {
  registerImplementation: function (impl)
{    implementations.push (impl);    },
  activityNodeCalled: function (id) {
   var ignoreSCROMCall = false;
   for (var i = 0; i < implementations.length; i++)
       ignoreSCROMCall = ignoreSCROMCall || true ===
implementations[i].activityNodeCalled (id));
   if (!ignoreSCORMCall)
{       // Call SCORM here       ...       }   },
  extensionEvent: function (String namespace) {
   var ignoreSCROMCall = false;
   for (var i = 0; i < implementations.length; i++)
       ignoreSCROMCall = ignoreSCROMCall || true ===
implementations[i].extensionEvent (extensionEvent.arguments));
   if (!ignoreSCORMCall)
{       var message = '';       for (var i = 0; i < extensionEvent.arguments.length; i++)           message \+= extensionEvent.arguments\[i\]+'-';       // Call SCORM here       ...       }
   }
  }) ();
  An extension can register at the API and do, for example,
(Cross-Domain-)AJAX calls to save the additional log data:
 (function () {
 var myImpl = {
  extensionEvent: function (namespace)
{    alert ('Catched extension '+namespace);    // Don't want to promote this via SCORM    return true;    }  };
 mvp.registerImplementation (myImpl);
 }) ();

    Summary
---------
With a standardized API for MVP players, additional functionality for
logging or formative assessment is possible. Extensions for learn
management systems are possible which can rely on a solid interface.
  

  • No labels