Copyright © 2009 - 2010 Olaf Hartig and Jun Zhao.
This work is licensed under a Creative Commons License. This copyright applies to the Provenance Vocabulary Core Ontology Specification and accompanying documentation.
Regarding underlying technology, the Provenance Vocabulary relies heavily on W3C's RDF technology, an open Web standard that can be freely used by anyone.
This visual layout and structure of the specification was adapted from the SIOC Core Ontology Specification edited by Uldis Bojars and John G. Breslin.
The Provenance Vocabulary provides classes and properties to describe the provenance of data from the Web. Hence, this vocabulary enables providers of Web data to publish provenance-related metadata about their data. The Provenance Vocabulary Core Ontology provides the main classes and properties required to describe provenance of data on the Web. Notice, this vocabulary is not designed to describe provenance of other kinds of content such as documents. This documents specifies the classes and properties introduced by the Provenance Vocabulary Core Ontology.
NOTE: This section describes the status of this document at the time of its publication. Other documents may supersede this document.
This specification is an evolving document. This document may be updated or added to based on implementation experience, but no commitment is made by the authors regarding future updates.
The authors welcome suggestions on the Provenance Vocabulary and this document. Please send comments to the Provenance Vocabulary users' mailing list (prov-vocab-users), public archives are available. Issues with the vocabulary can be reported using the issue tracker.
The Provenance Vocabulary which is defined as an OWL-DL ontology is partitioned in a core ontology and supplementary modules. To avoid making the core ontology too complex the modules provide less frequently used terms and a broad range of extensions of the core terms. At present the Provenance Vocabulary has three modules: Types, Files, and Integrity Verification.
The vocabulary is designed very closely to the model for Web data provenance as presented in [Har09]. This model comprises two dimensions of Web data provenance: data creation and data access. Accordingly, the Provenance Vocabulary basically consists of three main parts: general terms, terms for data creation, and terms for data access.
Detailed information about using the Provenance Vocabulary and many examples can be found in [HZ09].
The XML Namespace URIs that must be used by implementations of this specification are:
An alphabetical index of Provenance Vocabulary Core Ontology terms, by class and by property, are given below. All the terms are hyperlinked to their detailed description for quick reference.
Classes: | Actor | Artifact | CreationGuideline | DataAccess | DataCreation | DataItem | DataProvidingService | DataPublisher | Execution | File | HumanActor | NonHumanActor | Representation |
Properties: | accessedResource | accessedService | containedBy | createdBy | deployedSoftware | employedArtifact | encodedBy | involvedActor | operatedBy | performedAt | performedBy | precededBy | retrievedBy | serializedBy | usedBy | usedData | usedGuideline | yieldedBy |
The following figure provides an overview of the classes and properties in the Provenance Vocabulary Core Ontology.
The Provenance Vocabulary Core Ontology introduces the following classes and properties.
Actor is a general class that represents active entities. Actors usually perform the execution (see the class Execution) of an action or a process.
identifier: | http://purl.org/net/provenance/ns#Actor |
---|---|
equivalent to: | foaf:Agent |
super-class of: | prv:HumanActor prv:NonHumanActor |
in range of: | prv:involvedActor prv:performedBy |
HumanActor is a general class that represents actors who are social beings such as persons, organizations, companies.
identifier: | http://purl.org/net/provenance/ns#HumanActor |
---|---|
sub-class of: | prv:Actor |
super-class of: | prv:DataPublisher foaf:Person foaf:Organization foaf:Group |
disjoint with: | prv:Artifact prv:Execution |
disjoint with: | prv:NonHumanActor |
in range of: | prv:operatedBy |
NonHumanActor is a general class that represents actors who are not social beings.
identifier: | http://purl.org/net/provenance/ns#NonHumanActor |
---|---|
sub-class of: | prv:Actor |
super-class of: | prv:DataProvidingService |
disjoint with: | prv:HumanActor |
in domain of: | prv:operatedBy |
Execution is a general class that represents completed executions of actions or processes. An execution is usually performed by an actor (see the class Actor) and an execution, in most cases, yielded an artifact (see the class Artifact).
identifier: | http://purl.org/net/provenance/ns#Execution |
---|---|
super-class of: | prv:DataCreation prv:DataAccess |
disjoint with: | prv:Actor prv:Artifact |
in domain of: | prv:involvedActor prv:employedArtifact prv:performedBy prv:performedAt |
in range of: | prv:yieldedBy |
restrictions: | only one prv:performedAt |
Artifact is a general class that represents artifacts which can be used during the execution (see the class Execution) of an action or a process and which can also be the result of such an execution.
identifier: | http://purl.org/net/provenance/ns#Artifact |
---|---|
super-class of: | prv:DataItem prv:File |
disjoint with: | prv:Actor prv:Execution |
in domain of: | prv:yieldedBy prv:retrievedBy |
in range of: | prv:employedArtifact prv:containedBy |
restrictions: | only one prv:retrievedBy |
DataItem is a general class that represents any kind of representation of a data item.
identifier: | http://purl.org/net/provenance/ns#DataItem |
---|---|
sub-class of: | prv:Artifact ir:InformationRealization |
super-class of: | prv:CreationGuideline |
disjoint with: | prv:File |
in domain of: | prv:containedBy prv:createdBy prv:precededBy |
in range of: | prv:precededBy prv:usedData |
File is a general class that represents computer files/documents of any kind.
identifier: | http://purl.org/net/provenance/ns#File |
---|---|
sub-class of: | prv:Artifact |
disjoint with: | prv:DataItem |
in domain of: | prv:createdBy |
in range of: | prv:serializedBy |
This class is deprecated and will be removed from the Provenance Vocabulary in the next revision. Use prv:DataItem instead. prv:Representation was deprecated because the Provenance Vocabulary does not distinguish Web representations of data and the general kind of representations (as prv:DataItem represents).
identifier: | http://purl.org/net/provenance/ns#Representation |
---|---|
equivalent to: | prv:DataItem |
sub-class of: | prv:Artifact irw:WebRepresentation web:Representation |
disjoint with: | prv:DataItem prv:File |
Note, these properties are not intended to be used to describe instance data but to provide an abstract base for other properties.
This is an abstract property that refers to the execution by which an artifact was yielded.
Identifier: | http://purl.org/net/provenance/ns#yieldedBy |
---|---|
OWL Type: | ObjectProperty |
Super-property of: | prv:retrievedBy |
Domain: | prv:Artifact |
Range: | prv:Execution |
This is an abstract property that refers to an actor involved in an execution.
Identifier: | http://purl.org/net/provenance/ns#involvedActor |
---|---|
OWL Type: | ObjectProperty |
Super-property of: | prv:accessedService prv:performedBy |
Domain: | prv:Execution |
Range: | prv:Actor |
This is an abstract property that refers to an artifact which was used during an execution.
Identifier: | http://purl.org/net/provenance/ns#employedArtifact |
---|---|
OWL Type: | ObjectProperty |
Super-property of: | prv:accessedResource prv:usedData |
Domain: | prv:Execution |
Range: | prv:Artifact |
This property refers to a data item that contained a data item. Hence, this property refers to another data item of a larger granularity (e.g. an RDF statement is usually contained in an RDF graph).
Identifier: | http://purl.org/net/provenance/ns#containedBy |
---|---|
OWL Type: | ObjectProperty |
Domain: | prv:DataItem |
Range: | prv:DataItem |
This property refers to the software that was run by a non-human actor (usually a service).
Identifier: | http://purl.org/net/provenance/ns#deployedSoftware |
---|---|
OWL Type: | ObjectProperty |
Domain: | prv:NonHumanActor |
This property refers to a file that serialized a data item.
Identifier: | http://purl.org/net/provenance/ns#serializedBy |
---|---|
OWL Type: | ObjectProperty |
Range: | prv:File |
This property refers to an actor that/who performed an execution.
Identifier: | http://purl.org/net/provenance/ns#performedBy |
---|---|
OWL Type: | ObjectProperty |
Sub-property of: | prv:involvedActor |
Domain: | prv:Execution |
Range: | prv:Actor |
This property refers to a human actor who was operating a non-human actor at the time the provenance description refers to. For instance, a service provider operated a data providing service (see class prv:DataProvidingService). Another example is a human actor who operated a non-human data creating actor.
Identifier: | http://purl.org/net/provenance/ns#operatedBy |
---|---|
OWL Type: | ObjectProperty |
Domain: | prv:NonHumanActor |
Range: | prv:HumanActor |
This property refers to the time an execution has been performed at.
Identifier: | http://purl.org/net/provenance/ns#performedAt |
---|---|
OWL Type: | DatatypeProperty |
Domain: | prv:Execution |
Range: | xsd:dateTime |
This property is deprecated and will be removed from the Provenance Vocabulary shortly. Use prv:serializedBy instead. prv:encodedBy was deprecated because the new name prv:serializedBy is more suitable.
Identifier: | http://purl.org/net/provenance/ns#encodedBy |
---|---|
OWL Type: | ObjectProperty |
Domain: | prv:DataItem |
Range: | prv:File |
DataCreation is a class that represents the completed creation of a data item.
identifier: | http://purl.org/net/provenance/ns#DataCreation |
---|---|
sub-class of: | prv:Execution |
disjoint with: | prv:DataAccess |
in domain of: | prv:usedData prv:usedGuideline |
in range of: | prv:createdBy |
CreationGuideline is a class that represents a guideline used to guide the execution of a data creation. Examples for creation guidelines are transformation rules, mapping definitions, entailment rules, and database queries.
identifier: | http://purl.org/net/provenance/ns#CreationGuideline |
---|---|
sub-class of: | prv:DataItem |
in range of: | prv:usedGuideline |
This property refers to the creation of a data item.
Identifier: | http://purl.org/net/provenance/ns#createdBy |
---|---|
OWL Type: | ObjectProperty |
Sub-property of: | prv:yieldedBy |
Domain: | Union of prv:DataItem and prv:File |
Range: | prv:DataCreation |
Property chain: | prv:serializedBy, prv:createdBy |
This property refers to a source data item that has been used during the creation of a data item. Examples for source data are the content of a document used for machine learning, the statements in a knowledge base used to entail a new statement, and the entries in a database used to answer a query. Notice, all source data has provenance; we strongly encourage to describe this provenance as well, at least as far as available information permits.
Identifier: | http://purl.org/net/provenance/ns#usedData |
---|---|
OWL Type: | ObjectProperty |
Sub-property of: | prv:employedArtifact |
Super-property of: | prv:usedGuideline |
Domain: | prv:DataCreation |
Range: | prv:DataItem |
Property chain: | prvFiles:usedDataFile, inverse of prv:serializedBy |
This property refers to a creation guideline which guided the execution of a data creation. Examples for creation guidelines are transformation rules, mapping definitions, entailment rules, and database queries. Notice, all creation guidelines have provenance; we strongly encourage to describe this provenance as well, at least as far as available information permits.
Identifier: | http://purl.org/net/provenance/ns#usedGuideline |
---|---|
OWL Type: | ObjectProperty |
Sub-property of: | prv:usedData |
Domain: | prv:DataCreation |
Range: | prv:CreationGuideline |
Property chain: | prvFiles:usedGuidelineFile, inverse of prv:serializedBy |
This property refers to an immediately preceding version of a data item; hence, the new version (i.e. the subject) has been created using the old version (i.e. the object). We strongly encourage to also describe this creation of the new version explicitly.
Identifier: | http://purl.org/net/provenance/ns#precededBy |
---|---|
OWL Type: | ObjectProperty |
Sub-property of: | dcterms:replaces |
Domain: | prv:DataItem |
Range: | prv:DataItem |
DataAccess is a class that represents the completed execution of accessing a data item on the Web.
identifier: | http://purl.org/net/provenance/ns#DataAccess |
---|---|
sub-class of: | prv:Execution |
disjoint with: | prv:DataCreation |
in domain of: | prv:accessedResource prv:accessedService |
in range of: | prv:retrievedBy |
restrictions: | only one prv:accessedResource, only one prv:accessedService |
DataProvidingService is a class that represents a non-human actor - usually a Web service or a server (software) - that processes data access requests and actually sends the requested Web representations over the Web.
identifier: | http://purl.org/net/provenance/ns#DataProvidingService |
---|---|
sub-class of: | prv:NonHumanActor |
super-class of: | irw:Server web:Server web:Service |
in domain of: | prv:usedBy |
in range of: | prv:accessedService |
DataPublisher is a class that represents entities such as persons, groups, or organizations who use a data providing service (see class prv:DataProvidingService) to publish data on the Web.
identifier: | http://purl.org/net/provenance/ns#DataPublisher |
---|---|
sub-class of: | prv:HumanActor |
in range of: | prv:usedBy |
This property refers to the data access by which a Web representation of data has been retrieved from the Web.
Identifier: | http://purl.org/net/provenance/ns#retrievedBy |
---|---|
OWL Type: | ObjectProperty |
Sub-property of: | prv:yieldedBy |
Domain: | prv:Artifact |
Range: | prv:DataAccess |
This property refers to the Web resource that has been accessed during the execution of a data access. More precisely, the request of the referenced Web resource resulted in retrieving the representation that has been retrieved by the corresponding prv:DataAccess execution.
Identifier: | http://purl.org/net/provenance/ns#accessedResource |
---|---|
OWL Type: | ObjectProperty |
Sub-property of: | prv:employedArtifact |
Domain: | prv:DataAccess |
Range: | irw:WebResource |
This property refers to the service that provided the Web representation during the execution of a data access.
Identifier: | http://purl.org/net/provenance/ns#accessedService |
---|---|
OWL Type: | ObjectProperty |
Sub-property of: | prv:involvedActor |
Domain: | prv:DataAccess |
Range: | prv:DataProvidingService |
This property refers to a data publisher who used a data providing services at the time the provenance description refers to.
Identifier: | http://purl.org/net/provenance/ns#usedBy |
---|---|
OWL Type: | ObjectProperty |
Domain: | prv:DataProvidingService |
Range: | prv:DataPublisher |
Vocabulary design decisions: