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
$
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.
[LOM], and notably the Dublin Core mapping found in Appendix B of that document,
the Dublin Core documents [DCMES], [DCQ], [DCMITYPE] and [DCQRDF], and
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.
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].
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.
This binding makes use of the VCard RDF binding in [VCARDRDF]. Please refer to that document for specifics on the VCard representation in RDF.
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.
Five external namespaces are used below.
rdf:
which is the RDF
namespace: http://www.w3.org/1999/02/22-rdf-syntax-ns#
.
rdfs:
which is the RDF
Schema namespace: http://www.w3.org/2000/01/rdf-schema#
.
dc:
which is the Dublin
Core Element Set namespace: http://purl.org/dc/elements/1.1/
.
dcterms:
which is the
Dublin Core Terms namespace: http://purl.org/dc/terms/
.
dctype:
which is the
Dublin Core Types namespace: http://purl.org/dc/dcmitype/
.
vCard:
which is the RDF vCard namespace: http://www.w3.org/2001/vcard-rdf/3.0#
.
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:
lom:
which is the LOM
base meta-data namespace: http://ltsc.ieee.org/2002/09/lom-base#
.
lom-gen:
which is the
LOM general meta-data namespace: http://ltsc.ieee.org/2002/09/lom-general#
.
lom-life:
which is the
LOM life cycle meta-data namespace: http://ltsc.ieee.org/2002/09/lom-lifecycle#
.
lom-meta:
which is the
LOM meta-meta-data namespace: http://ltsc.ieee.org/2002/09/lom-metametadata#
.
lom-tech:
which is the
LOM technical meta-data namespace: http://ltsc.ieee.org/2002/09/lom-technical#
.
lom-edu:
which is the
LOM educational meta-data namespace: http://ltsc.ieee.org/2002/09/lom-educational#
.
lom-rights:
which is
the LOM rights meta-data namespace: http://ltsc.ieee.org/2002/09/lom-rights#
.
lom-rel:
which is the
LOM relation meta-data namespace: http://ltsc.ieee.org/2002/09/lom-relation#
.
lom-ann:
which is the
LOM annotation meta-data namespace: http://ltsc.ieee.org/2002/09/lom-annotation#
.
lom-cls:
which is the LOM classification meta-data
namespace: http://ltsc.ieee.org/2002/09/lom-classification#
.
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
.
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.
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:
are alternatives (corresponds to the rdf:Alt
container)
rdf:Seq
container)belong together as an unordered group (corresponding to the rdf:Bag
container)
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.
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.
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.
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.
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.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
. 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
andX rdfs:subClassOf Y
implies thata 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
andX rdfs:subClassOf Y
implies thata 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.
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:
the containing RDF document
a set of RDF statements (using the RDF reification mechanism)
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.
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">[PIC]
<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>
...
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).
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.
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 Use 1.1.1 Catalog is represented as encoding schemes for The instance should have an Use RDF datatypes? |
Use repeated properties for |
<rdf:Descriptionor <rdf:Description> |
1.2 |
Use |
Do not repeat. |
<dc:title> |
1.3 |
Use As values, use instances of Use RDF datatypes? |
Use repeated properties. |
<dc:language> |
1.4 |
Use |
Use repeated properties for separate descriptions. |
<dc:description> |
1.5 |
Use |
Use repeated properties for separate keywords. |
<dc:subject> |
1.6 |
Use As values, use instances of:
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> |
1.7 |
Use As values, use instances of For LOM restricted vocabulary, use the instances The property |
Do not repeat. |
<lom-gen:structure |
1.8 |
Use As values, use instances of For LOM restricted vocabulary, use the values
|
Do not repeat. |
<lom-gen:aggregationLevel |
LOM element |
Usage guidelines |
Ordering representation |
Example |
2.1 |
Use |
Do not repeat. |
<lom-life:version> |
2.2 |
Use As values, use instances of For LOM restricted vocabulary, use the values: |
Do not repeat. |
<lom-life:status |
2.3 |
There are three possibilities:
The contributing entity should be a resource of type For LOM restricted vocabulary for the contribution role,
use one of the following The LOM "publisher" and "author" roles map to the Dublin Core
"publisher" and "creator" roles, respectively, while the LOM "unknown"
role corresponds to using |
Use repeated properties. For multiple entities within one
contribute element, use |
<dc:creator> |
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 |
Use exactly as 1.1 Identifier. |
See 1.1 Identifier |
<rdf:Description or <rdf:Description |
3.2 |
Use exactly as 2.3 Contribute Use only the roles Remove all cruft? |
Use repeated properties. Group contributions just as in 2.3 Contribute. |
|
3.4 |
Use As values, use instances of |
Use repeated properties. |
<lom-meta:metadataScheme |
3.5 |
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. |
LOM element |
Usage guidelines |
Ordering representation |
Example |
4.1 |
Use As values, use instances of Specifically, do not use Use RDF datatypes? |
Use repeated properties. |
<dc:format> |
4.2 |
Use As values, use instances of Use RDF datatypes? |
Do not repeat. |
<dcterms:extent> |
4.3 |
Use |
Use only |
<lom-tech:location |
4.4 |
Use a For LOM restricted vocabulary for the requirement type,
use: For LOM restricted vocabulary for the required technology,
use instances of: |
Use repeated properties for separate (AND) requirements. Use |
<lom-tech:operatingSystem> |
4.5 |
Use |
Do not repeat. |
<lom-tech:installationRemarks xml:lang="en"> |
4.6 |
Use |
Do not repeat. |
<lom-tech:otherPlatformRequirements xml:lang="en"> |
4.7 |
Use
|
Do not repeat. |
<dcterms:extent> |
LOM element |
Usage guidelines |
Ordering representation |
Example |
5.1 |
Use As values, use instances of lom- For LOM restricted vocabulary, use: The property |
Do not repeat. |
<lom-edu:interactivityType |
5.2 |
Use For LOM restricted vocabulary, use: Note that [DCMITYPE] specifies
another vocabulary that could be useful for this element. The property |
Use repeated properties. This conflicts with LOM, which specifies that this element is ordered. |
<rdf:Description or, using RDF shorthand notation: <lom-edu:Exercise |
5.3 |
Use As values, use instances of For LOM restricted vocabulary, use: |
Do not repeat. |
<lom-edu:interactivityLevel |
5.4 |
Use As values, use instances of For LOM restricted vocabulary, use: |
Do not repeat. |
<lom-edu:semanticDensity |
5.5 |
Use As values, use instances of For LOM restricted vocabulary, use: The property |
Use |
<lom-edu:intendedEndUserRole |
5.6 |
Use For LOM restricted vocabulary, use: The property This property might be replaced by |
Use repeated properties. |
<lom-edu:context |
5.7 |
Use As values, use instances of Use RDF datatypes? |
For distinct age ranges, use separate properties. |
<dcterms:audience> |
5.8 |
Use For LOM restricted vocabulary, use: |
Do not repeat. |
<lom-edu:difficulty |
5.9 |
Use As values, use instances of type |
Do not repeat. |
<lom-edu:typicalLearningTime> |
5.10 Description |
Use |
Do not repeat. |
<lom-edu:description> |
5.11 |
Use Use RDF datatypes? |
Use repeated properties. |
<lom-edu:language> |
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 |
Use |
Do not repeat. |
<lom-rights:cost |
6.2 |
Use |
Do not repeat. |
<lom-rights:copyrightAndOtherRestrictions |
6.3 |
Use |
Do not repeat. |
<dc:rights> |
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 |
Use an
|
Use repeated properties. |
<dcterms:hasPart |
LOM element |
Usage guidelines |
Ordering representation |
Example |
8 |
Use As values, use instances of |
Use repeated properties. Use only one |
<lom-ann:annotation> |
LOM element |
Usage guidelines |
Ordering representation |
Example |
9 |
Use an
This property should point to a taxon in a taxonomy
hierarchy. Such an hierarchy is an instance of The property |
Use repeated properties. |
<dc:subject <lom-cls:accessibilityRestrictions |
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 Each such taxon can be an instance of one of the pre-defined
classes Each such taxon must have an Use subTaxon, and then taxon only on root level? |
|
In a separate file ( <lom-cls:Taxonomy rdf:ID="MeSH"> |