--- a/primer/Primer.html Thu Apr 12 12:19:54 2012 +0100
+++ b/primer/Primer.html Thu Apr 12 13:35:14 2012 +0100
@@ -31,7 +31,13 @@
"Satya Sahoo, Deborah McGuinness"+
"<a href=\"http://www.w3.org/TR/2011/WD-prov-o-20111213/\"><cite>The PROV Ontology: Model and Formal Semantics</cite></a>. "+
"13 December 2011. W3C Working Draft. (Work in progress.) "+
- "URL: <a href=\"http://www.w3.org/TR/2011/WD-prov-o-20111213/\">http://www.w3.org/TR/2011/WD-prov-o-20111213</a>"
+ "URL: <a href=\"http://www.w3.org/TR/2011/WD-prov-o-20111213/\">http://www.w3.org/TR/2011/WD-prov-o-20111213</a>",
+
+ "TURTLE":
+ "Eric Prud'hommeaux, Gavin Carothers"+
+ "<a href=\"http://www.w3.org/TR/2011/WD-turtle-20110809/\"><cite>Turtle: Terse RDF Triple Language</cite></a>. "+
+ "9 August 2011. W3C Working Draft. "+
+ "URL: <a href=\"http://www.w3.org/TR/2011/WD-turtle-20110809/\">http://www.w3.org/TR/2011/WD-turtle-20110809/</a>"
};
var respecConfig = {
@@ -126,8 +132,8 @@
PROV data model for provenance [[PROV-DM]]. PROV-DM is a core data model for
provenance for building representations of the entities, people and
processes involved in producing a piece of data or thing in the world.
- This primer explains the fundamental PROV-DM concepts in non-normative
- terms, and provides worked examples applying the PROV-O OWL2
+ This primer explains the fundamental PROV-DM concepts in an illustrative
+ fashion, and provides examples applying the PROV-O OWL2
ontology [[PROV-O]]. The primer is intended as a starting point for those wishing
to create or make use of PROV-DM data.
</p>
@@ -141,9 +147,9 @@
This document is part of a set of specifications aiming to define the
various aspects that are necessary to achieve the vision of
interoperable interchange of provenance information in heterogeneous
- environments such as the Web. This document is a non-normative,
+ environments such as the Web. This document is an
intuitive introduction and guide to the [[PROV-DM]] data model for
- provenance. It includes simple worked examples applying the [[PROV-O]]
+ provenance. It includes simple examples applying the [[PROV-O]]
OWL2 ontology.
</section>
@@ -151,22 +157,22 @@
<h2>Introduction</h2>
<p>
This primer document provides an accessible introduction to the PROV Data Model
- ([[PROV-DM]]) standard for representing provenance on the Web, and its representation
+ ([[PROV-DM]]) specification for representing provenance on the Web, and its expression
in the PROV Ontology ([[PROV-O]]). Provenance describes
the origins of things, so PROV-DM data consists of descriptions about the past.
</p>
<p>
- This primer document aims to ease the adoption of the standard by providing:
+ This primer document aims to ease the adoption of the specifications by providing:
</p>
<ul>
<li>An intuitive explanation of how PROV-DM models provenance.</li>
- <li>Worked examples that can be followed to produce your own PROV-DM data.</li>
+ <li>Examples that can be followed to produce new PROV-DM data.</li>
</ul>
<p>
The <i>provenance</i> of digital objects represents their origins. The PROV-DM is a
- proposed standard to represent provenance records, which contain <i>descriptions</i> of the entities
+ proposed specification to represent provenance records, which contain <i>descriptions</i> of the entities
and activities involved in producing and delivering or otherwise influencing a
given object.
For the remainder of this document, we use the term 'provenance' to refer also
@@ -180,7 +186,7 @@
</p>
<p>
- As a standard for provenance, PROV-DM accommodates all those different uses
+ As a specification for provenance, PROV-DM accommodates all those different uses
of provenance. Different people may have different perspectives on provenance,
and as a result different types of information might be captured in provenance records.
One perspective might focus on <i>agent-centered provenance</i>, that is, what entities
@@ -209,8 +215,8 @@
vocabularies for provenance are available from the
<a href="http://www.w3.org/2005/Incubator/prov/XGR-prov/">Final Report of the W3C Provenance Incubator Group</a>.
That document contains three general scenarios
- that may help identify the provenance aspects of your planned applications and
- help plan the design of your provenance system.
+ that may help identify the provenance aspects of planned applications and
+ help plan the design of a provenance system.
</p>
<p>
The next section gives an introductory overview of PROV-DM using simple examples.
@@ -227,11 +233,11 @@
<p>
This section provides an intuitive explanation of the concepts in PROV-DM.
As with the rest of this document, it should be treated as a starting point for
- understanding the model, and not normative in itself. The PROV-DM model specification
+ understanding the model. The PROV-DM model specification
provides precise definitions and constraints to be used.
</p>
<p>
- The following ER diagram provides a high level overview of the structure of PROV-DM records,
+ The following diagram provides a high level overview of the structure of PROV-DM records,
limited to some key PROV-DM concepts discussed in this document.
The diagram is the same that appears in the [[PROV-DM]].
</p>
@@ -243,12 +249,15 @@
<h3>Entities</h3>
<p>
- In PROV-DM, the things that one may ask the provenance of are called <i>entities</i>.
+ In PROV-DM, physical, digital, conceptual, or other kinds of thing are called
+ <i>entities</i>.
Examples of such entities are a web page, a chart, and a spellchecker.
- An entity’s provenance may refer to many other entities. For example, a document D is
+ Provenance records can describe the provenance of entities, and
+ an entity’s provenance may refer to many other entities. For example, a document D is
an entity whose provenance refers to other entities such as a chart inserted into D,
the dataset that was used to create that chart, or the author of the document.
- Entities may be described from different perspectives that may be more or less specific. For example,
+ Entities may be described as having different attributes and
+ be described from different perspectives. For example,
document D as stored in my file system, the second version of document D,
and D as an evolving document,
are three distinct entities for which we may describe provenance.
@@ -276,27 +285,28 @@
Activities <i>generate</i> new entities.
For example, writing a document brings the document into existence, while
revising the document brings a new version into existence.
- An activity may complete with the generation of an entity or generate entities
- mid-way through occurring.
+ Generation does not always occur at the end of an activity, and an activity may generate entities
+ part-way through.
Activities also make <i>use</i> of entities. For example, revising a document
to fix spelling mistakes uses the original version of the document as well
as a list of corrections.
- Descriptions can be included, in PROV-DM data, of
- particular activities using or generating particular entities.
</p>
</section>
<section>
<h3>Agents and Responsibility</h3>
<p>
- An <i>agent</i> is a type of entity that takes an active role in an activity such
+ An <i>agent</i> is a type of entity that takes an role in an activity such
that it can be assigned some degree of <i>responsibility</i> for the activity taking
- place. An agent can be a person, a piece of software, an inanimate object, an organization, or
+ place.
+ An agent can be a person, a piece of software, an inanimate object, an organization, or
other entities that may be ascribed responsibility.
- Several agents can be associated with an activity.
+ When an agent has some responsibility for an activity, PROV-DM says the agent was
+ <i>associated</i> with the activity, where several agents may be associated with
+ an activity and vice-versa.
Consider a chart displaying some statistics
regarding crime rates over time in a linear regression. To represent the
- provenance of a that chart, we could state that the person who created the
+ provenance of that chart, we could state that the person who created the
chart was an agent involved in its creation, and that the software used to
create the chart was also an agent involved in that activity.
An agent may be <i>acting on behalf</i> of others, e.g. an employee on behalf of their
@@ -332,10 +342,10 @@
<h3>Derivation and Revision</h3>
<p>
When one entity's existence, content, characteristics and so on are
- at least partly due to another entity, then we say that the former is
+ at least partly due to another entity, then we say that the former was
<i>derived</i> from the latter. For example, one document may contain
material copied from another,
- and a chart is derived from the data that is used to create it.
+ and a chart was derived from the data that it illustrates.
</p>
<p>
PROV allows some common, specialized kinds of derivation to be described.
@@ -343,8 +353,8 @@
(also called versions and other comparable terms) over time. Between revisions,
one or more attributes of the entity may change.
The result of each revision is a new entity,
- and PROV-DM allows one to relate those entities by making an description that
- one is a revision of another.
+ and PROV-DM allows one to relate those entities by making a description that
+ one was a revision of another.
Another specialized kind of derivation is to say that one entity, commonly
a document, <i>quotes</i> from another.
</p>
@@ -402,18 +412,18 @@
</section>
<section>
- <h2>Examples of Use of the PROV-O Ontology</h2>
+ <h2>Examples</h2>
<p>
In the following sections, we show how PROV-DM can be used to model
- provenance in a specific example.
+ provenance in a specific example scenario.
</p>
<p>
We include samples of how the formal ontology PROV-O
can be used to represent the PROV-DM descriptions as RDF triples.
- These are shown using the Turtle notation. In
+ These are shown using the Turtle notation [[TURTLE]]. In
the latter depictions, the namespace prefix <b>prov</b> denotes
- terms from the Prov ontology, while <b>ex</b> denotes terms specific to the example.
+ terms from the PROV ontology, while <b>ex</b> denotes terms specific to the example.
</p>
<p>We also provide a representation of the examples in the Provenance
@@ -534,7 +544,7 @@
declares that he acts on their behalf. Note that the organization is itself
an agent.
</p>
- <pre>
+ <pre class="turtle example">
ex:derek prov:actedOnBehalfOf ex:chartgen .
ex:chartgen a prov:Agent ;
a prov:Organization ;
@@ -544,7 +554,7 @@
Finally, there is an explicit statement in the provenance that the chart was
attributed to Derek.
</p>
- <pre>
+ <pre class="turtle example">
ex:chart1 prov:wasAttributedTo ex:derek .
</pre>
</section>
@@ -577,7 +587,7 @@
</pre>
<p>
Examples in the sections above show descriptions of the simple facts that the
- composition activity used, generated and was controlled by entities/agents.
+ composition activity used, generated and was enacted by entities/agents.
For example, the usage of the data set by the compose activity is expressed
as follows.
</p>
@@ -618,7 +628,7 @@
</pre>
<p>
Similarly, the provenance includes descriptions that the same activity was
- controlled in a particular way (<code>ex:analyst</code>) by Derek, and that
+ enacted in a particular way (<code>ex:analyst</code>) by Derek, and that
the entity <code>ex:composition</code> took the role of the composed
data in what the activity generated.
</p>
@@ -644,7 +654,7 @@
to be nothing wrong, so Betty concludes the error is in the government dataset.
She looks at the dataset <code>ex:dataSet1</code>,
and sees that it is missing data from one of the zipcodes in the area. She contacts
- the government, and a new version of GovData is created, declared to be the
+ the government agency, and a new version of GovData is created, declared to be the
next revision of the data. The provenance of this new dataset,
<code>ex:dataSet2</code>, states that it is a revision of the
old data set, <code>ex:dataSet1</code>.
@@ -655,7 +665,7 @@
</pre>
<p>
Derek notices that there is a new dataset available and creates a new chart based on the revised data,
- using the same compilation activity as before. Betty checks the article again at a
+ using another compilation activity. Betty checks the article again at a
later point, and wants to know if it is based on the old or new GovData.
She sees a new description stating that the new chart is derived from the new dataset.
</p>
@@ -674,23 +684,23 @@
<code>ex:dataSet2</code>, describes not only who performed the corrections,
Edith, but also what instructions she followed in doing so (in PROV terms, the plan).
First, the correction activity (<code>ex:correct</code>), the person who corrected
- it, Edith (<code>ex:edith</code>), and the correction instructions (<code>ex:corrections</code>)
+ it, Edith (<code>ex:edith</code>), and the correction instructions (<code>ex:instructions</code>)
are described.
<pre class="turtle example">
- ex:correct a prov:Activity .
- ex:edith a prov:Agent, prov:Person .
- ex:corrections a prov:Plan .
+ ex:correct a prov:Activity .
+ ex:edith a prov:Agent, prov:Person .
+ ex:instructions a prov:Plan .
</pre>
<p>
The connection between them is expressed in PROV-O using a qualified association giving details of
how Edith was associated with the correction activity,
- including that she followed the above corrections plan.
+ including that she followed the above correction instructions.
</p>
<pre class="turtle example">
ex:correct prov:qualifiedAssociation [
a Association ;
prov:agent ex:edith ;
- prov:hadPlan ex:corrections
+ prov:hadPlan ex:instructions
] .
ex:dataSet2 prov:wasGeneratedBy ex:correct .
</pre>
@@ -814,12 +824,12 @@
<section>
<h3>Use and Generation</h3>
<pre class="example asn">
- used(ex:compose, ex:dataSet1, _)
- used(ex:compose, ex:regionList, _)
- wasGeneratedBy(ex:composition, ex:compose, _)
+ used(ex:compose, ex:dataSet1, -)
+ used(ex:compose, ex:regionList, -)
+ wasGeneratedBy(ex:composition, ex:compose, -)
- used(ex:illustrate, ex:composition, _)
- wasGeneratedBy(ex:chart1, ex:illustrate, _)
+ used(ex:illustrate, ex:composition, -)
+ wasGeneratedBy(ex:chart1, ex:illustrate, -)
</pre>
</section>
@@ -828,8 +838,8 @@
<pre class="example asn">
agent(ex:derek, [ prov:type="prov:Person", foaf:givenName = "Derek",
foaf:mbox= "<mailto:derek@example.org>"])
- wasAssociatedWith(ex:compose, ex:derek, _)
- wasAssociatedWith(ex:illustrate, ex:derek, _)
+ wasAssociatedWith(ex:compose, ex:derek, -)
+ wasAssociatedWith(ex:illustrate, ex:derek, -)
agent(ex:chartgen, [ prov:type="prov:Organization",
foaf:name = "Chart Generators Inc"])
@@ -846,8 +856,8 @@
relations. Thus, the entire Turtle example in Section 3.5 is rendered as follows:
</p>
<pre class="example asn">
- used(ex:compose, ex:dataSet1, [ prov:role = "prov:dataToCompose"], _)
- used(ex:compose, ex:regionList, [ prov:role = "prov:regionsToAggregteBy"], _)
+ used(ex:compose, ex:dataSet1, [ prov:role = "ex:dataToCompose"], -)
+ used(ex:compose, ex:regionList, [ prov:role = "ex:regionsToAggregteBy"], -)
</pre>
<p>
In the first description above, note that this adds a "role" attribute to the first 'used' description of A.3.
@@ -858,7 +868,7 @@
<section>
<h3>Derivation and Revision</h3>
<pre class="example asn">
- wasRevisionOf(ex:dataSet2, ex:dataSet1, _)
+ wasRevisionOf(ex:dataSet2, ex:dataSet1, -)
</pre>
<pre class="example asn">
@@ -872,7 +882,7 @@
Similarly to roles, plans are attributes of relations, specifically association relations.
</p>
<pre class="example asn">
- wasAssociatedWith(ex:correct, ex:edith, ex:corrections)
+ wasAssociatedWith(ex:correct, ex:edith, ex:instructions)
</pre>
</section>
@@ -934,6 +944,7 @@
<li>Added intuition section on quotation.</li>
<li>Added PROV-O examples for time</li>
<li>Updated old PROV-N and added new PROV-N for all recently added concepts</li>
+ <li>Many minor corrections from Working Group reviewers</li>
</ul>
</section>