Open Provenance Model Vocabulary Specification

6 October 2010

This version:
http://purl.org/net/opmv/ns-20101006
Latest version:
http://purl.org/net/opmv/ns
Previous version:
http://purl.org/net/opmv/ns-20100827
Revision:
Revision: 1.0
Authors:
Jun Zhao (Image Bioinformatics Research Group, Department of Zoology, University of Oxford)
Contributors:
See acknowledgements.

Creative Commons License This work is licensed under a Creative Commons License. This copyright applies to the Open Provenance Model Vocabulary and accompanying documentation.

Valid XHTML + RDFa 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.


Abstract

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.


Status of this document

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.

Table of contents


1. Introduction

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:

2. The Open Provenance Model Vocabulary Core at a glance

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

3. Descriptions about OPMV

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 main classes and properties in OPMV Core Ontology

3.1. Evolution and extension of 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).

3.2. OPMV Modules

OPMV modules are designed to provide terms supplementary to those from the OPMV Core in order to avoid making the OPMV Core Ontology too complex. At present we have three modules: Common, XSLT and SPARQL.

OPMV Common Module

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#.

OPMV XSLT Module

XML data is one of the most common format of data being transformed into Linked Data. Therefore, the XSLT module is created to provide very fine-grained classes and properties to describe how data was created by applying XSLT transformation. Some of the OPMV Core Ontology classes and corresponding XSLT Module sub-classes include: The module also created its own class QName and reused concepts from existing vocabularies, including foaf:Agent and doap:Version. A guide on this module is available at http://code.google.com/p/opmv/wiki/GuideOfXsltModule. Full descriptions about the OPMV XSLT Module can be found at its namespace http://purl.org/net/opmv/types/xslt# that is created by Jeni Tennison.

OPMV SPARQL Module

The SPARQL module is created to provide specific classes and properties to describe provenance information about SPARQL query results. It reuses terms from the draft SPARQL Service Description vocabulary (http://www.w3.org/TR/2010/WD-sparql11-service-description-20100126/). Some of the OPMV Core Ontology classes and corresponding SPARQL Module sub-classes include:

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:

4. Cross-reference for core OPMV classes and properties

Class: Agent

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

[back to overview]


Class: Artifact

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

[back to overview]


Class: Process

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

[back to overview]


Property: used

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

[back to overview]


Property: wasControlledBy

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

[back to overview]


Property: wasDerivedFrom

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

[back to overview]


Property: wasEncodedBy

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

[back to overview]


Property: wasEndedAt

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

[back to overview]


Property: wasGeneratedAt

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

[back to overview]


Property: wasGeneratedBy

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

[back to overview]


Property: wasPerformedAt

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

[back to overview]


Property: wasPerformedBy

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

[back to overview]


Property: wasStartedAt

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

[back to overview]


Property: wasTriggeredBy

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

[back to overview]


Property: wasUsedAt

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

[back to overview]


Property: withRespectOf

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

[back to overview]


5. Acknowledgement

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.

6. References

7. Change log