W3C

Dublin Core to PROV Mapping

W3C Working Group Note 30 April 2013

This version:
http://www.w3.org/TR/2013/NOTE-prov-dc-20130430/
Latest published version:
http://www.w3.org/TR/prov-dc/
Previous version:
http://www.w3.org/TR/2013/WD-prov-dc-20130312/
Editors:
Daniel Garijo, Ontology Engineering Group, Universidad Politécnica de Madrid, Spain
Kai Eckert, University of Mannheim, Germany
Contributors:
Simon Miles, King's College London, UK
Craig M. Trim, IBM, USA
Michael Panzer, OCLC Online Computer Library Center, USA

Abstract

This document describes a partial mapping from Dublin Core Terms [DCTERMS] to the PROV-O OWL2 ontology [PROV-O]. A substantial number of terms in the Dublin Core vocabulary provide information about the provenance of a resource. The mapping is expressed partly by direct RDFS/OWL mappings between properties and classes [PROV-DC-DIRECT-MAPPINGS].

Some of the direct mappings can be refined, translating single Dublin Core Terms into an extended representation of the provenance. Therefore, refinements of classes defined in PROV are needed to represent specific Dublin Core activities and roles [PROV-DC-REFINEMENTS].

The PROV Document Overview [PROV-OVERVIEW] describes the overall state of PROV, and should be read before other PROV documents.

Status of This Document

This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.

PROV Family of Documents

This document is part of the PROV family of documents, a set of documents defining various aspects that are necessary to achieve the vision of inter-operable interchange of provenance information in heterogeneous environments such as the Web. These documents are listed below. Please consult the [PROV-OVERVIEW] for a guide to reading these documents.

Implementations Encouraged

The Provenance Working Group encourages implementation of the material defined in this document. Although work on this document by the Provenance Working Group is complete, errors may be recorded in the errata or and these may be addressed in future revisions.

Please Send Comments

This document was published by the Provenance Working Group as a Working Group Note. If you wish to make comments regarding this document, please send them to [email protected] (subscribe, archives). All comments are welcome.

Publication as a Working Group Note does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.

This document was produced by a group operating under the 5 February 2004 W3C Patent Policy. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.

Table of Contents

1. Introduction

The Dublin Core Metadata Initiative (DCMI) [DCMI] provides a core metadata vocabulary (commonly referred to as Dublin Core) for simple and generic resource descriptions [DCTERMS]. The original Dublin Core Metadata Element Set was created in 1995 and contains fifteen broadly defined properties that are still in use. Properties identified using the original namespace URI http://purl.org/dc/elements/1.1/ have no specified ranges, meaning that arbitrary values can be used as objects. In order to assign ranges, DCMI replicated the fifteen properties using the namespace URI http://purl.org/dc/terms/. Additional properties and classes beyond the original fifteen were coined using this namespace URI. In this document, properties and classes using the /terms/ namespace URI are referred to, simply, as DC Terms.

This document defines a mapping between the DC Terms and the PROV Ontology (PROV-O) [PROV-O], which defines an OWL2 Ontology encoding the PROV Data Model [PROV-DM]. The PROV vocabulary and data model are focused on expressing actions and resource states in a provenance chain rather than on describing resources in a general sense. The Dublin Core vocabulary is focused on describing resources in a general sense, but a substantial number of terms in the vocabulary provide information related to the provenance of the resource. Mapping statements using Dublin Core into statements using PROV makes the contained provenance information explicit. This mapping has been designed for several purposes:

  1. Bridge the gap between the DC and PROV communities, in order to provide valuable insights into the different characteristics of both data models.
  2. Help developers to derive PROV data from the large amount of DC data available on the web, improving interoperability between DC and PROV applications.
  3. Facilitate PROV adoption. Simple DC statements can be used as a starting point for more complex PROV data generation.

1.1 Namespaces URIs

The namespace URIs used in this document can be seen in Table 1:

Table 1: Namespaces URIs used in the document
prefixNamespace IRIUsed for
owl<http://www.w3.org/2002/07/owl#>The OWL vocabulary [OWL2-OVERVIEW].
rdfs<http://www.w3.org/2000/01/rdf-schema#>The RDFS vocabulary[RDFS].
prov<http://www.w3.org/ns/prov#>The PROV vocabulary [PROV-DM].
dct<http://purl.org/dc/terms/>The DCMI /terms/ vocabulary [DCTERMS].
ex<http://example.org>Application-dependent URIs. Used in the examples of the document.

1.2 Structure of this document

Section 2 explains the main considerations to take into account in order to fully understand the mapping:

Section 3 describes the mapping between DC and PROV. The mapping is divided in different sections, depending on the level of complexity that different users might be interested in when translating their DC data to PROV:

2. Preliminaries

This section explains two main particular considerations that should be taken into account regarding the mapping:

2.1 Provenance in Dublin Core

Many DC terms can be used to describe provenance information about a resource: when it was affected in the past, who affected it and how it was affected. The rest of the DCMI terms (description metadata), tell us what was affected. Table 2 classifies the DC Terms according to these four categories (what?, who?, when? and how?). Each category corresponds to the question it answers regarding the description or provenance of a given resource. The classification is by necessity somewhat minimalistic, as it can be argued that some elements placed in the description metadata terms contain provenance information as well, depending on their usage. It is worth mentioning that there is no direct information in DC describing where a resource was affected. The categories are further explained below:

Descriptive Terms (What?): This category contains all the terms describing a resource without referring to its provenance (a total of 25 out of 55 terms). Some examples are the dct:title, dct:abstract, the dct:description of a resource or the dct:format in which the resource can be found.

Agency Terms (Who?): This category contains agent related terms. All properties have dct:Agent as range, i.e., a resource that acts or has the power to act. The dct:contributor, dct:creator, and dct:publisher clearly influence the resource and therefore are important for its origin. This is not immediately clear for the dct:rightsHolder, but as ownership is considered to be important provenance information for many resources, like artworks, it is included in this category.

Date and Time Terms (When?): This category contains date and time related terms. Dates belong to the provenance record of a resource, as they track when something was created (dct:created), modified (dct:modified), published (dct:issued), etc. Two dates can be considered special regarding their relevance for provenance: dct:available and dct:valid. They are different from the other dates as by definition they can represent a date range. Often, the range of availability or validity of a resource is inherent to the resource and known beforehand – consider the validity of a passport or the availability of a limited special offer published on the web. In these cases, there is no action involved that makes the resource invalid or unavailable, it is simply determined by the validity range. On the other hand, if an action is involved, e.g., a resource is declared invalid because a mistake has been found, then it is relevant for its provenance.

Derivation and Licensing Terms (How?): This category contains derivation related terms. When a resource is derived from other resources, the original resource becomes part of the provenance chain of the derived resource. In DC, derivations can be further classified as versions (dct:isVersionOf), format serializations (dct:isFormatOf), replacements (dct:replaces) and sources of information (dct:source). dct:references is a weaker relation (having a reference to a resource does not always mean that the content is based on it), but it can be assumed that a referenced resource influenced the described resource and therefore it is relevant for its provenance. The respective inverse properties do not necessarily contribute to the provenance of the described resource, e.g., a resource is usually not directly affected by being referenced or by being used as a source. However, inverse properties belong to the provenance related terms as they can be used to describe the relations between the resources involved. Finally, licensing (dct:license), rights (dct:rights) and their access (dct:accessRights) are considered part of the provenance of the resource as well, since they restrict and explain how the resource can be used for further derivation.

This leaves one very special term: provenance. This term is defined as a "statement of any changes in ownership and custody of the resource since its creation that are significant for its authenticity, integrity, and interpretation" [DCTERMS], a definition that corresponds to the notion of provenance for artworks. This term can be considered a link between the resource and any provenance statement about the resource, so it is not included in any of the aforementioned categories.

Regarding the classes in DC terms, most of them can be seen as subclasses of prov:Entities (with some exceptions like dct:Agent or dct:ProvenanceStatement). In general, these classes represent types of resources or metadata that can be described with the properties shown in Table 2, thus most of them are included in the "Descriptive Metadata" category. Although the usage of these classes is reduced when compared to the adoption of the DC term properties, we have also included them as part of the mapping. DCMI Type Vocabulary terms have been excluded from the mapping, as they are not part of the core vocabulary (using a different namespace URI: http://purl.org/dc/dcmitype/). A list of the classes can be seen in Table 3.

2.2 Entities in Dublin Core

Consider the example metadata record below (Example 1), where a document (ex:prov-dc-20130312) is described with several DC statements:

Example 1: a simple metadata record in Turtle format [Turtle]:

Example 1
ex:prov-dc-20130312 dct:title "A mapping from Dublin Core...";
                    dct:creator ex:kai, ex:daniel, ex:simon, ex:michael;
                    dct:created "2012-02-28";
                    dct:publisher ex:w3c;
                    dct:issued "2012-02-29";
                    dct:subject ex:dublincore;
                    dct:replaces ex:prov-dc-20121211;
                    dct:format "HTML".
In Example 1, dct:title, dct:subject and dct:format are descriptions of the resource ex:prov-dc-20130312. They do not provide any information on how the resource was created or modified in the past. On the other hand, some statements imply provenance-related information. For example dct:creator implies that the document has been created and refers to an author. Similarly, the existence of the dct:issued date implies that the document has been published. This information is redundantly implied by the dct:publisher statement as well. Finally, dct:replaces relates ex:prov-dc-20130312 to the document ex:prov-dc-20121211, a previous resource representing the mapping.

As a DC metadata record describes the document as a whole, it is not clear how this document relates to the different stages the document underwent until it reached its final state. For example, a document may have a dct:created date and a dct:issued date. According to the PROV ontology, the activity of issuing a document involves two different states of the document: before and after publication. Each of these states correspond to a different prov:specializationOf of the document. Generally, there are two approaches to deal with this issue:

1) Create new instances of entities that are all related to the original document by means of prov:specializationOf. For example, consider the translation of a single dct:publisher statement (as shown on the top of Figure 1): having a publisher implies a "Publish" activity (represented with a blank node), which is related to the ex:publisher agent. The activity must have taken as input the document to be published (:_usedEntity, which is a prov:specializationOf the resource we are describing), and generated the published resource (:_resultingEntity). :_resultingEntity is also a prov:specializationOf the resource ex:prov-dc-20130312, as it describes the document after a particular publication.

A mapping example creating blank nodes for each state of the resource
Figure 1. A mapping example creating blank nodes for each state of the resource. PROV entities are represented with ellipses, activities with rectangles and agents with pentagons. The bold arrow implies how the DC statement (on top of the figure) would be converted to PROV (the graph on the bottom).

2) Adopt the original resource (ex:prov-dc-20130312) as the prov:Entity used and then generated by the Publish activity (:_activity). However, this representation leads to a misinterpretation of the DC statement, as shown in the example of Figure 2. The representation implies that ex:prov-dc-20130312 was generated by _:activity and then used by _:activity afterwards, instead of being used and then being generated by _:activity (PROV entities must exist before being used).

A mapping example conflating blank nodes within the same resource
Figure 2. A mapping example conflating blank nodes within the same resource. The used and generated resources have the same identifier. This example is an invalid translation of the dct:publisher statement.

Since the first option provides a correct interpretation of the DC statements, it has been chosen as the approach for the complex mapping defined in this document. Blank nodes are used for the mapping, although any naming mechanism could be provided if necessary, leaving the conflating of nodes to the cleanup phase.

3. Mapping from Dublin Core to PROV

This section describes the mapping between DC and PROV. The mapping is divided in several subsections:

3.1 Direct mappings

The direct mappings [PROV-DC-DIRECT-MAPPINGS] relate the DC Terms to the PROV binary relationships by using the integration mechanisms of RDF. PROV applications will be able to interoperate with these DC statements (i.e., they will be able to understand DC statements) by applying OWL 2 RL reasoning.

DC, while less complex from a modeling perspective, is more specific about the type of the activity taking place. PROV provides general attribution, and the details about the kind of influence that an activity or an agent had are left to custom refinements of the PROV classes and properties.

Table 4, Table 5, Table 6 and Table 7 provide the detailed mapping of the properties and classes in DC plus the rationale for each term. The rest of the terms can be found in the list of terms left out of the mapping section.

Table 4: Direct mappings (Properties)
DC Term Relation PROV Term Rationale
dct:created rdfs:subPropertyOf prov:generatedAtTime Property used to describe the time of creation of a resource (i.e., the time of its generation). We map it as a subproperty of prov:generatedAtTime because "creation" is one of the many activities that generate an entity (for example, generation includes modification, issue, acceptance, etc.).
dct:creator rdfs:subPropertyOf prov:wasAttributedTo A creator is one of the agents who participated in the creation of a resource. They have the attribution for the outcome of that activity.
dct:contributor rdfs:subPropertyOf prov:wasAttributedTo A contributor is associated with either the creation activity or the updating of the resource. Therefore, he/she has attribution over the outcome of those activities.
dct:dateAccepted rdfs:subPropertyOf prov:generatedAtTime Property used to describe the date when the resource was accepted. dct:dateAccepted is mapped as a subproperty of prov:generatedAtTime because the accepted resource was generated by an "Accept" activity which may have changed it from its previous state.
dct:dateCopyrighted rdfs:subPropertyOf prov:generatedAtTime Property used to describe the date when the resource was copyrighted. dct:dateCopyrighted is mapped as a subproperty of prov:generatedAtTime because the copyrighted resource was generated by a "CopyRight" activity which may have changed it from its previous state.
dct:dateSubmitted rdfs:subPropertyOf prov:generatedAtTime Property used to describe the date when the resource was submitted. dct:dateSubmitted is mapped as a subproperty of prov:generatedAtTime because the submitted resource was generated by a "Submit" activity which may have changed it from its previous state.
dct:hasFormat rdfs:subPropertyOf prov:alternateOf See rationale for dct:isFormatOf (as prov:alternateOf).
dct:isFormatOf rdfs:subPropertyOf prov:alternateOf dct:isFormatOf refers to another resource which is the same but in another format. Thus, the term is mapped to prov:alternateOf.
dct:isFormatOf rdfs:subPropertyOf prov:wasDerivedFrom dct:isFormatOf refers to another "pre-existing" resource which is the same but in another format (according to cdt:hasFormat), implying that the new resource is based on the former.
dct:issued rdfs:subPropertyOf prov:generatedAtTime Property used to describe the date when the resource was issued. dct:issued is mapped as a subproperty of prov:generatedAtTime because the issued resource is an entity itself, which has been generated at a certain time.
dct:modified rdfs:subPropertyOf prov:generatedAtTime Property used to describe the date when the resource was modified. dct:modified is mapped as a subproperty of prov:generatedAtTime because the modified resource was generated by a "Modify" activity that changed it from its previous state.
dct:publisher rdfs:subPropertyOf prov:wasAttributedTo A publisher has the attribution of the published resource after participating in the publishing activity that generated it.
dct:references rdfs:subPropertyOf prov:wasDerivedFrom In PROV, a derivation is defined as "a transformation of an entity into another, an update of an entity resulting in a new one, or the construction of a new entity based on a pre-existing entity". If a resource n1 references another resource o1 then the construction of n1 is based on o1, even if o1 does not influence n1 significantly. Removing the reference to o1 in n1 would lead to the construction of another resource n1', different from n1.
dct:rightsHolder rdfs:subPropertyOf prov:wasAttributedTo The rights holder has the attribution of the license associated to a resource. Thus, we can say that the resource is attributed in part to the rights holder.
dct:source rdfs:subPropertyOf prov:wasDerivedFrom dct:source is defined as a "related resource from which the described resource is derived", which matches the notion of derivation in PROV-DM ("a transformation of an entity in another"). However, prov:wasDerivedFrom also covers broader derivations such as "an update of an entity resulting in a new one" which is not covered by dct:source.
Table 5: Direct mappings (Classes)
DC Term Relation PROV Term Rationale
dct:Agent owl:equivalentClass prov:Agent Both dct:Agent and prov:Agent refer to the same concept: a resource that has the power to act (which then has responsibility for an activity, entity or other agent).
dct:BibliographicResource rdfs:subClassOf prov:Entity A bibliographic resource refers to books, articles, etc., which are concrete PROV entities.
dct:LicenseDocument rdfs:subClassOf prov:Entity Document granting permission to do something regarding a resource. Thus, it is mapped as a type of prov:Entity.
dct:LinguisticSystem rdfs:subClassOf prov:Plan A dct:LinguisticSystem is a system of symbols, sounds, gestures, etc. used in communication. Therefore, the linguistic system defines the plan to follow in order to learn a certain language.
dct:Location owl:equivalentClass prov:Location Both dct:Location and prov:Location define locations as "spatial regions or named places".
dct:MethodOfAccrual rdfs:subClassOf prov:Plan dct:MethodOfAccrual defines the method by which items are added to a collection (i.e., the prov:Plan followed in the insertion activity).
dct:MethodOfInstruction rdfs:subClassOf prov:Plan "Process that is used to engender knowledge, attitude and skills". Since dct:MethodOfInstruction defines the method associated to an activity, it is mapped as a subClass of prov:Plan.
dct:RightsStatement rdfs:subClassOf prov:Entity Statement about the intellectual rights of a resource (e.g., a Document). Thus, it is mapped as a type of prov:Entity.
dct:PhysicalResource rdfs:subClassOf prov:Entity A material thing, which is a concrete type of prov:Entity.
dct:Policy rdfs:subClassOf prov:Plan dct:Policy is defined as "a plan or course of action by an authority, intended to influence and determine decisions, actions, and other matters." This is a specialization of prov:Plan.
dct:ProvenanceStatement rdfs:subClassOf prov:Bundle A dct:ProvenanceStatement is defined as "A statement of any changes in ownership and custody of a resource since its creation", which is a container for any provenance related assertion.
It is worth mentioning that applying the direct mappings to a metadata record such as Example 1 will infer that the resource (ex:prov-dc-20130312) was prov:generatedAtTime at two different times (two generation dates are associated to the document: dct:created and dct:issued). This is valid, since from the PROV point of view the "creation" and "issue" activities generate new entities. DC, on the other hand, groups those two intermediate entities under the same resource (ex:prov-dc-20130312), creating the record exposed in Example 1. This approach is supported by PROV but it does not comply with all the PROV constraints [PROV-CONSTRAINTS].

Regarding the rest of the direct mappings, two properties (dct:source and isVersionOf) and a class (dct:LocationPeriodOrJurisdiction) have been found to be superproperties and superclass of a PROV concept, represented in Table 6 and Table 7:

Table 6: Direct mappings (Properties generalizing PROV terms)
PROV Term Relation DC Term Rationale
prov:hadPrimarySource rdfs:subPropertyOf dct:source The definition of prov:hadPrimarySource ("something produced by some agent with direct experience and knowledge about the topic") is more restrictive than dct:source ("A related resource from which the described resource is derived").
prov:wasRevisionOf rdfs:subPropertyOf dct:isVersionOf Similar to the previous property, prov:wasRevisionOf is more restrictive in the sense that it refers to a revised version of a resource, while dct:isVersionOf involves versions, editions or adaptations of the original resource. As an example, "West Side Story" is a version (adaptation) of "Romeo and Juliet", but not a revision.
Table 7: Direct mappings (Classes generalizing PROV terms)
PROV Term Relation DC Term Rationale
prov:Location rdfs:subClassOf dct:LocationPeriodOrJurisdiction dct:LocationPeriodOrJurisdiction is a superclass of dct:Location (equivalent to prov:Location).

Table 8 enumerates the mapping of the DC terms to the PROV terms that do not belong to the core of PROV.

Table 8: Direct mappings to the PROV terms not included in the core
DC Term Relation PROV Term Rationale
dct:hasFormat rdfs:subPropertyOf prov:hadDerivation Inverse property of dct:isFormatOf.
dct:hasVersion rdfs:subPropertyOf prov:hadRevision Inverse property of dct:isVersionOf.
dct:isReferencedBy rdfs:subPropertyOf prov:hadDerivation Inverse property of dct:references.
dct:provenance rdfs:subPropertyOf prov:has_provenance Property used to link a resource to its corresponding dct:ProvenanceStatement. Since prov:has_provenance can refer to any type of provenance record, dct:provenance is mapped as a subclass.

3.2 PROV refinements

In order to produce complex mappings for the DC terms, we need specific subclasses extending the PROV ontology [PROV-O]. These subclases [PROV-DC-REFINEMENTS] are designed to qualify the DC properties in the complex mappings. For example, a dc:publisher relationship implies a "Publish" activity which used some entity to be published, produced a published entity and was associated with a publisher. The PROV extensions for DC can be seen below:

 
 prov:Publish          rdfs:subClassOf     prov:Activity.
 prov:Contribute       rdfs:subClassOf     prov:Activity.
 prov:Create           rdfs:subClassOf     prov:Activity, prov:Contribute.
 prov:RightsAssignment rdfs:subClassOf     prov:Activity.
 prov:Modify           rdfs:subClassOf     prov:Activity.
 prov:Accept           rdfs:subClassOf     prov:Activity.
 prov:Copyright        rdfs:subClassOf     prov:Activity.
 prov:Submit           rdfs:subClassOf     prov:Activity.
 prov:Replace          rdfs:subClassOf     prov:Activity.
 prov:Publisher        rdfs:subClassOf     prov:Role.
 prov:Contributor      rdfs:subClassOf     prov:Role. 
 prov:Creator          rdfs:subClassOf     prov:Role, prov:Contributor.
 prov:RightsHolder     rdfs:subClassOf     prov:Role.
		

3.3 Complex Mappings

The complex mappings consist of a set of patterns defined to generate qualified PROV statements from DC statements. This type of qualification may not be always needed, and it is the choice of the implementer whether to use them or not depending on the use case. It is also important to note that not all the direct mappings have a complex mapping associated, just those which imply a specific activity: creation, publication, etc. The complex mappings are provided in form of SPARQL CONSTRUCT queries, i.e., queries that describe a resulting RDF graph based on another RDF graph found in the original data. We divide the queries into different categories:

3.3.1 Entity-Agent mappings (Who)

In this category, we have three terms: dct:contributor, dct:creator and dct:publisher. The three of them can be mapped with the same pattern, similar to the one presented in Figure 1. The only changes required are the roles and activities involved for each term.

In the text below, variables ?document and ?agent are set to different matching values depending on the available data. The graph in the CONSTRUCT part can be seen as a template where the variables are placeholders that are filled with the values found in the data. The mapping for each term encodes a similar graph to the one presented in Figure 1 (with small changes for dct:creator and dct:rightsHolder). With this mapping, the difference in the complexity becomes obvious. Many blank nodes are created, so a subsequent cleanup phase that relates them and provides stable URIs for the entities is required. Depending on the implementation, URIs can also be coined here for every specialization. The implementation proposed in this document is an example that works conservatively. The assumption is that no further information about the identity of the specializations is available.

3.3.1.1 dct:creator
A creator is the agent in charge of the prov:Create activity that generated a specialization of the entity ?document. The agent is assigned the role prov:Creator.
  
CONSTRUCT {
   ?document a prov:Entity;
      prov:wasAttributedTo ?agent.				
	
   ?agent a prov:Agent.
					
   _:activity a prov:Activity, prov:Create;
      prov:wasAssociatedWith ?agent;
      prov:qualifiedAssociation [
         a prov:Association;
         prov:agent ?agent;
         prov:hadRole [a prov:Creator].
      ].
						
   _:resultingEntity a prov:Entity;
      prov:specializationOf ?document;
      prov:wasGeneratedBy _:activity;
      prov:wasAttributedTo ?agent.		
						
} WHERE {
   ?document dct:creator ?agent.
}
				
3.3.1.2 dct:contributor
Contributor is mapped following the previous pattern. Only the roles and activities change:
 
CONSTRUCT {
   ?document a prov:Entity;
      prov:wasAttributedTo ?agent.
				
   ?agent a prov:Agent.
					
   _:activity a prov:Activity, prov:Contribute;
      prov:wasAssociatedWith ?agent;
      prov:qualifiedAssociation [ 
         a prov:Association;
         prov:agent ?agent;
         prov:hadRole [a prov:Contributor].
      ].
						
   _:resultingEntity a prov:Entity;		
      prov:specializationOf ?document;
      prov:wasGeneratedBy _:activity;
      prov:wasAttributedTo ?agent.
						
} WHERE {
   ?document dct:contributor ?agent.
}
				
3.3.1.3 dct:publisher
In case of publication, a second specialization representing the entity before the publication is necessary:
  
CONSTRUCT {
   ?document a prov:Entity;
      prov:wasAttributedTo ?agent.
						
   ?agent a prov:Agent.
					
   _:usedEntity a prov:Entity;
      prov:specializationOf ?document.
						
   _:activity a prov:Activity, prov:Publish;
      prov:used _:usedEntity;
      prov:wasAssociatedWith ?agent;
      prov:qualifiedAssociation [ 
         a prov:Association;
         prov:agent ?agent;
         prov:hadRole [a prov:Publisher].
      ].
						
   _:resultingEntity a prov:Entity;
      prov:specializationOf ?document;		
      prov:wasDerivedFrom _:usedEntity
      prov:wasGeneratedBy _:activity;
      prov:wasAttributedTo ?agent.
						
} WHERE {
   ?document dct:publisher ?agent.
}
				

3.3.1.4 dct:rightsHolder
The rightsHolder manages the rights of a resource, getting some attribution for the ownership by being ascribed to it:
  
CONSTRUCT {
   ?document a prov:Entity;
      prov:wasAttributedTo ?agent.
						
   ?agent a prov:Agent.
					
   _:oldRightsEntity a prov:Entity;
      prov:specializationOf ?document.
						
   _:activity a prov:Activity, prov:RightsAssignment;
      prov:used _:oldRightsEntity;
      prov:wasAssociatedWith ?agent;
      prov:qualifiedAssociation [ 
         a prov:Association;
         prov:agent ?agent;
         prov:hadRole [a prov:RightsHolder].
      ].
						
   _:newRightsEntity a prov:Entity;
      prov:specializationOf ?document;		
      prov:wasDerivedFrom _:oldRightsEntity
      prov:wasGeneratedBy _:activity;
      prov:wasAttributedTo ?agent.
						
} WHERE {
   ?document dct:rightsHolder ?agent.
}
				

3.3.2 Entity-Date mappings (When)

Dates often correspond with a who-property. For example, date created implies a creator and date issued implies a publisher. Therefore, they lead to similar complex patterns (associating a date to each activity instead of an agent). When using DC terms, it is usual to see that a resource is annotated with several dct assertions like creator, publisher, issued, date, etc. In this section each term is treated independently. It is important to note that since the range for DC date properties is rdfs:Literal, and the range of the prov:atTime property is the class of literals with the datatype xsd:dateTime, the mapping is only valid for those literals that have the datatype xsd:dateTime.

3.3.2.1 dct:date

dct:date is a term defined as a point or period of time associated with an event in the lifecycle of the resource.

 
CONSTRUCT{
   _:event a prov:InstantaneousEvent;
      prov:atTime ?date.
} WHERE {
   ?document dct:date ?date.
}
				
Note that the above inference would not generally be considered useful due to the ambiguity of dct:date (we don't know how the entity is related to the event), however the above mapping is included here for completeness.
3.3.2.2 dct:created

As stated in Section 3.3.2, dct:created is mapped to PROV thusly:

 
CONSTRUCT{
   ?document a  prov:Entity.
							
   _:activity a prov:Activity, prov:Create;
							 
   # The “output”
   _:createdEntity a prov:Entity;
      prov:specializationOf ?document;
      prov:wasGeneratedBy _:activity;
      prov:wasGeneratedAtTime ?date;
      prov:qualifiedGeneration [ 
         a prov:Generation;
         prov:atTime ?date;
         prov:activity _:activity. 
      ].
} WHERE { 
   ?document dct:created ?date.
}
				
3.3.2.3 dct:issued

As stated in Section 3.3.2, dct:issued is mapped to PROV thusly:

 
CONSTRUCT{
   ?document a prov:Entity.
	 
   _:activity a prov:Activity, prov:Publish;
      prov:used _:usedEntity.
					  
   # The “input”
   _:usedEntity a prov:Entity.
      prov:specializationOf ?document.
					  
   # The “output”
   _:issEntity a prov:Entity;
      prov:specializationOf ?document;
      prov:wasGeneratedBy _:activity;
      prov:wasGeneratedAtTime ?date;
      prov:wasDerivedFrom _:usedEntity;
      prov:qualifiedGeneration [ 
         a prov:Generation;
         prov:atTime ?date;
         prov:activity _:activity. 
      ].   
} WHERE { 
   ?document dct:issued ?date.
}
				

3.3.2.4 dct:modified

As stated in Section 3.3.2, dct:modified is mapped to PROV thusly:

 
 CONSTRUCT{
   ?document a prov:Entity.
	 
   _:activity a prov:Activity, prov:Modify;
      prov:used _:usedEntity.
					  
   # The “input”
   _:usedEntity a prov:Entity.
			prov:specializationOf ?document.
					  
   # The “output”
   _:modifiedEntity a prov:Entity;
      prov:specializationOf ?document;
      prov:wasGeneratedBy _:activity;
      prov:wasGeneratedAtTime ?date;
      prov:wasDerivedFrom _:usedEntity;
      prov:qualifiedGeneration  [ 
         a prov:Generation;
         prov:atTime ?date;
         prov:activity _:activity. 
      ].   
} WHERE { 
   ?document dct:modified ?date.
}
				

3.3.2.5 dct:dateAccepted

As stated in Section 3.3.2, dct:dateAccepted is mapped to PROV thusly:

 
 CONSTRUCT{
   ?document a prov:Entity.
	 
   _:activity a prov:Activity, prov:Accept;
      prov:used _:usedEntity.
					  
   # The “input”
   _:usedEntity a prov:Entity.
      prov:specializationOf ?document.
					  
   # The “output”
   _:acceptedEntity a prov:Entity;
      prov:specializationOf ?document;
      prov:wasGeneratedBy _:activity;
      prov:wasGeneratedAtTime   ?date;
      prov:wasDerivedFrom       _:usedEntity;
      prov:qualifiedGeneration  [ 
         a prov:Generation;
         prov:atTime ?date;
         prov:activity _:activity. 
      ].   
} WHERE { 
    ?document dct:dateAccepted ?date.
}
				

3.3.2.6 dct:dateCopyrighted
By creating a resource we gain automatic copyright over it, so _:usedEntity is not required in this complex mapping.

CONSTRUCT{
   ?document a prov:Entity.
	 
   _:activity a prov:Activity, prov:Copyright;					  
   # The “output”
   _:copyrightedEntity a prov:Entity;
      prov:specializationOf ?document;
      prov:wasGeneratedBy _:activity;
      prov:wasGeneratedAtTime ?date;
      prov:qualifiedGeneration [ 
         a prov:Generation;
         prov:atTime ?date;
         prov:activity _:activity. 
      ].   
} WHERE { 
    ?document dct:dateCopyrighted ?date.
}
3.3.2.7 dct:dateSubmitted

As stated in Section 3.3.2, dct:dateSubmitted is mapped to PROV thusly:

 
CONSTRUCT{
   ?document a prov:Entity.
	 
   _:activity a prov:Activity, prov:Submit;
      prov:used _:usedEntity.
					  
   # The “input”
   _:usedEntity a prov:Entity.
      prov:specializationOf ?document.
				  
   # The “output”
   _:submittedEntity a prov:Entity;
      prov:specializationOf ?document;
      prov:wasGeneratedBy _:activity;
      prov:wasGeneratedAtTime ?date;
      prov:wasDerivedFrom _:usedEntity;
      prov:qualifiedGeneration  [ 
         a prov:Generation;
         prov:atTime ?date;
         prov:activity _:activity. 
      ].   
} WHERE { 
   ?document dct:dateSubmitted ?date.
}
				

3.3.3 Entity-Entity mappings (How)

In DC, most of the properties relating entities to other entities do not imply activities related to provenance (e.g., dct:format, dct:source or isVersionOf). The only exception is dct:replaces, further explained below.

3.3.3.1 dct:replaces

There is a relation between two resources when the former replaces or displaces the latter. However, we can't always assume the replacement is derived from the former resource, because the replacement could have existed and been generated independently from the original (for example, if a catalog replaces a book entitled "Introduction to provenance" with one entitled "Provenance in a nutshell). Therefore the "replace" Activity uses a specialization of the replaced entity (_:oldEntity) and generated a specialization of the replacement (_:newEntity). These specializations model the aspect of the resource which is the subject of replacement, thus, _:newEntity was derived from _:oldEntity.

CONSTRUCT{
   ?document a prov:Entity.
   ?document2 a prov:Entity.
					
   _:activity a prov:Activity, prov:Replace;
      prov:used _:oldEntity.
				 
   # The “input”
   _:oldEntity a prov:Entity;
      prov:specializationOf ?document2;
			
   # The “output”
   _:newEntity a prov:Entity;
      prov:specializationOf ?document;
      prov:wasGeneratedBy _:activity;
      prov:wasDerivedFrom _:oldEntity;
      prov:alternateOf _:oldEntity.
                     
} WHERE { 
   ?document dct:replaces ?document2.
}
				

The term dct:isReplacedBy would produce a similar mapping, inverting the roles of document and document2.

3.4 Cleanup

The cleanup phase aims to reduce the number of blank nodes produced by the complex mappings. This depends on how implementers interpret the described resources. Blank nodes could be renamed to specific identifiers by the implementer, in order to avoid obtaining additional blank nodes when reapplying the construct queries presented in the previous section.

Providing a set of rules to conflate the blank nodes is not in the scope of this document. However, the group has created two suggestions for implementers with proposals on how this could be achieved:

1) Conflate properties referring to the same state of the resource: In DC certain properties refer to the same activity (e.g., creator and created, publisher and issued, modified and contributor, etc.). By combining some of the queries, some of the records could be grouped creating more complete PROV assertions.

The example below shows how to conflate the blank nodes for dct:creator and dct:created properties:

	 
CONSTRUCT{
   ?document a prov:Entity.
	 
   _:activity a prov:Activity, prov:Create.
      prov:wasAssociatedWith ?agent
      prov:qualifiedAssociation [
         a prov:Association;
         prov:agent ?agent;
         prov:hadRole [a prov:Creator].
      ].
				  
   # The “output”
   _:createdEntity a prov:Entity;
      prov:specializationOf ?document;
      prov:wasGeneratedBy _:activity;
      prov:wasGeneratedAtTime   ?date;                 
      prov:qualifiedGeneration  [ 
         a prov:Generation;
         prov:atTime ?date;			
         prov:activity _:activity. 
      ].   
} WHERE { 
   ?document dct:creator  ?agent;
      dct:created  ?date.
}
		 
Figure 3 shows a graphical representation of the pattern (considering ?date as ex:dateCreation and ?agent as ex:creator):
Using complementing properties to conflate blank nodes
Figure 3. Using complementing properties to conflate blank nodes. Dates are represented in green and roles in purple.

2) Another solution is to sort all the activities according to their logical order, if known, and conflate the specialized entity (blank node) result of one activity with the specialized entity (blank node) input of the subsequent activity. Figure 4 shows a graphical example with two different activities (creation and publication) that happened at different points in time. Creation precedes publication, so instead of creating different blank nodes for their respective usage and generation, both activities share the same blank node (_:createdEntity).

Ordering activities to conflate blank nodes
Figure 4. Ordering activities to conflate blank nodes. The creation activity occurs before the publishing activity.

3.5 List of terms excluded from the mapping

Table 9 and Table 10 list the properties and classes excluded from the mapping, either because they are not suitable or because they do not represent provenance information. Regarding the classes, it is important to note that when a class is found to be defined as the range of some DC property that does not describe the provenance of a resource (but its descriptive metadata), it has been left out of the mapping rather than adding it as a subclass of prov:Entity (e.g., dct:MediaType, dct:Standard).

Table 9: List of properties excluded from the mapping
dct:abstract Descriptive metadata Summary of the resource. Thus, not part of its provenance.
dct:accessRights Provenance: How Agents who can access the resource (security status). Since the privileges of the resource are part of the description of the resource, the property has been excluded from the mapping.
dct:accrualMethod Descriptive Metadata Method by which items are added to a collection. Since this term does not describe the activity or the entities participating on the activity (just the plan followed), it is out of the scope of the mapping.
dct:accrualPeriodicity Descriptive metadata Frequency of the addition of items to a collection.
dct:accrualPolicy Descriptive metadata Policy associated with the insertion of items to a collection. It could be used to enrich the qualified involvement, but there is no direct mapping of this relationship.
dct:alternative Descriptive metadata Refers to an alternative title of the resource. For example "The Bible" might be also known as "The Holy Book". Titles are not identifiers, so this property cannot be mapped to prov:alternateOf.
dct:audience Descriptive metadata The audience for whom the resource is useful.
dct:available Provenance: When Property that states when a resource is available. There is no direct mapping between this property and the PROV notions of generation and invalidation.
dct:bibliographicCitation Descriptive metadata Property that relates the literal representing the bibliographic citation of the resource to the actual resource (e.g., :el_Quijote dct:bibliographicCitation "Miguel de Cervantes Saavedra: El Quijote, España").
dct:conformsTo Descriptive metadata Indicates the standard to which the resource conforms to (if any).
dct:coverage Descriptive metadata Topic of the resource.
dct:description Descriptive metadata An account of the resource.
dct:educationLevel Descriptive metadata The educational level of the audience for which the resource is intended.
dct:extent Descriptive metadata Size or duration of the resource.
dct:format Descriptive metadata Format of the resource.
dct:hasPart Descriptive metadata A resource that is included in the current resource. Since entity composition is out of the scope of PROV, this property has been excluded from the mapping
dct:identifier Descriptive metadata "An unambiguous reference to the resource within a given context."
dct:instructionalMethod Descriptive metadata "A process, used to engender knowledge, attitudes and skills, that the described resource is designed to support".
dct:isPartOf Descriptive metadata Inverse of dct:hasPart.
dct:isRequiredBy Descriptive metadata Property used to describe that the current resource is required for supporting the function of another resource. This is not related to the provenance of the resource, since it refers to something that may not have happened yet (e.g., a programming scripts' dependency on another dependency).
dct:language Descriptive metadata Language of the resource.
dct:license Provenance: How License of the resource. It has been left out of the mapping because there is no term in PROV-O to represent this information.
dct:mediator Descriptive metadata Entity that mediates access to the resource.
dct:medium Descriptive metadata Material of the resource.
dct:rights Provenance: How Metadata about the rights of the resource.
dct:relation Descriptive metadata Term used to identify "A related resource", which might not be related to the provenance of the described resource.
dct:requires Descriptive metadata Inverse property of dct:isRequiredBy (see dct:isRequiredBy).
dct:spatial Descriptive metadata Spatial characteristics of the content of the resource (e.g., the book is about Spain). Thus it cannot be mapped to prov:hadLocation.
dct:subject Descriptive metadata Subject of the resource.
dct:tableOfContents Descriptive metadata List of subunits of the resource.
dct:temporal Descriptive metadata Temporal characteristics of which the resource refers to (e.g., a book about 15th century).
dct:title Descriptive metadata Title of the resource.
dct:type Descriptive metadata Type of the resource.
dct:valid Provenance: When "Date (often a range) of validity of a resource." This property could correspond to PROV's generation and invalidation of the resource or one of its specializations. However, dct:valid can be used to set expiry dates (e.g., resource valid until 2015), which is not provenance (it is not about past events). Thus this property is left out of the mapping.
Table 10: List of classes excluded from the mapping
DC Term Category Rationale
dct:AgentClass Descriptive metadata Specialization of rdfs:Class to define classes or groups of Agents (like dct:Agent. None of the PROV classes are defined similarly, so it is our of the scope of the mapping.
dct:FileFormat Descriptive metadata Format of a digital resource. This class is the range of dct:format and normally is associated to literals (such as ".doc", "jpg", etc.). Therefore it is not part of this mapping.
dct:Frequency Descriptive metadata Frequency to which items are added to a collection.
dct:Jurisdiction Descriptive metadata Defined as "The extent or range of judicial, law enforcement, or other authority." This class is used to describe a particular aspect of a resource for which the provenance is not further described. Therefore it is not part of this mapping.
dct:MediaType Descriptive metadata File format or physical medium. This class is the range of dct:format and normally is associated to literals (such as "paper", "PNG", etc.). Therefore it is not part of this mapping.
dct:MediaTypeOrExtent Descriptive metadata Superclass of dct:MediaType. This class is the range of dct:format and is normally associated to literals (such as "paper", "PNG", etc.). Therefore it is not part of this mapping.
dct:PeriodOfTime Descriptive metadata Interval of time (start and end dates). Although PROV models instantaneous events, and entities and activities can be seen as occupying intervals of time, there is no clear mapping to any of the PROV terms.
dct:PhysicalMedium Descriptive metadata Range of the dct:medium property to associate a resource with its material. This class is usually associated to literals (such as "paper", "CD", etc.). Therefore it is not part of this mapping.
dct:SizeOrDuration Descriptive metadata Dimension or time taken to execute something (e.g., the minutes for a cooking recipe). The "duration" aspect of the size is prospective, while PROV just covers retrospective durations.
dct:Standard Descriptive metadata Range of the dct:conformsTo property to associate a resource with its standard. This class is usually associated to literals (such as "ISO Standard 15836:2009", "ANSI/NISO Standard Z39.85-2007", etc.). Therefore it is not part of this mapping.

3.6 Mapping from PROV to DC

The mapping from PROV to DC is not part of this note. If the refinements proposed in Section 3.2 are used, then the inverse of the complex mapping patterns can be applied. However, if the refinements are not used then only a few DC statements can be inferred from plain PROV statements. For example, when mapping dates there is no information to guess whether an activity with an associated date is a creation, a modification or a publication activity. This is because DC provides more specific classes of activities. Likewise, the agents involved cannot be mapped to creators, contributors, or publishers. This is because DC provides more specific classes of agency. While DC includes provenance information, its focus lies on the broader description of resources. Because PROV is focused on modeling provenance chains, it does not provide ways to describe the resources being chained together.

A. Acknowledgements

This document is the result of a collaboration between the Provenance Working Group and the Dublin Core Metadata Initiative. The editors extend special thanks to Antoine Isaac, Ivan Herman, Timothy Lebo, Luc Moreau, Paul Groth, Satya Sahoo, Tom Baker and Stian Soiland-Reyes for their feedback; and María Poveda and Idafen Santana for their help with the HTML generation.

We would also like to acknowledge Schloss Dagstuhl - Leibniz Center for Informatics, because significant progress was made on this document at Dagstuhl Seminar 12091 (Principles of Provenance) that took place from February 26 to March 2, 2012.

Members of the Provenance Working Group at the time of publication of this document were: Ilkay Altintas (Invited expert), Reza B'Far (Oracle Corporation), Khalid Belhajjame (University of Manchester), James Cheney (University of Edinburgh, School of Informatics), Sam Coppens (iMinds - Ghent University), David Corsar (University of Aberdeen, Computing Science), Stephen Cresswell (The National Archives), Tom De Nies (iMinds - Ghent University), Helena Deus (DERI Galway at the National University of Ireland, Galway, Ireland), Simon Dobson (Invited expert), Martin Doerr (Foundation for Research and Technology - Hellas(FORTH)), Kai Eckert (Invited expert), Jean-Pierre EVAIN (European Broadcasting Union, EBU-UER), James Frew (Invited expert), Irini Fundulaki (Foundation for Research and Technology - Hellas(FORTH)), Daniel Garijo (Ontology Engineering Group, Universidad Politécnica de Madrid), Yolanda Gil (Invited expert), Ryan Golden (Oracle Corporation), Paul Groth (Vrije Universiteit), Olaf Hartig (Invited expert), David Hau (National Cancer Institute, NCI), Sandro Hawke (W3C/MIT), Jörn Hees (German Research Center for Artificial Intelligence (DFKI) Gmbh), Ivan Herman, (W3C/ERCIM), Ralph Hodgson (TopQuadrant), Hook Hua (Invited expert), Trung Dong Huynh (University of Southampton), Graham Klyne (University of Oxford), Michael Lang (Revelytix, Inc.), Timothy Lebo (Rensselaer Polytechnic Institute), James McCusker (Rensselaer Polytechnic Institute), Deborah McGuinness (Rensselaer Polytechnic Institute), Simon Miles (Invited expert), Paolo Missier (School of Computing Science, Newcastle university), Luc Moreau (University of Southampton), James Myers (Rensselaer Polytechnic Institute), Vinh Nguyen (Wright State University), Edoardo Pignotti (University of Aberdeen, Computing Science), Paulo da Silva Pinheiro (Rensselaer Polytechnic Institute), Carl Reed (Open Geospatial Consortium), Adam Retter (Invited Expert), Christine Runnegar (Invited expert), Satya Sahoo (Invited expert), David Schaengold (Revelytix, Inc.), Daniel Schutzer (FSTC, Financial Services Technology Consortium), Yogesh Simmhan (Invited expert), Stian Soiland-Reyes (University of Manchester), Eric Stephan (Pacific Northwest National Laboratory), Linda Stewart (The National Archives), Ed Summers (Library of Congress), Maria Theodoridou (Foundation for Research and Technology - Hellas(FORTH)), Ted Thibodeau (OpenLink Software Inc.), Curt Tilmes (National Aeronautics and Space Administration), Craig Trim (IBM Corporation), Stephan Zednik (Rensselaer Polytechnic Institute), Jun Zhao (University of Oxford), Yuting Zhao (University of Aberdeen, Computing Science).

B. Changes Since Second Public Working Draft

C. References

C.1 Informative references

[DCMI]
Dublin Core Metadata Initiative. URL: http://dublincore.org/
[DCTERMS]
DCMI Metadata Terms. 14 June 2012. URL: http://dublincore.org/documents/2012/06/14/dcmi-terms/
[PROV-DC-REFINEMENTS]
PROV-O refinements for Dublin Core file. 30 April 2013. URL: http://www.w3.org/ns/prov-dc-refinements.ttl
[PROV-DC-DIRECT-MAPPINGS]
Dublin Core to PROV mapping file. 30 April 2013. URL: http://www.w3.org/ns/prov-dc-directmappings.ttl
[OWL2-OVERVIEW]
W3C OWL Working Group. OWL 2 Web Ontology Language: Overview. 11 December 2012. W3C Recommendation. URL: http://www.w3.org/TR/2012/REC-owl2-overview-20121211/
[PROV-AQ]
Graham Klyne; Paul Groth; eds. Provenance Access and Query. 30 April 2013, W3C Note. URL: http://www.w3.org/TR/2013/NOTE-prov-aq-20130430/
[PROV-CONSTRAINTS]
James Cheney; Paolo Missier; Luc Moreau; eds. Constraints of the PROV Data Model. 30 April 2013, W3C Recommendation. URL: http://www.w3.org/TR/2013/REC-prov-constraints-20130430/
[PROV-DICTIONARY]
Tom De Nies; Sam Coppens; eds. PROV Dictionary: Modeling Provenance for Dictionary Data Structures. 30 April 2013, W3C Note. URL: http://www.w3.org/TR/2013/NOTE-prov-dictionary-20130430/
[PROV-DM]
Luc Moreau; Paolo Missier; eds. PROV-DM: The PROV Data Model. 30 April 2013, W3C Recommendation. URL: http://www.w3.org/TR/2013/REC-prov-dm-20130430/
Luc Moreau; Timothy Lebo; eds. Linking Across Provenance Bundles. 30 April 2013, W3C Note. URL: http://www.w3.org/TR/2013/NOTE-prov-links-20130430/
[PROV-N]
Luc Moreau; Paolo Missier; eds. PROV-N: The Provenance Notation. 30 April 2013, W3C Recommendation. URL: http://www.w3.org/TR/2013/REC-prov-n-20130430/
[PROV-O]
Timothy Lebo; Satya Sahoo; Deborah McGuinness; eds. PROV-O: The PROV Ontology. 30 April 2013, W3C Recommendation. URL: http://www.w3.org/TR/2013/REC-prov-o-20130430/
[PROV-OVERVIEW]
Paul Groth; Luc Moreau; eds. PROV-OVERVIEW: An Overview of the PROV Family of Documents. 30 April 2013, W3C Note. URL: http://www.w3.org/TR/2013/NOTE-prov-overview-20130430/
[PROV-PRIMER]
Yolanda Gil; Simon Miles; eds. PROV Model Primer. 30 April 2013, W3C Note. URL: http://www.w3.org/TR/2013/NOTE-prov-primer-20130430/
[PROV-SEM]
James Cheney; ed. Semantics of the PROV Data Model. 30 April 2013, W3C Note. URL: http://www.w3.org/TR/2013/NOTE-prov-sem-20130430.
[PROV-XML]
Hook Hua; Curt Tilmes; Stephan Zednik; eds. PROV-XML: The PROV XML Schema. 30 April 2013, W3C Note. URL: http://www.w3.org/TR/2013/NOTE-prov-xml-20130430/
[RDFS]
Dan Brickley; Ramanathan V. Guha. RDF Vocabulary Description Language 1.0: RDF Schema. 10 February 2004. W3C Recommendation.URL: http://www.w3.org/TR/2004/REC-rdf-schema-20040210/
[TURTLE]
Eric Prud'hommeaux, Gavin Carothers; eds.Turtle: Terse RDF Triple Language. 9 August 2011. W3C Working Draft. URL:http://www.w3.org/TR/2011/WD-turtle-20110809/