IMS Content Packaging: Difference between revisions

The educational technology and digital learning wiki
Jump to navigation Jump to search
No edit summary
 
(39 intermediate revisions by 3 users not shown)
Line 1: Line 1:
== Definition ==
== Definition ==


IMS Content Packaging has the following objectives:
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 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.
* 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 standard. Make sure that you know what version you plan to build / import / export !!
NOTE: IMS Content packaging does not specify any pedagogical recommendations or standards.


* IMS Content Packaging 1.1 is also part of ADL/[[SCORM]] 1.2 and 1.3 (2004)
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 !!
** ToDo: Specify which minor versions 1.1.*


== Package architecture ==
IMS Content packaging is a very popular [[e-learning]] [[standard]]
 
* IMS Content Packaging 1.1.2 is adopted by ADL's [[SCORM 1.2]]
* IMS Content Packaging 1.1.4 by [[SCORM 2004]]
 
; See also:
 
* The [[standard]]s 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):
A Package Interchange File (PIF) is a zip file (recommended, other formats are also allowed):


# File resources, e.g. HTML pages, pictures, Flash Animations, PPT (whatever, the idea is that you take formats that your client can handle). Organization in sub-directories is allowed.
# 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).
# A special file in the zip is '''imsmanifest.xml''' containing:
# A special file in the zip is '''imsmanifest.xml''' containing:
#* a meta-data section <metadata />: describes the package as a whole.
#* 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).
#* 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.
#* an organizations section: describing zero, one, or multiple [[learning sequence]]s, i.e. 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.
#* (sub)manifests, that can do the same for subpackages.  
 
Here is a picture taken from the [http://www.imsglobal.org/content/packaging/cpv1p1p4/imscp_bestv1p1p4.html 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:
 
[[Image: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 [[XML 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 <nowiki><item></nowiki> element), plus the distinction between ordinary assets and SCOs (resources that can interact with the [[LMS]]).
 
=== An example ===
 
We will use [http://www.reload.ac.uk/ex/testpkg.zip The RELOAD Test Package] distributed by [http://www.reload.ac.uk/ex/ 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 imsmanifest.xml file, i.e. '''the definition of the content package'''.
* All contents
 
[[image:ims-cp-testpackage-contents.png|frame|none|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 manifest, i.e. its organization section can contain [[IMS Simple Sequencing]] or [[IMS Learning Design]] instructions or other future standards.
;The (altered) IMS Manifest in the reload editor


* In more technical terms: E.g. the IMS Simple Sequencing binding defines a unique namespace for sequencing elements in such a way as to permit these elements to be embedded within an IMS Content Packaging manifest file. Elements in the Simple Sequencing namespace can be considered as extending the functionality of Content Packaging to included additional sequencing information. Simple Sequencing elements are intended to be included in the &lt;organization&gt; element of Content Packaging, which contains items that may be recursively included to create hierarchical trees of items. This tree corresponds to the activity tree that drives sequencing.
[[image:reload-dks-testpack.png|frame|none|The simple testpackage in the reload editor]]


Here is a picture taken from the [[http://www.imsglobal.org/content/packaging/cpv1p1p4/imscp_bestv1p1p4.html 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:
;Contents of the (altered) manifest
<pre>
<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">


[[Image:IMS_Content_Packaging_1_1.gif]]
  <!-- ********************* METADATA SECTION *********************** -->
  <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>
 
  <!-- ********************* ORGANISATION SECTION *********************** -->
  <!-- Note: The orginal examples had 7 elements - mod. by Daniel K. Schneider -->
  <organizations default="learning_sequence_1">
    <!-- The one learning sequence defined: learner can look at three pictures -->
    <organization identifier="learning_sequence_1" structure="hierarchical">
      <title>Summer Pictures</title>
      <!-- The 3 items of the learning sequence. Each item refers to a single resource -->
      <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 SECTION *********************** -->
  <resources>
    <!-- Each resource refers to a file to be displayed and includes all the dependent resources
        that are needed to display this file, including the file itself -->
    <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>
</pre>
 
=== 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
XMLSchema-instance is a W3C standard that's used to declare [XML Schema]s
 
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 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
 
<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 [http://www.scorm.com/products/scormdriverauthoring.aspx 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 [[User:DSchneider|DSchneider]])
 
* I found it difficult to validate a content package. E.g. the above example does not validate in the Reload Editor. IMS CP 1.2 does not validate if you use MetaData. Somehow all earlier IMS CP XSD versions plus all the metadata XSDs seem to be broken.
* These problems seem to stem the fact the people from IMS deliberatly started to write '''wrong''' XSD code in order to cope with the broken XML Spy editor. I rarely managed to validate any example files without fixing either or both the XML and XSD files. I really am fed up with this kind of behavior and sloppy standards. - [[User:Daniel K. Schneider|Daniel K. Schneider]] 19:15, 20 October 2007 (MEST).
 
To fix broken IMS XSD schemas you can try this:
* Replace all instances of
x:lang
by
xml:lang
etc.
* Replace all instances of
  <xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="ims_xml.xsd"/>
by
<xsd:import namespace = "http://www.w3.org/XML/1998/namespace" schemaLocation = "http://www.w3.org/2001/xml.xsd"/>
 
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 would make validation easier).
* To make sure that you work with the latest sub-versions for each standard (if your LMS can handle them).
 
== Software ==


== Run Time environments ==
=== 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)  
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 wrong claims about IMS/Scorm compatibility), an IMS Content is not just displayed, but it also should be tied user tracking, conditional access to resources, let the user choose between different organizations, remember where the user was last time he accessed contents.
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, [[User:DSchneider|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).


[In fall 2005, [[User:DSchneider|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 ... ]
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.


== Tools ==
See also: [[Learning management system]]s.


Editors:
== Editing Tools ==


* http://www.reload.ac.uk/tools.html (editor and player, make sure to pick the correct tool, i.e. don't get the Learning design tools !. These tools need Java)
Content Assemblers:
* http://exelearning.org/ (based on the Mozilla toolkit).
* [[Reload Editor]]
* [[Xerte]]


See also: [[Learning management system]]s.
End-user editors:
* [[exe | eXe]] ([http://exelearning.org/ exe home page])
* Authorware (version 7+)


== Links ==
== Links ==
* [http://www.imsglobal.org/ IMS Global Learning Consortium]
* [http://www.imsglobal.org/ IMS Global Learning Consortium]
* [http://www.adlnet.gov/ ADL] (SCORM profiles)
* [http://www.aicc.org/ AICC] Aviation Industry CBT Committee
* [http://ieeeltsc.org/ IEEE] Learning Technology Standards Committee (LTSC)


== References ==
== References ==


* [http://www.imsglobal.org/content/packaging/index.htm Content Packaging Specification]
* [http://www.imsglobal.org/content/packaging/index.html Content Packaging Specification]
* [http://www.imsglobal.org/content/packaging/cpv1p1p4/imscp_bestv1p1p4.html IMS Content Packaging Best Practice and Implementation Guide Version 1.1.4]
* [http://www.imsglobal.org/content/packaging/cpv1p1p4/imscp_bestv1p1p4.html IMS Content Packaging Best Practice and Implementation Guide Version 1.1.4]
* [http://www.imsglobal.org/content/simplesequencing/index.html Simple Sequencing Specification]
* [http://www.imsglobal.org/content/simplesequencing/index.html Simple Sequencing Specification]


[[Category:Educational technologies]]
 
[[Category:Educational modeling languages]]
[[Category:E-learning tools]]
[[Category: Standards]]
[[Category: XML]]

Latest revision as of 15:04, 23 February 2012

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.

NOTE: IMS Content packaging does not specify any pedagogical recommendations or standards.

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 ADL'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 learning sequences, i.e. 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 XML 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 imsmanifest.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 SECTION *********************** -->
  <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>

  <!-- ********************* ORGANISATION SECTION *********************** -->
  <!-- Note: The orginal examples had 7 elements - mod. by Daniel K. Schneider -->
  <organizations default="learning_sequence_1">
    <!-- The one learning sequence defined: learner can look at three pictures -->
    <organization identifier="learning_sequence_1" structure="hierarchical">
      <title>Summer Pictures</title>
      <!-- The 3 items of the learning sequence. Each item refers to a single resource -->
      <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 SECTION *********************** -->
  <resources>
    <!-- Each resource refers to a file to be displayed and includes all the dependent resources
         that are needed to display this file, including the file itself -->
    <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

XMLSchema-instance is a W3C standard that's used to declare [XML Schema]s

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. IMS CP 1.2 does not validate if you use MetaData. Somehow all earlier IMS CP XSD versions plus all the metadata XSDs seem to be broken.
  • These problems seem to stem the fact the people from IMS deliberatly started to write wrong XSD code in order to cope with the broken XML Spy editor. I rarely managed to validate any example files without fixing either or both the XML and XSD files. I really am fed up with this kind of behavior and sloppy standards. - Daniel K. Schneider 19:15, 20 October 2007 (MEST).

To fix broken IMS XSD schemas you can try this:

  • Replace all instances of
x:lang 

by

xml:lang

etc.

  • Replace all instances of
 <xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="ims_xml.xsd"/>

by

<xsd:import namespace = "http://www.w3.org/XML/1998/namespace" schemaLocation = "http://www.w3.org/2001/xml.xsd"/>

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 would make validation easier).
  • To make sure that you work with the latest sub-versions for each standard (if your LMS can handle them).

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