Title:
|
DC-TEXT: A Text Syntax for Dublin Core Metadata |
Creator:
|
Pete Johnston
|
Date Issued:
|
2006-01-13
|
Identifier:
|
|
Replaces:
|
Not applicable
|
Is Replaced By:
|
|
Latest Version:
|
|
Description of Document: | This document specifies a Text Syntax for representing Dublin Core metadata description sets. |
|
This document specifies a Text Syntax for representing DC metadata description sets in XML. The format is referred to as "DC-TEXT"
The DCMI Abstract Model [DCMIAM] describes the components which make up DC metadata description sets and the relationships between them. A plain text format for serialisation of such description sets is useful as a means of presenting examples in a way which highlights the constructs of the Abstract Model, and also as a means of comparing the information represented in other formats such as DC-XML, RDF/XML and XHTML/HTML.
According to the DCMI Abstract Model [DCMIAM]:
a description set is made up of one or more descriptions
a description is made up of
a statement is made up of
exactly one property URI and
zero or one references to a value in the form of a value URI
zero or more representations of a value, each in the form of a value representation
zero or one vocabulary encoding scheme URI
a value representation is either
a value string may be associated with a value string language
a value string may be associated with a syntax encoding scheme URI
a value may be the subject of a related description
A DC-TEXT document is a sequence of Unicode characters encoded in UTF-8 defined by the grammar below. It is specified by means of the version of Extended BNF used in XML 1.0 (Third Edition) [XML]
The following productions are borrowed from Turtle [TURTLE]:
[18] | comment | ::= | '#' ( [^#xA#xD] )* |
[19] | ws | ::= | #x9 | #xA | #xD | #x20 |
[20] | qname | ::= | prefixName? ':' name? |
[21] | uriref | ::= | '<' relativeURI '>' |
[22] | language | ::= | [a-z]+ ('-' [a-z0-9]+ )* |
[23] | nameStartChar | ::= | [A-Z] | "_" | [a-z] | [#x00C0-#x00D6] | [#x00D8-#x00F6] | [#x00F8-#x02FF] | [#x0370-#x037D] | [#x037F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF] |
[24] | nameChar | ::= | nameStartChar | '-' | [0-9] | #x00B7 | [#x0300-#x036F] | [#x203F-#x2040] |
[25] | name | ::= | nameStartChar nameChar* |
[26] | prefixName | ::= | ( nameStartChar - '_' ) nameChar* |
[27] | relativeURI | ::= | ucharacter* |
[28] | quotedString | ::= | string | longString |
[29] | string | ::= | #x22 scharacter* #x22 |
[30] | longString | ::= | #x22 #x22 #x22 lcharacter* #x22 #x22 #x22 |
[31] | character | ::= | '\u' hex hex hex hex | '\U' hex hex hex hex hex hex hex hex | '\\' | [#x20-#x5B] | [#x5D-#x10FFFF] See String Escapes for full details. |
[32] | echaracter | ::= | character | '\t' | '\n' | '\r' See String Escapes for full details. |
[33] | hex | ::= | [#x30-#x39] | [#x41-#x46] hexadecimal digit (0-9, uppercase A-F) |
[34] | ucharacter | ::= | ( character - #x3E ) | '\>' |
[35] | scharacter | ::= | ( echaracter - #x22 ) | '\"' |
[36] | lcharacter | ::= | echaracter | '\"' | #x9 | #xA | #xD |
The DCMI Abstract Model uses URIs to refer to resources. In the DC-TEXT syntax, URIs may be written in full or may be represented as QNames
. A QName
is made up of two parts, a prefix
and a name
, seprated by a colon (":"). In DC-TEXT, wherever a QName
is used, it is used to represent a URI. The URI represented by the QName is determined by appending the name part of the QName to the URI with which the prefix is associated in a namespace declaration.
Note that the limitations on the characters which can occur in a name mean that there are URIs that can not be expressed as QNames.
The first example is of a description set containing a single description with a single simple statement using a value string to represent the value:
DescriptionSet( Description( Resource URI( <http://example.org/pages/home> ) Statement( Property URI( <http://purl.org/dc/elements/1.1/title> ) Value String( "PeteJ"s Home Page" ) ) ) ) |
Example 1: Value Strings
Using the QName mechanism to abbreviate the resource URI and the property URI, the same description set might be encoded as follows.
@prefix page: <http://example.org/pages/> . @prefix dc: <http://purl.org/dc/elements/1.1/> . DescriptionSet( Description( Resource URI( page:home ) Statement( Property URI( dc:title ) Value String( "PeteJ"s Home Page" ) ) ) ) |
Example 2: QNames
The value string may be associated with a language tag:
@prefix page: <http://example.org/pages/> . @prefix dc: <http://purl.org/dc/elements/1.1/> . DescriptionSet( Description( Resource URI( page:home ) Statement( Property URI( dc:title ) Value String( "PeteJ"s Home Page" Language(en-GB) ) ) ) ) |
Example 3: Language Tags
A statement may include multiple value strings to represent the value:
@prefix page: <http://example.org/pages/> . @prefix dc: <http://purl.org/dc/elements/1.1/> . DescriptionSet( Description( Resource URI( page:home ) Statement( Property URI( dc:title ) Value String( "PeteJ"s Home Page" Language(en-GB) ) Value String( "El Home Page de PeteJ" Language(es-ES) ) ) ) ) |
Example 4: Multiple Value Strings
A statement may include a value URI to identify the value:
@prefix page: <http://example.org/pages/> . @prefix person: <http://example.org/persons/> . @prefix dc: <http://purl.org/dc/elements/1.1/> . DescriptionSet( Description( Resource URI( page:home ) Statement( Property URI( dc:title ) Value String( "PeteJ"s Home Page" Language(en-GB) ) Value String( "El Home Page de PeteJ" Language(es-ES) ) ) Statement( Property URI( dc:creator ) Value URI ( person:PeteJ ) ) ) ) |
Example 5: Value URIs
A statement may include a vocabulary encoding scheme URI:
@prefix page: <http://example.org/pages/> . @prefix person: <http://example.org/persons/> . @prefix dc: <http://purl.org/dc/elements/1.1/> . @prefix dcterms: <http://purl.org/dc/terms/> . DescriptionSet( Description( Resource URI( page:home ) Statement( Property URI( dc:title ) Value String( "PeteJ"s Home Page" Language(en-GB) ) Value String( "El Home Page de PeteJ" Language(es-ES) ) ) Statement( Property URI( dc:creator ) Value URI ( person:PeteJ ) ) Statement( Property URI( dc:subject ) Vocabulary Encoding Scheme URI ( dcterms:LCSH ) Value String ( "Information technology") ) ) ) |
Example 6: Vocabulary Encoding Scheme URIs
A value string may be associated with a syntax encoding scheme URI:
@prefix page: <http://example.org/pages/> . @prefix person: <http://example.org/persons/> . @prefix dc: <http://purl.org/dc/elements/1.1/> . @prefix dcterms: <http://purl.org/dc/terms/> . @prefix xs: <http://www.w3.org/2001/XMLSchema#> . DescriptionSet( Description( Resource URI( page:home ) Statement( Property URI( dc:title ) Value String( "PeteJ"s Home Page" Language(en-GB) ) Value String( "El Home Page de PeteJ" Language(es-ES) ) ) Statement( Property URI( dc:creator ) Value URI ( person:PeteJ ) ) Statement( Property URI( dc:subject ) Vocabulary Encoding Scheme URI( dcterms:LCSH ) Value String ( "Information technology" ) ) Statement( Property URI( dcterms:modified ) Value String( "2006-02-14" Syntax Encoding Scheme URI( xs:date ) ) ) ) |
Example 7: Syntax Encoding Scheme URIs
A description set may contain multiple descriptions
@prefix page: <http://example.org/pages/> . @prefix dc: <http://purl.org/dc/elements/1.1/> . DescriptionSet( Description( Resource URI( page:home ) Statement( Property URI( dc:title ) Value String( "PeteJ"s Home Page" ) ) ) Description( Resource URI( page:althome ) Statement( Property URI( dc:title ) Value String( "PeteJ"s Alternative Home Page" ) ) ) ) |
Example 8: Multiple Descriptions
A description may be the description of a resource which is a value in a statement in another description within the description set. If the resource has been assigned a URI, then that URI appears as a value URI in the statements where the resource is the value and as a resource URI in the description of that resource.
@prefix page: <http://example.org/pages/> . @prefix person: <http://example.org/persons/> . @prefix dc: <http://purl.org/dc/elements/1.1/> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . DescriptionSet( Description( Resource URI( page:home ) Statement( Property URI( dc:title ) Value String( "PeteJ"s Home Page" ) ) Statement( Property URI( dc:creator ) Value URI ( person:PeteJ ) ) ) Description( Resource URI( page:althome ) Statement( Property URI( dc:title ) Value String( "PeteJ"s Alternative Home Page" ) ) Statement( Property URI( dc:creator ) Value URI ( person:PeteJ ) ) ) Description( Resource URI( person:PeteJ ) Statement( Property URI( foaf:name ) Value String ( "Pete J" ) ) ) ) |
Example 9: Multiple Related Descriptions
In some cases it may be that the resources do not have URIs assigned, but such a resource may still be a value in a ststement, and the subject of another description. In DC-TEXT, the association between the value of one statement and the description of that resource is made by labelling the description using a DescriptionId component. The value of the DescriptionId component may then be cited using the DescriptionRef component of one or more statements in the same description set.
@prefix page: <http://example.org/pages/> . @prefix person: <http://example.org/persons/> . @prefix dc: <http://purl.org/dc/elements/1.1/> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . DescriptionSet( Description( Resource URI( page:home ) Statement( Property URI( dc:title ) Value String( "PeteJ"s Home Page" ) ) Statement( Property URI( dc:creator ) Description Ref ( descPeteJ ) ) ) Description( Resource URI( page:althome ) Statement( Property URI( dc:title ) Value String( "PeteJ"s Alternative Home Page" ) ) Statement( Property URI( dc:creator ) Description Ref ( descPeteJ ) ) ) Description( Description Id ( descPeteJ ) Statement( Property URI( foaf:name ) Value String ( "Pete J" ) ) ) ) |
Example 10: Multiple Related Descriptions
[DCMIAM]
DCMI Abstract Model
http://dublincore.org/documents/abstract-model/
[XML]
Extensible Markup Language (XML) 1.0 (Third Edition). W3C Recommendation 04 February 2004.
http://www.w3.org/TR/REC-xml
[XML]
XML Schema Part 0: Primer Second Edition. W3C Recommendation 28 October 2004.
http://www.w3.org/TR/xmlschema-0/
[TURTLE]