IMS Content Packaging: Difference between revisions
m (using an external editor) |
m (using an external editor) |
||
Line 46: | Line 46: | ||
;Inside the zip | ;Inside the zip | ||
The zip file contains all files that are needed to define an older IMS 1.1 Content Package. | 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 | * 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'''. | * The imsmanifes.xml file, i.e. '''the definition of the content package'''. | ||
Line 54: | Line 54: | ||
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: | 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 squence and associated references and contents | * removed some items of the squence and associated references and contents | ||
* used | * used more readable identifiers | ||
;The (altered) IMS Manifest in the reload editor | ;The (altered) IMS Manifest in the reload editor | ||
Line 151: | Line 151: | ||
</resources> | </resources> | ||
</manifest> | </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. | |||
; 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 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 (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). | |||
Revision as of 18:07, 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 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):
- 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 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:
Technical details
Firstly, you must understand that IMS CP can be (and is) extended in various ways:
- IMS itself defines languages for content organization. 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. Therefore, 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 <organization> 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.
- 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
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 squence and associated references and contents
- used more readable identifiers
- The (altered) IMS Manifest 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.
- 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 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).
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 wrong claims about IMS/Scorm compatibility), an IMS Content is not just displayed, but it also should also interpret standards like [[IMS Simple sequencing] and support user tracking, conditional access to resources, let the user choose between different organizations, remember where the user was last time he accessed contents.
[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 ... ]
Tools
Editors:
- Reload Editor
- eXe (exe home page)
- Authorware (version 7+)
See also: Learning management systems.
Links
- IMS Global Learning Consortium
- ADL (SCORM profiles)
- AICC Aviation Industry CBT Committee
- IEEE Learning Technology Standards Committee (LTSC)