Copyright © 2010 - 2010 Jun Zhao.
This work is licensed under a Creative Commons License. This copyright applies to the Open Provenance Model Vocabulary and accompanying documentation.
Regarding underlying technology, the Open Provenance Model 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 and the Provenance Vocabulary Core Ontology Specification edited by Olaf Hartig and Jun Zhao.
OPMV, the Open Provenance Model Vocabulary, is a lightweight provenance vocabulary aiming to provide terms to enable practitioners of data publishing to publish their data responsibly. The Open Provenance Model Vocabulary is closely based on the community provenance data model, the Open Provenance Model (OPM) [Moreau09]. Since release 1.0 OPMV becomes a profile of OPM. OPMV can be used together with other provenance-related RDF/OWL vocabularies/ontologies, such as Dublin Core, FOAF, the Changeset Vocabulary, and the Provenance Vocabulary. As being grounded on OPM, the OPMV aims to assist the interoperability between provenance information on the Semantic Web. The Open Provenance Model Vocabulary is defined as an OWL-DL ontology and it is partitioned into a core ontology and supplementary modules. In order to avoid making the core ontology too complex, the core module only implements structures defined in OPM and the supplementary modules provide less frequently used terms and a broad range of specializations of the core terms.
This documents specifies the classes and properties introduced by the OPMV 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. This document is generated by combining a machine-readable Open Provenance Model Vocabulary Namespace expressed in RDF/XML with a specification template and a set of per-term documents.
The Open Provenance Model Vocabulary is defined as an OWL-DL ontology and it is partitioned into a core ontology and supplementary modules. This follows similar patterns applied to the SIOC ontology, in order to avoid making the core ontology too complex. The modules aim to provide less frequently used terms and a broad range of specializations of the core terms. In this release we provide three supplementary modules, the common module, the xslt module and the sparql module. More modules could emerge based on requirements and adoptions from the community.
OPMV is closely based on the OPM model, which is a provenance data model driven by a community effort for facilitating interoperability between provenance systems [Moreau09]. Since release 1.0 the Open Provenance Model Vocabulary (OPMV) becomes a profile of OPM, a faithful implementation of the OPM specification. Not every structure defined in the OPM specifications is explicitly defined as concepts or properties in the OPMV, because OPMV aims to reuse existing Semantic Web technologies and vocabularies as much as possible. Readers should also consult the OPMV User Guide[Zhao10] for a more complete view of how each structure is supported by either OPMV or existing Semantic Web technologies.
OPMV aims to be as lightweight as possible. An alternative OWL serialization for OPM is available at [opm-owl], which defines more constraints using more complex OWL2.0 constructs. Users should opt to this OWL serialization if they need to perform complex reasoning over or check the validity of their OPM provenance information.
The related Provenance Vocabulary provides specific terms to describe Web data provenance. OPMV aims to provide terms and modules to support provenance descriptions for datasets beyond those in the Web of Data. OPMV can be used together with the Provenance Vocabulary. For the moment, we would recommend users to use the Provenance Vocabulary for describing provenance of the Web of Data.
The XML Namespace URIs that must be used by implementations of this specification are:
An alphabetical index of terms from the Open Provenance Model Vocabulary Core, by class and by property, are given below. All the terms are hyperlinked to their detailed description for quick reference.
Classes: | Agent | Artifact | Process |
Properties: | used | wasControlledBy | wasDerivedFrom | wasEncodedBy | wasEndedAt | wasGeneratedAt | wasGeneratedBy | wasPerformedAt | wasPerformedBy | wasStartedAt | wasTriggeredBy | wasUsedAt
The Core OPMV definitions presented here are written using a computer language (RDF/OWL) that makes it easy for software to process some basic facts about the terms in the Core Open Provenance Model Vocabulary, and consequently about the things described using OPMV.
The Core Open Provenance Model Vocabulary is identified by the namespace URI "http://purl.org/net/opmv/ns#".
Revisions and extensions of opmv are conducted through edits to the namespace document, which by convention is published on the Web at the namespace URI.
The properties and types defined here provide some basic concepts for describing provenance information. Other vocabularies (e.g. the Dublin Core metadata terms, FOAF, the Provenance Vocabulary, etc.) can also be mixed in with OPMV terms, as can local extensions. OPMV is designed to be extended, and some supplementary modules have been added (below).
The Common Module is the primary specialization module of OPMV. It aims to provide terms that are commonly used but not defined in the Open Provenance Model specification. This module is defined under the namespace of http://purl.org/net/opmv/types/common# and created by Jeni Tennison.
A guide on this module is available at http://code.google.com/p/opmv/wiki/GuideOfCommonModule and the schema is available at its namespace http://purl.org/net/opmv/types/common#.
Full descriptions about the OPMV SPARQL Module can be found at its namespace http://purl.org/net/opmv/types/sparql# created by Leigh Dodds.
More recently more OPMV modules have been implemented, which include:
Agent is a contextual entity acting as a catalyst of a process, enabling, facilitating, controlling, or affecting its execution.
identifier: | http://purl.org/net/opmv/ns#Agent |
---|---|
equivalent to: | foaf:Agent |
disjoint with: | opmv:Process |
in range of: | opmv:wasControlledBy opmv:wasPerformedBy |
Artifact is a general concept that represents immutable piece of state, which may have a physical embodiment in a physical object, or a digital representation in a computer system.
identifier: | http://purl.org/net/opmv/ns#Artifact |
---|---|
disjoint with: | opmv:Process |
in domain of: | opmv:wasDerivedFrom opmv:wasEncodedBy opmv:wasGeneratedAt opmv:wasGeneratedBy opmv:wasUsedAt |
in range of: | opmv:wasDerivedFrom opmv:wasEncodedBy opmv:used |
Process refers to an action or series of actions performed on or caused by artifacts, and resulting in new artifacts.
identifier: | http://purl.org/net/opmv/ns#Process |
---|---|
disjoint with: | opmv:Artifact opmv:Agent |
in domain of: | opmv:used opmv:wasControlledBy opmv:wasEndedAt opmv:wasPerformedAt opmv:wasPerformedBy opmv:wasStartedAt opmv:wasTriggeredBy |
in range of: | opmv:wasGeneratedBy opmv:wasTriggeredBy |
used is an abstract property to express that an artifact was used by a process.
Identifier: | http://purl.org/net/opmv/ns#used |
---|---|
OWL Type: | ObjectProperty |
Domain: | opmv:Process |
Range: | opmv:Artifact |
wasControlledBy is an abstract property to express that a process was controlled an agent.
Identifier: | http://purl.org/net/opmv/ns#wasControlledBy |
---|---|
OWL Type: | ObjectProperty |
Super-property of: | opmv:wasPerformedBy |
Domain: | opmv:Process |
Range: | opmv:Agent |
wasDerivedFrom is an abstract property to express that an artifact was derived from another artifact.
Identifier: | http://purl.org/net/opmv/ns#wasDerivedFrom |
---|---|
OWL Type: | ObjectProperty |
Super-property of: | opmv:wasEncodedBy |
Domain: | opmv:Artifact |
Range: | opmv:Artifact |
wasEncodedBy is an object property to express that an artifact is encoded by another artifact. The property is useful for expressing the relationship between the data and the file encoding the data.
Identifier: | http://purl.org/net/opmv/ns#wasEncodedBy |
---|---|
OWL Type: | ObjectProperty |
Sub-property of: | opmv:wasDerivedFrom |
Domain: | opmv:Artifact |
Range: | opmv:Artifact |
wasEndedAt is an object property to express that a process was finished at a specific time instant. The property chain defines that all processes, that were performed during a specific time period which ended at a specific instant, were actually finished at that specific time instant.
Identifier: | http://purl.org/net/opmv/ns#wasEndedAt |
---|---|
OWL Type: | ObjectProperty |
Domain: | opmv:Process |
Range: | time:Instant |
Property chain: | opmv:wasPerformedAt, time:hasEnd |
wasGeneratedAt is an object property to express that an artifact was generated at a specific time instant. This property is very similar to dct:created. Note that in a very fine-grained case the time when an artifact was generated might not be the same as the time when the process producing that artifact finished.
Identifier: | http://purl.org/net/opmv/ns#wasGeneratedAt |
---|---|
OWL Type: | ObjectProperty |
Domain: | opmv:Artifact |
Range: | time:Instant |
wasGeneratedBy is an abstract property to express that an artifact was generated by a process.
Identifier: | http://purl.org/net/opmv/ns#wasGeneratedBy |
---|---|
OWL Type: | ObjectProperty |
Domain: | opmv:Artifact |
Range: | opmv:Process |
wasPerformedAt is an object property to express that a process was performed at a given time instant or during a given time interval.
Identifier: | http://purl.org/net/opmv/ns#wasPerformedAt |
---|---|
OWL Type: | ObjectProperty |
Domain: | opmv:Process |
Range: | time:TemporalEntity |
wasPerformedBy is an object property to express that a process was performed by an agent. It is a sub-property of wasControlledBy.
Identifier: | http://purl.org/net/opmv/ns#wasPerformedBy |
---|---|
OWL Type: | ObjectProperty |
Sub-property of: | opmv:wasControlledBy |
Domain: | opmv:Process |
Range: | opmv:Agent |
wasStartedAt is an object property to express that a process was started at a given time instant. The property chain defines that all processes, that were performed during a specific time period which began at a specific instant, were actually started at that specific time instant.
Identifier: | http://purl.org/net/opmv/ns#wasStartedAt |
---|---|
OWL Type: | ObjectProperty |
Domain: | opmv:Process |
Range: | time:Instant |
Property chain: | opmv:wasPerformedAt, time:hasBeginning |
wasTriggeredBy is an abstract property to express that a process was triggered by another process.
Identifier: | http://purl.org/net/opmv/ns#wasTriggeredBy |
---|---|
OWL Type: | ObjectProperty |
Domain: | opmv:Process |
Range: | opmv:Process |
wasUsedAt is an object property to express that an artifact was used at a specific time instant. An artifact might not be used at the starting time of the process that actually consumed it. Hence, we provide a different time-related property to express when an artifact was used.
Identifier: | http://purl.org/net/opmv/ns#wasUsedAt |
---|---|
OWL Type: | ObjectProperty |
Domain: | opmv:Artifact |
Range: | time:Instant |
withRespectOf is an object property to associate a time instant at which an artifact was used or generated with the process that used or generated that artifact. At a very fine-grained distinction, the time when an artifact was used or generated might not be exactly the same as the starting or ending time of the process in which the artifact was involved. The related properties opmv:wasUsedAt and opmv:wasGeneratedAt can be used as shortcuts to express time-related information about an artifact. The property opmv:wasUsedAt is only used when users want to express precisely in which process an artifact was used or generated. It can be omitted in most cases.
Identifier: | http://purl.org/net/opmv/ns#wasUsedAt |
---|---|
OWL Type: | ObjectProperty |
Domain: | time:Instant |
Range: | opmv:Artifact |
We would like to acknowledge the contributions of Jeni Tennison, Olaf Hartig, Stuart Williams, and John Sheridan towards this specification, and Luc Moreau and Paul Groth towards aligning OPMV with the OPM OWL specification.