IEEE Learning Object Metadata RDF binding

NOTE: The development of this binding has been halted. Development continues within the joint DCMI/IEEE LTSC Taskforce

This document is a working draft that is subject to change. USE AT YOUR OWN RISK.

Editor: Mikael Nilsson <mini@nada.kth.se>, Royal Institute of Technology, Stockholm

This document currently resides here: http://kmr.nada.kth.se/el/ims/metadata.html

Revision: $Id: md-lomrdf.html,v 1.26 2002/08/26 16:23:21 mini Exp $

1. Introduction

This specification provides a representation of IEEE LTSC P1484.12.1 Learning Object Metadata version 1.0 [LOM]in RDF, the Resource Description Framework. RDF is the framework designed by the World Wide Web Consortium (W3C) for expressing metadata on the Web. The purpose of this standard is to provide the RDF binding to enable the exchange of LOM instances between conforming systems that implement
the 1484.12.1 data model. This binding thus defines a set of RDF constructs that facilitates introduction of educational metadata into the semantic web.

2. Referenced Documents

This binding is dependent on several independent documents. In particular, 

Each of these should be regarded as a prerequisite for using and implementing this binding. Some of the documents above have not yet reached a final version. As newer versions of these documents are released, this binding will be updated. However, it is expected that only minor adjustments will need to be done.

3.  Relationship to Other Standards

It is clear from the LOM data model [LOM] that LOM is closely related to several other specifications, such as various Dublin Core specifications and the vCard specification. One of the design goals of this RDF binding has been to reuse existing RDF vocabularies for those related specifications to the greatest extent possible without losing conformance to LOM itself, and in particular to the LOM XML binding [LOMXML].

3.1   Dublin Core

The RDF representation given here relies heavily on the Dublin Core meta-data element set [DCMES], and its representation in RDF. LOM elements are modeled in a way similar to the representation of Dublin Core Qualifiers in RDF, given in [DCQRDF]. Where applicable, LOM elements are described as rdfs:subClassOf or rdfs:subPropertyOf the corresponding DC/DCQ elements. In this sense, parts of LOM can be viewed as a proper extensions to qualified Dublin Core.

Thus, this binding is well aligned with the efforts to improve interoperability between Dublin Core and LOM in [DCLOMMOU]. It conforms to the requirements of open extensibility, modularity and refinement described in that document; and it avoids any unnecessary overlapping semantics of Dublin Core and LOM elements.

The RDF representation presented here is almost fully Dublin Core RDF compatible, in the sense that most Dublin Core meta-data constructed according to this binding can be directly understood by Dublin Core-aware software. Most of the elements of the LOM Dublin Core mapping (in Appendix B of [LOM]) are compatibly represented, allowing the use of all the Dublin Core constructs in a way compatible with both [DCQRDF] and this binding. It is, however, not always possible to map a pure Dublin Core construct (constructed without reference to this binding) to a LOM element without additional information, as LOM requires a more specific structure in many elements. The guiding principle has instead been that using the "dumb-down" algorithm described in [DCQRDF] should result in correct Dublin Core meta-data.

3.2   vCard

This binding makes use of the VCard RDF binding in [VCARDRDF]. Please refer to that document for specifics on the VCard representation in RDF.

3.3   LOM and the LOM XML Binding

It should be noted that this binding adds semantics to the LOM data model. Part of the added semantics can be seen in the LOM RDF Schemas in Appendix A [Ed: to be written]. This semantic modeling is necessary in order to construct useful RDF Schemas for LOM, but it has not been endorsed by the LOM standard itself, and thus respresents an interpretation of the LOM data model.

The need to model LOM with a correct RDF semantics results in loss of full LOM XML binding compatibility. Close attention has been paid to the LOM XML binding, and no structure representable in LOM XML should be problematic to represent in the LOM RDF binding. But there are some differences from the LOM XML binding in structure, naming, and representation. While it is expected that metadata expressed in RDF using this binding can be exported to the XML format without many problems, an XML meta-data record will need additional contextual information before it can be translated to RDF. The problematic areas primarily include classifications and vocabularies. Further detail is given in the next section on Usage Notes. 

4.  Usage Notes

4.1   Namespaces

Five external namespaces are used below.

In addition, this binding is separated into a number of namespaces. Each LOM category has its own namespace, and in addition there is a root namespace containing common constructs. The following abbreviations are used:

In addition, the namespace myVoc is sometimes used as an example when referring to a resource that can be defined by users and implementers. It uses the URI http://www.myVocabulary.com/someVocab#.

When used in XML attributes, where the abbreviated forms (namespace:id) are not allowed, XML entities of the form &dc;, &lom-gen; etc. are used instead. Thus, the expression &dc;title stands for http://purl.org/dc/elements/1.1/title.

4.2   rdf:value

This binding makes use of the rdf:value construct. This construct is a convenient way to add qualifying information to RDF statements. Its use is compatible with [DCQRDF], where it is also described in some detail. In short, this construct is used when a literal value of a property needs qualifying information. Consider the following RDF statement:

[PIC]

<rdf:Description rdf:about="http://www.myresource.com/">
<dcterms:temporal>1995-10-23</dcterms:temporal>
</rdf:Description>

The literal "1995-10-23" in this example is untyped. It is now possible to add qualifying type information, saying that this is a W3C Date & Time Format [Ed: insert reference here] string in the following standard way:

[PIC]

<rdf:Description rdf:about="http://www.myresource.com/">
<dcterms:temporal>
<dcterms:W3CDTF>
<rdf:value>1995-10-23</rdf:value>
</dcterms:W3CDTF>
</dcterms:temporal>
</rdf:Description>

The value of the dcterms:temporal property would be found to be the same in both cases, but in the second case, the type (W3CDTF) of the string would also be known.

[DCQRDF] specifies a so-called "dumb-down" algorithm that essentially removes all qualifying properties, leaving only the literal value of a property, which then corresponds to unqualified Dublin Core. This binding has been designed with this algorithm in mind. This way, software can produce unqualified Dublin Core meta-data from LOM RDF meta-data in a straightforward and standardized way, by using the "dumb-down" algorithm. Of course, if the software understands qualified Dublin Core, no "dumb-down" is necessary.

4.3   RDF Containers

A related construct is the RDF container, also discussed in [DCQRDF]. Several values of a single property may be grouped together using an RDF container in order to describe the fact that they:

More details on the use of these containers can be found in [DCQRDF] and [RDFPRIMER]. Without any container, no relation between different values of the same property of a resource is implied. In particular, RDF contains no natural ordering of properties.

This binding does not mandate the use of any such container, even in the case that LOM specifies ordered lists of values. In such cases, use of the rdf:Seq container is recommended, but not mandated. Instead, the implementor is encouraged to use the appropriate RDF container, or none at all, in the way that best matches the semantics of the data at hand. Thus, any such semantics must be explicitly represented in the RDF model, and can not be inferred from LOM itself. This implies that implementors are free to introduce ordering where no ordering is specified by LOM, and vice versa. It should be noted that any such LOM-incompatible information will be lost when translating to the LOM XML binding. 

Note that the LOM requirements are, in general, very useful guidelines in this process. Therefore, a recommended representation when several values are present is given for each LOM element in the binding table below.

4.4   Language-Specific Strings

When encoding a string in a specific language, use the xml:lang attribute in the XML serialization, as described in [RDFXML] and [DCQRDF]. An example of a language-tagged string follows:

[PIC]

<rdf:Description rdf:about="http://www.myresource.com/">
<dc:title xml:lang="en">Sniffy the virtual rat</dc:title>
</rdf:Description>

Here "en" is a language code conforming to ISO 639 [Ed: RCF3166?].

When encoding strings in several languages, use the rdf:Alt construct:

<rdf:Description rdf:about="http://www.myresource.com/">
<dc:title>
<rdf:Alt rdf:ID="titleAlt">
<rdf:li xml:lang="en">Sniffy the virtual rat</rdf:li>
<rdf:li xml:lang="sv">Sniffy den virtuella råttan</rdf:li>
</rdf:Alt>
</dc:title>
</rdf:Description>

This technique allows us to separate the original title from translations, as the first title is the default (according to the semantics of rdf:Alt). It also allows Dublin Core-only RDF parsers to understand what the title is, via the "dumb-down" algorithm. Finally, it allows us to add translations in separate RDF documents. A necessary prerequisite for this is that all rdf:Alt instances are given an explicit ID as in the example above. It is permitted to represent translations using repeated properties, but in that case the information that they represent semantically equivalent strings is not available.

It should be noted that nothing stops an implementer from using several independent titles for a resource when using this binding. This is permitted, but will result in information loss when translating to XML.

It should also be noted that, though allowed, the use of rdfs:label and rdfs:comment is discouraged in LOM metadata. Use dc:title and dc:description instead.

4.5   Pre-Defined Classes

In some cases Dublin Core has pre-defined classes that can be used as types of the values. Use of this construct is strongly encouraged, and the classes available for use are given in the table below. In some cases, there is a corresponding qualifier in LOM. For example, the class dcterms:W3CDTF is used to represent dates and times in the W3C Date and Time format [Ed:reference], which is also used in LOM. This kind of explicit datatyping using RDF classes (see the dcterms:temporal example above) is strongly favored, even in the case that LOM specifies that an element must always have a certain type.

4.6   Vocabularies

Vocabularies are represented in several different ways in this binding. The fundamental idea is that the (source, value) construct in LOM is best represented in RDF using the (namespace, value) construct that is naturally contained in a resource URI in RDF. Thus, vocabulary values are resources, and the source of a vocabulary is implicit in the URI of a resource.

This binding provides RDF resources for all the restricted vocabularies defined in LOM. These resources can be used directly as values of the corresponding property, for example:

<lom-life:status rdf:resource="&lom-life;Draft"/>

Additionally, implementers are free to define their own RDF resources for use as values in vocabularies, for example:

<lom-life:status rdf:resource="&myVoc;ReleaseCandidate"/>

The resource pointed to will most probably be an RDF resource that is part of an RDF Schema defining the vocabulary. Thus, vocabularies will need to be explicitly translated to RDF. This convention leads to some difficulties when interfacing with the XML binding, where vocabularies are not explicitly defined in this way. Further development in this area is necessary.

4.6.1   Using vocabularies for Properties

In several cases, the LOM vocabulary item is not to be used as the object of an RDF Statement, but rather as the predicate. This is the case with element 7.1 Relation.Kind. An example could look like:

<dcterms:hasPart rdf:resource="http://www.ieee.org/someContent.html"/>

Here the Relation is of Relation.Kind "hasPart". Defining new vocabularies here is as simple as for the above case. The only difference is that, in the example, one would need to define an rdfs:subPropertyOf dc:relation. This new property is an RDF resource, and thus the same remarks apply: explicit translation of vocabularies to RDF is necessary, and care must be taken when interfacing with the XML binding.

A definition of a private (not necessarily useful) vocabulary for Relation.Kind could look like:

<rdf:Property rdf:about="&myVoc;hasPrerequisite">
<rdfs:subPropertyOf rdf:resource="&dc;relation"/>
<dc:title>Has prerequisite</dc:title>
<dc:description>This property points to a resource that is a necessary
prerequisite for the resource.</dc:description>
</rdf:Property>

This would then be used as:

<myVoc:hasPrerequisite rdf:resource="http://www.ieee.org/someContent.html"/>
Note that any LOM property can be refined in this way, even if LOM does not explicitly permit it. For example, it is possible to refine the property lom-edu:interactivityType by defining an rdfs:subPropertyOf that property. There is no way to reflect this in the XML binding of LOM, though.

4.6.2   Transitivity of properties

To be able to refine vocabulary values of LOM properties, it is necessary to make explicit the transitivity rules of each LOM property. An example is the element 5.2 Learning Resource Type, which has been mapped to the rdf:type property in this binding. A refinement vocabulary of the lom-edu:Exam type could for example include the types myVoc:FinalExam and myVoc:IntermediateExam. This refinement would be expressed by making both myVoc:FinalExam and myVoc:IntermediateExam rdfs:subClassOf lom-edu:Exam.

[PIC]

The semantics of this would then be that anything that has rdf:type myVoc:FinalExam also has rdf:type lom-edu:Exam, and when searching for resources that are Exams, FinalExams will therefore also show up. This can be expressed as:
a rdf:type X  and  X rdfs:subClassOf Y  implies that  a rdf:type Y


[PIC]

This is the wanted transitivity rule. Without this rule, no refinement of the vocabulary would be possible. In fact, this rule is part of the semantics of rdf:type, as described in [RDFMT], so it is not necessary to make it explicit here. However, similiar relations apply to many of the LOM properties. For example, the property lom-edu:interactivitytype points to interactivity types, which could be refined in the same way using rdfs:subClassOf. The rule looks very similar to the above:

a lom-edu:interactivitytype X  and  X rdfs:subClassOf Y  implies that  a lom-edu:interactivitytype Y

[PIC]

To describe the transitivity rule for each property, it is therefore only necessary to say which property it is "transitive over". The example above is expressed as "lom-edu:interactivitytype is transitive over rdfs:subClassOf". Note that while there is no standard way to encode this information in a machine-readable way today, hopefully the Web Ontology work at W3C [WEBONT] with RDF rules support will make this possible.

In the meantime, the appropriate transitivity rules are described in the binding table below. Applications should support these rules where possible.

4.7   Using Metameta-data

Generally, the metameta-data category is obsoleted in RDF, as RDF itself comes with good support for metameta-data. Two ways to describe such information are provided by RDF, and both rely on reusing the usual meta-data properties. The properties are applied to either:

Both of these are perfectly valid approaches. Some additional guidance on the representation of LOM metameta-data elements is given in the table below. All of them should apply not to the learning resource being described, but to one of the above resources.

4.8   Classifications

This is the most complex category of all. Taxonomies are encoded separately from each meta-data instance. The idea is to represent a hierarchical taxonomy separately, and point into nodes in this hierarchy when classifying resources. At the same time, it is possible to reuse the subject classifications from Dublin Core Qualifiers, for example like this:

<lom-cls:Taxonomy rdf:ID="MeSHTaxonomy">
<rdfs:label>Medical Subject Headings</rdfs:label>
<lom-cls:taxon>
<dcterms:MeSH rdf:ID="A">
<rdf:value>A</rdf:value>
<rdfs:label>Anatomy</rdfs:label>
<lom-cls:taxon>
<dcterms:MeSH rdf:ID="A01">
<rdf:value>A01</rdf:value>
<rdfs:label>Body Regions</rdfs:label>
<lom-cls:taxon>
<dcterms:MeSH rdf:ID="A01.047">
<rdf:value>A01.047</rdf:value>
<rdfs:label>Abdomen</rdfs:label>
<lom-cls:taxon>
...

[PIC]

Using this will then look like:

<dc:subject rdf:resource="http://www.myVocabulary.com/taxonomy#A01.047"/>

It should be noted that a dc:subject property with a literal value should be interpreted as a keyword (see further below).

6.  The Binding Table

This table defines, for each element in LOM v1.0, the corresponding RDF property to use. It specifies how to repeat the element in conformance with the Information Model and gives usage examples. Note that the RDF Schema definition files given in Appendix A in some cases provide more precise definitions, especially for vocabulary creators.

Note: Elements 1.1 and 3.1 are special cases that are not represented as properties.

6.1   General Category

LOM element

Usage guidelines

Recommended ordering representation

Example

1.1
Identifier

Use an official URI of the resource as the object of all RDF statements about the resource.

Use dc:identifier only when the public identifier is not a URI.

Use lom-tech:location for non-permanent URIs.

1.1.1 Catalog is represented as encoding schemes for dc:identifier. Thus, Catalogs are represented as instances of lom-gen:Catalog, and the dc:identifier property should point to an instance of such a class.

The instance should have an rdf:value property pointing to the 1.1.2 Entry. There are no pre-defined classes to use, so implementers will need to create classes. It is expected that standardized catalog classes will be developed.

Use RDF datatypes?

Use repeated properties for dc:identifier.

<rdf:Description
rdf:about="http://www.ieee.org/someContent.html">
...
</rdf:Description>
or
<rdf:Description>
<dc:identifier>
<myVoc:ISBN>
<rdf:value>0-226-10389-7</rdf:value>
</myVoc:ISBN>
</dc:identifier>
</rdf:Description>

1.2
Title

Use dc:title pointing to a textual description.

Do not repeat.

<dc:title>
<rdf:Alt rdf:ID="title">
<rdf:li xml:lang="en">
Sniffy the virtual rat
</rdf:li>
<rdf:li xml:lang="sv">
Sniffy den virtuella råttan
</rdf:li>
</rdf:Alt>
</dc:title>

1.3
Language

Use dc:language.

As values, use instances of dcterms:RFC1766 for two-letter codes (see [RFC1766]) or dcterms:ISO639-2 for three-letter codes (see [ISO639-2].

Use RDF datatypes?

Use repeated properties.

<dc:language>
<dcterms:RFC1766>
<rdf:value>en</rdf:value>
</dcterms:RFC1766>
</dc:language>

1.4
Description

Use dc:description pointing to a textual description.

Use repeated properties for separate descriptions.

<dc:description>
<rdf:Alt rdf:ID="desc1">
<rdf:li xml:lang="en">
A computer program ...
</rdf:li>
<rdf:li xml:lang="sv">
Ett datorprogram ...
</rdf:li>
</rdf:Alt>
</dc:description>
<dc:description>
<rdf:Alt rdf:ID="desc2">
<rdf:li xml:lang="en">
This program is meant to be used ...
</rdf:li>
<rdf:li xml:lang="sv">
Detta program är menat att användas ...
</rdf:li>
</rdf:Alt>
</dc:description>

1.5
Keyword

Use dc:subject pointing to a textual description.

Use repeated properties for separate keywords.

<dc:subject>
<rdf:Alt rdf:ID="keyword1">
<rdf:li xml:lang="en">psychology</rdf:li>
<rdf:li xml:lang="sv">psykologi</rdf:li>
</rdf:Alt>
</dc:subject>

1.6
Coverage

Use dc:coverage, dcterms:spatial, or dcterms:temporal.

As values, use instances of:

  • dcterms:TGN, dcterms:ISO3166,dcterms:Box and dcterms:Point for dcterms:spatial values

  • dcterms:W3CDTF and dcterms:Period for dcterms:temporal values.

See [DCQ] for information on the format of these values. Textual descriptions are also allowed. 

Use RDF datatypes?

Use repeated properties for separate coverage.

<dcterms:temporal>
<dcterms:W3CDTF>
<rdf:value>1776-07-04</rdf:value>
</dcterms:W3CDTF>
</dcterms:temporal>

<dcterms:spatial>
<rdf:Alt>
<rdf:li xml:lang="en">
United States of America
</rdf:li>
<rdf:li xml:lang="sv">
Amerikas Förenta Stater
</rdf:li>
</rdf:Alt>
</dcterms:spatial>

1.7
Structure

Use lom-gen:structure.

As values, use instances of lom-gen:StructureType.

For LOM restricted vocabulary, use the instances lom-gen:Atomic,lom-gen:Collection,lom-gen:Networked,lom-gen:Hierarchical, or lom-gen:Linear.

The property lom-gen:structure is transitive overrdfs:subClassOf.

Do not repeat.

<lom-gen:structure
rdf:resource="&lom-gen;Collection"/>

1.8
Aggregation Level

Use lom-gen:aggregationLevel.

As values, use instances of lom-gen:AggregationLevel.

For LOM restricted vocabulary, use the values lom-gen:AggregationLevel1,lom-gen:AggregationLevel2,lom-gen:AggregationLevel3,lom-gen:AggregationLevel4.

Do not repeat.

<lom-gen:aggregationLevel
rdf:resource="&lom-gen;AggregationLevel3"/>

6.2   Lifecycle Category

LOM element

Usage guidelines

Ordering representation

Example

2.1
Version

Use lom-life:version, pointing to a textual description.

Do not repeat.

<lom-life:version>
<rdf:Alt>
<rdf:li xml:lang="en">beta version</rdf:li>
<rdf:li xml:lang="sv">betaversion</rdf:li>
</rdf:Alt>
</lom-life:version>

2.2
Status

Use lom-life:status.

As values, use instances of lom-life:StatusType.

For LOM restricted vocabulary, use the values: lom-life:Draft,lom-life:Final,lom-life:Revised or lom-life:Unavailable.

The property lom-life:status is transitive over rdfs:subClassOf.

Do not repeat.

<lom-life:status
rdf:resource="&lom-life;Final"/>

2.3
Contribute

There are three possibilities:

  1. Use dc:publisher pointing to the contributing entity, in VCard format. The role is implicitly the same as the LOM "publisher" role, and the date implicitly the date contained in dcterms:issued or, if this is missing, dc:date.

  2. Use dc:creator pointing to the contributing entity, in VCard format. The role is implicitly the same as the LOM "author" role, and the date implicitly the date contained in dcterms:created or, if this is missing, dc:date.

  3. Use an rdfs:subPropertyOf dc:contributor with rdf:value pointing to the contributing entity, in VCard format, and dc:date pointing to the date of the contribution. The resource should be of type lom-life:Contribution.

The contributing entity should be a resource of type lom:Entity. The dc:date should point to an instance of dcterms:W3CDTF.

For LOM restricted vocabulary for the contribution role, use one of the following  rdfs:subPropertyOf dc:contributor as in case 3 above: lom-life:initiator, lom-life:terminator, lom-life:validator, lom-life:editor, lom-life:graphicalDesigner, lom-life:technicalImplementer, lom-life:contentProvider, lom-life:technicalValidator, lom-life:educationalValidator, lom-life:scriptWriter, lom-life:instructionalDesigner, or lom-life:subjectMatterExpert.

The LOM "publisher" and "author" roles map to the Dublin Core "publisher" and "creator" roles, respectively, while the LOM "unknown" role corresponds to using dc:contributor.

Remove all cruft?

Use repeated properties. For multiple entities within one contribute element, use rdf:Seq. Do not use repeated rdf:value. Do not repeat the dc:date properties within a contribute element.

<dc:creator>
<lom:Entity>
<vCard:FN>Erik Duval</vCard:FN>
</lom:Entity>
</dc:creator>

<dcterms:created>
<dcterms:W3CDTF>
<rdf:value>2000-12-16</rdf:value>
</dcterms:W3CDTF>
</dcterms:created>

<lom-life:editor>
<lom-life:Contribution>
<rdf:value>
<rdf:Seq>
<rdf:li>
<lom:Entity>
<vCard:FN>Tom Wason</vCard:FN>
</lom:Entity>
</rdf:li>
<rdf:li>
<lom:Entity>
<vCard:FN>Eric Duval</vCard:FN>
</lom:Entity>
</rdf:li>
</rdf:Seq>
</rdf:value>
<dc:date>
<dcterms:W3CDTF>
<rdf:value>1998</rdf:value>
<dc:description>A few years ago.</dc:description>
</dcterms:W3CDTF>
</dc:date>
</lom-life:Contribution>
</lom-life:editor>

6.3   Metametadata Category

Note that, as discussed above, all elements below apply not to the learning resource, but to the metadata about the resource. Please see the example document for examples.

LOM element

Usage guidelines

Ordering representation

Example

3.1
Identifier

Use exactly as 1.1 Identifier.

See 1.1 Identifier

<rdf:Description
rdf:about="http://www.ieee.org/metadata.rdf">
...
</rdf:Description>

or

<rdf:Description
rdf:about="http://www.ieee.org/metadata.rdf#bag">
...
</rdf:Description>

3.2
Contribute

Use exactly as 2.3 Contribute

Use only the roles dc:creator and lom-life:validator in order to be fully LOM compliant.

Remove all cruft?

Use repeated properties. Group contributions just as in 2.3 Contribute.


3.4
Metadata Scheme

Use lom-meta:metadataScheme.

As values, use instances of lom-meta:MetadataScheme. If the metadata is compatible with this binding, use lom-meta:LOMv1.0. This will guide software in interpreting the metadata as a LOM description.

Use repeated properties.

<lom-meta:metadataScheme
rdf:resource="&lom-meta;LOMv1.0"/>

3.5
Language

Use exactly as 1.4 Language. Note that while this language may be used in accordance with the LOM Standard to specify a default language for all literals, such use is strongly discouraged.

It is recommended to be explicit about the language of literals in an RDF document.

However, this property is still useful to indicate the language of a metadata document without having to examine it.

Do not repeat.


6.4   Technical Category

LOM element

Usage guidelines

Ordering representation

Example

4.1
Format

Use dc:format.

As values, use instances of dcterms:IMT, which represent MIME-types. For non-digital resources, use a textual description.

Specifically, do not use dcterms:medium, which is reserved for the physical medium. This is a known error in [DCQRDF].

Use RDF datatypes?

Use repeated properties.

<dc:format>
<dcterms:IMT>
<rdf:value>text/html</rdf:value>
</dcterms:IMT>
</dc:format>

4.2
Size

Use dcterms:extent.

As values, use instances of lom-tech:ByteSize with an rdf:value pointing to the value literal.

Use RDF datatypes?

Do not repeat.

<dcterms:extent>
<lom-tech:ByteSize>
<rdf:value>124032</rdf:value>
</lom-tech:ByteSize>
</dcterms:extent>

4.3
Location

Use lom-tech:location either pointing to the resource URI, or for non-URI locations a textual description.

Use only rdf:Seq.

<lom-tech:location
rdf:resource="http://www.ieee.org/someDocument.html"/>

4.4
Requirements

Use a rdfs:subPropertyOf lom-tech:requirement pointing to an instance of lom-tech:TechnologyRequirement with lom-tech:minimumVersion and lom-tech:maximumVersion pointing to the corresponding version literals.

For LOM restricted vocabulary for the requirement type, use: lom-tech:operatingSystem (with values of type lom-tech:OperatingSystemRequirement) or lom-tech:browser (with values of type lom-tech:BrowserRequirement).

For LOM restricted vocabulary for the required technology, use instances of: lom-tech:PC-DOS, lom-tech:MS-Windows,lom-tech:MacOS,lom-tech:Unix,lom-tech:Multi-OS or lom-tech:None for operating systems, and instances of lom-tech:Any,lom-tech:NetscapeCommunicator,lom-tech:MicrosoftInternetExplorer,lom-tech:Opera or lom-tech:Amaya for browser. 

Use repeated properties for separate (AND) requirements. Use rdf:Alt to group OR equirements. Do not repeat any of lom-tech:minimumversion or lom-tech:maximumversion.

<lom-tech:operatingSystem>
<lom-tech:Multi-OS/>
</lom-tech:operatingSystem>

<lom-tech:browser>
<lom-tech:NetscapeCommunicator>
<lom-tech:minimumVersion>
4.7
</lom-tech:minimumVersion>
</lom-tech:NetscapeCommunicator>
</lom-tech:browser>

4.5
Installation
Remarks

Use lom-tech:installationRemarks with a textual description.

Do not repeat.

<lom-tech:installationRemarks xml:lang="en">
First install ...
</lom-tech:installationRemarks>

4.6
Other
Platform
Requirements

Use lom-tech:otherPlatformRequirements with a textual description.

Do not repeat.

<lom-tech:otherPlatformRequirements xml:lang="en">
You will also need ...
</lom-tech:otherPlatformRequirements>

4.7
Duration

Use dcterms:extent with a value of type lom:ISO8601.


Use RDF datatypes?

Do not repeat.

<dcterms:extent>
<lom:ISO8601>
<rdf:value>PT1H20M</rdf:value>
</lom:ISO8601>
</dcterms:extent>

6.5   Educational Category

Remodel completely?

LOM element

Usage guidelines

Ordering representation

Example

5.1
Interactivity
Type

Use lom-edu:interactivityType.

As values, use instances of lom-edu:InteractivityType.

For LOM restricted vocabulary, use: lom-edu:Active,lom-edu:Expositive or lom-edu:Mixed.

The property lom-edu:interactivityType is transitive over rdfs:subClassOf.

Do not repeat.

<lom-edu:interactivityType
rdf:resource="&lom-edu;Active"/>

5.2
Learning
Resource
Type

Use rdf:type.

For LOM restricted vocabulary, use: lom-edu:Exercise, lom-edu:Simulation, lom-edu:Questionnaire, lom-edu:Diagram, lom-edu:Figure, lom-edu:Graph, lom-edu:Index, lom-edu:Slide, lom-edu:Table, lom-edu:NarrativeText, lom-edu:Exam, lom-edu:Experiment, lom-edu:ProblemStatement, lom-edu:SelfAssessment or lom-edu:Lecture.

Note that [DCMITYPE] specifies another vocabulary that could be useful for this element.

The property rdf:type is transitive over rdfs:subClassOf.

How to support ordering?

Use repeated properties. This conflicts with LOM, which specifies that this element is ordered.

<rdf:Description
rdf:about="http://www.ieee.org/someContent.html">
<dc:title>...</dc:title>
...
<rdf:type
rdf:resource="&lom-edu;Exercise"/>
...
</rdf:Description>

or, using RDF shorthand notation:

<lom-edu:Exercise
rdf:about="http://www.ieee.org/someContent.html">
<dc:title>...</dc:title>
...
</lom-edu:Exercise>

5.3
Interactivity
Level

Use lom-edu:interactivityLevel.

As values, use instances of lom-edu:InteractivityLevel.

For LOM restricted vocabulary, use: lom-edu:VeryLowInteractivity,lom-edu:LowInteractivity,lom-edu:MediumInteractivity,lom-edu:HighInteractivity or lom-edu:VeryHighInteractivity.

Do not repeat.

<lom-edu:interactivityLevel
rdf:resource="&lom-edu;LowInteractivity"/>

5.4
Semantic
Density

Use lom-edu:semanticDensity.

As values, use instances of lom-edu:SemanticDensity.

For LOM restricted vocabulary, use: lom-edu:VeryLowDensity,lom-edu:LowDensity,lom-edu:MediumDensity,lom-edu:HighDensity or lom-edu:VeryHighDensity.

Do not repeat.

<lom-edu:semanticDensity
rdf:resource="&lom-edu;HighDensity"/>

5.5
Intended
End User
Role

Use lom-edu:intendedEndUserRole.

As values, use instances of lom-edu:IntendedEndUserRole.

For LOM restricted vocabulary, use: lom-edu:Teacher,lom-edu:Author,lom-edu:Learner or lom-edu:Manager.

The property lom-edu:intendedEndUserRole is transitive over rdfs:subClassOf.

Use rdf:Seq for repetition.

<lom-edu:intendedEndUserRole
rdf:resource="&lom-edu;Manager"/>

5.6
Context

Use lom-edu:context.

As values, use instances of lom-edu:Context.

For LOM restricted vocabulary, use: lom-edu:School,lom-edu:HigherEducation,lom-edu:Training or lom-edu:Other.

The property lom-edu:context is transitive over rdfs:subClassOf.

This property might be replaced by dcterms:audiencelevel in a later version of this binding.

Use repeated properties.

<lom-edu:context
rdf:resource="&lom-edu;School"/>

5.7
Typical Age
Range

Use dcterms:audience.

As values, use instances of lom-edu:AgeRange, if applicable, or a textual description. 

Use RDF datatypes?

For distinct age ranges, use separate properties.

<dcterms:audience>
<lom:AgeRange>
<rdf:value>7-12</rdf:value>
</lom:AgeRange>
</dcterms:audience>

5.8
Difficulty

Use lom-edu:difficulty.

As values, use instances of lom-edu:Difficulty.

For LOM restricted vocabulary, use: lom-edu:VeryEasy,lom-edu:Easy,lom-edu:MediumDifficult,lom-edu:Difficult or lom-edu:VeryDifficult.

Do not repeat.

<lom-edu:difficulty
rdf:resource="&lom-edu;Easy"/>

5.9
Typical
Learning
Time

Use lom-edu:typicalLearningTime.

As values, use instances of type lom:ISO8601.

Use RDF datatypes?

Do not repeat.

<lom-edu:typicalLearningTime>
<lom:ISO8601>
<rdf:value>PT1H20M</rdf:value>
</lom:ISO8601>
</lom-edu:typicalLearningTime>

5.10

Description

Use lom-edu:description, pointing to a textual description.

Do not repeat.

<lom-edu:description>
<rdf:Alt>
<rdf:li xml:lang="en">
This is intended to be used ...
</rdf:li>
</rdf:Alt>
</lom-edu:description>

5.11
Language

Use lom-edu:language. Use as 1.3 Language.

Use RDF datatypes?

Use repeated properties.

<lom-edu:language>
<dcterms:RFC1766>
<rdf:value>en</rdf:value>
</dcterms:RFC1766>
</lom-edu:language>

6.6   Rights Category

In this category, this binding differ from Appendix B of LOM, in that the Dublin Core property dc:rights maps to 6.3 Rights.Description.

LOM element

Usage guidelines

Ordering representation

Example

6.1
Cost

Use lom-rights:cost. For LOM restricted vocabulary, use lom-rights:SomeCost or lom-rights:NoCost.

Do not repeat.

<lom-rights:cost
rdf:resource="&lom-rights;NoCost"/>

6.2
Copyright
and Other
Restrictions

Use lom-rights:copyrightAndOtherRestrictions. For LOM restricted vocabulary, use: lom-rights:SomeRestriction or lom-rights:NoRestriction.

Do not repeat.

<lom-rights:copyrightAndOtherRestrictions
rdf:resource="&lom-rights;SomeRestriction"/>

6.3
Description

Use dc:rights, pointing to a textual description.

Do not repeat.

<dc:rights>
<rdf:Alt>
<rdf:li xml:lang="en">
Copyright 1999 ...
</rdf:li>
</rdf:Alt>
</dc:rights>

6.7   Relation Category

Due to the nature of RDF in the semantic web environment, the elements 7.2.1 Identity 7.2.2 Description are not used directly. Instead, the intention is that they can be attached to the resource pointed to using 1.1 Identity and 1.4 Description. In the example below, the related resource is defined by an ISBN number.

LOM element

Usage guidelines

Ordering representation

Example

7
Relation

Use an rdfs:subPropertyOf dc:relation or dc:source. There are four cases:

  1. Use one of the Dublin Core qualifying properties dcterms:isVersionOf,dcterms:hasVersion, dcterms:isReplacedBy, dcterms:replaces, dcterms:isRequiredBy, dcterms:requires,
    dcterms:isPartOf,
    dcterms:hasPart, dcterms:isReferencedBy, dcterms:references, dcterms:isFormatOf,
    dcterms:hasFormat.

  2. Use dc:source when the Relation.Kind is "IsBasedOn".

  3. Use lom-rel:isBasisFor.

  4. For your own Relation.Kind vocabularies, you can define your own rdfs:subPropertyOf of dc:relation or dc:source.

Use repeated properties.

<dcterms:hasPart
rdf:resource="http://www.ieee.org/someOtherContent.html"/>

<dcterms:isReferencedBy>
<rdf:Description
rdf:about="http://www.ieee.org/someOtherContent.html">
<dc:identifier>
<myVoc:ISBN>
<rdf:value>0-226-10389-7</rdf:value>
</myVoc:ISBN>
</dc:identifier>
</rdf:Description>
</dcterms:isReferencedBy>

6.8   Annotation Category

LOM element

Usage guidelines

Ordering representation

Example

8
Annotation

Use lom-ann:annotation.

As values, use instances of lom-ann:Annotation, with lom-ann:entity giving a VCard for the annotating person, an dc:date with a value of type dcterms:W3CDTF, giving the date of the annotation, and a dc:description for the textual annotation.

Use repeated properties. Use only one lom-ann:entity, only one dc:date, and only one rdf:value.

<lom-ann:annotation>
  <lom-ann:Annotation>
<lom-ann:entity>
<lom:Entity>
<vCard:FN>Philip Dodds</vCard:FN>
</lom:Entity>
</lom-ann:entity>
<dc:date>
<dcterms:W3CDTF>
<rdf:value>2000-12-17</rdf:value>
</dcterms:W3CDTF>
</dc:date>
<dc:description xml:lang="en">
I think this document is ...
</dc:description>
</lom-ann:Annotation>
</lom-ann:annotation>

6.9   Classification Category

LOM element

Usage guidelines

Ordering representation

Example

9
Classification

Use an rdfs:subPropertyOf lom-cls:classification. There are three possibilities:

  1. When Classification.Purpose is "Discipline" or "Idea", use dc:subject, which is an rdfs:subPropertyOf lom-cls:classification. This usage is defined by the LOM-DC mapping.

  2. For LOM restricted vocabulary for the purpose, use one of the following, which are all rdfs:subPropertyOf lom-cls:classification: lom-cls:prerequisite,lom-cls:educationalObjective,lom-cls:accessibilityRestrictions,lom-cls:educationalLevel,lom-cls:skillLevel,lom-cls:securityLevel, or lom-cls:competency.

  3. Define your own rdfs:subPropertyOf lom-cls:classification to use for local purposes.

This property should point to a taxon in a taxonomy hierarchy. Such an hierarchy is an instance of lom-cls:Taxonomy, which is defined separately below.

The property lom-cls:classification is transitive over the inverse of lom-cls:taxon.

Use repeated properties. 

<dc:subject
rdf:resource="http://www.myVocabulary.com/tax#A01.047"/>
<lom-cls:accessibilityRestrictions
rdf:resource="http://www.myVocabulary.com/accTax#03F4"/>


7   Taxonomies

This table defines how to construct reusable taxonomies. These taxonomies are reusable for pure Dublin Core metadata as well.

LOM element

Usage guidelines

Ordering representation

Example

Taxonomy

Taxonomies are instances of lom-cls:Taxonomy. Each taxonomy is a hierarchy of taxons. The top-level taxons are pointed to by lom-cls:taxon properties.

Each such taxon can be an instance of one of the pre-defined classes dcterms:LCSH, dcterms:MeSH,dcterms:DDC,dcterms:LCC or dcterms:UDC, or of a locally defined class. This way, every taxon is a valid object for the Dublin Core element dc:subject.

Each such taxon must have an rdf:value pointing to the (full) code of the taxon, and/or a dc:title (or rdfs:label) giving the label of the entry. The taxon can also have sub-taxons, in the form of a lom-cls:taxon property pointing to the sub-taxon, and so on recursively.

Use subTaxon, and then taxon only on root level?


In a separate file (http://www.myVocabulary.com/taxonomy):

<lom-cls:Taxonomy rdf:ID="MeSH">
<dc:title>Medical Subject Headings</dc:title>
<lom-cls:taxon>
<dcterms:MeSH ID="A">
<rdf:value>A</rdf:value>
<dc:title>Anatomy</dc:title>
<lom-cls:taxon>
<dcterms:MeSH ID="A01">
<rdf:value>A01</rdf:value>
<dc:title>Body Regions</dc:title>
<lom-cls:taxon>
<dcterms:MeSH ID="A01.047">
<rdf:value>A01.047</rdf:value>
<dc:title>Abdomen</dc:title>
<lom-cls:taxon>
...

References

Update links to new RDF draft specs


[LOM]

IEEE LTSC P1484.12.1 Learning Object Metadata (LOM) specification, version 1.0
[Ed: Draft 6.4 is here.]

[LOMXML]

IEEE LTSC P1484.12.3 Learning Object Metadata (LOM) XML binding, version 1.0
[Ed: to be released]

[RDF]

[Ed:Update!] Resource Description Framework (RDF) Specification
http://www.w3.org/TR/1999/REC-rdf-syntax-19990222

[RDFMT]

[Ed: Update!] RDF Model Theory (Working Draft)
http://www.w3.org/TR/rdf-mt/

[RDFXML]

Refactoring RDF/XML Syntax (Working Draft)
http://www.w3.org/TR/rdf-syntax-grammar/

[RDFS]

RDF Vocabulary Description Language 1.0: RDF Schema (Working Draft)
http://www.w3.org/TR/rdf-schema/

[RDFPRIMER]

RDF Primer

[WEBONT]

Web-Ontology (WebOnt) Working Group
http://www.w3.org/2001/sw/WebOnt/

[DCMES]

Dublin Core Metadata Element Set, Version 1.1: Reference Description
http://dublincore.org/documents/1999/07/02/dces/

[DCMITYPE]

DCMI Type Vocabulary
http://dublincore.org/documents/2000/07/11/dcmi-type-vocabulary/

[DCQ]

Dublin Core Qualifiers
http://dublincore.org/documents/2000/07/11/dcmes-qualifiers/

[DCQRDF]

Expressing Qualified Dublin Core in RDF / XML (Proposed Recommendation)
http://dublincore.org/documents/2002/04/14/dcq-rdf-xml/

[VCARDRDF]

Representing vCard Objects in RDF/XML
http://www.w3.org/TR/vcard-rdf

[DCLOMMOU]

Memorandum of Understanding between the Dublin Core Metadata Initiative and the IEEE Learning Technology Standards Committee
http://dublincore.org/documents/2000/12/06/dcmi-ieee-mou/

[RFC1766]

[Ed: => 3166?] Tags for the Identification of Languages
http://www.ietf.org/rfc/rfc1766.txt

[ISO639-2]

Codes for the Representation of Names of Languages-Part 2: Alpha-3 Code
http://lcweb.loc.gov/standards/iso639-2/langhome.html

Changes to this document after 2002-06-15:

Appendix A - RDF schemas

Appendix B - Additional Dublin Core mappings