CEN SPI - Overview
The Simple Publishing Interface (SPI) specification (CWA 16097:2010), partly sponsored by the CEN Workshop on Learning Technologies, defines a protocol for publishing learning objects and/or their metadata to digital repositories. This protocol facilitates transferring metadata and learning objects from tools that produce materials to applications that persistently manage learning objects and metadata, but is also applicable to the publication of a wider range of digital objects. A CEN Workshop Agreement containing the specification and a binding to the ATOM Publishing Protocol (APP), compatible with the SWORD profile which is widely used by institutional repositories, is due for publication in 2010.
European Commitee for Standardization
The objective is to develop a practical approach towards interoperability between repositories for learning and applications that consume or produce educational materials. Examples of repositories for learning are educational brokers, knowledge pools, institutional repositories, streaming video servers, etc. Applications that consume these educational materials are for instance query and indexation tools, authoring tools, presentation programs, content packagers, etc. The work will concentrate on the development of the simple publishing interface (SPI), an interface for storing educational materials in a repository.
The design of the SPI API is based on the design principles of the Simple Query Interface (SQI) specification. It has been defined a simple set of commands that is extensible and flexible. By analogy with SQI, this protocol makes a distinction between semantic and syntactic interoperability:
- Syntactic interoperability is the ability of applications to deal with the structure and format of data. For instance, a language such as XML Schema Description (XSD) ensures the syntactic interoperability of XML documents as it allows for the parsing and validation of these documents.
- Semantic interoperability refers to the ability of two parties to agree on the meaning of data or methods. When exchanging data, semantic interoperability is achieved when data is understood the same way by all the applications involved.
This publishing protocol meets the following objectives:
Simple Publishing Interface specification
- SPI enables integrating publishing into authoring environments. This is beneficial for the authors’ workflow, as they do not need to manually upload their learning objects using external publishing applications.
- SPI provides interoperability between applications that publish and applications that manage learning objects and metadata. Doing so, the effort of integrating publishing access into an authoring application can be reused on other learning object repositories, provided that they support SPI.
|The SPI specification defines the necessary methods to enable the interoperability between applications that publish and applications that manage learning objects and/or learning metadata. The specification supports the publishing of learning objects both "by value" (when it is embeded a learning object, after encoding, into the message that is sent to a target) and "by reference" (when it is embeded a reference, e.g. a URL, to a learning object to publish into the message that is sent to a target).
The methods identified in SPI can be grouped into 3 categories:
1. Resources management:
- setDataFormat: The setDataFormat method enables a source to indicate the type of objects that it will submit. This method enables the target to process the resource that is submitted. For instance, a target can use this parameter to select a proper tool to decompress resources.
- setSourceLocation: This method is called before a learning object is submitted in ”by reference” mode. The parameter sourceLocation specifies the location of the source’s notifyRetrievalStatus method and enables the target to send an acknowledge message.
- submitResource: The submit resource methods allow for publishing a learning object to a learning object repository. In some scenarios, a target will be responsible for generating the identifier, while in other scenarios the source assigns an identifier to the learning object.
- notifyRetrievalStatus: The notifyRetrievalStatus method is a target initiated
- method that informs the source on the status of the transfer. After completion of a ”by reference” transfer, a target must send a notification with status ”COMPLETE” to the source.
- deleteResource: The deleteResource method deletes a learning object on the target.
|2. Metadata management:
- setMetadataSchema: This method allows the source to control the metadata schema that will be submitted to the target.
- submitMetadata: In analogy to submitResource, either the target or the source can generate an identifier for the metadata instance. After submission, the target must record this identifier with the submitted metadata.
- deleteMetadata: The deleteMetadata method removes a metadata instance from the target.
|3. Connecting metadata & resources:
- associate: In a learning object repository that contains both a context store and a metadata store, learning objects and metadata instances can be published in a random order. When a metadata instance is published prior to the learning object, it cannot refer to the learning object that is not yet available in the repository. Therefore, the associate method allows for explicitly adding this reference.
- dissociate The dissociate method allows for breaking the association between an object and its metadata. This is necessary when one wants to delete either the learning object or its metadata instance or both.
Submit “by reference”: a sequence diagram
|Title: CWA 16097 - The Simple Publishing Interface (SPI) Specification
Version: 1.0 alpha
Release Date: February 2010
Status: Official CEN Workshop Agreement
Electronic version: Available in pdf format.
|With the Simple Query Interface specification
The design of the SPI API is based on the design principles of SQI.