IMS Content Packaging: Difference between revisions

The educational technology and digital learning wiki
Jump to navigation Jump to search
Line 178: Line 178:


  xsi:schemaLocation="http://www.imsglobal.org/xsd/imscp_v1p1
  xsi:schemaLocation="http://www.imsglobal.org/xsd/imscp_v1p1
tells the client where to look for the formal definition of vocabularies used (XML Schemas), both a name (the URL) and the name of a file in the content pack are given
tells the client where to look for the formal definition of vocabularies used (XML Schemas), both a name (the URL) and the name of a file in the content pack are given.
   
   
It is '''important''' to understand that these can change according to what version of IMS CP you use and of what other vocabularies are included.
It is '''important''' to understand that these can change according to what version of IMS CP you use and of what other vocabularies are included.
Finally, most URLs you may want to click on are broken. '''These are just unique names''' for standards. Of course it's bad practice not to provide at least an explanation page like the W3C does (e.g. [http://www.w3.org/2001/XMLSchema-instance http://www.w3.org/2001/XMLSchema-instance]. [[User:DSchneider|DSchneider]] believes that e-learning people are not open to the web as stable information and communication space (and this is one of the reasons why he isn't very fond of this sub-field of [[educational technology]]).


; The simple example with IEEE LOM and IMS 1.1
; The simple example with IEEE LOM and IMS 1.1

Revision as of 19:40, 22 December 2006

Definition

Content packs are a kind of learning object and IMS Content Packaging has the following objectives:

  • allow transfer of e-learning contents from one system to an other (interoperability)
  • allow to import/export contents into/from a [learning management system]. Therefore also be able to use an independent editing tool.

Content Packaging is an evolving and extensible standard. Therefore, make sure that you know what version you plan to build / import / export and more importantly what kinds of extensions various profiles adopt !!

IMS Content packaging is a very popular e-learning standard

  • IMS Content Packaging 1.1.2 is adopted by Addi's SCORM 1.2
  • IMS Content Packaging 1.1.4 by SCORM 2004
See also
  • The standards article that contains a summary table of interrelated standards
  • The SCORM 1.2 tutorial that introduces the SCORM 1.2 CAM and RTE architecture

Package architecture overview

A Package Interchange File (PIF) is a zip file (recommended, other formats are also allowed):

  1. File resources that include
    • All your assets (contents) needed, e.g. HTML pages, pictures, Flash Animations, PPT (whatever, the idea is that you take formats that your client can handle). You may use sub-directories
    • Schema files (that formally define all the vocabularies used in the manifest file (see next item).
  2. A special file in the zip is imsmanifest.xml containing:
    • a meta-data section <metadata />: describes the package as a whole.
    • a resource list <resources />: containing references to all of the actual resources and media elements needed for a manifest (files), including meta-data describing these resources, and references to any external files (URLs).
    • an organizations section: describing zero, one, or multiple organizations of the content within a manifest, i.e. information that is used to "play" the contents. There is a tree-based default organization for learning items which in turn refer to resources (assets). However, this section can also contain IMS Simple Sequencing or IMS Learning Design organization or any other future standard.
    • (sub)manifests, that can do the same for subpackages.

Here is a picture taken from the IMS Content Packaging Best Practice and Implementation Guide Version 1.1.4 of October 2004 that shows an overview of the Package Interchange File (PIF) architecture:

IMS Content Packaging 1 1.gif

Technical details

Firstly, you must understand that IMS CP can be (and is) extended in various ways:

  • IMS itself defines languages for pedagogical sequencing (content organization). E.g. the IMS Simple Sequencing binding defines a unique namespace (see below) for sequencing elements to be included in the organizations part. Therefore, elements in the Simple Sequencing namespace can be considered as extending the functionality of Content Packaging to included additional sequencing information.
  • The default organization vocabulary can be extended like in SCORM 1.2. SCORM adds additional elements (in particular to the <item> element), plus the distinction between ordinary assets and SCOs (resources that can interact with the LMS.

An example

We will use The RELOAD Test Package distributed by Reload to assist learning the Reload Editor and made by Dr. Colin D. Milligan.

Inside the zip

The zip file contains all files that are needed to define an older IMS 1.1 Content Package using IMS 1.2.2 Metadata

  • Three *.xsd schema files, i.e. XML grammars needed to formally validate the contents
  • The imsmanifes.xml file, i.e. the definition of the content package.
  • All contents
Contents of a simple IMS CP *.zip archive

We slightly altered this example to make it simpler and to use a more recent version of IMS CP and IEEE Metadata. In particular we:

  • changed the meta Metadata information
  • removed some items of the sequence and associated references and contents
  • used more readable identifiers
The (altered) IMS Manifest in the reload editor
The simple testpackage in the reload editor
Contents of the (altered) manifest
<manifest xmlns="http://www.imsglobal.org/xsd/imscp_v1p1"
          xmlns:imsmd="http://www.imsglobal.org/xsd/imsmd_v1p2"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
          identifier="MANIFEST-1" 
          xsi:schemaLocation="http://www.imsglobal.org/xsd/imscp_v1p1 imscp_v1p1.xsd
                              http://www.imsglobal.org/xsd/imsmd_v1p2 imsmd_v1p2p2.xsd">
 <metadata>
   <imsmd:lom>
     <imsmd:general>
       <imsmd:identifier>metadata-id</imsmd:identifier>
       <imsmd:title>
         <imsmd:langstring xml:lang="en">Simple IMS 1.1.4 Content Package</imsmd:langstring>
       </imsmd:title>
     </imsmd:general>
     <imsmd:metametadata>
       <imsmd:contribute>
         <imsmd:role>
           <imsmd:source><imsmd:langstring xml:lang="en">LOMv1.0</imsmd:langstring></imsmd:source>
           <imsmd:value><imsmd:langstring xml:lang="x-none">Creator</imsmd:langstring></imsmd:value>
         </imsmd:role>
         <imsmd:centity><imsmd:vcard>Daniel K. Schneider - 
                     adapted from Colin D. Milligan's Reload example</imsmd:vcard></imsmd:centity>
         <imsmd:date><imsmd:datetime>december 2006</imsmd:datetime></imsmd:date>
       </imsmd:contribute>
     </imsmd:metametadata>
     <imsmd:technical> <imsmd:format>text/html</imsmd:format> </imsmd:technical>
     <imsmd:educational>
       <imsmd:interactivitytype>
         <imsmd:source>
           <imsmd:langstring xml:lang="en">LOMv1.0</imsmd:langstring>
         </imsmd:source>
         <imsmd:value> <imsmd:langstring xml:lang="x-none">Expositive</imsmd:langstring> </imsmd:value>
       </imsmd:interactivitytype>
     </imsmd:educational>
     <imsmd:rights>
       <imsmd:description>
         <imsmd:langstring xml:lang="en">This is total freeware.</imsmd:langstring>
       </imsmd:description>
     </imsmd:rights>
   </imsmd:lom>
 </metadata>
 <organizations default="learning_sequence_1">
   <organization identifier="learning_sequence_1" structure="hierarchical">
     <title>Summer Pictures</title>
     <item identifier="ITEM-1" isvisible="true" identifierref="RES-1">
       <title>Loch Katrine</title>
     </item>
     <item identifier="ITEM-2" isvisible="true" identifierref="RES-2">
       <title>Ben Ledi</title>
     </item>
     <item identifier="ITEM-3" isvisible="true" identifierref="RES-3">
       <title>Jencks Earthwork</title>
     </item>
   </organization>
 </organizations>
 <resources>
   <resource identifier="RES-1" type="webcontent" href="five.html">
     <file href="five.html" />
     <file href="supp/reloadhelp.css" />
     <file href="supp/reloadeditoricon.gif" />
     <file href="supp/trossachs.jpg" />
   </resource>
   <resource identifier="RES-2" type="webcontent" href="three.html">
     <file href="three.html" />
     <file href="supp/reloadhelp.css" />
     <file href="supp/reloadeditoricon.gif" />
     <file href="supp/benledi.jpg" />
   </resource>
   <resource identifier="RES-3" type="webcontent" href="six.html">
     <file href="six.html" />
     <file href="supp/reloadhelp.css" />
     <file href="supp/reloadeditoricon.gif" />
     <file href="supp/jencks.jpg" />
   </resource>
 </resources>

</manifest>

XML namespaces

Namespaces are important constructs of the XML formalism. It allows definition of "languages" like IMS Content Packages that include various other vocabularies. It also allows to let a specification say something like: "Other organizations can extend this and and that by adding their own namespaced elements". This is exactly what SCORM 1.2 does.

Lets have a look at the attributes of the manifest element of aboves simple example

<manifest xmlns="http://www.imsglobal.org/xsd/imscp_v1p1"
          xmlns:imsmd="http://www.imsglobal.org/xsd/imsmd_v1p2"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
          identifier="MANIFEST-1" 
          xsi:schemaLocation="http://www.imsglobal.org/xsd/imscp_v1p1 
                              imscp_v1p1.xsd
                              http://www.imsglobal.org/xsd/imsmd_v1p2 
                              imsmd_v1p2p2.xsd">


xmlns="http://www.imsglobal.org/xsd/imscp_v1p1"

means that all non-namespaced elements belong to the IMS Content Packaging 1.1.x vocabulary, e.g. "manifest", "organizations", "organization", "item"

xmlns:imsmd="http://www.imsglobal.org/xsd/imsmd_v1p2"

means that all elements that are prefixed with imsmd belong to the IMS Metadata specification

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance

is a W3C standard that's used here for an attribute

xsi:schemaLocation="http://www.imsglobal.org/xsd/imscp_v1p1

tells the client where to look for the formal definition of vocabularies used (XML Schemas), both a name (the URL) and the name of a file in the content pack are given.

It is important to understand that these can change according to what version of IMS CP you use and of what other vocabularies are included.

Finally, most URLs you may want to click on are broken. These are just unique names for standards. Of course it's bad practice not to provide at least an explanation page like the W3C does (e.g. http://www.w3.org/2001/XMLSchema-instance. DSchneider believes that e-learning people are not open to the web as stable information and communication space (and this is one of the reasons why he isn't very fond of this sub-field of educational technology).

The simple example with IEEE LOM and IMS 1.1
<manifest xmlns="http://www.imsglobal.org/xsd/imscp_v1p1"
          xmlns:imsmd="http://ltsc.ieee.org/xsd/LOM" 
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          identifier="MANIFEST-E8613BED-C6E8-2CA6-2EA1-35B20B29FCBD"
          xsi:schemaLocation="http://www.imsglobal.org/xsd/imscp_v1p1 imscp_v1p2.xsd 
          http://ltsc.ieee.org/xsd/LOM lom.xsd 
          http://www.imsglobal.org/xsd/imscp_util imscp_util.xsd"> 
An example with SCORM 1.2 contents
<manifest identifier=Manifest" version="1.1"
 xmlns="http://www.imsproject.org/xsd/imscp_rootv1p1p2"
 xmlns:adlcp="http://www.adlnet.org/xsd/adl_cp_rootv1p1"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.imsproject.org/xsd/imscp_rootv1p1p2
                 imscp_rootv1p1p2.xsd
                 http://www.imsproject.org/xsd/imsmd_rootv1p2
                 ims_md_rootv1p1.xsd
                 http://www.adlnet.org/xsd/adl_cp_rootv1p1
                 adl_cp_rootv1p1.xsd">
A SCORM 2004 (1st edition, SCORM 1.3 version) example

(from Rustici sofware)

<manifest identifier="RSSCA" 
          version="2004" 
          xmlns="http://www.imsglobal.org/xsd/imscp_v1p1"
  	   xmlns:adlcp="http://www.adlnet.org/xsd/adlcp_v1p3"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xmlns:lom="http://ltsc.ieee.org/xsd/LOM" 
          xsi:schemaLocation="http://www.imsglobal.org/xsd/imscp_v1p1 imscp_v1p1.xsd
                       http://www.adlnet.org/xsd/adlcp_v1p3 adlcp_v1p3.xsd 
                       http://ltsc.ieee.org/xsd/LOM lom.xsd"> 

A word of warning

(By DSchneider)

  • I found it difficult to validate a content package. E.g. the above example does not validate in the Reload Editor (it somehow doesn't like the language strings in the Metadata).
  • I also wanted to use IEEE LOM instead of the older IMS MD. This also fails, because the Reload editor doesn't distribute the necessary XSD files and maybe for other reasons too.

In any case, it is crucial:

  • To define all needed namespaces as attributes of the manifest element
  • To define locations for XML Schemas (*.xsd) files
  • To include these files in the package (although I don't know if this is mandatory, but it certainly makes validation easier).


Software

Run Time environments

Usually a Content Package is imported into a Learning management system, but there are also external players handy for platform independent authoring or even for off-line viewing (e.g. the "reload player"). The IMS specification refers to these systems as Learning technology system (LTS)

In principle (and this is where certain LMS make misleading claims about IMS/Scorm compatibility), most IMS Content Packages are not just displayed. They may contain:

  • support for SCORM 1.2 extensions that support user tracking and Contents-LMS interaction (e.g. remember where the user was last time he accessed contents, or register scores), conditional access to resources (prerequisite scripting), etc.
  • more sophisticated IMS sponsored organizations, like IMS Simple Sequencing or IMS Learning Design
  • In principle, a player also should let the user choose between different organizations,

In fall 2005, DKS tried to import IMS Packages found on the Web or made with Reload into some open source systems and was quite dismayed by the result. Sometimes fixing the manifest of badly authored SCORM packages can do the trick (but this is not easy, you may have to replace for example the RTE library).

By december 2006 at least many platforms seem to support SCORM 1.2. The picture regarding IMS simple sequencing (e.g. with SCORM 2004) is not so good and regarding IMS Learning Design the situation is really bad.

See also: Learning management systems.

Editing Tools

Content Assemblers:

End-user editors:

Links

References