Copyright © 2011-2012 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark and document use rules apply.
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 OWL encoding of the PROV Ontology is available here.
This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.
This specification defines the PROV Ontology as the normative representation of the PROV Data Model using the Web Ontology Language (OWL2). 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.
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].
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.
Collection classes and properties are specializations of the Starting Point and Qualified terms that describe the provenance of collections as key-value pairs that are inserted and removed to create new collections. The classes and properties in this category are listed below and are discussed in Section 3.4.
This section introduces the terms in each of the following categories:
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). Activities can use Entities during their lifespan and can also generate other Entities (described using prov:used and prov:wasGeneratedBy, respectively). For example, a blog writing activity may use a particular dataset and generate a bar chart. When an Activity uses an Entity that was generated by another Activity, we say it prov:wasInformedBy the other Activity. This allows provenance chains of just Activities, in addition to provenance chains of Entities linked by the Activities that used or generated them.
The provenance among Entities can also be expressed without mentioning the Activities involved, using the property prov:wasDerivedFrom. A derivation is a transformation of an entity into another. Entities are described using any number of existing or newly-created RDF properties.
An Agent can be responsible for an Activity or an Entity (described using the properties prov:wasAssociatedWith and prov:wasAttributedTo, respectively). Agents can also be responsible for other Agents' actions. In this case, the Agent involved with an Activity or Entity prov:actedOnBehalfOf another Agent that may have been less involved, but still bears some responnsibility for the Activity or Entity.
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
.
The terms introduced in this section provide additional ways to describe the provenance among Entities, Activities, and Agents. The terms are illustrated in the following figure.
Three popular subclasses of Agent are provided: prov:Person, prov:Organization, and prov:SoftwareAgent. These classes are not disjoint and may overlap. Further, Agents may be Entities, in cases where one wishes to describe the provenance of Agents.
Similarly to how Activities have start and end times, Entities may be bound by points in time for which it was generated or is no longer usable (described by properties prov:generatedAtTime and prov:invalidatedAtTime, respectively). For example, a painting could not have been displayed before it was painted, and it cannot be sold after it is destroyed by fire. The property prov:wasInvalidatedBy may be used to cite the Activity that invalidated any further uses of an Entity.
Three subproperties of prov:wasDerivedFrom are provided: prov:wasQuotedFrom, prov:wasRevisionOf, and prov:hadOriginalSource. prov:wasQuotedFrom cites a potentially larger Entity (such as a Book, or Blog) from which a quote was taken, prov:wasRevisionOf cites an older version of a revised Entity, and prov:hadOriginalSource cites the Entity that is closest to the person, information, period, or idea being studied (such as a news article that "broke the story"). The property prov:tracedTo is a superproperty of all four of these properties, and is transitive.
prov:specializationOf and prov:alternateOf relate Entities that exist at different levels of specificity. 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.
Entities may use the property prov:value to hold a literal value. For example, the prov:value of a quote could be the quote itself, or the prov:value of an Entity involved in a numeric calculation could be the xsd:integer four.
Activities may be started or ended by Entities, which is 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.
The property prov:atLocation can be used to describe the prov:Location of any resource. Use of prov:atLocation makes sense for most PROV-O classes. The properties used to describe instances of prov:Location are outside the scope of PROV-O; reuse of other existing vocabulary is encouraged.
Finally, a prov:Bundle is a named set of provenance descriptions, and is itself an entity, so allowing provenance of provenance to be expressed. Note that a named set of provenance descriptions can take any form, including scribbles on a drink napkin. A named set of PROV-O assertions is a special type of bundle that is not named by PROV or PROV-O.
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, while Monica publishes an alternate version to reach a more casual audience.
@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 ex: <http://example.org#> . ex:bundlePost { ex:bundlePost a prov:Bundle . ex:derek a prov:Agent, foaf:Person; foaf:givenName "Derek"^^xsd:string; foaf:mbox <mailto:dererk@example.org>; prov:actedOnBehalfOf ex:chartgen; . ex:monica a prov:Agent, foaf:Person; foaf:givenName "Monica"^^xsd:string; foaf:mbox <mailto:monica@example.org> . ex:chartgen a prov:Agent, prov:Organization; foaf:name "Chart Generators, Inc."; . ex:aggregatedByRegions a prov:Entity; prov:atLocation <file://Users/aggr.txt>; . ex:post9821 a prov:Entity, sioc:Post; prov:wasGeneratedBy ex:publicationActivity1123; prov:atLocation ex:more-crime-happens-in-cities; ## PERMALINK to the (latest revision of the) post ex:snapshotContent ex:postContent0; ## Snapshot with the content of this version sioc:title "More crime happens in cities"^^xsd:string; prov:hadOriginalSource ex:aggregatedByRegions; prov:wasAttributedTo ex:derek . ## Version 2 of the post ex:post9821v1 a prov:Entity, sioc:Post; prov:atLocation ex:more-crime-happens-in-cities; ## PERMALINK to the (latest revision of the) post ex:snapshotContent ex:postContent1; ## Snapshot with the content of this version prov:wasRevisionOf ex:post9821; prov:specializationOf ex:post9821; prov:wasAttributedTo ex:derek; . ## Rephrasing of the post in a new version ex:post9821v2 a prov:Entity, sioc:Post; prov:atLocation ex:more-crime-happens-in-cities-for-dummies; ## PERMALINK to the (latest revision of the) post ex:snapshotContent ex:postContent2; ## Snapshot with the content of this version prov:alternateOf ex:post9821v1; prov:specializationOf ex:post9821; prov:tracedTo ex:aggregatedByRegions; ## If the file hadn't existed, Monica would have not written the post. sioc:title "More crime happens in cities for dummies"^^xsd:string; prov:wasAttributedTo ex:monica; . ex:publicationActivity1123 a prov:Activity; prov:wasStartedAt "2011-07-16T01:01:01Z"^^xsd:dateTime; prov:wasEndedAt "2011-07-16T01:52:02Z"^^xsd:dateTime; prov:wasAssociatedWith ex:derek; prov:used ex:aggregatedByRegions; prov:generated ex:post9821; prov:wasStartedBy ex:derek; prov:wasEndedBy ex: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
). 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:post9821
) 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:post9821v1
). 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 version (ex:post9821v2
). This version is an specialization of the original post,
and an alternate of the first version modified by Derek. Since the provenance produced by Derek and Monica is related to the same resources, the system
automatically groups it in the same prov:Bundle (ex:bundlePost
).
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:hadOriginalSource :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
).
Finally, a web crawler (ex:boogleParser
) parses the second post. The crawler acts in behalf of Boogle, an organization that want to index the posts. It also adds an
annotation on the second bundle (ex:bundlePost2
), stating at which date the parsing was made.
@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 ex: <http://example.org#> . ex:noteMadeByParser { ex:noteMadeByParser a prov:Note; prov:wasAttributedTo ex:boogleParser; . ex:boogleParser a prov:SoftwareAgent; prov:actedOnBehalfOf ex:boogle; . ex:boogle a prov:Organization; . ex:bundlePost2 ex:parsedDate "2011-08-16T00:00:02Z"^^xsd:dateTime; . }
The classes and properties in the Qualified terms category are for users who wish to provide additional details about the relationships between entities, activities, and agents. The terms in this category are the result of applying the Qualification Pattern to the simple (unqualified) relations available in the Starting Point and Expanded categories. The Qualification Pattern consists of restating the unqualified relation by using an intermediate involvement class. In this document, each property that can be qualified has a can be qualified with header linking to the qualifying property and involvement class. In the PROV-O OWL these are indicated using the annotation property prov:qualifiedForm. The involvement class is a subclass of prov:Involvement which determines which property to link from the involvement to the unqualified object, that is either prov:entity, prov:activity, prov:agent or prov:dictionary.
So for instance, if we have the unqualified statement:
:e1 prov:wasGeneratedBy :a1 .
Then we find in PROV-O that prov:wasGeneratedBy can be qualified with the qualification property prov:qualifiedGeneration and the involvement class prov:Generation, which is a subclass of prov:ActivityInvolvement. From this, we can restate the above relation using the qualification pattern as:
:e1 prov:wasGeneratedBy :e1Gen . :e1Gen a prov:Generation ; prov:entity :a1 .
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 (for instance identifying the
involvement).
Figure 2 illustrates an example of the classes and properties needed to fulfill the qualification pattern for the prov:used and prov:wasAssociatedWith properties. While prov:qualifiedUsage, prov:Usage, and prov:entity are used to qualify prov:used relations, prov:qualifiedAssociation, prov:Association, and prov:agent are used to qualify prov:wasAssociatedWith relations. This pattern applies to the twelve other relations that can be qualified.
In the example, the prov:qualifiedUsage property parallels the prov:used property, and references an instance of prov:Usage that provides attributes of the prov:used relation between the Activity and Entity. The prov:entity property is used to cite the Entity that was used by the Activity. In this case, the time that the Activity used the Entity is provided using the prov:atTime property and a literal xsd:dateTime value.
Similarly, the prov:qualifiedAssociation property parallels the prov:wasAssociatedWith property, and references an instance of prov:Association that provides attributes of the prov:wasAssociatedWith relation between the Activity and Agent. The prov:agent property is used to cite the Agent that was involved in the Activity. In this case, the plan that the Agent used is provided using the prov:hadPlan property and an instance of prov:Plan.
The following two examples show the result of applying the Usage and Association patterns to the chart making example from Section 3.1.
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. ]; .
The prov:qualifiedAssociation property parallels the prov:wasAssociatedWith property to provide an additional description to ex:illustrationActivity
. The instance of prov:Association cites the agent (ex:derek
) that followed the instructions (ex:tutorial_blog
).
@prefix prov: <http://www.w3.org/ns/prov#> . @prefix ex: <http://example.org#> . ex:illustrationActivity a prov:Activity; ## (Using Starting Point terms) prov:wasAssociatedWith ex:derek; ## Derek was responsible for the chart making in some way. . ex:derek a prov:Agent . ex:illustrationActivity prov:qualifiedAssociation [ ## Qualification: What plan (or recipe, instructions) a prov:Association; ## did Derek follow when creating the graphical chart? prov:agent ex:derek prov:hadPlan ex:tutorial_blog; ]; . ex:tutorial_blog a prov:Plan, prov:Entity .
Usage and Association (described above) are accompanied by six other qualifications of Starting Point relations. The following table lists the simple relations that can be qualified, along with the qualification property, qualification class, and the property used to indicate the object of the qualified relation.
Starting-point Property | Qualification Property | Involvement Class | Object Property |
---|---|---|---|
prov:actedOnBehalfOf | prov:qualifiedDelegation | prov:Delegation | prov:agent |
prov:used | prov:qualifiedUsage | prov:Usage | prov:entity |
prov:wasAssociatedWith | prov:qualifiedAssociation | prov:Association | prov:agent |
prov:wasAttributedTo | prov:qualifiedAttribution | prov:Attribution | prov:agent |
prov:wasDerivedFrom | prov:qualifiedDerivation | prov:Derivation | prov:entity |
prov:wasGeneratedBy | prov:qualifiedGeneration | prov:Generation | prov:activity |
prov:wasInformedBy | prov:qualifiedCommunication | prov:Communication | prov:activity |
Six relations from the Expanded category can also be qualified. The following table lists the simple relations that can be qualified, along with the qualification property, qualification class, and the property used to indicate the object of the qualified relation.
Expanded Property | Qualification Property | Involvement Class | Object Property |
---|---|---|---|
prov:hadOriginalSource | prov:qualifiedSource | prov:Source | prov:entity |
prov:tracedTo | prov:qualifiedTrace | prov:Trace | prov:entity |
prov:wasEndedBy | prov:qualifiedEnd | prov:End | prov:entity |
prov:wasInvalidatedBy | prov:qualifiedInvalidation | prov:Invalidation | prov:activity |
prov:wasQuotedFrom | prov:qualifiedQuotation | prov:Quotation | prov:entity |
prov:wasRevisionOf | prov:qualifiedRevision | prov:Revision | prov:entity |
prov:wasStartedBy | prov:qualifiedStart | prov:Start | prov:entity |
This section finishes with two more examples of qualification as applied to the chart making example from Section 3.1.
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. ]; .
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? ]; .
A prov:Dictionary
is an prov:Entity
that acts as a container to some members,
which are themselves entities.
Specifically, a dictionary is composed of set of key-value pairs, where a
literal key is used to identify a constituent entity within the dictionary.
To illustrate this, the example below describes a dictionary :c1
that has as members the two key value pairs ("k1", :e1)
and ("k2", :e2)
.
@prefix prov: <http://www.w3.org/ns/prov#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix : <http://example.org/> . :e1 a prov:Entity . :e2 a prov:Entity . :c1 a prov:Dictionary; prov:membership [ a prov:Membership; prov:member [ a prov:KeyValuePair; prov:key "k1"^^xsd:string; prov:value :e1 ], [ a prov:KeyValuePair; prov:key "k2"^^xsd:string; prov:value :e2 ]; ]; .
It is worth noting that :c1
may also
have other members (i.e. prov:knownMembership
is
not functional). A dictionary may be empty and thus not have any known
memberships, in which case it should be described as an instance of the
subclass prov:EmptyDictionary
.
To describe the provenance of a dictionary, PROV-O provides two
kinds of involvements: prov:qualifiedInsertion
is used to
describe that a dictionary was obtained from an existing dictionary by
inserting a set of key-value pairs. prov:qualifiedRemoval
is used to specify
that a given dictionary was obtained from an existing dictionary by
removing a set of key-value pairs. The example below specifies that
the dictionary :c1
was obtained from the empty dictionary
:c
by inserting the key-value pairs ("k1",
:e1)
and ("k2", :e2)
.
@prefix prov: <http://www.w3.org/ns/prov#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix : <http://example.org/> . :e1 a prov:Entity . :e2 a prov:Entity . :c a prov:EmptyDictionary . :c1 a prov:Dictionary; prov:derivedByInsertionFrom :c; prov:qualifiedInsertion [ a prov:Insertion; prov:dictionary :c; prov:inserted [ a prov:KeyValuePair; prov:key "k1"^^xsd:string; prov:value :e1; ], [ a prov:KeyValuePair; prov:key "k2"^^xsd:string; prov:value :e2; ]; ]; .
Similarly, the example below specifies that the dictionary
:c3
was obtained by removing the key-value pairs associated with
the keys "k1"
and "k2"
from the dictionary
:c2
. Thus, :c3
does not contain the
members ("k1", :e1)
and ("k2",
:e2(
from :c2
.
@prefix prov: <http://www.w3.org/ns/prov#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix : <http://example.org/> . :c2 a prov:Dictionary . :c3 a prov:Dictionary; prov:derivedByRemovalFrom :c2; prov:qualifiedRemoval [ a prov:Removal; prov:dictionary :c2; prov:removed "k1"^^xsd:string, "k3"^^xsd:string; ]; .
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.
The classes and properties that provide a basis for all other PROV-O terms are discussed in Section 3.1.
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.
@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 .
An activity is something that occurs over a period of time and acts upon or with entities. This action can take multiple forms: consuming, processing, transforming, modifying, relocating, using, generating, or being associated with entities. Activities that operate on digital entities may for example move, copy, or duplicate them.
IRI:http://www.w3.org/ns/prov#Agent
An agent is something that bears some form of responsibility for an activity taking place or for the existence of an entity.
@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."; .
An agent is a type of entity that bears some form of responsibility for an activity taking place.
IRI:http://www.w3.org/ns/prov#Entity
An entity is a thing one wants to provide provenance for. For the purpose of this specification, things can be physical, digital, conceptual, or otherwise; things may be real or imaginary.
@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 .
An entity is a thing one wants to provide provenance for. For the purpose of this specification, things can be physical, digital, conceptual, or otherwise; things may be real or imaginary.
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.
@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."; .
IRI:http://www.w3.org/ns/prov#endedAtTime
An activity end event is the instantaneous event that marks the instant an activity ends.
@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:used :drosophilaSample; prov:endedAtTime "2012-04-30T12:46:32Z"^^xsd:dateTime; . :drosophilaSample a prov:Entity .
The time at which an activity ended. See also prov:startedAtTime.
has characteristics Functional
IRI:http://www.w3.org/ns/prov#startedAtTime
An activity start event is the instantaneous event that marks the instant an activity starts.
@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:used :drosophilaSample; prov:startedAtTime "2012-04-25T01:30:25Z"^^xsd:dateTime; . :drosophilaSample a prov:Entity .
The time at which an activity started. See also prov:endedAtTime.
has characteristics Functional
IRI:http://www.w3.org/ns/prov#used
A usage is an instantaneous world event: an activity beginning to consume an entity. Before this event, the activity had not begun to consume or use to this entity.
@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 characteristics Irreflexive, Asymmetric
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.
@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.
IRI:http://www.w3.org/ns/prov#wasAttributedTo
An entity is a thing one wants to provide provenance for. For the purpose of this specification, things can be physical, digital, conceptual, or otherwise; things may be real or imaginary.
@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/> . :nationalRegionsList a prov:Entity; prov:wasAttributedTo :civil_action_group; .
Attribution is the ascribing of an entity to an agent.
IRI:http://www.w3.org/ns/prov#wasDerivedFrom
An entity is a thing one wants to provide provenance for. For the purpose of this specification, things can be physical, digital, conceptual, or otherwise; things may be real or imaginary.
@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 characteristics Irreflexive, Asymmetric
IRI:http://www.w3.org/ns/prov#wasGeneratedBy
An entity generation event is the instantaneous event that marks the final instant of an entity's creation timespan, after which it is no longer available for use.
@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 characteristics Irreflexive, Functional, Asymmetric
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.
@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.
The additional terms used to describe relations among Starting Point classes are discussed in Section 3.2.
The terms used to qualify the Starting Point and Expanded properties are discussed in Section 3.3.
IRI:http://www.w3.org/ns/prov#ActivityInvolvement
@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:ActivityInvolvement; ## Instances of Generation, Invalidation, and Communication qualify prov:activity :illustrating; ## the involvement of an Activity (cited by prov:activity) rdfs:comment "Ended up with bar chart as line chart looked ugly."@en; . :illustrating a prov:Activity .
IRI:http://www.w3.org/ns/prov#AgentInvolvement
@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:AgentInvolvement; ## Instances of Generation, Invalidation, and Communication qualify prov:agent :derek; ## the involvement of an Agent (cited by prov:agent) prov:hadRole :illustrationist ]; . :derek a prov:Person, prov:Agent, prov:Entity . :illustratonist a prov:Role .
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.
@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 is responsible for it. For example, :baking prov:wasAssociatedWith :baker; prov:qualified [ a prov:Association; prov:agent :baker; :foo :bar ].
IRI:http://www.w3.org/ns/prov#Attribution
Attribution is the ascribing of an entity to an agent.
@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 is responsible for it. For example, :cake prov:wasAttributedTo :baker; prov:qualified [ a prov:Attribution; prov:entity :baker; :foo :bar ].
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.
@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:entity :everyone_else_jumping_off_bridge; :foo :bar ].
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.
@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 ].
IRI:http://www.w3.org/ns/prov#Derivation
A derivation is a transformation of an entity into another, a construction of an entity into another, or an update of an entity, resulting in a new one.
@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 Activity involved 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 prov:Entity to another prov:Entity. For example, :chewed_bubble_gum prov:wasDerivedFrom :unwrapped_bubble_gum; prov:qualified [ a prov:Derivation; prov:entity :unwrapped_bubble_gum; :foo :bar ].
IRI:http://www.w3.org/ns/prov#End
An activity end event is the instantaneous event that marks the instant an activity ends.
@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:qualified [ a prov:Usage; prov:entity :buzzer; :foo :bar; prov:atTime '2012-03-09T08:05:08-05:00'^^xsd:dateTime ].
IRI:http://www.w3.org/ns/prov#EntityInvolvement
@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/> . # EntityInvolvement is an 'abstract' subclass of Involvement # that references an entity (e.g. Usage, Derivation, Source). # It is not recommended that the type EntityInvolvement be directly declared, # use a specialization of EntityInvolvement instead. # By definition, all instances of prov:Usage are also instances of prov:EntityInvolvement. :sortActivity a prov:Activity; prov:used :datasetA; prov:qualifiedUsage [ a prov:Usage, prov:EntityInvolvement; ## Instances of Start, End, Usage, and Derivation qualify prov:entity :datasetA; ## the involvement of an Entity (cited by prov:entity) prov:hadRole :inputToBeSorted; ]; prov:generated :datasetB; .
IRI:http://www.w3.org/ns/prov#Generation
An entity generation event is the instantaneous event that marks the final instant of an entity's creation timespan, after which it is no longer available for use.
@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 ].
IRI:http://www.w3.org/ns/prov#InstantaneousEvent
An instantaneous event, or event for short, happens in the world and marks a change in the world, in its activities and in its entities. The term 'event' is commonly used in process algebra with a similar meaning. Events represent communications or interactions; they are assumed to be atomic and instantaneous.
@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.
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 after invalidation. Any generation or usage of an entity precedes its invalidation.
@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://toolserver.org/~geohack/geohack.php?pagename=Swissair_Flight_111¶ms=44_24_33_N_63_58_25_W_region:CA-NS_type:landmark_scale:500000>; ]; . <http://toolserver.org/~geohack/geohack.php?pagename=Swissair_Flight_111¶ms=44_24_33_N_63_58_25_W_region:CA-NS_type:landmark_scale:500000> 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> .
IRI:http://www.w3.org/ns/prov#Involvement
@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/> . # Although a domain extension (e.g. ':wasConductedBy') is not defined by PROV-O, # the relation between a surgery and an agent can be qualified # by reusing prov:Involvement and one of its three subclasses # (depending on the type of the instance involved): # AgentInvolvement, EntityInvolvement, and ActivityInvolement. :conductingSurgery_1 a prov:Activity; :wasConductedby :bob; prov:wasAssociatedWith [ a prov:Association, prov:AgentInvolvement, prov:Involvement; prov:agent :bob; prov:hadRole :Surgeon; ]; . :bob a prov:Agent .
Any resource that involved an prov:Activity, prov:Entity, or prov:Agent can qualify its involvement by also referencing an instance of prov:Involvement. Instances of prov:Involvement reference the involved Activity, Entity, or Agent (using prov:activity, prov:entity, or prov:agent, respectively) and may be described with any kind of attributes, including user-defined attributes and those provided by PROV (prov:hadRole, prov:hadPlan, prov:atTime, prov:hadLocation). A description (via prov:Involvement) of the binary involvement implies the assertion of the binary involvement.
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.
@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.
IRI:http://www.w3.org/ns/prov#Quotation
A quotation is the repeat of (some or all of) an entity, such as text or image, by someone other than its original author.
@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 prov:Entity to another prov:Entity. For example, :here_is_looking_at_you_kid prov:wasQuotedFrom :casablanca_script; prov:qualified [ a prov:Quotation; prov:entity :casablanca_script; :foo :bar ].
IRI:http://www.w3.org/ns/prov#Revision
A revision is a derivation that revises an entity into a revised version.
@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 prov:Entity to another prov:Entity. For example, :draft_2 prov:wasRevisionOf :draft_1; prov:qualified [ a prov:Source; prov:entity :draft_1; :foo :bar ].
IRI:http://www.w3.org/ns/prov#Role
A Role is the function of an entity with respect to an activity, in the context of a usage, generation, association, start, and end.
@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; .
A Role is the function of an entity with respect to an activity, in the context of a usage, generation, association, start, and end.
IRI:http://www.w3.org/ns/prov#Source
An original source refers to the source material that is closest to the person, information, period, or idea being studied.
@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 # I am not sure if "myPost" had as original source Don Quixote, so I assert a confidence value of 6 out of 10. ]; . :donQuixote a prov:Entity.
An instance of prov:Source provides additional descriptions about the binary prov:hadOriginalSource relation from some prov:Entity to another prov:Entity. For example, :blog prov:hadOriginalSource :newsArticle; prov:qualified [ a prov:Source; prov:entity :newsArticle; :foo :bar ].
IRI:http://www.w3.org/ns/prov#Start
An activity start event is the instantaneous event that marks the instant an activity starts.
@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:qualified [ a prov:Usage; prov:entity :bang; :foo :bar; prov:atTime '2012-03-09T08:05:08-05:00'^^xsd:dateTime ].
IRI:http://www.w3.org/ns/prov#Trace
Traceability is the ability to link back an entity to another by means of derivation or responsibility relations, possibly repeatedly traversed.
@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/elements/1.1/>. @prefix : <http://example.com/> . :newsArticle a prov:Entity; dcterms:title "Review of the last presidents of the United States of America"^^xsd:string; prov:tracedTo :president_obama; prov:qualifiedTrace :trace1; . :trace1 a prov:Trace; prov:entity :president_obama; prov:hasAnnotation :noteFromTheAuthor; . :president_obama a prov:Entity, prov:Agent; . :noteFromTheAuthor { :noteFromTheAuthor a prov:Note . :trace1 rdfs:comment "The main motivation for the article was the latest president"^^xsd:string; :annotatedAtTime "2011-07-16T01:52:02Z"^^xsd:dateTime; . }
An instance of prov:Trace provides additional descriptions about the binary prov:tracedTo relation from some prov:Entity to some other prov:Element. For example, :stomach_ache prov:tracedTo :spoon; prov:qualified [ a prov:Trace; prov:entity :spoon; :foo :bar ].
IRI:http://www.w3.org/ns/prov#Usage
A usage is an instantaneous world event: an activity beginning to consume an entity. Before this event, the activity had not begun to consume or use to this entity.
@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:qualified [ a prov:Usage; prov:entity :podium; :foo :bar ].
IRI:http://www.w3.org/ns/prov#activity
prov:ActivityInvolvement provides descriptions of any binary involvement between any instance and an prov:Activity. The property prov:activity is used to reference the object of the triple being described.
@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:ActivityInvolvement; 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:ActivityInvolvement to cite the prov:Activity that was involved with either an Activity or Entity. It can be used to refer to the activity involved in generating an entity, informing another activity, or starting another activity.
has characteristics Functional
IRI:http://www.w3.org/ns/prov#agent
prov:AgentInvolvement provides descriptions of any binary involvement between any instance and an prov:Agent. The property prov:agent is used to reference the object of the triple being described.
@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:AgentInvolvement to cite the Agent that was prov:involved with either an Activity or Entity. 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 characteristics Functional
IRI:http://www.w3.org/ns/prov#atTime
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.
@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. This property is predominantly used on Involvements such as Generation, Usage, and Invalidation.
has characteristics Functional
IRI:http://www.w3.org/ns/prov#entity
prov:EntityInvolvement provides descriptions of any binary involvement between any instance and an prov:Entity. The property prov:entity is used to reference the object of the triple being described.
@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:EntityInvolvement to cite the Entity that was prov:involved with either an Activity or Entity. 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 characteristics Functional
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.
@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 ]; .
The _optional_ Activity of an Involvement, which used, generated, invalidated, or was the responsibility of some Entity. This property is _not_ used by ActivityInvolvement (use prov:activity instead).
has characteristics Functional
IRI:http://www.w3.org/ns/prov#hadGeneration
An entity generation event is the instantaneous event that marks the final instant of an entity's creation timespan, after which it is no longer available for use.
@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 characteristics Functional
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.
@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 characteristics Irreflexive, Functional, Asymmetric
IRI:http://www.w3.org/ns/prov#hadRole
A usage is an instantaneous world event: an activity beginning to consume an entity. Before this event, the activity had not begun to consume or use to this entity.
@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 characteristics Irreflexive
IRI:http://www.w3.org/ns/prov#hadUsage
A usage is an instantaneous world event: an activity beginning to consume an entity. Before this event, the activity had not begun to consume or use to this entity.
@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 characteristics Functional
IRI:http://www.w3.org/ns/prov#involved
The broadest provenance relation between two resources, prov:involved is the superproperty of all unqualified binary relations among any two Activities, Entities, or Agents (or anything else). A more specific property should be favored of prov:involved.
@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:involved :aggregatedByRegions, # prov:involved 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 .
IRI:http://www.w3.org/ns/prov#involvee
The rdf:object of the (binary) prov:involved relation (triple) that this Involvement is qualifying (reifying) for further description (as an n-ary relation).
@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:involvee :aggregatedByRegions; # Inferred . :association_1 a prov:Association; prov:agent :derek; prov:involvee :derek; # - - - - - - - Inferred . :communication_1 a prov:Communication; prov:activity :aggregationActivity; prov:involvee :aggregationActivity; # Inferred . :aggregationActivity a prov:Activity . :derek a prov:Agent . :aggregatedByRegions a prov:Entity .
Subproperties of prov:involvee are used to cite the object of an unqualified PROV-O triple whose predicate is a subproperty of prov:involved (e.g. prov:used, prov:wasGeneratedBy). prov:involvee is used much like rdf:object is used.
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.
@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 characteristics Inverse Functional
IRI:http://www.w3.org/ns/prov#qualifiedAttribution
Attribution is the ascribing of an entity to an agent.
@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 characteristics Inverse Functional
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.
@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 characteristics Inverse Functional
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.
@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 characteristics Inverse Functional
IRI:http://www.w3.org/ns/prov#qualifiedDerivation
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.
@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 characteristics Inverse Functional
IRI:http://www.w3.org/ns/prov#qualifiedEnd
An activity end event is the instantaneous event that marks the instant an activity ends.
@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 characteristics Inverse Functional
IRI:http://www.w3.org/ns/prov#qualifiedGeneration
An entity generation event is the instantaneous event that marks the final instant of an entity's creation timespan, after which it is no longer available for use.
@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 characteristics Inverse Functional
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 after invalidation. Any generation or usage of an entity precedes its invalidation.
@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://toolserver.org/~geohack/geohack.php?pagename=Swissair_Flight_111¶ms=44_24_33_N_63_58_25_W_region:CA-NS_type:landmark_scale:500000>; ]; .
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 characteristics Inverse Functional
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 other than its original author.
@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/>; 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 .
If this Entity prov:wasQuotedFrom Entity :e, then it can qualify how using prov:qualifiedQuotation [ a prov:Quotation; prov:entity :e; :foo :bar ].
has characteristics Inverse Functional
IRI:http://www.w3.org/ns/prov#qualifiedRevision
A revision is a derivation that revises an entity into a revised version.
@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 characteristics Inverse Functional
IRI:http://www.w3.org/ns/prov#qualifiedSource
An original source refers to the source material that is closest to the person, information, period, or idea being studied.
@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 characteristics Inverse Functional
IRI:http://www.w3.org/ns/prov#qualifiedStart
An activity start event is the instantaneous event that marks the instant an activity starts.
@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 characteristics Inverse Functional
IRI:http://www.w3.org/ns/prov#qualifiedTrace
Traceability is the ability to link back an entity to another by means of derivation or responsibility relations, possibly repeatedly traversed.
@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/> . <http://dbpedia.org/resource/Hurricane_Isabel> a prov:Entity, :Hurricane; rdfs:label "Hurricane Isabel"; prov:tracedTo :butterfly_456; prov:qualifiedTrace [ a prov:Trace; rdfs:seeAlso <http://en.wikipedia.org/wiki/Butterfly_effect>; ]; . :butterfly_456 a prov:Entity, :Butterfly; foaf:depiction <http://upload.wikimedia.org/wikipedia/commons/3/3d/Charaxes_brutus_natalensis.jpg>; . <> prov:wasDerivedFrom <http://en.wikipedia.org/wiki/Butterfly_effect> .
If this prov:wasAttributedTo Entity :e, then it can qualify how using prov:qualifiedTrace [ a prov:Trace; prov:entity :e; :foo :bar ]. If this prov:wasAttributedTo Activity :a, then it can qualify how using prov:qualifiedTrace [ a prov:Trace; prov:activity :a; :foo :bar ].
has characteristics Inverse Functional
IRI:http://www.w3.org/ns/prov#qualifiedUsage
A usage is an instantaneous world event: an activity beginning to consume an entity. Before this event, the activity had not begun to consume or use to this entity.
@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 characteristics Inverse Functional
The terms used to describe the provenance of collections of key-value pairs are discussed in Section 3.4.
IRI:http://www.w3.org/ns/prov#CompleteMembership
@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/> . :e1 a prov:Entity . :e2 a prov:Entity . :c1 a prov:Dictionary, prov:Entity; prov:membership [ a prov:CompleteMembership, prov:Membership; # These are the members, and all the members of c1 prov:member [ a prov:KeyValuePair; prov:key "k1"^^xsd:string; prov:value :e1; ], [ a prov:KeyValuePair; prov:key "k2"^^xsd:string; prov:value :e2; ] ] . :c2 a prov:Dictionary, prov:Entity; prov:derivedByRemovalFrom :c1; prov:qualifiedRemoval [ a prov:Removal; prov:collection :c1; prov:removedKey "k1"^^xsd:string, "k2"^^xsd:string; ]; . ## As membership on :c1 is complete, we can infer: # # :c2 a prov:EmptyDictionary; # prov:membership [ # a prov:CompleteMembership # ] .
Indicates that no other member belongs to the collection, that is all the prov:member stated for this CompleteMembership constitutes all members of the collection.
IRI:http://www.w3.org/ns/prov#Dictionary
A dictionary is an entity that provides a structure to some constituents, which are themselves entities. These constituents are said to be member of the dictionary.
@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/> . :studentRegister_2012 a prov:Dictionary, prov:Entity; prov:derivedByInsertionFrom :studentRegister_2011; :hasTotalStudents 45; :wasCreatedBy :bob; .
This concept allows for the provenance of the dictionary, but also of its constituents to be expressed. Such a notion of dictionary corresponds to a wide variety of concrete data structures, such as a maps or associative arrays.
A given dictionary forms a given structure for its members. A different structure (obtained either by insertion or removal of members) constitutes a different dictionary.
IRI:http://www.w3.org/ns/prov#DictionaryInvolvement
@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/> . :c1 a prov:Dictionary . :c2 a prov:Dictionary, prov:Entity; prov:derivedByRemovalFrom :c1; prov:qualifiedRemoval [ a prov:Removal, prov:DictionaryInvolvement; prov:dictionary :c1; prov:removedKey "k1"^^xsd:string; ]; .
IRI:http://www.w3.org/ns/prov#EmptyDictionary
@prefix prov: <http://www.w3.org/ns/prov#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix : <http://example.org/> . :e1 a prov:Entity . :e2 a prov:Entity . :c a prov:EmptyDictionary . :c1 a prov:Dictionary; prov:derivedByInsertionFrom :c; prov:qualifiedInsertion [ a prov:Insertion; prov:dictionary :c; prov:inserted [ a prov:KeyValuePair; prov:key "k1"^^xsd:string; prov:value :e1; ], [ a prov:KeyValuePair; prov:key "k2"^^xsd:string; prov:value :e2; ]; ]; .
An empty dictionary.
IRI:http://www.w3.org/ns/prov#Insertion
Insertion is a derivation that transforms a dictionary into another, by insertion of one or more key-value pairs.
@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/> . :our-NEW-baseball-team-field-positions a prov:Dictionary, :FieldPositions; prov:derivedByInsertionFrom :our-old-baseball-team-field-positions; prov:qualifiedInsertion [ a prov:Insertion; prov:collection :our-old-baseball-team-field-positions; prov:inserted [ a prov:KeyValuePair; prov:key "first-baseman"^^xsd:string; prov:value <http://dbpedia.org/resource/Jim_Thorpe>; ]; ]; . <http://dbpedia.org/resource/Jim_Thorpe> a prov:Entity . :our-old-baseball-team-field-positions a prov:Dictionary .
Insertion is a derivation that transforms a dictionary into another, by insertion of one or more key-value pairs.
IRI:http://www.w3.org/ns/prov#KeyValuePair
@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/> . :our-NEW-baseball-team-field-positions a prov:Dictionary, :FieldPositions; prov:derivedByInsertionFrom :our-old-baseball-team-field-positions; prov:qualifiedInsertion [ a prov:Insertion; prov:collection :our-old-baseball-team-field-positions; prov:inserted [ a prov:KeyValuePair; prov:key "first-baseman"^^xsd:string; prov:value <http://dbpedia.org/resource/Jim_Thorpe>; ]; ]; prov:hadActivity :hiring_jim_thorpe; . <http://dbpedia.org/resource/Jim_Thorpe> a prov:Entity . :hiring_jim_thorpe a prov:Activity . :our-old-baseball-team-field-positions a prov:Dictionary, :FieldPositions; prov:membership [ a prov:Membership; prov:member [ a prov:KeyValuePair; prov:key "first-baseman"^^xsd:string; prov:value :george; ]; prov:member [ a prov:KeyValuePair; prov:key "pitcher"^^xsd:string; prov:value :carl; ]; ]; . :george a prov:Entity . :carl a prov:Entity .
A key-value pair. Part of a prov:Dictionary through prov:Membership. The key is any RDF Literal, the value is a prov:Entity.
IRI:http://www.w3.org/ns/prov#Membership
@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/> . :e1 a prov:Entity . :e2 a prov:Entity . :c1 a prov:Dictionary, prov:Entity; prov:membership [ a prov:Membership; # These are (some of the) members of c1 prov:member [ a prov:KeyValuePair; prov:key "k1"^^xsd:string; prov:value :e1; ], [ a prov:KeyValuePair; prov:key "k2"^^xsd:string; prov:value :e2; ]; ]; .
Described members of a collection, in the form of key-value pairs. The Membership resource can also be annotated with attributes.
IRI:http://www.w3.org/ns/prov#Removal
Removal is a derivation that transforms a dictionary into another, by removing one or more key-value pairs.
@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/> . :c1 a prov:Dictionary . :c2 a prov:Dictionary, prov:Entity; prov:derivedByRemovalFrom :c1; prov:qualifiedRemoval [ a prov:Removal, prov:DictionaryInvolvement; prov:dictionary :c1; prov:removedKey "k1"^^xsd:string, "k2"^^xsd:string; ]; .
Removal is a derivation that transforms a dictionary into another, by removing one or more key-value pairs.
IRI:http://www.w3.org/ns/prov#derivedByInsertionFrom
Insertion is a derivation that transforms a dictionary into another, by insertion of one or more key-value pairs.
@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/> . :e1 a prov:Entity . :e2 a prov:Entity . :c a prov:EmptyDictionary . :c1 a prov:Dictionary; prov:derivedByInsertionFrom :c; prov:qualifiedInsertion [ a prov:Insertion; prov:dictionary :c; prov:inserted [ a prov:KeyValuePair; prov:key "k1"^^xsd:string; prov:value :e1; ], [ a prov:KeyValuePair; prov:key "k2"^^xsd:string; prov:value :e2; ]; ]; .
The dictionary was derived from the other by insertion. prov:qualifiedInsertion shows details of the insertion, in particular the inserted key-value pairs.
IRI:http://www.w3.org/ns/prov#derivedByRemovalFrom
Removal is a derivation that transforms a dictionary into another, by removing one or more key-value pairs.
@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/> . :c1 a prov:Dictionary . :c2 a prov:Dictionary, prov:Entity; prov:derivedByRemovalFrom :c1; prov:qualifiedRemoval [ a prov:Removal, prov:DictionaryInvolvement; prov:dictionary :c1; prov:removedKey "k1"^^xsd:string, "k2"^^xsd:string; ]; .
The dictionary was derived from the other by removal. prov:qualifiedRemoval shows details of the removal, in particular the removed key-value pairs.
IRI:http://www.w3.org/ns/prov#dictionary
prov:DictionaryInvolvement provides descriptions of any binary involvement between any instance and a prov:Dictionary. The property prov:dictionary is used to reference the object of the triple being described.
@prefix prov: <http://www.w3.org/ns/prov#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix : <http://example.org/> . :e1 a prov:Entity . :c a prov:EmptyDictionary . :c1 a prov:Dictionary; prov:derivedByInsertionFrom :c; prov:qualifiedInsertion [ a prov:Insertion; prov:dictionary :c; prov:inserted [ a prov:KeyValuePair; prov:key "k1"^^xsd:string; prov:value :e1; ]; ]; .
The property used by a prov:DictionaryInvolvement to cite the prov:Dictionary that was prov:involved in insertion or removal of elements of a collection.
IRI:http://www.w3.org/ns/prov#inserted
Insertion is a derivation that transforms a dictionary into another, by insertion of one or more key-value pairs.
@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/> . :our-NEW-baseball-team-field-positions a prov:Dictionary, :FieldPositions; prov:derivedByInsertionFrom :our-old-baseball-team-field-positions; prov:qualifiedInsertion [ a prov:Insertion; prov:collection :our-old-baseball-team-field-positions; prov:inserted [ a prov:KeyValuePair; prov:key "first-baseman"^^xsd:string; prov:value <http://dbpedia.org/resource/Jim_Thorpe>; ]; ]; . <http://dbpedia.org/resource/Jim_Thorpe> a prov:Entity . :our-old-baseball-team-field-positions a prov:Dictionary .
An object property to refer to the prov:KeyValuePair inserted into a prov:Dictionary.
IRI:http://www.w3.org/ns/prov#member
TODO Property needs a definition.
@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/> . :our-old-baseball-team-field-positions a prov:Dictionary, :FieldPositions; prov:membership [ a prov:Membership; prov:member [ a prov:KeyValuePair; prov:key "first-baseman"^^xsd:string; prov:value :george; ]; prov:member [ a prov:KeyValuePair; prov:key "pitcher"^^xsd:string; prov:value :carl; ] ]; . :george a prov:Entity . :carl a prov:Entity .
The key-value pair was part of the membership. A membership can have multiple members.
IRI:http://www.w3.org/ns/prov#membership
TODO Property needs a definition.
@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/> . :e1 a prov:Entity . :e2 a prov:Entity . :c1 a prov:Dictionary, prov:Entity; prov:membership [ a prov:Membership; # These are (some of the) members of c1 prov:member [ a prov:KeyValuePair; prov:key "k1"^^xsd:string; prov:value :e1 ], [ a prov:KeyValuePair; prov:key "k2"^^xsd:string; prov:value :e2 ]; ]; .
The collection included the specified membership of keys-values.
IRI:http://www.w3.org/ns/prov#pairKey
TODO Property needs a definition.
@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
The key of a KeyValuePair, which is an element of a prov:Dictionary. See also prov:pairValue.
has characteristics Functional
IRI:http://www.w3.org/ns/prov#pairValue
TODO Property needs a definition.
@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
The value of a KeyValuePair. See also prov:pairKey.
has characteristics Functional
IRI:http://www.w3.org/ns/prov#qualifiedInsertion
Insertion is a derivation that transforms a dictionary into another, by insertion of one or more key-value pairs.
@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/> . :our-NEW-baseball-team-field-positions a prov:Dictionary, :FieldPositions; prov:derivedByInsertionFrom :our-old-baseball-team-field-positions; prov:qualifiedInsertion [ a prov:Insertion; prov:collection :our-old-baseball-team-field-positions; prov:inserted [ a prov:KeyValuePair; prov:key "first-baseman"^^xsd:string; prov:value <http://dbpedia.org/resource/Jim_Thorpe>; ]; ]; . <http://dbpedia.org/resource/Jim_Thorpe> a prov:Entity . :our-old-baseball-team-field-positions a prov:Dictionary, :FieldPositions; prov:membership [ a prov:Membership; prov:member [ a prov:KeyValuePair; prov:key "first-baseman"^^xsd:string; prov:value :george; ]; prov:member [ a prov:KeyValuePair; prov:key "pitcher"^^xsd:string; prov:value :carl; ]; ]; . :george a prov:Entity . :carl a prov:Entity .
If this Dictionary prov:derivedByInsertionFrom another Dictionary :e, then it can qualify how it did perform the Insertion using prov:qualifiedInsertion [ a prov:Insertion; prov:dictionary :e; prov:inserted [a prov:KeyValuePair; prov:key "k1"^^xsd:string; prov:value :foo] ].
IRI:http://www.w3.org/ns/prov#qualifiedRemoval
Removal is a derivation that transforms a dictionary into another, by removing one or more key-value pairs.
@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/> . :d1 a prov:Dictionary . :d2 a prov:Dictionary, prov:Entity; prov:derivedByRemovalFrom :d1; prov:qualifiedRemoval [ a prov:Removal; prov:dictionary :d1; prov:removedKey "k1"^^xsd:string, "k2"^^xsd:string; ]; .
If this Dictionary prov:derivedByRemovalFrom another Dictionary :e, then it can qualify how it did perform the Removal using prov:qualifiedRemoval [ a prov:Removal; prov:dictionary :c; prov:removed "k1"^^xsd:string ].
IRI:http://www.w3.org/ns/prov#removedKey
TODO Property needs a definition.
@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/> . :c2 a prov:Dictionary, prov:Entity; prov:derivedByRemovalFrom :c1; prov:qualifiedRemoval [ a prov:Removal, prov:DictionaryInvolvement; prov:dictionary :c1; prov:removedKey "k1"^^xsd:string, 1337, 3.14; ]; .
The key removed in a Removal.
To encourage widespread adoption, PROV-O's design is intentionally minimal and lightweight. The OWL RL profile was used as a baseline for simplicity, i.e., if an OWL assertion was not RL compliant, then it would require justification to be included in the final ontology. This section enumerates those axioms that are beyond OWL RL, along with a description of why they were important enough to be included.
Use of non-superclass expression in position that requires a superclass expression: ObjectUnionOf(provDerivation provResponsibility provStart) [ObjectPropertyDomain(provhadActivity ObjectUnionOf(provDerivation provResponsibility provStart)) in provhttp://www.w3.org/TR/2012/WD-prov-o-2012MMDD] | hadActivity |
Use of non-superclass expression in position that requires a superclass expression: ObjectUnionOf(provAssociation provEnd provGeneration provStart provUsage) [ObjectPropertyDomain(provhadRole ObjectUnionOf(provAssociation provEnd provGeneration provStart provUsage)) in provhttp://www.w3.org/TR/2012/WD-prov-o-2012MMDD] | hadRole |
Defining them both may lead to split use, and both will need to be handled (doubling the effort). The opposite is true. Not defining them will make people that want them named to choose their own name. To balance these tradeoffs, we choose a preferred inverse and define it in PROV-O. The inverse is not defined, but if users wish to refer to it, they should use the following names.
PROV-O Property | Recommended inverse name |
---|---|
prov:hadPlan | prov:wasPlanFor |
prov:hadUsage | prov:wasUsedInDerivation |
prov:involvee | prov:involvement |
prov:wasAttributedTo | prov:contributed |
prov:wasRevisionOf | prov:hadRevision |
prov:qualifiedUsage | prov:consumingActivity |
prov:atLocation | prov:locationOf |
prov:qualifiedGeneration | prov:generatedEntity |
prov:activity | prov:activityInvolvement |
prov:agent | prov:agentInvolvement |
prov:wasDerivedFrom | prov:hadDerivation |
prov:qualifiedRevision | prov:revisedEntity |
prov:qualifiedStart | prov:startedActivity |
prov:member | prov:inMembership |
prov:wasInvalidatedBy | prov:invalidated |
prov:tracedTo | prov:tracedFrom |
prov:qualifiedRemoval | prov:removedFromDictionary |
prov:hadGeneration | prov:generatedAsDerivation |
prov:wasStartedBy | prov:started |
prov:qualifiedCommunication | prov:informedActivity |
prov:qualifiedDelegation | prov:responsibleAgent |
prov:specializationOf | prov:generalizationOf |
prov:alternateOf | prov:alternateOf |
prov:qualifiedQuotation | prov:quotedByEntity |
prov:generated | prov:wasGeneratedBy |
prov:derivedByInsertionFrom | prov:hadDerivationByInsertion |
prov:wasQuotedFrom | prov:wasQuotedBy |
prov:dictionary | prov:dictionaryInvolvement |
prov:pairValue | prov:valueOf |
prov:hadActivity | prov:wasActivityOfInvolvement |
prov:membership | prov:membershipOf |
prov:wasInformedBy | prov:informed |
prov:derivedByRemovalFrom | prov:hadDerivationByRemoval |
prov:actedOnBehalfOf | prov:responsibleFor |
prov:hadOriginalSource | prov:wasOriginalSourceOf |
prov:wasEndedBy | prov:ended |
prov:involved | prov:wasInvolvedWith |
prov:qualifiedDerivation | prov:derivedEntity |
prov:qualifiedInsertion | prov:insertedToDictionary |
prov:inserted | prov:wasInsertedBy |
prov:qualifiedAttribution | prov:attributedEntity |
prov:qualifiedTrace | prov:tracedEntity |
prov:hadRole | prov:wasRoleIn |
prov:wasAssociatedWith | prov:wasAssociateFor |
prov:wasGeneratedBy | prov:generated |
prov:used | prov:wasUsedBy |
prov:qualifiedSource | prov:sourcingEntity |
prov:qualifiedEnd | prov:endedActivity |
prov:entity | prov:entityInvolvement |
prov:qualifiedAssociation | prov:associatedActivity |
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.
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.