Expressing Dublin Core™ metadata using the Resource Description Framework (RDF)
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: | 2007-04-02 |
Identifier: | http://dublincore.org/specifications/dublin-core/dc-rdf/2007-04-02/ |
Replaces: | http://dublincore.org/specifications/dublin-core/dc-rdf/2006-05-29/ |
Is Replaced By: | http://dublincore.org/specifications/dublin-core/dc-rdf/2007-06-04/ |
Latest Version: | http://dublincore.org/specifications/dublin-core/dc-rdf/ |
Status of Document: | This is a DCMI Proposed Recommendation. |
Description of Document: | This document provides draft recommendations for expressing Dublin Core™ metadata using RDF, the Resource Description Framework. |
Table of contents
- Introduction
- Summary of the RDF conceptual model
- Namespace abbreviations
- Representing DCAM constructs using the RDF Model
- Using domains and ranges
References> Acknowledgements> Appendix A: Examples
1. Introduction
This document provides draft 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 will allow Dublin Core™ metadata to be encoded using this specification in any RDF encoding syntax or other RDF representation system, such as RDF databases.
Subject to public review and discussion in the context of DCMI process, this Working Draft is intended eventually to replace two legacy DCMI documents:
- Expressing Simple Dublin Core™ in RDF/XML [DCMES-XML], a DCMI Recommendation from July 2002;
- Expressing Qualified Dublin Core™ in RDF / XML [DCQ-RDF-XML], a DCMI Proposed Recommendation from May 2002.
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. DCMI is seeking comments from affected communities, and the content of any new DCMI Recommendation will depend on feedback received from these communities.
2. Summary of the RDF conceptual model
The RDF conceptual model is specified in the RDF Concepts and Abstract Syntax specification [RDF-CONCEPTS]. It is a relatively simple model, consisting of the following fundamentals:
-
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
-
an RDF typed literal is a character string with an associated RDF datatype URI. An RDF datatype defines the syntax and semantics of a set of character strings that represent data such as booleans, integers, dates, etc.
These RDF triples are connected into RDF graphs, so that a non-literal RDF object of one RDF triple may be the RDF subject of another triple.
-
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/.
3. Namespace abbreviations
The following namespace abbreviations will be used in this document:
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# |
rdfs |
http://www.w3.org/2000/01/rdf-schema# |
xsd |
http://www.w3.org/2001/XMLSchema# |
ex |
http://www.example.org/ns# (an example
namespace)
|
4. Representing DCAM constructs using the RDF Model
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].
Descriptions and resources
DCAM descriptions and resources are represented in the following way:
- A DCAM description is represented using an RDF graph originating from a single RDF subject.
- A DCAM resourceis represented by the RDF subject at the root of this RDF graph.
- If a DCAM described resource URI is available in the description, it should be used as the RDF URI reference of the RDF subject at the root of the RDF graph. Otherwise, the RDF subject should be a blank RDF node.
Statements, properties and values
A DCAM statement is represented using an RDF triple comprising:
- an RDF subject that represents the DCAM resource
- an RDF predicate that is the DCAM property URI
- an RDF object that corresponds to the DCAM value surrogate. This RDF node will be referred to below as the value RDF node.
Non-literal value surrogates
When the DCAM value surrogate is a non-literal value surrogate, the value RDF node is an RDF URI refence or a blank RDF node, with the characteristics given below.
The following diagram illustrates the main features of the RDF representation of non-literal value surrogates.
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. |
Value URIs
A DCAM value URI is represented using the RDF URI Reference of the value RDF node. If not value URI is given, the value RDF node is a blank node.
Vocabulary Encoding Scheme URIs
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 isthe RDF URI reference
dcam:memberOf
-
an RDF object with a corresponding RDF URI Reference being the DCAM vocabulary encoding scheme URI
Value Strings, Value String Languages and Syntax Encoding Scheme URIs
A DCAM value string is represented using an RDF triplecomprising:
-
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.
Literal value surrogates
When the DCAM value surrogate is a literal value surrogate, the value RDF node is an RDF literal node, with exactly the same chararacteristics as in the case of DCAM value strings above.
The following diagrams illustrate the main features of the RDF representation of literal value surrogates.
DC-TEXT representation | RDF graph |
---|---|
@prefix rdfs: < |
|
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 types 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. |
Description sets
A DCAM description set is represented as an RDF graphthat includes one or more DCAM descriptions as described above.
Describing values
A separate DCAM description of a value within the same DCAM description set is represented using RDF triples originating in the value RDF node. The value RDF node will thus be the root of an RDF graph representing any DCAM statements in the DCAM related description.
5. Some notes on semantics
RDF semantics and the DCMI Abstract Model
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.
Value Classes
The class or type of a value can be inferred in several ways:
-
Using the range of the corresponding property.
-
Using an explicit
rdf:type
statement on the value. -
Using knowledge from the application context
It is recommended that RDF applications use explicit rdf:type statements on values, even though that means creating a separate description of the value, in the terms of the DCMI Abstract Model.
The property dcterms:type
is a sub-property of rdf:type
. However, it is recommended that applications implementing this specification primarily use and understand rdf:type
, as it cannot be assumed that all RDF processors will understand the sub-property relationship, while most RDF processors do come with built-in knowledge of rdf:type
.
References
- ABSTRACT-MODEL
- DCMI Abstract Model
<http://dublincore.org/specifications/dublin-core/abstract-model/> - DC-RDF-NOTES
- Notes on DCMI specifications for Dublin Core™ metadata in RDF
<http://dublincore.org/specifications/dublin-core/dc-rdf-notes/2006-05-29/> - DCMES-XML
- Expressing Simple Dublin Core™ in RDF/XML
<http://dublincore.org/specifications/dublin-core/dcmes-xml/> - DCQ-RDF-XML
- Expressing Qualified Dublin Core™ in RDF / XML
<http://dublincore.org/specifications/dublin-core/dcq-rdf-xml/> - DC-TEXT
- DC-TEXT: A Text Syntax for Dublin Core™ Metadata
<http://dublincore.org/architecturewiki/DCText/2006-05-24> - RDF-CONCEPTS
- Resource Description Framework (RDF): Concepts and Abstract
Syntax
<http://www.w3.org/TR/rdf-concepts/> - RDF-SCHEMA
- RDF Vocabulary Description Language 1.0: RDF Schema
<http://www.w3.org/TR/rdf-schema/> - RDF-VALIDATOR
- W3C RDF Validation Service
- <http://www.w3.org/RDF/Validator/>
- RDF-SYNTAX-GRAMMAR
- RDF/XML Syntax Specification (Revised)
<http://www.w3.org/TR/rdf-syntax-grammar/> - RDF-SEMANTICS
- RDF Semantics
<http://www.w3.org/TR/rdf-mt/> -
Acknowledgements
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.
Appendix A: Examples
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. |
@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. |
@prefix dcterms: <http://purl.org/dc/terms/> . |
<rdf:RDF xmlns:rdf=" |
A description with a single statement, which uses a language-tagged literal value. |
@prefix rdfs: < |
<rdf:RDF xmlns:rdf=" |
A description with a single statement, which uses a literal value with a Syntax encoding scheme. |
@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. |
@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. |
@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. |
@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. |
@prefix dcterms: <http://purl.org/dc/terms/> . |
<rdf:RDF xmlns:rdf=" |
2007-05-22: corrected "Replaces" link.