IMS Logo

IMS Resource List Interoperability
Information Model

Version 1.0 Final Specification

Copyright © 2004 IMS Global Learning Consortium, Inc. All Rights Reserved.
The IMS Logo is a trademark of IMS Global Learning Consortium, Inc.
Document Name: IMS Resource List Interoperability Information Model
Revision: 8 July 2004


Date Issued:
08 July 2004
Latest version:
http://www.imsglobal.org/rli/rliv1p0/imsrli_infov1p0.html
Register comments or implementations:
http://www.imsglobal.org/developers/ims/imsforum/categories.cfm?catid=22

IPR and Distribution Notices

Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the specification set forth in this document, and to provide supporting documentation.

IMS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on IMS's procedures with respect to rights in IMS specifications can be found at the IMS Intellectual Property Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.

Copyright © IMS Global Learning Consortium 2006. All Rights Reserved.

If you wish to distribute this document or use this document to implement a product or service, you must complete a valid license registration with IMS and receive an email from IMS granting the license. To register, follow the instructions on the IMS website: http://www.imsglobal.org/specificationdownload.cfm.

This document may be copied and furnished to others by Licensee organizations registered on the IMS website provided that the above copyright notice and this paragraph are included on all such copies. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to IMS, except as needed for the purpose of developing IMS specifications, under the auspices of a chartered IMS work group.

Use of this specification to develop products or services is governed by the license with IMS found on the IMS website: http://www.imsglobal.org/rli/rliv1p0/rliv1p0speclicense.html.

The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns.

THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE ENTIRELY AT THE IMPLEMENTER'S OWN RISK, AND NEITHER THE CONSORTIUM, NOR ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF THIS SPECIFICATION.

Table of Contents


1. Introduction
     1.1 Specification Overview
           1.1.1 Rationale
           1.1.2 Background and History
     1.2 Components of the Specification
           1.2.1 RLI Information Model
           1.2.2 RLI Binding
           1.2.3 RLI Best Practice and Implementation Guide
           1.2.4 RLI Conformance Requirements
     1.3 Scope
     1.4 Structure of this Document
     1.5 Nomenclature
     1.6 References

2. Resource List Manager Service Description
     2.1 An Abstract Representation
     2.2 Resource List Manager Service Architecture Model
     2.3 Resource List Objects
     2.4 Synchronous Services

3. Behavioral Model
     3.1 Service Definition - Resource List Manager Interface Class
Description

           3.1.1 Structure
           3.1.2 Operations
     3.2 Permitted State Sequence

4. RLI Data Model
     4.1 resourceList
           4.1.1 Attributes
           4.1.2 Associations
           4.1.3 resourceListIDPair
     4.2 resource
           4.2.1 Associations
     4.3 annotation
     4.4 location
     4.5 resourceListSet
           4.5.1 Description
           4.5.2 Attributes
           4.5.3 Associations
     4.6 constraints
           4.6.1 Description
           4.6.2 Attributes
           4.6.3 Associations
           4.6.4 itemConstraints
     4.7 Data Types
           4.7.1 Description
           4.7.2 sourceSchema
           4.7.3 MetadataStringDType
           4.7.4 MetadataLangStringDType
           4.7.5 MetadataDateDType
           4.7.6 MetadataTokenDType
     4.8 OCL Definitions

5. Extending the Service
     5.1 Proprietary Extensions
           5.1.1 Proprietary Operations
           5.1.2 Proprietary Data Elements
     5.2 Further Work

Appendix A - Common Components

Appendix B - Service Status Codes
     B1 - Summary List of Codes
     B2 - Explanation of Operation Specific Codes

Appendix C - Sources of Input

Appendix D - Comparison of Descriptive Meta-data Schemes for Citation
and Resolution


About This Document
     List of Contributors

Revision History

Index

1. Introduction

This section is not normative.

1.1 Specification Overview

The Resource List Interoperability (RLI) specification details how structured meta-data can be exchanged between systems that store and expose resources for the purpose of creating resource lists and those that gather and organize those resource lists for educational or training purposes. A typical example of such a resource list is a reading list.

The specification is based on an abstract service behaviors and data model that describes in generalized terms a resource at the item level, a collection of these resources (i.e., a list) and the behaviors associated with a resource list management service. The data model is then bound or expressed in XML, combining elements that map to subsets of key standards, including the IEEE-LOM (Learning Object Metadata), ISO 690-2 for bibliographic citations, and NISO's OpenURL to describe the resource items and aggregated resource list. The abstract service interface is bound to web services expressed as WSDL. The IMS Content Packaging specification wraps the resource list to enable transfer between systems. Because the data model is generalized, other bindings may be (and it is expected, will be) added to future releases of the specification.

The IMS Learning Resource Meta-data specification (now the IEEE-1484.12.1 LOM standard) was developed to provide item-level descriptions for the range of instructional materials that might be used in a virtual learning environment or course management system, from simple static HTML content to technically sophisticated simulations. While the LOM anticipates a broad economy of complex, self-contained e-learning objects, in the higher education realm much of the digital course "content" often categorized loosely as "course resources" parallels fairly traditional collections of supplementary course reading materials. These course resource lists frequently include links to freely available content on the Web and other materials that may not have been formally published, and may also include bibliographic records from OPACs (Online Public Access Catalog) and content licensed by academic libraries from publishers and aggregators.

Naturally, course reserves or course-specific collections of resources have long been and continue to be maintained and organized within academic libraries. The intersection of the library reserves function and the Web as a content distribution mechanism has given rise to the notion of "e-reserves." Integrated Library System (ILS) vendors have developed web-based software tool suites that integrate OPAC, e-reserves, federated searching and personal bibliographic management capabilities. At the same time, e-learning systems provide another logical context and dissemination point for course-specific collections of resources.

Course Resource Lists, then, may be maintained in both library and course management systems. Yet, while instructors are able to add citations and links to readings or post other supplementary resources directly into the course environment, they usually do so in an ad hoc fashion not much different from the manner one would post readings to any free form website. Furthermore, multiple segregated systems create a variety of unnecessarily disparate institutional work flows, ranging from the creation and publication of lists culled from library and other sources by the instructor (as just described), to the complete processing of a course reserves list by the library based on skeletal information the instructor has provided. The variety of ways in which Resource Lists can be created make it difficult for the various systems or tools that harvest, associate and store the Resource Lists to exchange and consolidate these heterogeneous aggregations. The RLI specification begins to address these integration issues by enabling the ready exchange of structured meta-data between e-learning tools and various related applications, including OPACs, reserves modules, or other third-party tools.

The Information Model defines the exchange and maintenance of resource lists among systems through an abstract service interface. The interface is divided between core (Create, Read, Replace, and Delete) and complex behaviors (Assign and De-assign). The latter enable the association of resource lists created in one system or application with groups or courses in another. Multiple implementations of the service interface are possible, although the RLI Binding document defines a WSDL binding.

The initial release of the RLI specification addresses the issue of how to organize, describe and exchange traditional lists of course resources (such as bibliographies). The data model comprises a minimal set of elements for citing print publications. Nevertheless, given the simplicity, generality and design of the RLI model, materials in other media can be adequately described and included within resource lists as currently defined. Just as importantly, the model is designed so that it may be easily extended to specify different resource types in subsequent iterations.

In the future, it is highly unlikely that any one standard will be adopted to describe bibliographic resources, much less digital resources in general. Appendix D includes a mapping of the relevant LOM elements to major bibliographic citation schemas used in the library and publishing worlds. While the RLI specification represents a first step towards a larger resource collections framework, the relatively simple abstract data model on which it is based should ensure interoperability with other emerging frameworks such as METS.

1.1.1 Rationale

This Resource List Interoperability (RLI) specification:

1.1.2 Background and History

The IMS Digital Libraries special interest group identified the organization of course resources as an existing intersection between the library and e-learning domains that had not, as of yet, been addressed in any standardized fashion. It was also recognized as an area that represented a potential quick win-through the development of an interoperability specification-for the broader effort to bring two related domains into closer harmony.

1.2 Components of the Specification

This specification consists of the documents listed below.

1.2.1 RLI Information Model

The RLI Information Model (this document) [RLI, 04a] - Describes the core aspects of the specification and contains parts that are normative for any binding claiming to use this Information Model. It contains details of: semantics, structure, data types, value spaces, multiplicity, and obligation (i.e., whether mandatory or optional).

1.2.2 RLI Binding

The XML/WSDL Binding [RLI, 04b] - Describes a binding of the Information Model using a Web Services infrastructure based upon XML and a SOAP/HTTP transport mechanism. There are many possible bindings of the Information Model but at the current time the only specified binding is based upon XML and WSDL.

1.2.3 RLI Best Practice and Implementation Guide

The Best Practice and Implementation Guide [RLI, 04c] - Provides non-normative guidance on application of the Information Model and WSDL Binding. This includes reference to existing practice in handling information that this specification seeks to support and guidance on practices that will promote interoperability and durability. It also includes examples to illustrate how the conceptual framework maps to practical uses and to identify the relationship between this specification and related IMS specifications. Implementers are encouraged, but not required, to follow guidance in this part of the specification.

1.2.4 RLI Conformance Requirements

The Conformance Requirements [RLI, 04d] - Defines the conformance criteria that must be followed by systems that wish to claim compliance to the Resource List Interoperability Information Model.

1.3 Scope

The following are out of scope for this specification:

1.4 Structure of this Document

The structure of this document is:

2. Resource List Manager Service Description
The description of the overall structure and operation of the RLI Manager Service;
3. Behavioral Model
The definition of the operations of RLI Manager Service and the behaviors supported by the service;
4. RLI Data Model
The definition of the data models for RLI and related data structures;
5. Extending the Service
Identification of the ways in which RLI can be extended both in terms of the addition of new constituent services and proprietary extensions to a service;
Appendix A - Common Components
Identification of the common data structures and services that are used by RLI;
Appendix B - Service Status Codes
A summary list of the status codes, and their causes, that can be returned by each of the operations forming the RLI Service;
Appendix C - Sources of Input
A list of resources used to develop this model;
Appendix D - Comparison of Descriptive Meta-data Schemes for Citation and Resolution
A table displaying the relationships between the meta-data schemes for citation and resolution.

1.5 Nomenclature

ADL
Advanced Distributed Learning
API
Application Programming Interface
IAF
IMS Abstract Framework
IEEE
Institute of Electrical and Electronics Engineers
IETF
Internet Engineering Task Force
ILS
Integrated Library System
ISO
International Organization for Standardization
LOM
Learning Object Metadata (usually called "IEEE LOM")
LTSC
Learning Technology Standards Committee
METS
Metadata Encoding and Transmission Standard
MODS
Metadata Object Description Schema
OPAC
Online Public Access Catalog
RFC
Request for Comment (usually used in "IETF RFC ####")
RLI
Resource List Interoperability
SCORM
Sharable Content Object Reference Model
W3C
World Wide Web Consortium
WSDL
Web Services Description Language
XML
Extensible Mark-up Language
XSD
XML Schema Definition

1.6 References

[RLI, 04b]
IMS Resource List Interoperability XML/WSDL Binding v1.0, A.Jackl, IMS Global Learning Consortium, Inc., July 2004.
[RLI, 04c]
IMS Resources List Interoperability Best Practice and Implementation Guide v1.0, A.Jackl, IMS Global Learning Consortium, Inc., July 2004.
[RLI, 04d]
IMS Resources List Interoperability Conformance v1.0, M.Maljkovic, IMS Global Learning Consortium, Inc., July 2004.
[DOI]
ANSI/NISO Z39.84 - Syntax for the Digital Object Identifier
[IEEE LOM]
IEEE 1484-12:2002, Standard for Learning Object Metadata, http://ltsc.ieee.org
[IMSBUND]
Using IMS Content Packaging to Package Instances of LIP and Other IMS Specifications, v1.0, B.Olivier, M.McKell, IMS Global Learning Consortium, Inc., August 2001.
[IMSCP]
IMS Content Packaging, v1.1.3, IMS Global Learning Consortium, Inc., June 2003.
[IMSES, 04]
IMS Enterprise Services v1.0, IMS Global Learning Consortium, Inc., June 2004.
[IMSPLID]
IMS Persistent, Location-Independent, Resource Identifier Implementation Handbook v1.0, IMS Global Learning Consortium, Inc., April 2001.
[ISO 690-2]
ISO 690-2 Standard Information and documentation -- Bibliographic references -- Part 2: Electronic documents or parts thereof
[METS]
Metadata Encoding and Transmission Standard, Version 1.3
[OpenURL]
ANSI/NISO Z39.88-200x - The OpenURL Framework for Context-Sensitive Services
[PRISM]
PRISM v 1.2 Specifications (Publishing Requirements for Industry Standard Metadata
[RFC 1766]
Tags for the Identification of Languages, http://www.ietf.org/rfc/rfc1766.txt
[RFC 2119]
Key words for use in RFCs to Indicate Requirement Levels, http://www.ietf.org/rfc/rfc2119.txt
[RFC 2396]
Uniform Resource Identifiers (URI): Generic Syntax, http://www.ietf.org/rfc/rfc2396.txt
[ISO 639-2, part 2]
ISO 639 part 2, Codes for the representation of names of  languages -- Part 2: Alpha-3 code, http://www.loc.gov/standards/iso639-2/langhome.html
[ISO 11404]
ISO 11404, Language-independent Datatypes, http://www.iso.ch/cate/d19346.html

2. Resource List Manager Service Description

2.1 An Abstract Representation

It is important to remember that this document describes the underlying information model in terms of the abstract API. The manner in which this abstract representation is visualized is not intended to dictate the implementation form of a Resource List Management System. The breakdown of the service into its interface classes is a convenient way to document the set of behaviors. The internal organization of an implementation of the full abstract API is beyond the scope of this specification. The only constraint is that the external behavior of the abstract API complies with this specification. This means that a .NET, Java, etc. physical implementation of this abstract API does not have to represent the functionality using the same breakdown of operations/methods. This physical implementation is not subject to the conformance specification.

It is important to note that the UML representation of the interface is used to help develop and document the Resource List Management Services. It is not a requirement for an implementation to implement this interface as defined, i.e., to use the same parameters, etc. Conformance against this specification will be confirmed by inspecting the appropriate binding of the information model and ensuring that the relevant information is present and that different sequences of activity result in the predicted and mandated behavior. It is essential that the behaviors described by each of the operations are fully supported, and it is also essential that the behaviors described by different sequences are also maintained.

2.2 Resource List Manager Service Architecture Model

Online Public Access Catalog, Digital Library, Course Management and other third-party systems should facilitate the exchange of Resource Lists. This exchange will be achieved through Export/Import or integrated Send/Receive Actions as defined in the services of the Resource List Manager. Furthermore, updates to the Resource List made in the originating system should be updated in the other systems that have imported/received that particular Resource List.

The basic architectural model for the Resource List Manager Services specification is shown in Figure 2.1.

Resource List Manager Service Architecture Model
Figure 2.1 Resource List Manager Service Architecture Model.

In this architecture the scope of the IMS Resource List Manager Services specification is shown as within the red box. The scope of the interoperability is the data and behavioral models of the objects being exchanged.

The IMS Resource List Manager Services specification contains a very simple abstract messaging model that is assumed to underlie the exchange of the data between the communicating Resource List Manager systems. The basic data exchange mechanism is shown in Figure 2.2 in which the 'source' and 'target' Resource List Manager systems exchange 'messages' using a 'Request/Response' transaction. This abstract messaging representation is adopted because the Resource List Manager System architecture is based upon a loosely coupled system and the primary IMS binding of this information model is based upon the exchange of XML documents/messages.

It is important to remember that the structure of the exchanged information has NO bearing on how the same information is contained within the 'source' and 'target' Enterprise systems. It is simply a representation of the data used to facilitate exchange with other parties (the information that crosses the dotted line in Figure 2.2).

Resource List Manager Service abstract information exchange model
Figure 2.2 Resource List Manager Service abstract information exchange model.

The behavioral descriptions will describe:

2.3 Resource List Objects

It is important to note that this is an interoperability specification and as such it makes no statements about how information is stored within the exchanging end systems. The objects in the end-systems must be persistent otherwise sequences of operation on the same object will not be possible. Reference to these objects in the interface is through a 'sourcedId' however this identifier does not have to be the key stored within the end-systems. If different keys are used in the end-systems then it is the responsibility of the end-systems to maintain the mapping between that key and the 'sourcedId' i.e., the interface must never be exposed to the keys of the end-systems.

2.4 Synchronous Services

Within the context of the Resource List Manager Services, this specification only deals with synchronous services. Asynchronous services are out of scope for the specification.

Synchronous services are defined as services in which the source service is blocked until the final response from the target service is received.

The abstract-API does not differentiate between synchronous and asynchronous services.

3. Behavioral Model

3.1 Service Definition - Resource List Manager Interface Class Description

3.1.1 Structure

The ResourceListManager interface class is used to model the service responsible for manipulating information about resource lists and describes the operations that are permitted on a single 'resourceList' object as shown in Figure 3.1.

These operations are based upon the classic Create/Read/Update/Delete (CRUD) model with variations defined to differentiate subtleties of functionality. The interface stereotype indicates that there are no attributes for this class.

ResourceListManager interface class diagram
Figure 3.1 ResourceListManager interface class diagram.

Resource List Manager operations use the following data types and common classes:

3.1.2 Operations

The core CRUD operations are summarized in Table 3.1.

Table 3.1 Summary of operations for Resource List Manager.

Operation Description
createResourceList
Request the creation of a populated 'resourceList' on the target system, where the source system is responsible for the allocation of the identifier for the resourceList.
createByProxyResourceList
Request the creation of a populated 'resourceList' on the target system, where the target system is responsible for the allocation of the identifier for the resourceList.
readResourceList
Read the full contents of the identified 'resourceList. The target must return all of the data it has for the identified 'resourceList'.
readResourceListsforGroup
Read the full contents of the set of 'resourceList' associated with the identified "Group".
replaceResourceList
Write new content into the identified 'resourceList' record. The target must write the new data into the 'resourceList' record. This is a destructive update of the original information.
deleteResourceList
Request the deletion of a 'resourceList'. The Resource List and any associations between the Resource List and Groups are deleted.
assignResourceList
Request the target system associate the identified 'resourceList' with the identified "Group" and any constraints that apply to the association.
deassignResourceList
Request the target system remove the association between the identified 'resourceList' and the identified "Group".

3.1.2.1 createResourceList

Name:
createResourceList
Return Function Parameter:
StatusInfo - the status of the creation request. The permitted status codes are defined in Appendix B.
Supplied (in) Parameters:
sourcedId:Identifier - the Identifier allocated by the source system. This is the identifier that must also be assigned within the target system.
resourceList: ResourceList - the Resource List data that is to be stored in the new record.
Returned (out) Parameters:
None.
Behavior:
When the source issues the 'createResourceList' request the target is instructed to create the populated resourceList data structure and to allocate that structure the 'sourcedId' passed by the source. If the supplied 'sourcedId' has already been allocated to another object then the request is rejected and the appropriate failure code is returned.
Notes:
This request contains the initial content for the resourceList record. More content can be added/replaced using the 'replaceResourceList' requests.

The associated interaction sequence diagram is shown in Figure 3.2. The 'TriggerAction' results in the 'Source System' issuing the 'createResourceList ()' request. At some time later the 'Target System' responds.

The
createResourceList operation sequence
diagram
Figure 3.2 The 'createResourceList' operation sequence diagram.

3.1.2.2 createByProxyResourceList ()

Name:
createByProxyResourceList
Return Function Parameter:
StatusInfo - the status of the creation request. The permitted status codes are defined in Appendix B.
Supplied (in) Parameters:
resourceList:ResourceList - the resourceList data that is to be stored in the new record.
Returned (out) Parameters:
sourcedId:Identifier - the identifier allocated by the target to the newly created 'resourceList' record.
Behavior:
When the source issues the 'createByProxyResourceList' request the target is instructed to create the populated resourceList record and to allocate that record a unique 'sourcedId'.
Notes:
This request contains the initial content for the resourceList record. More content can be added/replaced using the 'replaceResourceList' requests.

The associated interaction sequence diagram is shown in Figure 3.3. The 'TriggerAction' results in the 'Source System' issuing the 'createByProxyResourceList ()' request. At some time later the 'Target System' responds.

The 'createByProxyResourceList' operation sequence diagram
Figure 3.3 The 'createByProxyResourceList' operation sequence diagram.

3.1.2.3 readResourceList ()

Name:
readResourceList
Return Function Parameter:
StatusInfo - the status of the read request. The permitted status codes are given in Appendix B.
Supplied (in) Parameters:
sourcedId:Identifier - the identifier of the 'resourceList' object to be read.
Returned (out) Parameters:
resourceList:ResourceList - the resourceList data that is read from the record.
Behavior:
When the source issues the 'readResourceList' request the target is charged with retrieving the identified record from its database and returning this data to the source. The target is responsible for ensuring that the record contains valid data. If the object identified by the supplied 'id' cannot be located then the request is rejected and the appropriate failure code is returned.
Notes:
The returned resourceList record can only be trusted if the corresponding status code is 'success'.

The associated interaction sequence diagram is shown in Figure 3.4. The 'TriggerAction' results in the 'Source System' issuing the 'readResourceList ()' request. At some time later the 'Target System' responds.

The 'readResourceList' operation sequence diagram
Figure 3.4 The 'readResourceList' operation sequence diagram.

3.1.2.4 readResourceListsForGroup ()

Name:
readResourceListsForGroup
Return Function Parameter:
StatusInfoSet - the status for each of the read requests. The permitted status codes (one of these must be returned for each 'group' object identified) are given in Appendix B.
Supplied (in) Parameters:
groupSourcedId:Identifier - the identifier of the Group to which the resourceList is being assigned.
Returned (out) Parameters:
resourceListSet:ResourceLisSet - the set of resourceList data that is to be read.
Behavior:
When the source issues the 'readResourceListsForGroup' request the target is charged with retrieving all the 'resourceList' records that are associated with the identified 'group' record, i.e., there assign relationships between the 'group' record identified and the 'resourceList' records returned.
If the object identified by the supplied 'groupSourcedId' cannot be located then the request is rejected and the appropriate failure code is returned for this part of the operation. The target is responsible for ensuring that the records contain valid data. The target should attempt to successfully complete as much of the request as possible.
Notes:
resourceListSet records are only present if the corresponding status code is 'success'.

The associated interaction sequence diagram is shown in Figure 3.5. A set of 'TriggerAction' events results in the 'Source System' issuing the 'readResourceListsForGroup()' request. At some time later the 'Target System' responds.

The 'readResourceListsForGroup' operation sequence diagram
Figure 3.5 The 'readResourceListsForGroup' operation sequence diagram.

3.1.2.5 replaceResourceList ()

Name:
replaceResourceList
Return Function Parameter:
statusInfo:StatusInfo - the status of the update request. The permitted status codes are given in Appendix B.
Supplied (in) Parameters:
sourcedId:Identifier - the identifier of the 'resourceList' object to be updated.
resourceList:ResourceList - the resourceList data that is to be stored in the record.
Returned (out) Parameters:
None.
Behavior:
When the source issues the 'replaceResourceList' request the target is charged with writing the supplied information into the identified record. If any part of the write fails e.g. due to partial invalid data then the whole request is rejected and the record is left in its original state. This is a destructive write-over update operation of the entire 'resourceList' object. This is equivalent to a 'createResourceList but for an object that already exists.
If the object identified by the supplied 'sourcedId' cannot be located then the request is rejected and the appropriate failure code is returned.
Notes:
The source is responsible for determining the reason of the failure.

The associated interaction sequence diagram is shown in Figure 3.6. The 'TriggerAction' results in the 'Source System' issuing the 'replaceResourceList ()' request. At some time later the 'Target System' responds.

The 'replaceResourceList' operation sequence diagram
Figure 3.6 The 'replaceResourceList' operation sequence diagram.

3.1.2.6 deleteResourceList ()

Name:
deleteResourceList
Return Function Parameter:
StatusInfo - the status of the creation request. The permitted status codes are defined in Appendix B.
Supplied (in) Parameters:
sourcedId:Identifier - the identifier to be used by the target to identify the 'resourceList' object.
Returned (out) Parameters:
None.
Behavior:
When the source issues the 'deleteResourceList' request the target is instructed to delete the identified resourceList record and to any associations between the resourceList and any Groups. This is a hard cascaded delete from which there is no recovery. If the object identified by the supplied 'sourcedId' cannot be located then the request is rejected and the appropriate failure code is returned.
Notes:
Deletion of the 'resourceList' record does not necessarily result in the destruction of the data within the server. The true state of the data in the target is unknown.

The associated interaction sequence diagram is shown in Figure 3.7. The 'TriggerAction' results in the 'Source System' issuing the 'deleteResourceList ()' request. At some time later the 'Target System' responds.

The 'deleteResourceList' operation sequence diagram
Figure 3.7 The 'deleteResourceList' operation sequence diagram.

3.1.2.7 assignResourceList ()

Name:
assignResourceList
Return Function Parameter:
statusInfo:StatusInfo - the status of the update request. The permitted status codes are given in Appendix B.
Supplied (in) Parameters:
sourcedId:Identifier - the identifier of the 'resourceList' object to be updated.
groupSourcedId:Identifier - the identifier of the Group to which the resourceList is being assigned.
constraints:Constraints - any constraints temporal, conditional, etc. being placed on the association.
note:SeqLangString - a field for any notes on the association or assignment.
Returned (out) Parameters:
None.
Behavior:
When the Source issues the assignResourceList Request the target system is charged to associate the identified "resourceList" with the identified "Group" and any temporal, conditional etc. constraints being placed on the association
If the object identified by the 'sourcedId' cannot be located then the request is rejected and the appropriate failure code is returned.
If the group identified by the groupSourcedId can not be located the target may choose to treat the groupSourcedId as new data, or may return the appropriate failure code. The behavior implemented depends on out of band agreements between the interoperating systems.
The source supplies the 'groupSourcedId'. Management of the 'groupSourcedId's existence and validation is out of scope for this specification.
Notes:
The source is responsible for determining the reason for any failure.

The associated interaction sequence diagram is shown in Figure 3.8. The 'TriggerAction' results in the 'Source System' issuing the 'assignResourceList ()' request. At some time later the 'Target System' responds.

The 'deleteResourceList' operation sequence diagram
Figure 3.8 The 'deleteResourceList' operation sequence diagram.

3.1.2.8 deassignResourceList ()

Name:
deassignResourceList
Return Function Parameter:
statusInfo:StatusInfo - the status of the update request. The permitted status codes are given in Appendix B.
Supplied (in) Parameters:
sourcedId:Identifier - the identifier of the 'resourceList' object to be updated.
groupSourcedId:Identifier - the identifier of the Group to which the resourceList is being assigned.
note:SeqLangString - a field for any notes on the association or assignment.
Returned (out) Parameters:
None.
Behavior:
When the source issues the deassignResourceRequest the target system is charged with remove the association between the identified "resourceList" and the identified "Group".
If the association identified by the 'sourcedId' 'groupSourcedId' cannot be located then the request is rejected and the appropriate failure code is returned.
Notes:
The source is responsible for determining the reason for any failure.

The associated interaction sequence diagram is shown in Figure 3.9. The 'TriggerAction' results in the 'Source System' issuing the 'assignResourceList ()' request. At some time later the 'Target System' responds.

The 'deassignResourceList' operation sequence diagram
Figure 3.9 The 'deassignResourceList' operation sequence diagram.

3.2 Permitted State Sequence

The permitted state activity on an object is shown in Figure 3.10. This state diagram has four states:

The state diagram for the behaviors on a resourceList object
Figure 3.10 The state diagram for the behaviors on a resourceList object.

The start state is 'No Object' i.e. the resourceList record has not yet been created. Only the 'createResourceList ()' and 'createByProxy()' operations are possible. Once the resourceList object has been created then it persists until a successful 'deleteResourceList ()' operation is completed. The 'createResourceList()' operation takes the system into the 'Object with Source-created id' state whereas the 'createByProxyResourceList ()' takes the system into the 'Object with Target-created id' state.

Once the system is in the 'Object with Source-created id' or the 'Object with Target-created id' states then the 'readResourceList()' and 'replaceResourceList ()' operations are now possible.

The 'assignResourceList()' operation takes the system into the 'Object with group associations' state. Once the system is in the 'Object with group associations' state, then the 'readResourceListsForGroup' operation is possible.

4. RLI Data Model

The Data Model in this specification is non-normative. It is an informative abstraction. Conformance and normalization is described in the Binding and Conformance components of this specification.

4.1 resourceList

The resource list and its associations are is shown in Figure 4.1. This representation describes the data model that must be supported by the end systems.

resourceList Class Diagram
Figure 4.1 resourceList Class Diagram.

A resource list is an aggregation of content resources associated with one or more courses or learning objects.

Resource lists may be subsumed under other Resource Lists.

A resource list always exists in association with an identifier 'sourcedId', either in the input parameters to a service or, in the resource list ID Pair object. The identifier is unique among the systems being integrated.

4.1.1 Attributes

The set of attributes for the resourceList class is summarized in Table 4.1.

Table 4.1 Summary of attributes for the resourceList Class.

Name Type Mult Description
description
MetadataLangStringDType
0..1
A textual explanation of the Resource List.
edition
MetadataLangStringDType
0..1
This is the version information associated with a particular instance of a Resource List.

4.1.2 Associations

The set of associations for the Resource List Class are summarized in Table 4.2.

Table 4.2 Summary of associations for the resourceList Class.

Association Class Name Mult Description
resourceListIDPair
0..*
A Resource List may subsume 0 to many Resource Lists. Each Resource List subsumed must be associated with an identifier that is unique among the systems being integrated
resourceListMetadata
1
The categories of elements and sub-elements that must be defined within the schema to describe a Resource List itself.
resource
0..*
The details of a resource associated with the Resource List.
annotation
0..*
Authorized end users may annotate any Resource List. This is considered to be a very basic statement and not a complex structured description

4.1.2.1 resourceListMetadata

The resourceListMetadata Class attributes are described in Table 4.3.

Table 4.3 Attribute Definitions for the resourceListMetadata Class.

Name Type Mult Description
creator
MetadataLangStringDType
0..*
Person or organization primarily responsible for creating the intellectual content of the Resource List.
owner
MetadataLangStringDType
0..*
Person or organization primarily responsible for establishing distribution and use permissions associated with Resource List.
created
MetadataDateDType
0..1
DateTime at which the Resource List was completed and made available.
title
MetadataLangStringDType
1..*
Name given to Resource List by Creator or Owner.
kind
MetadataTokenDType


Genre for the collected set of resources (i.e., a Resource List) created for educational purposes. The value of the attribute is "resource list"
language
MetadataTokenDType
0..*
Primary language in which the Resource List was created.
rightsDescription
MetadataLangStringDType
1..*
Simple, human readable statement about rights related to Resource List as desired by RL owner.

4.1.2.2 Associations

The set of associations for the resourceListMetadata Class are summarized in Table 4.4.

Table 4.4 Summary of associations for the resourceListMetadata Class.

Association Class Name Mult Description
location
0..*
Describes storage locations of a Resource List.
standardIdentifier
0..*
Standard number associated with the Resource List as a published item, e.g., DOI.

4.1.3 resourceListIDPair

The ResourceListIDPair Class attributes are described in Table 4.5.

Table 4.5 Attribute Definitions for the ResourceListIDPair Class.

Name Description
sourcedID
An identifier for a Resource List that is unique among the systems being integrated.

4.1.3.1 Associations

The set of associations for the Resource List ID Pair Class are summarized in Table 4.6.

Table 4.6 Summary of associations for the ResourceListIDPair Class.

Association Class Name Mult Description
resourceList
1
The details of the resource list

4.2 resource

The resource Class attributes are described in Table 4.7.

Table 4.7 Attribute definitions for the resource Class.

Name Type Mult Description
indexId
string
1
This assigns a unique identifier to a resource within a specific Resource List. A resource may appear in more than one Resource List.
type
MetadataTokenDType
0..1
Genre of a specific resource on a Resource List, such as bibliographic citation (to a book, online article, etc.)

4.2.1 Associations

The set of associations for the resource Class are summarized in Table 4.8.

Table 4.8 Summary of associations for the resource Class.

Association Class Name Mult Description
resourceMetadata
1
The categories of elements and sub-elements that must be defined within the schema to describe a resource itself
annotation
0..*
Authorized end users may annotate any resource. This is considered to be a very basic statement and not a complex structured description

4.2.1.1 resourceMetadata

The resourceMetadata Class attributes are described in Table 4.9.

Table 4.9 Attribute Definitions for the resourceMetadata Class.

Name Type Mult Description
description
MetadataLangStringDType
0..1
String describing the use, context or other pertinent descriptive information not included elsewhere.
language
MetadataTokenDType
0..*
Primary language in which resource has been created.
format
MetadataTokenDType
0..*
Datatype or MIME type of resource using IANA media type vocabulary.
genre
MetadataTokenDType
0..1
Type of resource as described by controlled vocabulary for locator strategy used by information source, or learning management system, e.g., OpenURL or DOI
structure
MetadataTokenDType
0..1
Structural type of resource such as physical, digital, abstract, etc. Necessary if creating Digital Object Identifier as means for locating resource. See http://www.doi.org/handbook_2000/metadata.html
mode
MetadataTokenDType
0..1
Primary sensory mode in which the resource is intended to be perceived. Necessary if creating Digital Object Identifier as means for locating resource. See http://www.doi.org/handbook_2000/metadata.html.
totalPagesCovered
MetadataStringDType
0..1
Range of pages included in the resource, as described on the display representation of the resource. May be simple concatenation of beginning page and ending page, or other means for noting when page sequence is not consecutive.

4.2.1.1.1 Associations

The set of associations for the resourceMetadata Class are summarized in Table 4.10.

Table 4.10 Summary of associations for the ResourceMetadata Class.

Association Class Name Mult Description
citation
1
The minimum data required to cite a resource as a formal scholarly reference. This list of MD elements primarily focuses upon what is necessary to create a traditional bibliographic citation according to the ISO 690-2, standard Information and documentation -- Bibliographic references -- Part 2: Electronic documents or parts thereof. These meta-data elements should also meet the PRISM v 1.2 Specifications (Publishing Requirements for Industry Standard Metadata).
Location
0..*
Describes storage locations of a resource. Solutions to Persistent locators have been declared out of scope. The Location Class contains a type attribute which allows a specific resolution type to be declared, if the structure of the locator is insufficient to determine the required resolution service. Where Meta-data necessary for known standard resolver services is not explicitly contained within a locator, but dynamically constructed, the meta-data has been included within the RLI data model. It is recommended that the meta-data necessary to construct a persistent locator for any resource be captured in a formal structure according to emerging specifications and standards and as desired by implementers.

Citation

The citation Class attributes are described in Table 4.11.

Table 4.11 Attribute Definitions for the citation Class.

Name Type Mult Description
title
MetadataLangStringDType
1..*
Name given to a resource by a Creator or Publisher
creator
MetadataLangStringDType
0..*
Person or organization primarily responsible for creating the intellectual content of the resource, e.g., author of a document.
edition
MetadataLangStringDType
0..1
Version of resource that is to be included in the Resource List.
publicationDate
MetadataDateDType
0..1
Date resource was made available in its present form.
publicationPlace
MetadataLangStringDType
0..1
Location that resource was made available in its present form.
publisher
MetadataLangStringDType
0..1
Person or organization primarily responsible for making the resource available in its present form, e.g., publishing house, or university department.
volumeDesignation
MetadataStringDType
0..*
Designation for subset being cited that is part of larger whole, such as volume of a multi-volume book, or volume of a journal.
partDesignation
MetadataStringDType
0..*
Designation for next layer down in which cited resource is found, such as chapter in a book or issue number of a journal.
articleNumber
MetadataStringDType
0..*
Identifying number of article within journal issue being cited.
startingPageNumber
MetadataStringDType
0..1
Page at which citation begins, as noted on the display image of the resource.
endingPageNumber
MetadataStringDType
0..1
Page at which the citation ends, as noted on the display image of the resource.

Associations

The set of associations for the citation Class are summarized in Table 4.12.

Table 4.12 Summary of associations for the citation Class.

Association Class Name Mult Description
standard Identifier
0..*
Standard number associated with resource, or of Source if resource is part of a whole such as a Chapter in a book or article in a journal, e.g.,SICI, ISBN, ISSN, DOI if already constructed.
relatedTitle
0..1
When resource being cited is part of a larger whole, such as volume title of a journal, or chapter of a book, the relatedTitle Identifies the larger whole.

standardIdentifier

The standardIdentifier Class attributes are described in Table 4.13.

Table 4.13 Attribute Definitions for the standardIdentifier Class.

Name Type Mult Description
standardIdentifierType
MetadataTokenDType
1
An optional type of the identifier. Used when the syntax of the identifier string is insufficient to definitively declare the type of the identifier.
identifierString
MetadataStringDType
1
The identifier string

relatedTitle

The relatedTitle Class attributes are described in Table 4.14.

Table 4.14 Attribute Definitions for the relatedTitle Class.

Name Type Mult Description
title
MetadataLangStringDType
1..*
Name given to the related title by a Creator or Publisher
creator
MetadataLangStringDType
0..*
Person or organization primarily responsible for creating the intellectual content of the related title, e.g., author of a document.
edition
MetadataLangStringDType
0..1
Version of the related title that contains the resource
publicationDate
MetadataDateDType
0..1
Date related title was made available in its present form.
publicationPlace
MetadataLangStringDType
0..1
Location that related title was made available in its present form.
publisher
MetadataLangStringDType
0..1
Person or organization primarily responsible for making the related title available in its present form, e.g., publishing house, or university department.
volumeDesignation
MetadataStringDType
0..1
Designation for subset being cited that is part of larger whole, such as volume of a multi-volume book.
partDesignation
MetadataStringDType
0..1
Designation for next layer down such as a multi volume part of a series.

Associations

The set of associations for the relatedTitle Class are summarized in Table 4.15.

Table 4.15 Summary of associations for the relatedTitle Class.

Association Class Name Mult Description
standardIdentifier
0..*
Standard number associated with resource, or of Source if resource is part of a whole such as a Chapter in a book or article in a journal, e.g.,SICI, ISBN, ISSN, DOI if already constructed.

4.3 annotation

The annotation Class attributes are described in Table 4.16.

Table 4.16 Attribute Definitions for the annotation Class.

Name Type Mult Description
annotator
MetadataLangStringDType
1
Name given to person or organization who creates the string which comprises the annotation.
date
MetadataDateDType
1
DateTime at which the annotation is created.
annotationNote
MetadataLangStringDType
1
String describing the educational use, context or other pertinent descriptive information not included elsewhere about the Resource List per se or about a resource within a given Resource List.

4.4 location

The location Class attributes are described in Table 4.17.

Table 4.17 Attribute Definitions for the location Class.

Name Type Mult Description
locationType
MetadataTokenDType
1
Type of a locator. Required where the locator string does not contain the locator type within the string, e.g., a call number.
locator
MetadataStringDType


A string used to access the resource. May be a location, e.g., URL, OpenURL or a method that resolves to a location, e.g., URI

4.5 resourceListSet

4.5.1 Description

The resourceListSet and its associations are is shown in Figure 4.2.

resourceListSet Class diagram
Figure 4.2 resourceListSet Class diagram.

4.5.2 Attributes

None.

4.5.3 Associations

The set of associations for the resourceListSet are summarized in Table 4.18.

Table 4.18 Summary of associations for the resourceListSet Class.

Association Class Name Mult Description
resourceListGroupAssociation
1..*
A resource list and the constraints apply for the association of this resource list with this group.

4.5.3.1 resourceListGroupAssociation

4.5.3.1.1 Attributes

None.

4.5.3.1.2 Associations

Table 4.19 Summary of associations for the resourceListGroupAssociation.

Association Class Name Mult Description
resourceListIDPair
1..*
A unique identifier for 'Resource List' together with the details of the Resource List associated with the identifier.
constraints
0..1
The set of constraints specified for this resourceListID.

4.6 constraints

4.6.1 Description

Constraints and its associations are is shown in Figure 4.3.

constraints Class diagram
Figure 4.3 constraints Class diagram.

Constraints apply to the association between a course and a resources list and define any constraints temporal, conditional, etc. being placed on the association. IMS RLI Implementers are encouraged to leverage constraints available within the behavioral model, in situations where access to resource lists may be of a temporary or restricted nature. However, these constraints are not intended to replace access right management and digital rights management systems, and rules.

4.6.2 Attributes

None.

4.6.3 Associations

The set of associations for the constraints are summarized in Table 4.20.

Table 4.20 Summary of associations for the constraints Class.

Association Class Name Mult Description
rights
0..1
Rights restrictions that apply to the association between the resource list and the group.
TimeFrame
0..*
Describes a period for which the association between the resource list and a group is active, i.e., the date range(s) for which the list owner deems a particular resource list relevant within an instructional plan. There is no required change in the behavior of the course. TimeFrame is an IMS Common Data Object. See the IMS Common Data Definitions specification.
itemConstraint
0..*
Constraints that apply to individual resources within the resource list.

4.6.3.1 rights

The rights Class attributes are described in Table 4.21.

Table 4.21 Attribute Definitions for the rights Class.

Name Type Mult Description
rightsDescription
MetadataLangStringDType
1..*
Simple, human readable statement about rights related to Resource List

4.6.4 itemConstraints

The itemConstraints Class attributes are described in Table 4.22.

Table 4.22 Attribute Definitions for the itemConstraints Class.

Name Type Mult Description
indexId
string
1
The unique identifier assigned to a resource within a specific Resource List.
required
Boolean
1
Indicates whether a reading is required for the course, or supplementary material.
visible
Boolean
1
Indicates whether an individual resource is visible in the resource list as instantiated for this association. If there is no item constraint for an individual resource then the default behavior is to treat visible as True for that item.

4.6.4.1 Associations

The set of associations for the itemConstraints Class are summarized in Table 4.23.

Table 4.23 Summary of associations for the itemConstraints Class.

Association Class Name Mult Description
rights
0..*
Simple, human readable statement about rights related to an individual item.
TimeFrame
0..*
Describes a period for which an individual resource active i.e., the date range(s) for which the list owner deems a particular resource relevant within an instructional plan. There is no required change in the behavior of the course. TimeFrame is an IMS Common Data Object. See the IMS Common Data Definitions specification.

4.7 Data Types

4.7.1 Description

The RLI Data Types are shown in Figure 4.4.

In the future, it is highly unlikely that any one standard will be adopted to describe bibliographic resources, much less digital resources in general. The Information Model Appendix D includes a mapping of the relevant LOM elements to major bibliographic citation schemas used in the library and publishing worlds. This specification has defined an origin neutral meta-data description of Resource Lists and the resources they describe. However it may be extremely useful for the system processing the Resource List to understand the original meta-data source for the meta-data. The RLI Data Types allow an optional description of the source schema to be associated with the attribute content.

RLI Data Types Class diagram
Figure 4.4 RLI Data Types Class diagram.

4.7.2 sourceSche