W3C

PROV-O: The PROV Ontology

W3C Editor's Draft 03 July 2012

This version:
https://dvcs.w3.org/hg/prov/raw-file/default/ontology/Overview.html
Latest published version:
http://www.w3.org/TR/prov-o/
Latest editor's draft:
https://dvcs.w3.org/hg/prov/raw-file/default/ontology/Overview.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
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 (PROV-O) expresses the PROV Data Model using 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 generated in different systems and under different contexts. It can also be specialized to create new classes and properties to model provenance information specific to different domain applications.

The namespace for all PROV-O terms is http://www.w3.org/ns/prov#.

The OWL encoding of the PROV Ontology is available here.

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

Intended to be Last Call (TBC)

This is the third public release of the PROV-O document. Publication as Last Call working draft means that the Working Group believes that it has satisfied the relevant technical requirements outlined in its charter on this document. The design is not expected to change significantly, going forward, and now is the key time for external review, before the implementation phase.

This specification identifies two features at risk: prov:mentionOf and prov:asInBundle might be removed from PROV-O if implementation experience reveals problems with supporting this construct. These two OWL properties are based on the PROV Mentions feature.

Please Comment By 2012-09-13 (date TBC)

The PROV Working group seeks public feedback on this Working Draft. The end date of the Last Call review period is 2012-09-13 (TBC), and we would appreciate comments by that date to public-prov-comments@w3.org

PROV Family of Specifications

This document is part of the PROV family of specifications, a set of specifications defining various aspects that are necessary to achieve the vision of inter-operable interchange of provenance information in heterogeneous environments such as the Web. The specifications are:

How to read the PROV Family of Specifications

PROV-O Second Working Draft

This specification defines the PROV Ontology as the normative representation of the PROV Data Model using the Web Ontology Language (OWL2). Following feedback, the structure of the document has been reorganized to suit a gradual introduction to the terms available in PROV-O, permitting the addition of more elaborate terms as users understand the earlier terms. A cross reference was added and is created directly from the OWL ontology. Examples throughout this document are taken directly from the working group's version control system.

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-comments@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 (PROV-O) defines the normative OWL2 Web Ontology Language encoding of the PROV Data Model [PROV-DM]. This document describes the set of classes, properties, and restrictions that constitute the PROV Ontology. This ontology specification provides the foundation to implement provenance applications in different domains that can represent, exchange, and integrate provenance information generated in different systems and under different contexts. 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.

PROV-O conforms to the OWL-RL profile and is lightweight so that it can be adopted in the widest range of 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 creating domain-specific provenance ontologies and thereby facilitate interoperable provenance modeling. To demonstrate the use of PROV-O classes and properties, this document uses an example provenance scenario similar to the one introduced in the PROV-Primer [PROV-PRIMER]. PROV-O conforms to the OWL-RL profile and is lightweight so that it can be adopted in the widest range of applications.

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-RDF-BASED-SEMANTICS].

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

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. Many of the terms in this category are subclasses or subproperties of those 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 binary relations asserted using Starting Point and Expanded properties. The terms in this category are applied using a pattern that differs from those in the Starting Point and Expanded categories. While the relations from the previous two categories are applied as direct, binary assertions, the terms in this category are used to provide additional attributes of 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.

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:

The three primary classes relate to one another and to themselves using the properties shown in the following figure.

Activities start and end at particular points in time (described using properties prov:startedAtTime and prov:endedAtTime, respectively) and during their lifespan can use and generate a variety of Entities (described with prov:used and prov:wasGeneratedBy, respectively). For example, a blog writing activity may use a particular dataset and generate a bar chart. By applying usage and generation, one can construct provenance chains comprising both Activities and Entities.

In addiition, we can say that an Activity prov:wasInformedBy another Activity to provide some ordering information without explicitly mentioning the activities' start and end times. A prov:wasInformedBy relation between Activities suggests that the informed Activity used an Entity that was generated by the informing Activity, but the Entity itself is not interesting. So, the prov:wasInformedBy property allows the assertion of provenance chains comprising only Activities.

Provenance chains comprising only Entities can be formed using the prov:wasDerivedFrom property. A derivation is a transformation of one entity into another. For example, if the Activity that created the bar chart is not interesting, then we can say that the bar chart prov:wasDerivedFrom the dataset. Arbitrary RDF properties can be used to describe the fixed aspects of an Entity that are interesting to a particular application (for example, the file size and format of the dataset, or the aspect ratio of the bar chart).

An Agent can be responsible for an Activity or an Entity, which is described using the properties prov:wasAssociatedWith and prov:wasAttributedTo, respectively. Agents can also be responsible for other Agents' actions. In this case, the Agent that influenced an Activity or Entity prov:actedOnBehalfOf another Agent that may have had less influence, but still bears some responnsibility for the resulting Activity or Entity.

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

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:startedAtTime    "2011-07-14T01:01:01Z"^^xsd:dateTime;
   prov:wasAssociatedWith ex:derek;
   prov:used              ex:crimeData;
   prov:used              ex:nationalRegionsList;
   prov:endedAtTime      "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

The terms introduced in this section provide additional ways to describe the provenance among Entities, Activities, and Agents. The additional terms are illustrated in the following figure and can be separated into five different categories.

PROV-O Starting Point terms
Figure 2. The expanded terms build upon those in the Starting Points section.

The first category extends the Starting Point terms with subclasses, subproperties, and one superproperty.

Three subclasses of Agent (prov:Person, prov:Organization, and prov:SoftwareAgent) and two subclasses of Entity are provided (prov:Collection, and prov:Bundle).

A prov:Collection is an Entity that provides a structure (e.g. set, list, etc.) to some constituents (which are themselves Entities). The prov:Collection class can be used to express the provenance of the collection itself: e.g. who maintains the collection (attribution), which members it contains as it evolves, and how it was assembled. The prov:hadMember property is used to assert membership in a collection.

A prov:Bundle is a named set of provenance descriptions that enables the expression of provenance of provenance. It is important to note that the set of provenance descriptions can assume forms beyond PROV-O triples, such as videotaped testimony or scribbles on a drink napkin. The subclass of Bundle that contains PROV-O assertions is not provided by PROV-O, since it is more appropriate to do so using other recommendations, standards, or technologies. In any case, a Bundle of PROV-O assertions is an abstract set of RDF triples, and adding or removing a triple creates a distinct Bundle of PROV-O assertions.

More general and more specific properties are also provided by the expanded terms. More generally, the property prov:wasInfluencedBy is a superproperty that relates any influenced Entity, Activity, or Agent to any other influencing Entity, Activity, or Agent that had an effect on its characteristics. More specifically, three subproperties of prov:wasDerivedFrom are provided for certain kinds of derivation among Entities: prov:wasQuotedFrom cites a potentially larger Entity (such as a Book, or Blog) from which an Entity was taken, prov:wasRevisionOf cites an older version of a revised Entity (such as a first edition of a book), and prov:hadPrimarySource cites an ancestor Entity produced by some agent with direct experience and knowledge about the topic (such as a reading from a sensor, or a journal written during an historical event).

The second category relates Entities according to their levels of abstraction, where some Entities may present more aspects than their more general counterparts. While prov:specializationOf links a more specific Entity to a more general one (e.g., today's BBC news home page versus BBC's news home page on any day), prov:alternateOf links Entities that present aspects of the same thing, but not necessarily the same aspects or at the same time (e.g., the serialization of a document in different formats). prov:mentionOf is a special type of prov:specializationOf whose subject presents as an aspect a particular prov:Bundle in which its more general Entity was described (prov:asInBundle is used to cite the Bundle in which the generalization was mentioned).

The prov:mentionOf and prov:asInBundle properties are "at risk" and may be removed from this specification based on feedback. Please send feedback to public-prov-comments@w3.org.

These two properties are used to encode the PROV-DM's Mention construct, which might be removed from PROV if implementation experience reveals problems with supporting this construct.

The third category allows further description of Entities. The property prov:value holds a literal value for the Entity. For example, the prov:value of a quote could be a string of the sentences stated, or the prov:value of an Entity involved in a numeric calculation could be the xsd:integer four. The property prov:atLocation can be used to describe the prov:Location of any Entity, Activity, Agent, or prov:InstantaneousEvent (i.e., generation, usage, or invalidation of an entity and the starting or ending of an activity). The properties used to describe instances of prov:Location are outside the scope of PROV-O; reuse of other existing vocabulary is encouraged.

The fourth category describes the lifetime of an Entity beyond being generated by an Activity and used by other Activities. For example, a painting could not have been displayed before it was painted, and it cannot be sold after it is destroyed by fire. Similarly to how Activities have start and end times, an Entity may be bound by points in time for which it was generated or is no longer usable. The properties prov:generatedAtTime and prov:invalidatedAtTime can be used to bound the starting and ending moments of an Entity's existence. The Activities that led to the generation or invalidation of an Entity can be provided using prov:wasGeneratedBy and prov:wasInvalidatedBy, respectively. prov:generated and prov:invalidated are the inverses of prov:wasGeneratedBy and prov:wasInvalidatedBy, respectively, and are defined to facilitate Activity-centric in addition to Entity-centric modeling.

The fifth category describes the lifetime of an Activity beyond its start and end times and predecessor Activities. Activities may also be started or ended by Entities, which are described using the properties prov:wasStartedBy and prov:wasEndedBy, respectively. Since Entities may start or end Activities, and Agents may be Entities, then Agents may also start or end Activities.

We illustrate below the use of the expanded terms using the crime file example from the previous section as reference. Agent Derek now publishes a post about his work with the aggregated file:

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

:bundlePost {

   :bundlePost a prov:Bundle .

   :derek
      a prov:Person, prov:Agent, foaf:Person; ## Typically prov:Agent will be inferred from prov:Person
      foaf:givenName      "Derek"^^xsd:string;
      foaf:mbox           <mailto:dererk@example.org>;
      prov:actedOnBehalfOf :chartgen;
   .

   :chartgen 
      a prov:Organization, prov:Agent;       ## Typically prov:Agent will be inferred from prov:Organization
      foaf:name "Chart Generators, Inc.";
   .

   :postEditor 
      a prov:SoftwareAgent, prov:Agent;      ## Typically prov:Agent will be inferred from prov:SoftwareAgent
      foaf:name "Post Editor 3000";
   .   

   :aggregatedByRegions
      a prov:Entity;
      prov:atLocation <file://Users/aggr.txt>;
   .
   
   :more-crime-happens-in-cities
    a prov:Location, sioc:Post, prov:Entity;
    sioc:latest_version :post9821v2;
    sioc:previous_version :post9821v1;
   .

   ## Version 1 of the post
   
   :post9821v1
      a prov:Entity, sioc:Post;   
      prov:wasGeneratedBy :publicationActivity1123;
      prov:atLocation     :more-crime-happens-in-cities;  ## PERMALINK to the (latest revision of the) post
      my:snapshotContent  :postContent0;                  ## Snapshot with the content of this version
      sioc:title "More crime happens in cities"^^xsd:string;
      prov:hadPrimarySource :aggregatedByRegions;        ## This version of the post used the file "aggregatedByRegions" as a primary source. 
                                                          ## Since the author stated that he based his post in the file, 
                                                          ## the system used this relationship to keep the attribution clear.
      prov:wasAttributedTo   :derek;
      prov:generatedAtTime "2011-07-16T01:52:02Z"^^xsd:dateTime;
   .

   ## Version 2 of the post

   :post9821v2
      a prov:Entity, sioc:Post;
      prov:atLocation       :more-crime-happens-in-cities;  ## PERMALINK to the (latest revision of the) post
      my:snapshotContent    :postContent1;                  ## Snapshot with the content of this version
      prov:wasRevisionOf    :post9821v1;
      prov:specializationOf :post9821v1;
      prov:wasAttributedTo  :derek;
   .

   :publicationActivity1123 
      a prov:Activity;
      prov:wasStartedAt      "2011-07-16T01:01:01Z"^^xsd:dateTime;
      prov:wasEndedAt        "2011-07-16T01:52:02Z"^^xsd:dateTime;
      prov:wasAssociatedWith :derek,
                             :postEditor;
      prov:used              :aggregatedByRegions;   
      prov:generated         :post9821v1;
      prov:wasStartedBy      :derek;
      prov:wasEndedBy        :derek
   .
}

Agent ex:derek, acting again in behalf of the ex:chartgenerators organization, publishes a post about his recent changes to the aggregated file (ex:aggregatedByRegions) using the tool ex:postEditor. Since he is the one who started and ended the publishing activity (ex:publicationActivity1123), that information is recorded as well. The post produced by ex:derek (ex:post9821v1) includes a permanent link where the content of the latest version is shown (ex:more-crime-happens-in-cities) plus a snapshot of the content of the current version (ex:postContent0). Derek also adds additional metadata of the post, like the title.

However, inmediately after having published the post, Derek detects a typo. He does not want to record the activity that led to the new version, so he just creates a new version and summarizes the changes in a revision of the original post(ex:post9821v2). This revision is also a specialization of the original post, since it is a refined version. Thus, the permalink to the latest version (ex:more-crime-happens-in-cities) remains the same in the new revision, but a different URL is given for its snapshot (ex:postContent1).

Shortly after Derek's post publication, ex:monica adapts the text for a wider audience in a new post (ex:post9822). This version is an specialization of the original post, and an alternate of the version modified by Derek. Since the provenance produced by the activities of Derek and Monica correspond to different user views, the system automatically publish it in different prov:Bundles (ex:bundlePost and ex:bundlePost1).

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

:bundlePost1 {

   :bundlePost1 a prov:Bundle .

   :monica
      a prov:Person, prov:Agent, foaf:Person;
      foaf:givenName "Monica"^^xsd:string;
      foaf:mbox      <mailto:monica@example.org>
   .

   ## Rephrasing of the post in a new resource for a different audience

   :post9822
      a prov:Entity, sioc:Post;
      prov:atLocation       :more-crime-happens-in-cities-for-dummies; ## PERMALINK to the (latest revision of the) post
      my:snapshotContent    :postContent2;                             ## Snapshot with the content of this version
      prov:alternateOf      :post9821v2;                               ## This post is an alternate of the second version modified by Dereck.
      prov:specializationOf :more-crime-happens-in-cities;             ## This post is an specialization of the post initially created by Dereck.
      prov:tracedTo         :aggregatedByRegions;                      ## If the file hadn't existed, Monica would have not written the post. 
                                                                       ## However the file is not what Monica used as primary source for writting the new post,
                                                                       ## so we can't consider the post to have "been derived from" it.
      sioc:title "More crime happens in cities (for dummies)"^^xsd:string;
      prov:wasAttributedTo :monica;
   .
}

Some time passes by, and John writes his own conclusions quoting the previous two posts:

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

:bundlePost2 {

   :bundlePost2 
      a prov:Bundle;
      prov:hasAnnotation :noteMadeByParser;
   .
   
   :john 
      a prov:Agent;
   .
   
   # Rows of the post quoting post :post9821v1

   :quote1
      a prov:Entity;
      prov:value "Analysis of the datasets demonstrate that there is more crime";
      prov:wasQuotedFrom :post9821v1.
      
   # Rows of the post quoting post :post9821v2

   :quote2
      a prov:Entity;
      prov:value "In sumary, there are clearly more crimes in the country";
      prov:wasQuotedFrom :post9821v2.
   
   :publicationActivity1123
      a prov:Axtivity;
      prov:used :quote1,
                :quote2,
                :aggregatedByRegions;
      prov:generated :post19201.
   
   :post19201
      a prov:Entity, sioc:Post;
      prov:wasAttributedTo   :john;
      prov:wasDerivedFrom    :post9821v1, 
                             :post9821v2;
      prov:wasGeneratedBy    :publicationActivity1123;
      prov:hadPrimarySource :aggregatedByRegions;
   .
}

Agent ex:John also names the URI of the original source (ex:aggregatedByRegions). All the provenance statements related to his post are grouped in a new prov:Bundle (ex:bundlePost2). Unfortunately, there is a problem in the servers where :post19201 is being stored, and all the data related to the post is lost. Thus, the system invalidates the entity automatically and notifies John about the error.

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

:post19201
   a prov:Entity, sioc:Post;
   prov:invalidatedAtTime "2012-09-02T01:31:00Z"^^xsd:dateTime;
   prov:wasInvalidatedBy :hard_disk_failure;
.

:hard_disk_failure
   a prov:Activity;
   prov:wasEndedAt "2012-09-02T01:31:00Z"^^xsd:dateTime;
.

3.3 Qualified Terms

The Qualified Terms category is for users who wish to provide further details about the influence among Entities, Activities, and Agents. The terms in this category are the result of applying the Qualification Pattern [LD-Patterns-QR] to the simple (unqualified) relations available in the Starting Point and Expanded categories. The Qualification Pattern consists of restating the unqualified relation by using an intermediate class that represents the influence between two resources. This new instance, in turn, can be described with arbitrary descriptions about the influence between the two resources cited. The following two tables list the relations that can be qualified using the Qualification Pattern, along with the properties used to qualify them. For example, the first table's third row indicates that when we want to elaborate the association (prov:wasAssociatedWith) that an Agent had upon an Activity, we add an additional description (prov:qualifiedAssociation) to the Activity that references an instance of prov:Association that, in turn, references the influencing Agent with the property prov:agent. The instance of prov:Association can then be annotated with arbitrary descriptions about the influence that the Agent had upon the Activity.

Six Expanded relations that can be further described using the Qualification Pattern, along with qualification property, influence class, and influencer properties.

Table 2: Qualification Property and Influence Class used to qualify an Expanded Property.
Influenced Class Unqualified Influence Qualification Property Qualified Influence Influencer Property Influencing Class
prov:Entity prov:hadPrimarySource prov:qualifiedSource prov:Source prov:entity prov:Entity
prov:Activity prov:wasEndedBy prov:qualifiedEnd prov:End prov:entity prov:Entity
prov:Entity prov:wasInvalidatedBy prov:qualifiedInvalidation prov:Invalidation prov:activity prov:Activity
prov:Entity prov:wasQuotedFrom prov:qualifiedQuotation prov:Quotation prov:entity prov:Entity
prov:Entity prov:wasRevisionOf prov:qualifiedRevision prov:Revision prov:entity prov:Entity
prov:Activity prov:wasStartedBy prov:qualifiedStart prov:Start prov:entity prov:Entity

The qualification classes and properties shown in the previous two tables can also be found in the cross reference in the next section of this document. If the property can be qualified, the can be qualified with header indicates the qualifying property and influence class that should be used. Conversely, the qualifies headers in the listings for qualification terms indicate the unqualified property that they qualify. In the OWL file iteself, the annotation properties prov:qualifiedForm and prov:unqualifiedForm provide the same linkages between the unqualified properties and their qualifiying terms. The influence classes (e.g. prov:Association, prov:Usage) are extensions of prov:Influence and either prov:EntityInfluence, prov:ActivityInfluence, or prov:AgentInfluence, which determine the property to use to cite the influencing resource (either prov:entity, prov:activity, or prov:agent, respectively).

So for instance, if we have the unqualified statement:

:e1 
   a prov:Entity;
   prov:wasGeneratedBy :a1;
.

:a1 a prov:Activity .

Then we find in PROV-O that prov:wasGeneratedBy can be qualified with the qualification property prov:qualifiedGeneration and the class prov:Generation, which is a subclass of prov:ActivityInfluence. From this, we can restate the above relation using the qualification pattern as:

:e1 
   a prov:Entity;
   prov:wasGeneratedBy      :a1;
   prov:qualifiedGeneration :e1Gen; # Add the qualification
.

:a1 a prov:Activity .

:e1Gen 
   a prov:Generation;
   prov:activity :a1;               # Cite the influencing Activity.
   :foo :bar;
.

The asserter can thus attach additional properties to :e1Gen to describe the generation of :e1. To simplify client queries, any qualified relation should be accompanied by the equivalent unqualified statement. Unqualified properties should not have the equivalent qualified form asserted unless it adds additional information.

In addition to the previous two tables, Figure 3 illustrates the classes and properties needed to apply the qualification pattern to the thirteen unqualified influence relations. For example, 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 eleven other influence relations that can be qualified.

In subfigure a the prov:qualifiedUsage property parallels the prov:used property and references an instance of prov:Usage, which in trun 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. The prov:atTime property can be used to describe any prov:InstantaneousEvent (including prov:Start, prov:Generation, prov:Usage, prov:Invalidation, and prov:End).

Similarly in subfigure j, the prov:qualifiedAssociation property parallels the prov:wasAssociatedWith property and references an instance of prov:Association, which in turn provides attributes of the prov:wasAssociatedWith relation between the Activity and Agent. The prov:agent property is used to cite the Agent that influenced the Activity. In this case, the plan of actions and steps that the Agent used to achieve its goals is provided using the prov:hadPlan property and an instance of prov:Plan. Further, the prov:hadRole property and prov:Role class can be used to describe the function that the agent served with respect to the Activity. Both prov:Plan and prov:Role are left to be extended by applications.

Express association between an activity and an agent using a binary relationship and an alternatie qualified relationship
Figure 3: Illustration of the properties and classes to use (in blue) to qualify unqualified influence relations (dotted black).
Quotation, Revision, and Source are omitted because they are special forms of Derivation and follow the same pattern as subfigure g.

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 .

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?
   ];
.

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:

The superscripts op and dp denote that a property is an OWL object property or data property, respectively.

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.

Class: 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; it may include consuming, processing, transforming, modifying, relocating, using, or generating entities.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:graduation
   a prov:Activity, :Graduation;
   prov:startedAtTime "2012-04-15T13:00:00-04:00"^^xsd:dateTime;
   prov:used          :ms_smith;
   prov:generated     :doctor_smith;
   prov:endedAtTime   "2012-04-15T14:30:00-04:00"^^xsd:dateTime;
.
:ms_smith     a prov:Entity .
:doctor_smith a prov:Entity .
described with properties:
prov:generated op , prov:endedAtTime dp , prov:wasAssociatedWith op , prov:qualifiedCommunication op , prov:wasInformedBy op , prov:qualifiedUsage op , prov:used op , prov:invalidated op , prov:qualifiedAssociation op , prov:qualifiedStart op , prov:wasStartedBy op , prov:qualifiedEnd op , prov:startedAtTime dp , prov:wasEndedBy op
prov:wasInfluencedBy op , prov:atLocation op
in range of
prov:wasInformedBy op prov:wasGeneratedBy op prov:hadActivity op prov:activity op prov:wasInvalidatedBy op
prov-dm
prov-dm
prov-constraints
prov-constraints
prov-n
prov-n

Class: prov:Agent back to starting-point classes

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

An agent is something that bears some form of responsibility for an activity taking place, for the existence of an entity, or for another agent's activity.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix :     <http://example.com/> .

:derek
   a prov:Agent, prov:Person;
   foaf:givenName      "Derek"^^xsd:string;
   foaf:mbox           <mailto:dererk@example.org>;
   foaf:homePage       <http://dereck.example.com>;
   prov:actedOnBehalfOf :chartgen;
.

:chartgen 
   a prov:Agent, prov:Organization;
   foaf:name "Chart Generators, Inc.";
. 
described with properties:
prov:actedOnBehalfOf op , prov:qualifiedDelegation op
prov:wasInfluencedBy op , prov:atLocation op
in range of
prov:actedOnBehalfOf op prov:agent op prov:wasAssociatedWith op prov:wasAttributedTo op
has subclasses
prov:Organization , prov:Person , prov:SoftwareAgent
prov-dm
prov-dm
prov-n
prov-n

Class: prov:Entity back to starting-point classes

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

An entity is a physical, digital, conceptual, or other kind of thing with some fixed aspects; entities may be real or imaginary.

Example
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:     <http://www.w3.org/2002/07/owl#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix prov:    <http://www.w3.org/ns/prov#> .
@prefix :        <http://example.com/> .

:bar_chart 
   a prov:Entity;
   dcterms:title "Aggregated statistics from the crime file"^^xsd:string;
   prov:wasAttributedTo :derek;
.

:derek a prov:Agent .
described with properties:
prov:qualifiedInfluence op , prov:wasAttributedTo op , prov:specializationOf op , prov:value dp , prov:qualifiedRevision op , prov:wasGeneratedBy op , prov:generatedAtTime dp , prov:hadPrimarySource op , prov:qualifiedAttribution op , prov:wasQuotedFrom op , prov:wasRevisionOf op , prov:qualifiedInvalidation op , prov:wasDerivedFrom op , prov:qualifiedDerivation op , prov:qualifiedQuotation op , prov:qualifiedGeneration op , prov:invalidatedAtTime dp , prov:mentionOf op , prov:alternateOf op , prov:qualifiedSource op , prov:wasInvalidatedBy op , prov:asInBundle op
prov:wasInfluencedBy op , prov:atLocation op
in range of
prov:hadPrimarySource op prov:generated op prov:wasDerivedFrom op prov:mentionOf op prov:entity op prov:specializationOf op prov:invalidated op prov:used op prov:hadMember op prov:alternateOf op prov:wasStartedBy op prov:wasQuotedFrom op prov:wasEndedBy op prov:wasRevisionOf op
has subclasses
prov:Collection , prov:Plan , prov:Bundle
prov-dm
prov-dm
prov-constraints
prov-constraints
prov-n
prov-n

Property: prov:actedOnBehalfOf op back to starting-point properties

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

Delegation is the assignment of authority and responsibility to an agent (by itself or by another agent) to carry out a specific activity as a delegate or representative, while the agent it acts on behalf of retains some responsibility for the outcome of the delegated work. For example, a student acted on behalf of his supervisor, who acted on behalf of the department chair, who acted on behalf of the university; all those agents are responsible in some way for the activity that took place but we do not say explicitly who bears responsibility and to what degree.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

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

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

An object property to express the accountability of an agent towards another agent. The subordinate agent acted on behalf of the responsible agent in an actual activity.

has super-properties
has domain
has range
can be qualified with

Property: prov:endedAtTime dp back to starting-point properties

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

End is when an activity is deemed to have ended. The activity no longer exists after its end. Any usage, generation, or invalidation involving an activity precedes the activity's end. An end may refer to an entity, known as trigger, that terminated the activity, or to an activity, known as ender that generated the trigger.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:geneSequencing
   a prov:Activity;
   prov:startedAtTime "2012-04-25T01:30:00Z"^^xsd:dateTime;
   prov:used              :drosophilaSample-84;
   prov:wasAssociatedWith :lab-technician-GH-32;
   prov:endedAtTime   "2012-04-25T03:40:00Z"^^xsd:dateTime;
.

:drosophilaSample-84  a prov:Entity .
:lab-technician-GH-32 a prov:Agent .

The time at which an activity ended. See also prov:startedAtTime.

has characteristics Functional

has domain
has range
  • http://www.w3.org/2001/XMLSchema#dateTime
can be qualified with

Property: prov:startedAtTime dp back to starting-point properties

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

Start is when an activity is deemed to have started. The activity did not exist before its start. Any usage or generation involving an activity follows the activity's start. A start may refer to an entity, known as trigger, that set off the activity, or to an activity, known as starter, that generated the trigger.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:geneSequencing
   a prov:Activity;
   prov:startedAtTime "2012-04-25T01:30:00Z"^^xsd:dateTime;
   prov:used              :drosophilaSample-84;
   prov:wasAssociatedWith :lab-technician-GH-32;
   prov:endedAtTime   "2012-04-25T03:40:00Z"^^xsd:dateTime;
.

:drosophilaSample-84  a prov:Entity .
:lab-technician-GH-32 a prov:Agent .

The time at which an activity started. See also prov:endedAtTime.

has characteristics Functional

has domain
has range
  • http://www.w3.org/2001/XMLSchema#dateTime
can be qualified with

Property: prov:used op back to starting-point properties

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

Usage is the beginning of utilizing an entity by an activity. Before usage, the activity had not begun to utilize this entity and could not have been affected by the entity.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:sortActivity
   a prov:Activity;
   prov:atTime     "2011-07-16T01:52:02Z"^^xsd:dateTime;
   prov:used       :datasetA;
   prov:generated  :datasetB;
.

:datasetA a prov:Entity.
:datasetB a prov:Entity.

# See qualified Usage for example on how the role of :datasetA can be described for this Activity

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

has super-properties
has domain
has range
can be qualified with

Property: prov:wasAssociatedWith op back to starting-point properties

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

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.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:illustrating
   a prov:Activity; 
   prov:wasAssociatedWith :derek;
.

:derek a prov:Person, prov:Agent, prov:Entity .

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

has super-properties
has domain
has range
can be qualified with

Property: prov:wasAttributedTo op back to starting-point properties

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

An entity is a physical, digital, conceptual, or other kind of thing with some fixed aspects; entities may be real or imaginary.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:geneSequencing
   a prov:Activity;
   prov:startedAtTime "2012-04-25T01:30:00Z"^^xsd:dateTime;
   prov:used              :drosophilaSample-84;
   prov:wasAssociatedWith :lab-technician-GH-32;
   prov:endedAtTime   "2012-04-25T03:40:00Z"^^xsd:dateTime;
.

:drosophilaSample-84  
   a prov:Entity;
   prov:wasAttributedTo :lab-technician-FE-56;
.

:lab-technician-GH-32 a prov:Agent .
:lab-technician-FE-56 a prov:Agent .

Attribution is the ascribing of an entity to an agent.

has super-properties
has domain
has range
can be qualified with

Property: prov:wasDerivedFrom op back to starting-point properties

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

An entity is a physical, digital, conceptual, or other kind of thing with some fixed aspects; entities may be real or imaginary.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:bar_chart prov:wasDerivedFrom :aggregatedByRegions .

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.

has super-properties
has domain
has range
has sub-properties
can be qualified with

Property: prov:wasGeneratedBy op back to starting-point properties

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

Generation is the completion of production of a new entity by an activity. This entity did not exist before generation and becomes available for usage after this generation.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:bar_chart
   a prov:Entity;
   prov:wasGeneratedBy :illustrating;
.

:illustrating a prov:Activity .

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

has super-properties
has domain
has range
can be qualified with

Property: prov:wasInformedBy op back to starting-point properties

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

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

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:writing-celebrity-gossip 
   a prov:Activity;
   prov:wasInformedBy :voicemail-interception;
.

:voicemail-interception a prov:Activity .

An activity a2 is dependent on or informed by another activity a1, by way of some unspecified entity that is generated by a1 and used by a2.

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.

Class: prov:Bundle back to expanded classes

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

A bundle is a named set of descriptions, but it is also an entity so that its provenance can be described.

Example
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:     <http://www.w3.org/2002/07/owl#> .
@prefix prov:    <http://www.w3.org/ns/prov#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix alice:   <http://example.com/alice#> .
@prefix bob:     <http://example.com/bob#> .
@prefix my:      <http://example.com/my#> .
@prefix :        <http://example.com/> .

# Let us consider two entities :report1 and :report2.

:report1
   a my:Report, prov:Entity;
   my:version "1";
   prov:generatedAtTime "2012-05-24T10:00:01"^^xsd:dateTime;
.

:report2
   a my:Report, prov:Entity;
   my:version "2";
   prov:generatedAtTime "2012-05-25T11:00:01"^^xsd:dateTime;
   prov:wasDerivedFrom :report1;
.

# Let us assume that Bob observed the creation of :report1. A first bundle can be expressed.
 
bob:bundle1 {
   :report1
      a my:Report, prov:Entity;
      my:version "1";
      prov:generatedAtTime "2012-05-24T10:00:01"^^xsd:dateTime;
   .
}

# In contrast, Alice observed the creation of :report2 and its derivation from :report1.
 
alice:bundle2 {
   :report1 a prov:Entity .
   :report2
      a my:Report, prov:Entity;
      my:version "2";
      prov:generatedAtTime "2012-05-25T11:00:01"^^xsd:dateTime;
      prov:wasDerivedFrom :report1;
   .
}

# The first bundle contains the descriptions corresponding to Bob observing the creation of :report1.
 
bob:bundle1
   a prov:Bundle;
   prov:generatedAtTime "2012-05-24T10:30:00"^^xsd:dateTime;
   prov:wasAttributedTo :Bob;
.

# In contrast, the second bundle is attributed to Alice who observed the derivation of :report2 from :report1.
 
alice:bundle2
   a prov:Bundle;
   prov:generatedAtTime "2012-05-25T11:15:00"^^xsd:dateTime;
   prov:wasAttributedTo :Alice;
.

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
in range of
prov:asInBundle op
prov-dm
prov-dm
prov-n
prov-n

Class: prov:Collection back to expanded 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. Many different types of collections exist, such as a sets, dictionaries, or lists. Using Collections, one can express the provenance of the collection itself in addition to that of the members.

Example
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix owl:     <http://www.w3.org/2002/07/owl#> .
@prefix prov:    <http://www.w3.org/ns/prov#> .
@prefix :        <http://example.com/> .

:todays-us-supreme-court
   a prov:Collection, :RobertsCourt;

   prov:qualifiedGeneration [
      a prov:Generation;
      dcterms:date "2012"^^xsd:gYear; # The generation is being qualified to be imprecise;
   ];                                 # prov:generatedAtTime and prov:atTime specify exact instants in time.

   prov:hadMember
      <http://dbpedia.org/resource/John_Glover_Roberts,_Jr.>,
      <http://dbpedia.org/resource/Antonin_Scalia>, 
      <http://dbpedia.org/resource/Anthony_Kennedy>, 
      <http://dbpedia.org/resource/Clarence_Thomas>, 
      <http://dbpedia.org/resource/Ruth_Bader_Ginsburg>,
      <http://dbpedia.org/resource/Stephen_Breyer>,     
      <http://dbpedia.org/resource/Samuel_Alito>,      
      <http://dbpedia.org/resource/Sonia_Sotomayor>,  
      <http://dbpedia.org/resource/Elena_Kagan>;   

   prov:wasDerivedFrom :the-first-us-supreme-court;

   dcterms:description :copied-string;
.

:copied-string
   a prov:Entity;
   prov:value "2010–present: A. Scalia A. Kennedy C. Thomas R.B. Ginsburg S. Breyer S. Alito S. Sotomayor E. Kagan";
   prov:wasQuotedFrom :page-by-composition;
.

:page-by-seat
   a prov:Entity, :WikipediaPage;
   prov:specializationOf <http://en.wikipedia.org/wiki/List_of_Justices_of_the_Supreme_Court_of_the_United_States_by_seat>;
   prov:wasGeneratedAtTime "2011-08-31T12:51"^^xsd:dateTime;
.

:page-by-composition
   a prov:Entity, :WikipediaPage;
   prov:specializationOf <http://en.wikipedia.org/wiki/List_of_Justices_of_the_Supreme_Court_of_the_United_States_by_court_composition>;
   prov:wasGeneratedAtTime "2012-05-16T14:33"^^xsd:dateTime;
.

<> 
   a prov:Bundle;
   prov:wasDerivedFrom  :page-by-composition,
                        :page-by-seat;
   prov:wasAttributedTo <http://tw.rpi.edu/instances/TimLebo>;
.
is subclass of
prov:Entity
described with properties:
prov:hadMember op
prov-dm
prov-dm

Class: 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.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix sioc: <http://rdfs.org/sioc/ns#> .
@prefix :     <http://example.com/> .

# A Location can be a path or a geographical location.

:post9821 
   a prov:Entity, sioc:Post;   
   prov:wasGeneratedBy :publicationActivity1123;
   prov:atLocation     :more-crime-happens-in-cities;
   prov:qualifiedGeneration [
      a prov:Generation;
      prov:activity    :publicationActivity1123;
      prov:atTime     "2011-07-16T01:52:02Z"^^xsd:dateTime; 
      prov:atLocation <http://dbpedia.org/resource/Madrid>;
   ];
.

:publicationActivity1123      a prov:Activity.
:more-crime-happens-in-cities a prov:Location.
<http://dbpedia.org/resource/Madrid> a prov:Location. 
in range of
prov:atLocation op
prov-dm
prov-dm
prov-n
prov-n

Class: 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.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix :     <http://example.com/> .

:boogle 
   a prov:Agent, prov:Organization;
   foaf:name "Boogle";
. 
is subclass of
prov:Agent
described with properties:
prov:qualifiedDelegation op , prov:actedOnBehalfOf op
prov-dm
prov-dm
prov-n
prov-n

Class: prov:Person back to expanded classes

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

Agents of type Person are people.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix :     <http://example.com/> .

<http://dbpedia.org/resource/Pablo_Picasso>
   a prov:Person, prov:Agent;
   foaf:depiction <http://upload.wikimedia.org/wikipedia/commons/9/98/Pablo_picasso_1.jpg>;
.
is subclass of
prov:Agent
described with properties:
prov:qualifiedDelegation op , prov:actedOnBehalfOf op
prov-dm
prov-dm
prov-n
prov-n

Class: prov:SoftwareAgent back to expanded classes

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

A software agent is running software.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

# Googlebot is Google's web crawling bot; it can initiate and participate in web-crawling activities.

:googlebot
   a prov:SoftwareAgent;
   rdfs:label "Googlebot"^^xsd:string;
.
is subclass of
prov:Agent
described with properties:
prov:qualifiedDelegation op , prov:actedOnBehalfOf op
has subclass
prov:ProvenanceService
prov-dm
prov-dm
prov-n
prov-n

Property: prov:alternateOf op back to expanded properties

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

A software agent is running software.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:london_forecast_0412 
   a prov:Entity;
   prov:wasAttributedTo :bbc;
   prov:wasGeneratedBy [
      a prov:Activity;
      prov:endedAtTime "2012-04-12T00:00:00-04:00"^^xsd:dateTime;
   ];
.

:london_forecast_0413 
   a prov:Entity;
   prov:wasAttributedTo :bbc;
   prov:wasGeneratedBy [
      a prov:Activity;
      prov:endedAtTime "2012-04-13T00:00:00-04:00"^^xsd:dateTime;
   ];
.

:london_forecast 
   a prov:Entity;
   prov:wasAttributedTo :bbc;
.

## :london_forecast_0412 and :london_forecast_0413 are both 
## specialization of the more general entity :london_forecast

:london_forecast_0412  
   prov:alternateOf      :london_forecast_0413;
   prov:specializationOf :london_forecast;
.
has domain
has range
has sub-properties
prov-dm
prov-dm
prov-constraints
prov-constraints
prov-n
prov-n

Property: prov:asInBundle op back to expanded properties

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

The mention of an Entity in a Bundle (containing a description of this Entity) is another Entity that is a specialization of the former and that presents the Bundle as a further additional aspect.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix tool: <http://example.com/tool/> .
@prefix perf: <http://example.com/performance/> .
@prefix :     <http://example.com/> .

:run2 {
   :activity_2
      a prov:Activity;
      prov:startedAtTime "2011-11-17T10:00:00"^^xsd:dateTime;
      prov:endedAtTime   "2011-11-17T17:00:00"^^xsd:dateTime; 
      prov:wasAssociatedWith :bob;
   .
}

tool:analysis_01 {
   tool:bob-2011-11-17
      a prov:Agent;
      prov:mentionOf  :bob;
      prov:asInBundle :run2;
      perf:rating     perf:very-slow;
   .
}

tool:bob-2011-11-17 prov:specializationOf :bob . # This is inferred from prov:mentionOf
tool:bob-2011-11-17 prov:alternateOf      :bob . # This is inferred from prov:specializationOf

<> 
 prov:wasDerivedFrom 
  <http://dvcs.w3.org/hg/prov/raw-file/default/model/releases/ED-prov-dm-20120614/prov-dm.html#anexample-contextualization1> .

When :x prov:mentionOf :y and :y is described in Bundle :b, the triple :x prov:asInBundle :b is also asserted to cite the Bundle in which :b was described.

The prov:mentionOf and prov:asInBundle properties are "at risk" (http://www.w3.org/2005/10/Process-20051014/tr#cfi) and may be removed from this specification based on feedback. Please send feedback to public-prov-comments@w3.org. These two properties are used to encode the PROV-DM's Mention construct (http://www.w3.org/TR/2012/WD-prov-dm-20120703/prov-dm.html#term-mention), which might be removed from PROV if implementation experience reveals problems with supporting this construct.

has domain
has range

Property: prov:atLocation op back to expanded properties

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

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.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix sioc: <http://rdfs.org/sioc/ns#> .
@prefix :     <http://example.com/> .

# A Location can be a path or a geographical location.

:post9821 
   a prov:Entity, sioc:Post;   
   prov:wasGeneratedBy :publicationActivity1123;
   prov:atLocation     :more-crime-happens-in-cities;
   prov:qualifiedGeneration [
      a prov:Generation;
      prov:activity    :publicationActivity1123;
      prov:atTime     "2011-07-16T01:52:02Z"^^xsd:dateTime; 
      prov:atLocation <http://dbpedia.org/resource/Madrid>;
   ];
.

:publicationActivity1123      a prov:Activity .
:more-crime-happens-in-cities a prov:Location .
<http://dbpedia.org/resource/Madrid> a prov:Location .

The Location of any resource.

has domain
has range

Property: prov:generated op back to expanded properties

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

Generation is the completion of production of a new entity by an activity. This entity did not exist before generation and becomes available for usage after this generation.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:proteinDigestion
   a prov:Activity;
   prov:generated :peptideSample1;
.

:peptideSample1 a prov:Entity .
has super-properties
has domain
has range
has inverse

Property: prov:generatedAtTime dp back to expanded properties

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

Generation is the completion of production of a new entity by an activity. This entity did not exist before generation and becomes available for usage after this generation.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

# A widget was generated 1:35:23 PM on April 3, 2012 UTC

:widget-789532
   a prov:Entity;
   prov:generatedAtTime "2012-04-03T13:35:23Z"^^xsd:dateTime;
.

# The above statement is equivalent to:
# :widget-789532 prov:qualifiedGeneration [ prov:atTime "2012-04-03T13:35:23Z"^^xsd:dateTime ] .

The time at which an entity was completely created.

has characteristics Functional

has domain
has range
  • http://www.w3.org/2001/XMLSchema#dateTime
can be qualified with

Property: prov:hadMember op back to expanded properties

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

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. Many different types of collections exist, such as a sets, dictionaries, or lists. Using Collections, one can express the provenance of the collection itself in addition to that of the members.

Example
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:     <http://www.w3.org/2002/07/owl#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix prov:    <http://www.w3.org/ns/prov#> .
@prefix :        <http://example.com/> .

:todays-us-supreme-court
   a prov:Collection, :RobertsCourt;
   dcterms:description [
      a prov:Entity;
      prov:value "2010–present: A. Scalia A. Kennedy C. Thomas R.B. Ginsburg S. Breyer S. Alito S. Sotomayor E. Kagan";
      prov:wasQuotedFrom :page-by-composition;
   ];
   prov:qualifiedGeneration [
      a prov:Generation;
      dcterms:date "2012"^^xsd:gYear; # Since we need to be imprecise, we can't use prov:generatedAtTime or prov:atTime
   ];

   prov:wasDerivedFrom :the-first-us-supreme-court;

   prov:hadMember
      <http://dbpedia.org/resource/John_Glover_Roberts,_Jr.>,
      <http://dbpedia.org/resource/Antonin_Scalia>, 
      <http://dbpedia.org/resource/Anthony_Kennedy>, 
      <http://dbpedia.org/resource/Clarence_Thomas>, 
      <http://dbpedia.org/resource/Ruth_Bader_Ginsburg>,
      <http://dbpedia.org/resource/Stephen_Breyer>,     
      <http://dbpedia.org/resource/Samuel_Alito>,      
      <http://dbpedia.org/resource/Sonia_Sotomayor>,  
      <http://dbpedia.org/resource/Elena_Kagan>;   
.

<> 
   a prov:Bundle;
   prov:wasDerivedFrom  :page-by-composition,
                        :page-by-seat;
   prov:wasAttributedTo <http://tw.rpi.edu/instances/TimLebo>;
.

:page-by-seat
   a prov:Entity, :WikipediaPage;
   prov:specializationOf <http://en.wikipedia.org/wiki/List_of_Justices_of_the_Supreme_Court_of_the_United_States_by_seat>;
   prov:wasGeneratedAtTime "2011-08-31T12:51"^^xsd:dateTime;
.

:page-by-composition
   a prov:Entity, :WikipediaPage;
   prov:specializationOf <http://en.wikipedia.org/wiki/List_of_Justices_of_the_Supreme_Court_of_the_United_States_by_court_composition>;
   prov:wasGeneratedAtTime "2012-05-16T14:33"^^xsd:dateTime;
.
has domain
has range

Property: prov:hadPrimarySource op back to expanded properties

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

A primary source for a topic refers to something produced by some agent with direct experience and knowledge about the topic, at the time of the topic's study, without benefit from hindsight. Because of the directness of primary sources, they 'speak for themselves' in ways that cannot be captured through the filter of secondary sources. As such, it is important for secondary sources to reference those primary sources from which they were derived, so that their reliability can be investigated. A primary source relation is a particular case of derivation of secondary materials from their primary sources. It is recognized that the determination of primary sources can be up to interpretation, and should be done according to conventions accepted within the application's domain.

Example
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:     <http://www.w3.org/2002/07/owl#> .
@prefix foaf:    <http://xmlns.com/foaf/0.1/> .
@prefix prov:    <http://www.w3.org/ns/prov#> .
@prefix lang:    <http://lexvo.org/id/iso639-3/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix frbr:    <http://purl.org/vocab/frbr/core#> .
@prefix :        <http://example.com/> .

## Having an original source is a particular case of derivation.

<http://www.gutenberg.org/ebooks/996>
   a prov:Entity, frbr:Work;
   dcterms:title          "Don Quixote";
   prov:wasAttributedTo   :ormsby;
   dcterms:language       lang:eng;
   prov:hadPrimarySource <http://cultura.linkeddata.es/BNE/resource/C1001/XX2197892>;
.

#### The English version book is a translation that is based on the original Spanish book

<http://cultura.linkeddata.es/BNE/resource/C1001/XX2197892>
    a prov:Entity, frbr:Work;
    prov:wasAttributedTo :cervantes;
    dcterms:language     lang:spa;
.

:cervantes
   a prov:Person;
   foaf:name "Miguel de Cervantes";
.

:ormsby
   a prov:Person;
   foaf:name "John Ormsby";
.

An original source refers to the source material that is closest to the person, information, period, or idea being studied. An original source relation is a particular case of derivation that aims to give credit to the source that originated some information.

has super-properties
has domain
has range
can be qualified with

Property: prov:influenced op back to expanded properties

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

Influence is the capacity an entity, activity, or agent to have an effect on the character, development, or behavior of another by means of usage, start, end, generation, invalidation, communication, derivation, attribution, association, or delegation.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix w3:   <http://example.com/w3/> .
@prefix tr:   <http://example.com/tech-report/> .
@prefix :     <http://example.com/> .

# prov:influenced is a top-level property that links any
# Entity, Activity, or Agent to any other 
# Entity, Activity, or Agent that it had an effect upon.

w3:Consortium 
   a prov:Agent;
   prov:influenced tr:WD-prov-dm-20111215;
.
has inverse
has sub-properties

Property: prov:invalidated op back to expanded properties

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

Invalidation is the start of the destruction, cessation, or expiry of an existing entity by an activity. The entity is no longer available for use (or further invalidation) after invalidation. Any generation or usage of an entity precedes its invalidation.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix :     <http://example.com/> .

:Swissair_Flight_111_crash 
   a prov:Activity;
   prov:used        <http://dbpedia.org/resource/Swissair_Flight_111>;
   prov:invalidated :the-Painter;
.

:the-Painter 
   a prov:Entity, :Painting;
   rdfs:label "Le Peintre"@fr, "The Painter"@en;
   prov:wasAttributedTo <http://dbpedia.org/resource/Pablo_Picasso>;
   prov:wasInvalidatedBy :Swissair_Flight_111_crash;   # Inferred from prov:invalidated
.

<http://dbpedia.org/resource/Pablo_Picasso> 
   a prov:Agent;
   foaf:depiction <http://upload.wikimedia.org/wikipedia/commons/9/98/Pablo_picasso_1.jpg>;
.

<> prov:wasDerivedFrom <http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-dm.html#dfn-wasinvalidatedby> .
has super-properties
has domain
has range
has inverse

Property: prov:invalidatedAtTime dp back to expanded properties

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

Invalidation is the start of the destruction, cessation, or expiry of an existing entity by an activity. The entity is no longer available for use (or further invalidation) after invalidation. Any generation or usage of an entity precedes its invalidation.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:the-Painter 
   a prov:Entity, :Painting;
   rdfs:label "Le Peintre"@fr, "The Painter"@en;
   prov:wasAttributedTo <http://dbpedia.org/resource/Pablo_Picasso>;
   prov:invalidatedAtTime "2012-09-02T01:31:00Z";
.

The time at which an entity began to be invalidated (i.e., no longer usable).

has characteristics Functional

has domain
has range
  • http://www.w3.org/2001/XMLSchema#dateTime
can be qualified with

Property: prov:mentionOf op back to expanded properties

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

A software agent is running software.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix tool: <http://example.com/tool/> .
@prefix perf: <http://example.com/performance/> .
@prefix :     <http://example.com/> .

:run2 {
   :activity_2
      a prov:Activity;
      prov:startedAtTime "2011-11-17T10:00:00"^^xsd:dateTime;
      prov:endedAtTime   "2011-11-17T17:00:00"^^xsd:dateTime; 
      prov:wasAssociatedWith :bob;
   .
}

tool:analysis_01 {
   tool:bob-2011-11-17
      a prov:Agent;
      prov:mentionOf  :bob;
      prov:asInBundle :run2;
      perf:rating     perf:very-slow;
   .
}

tool:bob-2011-11-17 prov:specializationOf :bob . # This is inferred from prov:mentionOf
tool:bob-2011-11-17 prov:alternateOf      :bob . # This is inferred from prov:specializationOf

<> 
 prov:wasDerivedFrom 
  <http://dvcs.w3.org/hg/prov/raw-file/default/model/releases/ED-prov-dm-20120614/prov-dm.html#anexample-contextualization1> .

prov:asInBundle is used to cite the Bundle in which the generalization was mentioned.

The prov:mentionOf and prov:asInBundle properties are "at risk" (http://www.w3.org/2005/10/Process-20051014/tr#cfi) and may be removed from this specification based on feedback. Please send feedback to public-prov-comments@w3.org. These two properties are used to encode the PROV-DM's Mention construct (http://www.w3.org/TR/2012/WD-prov-dm-20120703/prov-dm.html#term-mention), which might be removed from PROV if implementation experience reveals problems with supporting this construct.

has super-properties
has domain
has range
prov-dm
prov-dm

Property: prov:specializationOf op back to expanded properties

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

A software agent is running software.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:london_forecast_0412 
   a prov:Entity;
   prov:wasAttributedTo :bbc;
   prov:wasGeneratedBy [
      a prov:Activity;
      prov:endedAtTime "2012-04-12T00:00:00-04:00"^^xsd:dateTime;
   ];
.

:london_forecast_0413 
   a prov:Entity;
   prov:wasAttributedTo :bbc;
   prov:wasGeneratedBy [
      a prov:Activity;
      prov:endedAtTime "2012-04-13T00:00:00-04:00"^^xsd:dateTime;
   ];
.

:london_forecast 
   a prov:Entity;
   prov:wasAttributedTo :bbc;
.

## :london_forecast_0412 and :london_forecast_0413 are both 
## specialization of the more general entity :london_forecast

:london_forecast_0412  
   prov:alternateOf      :london_forecast_0413;
   prov:specializationOf :london_forecast;
.
has super-properties
has domain
has range
has sub-properties
prov-dm
prov-dm
prov-constraints
prov-constraints
prov-n
prov-n

Property: prov:value dp back to expanded properties

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

The main value (if there is one) of a structured value.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:copied-string
   a prov:Entity;
   prov:value 
      "2010–present: A. Scalia A. Kennedy C. Thomas R.B. Ginsburg S. Breyer S. Alito S. Sotomayor E. Kagan";
   prov:wasQuotedFrom 
      <http://en.wikipedia.org/wiki/List_of_Justices_of_the_Supreme_Court_of_the_United_States_by_court_composition>;
.

Provides a value for an Entity.

has characteristics Functional

has domain
prov-dm
prov-dm

Property: prov:wasEndedBy op back to expanded properties

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

End is when an activity is deemed to have ended. The activity no longer exists after its end. Any usage, generation, or invalidation involving an activity precedes the activity's end. An end may refer to an entity, known as trigger, that terminated the activity, or to an activity, known as ender that generated the trigger.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:experiment 
   a prov:Activity;
   prov:wasEndedBy :inconsistentResult;
   prov:qualifiedEnd [
      a prov:End;
      prov:entity     :inconsistentResult;
      prov:atTime    "2011-07-16T01:52:02Z"^^xsd:dateTime;
      prov:atLocation :scienceLab_003;
   ];
.

:inconsistentResult a prov:Entity .
:scienceLab_003     a prov:Location .

End is when an activity is deemed to have ended. An end may refer to an entity, known as trigger, that terminated the activity.

has super-properties
has domain
has range
can be qualified with

Property: prov:wasInvalidatedBy op back to expanded properties

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

Invalidation is the start of the destruction, cessation, or expiry of an existing entity by an activity. The entity is no longer available for use (or further invalidation) after invalidation. Any generation or usage of an entity precedes its invalidation.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix :     <http://example.com/> .

:the-Painter 
   a prov:Entity, :Painting;
   rdfs:label "Le Peintre"@fr, "The Painter"@en;
   prov:wasAttributedTo <http://dbpedia.org/resource/Pablo_Picasso>;
   prov:wasInvalidatedBy :Swissair_Flight_111_crash;
.

<http://dbpedia.org/resource/Pablo_Picasso> 
   a prov:Agent;
   foaf:depiction <http://upload.wikimedia.org/wikipedia/commons/9/98/Pablo_picasso_1.jpg>;
.

:Swissair_Flight_111_crash 
   a prov:Activity;
   prov:used <http://dbpedia.org/resource/Swissair_Flight_111>;
.

<> prov:wasDerivedFrom <http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-dm.html#dfn-wasinvalidatedby> .
has super-properties
has domain
has range
can be qualified with

Property: prov:wasQuotedFrom op back to expanded properties

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

A quotation is the repeat of (some or all of) an entity, such as text or image, by someone who may or may not be its original author. Quotation is a particular case of derivation.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:bl-dagstuhl
   a prov:Entity;

   prov:value """During the workshop, it became clear to me that the consensus
   based models (which are often graphical in nature) can not only be
   formalized but also be directly connected to these database focused
   formalizations. I just needed to get over the differences in syntax.
   This could imply that we could have nice way to trace provenance across
   systems and through databases and be able to understand the
   mathematical properties of this interconnection.""";

   prov:wasQuotedFrom 
      <http://thinklinks.wordpress.com/2012/03/07/thoughts-from-the-dagstuhl-principles-of-provenance-workshop/>;
.

<http://thinklinks.wordpress.com/2012/03/07/thoughts-from-the-dagstuhl-principles-of-provenance-workshop/> 
   a prov:Entity;
.

<> prov:wasDerivedFrom <http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-dm.html#dfn-wasquotedfrom> .

An entity is derived from an original entity by copying, or 'quoting', some or all of it.

has super-properties
has domain
has range
can be qualified with

Property: prov:wasRevisionOf op back to expanded properties

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

A revision is a derivation for which the resulting entity is a revised version of some original. The implication here is that the resulting entity contains substantial content from the original. Revision is a particular case of derivation.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix sioc: <http://rdfs.org/sioc/ns#> .
@prefix :     <http://example.com/> .

:post9821v1
   a prov:Entity, sioc:Post;
   prov:wasRevisionOf :post9821;
   rdfs:comment ":post9821v1 is a post, which is a revision of the original post :post9821.";
.    

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

has super-properties
has domain
has range
can be qualified with

Property: prov:wasStartedBy op back to expanded properties

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

Start is when an activity is deemed to have started. The activity did not exist before its start. Any usage or generation involving an activity follows the activity's start. A start may refer to an entity, known as trigger, that set off the activity, or to an activity, known as starter, that generated the trigger.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

# Use prov:qualifiedStart to see when and where the activity was started

:experiment
   a prov:Activity;
   prov:wasStartedBy :researcher;
.

:researcher a prov:Agent .

Start is when an activity is deemed to have started. A start may refer to an entity, known as trigger, that initiated the activity.

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.

Class: prov:ActivityInfluence back to qualified classes

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

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:bar_chart 
   a prov:Entity;
   prov:wasGeneratedBy      :illustrating;
   prov:qualifiedGeneration :making-bar-chart;
. 

:making-bar-chart
   a prov:Generation, 
     prov:ActivityInfluence;    ## Instances of Generation, Invalidation, and Communication qualify
   prov:activity :illustrating; ## the influence of an Activity (cited by prov:activity)
   rdfs:comment "Ended up with bar chart as line chart looked ugly."@en;
.

:illustrating a prov:Activity .
is subclass of
prov:Influence
described with properties:
prov:activity op
prov:influencer op , prov:hadActivity op , prov:hadRole op
has subclasses
prov:Generation , prov:Invalidation , prov:Communication

Class: prov:AgentInfluence back to qualified classes

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

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:illustrating
    a prov:Activity; 
    prov:wasAssociatedWith :derek;
    prov:qualifiedAssociation [
       a prov:Association, 
         prov:AgentInfluence;   ## Instances of Generation, Invalidation, and Communication qualify
       prov:agent   :derek;     ## the influence of an Agent (cited by prov:agent)
       prov:hadRole :illustrationist
    ];
.

:derek a prov:Person, prov:Agent, prov:Entity .

:illustratonist a prov:Role .
is subclass of
prov:Influence
described with properties:
prov:agent op
prov:influencer op , prov:hadActivity op , prov:hadRole op
has subclasses
prov:Delegation , prov:Association , prov:Attribution

Class: 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.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:illustrating
    a prov:Activity; 
    prov:wasAssociatedWith :derek, 
                           :steve;
    prov:qualifiedAssociation [
        a prov:Association;
        prov:agent   :derek;
        prov:hadRole :illustrationist;
    ];
    prov:qualifiedAssociation [
        a prov:Association;
        prov:agent   :steve;
        prov:hadRole :stylist;
        prov:hadPlan :style-guide;
        rdfs:comment "Steve helped Derek conform with the publisher's style guide."@en;
    ];
.

:derek a prov:Person, prov:Agent, prov:Entity .
:steve a prov:Person, prov:Agent, prov:Entity .

:illustratonist a prov:Role .
:stylist        a prov:Role .

:style-guide a prov:Plan, prov:Entity .

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

is subclass of
prov:AgentInfluence
described with properties:
prov:hadPlan op
prov:hadRole op
prov:agent op
in range of
prov:qualifiedAssociation op
qualifies
prov:wasAssociatedWith op
prov-dm
prov-dm
prov-n
prov-n

Class: prov:Attribution back to qualified classes

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

Attribution is the ascribing of an entity to an agent. When an entity e is attributed to agent ag, entity e was generated by some unspecified activity that in turn was associated to agent ag. Thus, this relation is useful when the activity is not known, or irrelevant.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

<http://dbpedia.org/resource/Fallingwater>
   a prov:Entity;
   prov:wasAttributedTo <http://dbpedia.org/resource/Edgar_J._Kaufmann>,
                        <http://dbpedia.org/resource/Frank_Lloyd_Wright>,
                        :western-Pennsylvania-Conservancy;
   prov:qualifiedAttribution [
      a prov:Attribution;
      prov:agent <http://dbpedia.org/resource/Edgar_J._Kaufmann>;
      prov:hadRole :owner;
   ];
   prov:qualifiedAttribution [
      a prov:Attribution;
      prov:agent <http://dbpedia.org/resource/Frank_Lloyd_Wright>;
      prov:hadRole :architect;
   ];
   prov:qualifiedAttribution [
      a prov:Attribution;
      prov:agent :western-Pennsylvania-Conservancy;
      prov:hadRole :conserver;
   ];
.

<http://dbpedia.org/resource/Edgar_J._Kaufmann>  a prov:Person, prov:Agent .
<http://dbpedia.org/resource/Frank_Lloyd_Wright> a prov:Person, prov:Agent .
:western-Pennsylvania-Conservancy a prov:Organization, prov:Agent . 

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

is subclass of
prov:AgentInfluence
described with properties:
prov:agent op
in range of
prov:qualifiedAttribution op
qualifies
prov:wasAttributedTo op
prov-dm
prov-dm
prov-constraints
prov-constraints
prov-n
prov-n

Class: 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.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:writing-celebrity-gossip 
   a prov:Activity;
   prov:wasInformedBy          :voicemail-interception;
   prov:qualifiedCommunication :informing-the-journalist;
.

:informing-the-journalist 
   a prov:Communication;
   prov:activity   :voicemail-interception;
   prov:atLocation :unknown-location;
   rdfs:comment    """The journalist was informed by the private 
                      investigator, but we don't know how or what he was told."""@en;
.

:voicemail-interception a prov:Activity .

:unknown-location 
   a prov:Location;
   rdfs:label "Location unknown"@en;
.

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:activity :everyone_else_jumping_off_bridge; :foo :bar ].

is subclass of
prov:ActivityInfluence
described with properties:
prov:activity op
in range of
prov:qualifiedCommunication op
qualifies
prov:wasInformedBy op
prov-dm
prov-dm
prov-constraints
prov-constraints
prov-n
prov-n

Class: prov:Delegation back to qualified classes

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

Delegation is the assignment of authority and responsibility to an agent (by itself or by another agent) to carry out a specific activity as a delegate or representative, while the agent it acts on behalf of retains some responsibility for the outcome of the delegated work. For example, a student acted on behalf of his supervisor, who acted on behalf of the department chair, who acted on behalf of the university; all those agents are responsible in some way for the activity that took place but we do not say explicitly who bears responsibility and to what degree.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .
  
:policySale
   a prov:Actvity;
   prov:wasAssociatedWith :insuranceAgent_Frank;
.

:insuranceAgent_Frank
   a prov:Person;
   prov:actedOnBehalfOf :insuranceCompany_A;
   prov:qualifiedDelegation [
      a prov:Delegation;
      prov:agent   :insuranceCompany_A;
      prov:hadRole :guarantor; # The company is the guarantor of the policy
   ];
.

An instance of prov:Delegation 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:qualifiedDelegation [ a prov:Delegation; prov:entity :mother; :foo :bar ].

is subclass of
prov:AgentInfluence
described with properties:
prov:hadActivity op
prov:agent op
in range of
prov:qualifiedDelegation op
qualifies
prov:actedOnBehalfOf op
prov-dm
prov-dm
prov-n
prov-n

Class: prov:Derivation back to qualified classes

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

A derivation is a transformation of an entity into another, an update of an entity resulting in a new one, or the construction of a new entity based on a pre-existing entity.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:bar_chart 
   a prov:Entity;
   prov:wasDerivedFrom :aggregatedByRegions;  # The simplest (and least detailed) form of derivation.
.

:bar_chart
   a prov:Entity;
   prov:wasDerivedFrom :aggregatedByRegions;  # The simple form can be accompanied by a qualified form:
   prov:qualifiedDerivation [                  
      a prov:Derivation;                      # An instance of Derivation provides more details
      prov:entity      :aggregatedByRegions;  # about how :bar_chart was derived from :aggregatedRegions

      :foo :bar;                              # Arbitrary domain-specific descriptions are permitted.

      # Derivations can cite the influencing Activity in doing the derivation.
      prov:hadActivity   :illustration_activity;

      # They can also cite the Usage and Generation that the Activity performed to generate :bar_chart.
      prov:hadUsage      :how_illustration_activity_used_data;
      prov:hadGeneration :bar_chart_generation;
   ];
.

:illustration_activity 
   a prov:Activity;
   prov:wasAttributedTo :derek;
.

:bar_chart_generation
   a prov:Generation, prov:InstantaneousEvent;
   prov:atTime "2012-04-03T00:00:01Z"^^xsd:dateTime;
.

:how_illustration_activity_used_data
   a prov:Usage;
.

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

is subclass of
prov:EntityInfluence
described with properties:
prov:hadGeneration op , prov:hadUsage op
prov:hadActivity op
prov:entity op
in range of
prov:qualifiedDerivation op
qualifies
prov:wasDerivedFrom op
prov-dm
prov-dm
prov-constraints
prov-constraints
prov-n
prov-n

Class: prov:End back to qualified classes

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

End is when an activity is deemed to have ended. The activity no longer exists after its end. Any usage, generation, or invalidation involving an activity precedes the activity's end. An end may refer to an entity, known as trigger, that terminated the activity, or to an activity, known as ender that generated the trigger.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

# End can be used to qualify wasEndedBy with time and location information

:experiment 
   a prov:Activity;
   prov:wasEndedBy :inconsistentResult;
   prov:qualifiedEnd [
      a prov:End;
      prov:entity     :inconsistentResult;
      prov:atTime     "2011-07-16T01:52:02Z"^^xsd:dateTime;
      prov:atLocation :scienceLab_003;
   ];
.
   
:inconsistentResult a prov:Entity .

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:qualifiedEnd [ a prov:End; prov:entity :buzzer; :foo :bar; prov:atTime '2012-03-09T08:05:08-05:00'^^xsd:dateTime ].

is subclass of
prov:InstantaneousEvent , prov:EntityInfluence
described with properties:
prov:hadRole op
prov:atTime dp , prov:entity op
in range of
prov:qualifiedEnd op
qualifies
prov:wasEndedBy op
prov-dm
prov-dm
prov-constraints
prov-constraints
prov-n
prov-n

Class: prov:EntityInfluence back to qualified classes

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

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

# EntityInfluence is intended to be an 'abstract' subclass of Influence 
# for Influence that reference an entity. It is a superclass for concrete Influences 
# (e.g. Usage, Derivation, Source) 

# It is not recommended that the type EntityInfluence be used without also declaring
# one of its concrete subclasses.

# By definition, all instances of prov:Usage are also instances of prov:EntityInfluence.

:sortActivity
   a prov:Activity;
   prov:used :datasetA;
   prov:qualifiedUsage [
      a prov:Usage, 
        prov:EntityInfluence; ## Instances of Start, End, Usage, and Derivation qualify
      prov:entity  :datasetA; ## the influencd of an Entity (cited by prov:entity)
      prov:hadRole :inputToBeSorted;
   ];
   prov:generated :datasetB;
.
is subclass of
prov:Influence
described with properties:
prov:entity op
prov:influencer op , prov:hadActivity op , prov:hadRole op
has subclasses
prov:Start , prov:End , prov:Derivation , prov:Usage , prov:Source , prov:Revision , prov:Quotation

Class: prov:Generation back to qualified classes

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

Generation is the completion of production of a new entity by an activity. This entity did not exist before generation and becomes available for usage after this generation.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix bbc:  <http://www.bbc.co.uk/> .
@prefix :     <http://example.com/> .

:bbcNews2012-04-03 
   a prov:Entity, :DailyNews;
   rdfs:comment """The BBC news home page on 2012-04-03 contained a reference 
                   to a given news item, but the BBC news home page on the next day did not.""";

   prov:wasGeneratedBy :publishingActivity;
   prov:qualifiedGeneration [
      a prov:Generation, prov:InstantaneousEvent;
      prov:atTime "2012-04-03T00:00:01Z"^^xsd:dateTime;
      prov:activity :publishingActivity;
   ];
   prov:qualifiedInvalidation [
      a prov:Invalidation, prov:InstantaneousEvent;
      prov:atTime "2012-04-03T23:59:59Z"^^xsd:dateTime;
   ];
.
:publishingActivity 
   a prov:Activity.
<> prov:wasDerivedFrom <http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-dm.html#dfn-wasinvalidatedby> .

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:activity :baking; :foo :bar ].

is subclass of
prov:InstantaneousEvent , prov:ActivityInfluence
described with properties:
prov:hadRole op
prov:atTime dp , prov:activity op
in range of
prov:hadGeneration op prov:qualifiedGeneration op
qualifies
prov:wasGeneratedBy op
prov-dm
prov-dm
prov-constraints
prov-constraints
prov-n
prov-n

Class: prov:Influence back to qualified classes

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

Influence is the capacity an entity, activity, or agent to have an effect on the character, development, or behavior of another by means of usage, start, end, generation, invalidation, communication, derivation, attribution, association, or delegation.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix my:   <http://example.com/ontology#> .
@prefix :     <http://example.com/> .

# Although a domain extension (e.g. ':wasConductedBy') is not defined by PROV-O,
# the relation between a surgery and an agent can still be qualified
# by reusing prov:Influence and one of its three subclasses 
# (depending on the type of influencer):
# AgentInfluence, EntityInfluence, and ActivityInfluence.

my:wasConductedBy rdfs:subPropertyOf prov:wasAssociatedWith .

:conductingSurgery_1
   a prov:Activity;
   my:wasConductedBy :bob;     # This unqualified influence is unknown in PROV, but would be a subproperty of wasAssociatedWith.
   prov:qualifiedAssociation [ # Even though PROV systems do not understand my:wasConductedBy, 
      a prov:Association,      # they can recognize that the unknown relation is being qualified with a prov:hadRole.
        prov:AgentInfluence,   # Inferred
        prov:Influence;        # Inferred
      prov:agent   :bob;       # The object of my:wasConductedBy
      prov:hadRole :surgeon;
   ];
.

:bob       a prov:Agent .
my:surgeon a prov:Role .

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

Any resource influenced by a prov:Entity, prov:Activity, or prov:Agent can qualify the influence by referencing an instance of prov:Influence. Instances of prov:Influence in turn cite the influencing Entity, Activity, or Agent (using prov:entity, prov:activity, or prov:agent, respectively) and may be further described with any kind of attributes, including user-defined attributes and those provided by PROV (prov:hadRole, prov:hadPlan, prov:atTime, prov:atLocation). A description (via prov:Influence) of the binary influence implies the assertion of the binary influence.

described with properties:
prov:hadRole op , prov:influencer op , prov:hadActivity op
in range of
prov:qualifiedInfluence op
has subclasses
prov:ActivityInfluence , prov:AgentInfluence , prov:EntityInfluence
qualifies
prov:wasInfluencedBy op
prov-dm
prov-dm
prov-n
prov-n

Class: prov:InstantaneousEvent back to qualified classes

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

The PROV data model is implicitly based on a notion of instantaneous events (or just events), that mark transitions in the world. Events include generation, usage, or invalidation of entities, as well as starting or ending of activities. This notion of event is not first-class in the data model, but it is useful for explaining its other concepts and its semantics.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix bbc:  <http://www.bbc.co.uk/> .
@prefix :     <http://example.com/> .

:bbcNews2012-04-03 
   a prov:Entity, :DailyNews;
   rdfs:comment """The BBC news home page on 2012-04-03 contained a reference 
                 to a given news item, but the BBC news home page on the next day did not.""";

   prov:qualifiedGeneration [
      a prov:Generation, prov:InstantaneousEvent;
      prov:atTime "2012-04-03T00:00:01Z"^^xsd:dateTime;
   ];
   prov:qualifiedInvalidation [
      a prov:Invalidation, prov:InstantaneousEvent;
      prov:atTime "2012-04-03T23:59:59Z"^^xsd:dateTime;
   ];
.

<> prov:wasDerivedFrom <http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-dm.html#dfn-wasinvalidatedby> .

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.

described with properties:
prov:atTime dp
prov:atLocation op
has subclasses
prov:Generation , prov:Start , prov:Usage , prov:Invalidation , prov:End
prov-constraints
prov-constraints

Class: prov:Invalidation back to qualified classes

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

Invalidation is the start of the destruction, cessation, or expiry of an existing entity by an activity. The entity is no longer available for use (or further invalidation) after invalidation. Any generation or usage of an entity precedes its invalidation.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix wgs:  <http://www.w3.org/2003/01/geo/wgs84_pos#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix :     <http://example.com/> .

:the-Painter 
   a prov:Entity, :Painting;
   rdfs:label "Le Peintre"@fr, "The Painter"@en;
   prov:wasAttributedTo <http://dbpedia.org/resource/Pablo_Picasso>;

   prov:wasInvalidatedBy :swissair_Flight_111_crash;
   prov:qualifiedInvalidation [
      a prov:Invalidation;
      prov:activity    :swissair_Flight_111_crash;
      prov:atTime      "2012-09-02T01:31:00Z";
      prov:atLocation  <http://purl.org/twc/location/Swissair-Flight-111-crash>;
   ];
. 

<http://purl.org/twc/location/Swissair-Flight-111-crash>
   a prov:Location;
   wgs:lat   44.409167;
   wgs:long -63.973611;
.

<http://dbpedia.org/resource/Pablo_Picasso> 
   a prov:Agent;
   foaf:depiction <http://upload.wikimedia.org/wikipedia/commons/9/98/Pablo_picasso_1.jpg>;
.

:swissair_Flight_111_crash 
   a prov:Activity;
   prov:used          <http://dbpedia.org/resource/Swissair_Flight_111>;
   prov:startedAtTime "2012-09-02T01:31:00Z";
   prov:atLocation    <http://dbpedia.org/resource/Atlantic_ocean>;
.

<> prov:wasDerivedFrom <http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-dm.html#term-Invalidation> .

An instance of prov:Invalidation provides additional descriptions about the binary prov:wasInvalidatedBy relation from an invalidated prov:Entity to the prov:Activity that invalidated it. For example, :uncracked_egg prov:wasInvalidatedBy :baking; prov:qualifiedInvalidation [ a prov:Invalidation; prov:activity :baking; :foo :bar ].

is subclass of
prov:InstantaneousEvent , prov:ActivityInfluence
described with properties:
prov:hadRole op
prov:atTime dp , prov:activity op
in range of
prov:qualifiedInvalidation op
qualifies
prov:wasInvalidatedBy op
prov-dm
prov-dm
prov-constraints
prov-constraints
prov-n
prov-n

Class: 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.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:illustrating 
   a prov:Activity;
   prov:qualifiedAssociation :steve-checking-style-guide;
.

:steve-checking-style-guide
   a prov:Association;
   prov:agent   :steve;
   prov:hadPlan :style-guide;
   rdfs:comment "Steve followed the publisher's style guide"@en;
. 

:style-guide
   a prov:Plan, prov:Entity;
   rdfs:comment "Use blue graphs for positive spin, red for negative"@en;
.

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.

is subclass of
prov:Entity
in range of
prov:hadPlan op
prov-dm
prov-dm
prov-n
prov-n

Class: 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 who may or may not be its original author. Quotation is a particular case of derivation.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:bl-dagstuhl
   a prov:Entity;
   prov:wasQuotedFrom <http://thinklinks.wordpress.com/2012/03/07/thoughts-from-the-dagstuhl-principles-of-provenance-workshop/>;
   prov:qualifiedQuotation [
      a prov:Quotation;
      prov:entity    <http://thinklinks.wordpress.com/2012/03/07/thoughts-from-the-dagstuhl-principles-of-provenance-workshop/>;
      prov:hadQuoter <http://data.semanticweb.org/person/luc-moreau>;
      prov:hadQuoted <http://data.semanticweb.org/person/paul-groth>;
   ] .

<http://thinklinks.wordpress.com/2012/03/07/thoughts-from-the-dagstuhl-principles-of-provenance-workshop/> 
   a prov:Entity .

<http://data.semanticweb.org/person/luc-moreau> a prov:Person, prov:Agent .
<http://data.semanticweb.org/person/paul-groth> a prov:Person, prov:Agent .

An instance of prov:Quotation provides additional descriptions about the binary prov:wasQuotedFrom relation from some taken prov:Entity from an earlier, larger prov:Entity. For example, :here_is_looking_at_you_kid prov:wasQuotedFrom :casablanca_script; prov:qualifiedQuotation [ a prov:Quotation; prov:entity :casablanca_script; :foo :bar ].

is subclass of
prov:EntityInfluence
described with properties:
prov:entity op
in range of
prov:qualifiedQuotation op
qualifies
prov:wasQuotedFrom op
prov-dm
prov-dm
prov-n
prov-n

Class: prov:Revision back to qualified classes

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

A revision is a derivation for which the resulting entity is a revised version of some original. The implication here is that the resulting entity contains substantial content from the original. Revision is a particular case of derivation.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:draft2 
   a prov:Entity;
   prov:wasRevisionOf    :draft1;
   prov:qualifiedRevision [
      a prov:Revision;
      prov:entity        :draft1;
   ];

   prov:wasAttributedTo :edward;
   prov:qualifiedAssociation [
      a prov:Association;
      prov:agent        :edward;
      prov:hadRole      :editor;
   ];
.

:draft1 a prov:Entity .

:edward 
   a prov:Person, prov:Agent, prov:Entity;
.

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

is subclass of
prov:EntityInfluence
described with properties:
prov:entity op
in range of
prov:qualifiedRevision op
qualifies
prov:wasRevisionOf op
prov-dm
prov-dm
prov-n
prov-n

Class: prov:Role back to qualified classes

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

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

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:divideActivity 
   a prov:Activity;   
   prov:used :variableA, :variableB;

   prov:qualifiedUsage [
      a prov:Usage;
      prov:entity  :variableA;
      prov:hadRole :dividend;          
   ];
   prov:qualifiedUsage [
      a prov:Usage;
      prov:entity  :variableB;
      prov:hadRole :divisor;          
   ];

   prov:generated :result_112234;
.

:variableA 
   a prov:Entity;
   prov:value 10;
.
:variableB 
   a prov:Entity;
   prov:value 2;
.

:dividend a prov:Role.
:divisor  a prov:Role.

:result_112234 
   a prov:Entity;
   prov:value 5;
   prov:wasGeneratedBy :divideActivity;
.
in range of
prov:hadRole op
prov-dm
prov-dm
prov-n
prov-n

Class: prov:Source back to qualified classes

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

A primary source for a topic refers to something produced by some agent with direct experience and knowledge about the topic, at the time of the topic's study, without benefit from hindsight. Because of the directness of primary sources, they 'speak for themselves' in ways that cannot be captured through the filter of secondary sources. As such, it is important for secondary sources to reference those primary sources from which they were derived, so that their reliability can be investigated. A primary source relation is a particular case of derivation of secondary materials from their primary sources. It is recognized that the determination of primary sources can be up to interpretation, and should be done according to conventions accepted within the application's domain.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:myPost 
   a prov:Entity;
   prov:hadOriginalSource :donQuixote;
   prov:qualifiedSource [
      a prov:Source;
      prov:entity :donQuixote;
      :confidenceValue "6"^^xsd:integer;
      rdfs:comment """Not sure if Don Quixote was the original source, 
                      so asserting a confidence value of 6 out of 10.""";
   ];
.

:donQuixote a prov:Entity.

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

is subclass of
prov:EntityInfluence
described with properties:
prov:entity op
in range of
prov:qualifiedSource op
qualifies
prov:hadPrimarySource op
prov-dm
prov-dm
prov-n
prov-n

Class: prov:Start back to qualified classes

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

Start is when an activity is deemed to have started. The activity did not exist before its start. Any usage or generation involving an activity follows the activity's start. A start may refer to an entity, known as trigger, that set off the activity, or to an activity, known as starter, that generated the trigger.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

# Start can be used to qualify wasStartedBy with time and location information.

:experiment
   a prov:Activity;
   prov:wasStartedBy :researcher;
   prov:qualifiedStart [
      a prov:Start;
      prov:entity    :researcher;
      prov:atTime    "2011-07-06T01:48:36Z"^^xsd:dateTime;
      prov:atLocation :scienceLab_003;
   ];
.

:researcher a prov:Agent .

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:qualifiedStart [ a prov:Start; prov:entity :bang; :foo :bar; prov:atTime '2012-03-09T08:05:08-05:00'^^xsd:dateTime ] .

is subclass of
prov:InstantaneousEvent , prov:EntityInfluence
described with properties:
prov:hadActivity op , prov:hadRole op
prov:atTime dp , prov:entity op
in range of
prov:qualifiedStart op
qualifies
prov:wasStartedBy op
prov-dm
prov-dm
prov-constraints
prov-constraints
prov-n
prov-n

Class: prov:Usage back to qualified classes

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

Usage is the beginning of utilizing an entity by an activity. Before usage, the activity had not begun to utilize this entity and could not have been affected by the entity.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:sortActivity 
   a prov:Activity;
   prov:startedAtTime  "2011-07-16T01:52:02Z"^^xsd:dateTime; 
   prov:qualifiedUsage [
      a prov:Usage;
      prov:entity    :datasetA;         ## The entity used by the prov:Usage
      prov:hadRole   :inputToBeSorted;  ## the role of the entity in this prov:Usage        
   ];
   prov:generated :datasetB;
.

:datasetA        a prov:Entity .
:datasetB        a prov:Entity .
:inputToBeSorted a prov:Role .

## Expressing the above using starting-point terms
## the role of :datasetA cannot be expressed

:sortActivity
   a prov:Activity;
   prov:startedAtTime     "2011-07-16T01:52:02Z"^^xsd:dateTime;
   prov:used       :datasetA;
   prov:generated  :datasetB;
.

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:qualifiedUsage [ a prov:Usage; prov:entity :podium; :foo :bar ].

is subclass of
prov:InstantaneousEvent , prov:EntityInfluence
described with properties:
prov:hadRole op
prov:atTime dp , prov:entity op
in range of
prov:hadUsage op prov:qualifiedUsage op
qualifies
prov:used op
prov-dm
prov-dm
prov-constraints
prov-constraints
prov-n
prov-n

Property: prov:activity op back to qualified properties

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

ActivityInfluence provides additional descriptions of an Activity's binary influence upon any other kind of resource. Instances of ActivityInfluence use the prov:activity property to cite the influencing Activity.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:making-bar-chart
   a prov:Generation, 
     prov:ActivityInfluence;
   prov:activity :illustrating;
   rdfs:comment "Ended up with bar chart as line chart looked ugly."@en;
.

:illustrating a prov:Activity .

:bar_chart 
   a prov:Entity;
   prov:wasGeneratedBy :illustrating;
   prov:qualifiedGeneration :making-bar-chart;
.

The property used by an prov:ActivityInfluence to cite the prov:Activity that influenced an Entity, Activity, or Agent. It can be used to refer to the activity involved in generating an entity, informing another activity, or starting another activity.

has super-properties
has domain
has range

Property: prov:agent op back to qualified properties

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

AgentInfluence provides additional descriptions of an Agent's binary influence upon any other kind of resource. Instances of AgentInfluence use the prov:agent property to cite the influencing Agent.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:world_flight_1937
   a prov:Activity;

   prov:wasAssociatedWith <http://dbpedia.org/resource/Amelia_Earhart>,
                          <http://dbpedia.org/resource/Purdue_University>,
                          <http://dbpedia.org/resource/Lockheed_Aircraft_Company>;
   prov:qualifiedAssociation [
      a prov:Association;
      prov:agent   <http://dbpedia.org/resource/Amelia_Earhart>;
      prov:hadRole :pilot;
   ];
   prov:qualifiedAssociation [
      a prov:Association;
      prov:agent   <http://dbpedia.org/resource/Purdue_University>;
      prov:hadRole :financer;
   ];
   prov:qualifiedAssociation [
      a prov:Association;
      prov:agent   <http://dbpedia.org/resource/Lockheed_Aircraft_Company>;
      prov:hadRole :plane_builder;
   ];

   rdfs:seeAlso <http://en.wikipedia.org/wiki/Amelia_Earhart#1937_world_flight>;
.

<http://dbpedia.org/resource/Amelia_Earhart>            a prov:Person,       prov:Agent .
<http://dbpedia.org/resource/Purdue_University>         a prov:Organization, prov:Agent .
<http://dbpedia.org/resource/Lockheed_Aircraft_Company> a prov:Organization, prov:Agent .

The property used by a prov:AgentInfluence to cite the Agent that influenced an Entity, Activity, or Agent. It can be used to express the agent involved in being responsible for an activity, being attributed to an entity, starting or ending an activity, or being responsible for another subordinate agent in an activity.

has super-properties
has domain
has range

Property: prov:atTime dp back to qualified properties

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

The PROV data model is implicitly based on a notion of instantaneous events (or just events), that mark transitions in the world. Events include generation, usage, or invalidation of entities, as well as starting or ending of activities. This notion of event is not first-class in the data model, but it is useful for explaining its other concepts and its semantics.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:Timearticle20120430_publication
   a prov:InstantaneousEvent;
   prov:atTime "2012-04-30T20:40:40"^^xsd:dateTime;
. 

The time at which an InstantaneousEvent occurred, in the form of xsd:dateTime.

has characteristics Functional

has domain
has range
  • http://www.w3.org/2001/XMLSchema#dateTime
qualifies
prov:invalidatedAtTime dp

Property: prov:entity op back to qualified properties

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

EntityInfluence provides additional descriptions of an Entity's binary influence upon any other kind of resource. Instances of EntityInfluence use the prov:entity property to cite the influencing Entity.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:myPost 
   a prov:Entity;
   prov:hadOriginalSource :donQuixote;
   prov:qualifiedSource [
      a prov:Source;
      prov:entity :donQuixote;
      # Other attributes of the relationship
   ];
.

:donQuixote a prov:Entity .

The property used by an prov:EntityInfluence to cite the Entity that was influenced by an Entity, Activity, or Agent. It can be used to refer to the entity involved in deriving another entity, being quoted or revised from, being the source of another entity, or being used in an activity.

has super-properties
has domain
has range

Property: prov:hadActivity op back to qualified properties

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

An activity is something that occurs over a period of time and acts upon or with entities; it may include consuming, processing, transforming, modifying, relocating, using, or generating entities.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

# The activity that which used, generated, invalidated or was responsible for the entity.
# In this qualified Derivation prov:hadActivity references the activity that generated the bar chart.

:bar_chart
   a prov:Entity;
   prov:wasDerivedFrom :aggregatedByRegions;
   prov:wasGeneratedBy :make_bar_chart;
   prov:qualifiedDerivation [
      a prov:Derivation;
      prov:entity      :aggregatedByRegions;
      prov:hadActivity :make_bar_chart; # references same activity as prov:wasGeneratedBy
   ];
.

:aggregatedByRegions a prov:Entity .
:make_bar_chart      a prov:Activity .

The _optional_ Activity of an Influence, which used, generated, invalidated, or was the responsibility of some Entity. This property is _not_ used by ActivityInfluence (use prov:activity instead).

has domain
has range

Property: prov:hadGeneration op back to qualified properties

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

Generation is the completion of production of a new entity by an activity. This entity did not exist before generation and becomes available for usage after this generation.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:bar_chart   
   prov:wasDerivedFrom :aggregatedByRegions;
   prov:qualifiedDerivation [
      a prov:Derivation;
      prov:hadGeneration :illustration;
   ];
.

:illustration   
   a prov:Generation, 
     prov:InstantaneousEvent;
   prov:atTime "2012-04-03T00:00:01Z"^^xsd:dateTime;
.

## An alternative way to express some of the above information

:bar_chart   
   prov:wasDerivedFrom :aggregatedByRegions;
   prov:wasGeneratedBy :illustrationActivity;
.

:illustrationActivity   
   a prov:Activity;
   prov:endedAtTime "2012-04-03T00:00:01Z"^^xsd:dateTime;
.

The _optional_ Generation involved in an Entity's Derivation.

has domain
has range

Property: prov:hadPlan op back to qualified properties

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

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

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:illustrating
   a prov:Activity; 
   prov:wasAssociatedWith :derek, 
                          :steve;
   prov:qualifiedAssociation :steve-checking-style-guide;
.

:steve-checking-style-guide
   a prov:Association;
   prov:agent   :steve;
   prov:hadRole :stylist;
   prov:hadPlan :style-guide;
   rdfs:comment "Steve followed the style guide"@en;
.

:style-guide
   a prov:Plan, prov:Entity;
   rdfs:comment "Use blue graphs for positive spin, red for negative"@en;
.

The _optional_ Plan adopted by an Agent in Association with some Activity. Plan specifications are out of the scope of this specification.

has domain
has range

Property: prov:hadRole op back to qualified properties

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

Usage is the beginning of utilizing an entity by an activity. Before usage, the activity had not begun to utilize this entity and could not have been affected by the entity.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:divideActivity 
   a prov:Activity;   

   prov:used         :variableA;
   prov:qualifiedUsage [
      a prov:Usage;
      prov:entity    :variableA;
      prov:hadRole   :dividend;          
   ];
   
   prov:used         :variableB;
   prov:qualifiedUsage [
      a prov:Usage;
      prov:entity    :variableB;
      prov:hadRole   :divisor;          
   ];
.
   
:variableA a prov:Entity .
:variableB a prov:Entity .

:dividend a prov:Role .
:divisor  a prov:Role .

The _optional_ Role that an Entity assumes in the context of an Activity. For example, :baking prov:used :spoon; prov:qualified [ a prov:Usage; prov:entity :spoon; prov:hadRole roles:mixing_implement ].

has domain
has range

Property: prov:hadUsage op back to qualified properties

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

Usage is the beginning of utilizing an entity by an activity. Before usage, the activity had not begun to utilize this entity and could not have been affected by the entity.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:digestedProteinSample1
   a prov:Entity;
   prov:wasDerivedFrom :proteinSample;
   prov:qualifiedDerivation [
      a prov:Derivation;
      prov:hadUsage [
         a prov:Usage;
         :treatmentEnzyme :Trypsin;
      ];
   ];
.

:proteinSample a prov:Entity .

The _optional_ Usage involved in an Entity's Derivation.

has domain
has range

Property: prov:influencer op back to qualified properties

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

This property is used as part of the qualified influence pattern. Subclasses of prov:Influence use these subproperties to reference the resource (Entity, Agent, or Activity) whose influence is being qualified.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:illustrationActivity 
   a prov:Activity;
   prov:qualifiedUsage         :usage_1;
   prov:qualifiedAssociation   :association_1;
   prov:qualifiedCommunication :communication_1;
.

:usage_1
   a prov:Usage;
   prov:entity     :aggregatedByRegions;
   prov:influencer :aggregatedByRegions; # Inferred
.

:association_1
   a prov:Association;
   prov:agent      :derek;
   prov:influencer :derek; # - - - - - - - Inferred
.

:communication_1
   a prov:Communication;
   prov:activity   :aggregationActivity;
   prov:influencer :aggregationActivity; # Inferred
.

:aggregationActivity a prov:Activity .  
:derek               a prov:Agent .
:aggregatedByRegions a prov:Entity .

Subproperties of prov:influencer are used to cite the object of an unqualified PROV-O triple whose predicate is a subproperty of prov:wasInfluencedBy (e.g. prov:used, prov:wasGeneratedBy). prov:influencer is used much like rdf:object is used.

has domain
has sub-properties

Property: prov:qualifiedAssociation op back to qualified properties

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

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.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:illustrating
    a prov:Activity; 
    prov:wasAssociatedWith :derek, 
                           :steve;
    prov:qualifiedAssociation [
        a prov:Association;
        prov:agent :derek;
        prov:role  :illustrationist;
        rdfs:comment "Derek made the illustration"@en
    ];
    prov:qualifiedAssociation [
        a prov:Association;
        prov:agent :steve;
        prov:role  :stylist;
        prov:hadPlan :style-guide;
        rdfs:comment "Steve helped Derek conform with the publisher's style guide."@en 
    ];
    prov:qualifiedAssociation [
        a prov:Association;
        prov:agent :derek;
        prov:role  :stylist;
        rdfs:comment "But Derek also did some styling of his own."@en 
    ] .

:derek a prov:Person, prov:Agent, prov:Entity .
:steve a prov:Person, prov:Agent, prov:Entity .

:illustratonist a prov:Role .
:stylist        a prov:Role .

:style-guide a prov:Plan, prov:Entity .

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 domain
has range
qualifies
prov:wasAssociatedWith op

Property: prov:qualifiedAttribution op back to qualified properties

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

Attribution is the ascribing of an entity to an agent. When an entity e is attributed to agent ag, entity e was generated by some unspecified activity that in turn was associated to agent ag. Thus, this relation is useful when the activity is not known, or irrelevant.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

## When the role of the agent is not known or does not matter:

:nationalRegionsList 
   a prov:Entity;
   prov:wasAttributedTo :civil_action_group;
.

:civil_action_group a prov:Agent .

## If we want to express the role of the agent:

:nationalRegionsList 
   a prov:Entity;
   prov:qualifedAttribution [
      a prov:Attribution;
      prov:agent   :civil_action_group;
      prov:hadRole :owner;
   ]
.

:owner a prov:Role .

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 domain
has range
qualifies
prov:wasAttributedTo op

Property: prov:qualifiedCommunication op back to qualified properties

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

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

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:writing-celebrity-gossip 
   a prov:Activity;
   prov:wasAttributedTo :journalist;
   prov:wasInformedBy   :voicemail-interception;
   prov:qualifiedCommunication [
      a prov:Communication;
      prov:activity :voicemail-interception;
      rdfs:comment """The journalist was informed by the private 
                      investigator, but we don't know how or what he was told."""@en;
   ];
.

:voicemail-interception 
   a prov:Activity;
   prov:wasAttributedTo :private-investigator;
.

:private-investigator a prov:Agent .
:journalist           a prov:Agent .

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

has domain
has range
can be qualified with

Property: prov:qualifiedDelegation op back to qualified properties

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

Delegation is the assignment of authority and responsibility to an agent (by itself or by another agent) to carry out a specific activity as a delegate or representative, while the agent it acts on behalf of retains some responsibility for the outcome of the delegated work. For example, a student acted on behalf of his supervisor, who acted on behalf of the department chair, who acted on behalf of the university; all those agents are responsible in some way for the activity that took place but we do not say explicitly who bears responsibility and to what degree.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:traffic-stop
    a prov:Activity;
   prov:wasAssociatedWith :chauffeur, 
                          :traffic-officer-34;
   prov:qualifiedAssociation [
      a prov:Association;
      prov:agent   :chauffeur;
      prov:hadRole :violator; # The chauffeur was the one violating traffic rules.
   ];
   prov:qualifiedAssociation [
      a prov:Association;
      prov:agent   :traffic-officer-34;
      prov:hadRole :enforcer; # The officer was the one enforcing the traffic rules.
   ];
.

:chauffeur       
   a prov:Person;
   prov:actedOnBehalfOf :celebrity-in-car;
   prov:qualifiedDelegation [
      a prov:Delegation;
      prov:agent   :celebrity-in-car;
      prov:hadRole :employer; # The celebrity employed the chauffeur during the enforcement.
   ];
.

:traffic_officer_34 
   a prov:Person;
   prov:actedOnBehalfOf :city-of-Paris;
   prov:qualifiedDelegation [
      a prov:Delegation;
      prov:agent   :city-of-Paris;
      prov:hadRole :employer; # The city of Paris employed the officer during the enforcement.
   ];
.

<> prov:wasDerivedFrom <http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-dm.html#concept-communication> .

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

has domain
has range
qualifies
prov:actedOnBehalfOf op

Property: prov:qualifiedDerivation op back to qualified properties

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

A derivation is a transformation of an entity into another, an update of an entity resulting in a new one, or the construction of a new entity based on a pre-existing entity.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:bar_chart
   prov:wasDerivedFrom :aggregatedByRegions;
   prov:qualifiedDerivation [
      a prov:Derivation;
      prov:entity :aggregatedByRegions;         
      prov:hadGeneration :illustration; ## More details about the activity underpinning the derivation
   ];
.

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 domain
has range
qualifies
prov:wasDerivedFrom op

Property: prov:qualifiedEnd op back to qualified properties

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

End is when an activity is deemed to have ended. The activity no longer exists after its end. Any usage, generation, or invalidation involving an activity precedes the activity's end. An end may refer to an entity, known as trigger, that terminated the activity, or to an activity, known as ender that generated the trigger.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

## The end of the experiment might have been triggered by this inconsistent result

:experiment 
   a prov:Acticity;
   prov:wasEndedBy :inconsistentResult;
   prov:qualifiedEnd [
      a prov:End;
      prov:entity     :inconsistentResult;
      prov:atTime     "2011-07-16T01:52:02Z"^^xsd:dateTime;
      prov:atLocation :scienceLab003;
   ];
.

:inconsistentResult a prov:Entity.

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

has domain
has range
qualifies
prov:wasEndedBy op

Property: prov:qualifiedGeneration op back to qualified properties

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

Generation is the completion of production of a new entity by an activity. This entity did not exist before generation and becomes available for usage after this generation.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:bar_chart
   a prov:Entity;
   prov:wasGeneratedBy :illustrating;
   prov:qualifiedGeneration [
      a prov:Generation;
      prov:activity :illustrating;
      rdfs:comment "Ended up with bar chart as line chart looked ugly."@en;
   ];
.

:illustrating a prov:Activity .

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 domain
has range
qualifies
prov:wasGeneratedBy op

Property: prov:qualifiedInfluence op back to qualified properties

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

Influence is the capacity an entity, activity, or agent to have an effect on the character, development, or behavior of another by means of usage, start, end, generation, invalidation, communication, derivation, attribution, association, or delegation.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix my:   <http://example.com/ontology#> .
@prefix :     <http://example.com/> .

# Although a domain extension (e.g. ':wasConductedBy') is not defined by PROV-O,
# the relation between a surgery and an agent can still be qualified
# by reusing prov:Influence and one of its three subclasses 
# (depending on the type of the influencing object):
# AgentInfluence, EntityInfluence, and ActivityInfluence.

:conductingSurgery_1
   a prov:Activity;
   prov:wasInfluencedBy :bob;  # This unqualified influence is unknown in PROV, this would be a subproperty of wasAssociatedWith
   prov:qualifiedInfluence [   # Even though PROV systems do not understand :wasConductedBy, 
      a prov:Influence;        # Inferred
      prov:agent   :bob;       # The object of :wasConductedBy
      prov:hadRole :surgeon;
   ];
.

:bob       a prov:Agent .
my:surgeon a prov:Role .
has domain
has range
qualifies
prov:wasInfluencedBy op

Property: prov:qualifiedInvalidation op back to qualified properties

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

Invalidation is the start of the destruction, cessation, or expiry of an existing entity by an activity. The entity is no longer available for use (or further invalidation) after invalidation. Any generation or usage of an entity precedes its invalidation.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:the-Painter 
   a prov:Entity, :Painting;
   rdfs:label "Le Peintre"@fr, "The Painter"@en;
   prov:wasAttributedTo <http://dbpedia.org/resource/Pablo_Picasso>;

   prov:wasInvalidatedBy :swissair_Flight_111_crash;
   prov:qualifiedInvalidation [
      a prov:Invalidation;
      prov:activity    :swissair_Flight_111_crash;
      prov:atTime      "2012-09-02T01:31:00Z";
      prov:atLocation  <http://purl.org/twc/location/Swissair-Flight-111-crash>;
   ];
. 

If this Entity prov:wasInvalidatedBy Activity :a, then it can qualify how it was invalidated using prov:qualifiedInvalidation [ a prov:Invalidation; prov:activity :a; :foo :bar ].

has domain
has range
qualifies
prov:wasInvalidatedBy op

Property: prov:qualifiedQuotation op back to qualified properties

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

A quotation is the repeat of (some or all of) an entity, such as text or image, by someone who may or may not be its original author. Quotation is a particular case of derivation.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix my:   <http://example.com/vocab/my#> .
@prefix :     <http://example.com/> .

:bl-dagstuhl
   a prov:Entity;
   prov:value """During the workshop, it became clear to me that the consensus
   based models (which are often graphical in nature) can not only be
   formalized but also be directly connected to these database focused
   formalizations. I just needed to get over the differences in syntax.
   This could imply that we could have nice way to trace provenance across
   systems and through databases and be able to understand the
   mathematical properties of this interconnection.""";
   prov:wasQuotedFrom 
     <http://thinklinks.wordpress.com/2012/03/07/thoughts-from-the-dagstuhl-principles-of-provenance-workshop>;
   prov:qualifiedQuotation [
      a prov:Quotation;
      prov:entity 
        <http://thinklinks.wordpress.com/2012/03/07/thoughts-from-the-dagstuhl-principles-of-provenance-workshop>;
      my:hadQuoter <http://data.semanticweb.org/person/luc-moreau>;
   ];
.


<http://thinklinks.wordpress.com/2012/03/07/thoughts-from-the-dagstuhl-principles-of-provenance-workshop> 
   a prov:Entity;
   prov:wasAttributedTo <http://data.semanticweb.org/person/paul-groth>;
.

<http://data.semanticweb.org/person/luc-moreau> a prov:Person, prov:Agent .
<http://data.semanticweb.org/person/paul-groth> a prov:Person, prov:Agent .

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

has domain
has range
qualifies
prov:wasQuotedFrom op

Property: prov:qualifiedRevision op back to qualified properties

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

A revision is a derivation for which the resulting entity is a revised version of some original. The implication here is that the resulting entity contains substantial content from the original. Revision is a particular case of derivation.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:draft2 
   a prov:Entity;
   prov:wasRevisionOf :draft1;
   prov:qualifiedRevision [
      a prov:Revision;
      prov:entity :draft1
   ];
   prov:wasAssociatedWith :eddie;
.

:draft1 a prov:Entity .
:eddie  a prov:Person, prov:Agent, prov:Entity .

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 domain
has range
qualifies
prov:wasRevisionOf op

Property: prov:qualifiedSource op back to qualified properties

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

A primary source for a topic refers to something produced by some agent with direct experience and knowledge about the topic, at the time of the topic's study, without benefit from hindsight. Because of the directness of primary sources, they 'speak for themselves' in ways that cannot be captured through the filter of secondary sources. As such, it is important for secondary sources to reference those primary sources from which they were derived, so that their reliability can be investigated. A primary source relation is a particular case of derivation of secondary materials from their primary sources. It is recognized that the determination of primary sources can be up to interpretation, and should be done according to conventions accepted within the application's domain.

Example
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:     <http://www.w3.org/2002/07/owl#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix prov:    <http://www.w3.org/ns/prov#> .
@prefix :        <http://example.com/> .

:temperatureDisplay
   a prov:Entity;
   prov:hadOriginalSource :sensorReading20120510;
   prov:qualifiedSource [
      a prov:Source;
      prov:entity         :sensorReading20120510;
   ];
.

:sensorReading20120510 
   a prov:Entity;
   prov:wasGeneratedBy :temperatureSensor;
.

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

has domain
has range
qualifies
prov:hadPrimarySource op

Property: prov:qualifiedStart op back to qualified properties

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

Start is when an activity is deemed to have started. The activity did not exist before its start. Any usage or generation involving an activity follows the activity's start. A start may refer to an entity, known as trigger, that set off the activity, or to an activity, known as starter, that generated the trigger.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

# Start can be used to qualify wasStartedBy with time and location information

:experiment
   a prov:Activity;
   prov:wasStartedBy :researcher;
   prov:qualifiedStart [
      a prov:Start;
      prov:entity    :researcher;
      prov:atTime    "2011-07-06T01:48:36Z"^^xsd:dateTime;
      prov:atLocation :scienceLab_003;
   ];
.

:researcher a prov:Agent .

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

has domain
has range
qualifies
prov:wasStartedBy op

Property: prov:qualifiedUsage op back to qualified properties

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

Usage is the beginning of utilizing an entity by an activity. Before usage, the activity had not begun to utilize this entity and could not have been affected by the entity.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

:newsPublication
   a prov:Activity;
   prov:used :tsunami_image;
   prov:qualifiedUsage [
      a prov:Usage;
      :hasCopyrightPermission :licensedUse;  
      :hasOwner               :reuters;
   ];
.

:reuters a prov:Agent .

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 domain
has range
qualifies
prov:used op

Property: prov:wasInfluencedBy op back to qualified properties

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

Influence is the capacity an entity, activity, or agent to have an effect on the character, development, or behavior of another by means of usage, start, end, generation, invalidation, communication, derivation, attribution, association, or delegation.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

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

:illustrationActivity 
   a prov:Activity;
   prov:wasInfluencedBy :aggregatedByRegions, # prov:wasInfluencedBy is a superproperty of
                        :derek,               # many of the direct binary
                        :aggregationActivity; # PROV-O properties.
.

:aggregationActivity a prov:Activity .  
:derek               a prov:Agent .
:aggregatedByRegions a prov:Entity .

Class: prov:ProvenanceService back to access-and-query classes

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

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

# TODO

Class for a service described by a provenance service description.

is subclass of
prov:SoftwareAgent
prov-aq
prov-aq

Property: prov:hasAnchor op back to access-and-query properties

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

TODO Property needs a definition.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

# TODO

Indicates anchor URI for a potentially dynamic resource instance.

prov-aq
prov-aq

Property: prov:hasProvenance op back to access-and-query properties

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

TODO Property needs a definition.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

# TODO

Relates a resource to its provenance.

prov-aq
prov-aq

Property: prov:hasProvenanceService op back to access-and-query properties

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

TODO Property needs a definition.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

# TODO

Relates a resource to a provenance service.

prov-aq
prov-aq

Property: prov:provenanceUriTemplate dp back to access-and-query properties

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

TODO Property needs a definition.

Example
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix :     <http://example.com/> .

# TODO

Relates a provenance service to a URI template string for constructing provenance-URIs.

prov-aq
prov-aq

A. PROV-O OWL Profile

To encourage widespread adoption, PROV-O's design is intentionally minimal and lightweight. Because the OWL 2 RL profile is aimed at RDF applications that require scalable reasoning without sacrificing too much expressive power [OWL-2-PRIMER], it served as a baseline for all axioms included in PROV-O. The PROV-O axioms that do not suit the OWL 2 RL profile are listed in Table 3. All five use a class union for the domain or range of a property, while OWL 2 RL requires them to be explicitly named. Although introducing "placeholder" classes would have suited the OWL 2 RL profile, these additional classes would have been irrelevant to the modeling of provenance information, increased the size of PROV-O unnecessarily, and exposed a potential to confuse users. All five axioms listed in the following table use a non-superclass expression in a position that requires a superclass expression.

Table 3: All OWL Axioms in PROV-O that do not conform to the OWL2-RL profile.
Non OWL2-RL PROV-O Axiom
prov:atLocation rdfs:domain (prov:Activity prov:Agent prov:Entity prov:InstantaneousEvent)
prov:hadActivity rdfs:domain (prov:Delegation prov:Derivation prov:Start)
prov:hadRole rdfs:domain (prov:Association prov:End prov:Generation prov:Invalidation prov:Start prov:Usage)
prov:wasInfluencedBy rdfs:range (prov:Activity prov:Agent prov:Entity)
prov:wasInfluencedBy rdfs:domain (prov:Activity prov:Agent prov:Entity)

B. Names of inverse properties

To maximize interoperability, PROV-O intentionally avoids defining too many properties' inverses. In fact, it only defines one (prov:generated). When all inverses are defined for all properties, modelers may choose from two logically equivalent properties when making each assertion. Although the two options may be logically equivalent, developers consuming the assertions must exert extra effort to handle both (either by adding an OWL reasoner, or writing code and queries to handle both cases). This extra effort must be avoided.

For example, the first PROV-O statement (below) could just as easily be asserted as the second statement. But if a client queries using prov:wasDerivedFrom when :hadDerivation was used in the assertion, there will be no results unless OWL reasoning is applied (or the size of the query is doubled).

<http://www.w3.org/TR/prov-o/>  prov:wasDerivedFrom <http://www.w3.org/TR/prov-dm/> .

   # These two statements are equivalent if prov:wasDerivedFrom is an inverse of :hadDerivation.
   # But extra effort is required to handle both cases (if one is not already using OWL reasoning).
   # We cannot assume that everybody is using OWL reasoning.
   # We do not want people to write more code and query than necessary.

<http://www.w3.org/TR/prov-dm/>     :hadDerivation  <http://www.w3.org/TR/prov-o/>  .

So, PROV-O avoids this situation by encouraging modelers to use one property instead of its inverse; the preferred property to use is the one defined in the PROV-O ontology. Those asserting and querying for the preferred property avoid the need for OWL reasoning, additional code, and larger queries while maintaining the same level of interoperability.

However, the absence of defined inverses can lead to a different risk to interoperability. Because modelers are free to create their own properties to suit their needs, they may be motivated to assert the inverse of any PROV-O property defined herein.

For example, since PROV-O does not define the inverse of prov:wasDerivedFrom, and if three developers really want to model their assertions in the opposite direction, the following set of assertions might be found in the future web of provenance. These assertions are not in an interoperable form without the use of an OWL reasoner, additional code, or larger queries.

# If PROV-O's properties' inverses are not defined, modelers are motivated to define their own inverse.
# The following three statements are equivalent if their predicates are all inverses of prov:wasDerivedFrom.

<http://www.w3.org/TR/prov-dm/>    my:hadDerivation  <http://www.w3.org/TR/prov-o/>  .
<http://www.w3.org/TR/prov-dm/>  your:ledTo          <http://www.w3.org/TR/prov-o/>  .
<http://www.w3.org/TR/prov-dm/> their:derivedTo      <http://www.w3.org/TR/prov-o/>  .

To balance these two interoperability risks, this document provides recommendations for the local names of all PROV-O properties' inverses. The local name is available as an annotation (http://www.w3.org/ns/prov#inverse) on the preferred property that is defined in PROV-O. Although PROV-O does not define the inverses, modelers wishing to use them may; and they should use the existing PROV-O namespace (http://www.w3.org/ns/prov#).

For example, the same three modelers above that defined my:hadDerivation, your:ledTo, and their:derivedTo should instead look for the http://www.w3.org/ns/prov#inverse annotation on prov:wasDerivedFrom to determine that they should use the property http://www.w3.org/ns/prov#hadDerivation.

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

# Each PROV-O property is annotated with the local name of its inverse.

prov:wasDerivedFrom
   a owl:AsymmetricProperty, owl:IrreflexiveProperty, owl:ObjectProperty;
   rdfs:isDefinedBy <http://www.w3.org/ns/prov#>;
   prov:inverse     "hadDerivation";
   rdfs:domain  prov:Entity;
   rdfs:range   prov:Entity;
.

# Instead of defining their own, modelers should use the
# recommended inverse local name within the PROV namespace:

<http://www.w3.org/TR/prov-dm/> prov:hadDerivation <http://www.w3.org/TR/prov-o/>  .

# Following this recommendation avoids a proliferation of inverse definitions, 
# while encouraging the use of one inverse over another.
# This increases interoperability.

The following table lists the recommended inverse names that should be used if a modeler does not want to use the recommended PROV-O property. For convenience, this file lists the resulting inverse properties.

Names of inverses
Domain PROV-O Property Recommended inverse name Range
prov:Agent prov:actedOnBehalfOf prov:hadDelegate prov:Agent
prov:ActivityInfluence prov:activity prov:activityOfInfluence prov:Activity
prov:AgentInfluence prov:agent prov:agentOfInfluence prov:Agent
prov:Entity prov:alternateOf prov:alternateOf prov:Entity
prov:Entity prov:asInBundle prov:contextOf prov:Bundle
union prov:atLocation prov:locationOf prov:Location
prov:EntityInfluence prov:entity prov:entityOfInfluence prov:Entity
prov:Activity prov:generated prov:wasGeneratedBy prov:Entity
union prov:hadActivity prov:wasActivityOfInfluence prov:Activity
prov:Derivation prov:hadGeneration prov:generatedAsDerivation prov:Generation
prov:Collection prov:hadMember prov:wasMemberOf prov:Entity
prov:Association prov:hadPlan prov:wasPlanOf prov:Plan
prov:Entity prov:hadPrimarySource prov:wasPrimarySourceOf prov:Entity
prov:Influence prov:hadRole prov:wasRoleIn prov:Role
prov:Derivation prov:hadUsage prov:wasUsedInDerivation prov:Usage
prov:hasAnchor prov:anchorOf
prov:hasProvenance prov:provenanceOf
prov:hasProvenanceService prov:provenanceAnchorOf
prov:influenced prov:wasInfluencedBy
prov:Influence prov:influencer prov:hadInfluence
prov:Activity prov:invalidated prov:wasInvalidatedBy prov:Entity
prov:Entity prov:mentionOf prov:hadMention prov:Entity
prov:Activity prov:qualifiedAssociation prov:qualifiedAssociationOf prov:Association
prov:Entity prov:qualifiedAttribution prov:qualifiedAttributionOf prov:Attribution
prov:Activity prov:qualifiedCommunication prov:qualifiedCommunicationOf prov:Communication
prov:Agent prov:qualifiedDelegation prov:qualifiedDelegationOf prov:Delegation
prov:Entity prov:qualifiedDerivation prov:qualifiedDerivationOf prov:Derivation
prov:Activity prov:qualifiedEnd prov:qualifiedEndOf prov:End
prov:Entity prov:qualifiedGeneration prov:qualifiedGenerationOf prov:Generation
prov:Entity prov:qualifiedInfluence prov:qualifiedInfluenceOf prov:Influence
prov:Entity prov:qualifiedInvalidation prov:qualifiedInvalidationOf prov:Invalidation
prov:Entity prov:qualifiedQuotation prov:qualifiedQuotationOf prov:Quotation
prov:Entity prov:qualifiedRevision prov:revisedEntity prov:Revision
prov:Entity prov:qualifiedSource prov:qualifiedSourceOf prov:Source
prov:Activity prov:qualifiedStart prov:qualifiedStartOf prov:Start
prov:Activity prov:qualifiedUsage prov:qualifiedUsingActivity prov:Usage
prov:Entity prov:specializationOf prov:generalizationOf prov:Entity
prov:Activity prov:used prov:wasUsedBy prov:Entity
prov:Activity prov:wasAssociatedWith prov:wasAssociateFor prov:Agent
prov:Entity prov:wasAttributedTo prov:contributed prov:Agent
prov:Entity prov:wasDerivedFrom prov:hadDerivation prov:Entity
prov:Activity prov:wasEndedBy prov:ended prov:Entity
prov:Entity prov:wasGeneratedBy prov:generated prov:Activity
union prov:wasInfluencedBy prov:influenced union
prov:Activity prov:wasInformedBy prov:informed prov:Activity
prov:Entity prov:wasInvalidatedBy prov:invalidated prov:Activity
prov:Entity prov:wasQuotedFrom prov:quotedAs prov:Entity
prov:Entity prov:wasRevisionOf prov:hadRevision prov:Entity
prov:Activity prov:wasStartedBy prov:started prov:Entity

C. Acknowledgements

Thanks to the members of the Provenance Working Group for their feedback throughout the development of the PROV Ontology and this documentation page. We also thank the developers of the tools that helped create the PROV-O ontology and portions of this page. Without these great tools, developing PROV-O would have been much less of a pleasure.

D. References

D.1 Normative references

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

D.2 Informative references

[LD-Patterns-QR]
Leigh Dodds and Ian Davis Qualified Relation. modified 31 May 2012, accessed June 01 2012 URL: http://patterns.dataincubator.org/book/qualified-relation.html
[OWL-2-PRIMER]
Pascal Hitzler, Markus Krötzsch, Bijan Parsia, Peter F. Patel-Schneider, Sebastian Rudolph OWL 2 Web Ontology Language Primer. modified 27 October 2009, accessed July 03 2012 URL: http://www.w3.org/TR/owl2-primer/
[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: https://dvcs.w3.org/hg/prov/raw-file/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/