--- a/model/examples/w3c-publication1.pn Tue May 08 09:42:16 2012 +0100
+++ b/model/examples/w3c-publication1.pn Tue May 08 12:16:41 2012 +0100
@@ -13,33 +13,33 @@
-entity(tr:WD-prov-dm-20111018, [ prov:type="process:RecsWD" %% xsd:QName ])
-entity(tr:WD-prov-dm-20111215, [ prov:type="process:RecsWD" %% xsd:QName ])
-entity(process:rec-advance, [ prov:type="prov:Plan" %% xsd:QName ])
-
-
-entity(chairs:2011OctDec/0004, [ prov:type="trans:transreq" %% xsd:QName ])
-entity(email:2011Oct/0141, [ prov:type="trans:pubreq" %% xsd:QName ])
-entity(email:2011Dec/0111, [ prov:type="trans:pubreq" %% xsd:QName ])
-
-
-wasDerivedFrom(tr:WD-prov-dm-20111215,tr:WD-prov-dm-20111018)
+ entity(tr:WD-prov-dm-20111018, [ prov:type='process:RecsWD' ])
+ entity(tr:WD-prov-dm-20111215, [ prov:type='process:RecsWD' ])
+ entity(process:rec-advance, [ prov:type='prov:Plan' ])
-activity(ex:act1,-,-,[prov:type="publish"])
-activity(ex:act2,-,-,[prov:type="publish"])
-
-wasGeneratedBy(tr:WD-prov-dm-20111018, ex:act1, -)
-wasGeneratedBy(tr:WD-prov-dm-20111215, ex:act2, -)
+ entity(chairs:2011OctDec/0004, [ prov:type='trans:transreq' ])
+ entity(email:2011Oct/0141, [ prov:type='trans:pubreq' ])
+ entity(email:2011Dec/0111, [ prov:type='trans:pubreq' ])
-used(ex:act1,chairs:2011OctDec/0004,-)
-used(ex:act1,email:2011Oct/0141,-)
-used(ex:act2,email:2011Dec/0111,-)
-agent(w3:Consortium, [ prov:type="Organization" ])
+ wasDerivedFrom(tr:WD-prov-dm-20111215, tr:WD-prov-dm-20111018)
-wasAssociatedWith(ex:act1, w3:Consortium, process:rec-advance)
-wasAssociatedWith(ex:act2, w3:Consortium, process:rec-advance)
+
+ activity(ex:act1,-,-,[prov:type="publish"])
+ activity(ex:act2,-,-,[prov:type="publish"])
+
+ wasGeneratedBy(tr:WD-prov-dm-20111018, ex:act1, -)
+ wasGeneratedBy(tr:WD-prov-dm-20111215, ex:act2, -)
+
+ used(ex:act1,chairs:2011OctDec/0004,-)
+ used(ex:act1,email:2011Oct/0141,-)
+ used(ex:act2,email:2011Dec/0111,-)
+
+ agent(w3:Consortium, [ prov:type='prov:Organization' ])
+
+ wasAssociatedWith(ex:act1, w3:Consortium, process:rec-advance)
+ wasAssociatedWith(ex:act2, w3:Consortium, process:rec-advance)
endContainer
--- a/model/examples/w3c-publication3.pn Tue May 08 09:42:16 2012 +0100
+++ b/model/examples/w3c-publication3.pn Tue May 08 12:16:41 2012 +0100
@@ -8,18 +8,18 @@
entity(tr:WD-prov-dm-20111215, [ prov:type="document", ex:version="2" ])
-agent(ex:Luc, [ prov:type="Person" ])
-agent(ex:Paolo, [ prov:type="Person" ])
-agent(ex:Khalid, [ prov:type="Person" ])
-agent(ex:Stephen, [ prov:type="Person" ])
-agent(ex:Yolanda, [ prov:type="Person" ])
-agent(ex:Ryan, [ prov:type="Person" ])
-agent(ex:Paul, [ prov:type="Person" ])
-agent(ex:Graham, [ prov:type="Person" ])
-agent(ex:Jim, [ prov:type="Person" ])
-agent(ex:Simon, [ prov:type="Person" ])
-agent(ex:James, [ prov:type="Person" ])
-agent(ex:Satya, [ prov:type="Person" ])
+agent(ex:Luc, [ prov:type='prov:Person' ])
+agent(ex:Paolo, [ prov:type='prov:Person' ])
+agent(ex:Khalid, [ prov:type='prov:Person' ])
+agent(ex:Stephen, [ prov:type='prov:Person' ])
+agent(ex:Yolanda, [ prov:type='prov:Person' ])
+agent(ex:Ryan, [ prov:type='prov:Person' ])
+agent(ex:Paul, [ prov:type='prov:Person' ])
+agent(ex:Graham, [ prov:type='prov:Person' ])
+agent(ex:Jim, [ prov:type='prov:Person' ])
+agent(ex:Simon, [ prov:type='prov:Person' ])
+agent(ex:James, [ prov:type='prov:Person' ])
+agent(ex:Satya, [ prov:type='prov:Person' ])
activity(ex:edit1,[prov:type="edit"])
@@ -28,7 +28,7 @@
wasAssociatedWith(ex:edit1, ex:Luc, -, [prov:role="editor"])
wasAssociatedWith(ex:edit1, ex:Paolo, -, [prov:role="editor"])
wasAssociatedWith(ex:edit1, ex:Khalid, -, [prov:role="contributor"])
- wasAssociatedWith(ex:edit1, ex:Stephen, -, [prov:role="contributor"])
+wasAssociatedWith(ex:edit1, ex:Stephen, -, [prov:role="contributor"])
wasAssociatedWith(ex:edit1, ex:Yolanda, -, [prov:role="contributor"])
wasAssociatedWith(ex:edit1, ex:Ryan, -, [prov:role="contributor"])
wasAssociatedWith(ex:edit1, ex:Paul, -, [prov:role="contributor"])
--- a/model/working-copy/wd6-bundle.html Tue May 08 09:42:16 2012 +0100
+++ b/model/working-copy/wd6-bundle.html Tue May 08 12:16:41 2012 +0100
@@ -349,17 +349,17 @@
<section id="section-example-c">
<h3>Attribution of Provenance</h3>
-<p>The two previous sections provide two different perspectives on the provenance of a document By design, the PROV approach allows for the provenance of a subject to be provided by multiple sources. For users to decide whether they can place their trust in the document, they may want to analyze its provenance, but also determine
+<p>The two previous sections provide two different perspectives on the provenance of a document. By design, the PROV approach allows for the provenance of a subject to be provided by multiple sources. For users to decide whether they can place their trust in the document, they may want to analyze its provenance, but also determine
who the provenance is attributed to, and when it was
generated, etc. In other words, we need to be able to express the provenance of provenance.</p>
<p>PROV-DM offers a construct to bundle up provenance descriptions and name them. </p>
-<pre>
+<pre class="codeexample">
bundle ex:author-view
- agent(ex:Paolo, [ prov:type="Person" ])
- agent(ex:Simon, [ prov:type="Person" ])
+ agent(ex:Paolo, [ prov:type='prov:Person' ])
+ agent(ex:Simon, [ prov:type='prov:Person' ])
...
@@ -368,29 +368,29 @@
</pre>
Likewise, the process view can be expressed as a separate named bundle.
-<pre>
+<pre class="codeexample">
bundle ex:process-view
- agent(w3:Consortium, [ prov:type="Organization" ])
+ agent(w3:Consortium, [ prov:type='prov:Organization' ])
...
endBundle
</pre>
-<p>To express their respective provenance, these bundles must be seen as entities, and all the constructs of PROV-DM are now available to characterize their provenance. In the example below, <span class="name">ex:w3c-publication1.pn</span> is attributed to the agent <span class="name">w3:Consortium</span>, whereas <span class="name">ex:w3c-publication3.pn</span> to <span class="name">ex:Simon</span>.
+<p>To express their respective provenance, these bundles must be seen as entities, and all PROV constructs are now available to express their provenance. In the example below, <span class="name">ex:author-view</span> is attributed to the agent <span class="name">ex:Simon</span>, whereas <span class="name">ex:process-view</span> to <span class="name">w3:Consortium</span>.
-<pre>
+<pre class="codeexample">
+entity(ex:author-view, [prov:type='prov:Bundle' ])
+wasAttributedTo(ex:author-view, ex:Simon)
+
entity(ex:process-view, [prov:type='prov:Bundle' ])
wasAttributedTo(ex:process-view, w3:Consortium)
-
-entity(ex:author-view, [prov:type='prov:Bundle' ])
-wasAttributedTo(ex:author-view, ex:Simon)
</pre>
<div class="note">
<p>TODO: full details of bundles can be found at <a href="examples/w3c-publication1.pn">ex:process-view</a> and <a href="examples/w3c-publication3.pn">ex:author-view</a>.</p>
-</div
+</div>
</section>
@@ -435,7 +435,7 @@
<section id="term-bundle">
-<h3>Bundle</h3>
+<h3>Bundle Declaration</h3>
<p>
@@ -448,13 +448,15 @@
<p>
<div class="attributes" id="attributes-bundle">
- A <dfn title="dfn-bundle" id="dfn-bundle">bundle</dfn>, written <span class="pnExpression">bundle id description_1 ... description_n</span>, consists of:
+ A <dfn title="dfn-bundle" id="dfn-bundle-declaration">bundle declaration</dfn>, written <span class="pnExpression">bundle id description_1 ... description_n</span>, consists of:
<ul>
-<li><span class='attribute' id="bundle.id">id</span>: an OPTIONAL identifier for the bundle;</li>
-<li><span class='attribute' id="bundle.descriptions">descriptions</span>: a set of provenance descriptions <span class="name">
+<li><span class='attribute' id="bundle.declaration.id">id</span>: an OPTIONAL identifier for the bundle;</li>
+<li><span class='attribute' id="bundle.declaration.descriptions">descriptions</span>: a set of provenance descriptions <span class="name">
description_1</span>, ..., <span class="name">description_n</span>.</li>
</ul>
-<p>A bundle without identifier is referred to as a default bundle. Since a default bundle lacks an identifier, descriptions about such type of bundles cannot be expressed, and provenance cannot be associated with them. Default bundles are simply a packaging mechanism for provenance descriptions when provenance of provenance does not have to be expressed.</p>
+<p>When specified, the identifier <span class="name">id</span> identifies a unique set of descriptions.</p>
+
+<p>A bundle without identifier is referred to as a default bundle. Since a default bundle lacks an identifier, descriptions about such type of bundles cannot be expressed, and provenance cannot be associated with them. A default bundle is merely a packaging mechanism for provenance descriptions when provenance of provenance does not have to be expressed.</p>
</section>
@@ -465,68 +467,68 @@
<h3>Bundle Description</h3>
-<p>As a bundle is a set of descriptions, it also an entity so that its provenance can be described. </p>
+<p>As a named bundle is a set of descriptions, it also an entity so that its provenance can be described. </p>
PROV defines the following type for bundles:
<ul>
-<li><span class="name">prov:Bundle</name> denotes a bundle.
+<li><span class="name">prov:Bundle</span> is the type that denotes <a title="bundle">bundles</a>.
</ul>
-<div class="anexample" id="anexample-bundle-description">
+<p>
A bundle description is of the form <span class="pnExpression">entity(id,[prov:type='prov:Bundle', attr1=val1, ...])</span>
where <span class='name'>id</span> is an identifier denoting a bundle,
a type <span>prov:Bundle</span> and
an OPTIONAL set of attribute-value pairs ((<span class="name">attr1</span>, <span class="name">val1</span>), ...) representing additional information about this bundle.
-</div>
+</p>
-<p>The provenance of provennace can then be described using PROV constructs, as illustrated by the following example. </p>
+<p>The provenance of provenance can then be described using PROV constructs, as illustrated by the following example. </p>
<div class="anexample" id="anexample-provenance-of-provenance">
-<p>Let us consider an example consisting of two entities <span class="name">ex:e1</span> and <span class="name">ex:e2</span>.</p>
+<p>Let us consider an example consisting of two entities <span class="name">ex:report1</span> and <span class="name">ex:report2</span>.</p>
<pre class="codeexample">
-entity(ex:e1,[prov:type="report", ex:version=1])
-wasGeneratedBy(ex:e1,-,2012-05-24)
-entity(ex:e2,[prov:type="report", ex:version=2])
-wasGeneratedBy(ex:e2,-,2012-05-25)
-wasDerivedFrom(ex:e2, ex:e1)
+entity(ex:report1, [ prov:type="report", ex:version=1 ])
+wasGeneratedBy(ex:report1, -, 2012-05-24T10:00:01)
+entity(ex:report2, [ prov:type="report", ex:version=2])
+wasGeneratedBy(ex:report2, -, 2012-05-25T11:00:01)
+wasDerivedFrom(ex:report2, ex:report1)
</pre>
-<p>Let us assume that Bob observed the creation of <span class="name">ex:e1</span>.
+<p>Let us assume that Bob observed the creation of <span class="name">ex:report1</span>.
A first bundle can be expressed.</p>
<pre class="codeexample">
bundle uuid:01
- entity(ex:e1,[prov:type="report", ex:version=1])
- wasGeneratedBy(ex:e1,-,2012-05-24)
+ entity(ex:report1, [ prov:type="report", ex:version=1 ])
+ wasGeneratedBy(ex:report1, -, 2012-05-24T10:00:01)
end
</pre>
<p>In contrast,
-Alice observed the creation of <span class="name">ex:e2</span> and its derivation from <span class="name">ex:e1</span>.
+Alice observed the creation of <span class="name">ex:report2</span> and its derivation from <span class="name">ex:report1</span>.
A separate bundle can also be expressed.</p>
<pre class="codeexample">
bundle uuid:02
- entity(ex:e1)
- entity(ex:e2,[prov:type="report", ex:version=2])
- wasGeneratedBy(ex:e2,-,2012-05-25)
- wasDerivedFrom(ex:e2,ex:e1)
+ entity(ex:report1)
+ entity(ex:report2, [ prov:type="report", ex:version=2 ])
+ wasGeneratedBy(ex:report2, -, 2012-05-25T11:00:01)
+ wasDerivedFrom(ex:report2, ex:report1)
end
</pre>
-<p>The first bundle contains the descriptions corresponding to Bob observing the creation of <span class="name">ex:e1</span>. Its provenance can be described.</p>
+<p>The first bundle contains the descriptions corresponding to Bob observing the creation of <span class="name">ex:report1</span>. Its provenance can be described.</p>
<pre class="codeexample">
entity(uuid:01, [prov:type='prov:Bundle'])
-wasGeneratedBy(uuid:01,-, 2012-05-24)
-wasAttributedTo(uuid:01,ex:Bob)
+wasGeneratedBy(uuid:01, -, 2012-05-24T10:30:00)
+wasAttributedTo(uuid:01, ex:Bob)
</pre>
<p>In contrast, the second bundle is attributed to Alice who
-observed the derivation of <span class="name">ex:e2</span> from <span class="name">ex:e1</span>.</p>
+observed the derivation of <span class="name">ex:report2</span> from <span class="name">ex:report1</span>.</p>
<pre class="codeexample">
-entity(uuid:02, [prov:type='prov:Bundle'])
-wasGeneratedBy(uuid:02,-, 2012-05-25)
-wasAttributedBTo(uuid:02,ex:Bob)
+entity(uuid:02, [ prov:type='prov:Bundle' ])
+wasGeneratedBy(uuid:02, -, 2012-05-25T11:15:00)
+wasAttributedBTo(uuid:02, ex:Bob)
</pre>
</div>
@@ -534,20 +536,20 @@
<p>A provenance aggretator could merge two bundles, resulting in a novel bundle, whose provenance is described as follows.</p>
<pre class="codeexample">
bundle uuid:03
- entity(ex:e1, [prov:type="report", ex:version=1])
- wasGeneratedBy(ex:e1, -, 2012-05-24)
+ entity(ex:report1, [ prov:type="report", ex:version=1 ])
+ wasGeneratedBy(ex:report1, -, 2012-05-24T10:00:01)
- entity(ex:e2, [prov:type="report", ex:version=2])
- wasGeneratedBy(ex:e2, -, 2012-05-25)
- wasDerivedFrom(ex:e2, ex:e1)
+ entity(ex:report2, [ prov:type="report", ex:version=2 ])
+ wasGeneratedBy(ex:report2, -, 2012-05-25T11:00:01)
+ wasDerivedFrom(ex:report2, ex:report1)
end
-entity(uuid:03, [prov:type='prov:Bundle'])
-wasAttributedTo(uuid:03,ex:Aggregator)
-wasDerivedFrom(uuid:03,uuid:01)
-wasDerivedFrom(uuid:03,uuid:02)
+entity(uuid:03, [ prov:type='prov:Bundle' ])
+wasAttributedTo(uuid:03, ex:Aggregator)
+wasDerivedFrom(uuid:03, uuid:01)
+wasDerivedFrom(uuid:03, uuid:02)
</pre>
-<p>The new bundle is given a new identifier <span class="name">uuid:03</span> and it is attributed to the <span class="name">ex:Aggregator</span> agent.
+<p>The new bundle is given a new identifier <span class="name">uuid:03</span> and is attributed to the <span class="name">ex:Aggregator</span> agent.
</div>
@@ -557,9 +559,10 @@
<h3>Provenance Locator</h3>
-<div class="note">Need motivation, why are we trying to fix?
-bundles may be obtained from multiple sources, so a question is how we may "recompose" a story from the various bundles it has be broken down into.
-</div>
+
+In <a href="#anexample-provenance-of-provenance">Example anexample-provenance-of-provenance</a>, we initially presented a scenario involving two entities <span class="name">report1</span> and <span class="name">report2</span>, and showed how the descriptions can be organized into two bundles. There is no explicit indication that the second bundle "continues" the description offered by the first bundle. Given that bundles may be retrieved separately [[PROV-AQ]], it is not obvious for a provenance consumer to navigate descriptions across bundles. To aid consumers,
+ Bob may wish to express that there is further provenance information about <span class="name">report1</span> in bundle <span class="name">uuid:01</span>. To this end, PROV introduces the notion of provenance locator, inspired by [[PROV-AQ]].
+
<p><div class="glossary-ref" data-ref="glossary-provenance-locator"></div></p>
@@ -572,124 +575,108 @@
<li><span class='attribute' id="prov.localtor.id">id</span>: an identifier for a provenance locator; </li>
<li><span class='attribute' id="prov.locator.subject">subject</span>: an identifier denoting something (entity, activity, agent, or relatation instance);</li>
<li><span class='attribute' id="prov.locator.bundle">bundle</span>: an OPTIONAL identifier (<span class="name">bundle</span>) for a bundle;
-<li><span class='attribute' id="prov.locator.target">target</span>: an OPTIONAL identifier (<span class="name">target</span>) denoting something described in bundle;
-<li><span class='attribute' id="prov.locator.service">service</span>: an OPTIONAL URI (<span class="name">service</span>) denoting a <a href="http://www.w3.org/TR/prov-aq/#provenance-service">provenance service</a> from which provenance can be retrieved according to [[PROV-AQ]];
-<li><span class='attribute' id="prov.locator.provenance">provenance</span>: an OPTIONAL URI (<span class="name">prov</span>) where provenance descriptions can be found;
+<li><span class='attribute' id="prov.locator.target">target</span>: an OPTIONAL identifier (<span class="name">target</span>) denoting something described in another set of descriptions (referred to as <a href="http://www.w3.org/TR/prov-aq/#dfn-target-uri">Target-URI</a> in [[PROV-AQ]]);
+<li><span class='attribute' id="prov.locator.service">service</span>: an OPTIONAL URI (<span class="name">service</span>) denoting a <a href="http://www.w3.org/TR/prov-aq/#dfn-provenance-service">provenance service</a> from which provenance can be retrieved (referred to as <a href="http://www.w3.org/TR/prov-aq/#dfn-service-uri">Service-URI</a> in [[PROV-AQ]]);
+<li><span class='attribute' id="prov.locator.provenance">provenance</span>: an OPTIONAL URI (<span class="name">prov</span>), which when dereferenced, allows access to provenance descriptions (referred to as <a href="http://www.w3.org/TR/prov-aq/#dfn-provenance-uri">Provenance-URI</a> in [[PROV-AQ]]);
<li><span class='attribute' id="prov.locator.attributes">attributes</span>: an OPTIONAL set (<span class="name">attrs</span>) of attribute-value pairs representing additional information about this locator.</li>
</ul>
<p>In <span class="pnExpression">hasProvenance(id, subject, bundle, target, service, prov, attrs)</span>, <span class="name">service</span> and <span class="name">prov</span> are both optional and mutually exclusive: if specified, either <span class="name">service</span> or <span class="name">prov</span> is provided.</p>
</div>
-<div class='note'>Specialization? is it necessary? just for entities</div>
+<p>A provenance locator specifies a context, referred to
+as <em>located context</em> in which further descriptions can be found
+about something.</p>
-<p>A provenance locator not only provides information about the location of provenance descriptions, it also expresses a <a>specialization</a> relation between the entity denoted by <span class="name">subject</span> and the entity described where indicated by the provenance locator (the eponym entity or the target entity). This is specialization since the entity <span class="name">id</span> is more constrained in the current context than in the located one.</p>
-
-<div class='note'>Should the subject be restricted to an entity?</div>
+<p>When the subject and optional target denote entities,
+a provenance locator not only provides a located context, but it also expresses a <a>specialization</a> relation between the entity denoted by <span class="name">subject</span> and the entity described in the located context. This is a specialization since the entity denoted by <span class="name">subject</span> is more constrained in the current context than in the located one.</p>
<div class="anexample" id="anexample-provenance-locator">
-<p>According to the following provenance locator, provenance descriptions about <span class="name">ex:e1</span> can be found in bundle <span class="name">uuid:01</span>.</p>
+<p>According to the following provenance locator, provenance descriptions about <span class="name">ex:report1</span> can be found in bundle <span class="name">uuid:01</span>.</p>
<pre class="codeexample">
-hasProvenanceIn(ex:e1, uuid:01)
+hasProvenanceIn(ex:report1, uuid:01, -, -, -)
</pre>
-<p>According to the following provenance locator, provenance descriptions about <span class="name">ex:e1</span> can be found in bundle <span class="name">uuid:01</span>, in a provenance service identified by the provided URI.</p>
+<p>According to the following provenance locator, provenance descriptions about <span class="name">ex:report1</span> can be found in bundle <span class="name">uuid:01</span>, in a provenance service identified by the provided URI.</p>
<pre class="codeexample">
-hasProvenanceIn(ex:e1, uuid:01,"http://example.com/service"^xsd:anyURI, -)
+hasProvenanceIn(ex:report1, uuid:01, -, "http://example.com/service"^xsd:anyURI, -)
</pre>
-<p>According to the following provenance locator, provenance descriptions about <span class="name">ex:e1</span> can be found in resource identified by the provided URI.</p>
+<p>According to the following provenance locator, provenance descriptions about <span class="name">ex:report1</span> can be found in resource identified by the provided URI.</p>
<pre class="codeexample">
-hasProvenanceIn(ex:e1, -, -, "http://example.com/some-provenance.pn"^xsd:anyURI)
+hasProvenanceIn(ex:report1, -, -, -, "http://example.com/some-provenance.pn"^xsd:anyURI)
</pre>
</div>
<div class="anexample" id="anexample-provenance-locator2">
-<p>Let us again consider the same scenario involving two entities <span class="name">ex:e1</span> and <span class="name">ex:e2</span>.</p>
-<p>The first bundle can be expressed, containing all Bob's obsertations about the creation of <span class="name">ex:e1</span>.
+<p>Let us again consider the same scenario involving two entities <span class="name">ex:report1</span> and <span class="name">ex:report2</span>.</p>
+<p>The first bundle can be expressed with all Bob's observations about the creation of <span class="name">ex:report1</span>.
</p>
<pre class="codeexample">
-bundle uuid:01
- entity(ex:e1,[prov:type="report", ex:version=1])
- wasGeneratedBy(ex:e1,-,2012-05-24)
+bundle uuid:04
+ entity(ex:report1, [ prov:type="report", ex:version=1 ])
+ wasGeneratedBy(ex:report1, -, 2012-05-24T10:00:01)
end
</pre>
-<p>Likewise, Alice's observation about the derivation of <span class="name">ex:e2</span> from <span class="name">ex:e1</span>, is expressed in a separate bundle.</p>
+<p>Likewise, Alice's observation about the derivation of <span class="name">ex:report2</span> from <span class="name">ex:report1</span>, is expressed in a separate bundle.</p>
<pre class="codeexample">
-bundle uuid:02
- entity(ex:e1)
- hasProvenanceIn(ex:e1,uuid:01)
- entity(ex:e2,[prov:type="report", ex:version=2])
- wasGeneratedBy(ex:e2,-,2012-05-25)
- wasDerivedFrom(ex:e2,ex:e1)
+bundle uuid:05
+ entity(ex:report1)
+ hasProvenanceIn(ex:report1, uuid:04, -, -, -)
+ entity(ex:report2, [ prov:type="report", ex:version=2 ])
+ wasGeneratedBy(ex:report2, -, 2012-05-25T11:00:01)
+ wasDerivedFrom(ex:report2, ex:report1)
end
</pre>
-<p>In bundle <span class="name">uuid:02</span>, there is a description for entity <span class="name">ex:e1</span>, and
-a provenance locator pointing to bundle <span class="name">uuid:01</span>.
-The locator indicates that some provenance description for <span class="name">ex:e1</span> can be found in bundle <span class="name">uuid:01</span>. The purpose of the locator is twofold. First, it allows for <a href="http://www.w3.org/TR/prov-aq/#incremental-provenance-retrieval">incremental navigation</a> of provenance [[PROV-AQ]]. Second, it makes entity <span class="name">ex:e1</span> described in <span class="name">uuid:02</span> a <a>specialization</a> of <span class="name">ex:e1</span> described in <span class="name">uuid:01</span>.
+<p>In bundle <span class="name">uuid:05</span>, there is a description for entity <span class="name">ex:report1</span>, and
+a provenance locator pointing to bundle <span class="name">uuid:04</span>.
+The locator indicates that some provenance description for <span class="name">ex:report1</span> can be found in bundle <span class="name">uuid:04</span>. The purpose of the locator is twofold. First, it allows for <a href="http://www.w3.org/TR/prov-aq/#incremental-provenance-retrieval">incremental navigation</a> of provenance [[PROV-AQ]]. Second, it makes entity <span class="name">ex:report1</span> described in <span class="name">uuid:05</span> a <a>specialization</a> of <span class="name">ex:report1</span> described in <span class="name">uuid:04</span>.
</p>
</div>
<div class="anexample" id="aexample-note">
-<p>Consider that the following bundle of descriptions
+<p>Consider that the following bundle of descriptions, in which derivation and generations have been identified.
<pre class="codeexample">
-bundle uuid:04
- entity(ex:e1,[prov:type="report", ex:version=1])
- wasGeneratedBy(ex:g1; ex:e1,-,2012-05-24)
- entity(ex:e2,[prov:type="report", ex:version=2])
- wasGeneratedBy(ex:g2; ex:e2,-,2012-05-25)
- wasDerivedFrom(ex:d; ex:e2, ex:e1)
+bundle uuid:06
+ entity(ex:report1, [prov:type="report", ex:version=1])
+ wasGeneratedBy(ex:g1; ex:report1,-,2012-05-24T10:00:01)
+ entity(ex:report2, [prov:type="report", ex:version=2])
+ wasGeneratedBy(ex:g2; ex:report2,-,2012-05-25T11:00:01)
+ wasDerivedFrom(ex:d; ex:report2, ex:report1)
+endBundle
+entity(uuid:06, [ prov:type='prov:Bundle' ])
+wasAttributedTo(uuid:06, ex:Observer)
+</pre>
+Bundle <span class="name">uuid:06</span> is rendered by a visualisation tool. It may useful for the tool configuration for this bundle to be shared along with the provenance descriptions, so that other users can render provenance as it was originally rendered. The original bundle obviously cannot be changed. However, one can create a new bundle, as follows.
+<pre class="codeexample">
+bundle uuid:07
+ entity(uuid:07, [ prov:type='viz:Configuration', prov:type='prov:Bundle' ])
+ wasAttributedTo(uuid:07, viz:Visualizer)
+
+ entity(ex:report1, [viz:color="orange"])
+ hasProvenanceIn(ex:report1, uuid:06, -, -, -)
+
+ entity(ex:report2, [viz:color="blue"])
+ hasProvenanceIn(ex:report2, uuid:06, -, -, -)
+
+ wasDerivedBy(ex:d; ex:report2, ex:report1, [viz:style="dotted"])
+ hasProvenanceIn(ex:d, uuid:06, -, -, -)
endBundle
</pre>
-Bundle <span class="name">uuid:04</span> is rendered by a visualisation tool. It may useful for the tool configuration for this bundle to be shared along with the provenance descriptions, so that other users can render provenance as it was originally rendered. The original bundle obviously cannot be changed. However, one can create a new bundle, as follows.
-<pre class="codeexample">
-bundle uuid:05
- entity(uuid:05,[prov:type='viz:Configuration'])
- wasAttributedTo(uuid:05,viz:Visualizer)
-
- entity(ex:e1, [viz:color="orange"])
- hasProvenanceIn(ex:e1, uuid:04)
- entity(ex:e2, [viz:color="blue"])
- hasProvenanceIn(ex:e2, uuid:04)
+<p>In bundle <span class="name">uuid:07</span>, the prefix <span class="name">viz</span> is used for naming visualisation-specific attributes, types or values.</p>
- wasDerivedBy(ex:d; ex:e2, ex:e1, [viz:style="dotted"])
- hasProvenanceIn(ex:d, uuid:04)
-endBundle
-</pre>
-In bundle <span class="name">uuid:05</span>, the prefix <span class="name">viz</span> is used for naming visualisation-specific attributes, types or values.</p>
-<p>Bundle <span class="name">uuid:05</span> is given type <span class="name">viz:Configuration</span> to indicate it consists of descriptions that pertain to the configuration of the visualisation tool.
-<p>Specialisations of the entities <span class="name">ex:e1</span> and <span class="name">ex:e2</span> have a visualisation attribute for the color to be used when rendering these entities.
-Likewise, the derivation has a style attribute. To be able to express this specialisation of the derivation, it is necessary for it to have an identifier in the first place (<span class="name">ex:d</span>).
+<p>Bundle <span class="name">uuid:07</span> is given type <span class="name">viz:Configuration</span> to indicate that it consists of descriptions that pertain to the configuration of the visualisation tool. This type attribute can be used for searching bundles containing visualization-related descriptions.
+</p>
+
+<p>Specializations of the entities <span class="name">ex:report1</span> and <span class="name">ex:report2</span> have a visualisation attribute for the color to be used when rendering these entities.
+Likewise, the derivation has a style attribute. To be able to express this specialization of the derivation, it is necessary for it to have an identifier in the first place (<span class="name">ex:d</span>).</p>
</div>
</section>
-
-
-
-</div>
-
-
-
-<div class="note">
-How can we define two specialisations of e1 from bundles 01 and 02 in the same bundle? We can use target attribute to identify the target resource as in PAQ.
-
-<pre>
- hasProvenanceIn(ex:e1, uuid:01)
- hasProvenanceIn(ex:e1_other, uuid:02, ex:e1)
-</pre>
-</div>
-
-<div class="note">
-Is it really a requirement that ex:d had to be predefined in 01? Yes.
-</div>
-
-
-<div class="anexample" id="anexample-bundle-tags">
-Give an example showing how bundles can be "tagged" by means of types.
</div>
</section>
- </section>
+</section>
@@ -706,9 +693,8 @@
<li>
<li>
-<div class="note">TO UPDATE
-</div
-<p>The idea of bundling provenance descriptions is crucial to the PROV approach. Indeed, it allows multiple provenance perspectives to be provided for a given entity. It is also the mechanism by which provenance of provenance can be expressed. Such a named bundle is referred to as an <dfn>account</dfn> and is regarded as an <a title="concept-account">Account</a> so that its provenance can be expressed. The notion of account is specified in the companion specification [[PROV-CONSTRAINTS]], as well as the constraints that <dfn>structurally well-formed</dfn> descriptions SHOULD satisfy.</p>
+<p>The idea of bundling provenance descriptions is crucial to the PROV approach. Indeed, it allows multiple provenance perspectives to be provided for a given entity. It is also the mechanism by which provenance of provenance can be expressed.
+Descriptions in bundles are expected to satisfy constraints specified in the companion specification [[PROV-CONSTRAINTS]].</p>
</li>