W3C

PROV-O: The PROV Ontology

W3C Editor's Draft 02 April 2012

This version:
http://dvcs.w3.org/hg/prov/raw-file/default/ontology/ProvenanceFormalModel.html
Latest published version:
http://www.w3.org/TR/prov-o/
Latest editor's draft:
http://dvcs.w3.org/hg/prov/raw-file/default/ontology/ProvenanceFormalModel.html
Previous version:
http://www.w3.org/TR/2011/WD-prov-o-20111213/
Editors:
Timothy Lebo, Rensselaer Polytechnic Institute, USA
Satya Sahoo, Case Western Reserve University, USA
Deborah McGuinness, Rensselaer Polytechnic Institute, USA
Mike Lang, Jr., Revelytix, USA
Authors:
(In alphabetical order)
Khalid Belhajjame, University of Manchester, UK
James Cheney, University of Edinburgh, UK
Daniel Garijo, Universidad Politécnica de Madrid, Spain
Stian Soiland-Reyes, University of Manchester, UK
Stephan Zednik, Rensselaer Polytechnic Institute, USA
Jun Zhao, University of Oxford, UK

Abstract

The PROV Ontology (also PROV-O) encodes the PROV Data Model [PROV-DM] in the OWL2 Web Ontology Language (OWL2). It provides a set of classes, properties, and restrictions that can be used to represent and interchange provenance information. It can also be specialized to create new classes and properties for modeling provenance information specific to different domain applications.

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

This specification defines the PROV Ontology as the normative representation of the PROV Data Model using the Web Ontology Language (OWL2). This document is part of a set of specifications being created to address the issue of provenance interchange in Web applications. This document is accompanied by (1) the PROV Data Model, (2) the PROV Access and Query, and (3) the Primer documents.

This document was published by the Provenance Working Group as an Editor's Draft. If you wish to make comments regarding this document, please send them to public-prov-wg@w3.org (subscribe, archives). All feedback is welcome.

Publication as an Editor's Draft 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 PROV Ontology (also PROV-O) defines the normative modeling of the PROV Data Model [PROV-DM] using the W3C OWL2 Web Ontology Language. This document specification describes the set of classes, properties, and restrictions that constitute the PROV ontology, which have been introduced in the PROV Data Model [PROV-DM]. This ontology specification provides the foundation for implementation of provenance applications in different domains using the PROV ontology for representing, exchanging, and integrating provenance information. Together with the PROV Access and Query [PROV-PAQ] and PROV Data Model [PROV-DM], this document forms a framework for provenance information interchange and management in domain-specific Web-based applications.

The PROV ontology classes and properties are defined such that they can not only be used directly to represent provenance information, but also can be specialized for modeling application-specific provenance details in a variety of domains. Thus, the PROV ontology is expected to be both directly usable in applications as well as serve as a reference model for creation of domain-specific provenance ontology and thereby facilitate interoperable provenance modeling. This document uses an example provenance scenario introduced in the PROV-Primer [PROV-PRIMER] to demonstrate the use PROV-O classes and properties to model provenance information.

The key words "must", "must not", "required", "shall", "shall not", "should", "should not", "recommended", "may", and "optional" in this document are to be interpreted as described in [RFC2119].

PROV-O is a lightweight OWL-RL ontology designed to represent and interchange provenance information generated in different systems and under different contexts.

The PROV Data Model [PROV-DM] introduces a minimal set of concepts to represent provenance information in a variety of application domains. This document maps the PROV Data Model to PROV Ontology using the OWL2 ontology language, which facilitates a fixed interpretation and use of the PROV Data Model concepts based on the formal semantics of OWL2 [OWL2-DIRECT-SEMANTICS] [OWL2-RDF-BASED-SEMANTICS].

The PROV Ontology can be used directly in a domain application, though many domain applications may require specialization of PROV-O Classes and Properties for representing domain-specific provenance information. We briefly introduce some of the OWL2 modeling terms that will be used to describe the PROV ontology. An OWL2 instance is an individual object in a domain of discourse, for example a person named Alice or a car, and a set of individuals sharing a set of additional characteristics is called a class. Person and Car are examples of classes representing the set of individual persons and cars respectively. The OWL2 object properties are used to link individuals, classes, or create a property hierarchy. For example, the object property "hasOwner" can be used to link car with person. The OWL2 datatype properties are used to link individuals or classes to data values, including XML Schema datatypes [XMLSCHEMA-2].

The PROV Data Model document [PROV-DM] introduces an example provenance scenario describing the creation of crime statistics file stored on a shared file system and edited by journalists Alice, Bob, Charles, David, and Edith. This scenario is used as a running example in this document to describe the PROV ontology classes and properties, the specialization mechanism, and the entailments supported by the PROV ontology.

2. PROV-O at a glance

PROV-O users may only need to use parts of the entire ontology, depending on their needs and according to how much detail they want to include in their provenance information. For this, the PROV-O terms (classes and properties) are grouped into four categories to provide an incremental introduction to the ontology: Starting Point terms, Expanded terms, terms for Qualifying relationships, and terms for Collections.

Starting Point classes and properties provide the basis for the rest of the PROV ontology and thus it is recommended that readers become comfortable with how to apply these terms before continuing to the remaining categories. These terms are used to create simple provenance descriptions that can be elaborated using terms from other categories. The classes and properties in this category are listed below and are discussed in Section 3.1.

Expanded classes and properties provide additional terms that can be used to relate classes in the Starting Point category. The terms in this category are applied in the same way as the terms in the Starting Point category. The classes and properties in this category are listed below and are discussed in Section 3.2.

Qualified classes and properties provide elaborated information about relations among classes in the Starting Point and Expanded categories. Thus, these terms are applied using a pattern that differs from those in the Starting Point and Expanded categories. While those relations are applied using direct, binary assertions, these terms are used to provide additional attributes on the binary relations. The pattern used in this category allows users to provide elaborate details that are not available using only Starting Point and Expanded terms. The classes and properties in this category are listed below and are discussed in Section 3.3.

Collection classes and properties are specializations of the Starting Point and Qualified terms that describe the provenance of collections as key-value pairs that are inserted and removed to create new collections. The classes and properties in this category are listed below and are discussed in Section 3.4.

3. The PROV-O Ontology Description

This section introduces the terms in each of the following categories:

3.1 Starting Point Terms

The Starting Point category is a small collection of classes and properties that can be used to create simple, initial provenance descriptions. Three classes provide a basis for the rest of PROV-O:

These three classes and the properties that relate them are illustrated in the following figure.

PROV-O Starting Point terms
Figure 1. The three Starting Point classes and the properties that relate them.

Entities are related to each other using derivation, which is used to specify that the creation/existence of an entity was influenced in some way by the consumption of another entity. An entity can be attributed to an agent to specify that the entity was generated by some activity that the agent in question was associated with.

Activities may depend on each other. PROV-O distinguishes between two kinds of dependencies which are specified using the properties wasInformedBy and wasStartedBy. The first is used to specify that an activity used an entity that was generated by another activity, and the second is used to specify that an activity was started or triggered by another activity.

The following PROV-O describes the resources involved when creating a chart about crime statistics. The example uses only Starting Point terms and serves as a basis for elaboration that will be described in subsequent sections. In the example, Derek performs an aggregation of some government crime data, grouping by national regions that are described in a separate dataset by a civil action group.

@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix ex:   <http://example.org#> .

ex:bar_chart
   a prov:Entity;
   prov:wasGeneratedBy ex:illustrationActivity;
   prov:wasDerivedFrom ex:aggregatedByRegions;
.

ex:illustrationActivity 
   a prov:Activity; 
   prov:used              ex:aggregatedByRegions;
   prov:wasAssociatedWith ex:derek;
   prov:wasInformedBy     ex:aggregationActivity;
.

ex:aggregatedByRegions
   a prov:Entity;
   prov:wasGeneratedBy ex:aggregationActivity;
.

ex:aggregationActivity
   a prov:Activity;
   prov:wasStartedAt      "2011-07-14T01:01:01Z"^^xsd:dateTime;
   prov:wasAssociatedWith ex:derek;
   prov:used              ex:crimeData;
   prov:used              ex:nationalRegionsList;
   prov:wasEndedAt        "2011-07-14T02:02:02Z"^^xsd:dateTime;
.

ex:crimeData
   a prov:Entity;
   prov:wasAttributedTo ex:government;
.
ex:nationalRegionsList 
   a prov:Entity;
   prov:wasAttributedTo ex:civil_action_group;
.

ex:aggregatedByRegions prov:wasAttributedTo ex:derek .
ex:bar_chart           prov:wasAttributedTo ex:derek .

ex:derek
   a prov:Agent;
   a foaf:Person;
   foaf:givenName "Derek"^^xsd:string;
   foaf:mbox      <mailto:dererk@example.org>;
   prov:actedOnBehalfOf ex:chartgen 
.

ex:chartgen 
   a prov:Agent;
   a prov:Organization;
   foaf:name "Chart Generators";
. 

ex:government         a prov:Organization, foaf:Organization .
ex:civil_action_group a prov:Organization, foaf:Organization .

The example states that the agent ex:derek was associated with two activities: ex:aggregationActivity and ex:illustrationActivity. The activity ex:aggregationActivity used the entities ex:crimeData (a crime statistics dataset) and ex:nationalRegionsList (a list of national regions), and generated a new entity, ex:aggregatedByRegions, that aggregates the statistics in ex:crimeData according to the regions in ex:nationalRegionsList. The ex:aggregatedByRegions entity was then used by the ex:illustrationActivity activity, to generate a new entity ex:chart1 that depicts the aggregated statistics.

The example also states that the activity ex:illustrationActivity was informed by the activity ex:aggregationActivity. Indeed, the former used the entity ex:aggregatedByRegions, which was generated by the latter.

Because the agent ex:derek was associated with the activities ex:aggregationActivity and ex:illustrationActivity, the entities generated by these activities, i.e., ex:aggregatedByRegions and ex:chart1, were attributed to him.

Finally, the example states that the agent ex:derek acted on behalf of the organization ex:chartgen.

3.2 Expanded Terms

This section defines additional terms to describe provenance at a greater level of specificity (for example, prov:Person or prov:SoftwareAgent in place of prov:Agent) and with more details (for example, prov:Location to describe address of a prov:Organization). In addition, the new terms in this section facilitate modeling of common provenance assertions related to web resources. For example, different version of a web page can be represented using the prov:wasRevisionOf property and the prov:hadOriginalSource property can be used to reference the original source of information used in a web resource. Many of the properties introduced in this section are also "shortcut" notations for combining the PROV-O terms introduced in Section 3.1 "Starting Point Terms", which make it easier for provenance annotation of a resource.

We illustrate the use of the new terms using an example below

@prefix ex:   <http://www.example.org/>
@prefix prov: <http://www.w3.org/ns/prov-o/>

# Example taken from: 
# http://www.w3.org/blog/SW/2011/10/23/5-simple-provenance-statements
# A post is attributed to an agent.
# The post extracted the information from another post

ex:oldPost a prov:Entity.

ex:post 
   a prov:Entity;
   prov:hadOriginalSource ex:oldPost;
   prov:wasAttributedTo   ex:Paul;
.

ex:Paul a prov:Person.

3.3 Qualified Terms

The classes and properties in the Qualified terms category are for users who wish to provide additional details about the relationships between entities, activities, and agents. The terms in this category are the result of applying the Qualification Pattern to the simple relations available in the Starting Point and Expanded categories.

For example, Figure 2 illustrates the classes and properties needed to fulfill the qualification pattern for the prov:used and prov:wasAssociatedWith properties. While prov:qualifiedUsage, prov:Usage, and prov:entity are used to qualify prov:used relations, prov:qualifiedAssociation, prov:Association, and prov:agent are used to qualify prov:wasAssociatedWith relations. This pattern applies to the twelve other relations that can be qualified.

In the example, the prov:qualifiedUsage property parallels the prov:used property, and references an instance of prov:Usage that provides attributes of the prov:used relation between the Activity and Entity. The prov:entity property is used to cite the Entity that was used by the Activity. In this case, the time that the Activity used the Entity is provided using the prov:atTime property and a literal xsd:dateTime value.

Similarly, the prov:qualifiedAssociation property parallels the prov:wasAssociatedWith property, and references an instance of prov:Association that provides attributes of the prov:wasAssociatedWith relation between the Activity and Agent. The prov:agent property is used to cite the Agent that was involved in the Activity. In this case, the plan that the Agent used is provided using the prov:hadPlan property and an instance of prov:Plan.

Express association between an activity and an agent using a binary relationship and an alternatie qualified relationship
Figure 2. An illustration of the qualification pattern applied to the Starting Point properties prov:used and prov:wasAssociatedWith.

The following two examples show the result of applying the Usage and Association patterns to the chart making example from Section 3.1.

Qualified Usage

The prov:qualifiedUsage property parallels the prov:used property to provide an additional description to ex:illustrationActivity. The instance of prov:Usage cites the data used (ex:aggregatedByRegions) and the time the activity used it (2011-07-14T03:03:03Z).

@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix ex:   <http://example.org#> .

ex:illustrationActivity 
   a prov:Activity;                   ## (Using Starting Point terms)
   prov:used ex:aggregatedByRegions;  ## The aggregated data was used to create the chart.
.

ex:aggregatedByRegions a prov:Entity .

ex:illustrationActivity		
   prov:qualifiedUsage  [
      a prov:Usage;
      prov:entity ex:aggregatedByRegions;                ## Qualification: The aggregated data was used 
      prov:atTime "2011-07-14T03:03:03Z"^^xsd:dateTime;  ## at a particular time when creating the chart.
   ];
.
Qualified Association

The prov:qualifiedAssociation property parallels the prov:wasAssociatedWith property to provide an additional description to ex:illustrationActivity. The instance of prov:Association cites the agent (ex:derek) that followed the instructions (ex:tutorial_blog).

@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix ex:   <http://example.org#> .

ex:illustrationActivity             
   a prov:Activity;                  ## (Using Starting Point terms)
   prov:wasAssociatedWith ex:derek;  ## Derek was responsible for the chart making in some way.
.

ex:derek a prov:Agent .

ex:illustrationActivity
   prov:qualifiedAssociation [       ## Qualification: What plan (or recipe, instructions) 
      a prov:Association;            ## did Derek follow when creating the graphical chart?
      prov:agent   ex:derek
      prov:hadPlan ex:tutorial_blog;
   ];
.

ex:tutorial_blog a prov:Plan, prov:Entity .

Usage and Association (described above) are accompanied by six other qualifications of Starting Point relations. The following table lists the simple relations that can be qualified, along with the qualification property, qualification class, and the property used to indicate the object of the qualified relation.

Qualification Property and Involvement Class used to qualify a Starting-point Property.
Starting-point Property Qualification Property Involvement Class Object Property
prov:actedOnBehalfOf prov:qualifiedResponsibility prov:Responsibility prov:agent
prov:used prov:qualifiedUsage prov:Usage prov:entity
prov:wasAssociatedWith prov:qualifiedAssociation prov:Association prov:agent
prov:wasAttributedTo prov:qualifiedAttribution prov:Attribution prov:agent
prov:wasDerivedFrom prov:qualifiedDerivation prov:Derivation prov:entity
prov:wasGeneratedBy prov:qualifiedGeneration prov:Generation prov:activity
prov:wasInformedBy prov:qualifiedCommunication prov:Communication prov:activity
prov:wasStartedByActivity prov:qualifiedStartByActivity prov:StartByActivity prov:activity

Six relations from the Expanded category can also be qualified. The following table lists the simple relations that can be qualified, along with the qualification property, qualification class, and the property used to indicate the object of the qualified relation.

Qualification Property and Involvement Class used to qualify an Expanded Property.
Expanded Property Qualification Property Involvement Class Object Property
prov:hadOriginalSource prov:qualifiedSource prov:Source prov:entity
prov:tracedTo prov:qualifiedTrace prov:Trace prov:entity
prov:wasEndedBy prov:qualifiedEnd prov:End prov:agent
prov:wasQuotedFrom prov:qualifiedQuotation prov:Quotation prov:entity
prov:wasRevisionOf prov:qualifiedRevision prov:Revision prov:entity
prov:wasStartedBy prov:qualifiedStart prov:Start prov:agent

This section finishes with two more examples of qualification as applied to the chart making example from Section 3.1.

Qualified Generation

The prov:qualifiedGeneration property parallels the prov:wasGeneratedBy property to provide an additional description to ex:chart1. The instance of prov:Generation cites the time (2011-07-14T15:52:14Z) that the activity (ex:illustrationActivity) generated the chart (ex:chart1).

@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix ex:   <http://example.org#> .

ex:chart1 
   a prov:Entity;                                ## (Using Starting Point terms)
   prov:wasGeneratedBy ex:illustrationActivity;  ## The chart was generated in an illustration activity.
.

ex:illustrationActivity a prov:Activity .

ex:chart1
   prov:qualifiedGeneration [
      a prov:Generation;
      prov:activity ex:illustrationActivity;             ## Qualification: The chart was 
      prov:atTime "2011-07-14T15:52:14Z"^^xsd:dateTime;  ## generated at a particular time.
   ];
.
Qualified Derivation

The prov:qualifiedDerivation property parallels the prov:wasDerivedFrom property to provide an additional description to ex:chart1. The instance of prov:Derivation cites the activity (ex:illustrationActivity) and the Usages and Generations that the activity conduced to create the chart (ex:chart1).

@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix ex:   <http://example.org#> .

ex:chart1
   a prov:Entity;                               ## (Using Starting Point terms)
   prov:wasDerivedFrom ex:aggregatedByRegions;  ## The chart was derived from the aggregate.
.

ex:aggregatedByRegions a prov:Entity .

ex:chart1
   prov:qualifiedDerivation   [           
      a prov:Derivation;
      prov:entity        ex:aggregatedByRegions;  ## Qualification: additional information about the derivation:
      prov:hadUsage      ex:usage;                ## Which activity derived the aggregate?
      prov:hadActivity   ex:activity;             ## What did the activity use to derive the aggregate?
      prov:hadGeneration ex:generation;           ## How did the activity generate the derived aggregate?
   ];
.

3.4 Collections Terms

A collection is an entity that provides a structure to some constituents, which are themselves entities. These constituents are said to be member of the collections.

Conceptually, a collection has a logical structure consisting of key-value pairs. This structure is often referred to as a map, and is a generic indexing mechanisms that can abstract commonly used data structures, including associative lists (also known as "dictionaries" in some programming languages), relational tables, ordered lists, and more (the specification of such specialized structures in terms of key-value pairs is out of the scope of this document).

A given collection forms a given structure for its members. A different structure (obtained either by insertion or removal of members) constitutes a different collection. Hence, for the purpose of provenance, a collection entity is viewed as a snapshot of a structure. Insertion and removal operations result in new snapshots, each snapshot forming an identifiable collection entity.

In PROV-O, an entity is indicated to be a collection by using the subclass prov:Collection. Its subclass prov:EmptyCollection indicates that the collection has no members. Members of a collection are expressed through prov:KeyValuePairs. The members can be expressed explicitly using prov:knownMembership, and indirectly through a series of collection derivations of insertions and removals, using prov:derivedByInsertionFrom and prov:derivedByRemovalFrom.

To specify the key-value pairs inserted, prov:derivedByInsertionFrom must be qualified using prov:qualifiedInsertion to a Insertion, which indicates the pairs using prov:inserted to some prov:KeyValuePair. Its prov:key is any RDF literal, while the prov:value is a prov:Entity. Likewise, removal are qualified using prov:qualifiedRemoval to a Removal, which prov:removedKey points to the removed key. prov:Insertion, prov:Removal and prov:Membership can have custom properties and identifiers, as described in PROV-DM.

The example below shows how :c and :c1 are collections. :c is empty, while :c1 is derived by inserting the key-value pairs {("k1", :e1), ("k2", :e2)}.

@prefix prov:    <http://www.w3.org/ns/prov#> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .

:e1 a prov:Entity .
:e2 a prov:Entity .
:c a prov:EmptyCollection .
:c1 a prov:Collection .
    prov:derivedByInsertionFrom :c ;
    prov:qualifiedInsertion [ a prov:Insertion ;  
        prov:collection :c ;
        prov:inserted [ a prov:KeyValuePair ;
            prov:key "k1"^^xsd:string ;
            prov:value :e1 ;
          ], [ a prov:KeyValuePair ;
            prov:key "k2"^^xsd:string ;
            prov:value :e2 ;
          ]
      ] .

The following example shows how :c3 has been derived from :c2, which content is not asserted. The keys "k1" and "k3" and their corresponding values have been removed in :c3.

@prefix prov:    <http://www.w3.org/ns/prov#> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
           
:c2 a prov:Collection .
:c3 a prov:Collection .
    prov:derivedByRemovalFrom :c2 ;
    prov:qualifiedRemoval [ a prov:Removal ;
         prov:collection :c2 ;
         prov:removed "k1"^^xsd:string, "k3"^^xsd:string 
      ] .  

The next example shows how the members of :c1 has been described as the key-value pairs {("k1", :e1), ("k2", :e2)}. Note that this assertion does not claim there are not other members.

@prefix prov:    <http://www.w3.org/ns/prov#> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .

:c1 prov:knownMembership [ a prov:Membership ;
    prov:member [ a prov:KeyValuePair;
        prov:key "k1"^^xsd:string ;
        prov:value :e1
      ] , [ a prov:KeyValuePair;
        prov:key "k2"^^xsd:string ;
        prov:value :e2
      ] .

4. Cross reference for PROV-O classes and properties

This section provides details for each class and property defined by the PROV ontology, grouped by the categories described above:

4.1 Starting Point Terms

The classes and properties that provide a basis for all other PROV-O terms are discussed in Section 3.1.

prov:Activity back to starting-point classes

IRI: http://www.w3.org/ns/prov#Activity

An activity is something that occurs over a period of time and acts upon or with entities. This action can take multiple forms: consuming, processing, transforming, modifying, relocating, using, generating, or being associated with entities. Activities that operate on digital entities may for example move, copy, or duplicate them.

in PROV component
entities-activities
in domain of
prov:qualifiedCommunication op prov:wasStartedByActivity op prov:qualifiedStart op prov:wasInformedBy op prov:startedAtTime dp prov:wasEndedBy op prov:qualifiedStartByActivity op prov:generated op prov:qualifiedAssociation op prov:wasAssociatedWith op prov:qualifiedEnd op prov:wasStartedBy op prov:endedAtTime dp prov:qualifiedUsage op prov:used op
in range of
prov:wasStartedByActivity op prov:activity op prov:wasInformedBy op prov:hadActivity op prov:responsibleForActivity op prov:wasGeneratedBy op

prov:Agent back to starting-point classes

IRI: http://www.w3.org/ns/prov#Agent

An agent is a type of entity that bears some form of responsibility for an activity taking place.

in PROV component
agents-responsibility
is subclass of
prov:Thing
in domain of
prov:actedOnBehalfOf op prov:qualifiedResponsibility op
in range of
prov:actedOnBehalfOf op prov:hadQuoter op prov:agent op prov:wasAssociatedWith op prov:wasAttributedTo op prov:hadQuoted op
has subclasses
prov:Organization prov:Person prov:SoftwareAgent

prov:Entity back to starting-point classes

IRI: http://www.w3.org/ns/prov#Entity

An entity is a thing one wants to provide provenance for. For the purpose of this specification, things can be physical, digital, conceptual, or otherwise; things may be real or imaginary.

in PROV component
entities-activities
in domain of
prov:alternateOf op prov:qualifiedSource op prov:qualifiedGeneration op prov:qualifiedAttribution op prov:wasQuotedFrom op prov:wasAttributedTo op prov:hadOriginalSource op prov:qualifiedQuotation op prov:wasRevisionOf op prov:tracedTo op prov:qualifiedTrace op prov:qualifiedRevision op prov:wasGeneratedBy op prov:wasDerivedFrom op prov:qualifiedDerivation op prov:specializationOf op
in range of
prov:alternateOf op prov:value op prov:wasStartedBy op prov:wasQuotedFrom op prov:hadOriginalSource op prov:tracedTo op prov:wasRevisionOf op prov:generated op prov:wasDerivedFrom op prov:entity op prov:specializationOf op prov:used op
has subclasses
prov:Collection prov:Plan prov:Account

prov:actedOnBehalfOf op back to starting-point properties

IRI: http://www.w3.org/ns/prov#actedOnBehalfOf

in PROV component
agents-responsibility
has super-properties
has domain
has range
can be qualified with

prov:endedAtTime dp back to starting-point properties

IRI: http://www.w3.org/ns/prov#endedAtTime

has characteristics Functional

in PROV component
entities-activities
has domain
has range
  • http://www.w3.org/2001/XMLSchema#dateTime

prov:startedAtTime dp back to starting-point properties

IRI: http://www.w3.org/ns/prov#startedAtTime

has characteristics Functional

in PROV component
entities-activities
has domain
has range
  • http://www.w3.org/2001/XMLSchema#dateTime

prov:used op back to starting-point properties

IRI: http://www.w3.org/ns/prov#used

A prov:Entity that was used by this prov:Activity. For example, :baking prov:used :spoon, :egg, :oven .

has characteristics Asymmetric , Irreflexive

in PROV component
entities-activities
has super-properties
has domain
has range
can be qualified with

prov:wasAssociatedWith op back to starting-point properties

IRI: http://www.w3.org/ns/prov#wasAssociatedWith

A prov:Agent that had some (unspecified) responsibility for the occurrence of this prov:Activity.

in PROV component
agents-responsibility
has super-properties
has domain
has range
has sub-properties
can be qualified with

prov:wasAttributedTo op back to starting-point properties

IRI: http://www.w3.org/ns/prov#wasAttributedTo

in PROV component
agents-responsibility
has super-properties
has domain
has range
can be qualified with

prov:wasDerivedFrom op back to starting-point properties

IRI: http://www.w3.org/ns/prov#wasDerivedFrom

has characteristics Asymmetric , Irreflexive

in PROV component
derivations
has super-properties
has domain
has range
has sub-properties
can be qualified with

prov:wasGeneratedBy op back to starting-point properties

IRI: http://www.w3.org/ns/prov#wasGeneratedBy

wasGeneratedBy links Entitites with Activity representing that entity was generated as a result of Activity

has characteristics Functional , Asymmetric , Irreflexive

in PROV component
entities-activities
has super-properties
has domain
has range
can be qualified with

prov:wasInformedBy op back to starting-point properties

IRI: http://www.w3.org/ns/prov#wasInformedBy

in PROV component
entities-activities
has super-properties
has domain
has range
can be qualified with

prov:wasStartedByActivity op back to starting-point properties

IRI: http://www.w3.org/ns/prov#wasStartedByActivity

in PROV component
entities-activities
has super-properties
has domain
has range
can be qualified with

4.2 Expanded Terms

The additional terms used to describe relations among Starting Point classes are discussed in Section 3.2.

prov:Account back to expanded classes

IRI: http://www.w3.org/ns/prov#Account

An account is any mechanism by which a set of provenance descriptions can be bundled up and named.

Note that there are kinds of accounts (e.g. handwritten letters, audio recordings, etc.) that are not expressed in PROV-O, but can be still be described by PROV-O.

is subclass of
prov:Entity

prov:Location back to expanded classes

IRI: http://www.w3.org/ns/prov#Location

A location can be an identifiable geographic place (ISO 19112), but it can also be a non-geographic place such as a directory, row, or column. As such, there are numerous ways in which location can be expressed, such as by a coordinate, address, landmark, and so forth.

in range of
prov:hadLocation op

prov:Note back to expanded classes

IRI: http://www.w3.org/ns/prov#Note

Attribute-value pairs occurring in notes are application specific.

in PROV component
annotations
in range of
prov:hasAnnotation op

prov:Organization back to expanded classes

IRI: http://www.w3.org/ns/prov#Organization

Agents of type Organization are social institutions such as companies, societies etc.

in PROV component
agents-responsibility
is subclass of
prov:Agent

prov:Person back to expanded classes

IRI: http://www.w3.org/ns/prov#Person

Agents of type Person are people.

in PROV component
agents-responsibility
is subclass of
prov:Agent

prov:SoftwareAgent back to expanded classes

IRI: http://www.w3.org/ns/prov#SoftwareAgent

A software agent is running software.

in PROV component
agents-responsibility
is subclass of
prov:Agent

prov:alternateOf op back to expanded properties

IRI: http://www.w3.org/ns/prov#alternateOf

in PROV component
alternate
has domain
has range

prov:generated op back to expanded properties

IRI: http://www.w3.org/ns/prov#generated

This inverse of prov:wasGeneratedBy is defined so that Activities being described can reference their generated outputs directly without needing to 'stop' and start describing the Entity. This helps 'Activity-centric' modeling as opposed to 'Entity-centric' modeling.

in PROV component
entities-activities
has super-properties
has domain
has range
has inverse

prov:hadLocation op back to expanded properties

IRI: http://www.w3.org/ns/prov#hadLocation

Location is an optional attribute of Entity and Activity.

has characteristics Asymmetric , Irreflexive

has range

prov:hadOriginalSource op back to expanded properties

IRI: http://www.w3.org/ns/prov#hadOriginalSource

in PROV component
derivations
has super-properties
has domain
has range
can be qualified with

prov:hasAnnotation op back to expanded properties

IRI: http://www.w3.org/ns/prov#hasAnnotation

in PROV component
annotations
has range

prov:specializationOf op back to expanded properties

IRI: http://www.w3.org/ns/prov#specializationOf

in PROV component
alternate
has domain
has range

prov:tracedTo op back to expanded properties

IRI: http://www.w3.org/ns/prov#tracedTo

has characteristics Transitive

in PROV component
derivations
has super-properties
has domain
has range
has sub-properties
can be qualified with

prov:wasEndedBy op back to expanded properties

IRI: http://www.w3.org/ns/prov#wasEndedBy

in PROV component
entities-activities
has super-properties
has domain
can be qualified with

prov:wasQuotedFrom op back to expanded properties

IRI: http://www.w3.org/ns/prov#wasQuotedFrom

in PROV component
derivations
has super-properties
has domain
has range
can be qualified with

prov:wasRevisionOf op back to expanded properties

IRI: http://www.w3.org/ns/prov#wasRevisionOf

in PROV component
derivations
has super-properties
has domain
has range
can be qualified with

prov:wasStartedBy op back to expanded properties

IRI: http://www.w3.org/ns/prov#wasStartedBy

in PROV component
entities-activities
has super-properties
has domain
has range
can be qualified with

4.3 Qualified Terms

The terms used to qualify the Starting Point and Expanded properties are discussed in Section 3.3.

prov:ActivityInvolvement back to qualified classes

IRI: http://www.w3.org/ns/prov#ActivityInvolvement

prov:ActivityInvolvement provides descriptions of any binary involvement between any instance and an prov:Activity.

is subclass of
prov:Involvement
in domain of
prov:activity op
has subclasses
prov:Generation prov:Communication prov:StartByActivity

prov:AgentInvolvement back to qualified classes

IRI: http://www.w3.org/ns/prov#AgentInvolvement

prov:AgentInvolvement provides descriptions of any binary involvement between any instance and an prov:Agent.

is subclass of
prov:Involvement
in domain of
prov:agent op
has subclasses
prov:End prov:Responsibility prov:Association prov:Attribution prov:Start

prov:Association back to qualified classes

IRI: http://www.w3.org/ns/prov#Association

An activity association is an assignment of responsibility to an agent for an activity, indicating that the agent had a role in the activity. It further allows for a plan to be specified, which is the plan intended by the agent to achieve some goals in the context of this activity.

An instance of prov:Association provides additional descriptions about the binary prov:wasAssociatedWith relation from an prov:Activity to some prov:Agent that is responsible for it. For example, :baking prov:wasAssociatedWith :baker; prov:qualified [ a prov:Association; prov:entity :baker; :foo :bar ].

in PROV component
agents-responsibility
is subclass of
prov:AgentInvolvement
in domain of
prov:hadPlan op
in range of
prov:qualifiedAssociation op
qualifies
prov:wasAssociatedWith

prov:Attribution back to qualified classes

IRI: http://www.w3.org/ns/prov#Attribution

Attribution is the ascribing of an entity to an agent.

An instance of prov:Attribution provides additional descriptions about the binary prov:wasAttributedTo relation from an prov:Entity to some prov:Agent that is responsible for it. For example, :cake prov:wasAttributedTo :baker; prov:qualified [ a prov:Attribution; prov:entity :baker; :foo :bar ].

in PROV component
agents-responsibility
is subclass of
prov:AgentInvolvement
in range of
prov:qualifiedAttribution op
qualifies
prov:wasAttributedTo

prov:Communication back to qualified classes

IRI: http://www.w3.org/ns/prov#Communication

Communication is the exchange of an entity by two activities, one activity using the entity generated by the other.

An instance of prov:Communication provides additional descriptions about the binary prov:wasInformedBy relation from an informed prov:Activity to the prov:Activity that informed it. For example, :you_jumping_off_bridge prov:wasInformedBy :everyone_else_jumping_off_bridge; prov:qualifiedCommunication [ a prov:Communication; prov:entity :everyone_else_jumping_off_bridge; :foo :bar ].

in PROV component
entities-activities
is subclass of
prov:ActivityInvolvement
in range of
prov:qualifiedCommunication op
qualifies
prov:wasInformedBy

prov:Derivation back to qualified classes

IRI: http://www.w3.org/ns/prov#Derivation

A derivation is a transformation of an entity into another, a construction of an entity into another, or an update of an entity, resulting in a new one.

An instance of prov:Derivation provides additional descriptions about the binary prov:wasDerivedFrom relation from some prov:Entity to another prov:Entity. For example, :chewed_bubble_gum prov:wasDerivedFrom :unwrapped_bubble_gum; prov:qualified [ a prov:Derivation; prov:entity :unwrapped_bubble_gum; :foo :bar ].

in PROV component
derivations
is subclass of
prov:EntityInvolvement
in domain of
prov:hadUsage op prov:hadActivity op prov:hadGeneration op
in range of
prov:qualifiedDerivation op
qualifies
prov:wasDerivedFrom

prov:End back to qualified classes

IRI: http://www.w3.org/ns/prov#End

An activity end event is the instantaneous event that marks the instant an activity ends.

An instance of prov:End provides additional descriptions about the binary prov:wasEndedBy relation from some ended prov:Activity to an prov:Entity that ended it. For example, :ball_game prov:wasEndedBy :buzzer; prov:qualified [ a prov:Usage; prov:entity :buzzer; :foo :bar; prov:atTime '2012-03-09T08:05:08-05:00'^^xsd:dateTime ].

in PROV component
entities-activities
is subclass of
prov:InstantaneousEvent prov:AgentInvolvement
in range of
prov:qualifiedEnd op
qualifies
prov:wasEndedBy

prov:EntityInvolvement back to qualified classes

IRI: http://www.w3.org/ns/prov#EntityInvolvement

prov:EntityInvolvement provides descriptions of any binary involvement between any instance and an prov:Entity.

is subclass of
prov:Involvement
in domain of
prov:entity op
has subclasses
prov:Usage prov:Source prov:Revision prov:Quotation prov:Derivation prov:Trace

prov:Generation back to qualified classes

IRI: http://www.w3.org/ns/prov#Generation

An entity generation event is the instantaneous event that marks the final instant of an entity's creation timespan, after which it is no longer available for use.

An instance of prov:Generation provides additional descriptions about the binary prov:wasGeneratedBy relation from a generated prov:Entity to the prov:Activity that generated it. For example, :cake prov:wasGeneratedBy :baking; prov:qualifiedGeneration [ a prov:Generation; prov:entity :baking; :foo :bar ].

in PROV component
entities-activities
is subclass of
prov:InstantaneousEvent prov:ActivityInvolvement
in range of
prov:hadGeneration op prov:qualifiedGeneration op
qualifies
prov:wasGeneratedBy

prov:InstantaneousEvent back to qualified classes

IRI: http://www.w3.org/ns/prov#InstantaneousEvent

An instantaneous event, or event for short, happens in the world and marks a change in the world, in its activities and in its entities. The term 'event' is commonly used in process algebra with a similar meaning. Events represent communications or interactions; they are assumed to be atomic and instantaneous.

in PROV component
entities-activities
in domain of
prov:atTime dp
has subclasses
prov:Generation prov:End prov:Usage prov:Start

prov:Involvement back to qualified classes

IRI: http://www.w3.org/ns/prov#Involvement

Any resource that involved an prov:Activity, prov:Entity, or prov:Agent can qualify its involvement by also referencing an instance of prov:Involvement. Instances of prov:Involvement reference the involved Activity, Entity, or Agent (using prov:activity, prov:entity, or prov:agent, respectively) and may be described with any kind of attributes, including user-defined attributes and those provided by PROV (prov:hadRole, prov:hadPlan, prov:atTime, prov:hadLocation). A description (via prov:Involvement) of the binary involvement implies the assertion of the binary involvement.

in domain of
prov:hadRole op
has subclasses
prov:CollectionInvolvement prov:EntityInvolvement prov:AgentInvolvement prov:ActivityInvolvement
qualifies
prov:involved

prov:Plan back to qualified classes

IRI: http://www.w3.org/ns/prov#Plan

A plan is an entity that represents a set of actions or steps intended by one or more agents to achieve some goals.

There exist no prescriptive requirement on the nature of plans, their representation, the actions or steps they consist of, or their intended goals. Since plans may evolve over time, it may become necessary to track their provenance, so plans themselves are entities. Representing the plan explicitly in the provenance can be useful for various tasks: for example, to validate the execution as represented in the provenance record, to manage expectation failures, or to provide explanations.

in PROV component
agents-responsibility
is subclass of
prov:Entity
in range of
prov:hadPlan op

prov:Quotation back to qualified classes

IRI: http://www.w3.org/ns/prov#Quotation

A quotation is the repeat of (some or all of) an entity, such as text or image, by someone other than its original author.

An instance of prov:Quotation provides additional descriptions about the binary prov:wasQuotedFrom relation from some prov:Entity to another prov:Entity. For example, :here_is_looking_at_you_kid prov:wasQuotedFrom :casablanca_script; prov:qualified [ a prov:Quotation; prov:entity :casablanca_script; :foo :bar ].

in PROV component
derivations
is subclass of
prov:EntityInvolvement
in domain of
prov:hadQuoted op prov:hadQuoter op
in range of
prov:qualifiedQuotation op
qualifies
prov:wasQuotedFrom

prov:Responsibility back to qualified classes

IRI: http://www.w3.org/ns/prov#Responsibility

Responsibility is the fact that an agent is accountable for the actions of a 'subordinate' agent, in the context of an activity.

An instance of prov:Responsibility provides additional descriptions about the binary prov:actedOnBehalfOf relation from a performing prov:Agent to some prov:Agent for whom it was performed. For example, :mixing prov:wasAssociatedWith :toddler . :toddler prov:actedOnBehalfOf :mother; prov:qualified [ a prov:Responsiblity; prov:entity :mother; :foo :bar ].

in PROV component
agents-responsibility
is subclass of
prov:AgentInvolvement
in domain of
prov:responsibleForActivity op
in range of
prov:qualifiedResponsibility op
qualifies
prov:actedOnBehalfOf

prov:Revision back to qualified classes

IRI: http://www.w3.org/ns/prov#Revision

A revision is a derivation that revises an entity into a revised version.

An instance of prov:Revision provides additional descriptions about the binary prov:wasRevisionOf relation from some prov:Entity to another prov:Entity. For example, :draft_2 prov:wasRevisionOf :draft_1; prov:qualified [ a prov:Source; prov:entity :draft_1; :foo :bar ].

in PROV component
derivations
is subclass of
prov:EntityInvolvement
in range of
prov:qualifiedRevision op
qualifies
prov:wasRevisionOf

prov:Role back to qualified classes

IRI: http://www.w3.org/ns/prov#Role

A Role is the function of an entity with respect to an activity, in the context of a usage, generation, association, start, and end.

in PROV component
agents-responsibility
in range of
prov:hadRole op

prov:Source back to qualified classes

IRI: http://www.w3.org/ns/prov#Source

An original source refers to the source material that is closest to the person, information, period, or idea being studied.

An instance of prov:Source provides additional descriptions about the binary prov:hadOriginalSource relation from some prov:Entity to another prov:Entity. For example, :blog prov:hadOriginalSource :newsArticle; prov:qualified [ a prov:Source; prov:entity :newsArticle; :foo :bar ].

in PROV component
derivations
is subclass of
prov:EntityInvolvement
in range of
prov:qualifiedSource op
qualifies
prov:hadOriginalSource

prov:Start back to qualified classes

IRI: http://www.w3.org/ns/prov#Start

An activity start event is the instantaneous event that marks the instant an activity starts.

An instance of prov:Start provides additional descriptions about the binary prov:wasStartedBy relation from some started prov:Activity to an prov:Entity that started it. For example, :foot_race prov:wasStartedBy :bang; prov:qualified [ a prov:Usage; prov:entity :bang; :foo :bar; prov:atTime '2012-03-09T08:05:08-05:00'^^xsd:dateTime ].

in PROV component
entities-activities
is subclass of
prov:InstantaneousEvent prov:AgentInvolvement
in range of
prov:qualifiedStart op
qualifies
prov:wasStartedBy

prov:StartByActivity back to qualified classes

IRI: http://www.w3.org/ns/prov#StartByActivity

Start by Activity is the start of an activity with an implicit trigger generated by another activity.

An instance of prov:StartedByActivity provides additional descriptions about the binary prov:wasStartedByActivity relation from some started prov:Activity to another prov:Activity started it. For example, :second_leg_of_relay prov:wasStartedByActivity :handed_baton; prov:qualified [ a prov:Usage; prov:entity :handed_baton; :foo :bar; prov:atTime '2012-03-09T08:05:08-05:00'^^xsd:dateTime ].

in PROV component
entities-activities
is subclass of
prov:ActivityInvolvement
in range of
prov:qualifiedStartByActivity op
qualifies
prov:wasStartedByActivity

prov:Trace back to qualified classes

IRI: http://www.w3.org/ns/prov#Trace

Traceability is the ability to link back an entity to another by means of derivation or responsibility relations, possibly repeatedly traversed.

An instance of prov:Trace provides additional descriptions about the binary prov:tracedTo relation from some prov:Entity to some other prov:Element. For example, :stomach_ache prov:tracedTo :spoon; prov:qualified [ a prov:Trace; prov:entity :spoon; :foo :bar ].

in PROV component
derivations
is subclass of
prov:EntityInvolvement
in range of
prov:qualifiedTrace op
qualifies
prov:tracedTo

prov:Usage back to qualified classes

IRI: http://www.w3.org/ns/prov#Usage

A usage is an instantaneous world event: an activity beginning to consume an entity. Before this event, the activity had not begun to consume or use to this entity.

An instance of prov:Usage provides additional descriptions about the binary prov:used relation from some prov:Activity to an prov:Entity that it used. For example, :keynote prov:used :podium; prov:qualified [ a prov:Usage; prov:entity :podium; :foo :bar ].

in PROV component
entities-activities
is subclass of
prov:InstantaneousEvent prov:EntityInvolvement
in range of
prov:hadUsage op prov:qualifiedUsage op
qualifies
prov:used

prov:activity op back to qualified properties

IRI: http://www.w3.org/ns/prov#activity

The property used by an prov:ActivityInvolvement to cite the Activity that was prov:involved with either an Activity or Entity.

has domain
has range

prov:agent op back to qualified properties

IRI: http://www.w3.org/ns/prov#agent

The property used by a prov:AgentInvolvement to cite the Agent that was prov:involved with either an Activity or Entity.

in PROV component
alternate
has domain
has range

prov:atTime dp back to qualified properties

IRI: http://www.w3.org/ns/prov#atTime

has characteristics Functional

in PROV component
entities-activities
has domain
has range
  • http://www.w3.org/2001/XMLSchema#dateTime

prov:entity op back to qualified properties

IRI: http://www.w3.org/ns/prov#entity

The property used by an prov:EntityInvolvement to cite the Entity that was prov:involved with either an Activity or Entity.

has domain
has range

prov:hadActivity op back to qualified properties

IRI: http://www.w3.org/ns/prov#hadActivity

The activity generating the derived entity and using the derived-from entity.

in PROV component
derivations
has domain
has range

prov:hadGeneration op back to qualified properties

IRI: http://www.w3.org/ns/prov#hadGeneration

The generation involving the generated entity and activity.

in PROV component
derivations
has domain
has range

prov:hadPlan op back to qualified properties

IRI: http://www.w3.org/ns/prov#hadPlan

The Activity performed was described by the given plan resource. Activity specifications, as referred to by plan links, are out of scope of this specification

has characteristics Functional , Asymmetric , Irreflexive

in PROV component
agents-responsibility
has domain
has range

prov:hadQuoted op back to qualified properties

IRI: http://www.w3.org/ns/prov#hadQuoted

The agent who attributed to the original entity.

in PROV component
derivations
has domain
has range

prov:hadQuoter op back to qualified properties

IRI: http://www.w3.org/ns/prov#hadQuoter

The agent who is doing the quoting.

in PROV component
derivations
has domain
has range

prov:hadRole op back to qualified properties

IRI: http://www.w3.org/ns/prov#hadRole

When an instance of prov:Involvement uses the prov:hadRole property to cite a prov:Role, it is providing a role for the instance referenced by the prov:entity or the prov:activity properties. For example, :baking prov:used :spoon; prov:qualified [ a prov:Usage; prov:entity :spoon; prov:hadRole roles:mixing_implement ].

has characteristics Irreflexive

in PROV component
agents-responsibility
has domain
has range

prov:hadUsage op back to qualified properties

IRI: http://www.w3.org/ns/prov#hadUsage

The usage involving the used entity and activity.

in PROV component
derivations
has domain
has range

prov:involved op back to qualified properties

IRI: http://www.w3.org/ns/prov#involved

Subproperties of prov:involved may be be qualified by creating instances of a corresponding prov:Involvement class. For example, the binary relation :baking prov:used :spoon can be qualified by asserting :baking prov:qualified [ a prov:Usage; prov:entity :baking; :foo :bar ] prov:involved should not be used without also using one of its subproperties. Subproperties of prov:involved may also be asserted directly without being qualified.

has sub-properties

prov:qualifiedAssociation op back to qualified properties

IRI: http://www.w3.org/ns/prov#qualifiedAssociation

If this Activity prov:wasAssociatedWith Agent :ag, then it can qualify the Association using prov:qualifiedAssociation [ a prov:Association; prov:agent :ag; :foo :bar ].

has characteristics Inverse Functional

in PROV component
agents-responsibility
has domain
has range
qualifies
prov:wasAssociatedWith

prov:qualifiedAttribution op back to qualified properties

IRI: http://www.w3.org/ns/prov#qualifiedAttribution

If this Entity prov:wasAttributedTo Agent :ag, then it can qualify how it was using prov:qualifiedAttribution [ a prov:Attribution; prov:agent :ag; :foo :bar ].

has characteristics Inverse Functional

in PROV component
agents-responsibility
has domain
has range
qualifies
prov:wasAttributedTo

prov:qualifiedCommunication op back to qualified properties

IRI: http://www.w3.org/ns/prov#qualifiedCommunication

If this Activity prov:wasInformedBy Activity :a, then it can qualify how it was Inform[ed] using prov:qualifiedInform [ a prov:Inform; prov:activity :a; :foo :bar ].

has characteristics Inverse Functional

in PROV component
entities-activities
has domain
has range
can be qualified with

prov:qualifiedDerivation op back to qualified properties

IRI: http://www.w3.org/ns/prov#qualifiedDerivation

If this Entity prov:wasDerivedFrom Entity :e, then it can qualify how it was derived using prov:qualifiedDerivation [ a prov:Derivation; prov:entity :e; :foo :bar ].

has characteristics Inverse Functional

in PROV component
derivations
has domain
has range
qualifies
prov:wasDerivedFrom

prov:qualifiedEnd op back to qualified properties

IRI: http://www.w3.org/ns/prov#qualifiedEnd

If this Activity prov:wasEndedBy Agent :ag, then it can qualify how it was ended using prov:qualifiedEnd [ a prov:End; prov:agent :ag; :foo :bar ].

has characteristics Inverse Functional

in PROV component
entities-activities
has domain
has range
qualifies
prov:wasEndedBy

prov:qualifiedGeneration op back to qualified properties

IRI: http://www.w3.org/ns/prov#qualifiedGeneration

If this Activity prov:generated Entity :e, then it can qualify how it did performed the Generation using prov:qualifiedGeneration [ a prov:Generation; prov:entity :e; :foo :bar ].

has characteristics Inverse Functional

in PROV component
entities-activities
has domain
has range
qualifies
prov:wasGeneratedBy

prov:qualifiedQuotation op back to qualified properties

IRI: http://www.w3.org/ns/prov#qualifiedQuotation

If this Entity prov:wasQuotedFrom Entity :e, then it can qualify how using prov:qualifiedQuotation [ a prov:Quotation; prov:entity :e; :foo :bar ].

has characteristics Inverse Functional

in PROV component
derivations
has domain
has range
qualifies
prov:wasQuotedFrom

prov:qualifiedResponsibility op back to qualified properties

IRI: http://www.w3.org/ns/prov#qualifiedResponsibility

If this Agent prov:actedOnBehalfOf Agent :ag, then it can qualify how with prov:qualifiedResponsibility [ a prov:Responsibility; prov:agent :ag; :foo :bar ].

has characteristics Inverse Functional

in PROV component
agents-responsibility
has domain
has range
qualifies
prov:actedOnBehalfOf

prov:qualifiedRevision op back to qualified properties

IRI: http://www.w3.org/ns/prov#qualifiedRevision

If this Entity prov:wasRevisionOf Entity :e, then it can qualify how it was revised using prov:qualifiedRevision [ a prov:Revision; prov:entity :e; :foo :bar ].

has characteristics Inverse Functional

in PROV component
derivations
has domain
has range
qualifies
prov:wasRevisionOf

prov:qualifiedSource op back to qualified properties

IRI: http://www.w3.org/ns/prov#qualifiedSource

If this Entity prov:hadOriginalSource Entity :e, then it can qualify how using prov:qualifiedSource [ a prov:Source; prov:entity :e; :foo :bar ].

has characteristics Inverse Functional

in PROV component
derivations
has domain
has range
qualifies
prov:hadOriginalSource

prov:qualifiedStart op back to qualified properties

IRI: http://www.w3.org/ns/prov#qualifiedStart

If this Activity prov:wasStartedBy Agent :ag, then it can qualify how it was started using prov:qualifiedStart [ a prov:Start; prov:agent :ag; :foo :bar ].

has characteristics Inverse Functional

in PROV component
entities-activities
has domain
has range
qualifies
prov:wasStartedBy

prov:qualifiedStartByActivity op back to qualified properties

IRI: http://www.w3.org/ns/prov#qualifiedStartByActivity

If this Activity prov:wasStartedByActivity :a, then it can qualify how it was started using prov:qualifiedStart [ a prov:Start; prov:activity :a; :foo :bar ].

has characteristics Inverse Functional

in PROV component
entities-activities
has domain
has range
qualifies
prov:wasStartedByActivity

prov:qualifiedTrace op back to qualified properties

IRI: http://www.w3.org/ns/prov#qualifiedTrace

If this prov:wasAttributedTo Entity :e, then it can qualify how using prov:qualifiedTrace [ a prov:Trace; prov:entity :e; :foo :bar ]. If this prov:wasAttributedTo Activity :a, then it can qualify how using prov:qualifiedTrace [ a prov:Trace; prov:activity :a; :foo :bar ].

has characteristics Inverse Functional

in PROV component
derivations
has domain
has range
qualifies
prov:tracedTo

prov:qualifiedUsage op back to qualified properties

IRI: http://www.w3.org/ns/prov#qualifiedUsage

If this Activity prov:used Entity :e, then it can qualify how it used it using prov:qualifiedUsage [ a prov:Usage; prov:entity :e; :foo :bar ].

has characteristics Inverse Functional

in PROV component
entities-activities
has domain
has range
qualifies
prov:used

prov:responsibleForActivity op back to qualified properties

IRI: http://www.w3.org/ns/prov#responsibleForActivity

An activity for which the responsibility chain holds.

in PROV component
entities-activities
has domain
has range

4.4 Collections Terms

The terms used to describe the provenance of collections of key-value pairs are discussed in Section 3.4.

prov:Collection back to collections classes

IRI: http://www.w3.org/ns/prov#Collection

A collection is an entity that provides a structure to some constituents, which are themselves entities. These constituents are said to be member of the collections.

A given collection forms a given structure for its members. A different structure (obtained either by insertion or removal of members) constitutes a different collection.

This concept allows for the provenance of the collection, but also of its constituents to be expressed. Such a notion of collection corresponds to a wide variety of concrete data structures, such as a maps, dictionaries, or associative arrays.

in PROV component
collections
is subclass of
prov:Entity
in domain of
prov:derivedByInsertionFrom op prov:qualifiedRemoval op prov:qualifiedInsertion op prov:derivedByRemovalFrom op prov:knownMembership op
in range of
prov:derivedByInsertionFrom op prov:collection op prov:derivedByRemovalFrom op
has subclass
prov:EmptyCollection

prov:CollectionInvolvement back to collections classes

IRI: http://www.w3.org/ns/prov#CollectionInvolvement

in PROV component
collections
is subclass of
prov:Involvement
in domain of
prov:collection op
has subclasses
prov:Insertion prov:Removal

prov:EmptyCollection back to collections classes

IRI: http://www.w3.org/ns/prov#EmptyCollection

in PROV component
collections
is subclass of
prov:Collection

prov:Insertion back to collections classes

IRI: http://www.w3.org/ns/prov#Insertion

Insertion is a derivation that transforms a collection into another, by insertion of one or more key-value pairs.

in PROV component
collections
is subclass of
prov:CollectionInvolvement
in domain of
prov:inserted op
in range of
prov:qualifiedInsertion op
qualifies
prov:derivedByInsertionFrom

prov:KeyValuePair back to collections classes

IRI: http://www.w3.org/ns/prov#KeyValuePair

A key-value pair. Part of a prov:Collection through prov:Membership. The key is any RDF Literal, the value is a prov:Entity.

in domain of
prov:value op prov:key dp
in range of
prov:member op prov:inserted op

prov:Membership back to collections classes

IRI: http://www.w3.org/ns/prov#Membership

Described members of a collection, in the form of key-value pairs. The Membership resource can also be annotated with attributes.

in PROV component
collections
in domain of
prov:member op
in range of
prov:knownMembership op
qualifies
prov:knownMembership

prov:Removal back to collections classes

IRI: http://www.w3.org/ns/prov#Removal

Removal is a derivation that transforms a collection into another, by removing one or more key-value pairs.

in PROV component
collections
is subclass of
prov:CollectionInvolvement
in domain of
prov:removedKey dp
in range of
prov:qualifiedRemoval op
qualifies
prov:derivedByRemovalFrom

prov:collection op back to collections properties

IRI: http://www.w3.org/ns/prov#collection

in PROV component
collections
has domain
has range

prov:derivedByInsertionFrom op back to collections properties

IRI: http://www.w3.org/ns/prov#derivedByInsertionFrom

The collection was derived from the other by insertion. prov:qualifiedInsertion shows details of the insertion, in particular the inserted key-value pairs.

in PROV component
collections
has super-properties
has domain
has range
can be qualified with

prov:derivedByRemovalFrom op back to collections properties

IRI: http://www.w3.org/ns/prov#derivedByRemovalFrom

The collection was derived from the other by removal. prov:qualifiedRemoval shows details of the removal, in particular the removed key-value pairs.

in PROV component
collections
has super-properties
has domain
has range
can be qualified with

prov:inserted op back to collections properties

IRI: http://www.w3.org/ns/prov#inserted

in PROV component
collections
has domain
has range

prov:key dp back to collections properties

IRI: http://www.w3.org/ns/prov#key

has characteristics Functional

in PROV component
collections
has domain
has range
  • http://www.w3.org/2000/01/rdf-schema#Literal

prov:knownMembership op back to collections properties

IRI: http://www.w3.org/ns/prov#knownMembership

The collection included the specified membership of keys-values.

in PROV component
collections
has domain
has range

prov:member op back to collections properties

IRI: http://www.w3.org/ns/prov#member

The key-value pair was part of the membership. A membership can have multiple members.

in PROV component
collections
has domain
has range

prov:qualifiedInsertion op back to collections properties

IRI: http://www.w3.org/ns/prov#qualifiedInsertion

in PROV component
collections
has domain
has range
qualifies
prov:derivedByInsertionFrom

prov:qualifiedRemoval op back to collections properties

IRI: http://www.w3.org/ns/prov#qualifiedRemoval

in PROV component
collections
has domain
has range
qualifies
prov:derivedByRemovalFrom

prov:removedKey dp back to collections properties

IRI: http://www.w3.org/ns/prov#removedKey

in PROV component
collections
has domain
has range
  • http://www.w3.org/2000/01/rdf-schema#Literal

prov:value op back to collections properties

IRI: http://www.w3.org/ns/prov#value

has characteristics Functional

in PROV component
collections
has domain
has range

A. Changes Since First Public Working Draft

B. Acknowledgements

We thank the members of the Provenance Working Group for their feedback throughout the development of the PROV ontology and its documentation.

We also thank the developers of the tools used to create the PROV-O ontology and portions of this page. Protege for editing the ontology, rapper for the many serialization changes and checks, LODE for the styling of the cross references in this page, LODSpeaKr for automated construction of this page, rspec for handling the W3C styling, SuRF and rdflib for constructing the PROV-O cross references in this page. Without these great tools, developing PROV-O would have been much less of a pleasure.

C. References

C.1 Normative references

[OWL2-DIRECT-SEMANTICS]
Boris Motik; Peter F. Patel-Schneider; Bernardo Cuenca Grau. OWL 2 Web Ontology Language:Direct Semantics. 27 October 2009. W3C Recommendation. URL: http://www.w3.org/TR/2009/REC-owl2-direct-semantics-20091027/
[OWL2-RDF-BASED-SEMANTICS]
Michael Schneider. OWL 2 Web Ontology Language:RDF-Based Semantics. 27 October 2009. W3C Recommendation. URL: http://www.w3.org/TR/2009/REC-owl2-rdf-based-semantics-20091027/
[RFC2119]
S. Bradner. Key words for use in RFCs to Indicate Requirement Levels. March 1997. Internet RFC 2119. URL: http://www.ietf.org/rfc/rfc2119.txt
[XMLSCHEMA-2]
Paul V. Biron; Ashok Malhotra. XML Schema Part 2: Datatypes Second Edition. 28 October 2004. W3C Recommendation. URL: http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/

C.2 Informative references

[PROV-DM]
Luc Moreau, Paolo MissierThe PROV Data Model and Abstract Syntax Notation. 18 October 2011. W3C Working Draft. (Work in progress.) URL: http://www.w3.org/TR/2011/WD-prov-dm-20111018/
[PROV-PAQ]
Graham Klyne and Paul Groth Provenance Access and Query. 2011, Work in progress. URL: http://dvcs.w3.org/hg/prov/tip/paq/prov-aq.html
[PROV-PRIMER]
Yolanda Gil and Simon Miles (eds.) Khalid Belhajjame, Helena Deus, Daniel Garijo, Graham Klyne, Paolo Missier, Stian Soiland-Reyes, and Stephan Zednik Prov Model Primer. 2011, Working Draft. URL: http://www.w3.org/TR/prov-primer/