constraints
authorLuc Moreau <l.moreau@ecs.soton.ac.uk>
Wed, 15 Feb 2012 10:02:39 +0000
changeset 1563 a6f55a6a9766
parent 1562 0ae4475e44b2
child 1564 bb280fb10877
constraints
model/working-copy/prov-dm-constraints.html
--- a/model/working-copy/prov-dm-constraints.html	Wed Feb 15 09:58:44 2012 +0000
+++ b/model/working-copy/prov-dm-constraints.html	Wed Feb 15 10:02:39 2012 +0000
@@ -1074,94 +1074,7 @@
 <section id="term-Collection">
 <h3>Collections</h3>
 
-<div class='issue'>
-Section in flux to address
-various comments about collections: 
-<a href="http://www.w3.org/2011/prov/track/issues/135">ISSUE-135</a>,
-<a href="http://www.w3.org/2011/prov/track/issues/135">ISSUE-136</a>,
-<a href="http://www.w3.org/2011/prov/track/issues/135">ISSUE-137</a>,
-<a href="http://www.w3.org/2011/prov/track/issues/135">ISSUE-138</a>
-<a href="http://www.w3.org/2011/prov/track/issues/135">ISSUE-139</a>
-</div>
-
-<ul>
-
-  <li> One can have multiple assertions regarding the state of a collection following a <em>set</em> of insertions, for example:<br/>
-<span class="name">CollectionAfterInsertion(c2,c1, k1, v1)</span><br/>
-<span class="name">CollectionAfterInsertion(c2,c1, k2, v2)</span><br/>
-  <span class="name">...</span><br/>
-This is interpreted as <em>" <span class="name">c2</span> is the state that results from inserting  <span class="name">(k1, v1)</span>,  <span class="name">(k2, v2)</span> etc. into  <span class="name">c1</span></em></li>
-  
-<li> It is possible to have multiple derivations from a single root collection, possibly by different asserters, as shown in the following example.
-
-<div class="anexample">
-<pre class="codeexample">
-  entity(c, [prov:type="EmptyCollection"])    // e is an empty collection
-  entity(k1)
-  entity(v1)
-  entity(k2)
-  entity(v2)
-  entity(k3)
-  entity(v3)
-  entity(c1, [prov:type="Collection"])
-  entity(c2, [prov:type="Collection"])
-  entity(c3, [prov:type="Collection"])
-  
-  CollectionAfterInsertion(c1, c, k1, v1)       // c1 = { (k1,v1) }
-  CollectionAfterInsertion(c2, c, k2, v2)       // c2 = { (k2 v2) }
-  CollectionAfterInsertion(c3, c1, k3,v3)       // c3 = { (k1,v1),  (k3,v3) }
-</pre>
-</div>
-</li>
-
-<li>Both relations are functional, in the sense that they represent a state change following a unique insertion/removal operation (or a unique set of them). Thus, from the pair of assertions:
-
-<span class="name">CollectionAfterInsertion(c, c1, k1, v1)</span><br/>
-<span class="name">CollectionAfterInsertion(c, c2, k2, v2)</span><br/>
-
-one can infer: <span class="name">c1==c2, k1==k2, v1==v2</span>, because one cannot have two different derivations for the same final collection state.</li>
-
-<li>The following set of insertions:<br/>
-
-<span class="name">CollectionAfterInsertion(c1, c, k, v1)</span><br/>
-<span class="name">CollectionAfterInsertion(c1, c, k, v2)</span><br/>
-
-entails  <span class="name">v1==v2</span>.</li>
-
-
-<li> The state of a collection is only known to the extent that a chain of derivations starting from an empty collection can be found. It is understood that a set of assertions regarding a collection's evolution may be incomplete, and therefore so is the reconstructed state obtained by querying those assertions. In general, all assertions reflect the asserter's partial knowledge of a sequence of data transformation events. In the particular case of collection evolution, in which the asserter  <em>knows</em> that some of the state changes may have been missed, then the more generic <span class="name">wasDerivedFrom</span> relation should be used to signal that some updates may have occurred, which cannot be precisely asserted as insertions or removals. The following two examples illustrate this.
-
-<div class="anexample">
-<pre class="codeexample">
-  entity(c, [prov:type="collection"])    // e is a collection, possibly not empty
-  entity(k1)
-  entity(v1)
-  entity(k2)
-  entity(v2, [prov:type="collection"])    // v2 is a collection
-
-  CollectionAfterInsertion(c1, c, k1, v1)       // c1 <em>includes</em> { (k1,v1) } but may contain additional unknown pairs
-  CollectionAfterInsertion(c2, c1, k2, v2)      // c2 includes { (k1,v1), (k2 v2) } where v2 is a collection with unknown state
-</pre>
-</div>
-  In the example, the state of <span class="name">c2</span> is only partially known because the collection is constructed from partially known other collections.
-
-<div class="anexample">
-<pre class="codeexample">
-  entity(c, [prov:type="emptyCollection"])    // e is an empty collection
-  entity(k1)
-  entity(v1)
-  entity(k2)
-  entity(v2)
-
-  CollectionAfterInsertion(c1, c, k1, v1)       // c1 = { (k1,v1) }
-  wasDerivedFrom(c2, c1)                        // the asserted knows that c2 is somehow derived from c1, but cannot assert the precise sequence of updates
-    CollectionAfterInsertion(c3, c2, k2, v2)       
-</pre>
-</div>
-Here  <span class="name">c3</span> includes <span class="name">{ (k2 v2) }</span> but the earlier "gap" leaves uncertainty regarding  <span class="name">(k1,v1)</span>  (it may have been removed) or any other pair that may have been added as part of the derivation activities.
-
-</ul>
-
+<p>Nothing specific, here, everything in Collection constraint section</p>
 
 </section>