Open Provenance Model Vocabulary Specification

27 August 2010

This version:
http://purl.org/net/opmv/ns-20100827
Latest version:
http://purl.org/net/opmv/ns
Previous version:
http://purl.org/net/opmv/ns-20100528
Revision:
Revision: 0.4
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, provides terms to enable practitioners of data publishing to publish their data responsibly. The Open Provenance Model Vocabulary is based on the community provenance data model, the Open Provenance Model (OPM) [Moreau09]. Although at this development stage OPMV does not aims to be an exact implementation of OPM, this is one ultimate goal of the project. Our goal is that the OPMV will be used together with other provenance-related RDF/OWL vocabularies/ontologies (such as Dublin Core, FOAF, 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. In this release the OPMV Core only includes the three core concepts and five core properties defined by OPM, and it has yet implemented every structure specified in OPM. Also the OPMV Core introduces some terms and properties that are not specified in OPM, which could be mapped to OPM, similar to how DC terms being mapped to OPM [Miles09]. A complete mapping of OPMV as an OPM profile is our future work in the next release. This documents specifies the classes and properties introduced by 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 of opmv we yet provide any supplementary modules. This is work of future releases.

OPMV is closed based on the OPM model, which is a provenance data model driven by a community effort for facilitating interoperability between provenance systems [Moreau09]. An existing OWL serialization for OPM is available at [opm-owl]. However, a list of known issues have been identified [Tennison10]. The Open Provenance Model Vocabulary (OPMV) aims to provide a new serialization of OPM and to support as many features of OPM as possible. We try to take advantage of Semantic Web technologies during the implementation of OPM specification. Detailed information about using the Open Provenance Model Vocabulary and many examples can be found in [Zhao10].

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 | wasOperatedBy | wasPerformedAt | wasPerformedBy | wasStartedAt | wasTriggeredBy |

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.

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:Artifact 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:Agent opmv:Process
in domain of:opmv:wasDerivedFrom opmv:wasEncodeBy opmv:wasGeneratedBy
in range of:opmv:wasDerivedFrom opmv:wasEncodeBy 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:wasControlledBy opmv:wasPerformedBy opmv:wasTriggeredBy opmv:used
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: wasGeneratedAt

wasGeneratedAt is an abstract property to express that an artifact was generated at a given time instant.

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: wasOperatedBy

wasOperatedBy is an abstract property to express that an agent was operated by another agent in the process that leads to the production of an artifact.

Identifier:http://purl.org/net/opmv/ns#wasOperatedBy
OWL Type:ObjectProperty
Domain: opmv:Agent
Range: opmv:Agent

[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: 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: wasStartedAt

wasStartedAt is an object property to express that a process was started at a given time instant.

Identifier:http://purl.org/net/opmv/ns#wasStartedAt
OWL Type:ObjectProperty
Domain: opmv:Process
Range: time:Instant

[back to overview]


Property: wasEndedAt

wasEndedAt is an object property to express that a process was ended at a given time instant.

Identifier:http://purl.org/net/opmv/ns#wasEndedAt
OWL Type:ObjectProperty
Domain: opmv:Process
Range: time:Instant

[back to overview]


Property: wasPerformedBy

wasPerformedBy is an object property to express that a process was performed by another process. 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: wasEncodedBy

wasEncodedBy is an object property to express that an artifact is encoded by another artifact. It is useful to express 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]


5. Acknowledgement

We would like to acknowledge the contributions of Jeni Tennison, Luc Moreau, Olaf Hartig, Stuart Williams, and John Sheridan towards this specification.

6. References

7. Change log