--- a/model/prov-dm.html Mon Apr 02 20:46:15 2012 +0100
+++ b/model/prov-dm.html Mon Apr 02 21:00:01 2012 +0100
@@ -1942,7 +1942,7 @@
<p>The intent of these relations and types is to express the <em>history of changes that occurred to a collection</em>.
Changes to collections are about the insertion of entities to collections and the removal of members from collections.
-Indirectly, such history provides a way to reconstruct, the contents of a collection.</p>
+Indirectly, such history provides a way to reconstruct the contents of a collection.</p>
<section id="term-collection">
<h3>Collection</h3>
@@ -1974,7 +1974,7 @@
<div class="anexample">
<pre class="codeexample">
-entity(c, [prov:type="EmptyCollection" %% xsd:QName]) // c is an empty collection
+entity(c0, [prov:type="EmptyCollection" %% xsd:QName]) // c0 is an empty collection
entity(c1, [prov:type="Collection" %% xsd:QName]) // c1 is a collection, with unknown content
</pre>
</div>
@@ -2017,19 +2017,19 @@
<div class="anexample">
<pre class="codeexample">
- entity(c, [prov:type="EmptyCollection" %% xsd:QName]) // c is an empty collection
- entity(e1)
- entity(e2)
- entity(e3)
- entity(c1, [prov:type="Collection" %% xsd:QName])
- entity(c2, [prov:type="Collection" %% xsd:QName])
-
- derivedByInsertionFrom(c1, c, {("k1", e1), ("k2", e2)})
- derivedByInsertionFrom(c2, c1, {("k3", e3)})
+entity(c0, [prov:type="EmptyCollection" %% xsd:QName]) // c0 is an empty collection
+entity(e1)
+entity(e2)
+entity(e3)
+entity(c1, [prov:type="Collection" %% xsd:QName])
+entity(c2, [prov:type="Collection" %% xsd:QName])
+
+derivedByInsertionFrom(c1, c0, {("k1", e1), ("k2", e2)})
+derivedByInsertionFrom(c2, c1, {("k3", e3)})
</pre>
From this set of descriptions, we conclude:
<pre class="codeexample">
- c = { }
+ c0 = { }
c1 = { ("k1", e1), ("k2", e2) }
c2 = { ("k1", e1), ("k2", e2), ("k3", e3) }
</pre>
@@ -2039,20 +2039,20 @@
<div class="anexample">
<pre class="codeexample">
- entity(c, [prov:type="EmptyCollection" %% xsd:QName]) // c is an empty collection
- entity(e1)
- entity(e2)
- entity(e3)
- entity(c1, [prov:type="Collection" %% xsd:QName])
- entity(c2, [prov:type="Collection" %% xsd:QName])
-
- derivedByInsertionFrom(c1, c, {("k1", e1), ("k2", e2)})
- derivedByInsertionFrom(c2, c1, {("k1", e3)})
+entity(c0, [prov:type="EmptyCollection" %% xsd:QName]) // c0 is an empty collection
+entity(e1)
+entity(e2)
+entity(e3)
+entity(c1, [prov:type="Collection" %% xsd:QName])
+entity(c2, [prov:type="Collection" %% xsd:QName])
+
+derivedByInsertionFrom(c1, c0, {("k1", e1), ("k2", e2)})
+derivedByInsertionFrom(c2, c1, {("k1", e3)})
</pre>
This is a case of <em>update</em> of <span class="name">e1</span> to <span class="name">e3</span> for the same key, <span class="name">"k1"</span>. <br/>
From this set of descriptions, we conclude:
<pre class="codeexample">
- c = { }
+ c0 = { }
c1 = { ("k1", e1), ("k2", e2) }
c2 = { ("k1", e3), ("k2", e2) }
</pre>
@@ -2085,20 +2085,20 @@
<div class="anexample">
<pre class="codeexample">
- entity(c, [prov:type="EmptyCollection"]) // c is an empty collection
- entity(e1)
- entity(e2)
- entity(e3)
- entity(c1, [prov:type="Collection"])
- entity(c2, [prov:type="Collection"])
-
- derivedByInsertionFrom(c1, c, {("k1", e1), ("k2",e2)})
- derivedByInsertionFrom(c2, c1, {("k3", e3)})
- derivedByRemovalFrom(c3, c2, {k1, k3})
+entity(c0, [prov:type="EmptyCollection"]) // c0 is an empty collection
+entity(e1)
+entity(e2)
+entity(e3)
+entity(c1, [prov:type="Collection"])
+entity(c2, [prov:type="Collection"])
+
+derivedByInsertionFrom(c1, c0, {("k1", e1), ("k2",e2)})
+derivedByInsertionFrom(c2, c1, {("k3", e3)})
+derivedByRemovalFrom(c3, c2, {"k1", "k3"})
</pre>
From this set of descriptions, we conclude:
<pre class="codeexample">
- c = { }
+ c0 = { }
c1 = { ("k1", e1), ("k2", e2) }
c2 = { ("k1", e1), ("k2", e2), ("k3", e3) }
c3 = { ("k2", e2) }
@@ -2130,31 +2130,29 @@
</ul>
</div>
-<p>The description <span class="name">memberOf(c, {(key_1, e_1), ..., (key_n, e_n)})</span> states that <span class="name">c</span> is known to include <span class="name">(key_1, e_1)</span>, ..., <span class="name">(key_n, e_n)}</span>, without having to introduce an initial state. <br/>
-
-
+<p>The description <span class="name">memberOf(c, {(key_1, e_1), ..., (key_n, e_n)})</span> states that <span class="name">c</span> is known to include <span class="name">(key_1, e_1)</span>, ..., <span class="name">(key_n, e_n)}</span>, without having to introduce a previous state. </p>
<div class="anexample">
<pre class="codeexample">
- entity(c, [prov:type="Collection"]) // e is a collection, with unknown content
- activity(a)
- wasGeneratedBy(c,a) // a produced c
-
- entity(e1)
- entity(e2)
- memberOf(c, {("k1", e1), ("k2", e2)} )
-
- entity(e3)
- entity(c1, [prov:type="Collection"])
-
- derivedByInsertionFrom(c1, c, {("k3", e3)})
+entity(c, [prov:type="prov:Collection" %% xsd:QName]) // c is a collection, with unknown content
+activity(a)
+wasGeneratedBy(c,a) // a produced c
+
+entity(e1)
+entity(e2)
+memberOf(c, {("k1", e1), ("k2", e2)} )
+
+entity(e3)
+entity(c1, [prov:type="prov:Collection" %% xsd:QName])
+
+derivedByInsertionFrom(c1, c, {("k3", e3)})
</pre>
From this set of assertions, we conclude:
<pre class="codeexample">
c contains ("k1", e1), ("k2", e2)
c1 contains ("k1", e1), ("k2", e2), ("k3", v3)
</pre>
- Note that the state of <span class="name">c1</span> with these relations is only partially known, because the initial state of <span class="name">c</span> is unknown.
+ Note that the state of <span class="name">c1</span> with these relations is only partially known, because the state of <span class="name">c</span> is unknown.
</div>
<!-- To go to part 2