
| The Metadata Community — Supporting Innovation in Metadata Design, Implementation & Best Practices | |||||||
|
|||||||
Global navigation options: |
|||||||
| Creator: | Mikael
Nilsson KMR Group, NADA, KTH (Royal Institute of Technology), Sweden Andy Powell Eduserv Foundation, UK Pete Johnston Eduserv Foundation, UK Ambjörn Naeve KMR Group, NADA, KTH (Royal Institute of Technology), Sweden |
|---|---|
| Date Issued: | 2008-01-14 |
| Identifier: | http://dublincore.org/documents/2008/01/14/dc-rdf/ |
| Replaces: | http://dublincore.org/documents/2007/06/04/dc-rdf/ |
| Replaces: | http://dublincore.org/documents/2002/07/31/dcmes-xml/ |
| Replaces: | http://dublincore.org/documents/2002/05/15/dcq-rdf-xml/ |
| Latest Version: | http://dublincore.org/documents/dc-rdf/ |
| Status of Document: | This is a DCMI Recommendation. |
| Description of Document: | This document provides recommendations for expressing Dublin Core metadata using RDF, the Resource Description Framework. |
References
Acknowledgements
Appendix A: Examples
This document provides recommendations for expressing DC metadata using RDF, the Resource Description Framework. It does this by describing how the features of the DCMI Abstract Model [ABSTRACT-MODEL] are represented using the RDF model (or abstract syntax), as defined by the RDF Concepts and Abstract Syntax specification [RDF-CONCEPTS]. It does not rely on any specific RDF syntax encoding, though examples using the RDF/XML Syntax Specification [RDF-SYNTAX-GRAMMAR] are provided in Appendix A. This allows Dublin Core metadata to be encoded using this specification in any RDF encoding syntax or other RDF representation system, such as RDF databases.
This Recommendation replaces the following DCMI document:
The document "Notes on DCMI specifications for Dublin Core metadata in RDF" [DC-RDF-NOTES] describes in more detail how this draft relates to the earlier specifications.
Many of the examples in this document make use of DCMI metadata terms [DCMI-TERMS]. See also the DCMI RDF Schemas for the DCMI terms [DCMI-SCHEMAS].
An RDF graph is a set of RDF triples
An RDF triple has three components:
an RDF subject, which is an RDF URI reference or a blank RDF node
an RDF predicate, which is an RDF URI reference
an RDF object, which is an RDF URI reference, a blank RDF node or an RDF literal
An RDF literal can be of two kinds:
an RDF plain literal is a character string with an optional associated language tag describing the language of the character string
We will use diagrams to illustrate RDF graphs (for namespace abbreviations, see Section 3). A simple triple may look like in the following figure:
![]() |
| The structure of an RDF triple. In this figure, the RDF object is an RDF typed literal |
While a graph consisting of three triples may look like the following:
![]() |
| An RDF graph consisting of three triples, connected via a blank RDF node. |
For further information on RDF, see the RDF Concepts and Abstract Syntax specification [RDF-CONCEPTS], the RDF Vocabulary Description Language [RDF-SCHEMA], and http://www.w3.org/RDF/.
| Namespace abbreviation | Full namespace URI |
|---|---|
dc |
http://purl.org/dc/elements/1.1/ |
dcterms |
http://purl.org/dc/terms/ |
dcam |
http://purl.org/dc/dcam/ |
rdf |
http://www.w3.org/1999/02/22-rdf-syntax-ns# |
xsd |
http://www.w3.org/2001/XMLSchema# |
ex |
http://www.example.org/ns# (an example
namespace) |
See also the DCMI RDF Schemas for the DCMI terms [DCMI-SCHEMAS].
This section describes how each of the constructs in the DCAM are represented in RDF. The RDF notions used here are defined in the RDF Concepts and Abstract Syntax specification [RDF-CONCEPTS] and the RDF Vocabulary Description Language [RDF-SCHEMA].
DCAM descriptions and resources are represented in the following way:
A DCAM statement is represented using an RDF triple comprising:
The following diagram illustrates the main features of the RDF representation of non-literal value surrogates.
| DC-TEXT representation | RDF graph |
|---|---|
@prefix dcterms: <http://purl.org/dc/terms/> . |
![]() |
| The
representation of the DCAM
constructs in the case of a non-literal value surrogate. The notation "@en" represents an RDF language tag, while "^^ex:SubjectEncoding" represents an RDF Datatype. |
|
A DCAM value URI is represented using the RDF URI Reference of the value RDF node. If no value URI is given, the value RDF node is a blank node.
A DCAM vocabulary encoding scheme URI is represented using an RDF triple comprising:
an RDF subject that is the value RDF node.
an RDF predicate that is
the RDF URI reference dcam:memberOf
an RDF object with a corresponding RDF URI Reference being the DCAM vocabulary encoding scheme URI
A DCAM value string is represented using an RDF triple comprising:
an RDF subject that is the value RDF node
an RDF
predicate that is the RDF URI reference rdf:value
an RDF
object that is an RDF Literal node
(either an RDF plain
literal or RDF
typed literal), containing
the DCAM value string.
A DCAM value string language is represented using a language tag associated with a RDF plain literal occurring as the RDF object of this RDF triple. The language tag is constructed as defined by RFC-3066, normalized to lowercase.
A DCAM syntax encoding scheme URI is represented using the RDF datatype URI associated with a RDF typed literal occurring as the RDF object of this RDF triple.
The following diagrams illustrate the main features of the RDF representation of literal value surrogates.
| DC-TEXT representation | RDF graph |
|---|---|
@prefix dcterms: <http://purl.org/dc/terms/> . |
![]() |
| The
representation of the DCAM
constructs in the case of a literal value surrogate with a
language tag. The notation "@en" represents an RDF language tag. |
|
The following diagram illustrates the second case, using RDF typed literals:
| DC-TEXT representation | RDF graph |
|---|---|
@prefix xsd: <http://www.w3.org/2001/XMLSchema |
![]() |
| The
representation of the DCAM
constructs in the case of a literal value surrogate with a
Syntax Encoding Scheme URI. The notation "^^xsd:int" represents an RDF Datatype. |
|
A DCAM description set is represented as
an RDF graph
that includes one or more DCAM descriptions as described above.
A DCAM value can be further described in a separate DCAM description
within the same DCAM description set.
This is represented in RDF by letting the value RDF node be the root of an
RDF
graph representing any DCAM statements in the DCAM description of the
value. Thus, the value RDF node
will be the RDF subject of a set of triples representing the DCAM
description of the value.
The RDF expression of the DCMI Abstract Model has a special status among the DCMI encoding specifications. As the semantics of the notions DCMI Abstract Model is based on the semantics of the corresponding notions in RDF (as defined by [RDF-SEMANTICS]), it is of fundamental importance that the RDF expression preserves any semantics of the DCAM. Also, any valid inferences that can be made using RDF semantics need to be valid when interpreted in terms of the DCMI Abstract Model. These requirements have not yet been formalized, but are thought to be reasonable and relatively straightforward. Among other things, formulating them would require defining a reverse mapping from RDF to the DCMI Abstract Model.
Using the range of the corresponding property. For example, if
the range of the property ex:owner is ex:Person,
it can be inferred that all values of the ex:owner
property are of type ex:Person.
Using an explicit rdf:type statement on the value.
For example, if a resource has the property rdf:type with
the value ex:Person, the value can be inferred to be of
the type ex:Person.
ex:Book,
even though this is not part of the metadata itself.It
is recommended that RDF applications use explicit rdf:type
triples, even if that means creating a separate DCAM description of
the value.
The property dcterms:type has semantics very similar
to rdf:type. At the time of writing, the precise
relationship between those properties remains undecided.
It is
recommended that RDF applications implementing this
specification primarily use and understand rdf:type in
place of dcterms:type when
expressing Dublin Core metadata in RDF, as most RDF processors come
with
built-in knowledge of rdf:type.
Thanks to Tom Baker, the members of the DC Usage Board and the members of the DC Architecture Working Group for their comments on previous versions of this document.
The following examples use the DC-TEXT syntax [DC-TEXT] for describing examples of Dublin Core metadata. The corresponding RDF graph is then presented, using the RDF/XML syntax [RDF-SYNTAX-GRAMMAR]. Familiarity with the "striped" RDF/XML syntax is assumed. The W3C RDF Validator [RDF-VALIDATOR] service may be used to convert these RDF/XML samples to triples and graphs.
| Description | DC-TEXT representation | RDF/XML representation |
|---|---|---|
| A
description with a single statement, which uses a
value URI to identify the value. "The resource http://example.org/123 has the subject
identified by the URI http://example.org/taxonomy/D003.53." |
@prefix dcterms: <http://purl.org/dc/terms/> . |
<rdf:RDF xmlns:rdf=" |
| A
description with a single statement, which uses a
single value string and a vocabulary encoding scheme to describe the
value. "The resource http://example.org/123 has the subject
named 'Ornitology' from the Vocabulary Encoding Scheme http://example.org/taxonomy/MyVocab" |
@prefix dcterms: <http://purl.org/dc/terms/> . |
<rdf:RDF xmlns:rdf=" |
| A
description with a single statement, which uses a language-tagged
literal value. "The resource http://example.org/123 has the title
'Learning Biology' in english" |
@prefix dcterms: <http://purl.org/dc/terms/> . |
<rdf:RDF xmlns:rdf=" |
| A
description with a single statement, which uses a literal value with a
Syntax encoding scheme. "The resource http://example.org/person123 has the an age
of 43" |
@prefix dcterms: <http://purl.org/dc/terms/> . |
<rdf:RDF xmlns:rdf=" |
| A
description with a single statement, which uses two
value strings, one language tagged and one using a syntax encoding
scheme, a vocabulary encoding scheme for the value and a value URI
identifying the value. "The resource http://example.org/123 has the subject from
the Vocabulary Encoding Scheme http://example.org/taxonomy/MyVocab
named 'Biology' in English and 'Biologi' in Swedish, which can be
represented using the string "EA32" according to the Syntax Encoding
Scheme http://example.org/taxonomy/SubjectEncoding, and
which is idenfified by the URI http://example.org/subject32" |
@prefix dcterms: <http://purl.org/dc/terms/> . |
<rdf:RDF xmlns:rdf=" |
| A
description with a single statement, which uses a
single value string and a value URI,
together with a description of the value. The
description of the value has two statements, each of which only has a
value URI. "The resource http://example.org/123 has the creator
identified by http://example.org/person45, represented by
the string "John Smith". The resource http://example.org/person45
is a person who has the phone number identified by tel:+358-555-1234567
(see RFC 3966)." |
@prefix dcterms: <http://purl.org/dc/terms/> . |
<rdf:RDF xmlns:rdf=" |
| A
description with a single statement, which uses a
value URI but no described resource URI. "The described resource has the subject identified by the URI http://example.org/taxonomy/D003.53." |
@prefix dcterms: <http://purl.org/dc/terms/> . |
<rdf:RDF xmlns:rdf=" |
| A
description with a single statement, which uses a
value string, but no value URI. The description of the value has no
described resource URI, but has two
statements, both of which use a
value URI. "The resource http://example.org/123 has a creator
represented by the string "John Smith". The creator is a person who
has the phone number identified by tel:+358-555-1234567
(see RFC 3966)." |
@prefix dcterms: <http://purl.org/dc/terms/> . |
<rdf:RDF xmlns:rdf=" |
Copyright © 1995-2016 DCMI. All Rights Reserved.