bundles
authorLuc Moreau <l.moreau@ecs.soton.ac.uk>
Sat, 05 May 2012 08:51:35 +0100
changeset 2709 ddb366e60e85
parent 2708 6c4707f9fdaf
child 2710 efe4382ec7b1
bundles
model/working-copy/wd6-bundle.html
--- a/model/working-copy/wd6-bundle.html	Fri May 04 11:01:23 2012 +0200
+++ b/model/working-copy/wd6-bundle.html	Sat May 05 08:51:35 2012 +0100
@@ -454,56 +454,36 @@
 <li><span class='attribute' id="bundle.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 it lacks an identifier, a default bundle cannot be described, and cannot be associated with some provenance descriptions. Default bundles are provided for convenience, when provenance of provenance does not have to be expressed.</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. Default bundles are simply a packaging mechanism for provenance descriptions when provenance of provenance does not have to be expressed.</p>
 </section>
 
 
 
 
-<section id="term-hasProvenanceIn"> 
 
-<h3>Provenance Locator</h3>
+<section id="term-bundle-entity"> 
 
-<p><div class="glossary-ref" data-ref="glossary-provenance-locator"></div></p>
+<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>
+
+PROV defines the following type for bundles:
+<ul>
+<li><span class="name">prov:Bundle</name> denotes a bundle.
+</ul>
 
 
-<div class="attributes" id="attributes-hasProvenanceIn">
-A <dfn title="hasProvenanceIn">provenance locator</dfn>,
-written
-<span class="pnExpression">hasProvenance(id, subject, bundle, target, service, prov, attrs)</span>, has:
-<ul>
-<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 a subject (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.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, b, s, p)</span>, <span class="name">s</span> and <span class="name">p</span> are both optional and mutually exclusive: if specified, either <span class="name">s</span> or <span class="name">p</span> is provided.</p>
-</div>
-
-<p>A provenance locator not only provides information about the location of provenance descriptions, it also defines a <a>specialization</a> relation between the entity identified by <span class="name">id</span> and the eponym entity described where indicated by the provenance locator. 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>
-
-<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>
-<pre class="codeexample"> 
-hasProvenanceIn(ex:e1, 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>
-<pre class="codeexample"> 
-hasProvenanceIn(ex:e1, 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>
-<pre class="codeexample"> 
-hasProvenanceIn(ex:e1, -, -, "http://example.com/some-provenance.pn"^xsd:anyURI)
-</pre>
+<div class="anexample" id="anexample-bundle-description">
+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>
 
 
-<div class="anexample" id="anexample-provenance-locator2">
+<p>The provenance of provennace 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>
 <pre class="codeexample"> 
 entity(ex:e1,[prov:type="report", ex:version=1])
@@ -528,72 +508,27 @@
 <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)
 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>
-
-</div>
-</section>
-
-
-<section id="term-bundle-entity"> 
-
-<h3>Bundle Description</h3>
-
-<p>A bundle is an entity so that its provenance can be described.  </p>
 
-<div class="attributes" id="attributes-bundle-entity">
- A <dfn title="dfn-bundle-description" id="dfn-bundle-description">bundle description</dfn>,
-written
-<span class="pnExpression">entity(id,[prov:type='prov:Bundle', attr1=val1, ...])</span>, has
-<ul>
-<li><span class='attribute' id="bundle.entity.id">id</span>:  an identifier denoting a bundle;</li>
-<li><span class='attribute' id="bundle.entity.attributes">attributes</span>: 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.</li>
-</ul>
-</div>
-
-
-
-
-<div class="anexample" id="anexample-provenance-of-provenance">
-<p>We revisit the example <a href="anexample-provenance-locator2">anexample-provenance-locator2</a> and describe the provenance of the two bundles.</p>
-
-<p>A 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:e1</span>. Its provenance can be described.</p>
 <pre class="codeexample"> 
-bundle uuid:01
-  entity(ex:e1,[prov:type="report", ex:version=1])
-  wasGeneratedBy(ex:e1,-,2012-05-24)
-end
 entity(uuid:01, [prov:type='prov:Bundle'])
 wasGeneratedBy(uuid:01,-, 2012-05-24)
 wasAttributedTo(uuid:01,ex:Bob)
 </pre>
 
 <p>In contrast, the second bundle is attributed to Alice who
-Alice observed the creation of <span class="name">ex:e2</span> and its derivation from <span class="name">ex:e1</span>.</p>
+observed the derivation of <span class="name">ex:e2</span> from <span class="name">ex:e1</span>.</p>
 <pre class="codeexample"> 
-bundle uuid:02
-  entity(ex:e1,[prov:hasProvenanceIn='uuid:01'])
-  entity(ex:e2,[prov:type="report", ex:version=2])
-  wasGeneratedBy(ex:e2,-,2012-05-25)
-  wasDerivedFrom(ex:e2,ex:e1)
-end
 entity(uuid:02, [prov:type='prov:Bundle'])
 wasGeneratedBy(uuid:02,-, 2012-05-25)
 wasAttributedBTo(uuid:02,ex:Bob)
 </pre>
 </div>
-</section>
-
-</div>
 
 <div class="anexample" id="anexample-provenance-aggregation">
 <p>A provenance aggretator could merge two bundles, resulting in a novel bundle, whose provenance is described as follows.</p>
@@ -615,29 +550,126 @@
 <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.
 </div>
 
+
+</section>
+
+<section id="term-hasProvenanceIn"> 
+
+<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>
+
+<p><div class="glossary-ref" data-ref="glossary-provenance-locator"></div></p>
+
+
+<div class="attributes" id="attributes-hasProvenanceIn">
+A <dfn title="hasProvenanceIn">provenance locator</dfn>,
+written
+<span class="pnExpression">hasProvenance(id, subject, bundle, target, service, prov, attrs)</span>, has:
+<ul>
+<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.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 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>
+
+<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>
+<pre class="codeexample"> 
+hasProvenanceIn(ex:e1, 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>
+<pre class="codeexample"> 
+hasProvenanceIn(ex:e1, 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>
+<pre class="codeexample"> 
+hasProvenanceIn(ex:e1, -, -, "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>
+<pre class="codeexample"> 
+bundle uuid:01
+  entity(ex:e1,[prov:type="report", ex:version=1])
+  wasGeneratedBy(ex:e1,-,2012-05-24)
+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>
+<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)
+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>
+
+</div>
+
 <div class="anexample" id="aexample-note">
-Consider that the bundle of descriptions uuid:02 (see example ...) 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>
+<p>Consider that the following bundle of descriptions
+<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)
+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:02)
+  hasProvenanceIn(ex:e1, uuid:04)
 
   entity(ex:e2, [viz:color="blue"])
-  hasProvenanceIn(ex:e2, uuid:02)
+  hasProvenanceIn(ex:e2, uuid:04)
 
   wasDerivedBy(ex:d; ex:e2, ex:e1, [viz:style="dotted"])
-  hasProvenanceIn(ex:d, uuid:02)
+  hasProvenanceIn(ex:d, uuid:04)
 endBundle
 </pre>
-In bundle uuid:05, the prefix viz is used for naming visualisation-specific attributes, types or values.</p>
-<p>Bundle uuid:05 is given type viz:Configuration to indicate it consists of descriptions that pertain to the configuration of the visualisation tool.
-<p>Specialisations of the entities ex:e1 and ex:e2 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 (ex:d).
+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>).
 </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.