IMS CP Packager Application

Exporting Autokitty generated projects

Once you have created your web application including educational resources with the Autokitty tool, how can you host it? Since the output of the tool is a self-contained HTML page, it is very easy to deploy it and host it in a wide variety of places, including amongst others: your personal website, e-portfolio, institutional repository. But, what about having others easily find and discover your application and the included resources? This is where the use of suitable metadata standards becomes important since they provide appropriate ways of describing your educational resources so they can be indexed and discovered by numerous online services.

While the original aim of the projects created with Autokitty is that they are to be used as standalone applications integrated within teaching/learning activities or presentations, most of the users have access to educational content management systems, virtual research or learning environments and use them to create learning activities within courses. These environments usually support the import/export of content packages such as IMS CP or SCORM, therefore offering the possibility of exporting the projects designed using Autokitty is useful and also provides ways of describing the resources included more accurately by using well-known metadata schemas.

As an additional way of exporting the applications generated by Autokitty, we have developed a desktop application that packages the application into an IMS CP package that can deposited in any repository, virtual learning environment or content managing system that supports IMS CP/SCORM content packages. At a glance, it takes an application generated with Autokitty and creates an initial content package manifest that includes all the video resources included in the web application in combination with the basic metadata and licensing information already included in the web application. The initial generated manifest can then be extended to include richer metadata information as well as incorporate new resources in addition to videos already included, for example other links to relevant resources, additional documentation, and so on.

IMS CP supports the use of two of the metadata schemas developed by IMS: IMS Metadata and LOM, which provide rich ways of describing learning resources as part of modules or learning activities within a VLE. Furthermore, it presents the flexibility of supporting custom metadata schemas so that additional descriptions can be added by using other metadata schemas such as Dublin Core or even system-specific ones like for example the ones used by Educommons. However, the process of describing your resources using a combination of the different metadata schemas available (Dublin Core, Dublin Core terms, IMS MD, LOM, Foaf, Geo) can be tedious and normally implies semi-automatic or manual processes of completing long forms.

In the case of the developed Packager application, and given the nature of the resources that can be included in the generated web applications, we have decided that providing support for two of the most common metadata standards (Dublin Core and the extended Dublin Core Terms) fulfils the identified metadata annotation requirements. Therefore, the application presents specific forms to describe the included resource by using either Dublin Core or Dublin Core terms schemas. However, support for any other schemas could be easily added to the application if needed.

The packager and the technologies behind it

The packager application implements an easy to use XML editor that works with the XML schema used to define IMS CP packages (generation and edition of manifest files – imsmanifest.xml) and enables the export of the manifest file as a ZIP package including all the physical resources defined in it. The application works with version 1.2 of IMS CP (, which is the most stable version that most of the content managing systems such as Dspace, Blackboard, Moodle, JORUM, support.

This application is entirely developed using open-source technologies. It is a Java-based RCP (Eclipse Rich Client Platform) desktop application that can be executed in different environments: we have developed specific installers for both MAC OS X and Windows. Eclipse RCP provides ways to quickly and easily develop window-based applications that are very modular and can be adapted to use different data sources since they are based in the MVC pattern (Model-View-Controller).

With regard to the data model managed by the application, it is a Java model that serialises a XML schema into Java classes since the IMS content packages are XML-schema based. There are numerous frameworks for Java that work with XML data models, highlighting Apache XML beans, and after the evaluation of some of them, with which we were familiar since they have been used in past projects, we have decided to use Eclipse’s EMF framework (Eclipse Modelling Framework). The main reason behind this decision has been that it generates Java classes automatically and it is very well-integrated with Eclipse RCP as the visualisation framework.

EMF Framework can generate the Java classes from an XML schema as input source and in this case, all the Java classes needed to model an IMS CP instance have been generated automatically, with minor modifications needed. Another important advantage from this approach is that the generated data model can be easily adapted and extended so that it can use other models and its integration with an existing editing application requires little effort.

For more information on the frameworks used refer to the following sites:

The main functionalities of the packager application are the following:

  • Creation and export of IMS CP Version 1.2 packages
  • Automatic manifest generation from a web application generated by Autokitty
  • Support for annotation of the included resources using Dublin Core and Dublin Core terms
  • Specific validation for IMS CP packages for upload in JORUM repository
  • Validation of conformance of the generated IMS CP packages

The packaging application generates automatically the initial structure of an IMS CP content package by parsing the web application generated by AutoKitty.  The AutoKitty application presents the functionality of exporting a self-contained HTML which contains additional information about all the resources included in a created project as well as references to all of the additional components (mainly Javascript libraries) that it needs, to run the project in a stand-alone way. This information includes is expressed as JSON within the generated HTML (shown in the code snnipet below)

<!-- /* PROJECT */
{"status": "good" ,
"title": "Hamlet" ,
"license": "Standard YouTube License (" ,
"description": "Hamlet, stage production." ,
"media_license": "cc" ,
"media_credit": "zuzingopicturesgroup" ,
"dependencies": [
"links": [
{ "name": "A" , "link": "http://a" , "thumbnail": "http://a" } ,
{ "name": "B" , "link": "http://b" , "thumbnail": "http://b" }
/* PROJECT */-->

This information can then be mapped to basic Dublin Core elements such as ‘title’, ‘description’, licensing information both for the whole package (under dc:rights) and at individual video resource level, and the initial structure (‘organization’ in IMS CP terms) can be constructed by parsing all the ‘link’ elements defined in the JSON data.

Once the initial structure has been generated, additional metadata terms, either from DC or DC Terms, can be added in combination with supplementary resources, if present. The manifest file can then be validated (either using generic IMS CP conformance validation or customised JORUM validation if the package is going to be deposited in the JORUM repository) and finally, the manifest and the accompanied resources are exported into a ZIP file that can be uploaded into any repository that supports IMS CP.

Here are some screenshots of the application and a detailed screencast showing how to use the application is on its way!

IMS Packager Editor

Editor view, imsmanifest.xml

IMS CP Packager, DC form

Add additional DC elements to the manifest


Comments are closed.

Previous Posts

%d bloggers like this: