--- a/dictionary/prov-dictionary.html Wed Dec 12 10:14:14 2012 -0700
+++ b/dictionary/prov-dictionary.html Thu Dec 13 14:54:16 2012 +0100
@@ -676,7 +676,27 @@
// This is optional, uncomment if you have authors as well as editors.
// only "name" is required. Same format as editors.
- authors: [ {name: "Orginal PROV-DM authors"}
+ authors: [
+ { name: "Paolo Missier", url: "http://www.cs.ncl.ac.uk/people/Paolo.Missier",
+ company: "Newcastle University" },
+ { name: "Luc Moreau", url: "http://www.ecs.soton.ac.uk/~lavm/",
+ company: "University of Southampton" },
+ { name: "James Cheney", url: "http://homepages.inf.ed.ac.uk/jcheney/",
+ company: "University of Edinburgh" },
+ { name: "Timothy Lebo", url: "http://tw.rpi.edu/instances/TimLebo",
+ company: "Rensselaer Polytechnic Institute" },
+ { name: "Stian Soiland-Reyes", url: "http://soiland-reyes.com/stian/",
+ company: "University of Manchester" },
+ { name: "Hook Hua",
+ company: "Jet Propulsion Laboratory / California Institute of Technology" },
+ { name: "Curt Tilmes",
+ company: "National Aeronautics and Space Administration" },
+ { name: "Stephan Zednik", url: "http://tw.rpi.edu/web/person/StephanZednik",
+ company: "Rensselaer Polytechnic Institute" },
+ { name: "Satya Sahoo", url: "http://cci.case.edu/cci/index.php/Satya_Sahoo",
+ company: " Case Western Reserve University" },
+ { name: "Deborah McGuinness", url: "http://tw.rpi.edu/instances/Deborah_L_McGuinness",
+ company: "Rensselaer Polytechnic Institute" },
],
// name of the WG
@@ -728,7 +748,7 @@
<li> <a href="http://www.w3.org/TR/2012/CR-prov-constraints-20121211/">PROV-CONSTRAINTS</a> (Candidate Recommendation), a set of constraints applying to the PROV data model [[PROV-CONSTRAINTS]];</li>
<li> <a href="http://www.w3.org/TR/2012/WD-prov-aq-20120619/">PROV-AQ</a> (To be published as Note), the mechanisms for accessing and querying provenance [[PROV-AQ]]; </li>
<li> <a href="http://www.w3.org/TR/2012/WD-prov-xml-20121211/">PROV-XML</a> (To be published as Note), an XML schema for the PROV data model [[PROV-XML]];</li>
-<li> <a href="http://www.w3.org/TR/2012/WD-prov-links-20121211/">PROV-LINKS</a> (To be published as Note), introduces a mechanism to link across bundles.</li>
+<li> <a href="http://www.w3.org/TR/2012/WD-prov-links-20121211/">PROV-LINKS</a> (To be published as Note), introduces a mechanism to link across bundles [[PROV-LINKS]];</li>
<li> <a href="#">PROV-DICTIONARY</a> (To be published as Note), introduces a specific type of collection, consisting of key-entity pairs (this document).</li>
</ul>
@@ -773,108 +793,9 @@
-<section id="data-model-components">
-
-<h2>Dictionary</h2>
-
-<p>Provenance concepts, expressed as PROV-DM types and relations, are organized according to six components that are defined in this section.
-The components and their dependencies are illustrated in <a href="#prov-dm-components">Figure 4</a>. A component that relies on concepts defined in another is displayed above it in the figure. So, for example, component 6 (collections) depends on concepts defined in component 3 (derivation), itself dependen on concepts defined in component 1 (entity and activity).
-</p>
-
-
-<section id="component6">
-<h3>Component 6: Collections</h3>
-
-<p>The sixth component of PROV-DM is concerned with the notion of collections.
-A collection is an entity that has some members. The members are themselves entities, and therefore their provenance can be expressed. Some applications need to be able to express the provenance of the collection itself: e.g. who maintains the collection (attribution), which members it contains as it evolves, and how it was assembled. The purpose of Component 6 is to define the types and relations that are useful to express the provenance of collections. In PROV, the concept of Collection is implemented by means of dictionaries, which we introduce in this section. </p>
-
-<p><a href="#figure-component6">Figure 10</a> depicts
-the sixth component with four new classes (Collection, Dictionary, EmptyDictionary, and Pair) and three associations (insertion, removal, and memberOf).
-</p>
-
-
-<div style="text-align: center;">
-<figure>
-<!-- <img src="images/Dictionaries.png" alt="dictionaries"/> -->
-<img src="uml/Component-Dictionary.png" alt="dictionaries"/>
-
-<figcaption id="figure-component6">Figure 10: Collections Component Overview</figcaption>
-</figure>
-</div>
-
-
-<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 into, and the removal of entities from the collection.
-Indirectly, such history provides a way to reconstruct the contents of the collection.</p>
-
-<section id="term-collection">
-<h3>Collection</h3>
-
-<span class="glossary-ref" data-ref="glossary-collection"></span>
-
-<p>A collection is a multiset of entities (it is a multiset, rather than a set, because it may not be possible to verify that two distinct entity identitifiers do not denote, in fact, the same entity).</p>
-
-<span class="glossary-ref" data-ref="glossary-empty-collection"></span>
-
-
-<p>PROV-DM defines the following types related to collections:</p>
-
-<ul>
- <li> <span class="name">prov:Collection</span> denotes an entity of type Collection, i.e. an entity that can participate in relations amongst collections;
-
- <li><span class="name">prov:EmptyCollection</span> denotes an empty collection.
-</ul>
-
-
-<div class="anexample">
-<pre class="codeexample">
-entity(c0, [prov:type='prov:EmptyCollection' ]) // c0 is an empty collection
-entity(c1, [prov:type='prov:Collection' ]) // c1 is a collection, with unknown content
-</pre>
-</div>
-
-<p>In PROV, the concept of Collection is provided as an extensibility point for specialized kinds of collections. One of these, Dictionary, is defined next. </p>
-
-</section>
-
-<section id="term-collection-membership">
-<h3>Collection Memberhsip</h3>
-
-<p>A <strong>collection membership</strong> relation is defined, to allow stating the members of a Collection. </p>
-
-<span class="glossary-ref" data-ref="glossary-collection-membership"></span>
-
-
-<p>
-<div class="attributes" id="attributes-memberOf">
- A <dfn title="memberOf">membership</dfn> relation, written <span class="pnExpression">memberOf(id; c, {e_1, ..., e_n}, cplt, attrs)</span>, has:
-<ul>
-<li><span class='attribute' id="membership.id">id</span>: an OPTIONAL identifier identifying the relation;</li>
-<li><span class='attribute' id="membership.collection">collection</span>: an identifier (<span class="name">c</span>) for the collection whose members are asserted; </li>
-<li><span class='attribute' id="membership.entity-set">entity-set</span>: a set of entities <span class="name">e_1</span>, ..., <span class="name">e_n</span> that are members of the collection;</li>
-<li><span class='attribute' id="membership.complete">complete</span>: an OPTIONAL boolean
-<a title="value">Value</a> (<span class="name">cplt</span>). It is interpreted as follows:
-<ul>
-<li>if it is present and set to true, then c is believed to include all and only the members specified in the entity-set;
-<li>if it is present and set to false, then c is believed to include more members in addition to those specified in the entity-set;
-<li>if it is not present, then c is believed to include all the members specified in the entity-set, and it MAY include more.
-</ul>
-
-<li><span class='attribute' id="membership.attributes">attributes</span>: an OPTIONAL set (<span class="name">attrs</span>) of attribute-value pairs representing additional information about this relation.</li>
-</ul>
-
-</div>
-
-<p id="complete-attribute-note">
-Note that the attribute <a href="#membership.complete">complete</a> indicates that the <a title="memberOf">membership</a> relation provides a complete description of the collection membership. It is possible for different provenance descriptions to provide different membership statements regarding the same collection. The resolution of any potential conflict amongst such membership statements is defined by applications.</p>
-
-
-</section>
-
-<section id="term-dictionary">
-<h3>Dictionary</h3>
-
-<p>PROV-DM defines a specific type of collection, specified as follows.</p>
+<section id="dictionary-conceptual-definition">
+<h2>Conceptual Definition of Dictionary</h2>
+<p>In this section a specific type of collection, as specified in [[PROV-DM]], is introduced. This new type of collection, Dictionary, is specified as follows.</p>
<span class="glossary-ref" data-ref="glossary-dictionary"></span>
@@ -892,9 +813,9 @@
<p>Following the earlier definitions for generic collections, PROV-DM defines the following types related to dictionaries:</p>
<ul>
- <li> <span class="name">prov:Dictionary</span> is a subtype of <span class="name">prov:Collection</span>. It denotes an entity of type dictionary, i.e. an entity that can participate in relations amongst dictionaries;
-
- <li><span class="name">prov:EmptyDictionary</span> is a subtype of <span class="name">prov:EmptyCollection</span>. It denotes an empty dictionary.
+ <li> <span class="name">prov:Dictionary</span> is a subtype of <span class="name">prov:Collection</span>. It denotes an entity of type dictionary, i.e. an entity that can participate in relations amongst dictionaries;</li>
+
+ <li><span class="name">prov:EmptyDictionary</span> is a subtype of <span class="name">prov:EmptyCollection</span>. It denotes an empty dictionary.</li>
</ul>
@@ -905,36 +826,27 @@
</pre>
</div>
-</section> <!-- end of dictionary-types -->
<section id="term-dictionary-membership">
<h3>Dictionary Membership</h3>
-
<span class="glossary-ref" data-ref="glossary-dictionary-membership"></span>
-The <strong>dictionary membership</strong> has the same purpose as the <a href="#term-collection-membership">collection membership</a> relation, but it applies to entities having <span class="name">prov:type = 'prov:Dictionary'</span>. It allows stating the members of a Dictionary.
-
-<!--
-<p>
-The insertion and removal relations make insertions and removals explicit as part of the history of a dictionary. This, however, requires explicit reference to the dictionary that existed prior to each operation. The membership relation removes this need, allowing the membership of a dictionary to be expressed without having to introduce a prior dictionary.</p>
--->
-
-<p>
-<div class="attributes" id="attributes-memberOf-d">
- A <dfn title="memberOf-d">membership</dfn> relation, written <span class="pnExpression">memberOf(id; c, {(key_1, e_1), ..., (key_n, e_n)}, cplt, attrs)</span>, has:
+<p>The <strong>dictionary membership</strong> has the same purpose as the <a href="#term-collection-membership">collection membership</a> relation, but it applies to entities having <span class="name">prov:type = 'prov:Dictionary'</span>. It allows stating the members of a Dictionary.</p>
+
+<div class="attributes" id="attributes-hadMember-d">
+ A <dfn title="hadMember-d">membership</dfn> relation, written <span class="pnExpression">hadMember(id; c, {(key_1, e_1), ..., (key_n, e_n)}, cplt, attrs)</span>, has:
<ul>
<li><span class='attribute' id="membership-d.id">id</span>: an OPTIONAL identifier identifying the relation;</li>
<li><span class='attribute' id="membership-d.dictionary">dictionary</span>: an identifier (<span class="name">c</span>) for the dictionary whose members are asserted; </li>
<li><span class='attribute' id="membership-d.key-entity-set">key-entity-set</span>: a set of key-entity pairs <span class="name">(key_1, e_1)</span>, ..., <span class="name">(key_n, e_n)</span> that are members of the dictionary;</li>
-<li><span class='attribute' id="membership-d.complete">complete</span>: an OPTIONAL boolean
-<a title="value">Value</a> (<span class="name">cplt</span>). It is interpreted as follows:
+<li><span class='attribute' id="membership-d.complete">complete</span>: an OPTIONAL boolean <a title="value">Value</a> (<span class="name">cplt</span>). It is interpreted as follows:
<ul>
-<li>if it is present and set to true, then c is believed to include all and only the members specified in the key-entity-set;
-<li>if it is present and set to false, then c is believed to include more members in addition to those specified in the key-entity-set;
-<li>if it is not present, then c is believed to include all the members specified in the key-entity-set, and it MAY include more.
+<li>if it is present and set to true, then c is believed to include all and only the members specified in the key-entity-set;</li>
+<li>if it is present and set to false, then c is believed to include more members in addition to those specified in the key-entity-set;</li>
+<li>if it is not present, then c is believed to include all the members specified in the key-entity-set, and it MAY include more.</li>
</ul>
-
+</li>
<!-- if true, it indicates that no other member belongs to the dictionary; if false, it indicates that other members belong to the dictionary; if unspecified, other members MAY belong to the dictionary; -->
<li><span class='attribute' id="membership-d.attributes">attributes</span>: an OPTIONAL set (<span class="name">attrs</span>) of attribute-value pairs representing additional information about this relation.</li>
</ul>
@@ -943,7 +855,7 @@
<p id="complete-attribute-note-d">
The attribute <a href="#membership-d.complete">complete</a> is interpreted as for the general <a href="#term-collection">collection membership</a> relation.
-
+</p>
<div class="anexample">
<pre class="codeexample">
entity(d1, [prov:type='prov:Dictionary' ]) // d1 is a dictionary, with unknown content
@@ -952,19 +864,19 @@
entity(e1)
entity(e2)
-memberOf(d1, {("k1", e1), ("k2", e2)} )
-memberOf(d2, {("k1", e1), ("k2", e2)}, true)
+hadMember(d1, {("k1", e1), ("k2", e2)} )
+hadMember(d2, {("k1", e1), ("k2", e2)}, true)
</pre>
From these descriptions, we conclude:
<ul>
-<li> <span class="name">d1</span> has the following pairs as members: <span class="name">("k1", e1), ("k2", e2)</span>, and may contain others.
-<li> <span class="name">d2</span> exactly has the following pairs as members: <span class="name">("k1", e1), ("k2", e2)</span>, and does not contain any other.
+<li> <span class="name">d1</span> has the following pairs as members: <span class="name">("k1", e1), ("k2", e2)</span>, and may contain others.</li>
+<li> <span class="name">d2</span> exactly has the following pairs as members: <span class="name">("k1", e1), ("k2", e2)</span>, and does not contain any other.</li>
</ul>
<p> Thus, the membership of <span class="name">d1</span> is only partially known.</p>
</div>
-</section> <!-- Membership -->
+</section> <!-- end membership -->
<section id="term-dictionary-insertion">
@@ -972,7 +884,7 @@
<span class="glossary-ref" data-ref="glossary-insertion"></span>
-<p><div class="attributes" id="attributes-derivedByInsertionFrom">
+<div class="attributes" id="attributes-derivedByInsertionFrom">
<p>An <dfn title="derivedByInsertionFrom">Insertion</dfn> relation<span class="withPn">, written <span class="pnExpression">derivedByInsertionFrom(id; d2, d1, {(key_1, e_1), ..., (key_n, e_n)}, attrs)</span>,</span> has:</p>
<ul>
<li><span class='attribute' id="insertion.id">id</span>: an OPTIONAL identifier identifying the relation;</li>
@@ -1004,9 +916,9 @@
</pre>
From this set of descriptions, we conclude:
<ul>
-<li> <span class="name">d0</span> is the set <span class="name">{ }</span>
-<li> <span class="name">d1</span> is the set <span class="name">{ ("k1", e1), ("k2", e2) }</span>
-<li> <span class="name">d2</span> is the set <span class="name">{ ("k1", e1), ("k2", e2), ("k3", e3) }</span>
+<li> <span class="name">d0</span> is the set <span class="name">{ }</span> </li>
+<li> <span class="name">d1</span> is the set <span class="name">{ ("k1", e1), ("k2", e2) }</span> </li>
+<li> <span class="name">d2</span> is the set <span class="name">{ ("k1", e1), ("k2", e2), ("k3", e3) }</span> </li>
</ul>
</div>
@@ -1028,13 +940,13 @@
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:
<ul>
-<li> <span class="name">d0</span> is the set <span class="name">{ }</span>
-<li> <span class="name">d1</span> is the set <span class="name">{ ("k1", e1), ("k2", e2) }</span>
-<li> <span class="name">d2</span> is the set <span class="name">{ ("k1", e3), ("k2", e2) }</span>
+<li> <span class="name">d0</span> is the set <span class="name">{ }</span> </li>
+<li> <span class="name">d1</span> is the set <span class="name">{ ("k1", e1), ("k2", e2) }</span> </li>
+<li> <span class="name">d2</span> is the set <span class="name">{ ("k1", e3), ("k2", e2) }</span> </li>
</ul>
</div>
-</section> <!-- insertion -->
+</section> <!-- end insertion -->
<section id="term-dictionary-removal">
@@ -1043,7 +955,6 @@
<span class="glossary-ref" data-ref="glossary-removal"></span>
-<p>
<div class="attributes" id="attributes-derivedByRemovalFrom">
<p> A <dfn title="derivedByRemovalFrom">Removal</dfn> relation, written <span class="pnExpression">derivedByRemovalFrom(id; d2, d1, {key_1, ... key_n}, attrs)</span>, has:</p>
<ul>
@@ -1056,6 +967,7 @@
</div>
<p>A Removal relation <span class="name">derivedByRemovalFrom(id; d2,d1, {key_1, ..., key_n})</span> states that <span class="name">d2</span> is the dictionary following the removal of the set of pairs corresponding to keys <span class="name">key_1...key_n</span> from <span class="name">d1</span>.
+</p>
<div class="anexample">
<pre class="codeexample">
@@ -1072,42 +984,32 @@
</pre>
From this set of descriptions, we conclude:
<ul>
-<li><span class="name">d0</span> is the set <span class="name">{ }</span>
-<li><span class="name">d1</span> is the set <span class="name">{ ("k1", e1), ("k2", e2) }</span>
-<li><span class="name">d2</span> is the set <span class="name">{ ("k1", e1), ("k2", e2), ("k3", e3) }</span>
-<li><span class="name">d3</span> is the set <span class="name">{ ("k2", e2) }</span>
+<li><span class="name">d0</span> is the set <span class="name">{ }</span> </li>
+<li><span class="name">d1</span> is the set <span class="name">{ ("k1", e1), ("k2", e2) }</span> </li>
+<li><span class="name">d2</span> is the set <span class="name">{ ("k1", e1), ("k2", e2), ("k3", e3) }</span> </li>
+<li><span class="name">d3</span> is the set <span class="name">{ ("k2", e2) }</span> </li>
</ul>
-
-
</div>
-</section> <!-- removal -->
+</section> <!-- end removal -->
<p>Further considerations: </p>
<ul>
-
-<!--
-<li>The state of a dictionary (i.e., the set of key-entity pairs it contains) at a given point in a sequence of operations is never stated explicitly. Rather, it can be obtained by querying the chain of derivations involving insertions and removals. Entity type <span class="name">emptyDictionary</span> can be used in this context as it marks the start of a sequence of dictionary operations.</li>
--->
-
<li>The representation of a dictionary through these relations makes no assumption regarding the underlying data structure used to store and manage dictionaries. In particular, no assumptions are needed regarding the mutability of a data structure that is subject to updates. Entities, however, are immutable and this applies to those entities that represent dictionaries. This is reflected in the constraints listed in [[PROV-CONSTRAINTS]]. </li>
</ul>
-
-</section> <!-- end dictionaries-->
-</section>
-<section>
-<h2>PROV Notation</h2>
-
+</section> <!-- end conceptual definition dictionary -->
+
+<section id="dictionary-notation">
+<h2>PROV-N Notation of Dictionary Concepts</h2>
<section id="expression-collection-membership">
<h3>Membership</h3>
-<!--
<div class="grammar">
<span class="nonterminal">membershipExpression</span> ::=
-<span class="name">isMemberOf</span>
+<span class="name">hadMember</span>
<span class="name">(</span>
<span class="optional"><span class="nonterminal">identifier</span>
<span class="name">,</span></span>
@@ -1120,14 +1022,6 @@
<span class="name">)</span>
<br>
</div>
--->
-
-<table class="grammar">
-<tbody class="grammar-ref" data-ref="prod-dictMembershipExpression"></tbody>
-<tbody class="grammar-ref" data-ref="prod-complete"></tbody>
-<tbody class="grammar-ref" data-ref="prod-entitySet"></tbody>
-</table>
-
<p>The following table summarizes how each constituent of a PROV-DM Membership maps to a non-terminal.</p>
@@ -1136,15 +1030,15 @@
<tr><td><b>Dictionary Membership</b></td><td><b>Non-Terminal</b></td></tr>
<tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td></tr>
-<tr><td><a href="http://www.w3.org/TR/prov-dm/#membership-d.id"><span class='attribute' id="membership-d.id">id</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-optionalIdentifier">optionalIdentifier</a></code></td></tr>
-
-<tr><td><a href="http://www.w3.org/TR/prov-dm/#membership-d.dictionary"><span class='attribute' id="membership-d.dictionary">dictionary</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-dIdentifier">dIdentifier</a></code></td></tr>
-
-<tr><td><a href="http://www.w3.org/TR/prov-dm/#membership-d.key-entity-set"><span class='attribute' id="membership-d.key-entity-set">key-entity-set</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-keyEntitySet">keyEntitySet</a></code></td></tr>
-
-<tr><td><a href="http://www.w3.org/TR/prov-dm/#membership-d.complete"><span class='attribute' id="membership-d.complete">complete</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-complete">complete</a></code></td></tr>
-
-<tr><td><a href="http://www.w3.org/TR/prov-dm/#membership-d.attributes"><span class='attribute' id="membership-d.attributes">attributes</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-optionalAttributeValuePairs">optionalAttributeValuePairs</a></code></td></tr>
+<tr><td><a href="http://www.w3.org/TR/prov-dm/#membership-d.id"><span class='attribute' id="provn-membership-d.id">id</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-optionalIdentifier">optionalIdentifier</a></code></td></tr>
+
+<tr><td><a href="http://www.w3.org/TR/prov-dm/#membership-d.dictionary"><span class='attribute' id="provn-membership-d.dictionary">dictionary</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-dIdentifier">dIdentifier</a></code></td></tr>
+
+<tr><td><a href="http://www.w3.org/TR/prov-dm/#membership-d.key-entity-set"><span class='attribute' id="provn-membership-d.key-entity-set">key-entity-set</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-keyEntitySet">keyEntitySet</a></code></td></tr>
+
+<tr><td><a href="http://www.w3.org/TR/prov-dm/#membership-d.complete"><span class='attribute' id="provn-membership-d.complete">complete</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-complete">complete</a></code></td></tr>
+
+<tr><td><a href="http://www.w3.org/TR/prov-dm/#membership-d.attributes"><span class='attribute' id="provn-membership-d.attributes">attributes</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-optionalAttributeValuePairs">optionalAttributeValuePairs</a></code></td></tr>
</table>
</div>
@@ -1152,8 +1046,8 @@
<div class="anexample">
<pre class="codeexample">
- memberOf(mId, c, {e1, e2, e3}, []) // Collection membership
- memberOf(mId, c, {("k4", v4), ("k5", v5)}, []) // Dictionary membership
+ hadMember(c, e1) // Collection membership
+ hadMember(mId, c, {("k4", v4), ("k5", v5)}, []) // Dictionary membership
</pre>
<p> Here
<span class="name">mid</span> is the optional membership identifier,
@@ -1164,25 +1058,20 @@
The remaining examples show cases for Dictionaries, where some of the optionals are omitted. Key-entity sets are replaced with Entity sets for the corresponding generic Collections examples.
<pre class="codeexample">
-memberOf(c3, {("k4", v4), ("k5", v5)})
-memberOf(c3, {("k4", v4)})
-memberOf(c3, {("k4", v4)}, false)
-memberOf(c3, {("k4", v4)}, true)
-memberOf(c3, {("k4", v4), ("k5", v5)},[])
-memberOf(c3, {("k4", v4), ("k5", v5)},true, [])
+hadMember(c3, {("k4", v4), ("k5", v5)})
+hadMember(c3, {("k4", v4)})
+hadMember(c3, {("k4", v4)}, false)
+hadMember(c3, {("k4", v4)}, true)
+hadMember(c3, {("k4", v4), ("k5", v5)},[])
+hadMember(c3, {("k4", v4), ("k5", v5)},true, [])
</pre>
</div>
-</section>
-
-
-
+</section> <!-- membership -->
<section id="expression-collection-insertion">
<h3>Insertion</h3>
-
-<!--
<div class="grammar">
- <span class="nonterminal">derivationByInsertionFromExpression</span> ::=
+ <span class="nonterminal">derivationByInsertionFromExpression</span> ::=
<span class="name">derivedByInsertionFrom</span>
<span class="name">(</span>
<span class="optional"><span class="nonterminal">identifier</span>
@@ -1197,12 +1086,6 @@
<span class="nonterminal">optional-attribute-values</span>
<span class="name">)</span>
</div>
--->
-
-<table class="grammar">
-<tbody class="grammar-ref" data-ref="prod-insertionExpression"></tbody>
-<tbody class="grammar-ref" data-ref="prod-keyEntitySet"></tbody>
-</table>
<p>The following table summarizes how each constituent of a PROV-DM Insertion maps to a non-terminal.</p>
@@ -1211,16 +1094,16 @@
<tr><td><b>Insertion</b></td><td><b>Non-Terminal</b></td></tr>
<tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td></tr>
-<tr><td><a href="http://www.w3.org/TR/prov-dm/#insertion.id"><span class='attribute' id="insertion.id">id</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-optionalIdentifier">optionalIdentifier</a></code></td></tr>
-
-<tr><td><a href="http://www.w3.org/TR/prov-dm/#insertion.after"><span class='attribute' id="insertion.after">after</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-cIdentifier">cIdentifier</a></code></td></tr>
-
-<tr><td><a href="http://www.w3.org/TR/prov-dm/#insertion.before"><span class='attribute' id="insertion.before">before</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-cIdentifier">cIdentifier</a></code></td></tr>
-
-
-<tr><td><a href="http://www.w3.org/TR/prov-dm/#insertion.key-entity-set"><span class='attribute' id="insertion.key-entity-set">key-entity-set</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-keyEntitySet">keyEntitySet</a></code></td></tr>
-
-<tr><td><a href="http://www.w3.org/TR/prov-dm/#insertion.attributes"><span class='attribute' id="insertion.attributes">attributes</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-optionalAttributeValuePairs">optionalAttributeValuePairs</a></code></td></tr>
+<tr><td><a href="http://www.w3.org/TR/prov-dm/#insertion.id"><span class='attribute' id="provn-insertion.id">id</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-optionalIdentifier">optionalIdentifier</a></code></td></tr>
+
+<tr><td><a href="http://www.w3.org/TR/prov-dm/#insertion.after"><span class='attribute' id="provn-insertion.after">after</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-cIdentifier">cIdentifier</a></code></td></tr>
+
+<tr><td><a href="http://www.w3.org/TR/prov-dm/#insertion.before"><span class='attribute' id="provn-insertion.before">before</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-cIdentifier">cIdentifier</a></code></td></tr>
+
+
+<tr><td><a href="http://www.w3.org/TR/prov-dm/#insertion.key-entity-set"><span class='attribute' id="provn-insertion.key-entity-set">key-entity-set</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-keyEntitySet">keyEntitySet</a></code></td></tr>
+
+<tr><td><a href="http://www.w3.org/TR/prov-dm/#insertion.attributes"><span class='attribute' id="provn-insertion.attributes">attributes</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-optionalAttributeValuePairs">optionalAttributeValuePairs</a></code></td></tr>
</table>
</div>
@@ -1246,12 +1129,9 @@
</div>
-</section>
-
+</section> <!-- Insertion -->
<section id="expression-collection-removal">
-<h3>Removal</h3>
-
-<!--
+ <h3>Removal</h3>
<div class="grammar">
<span class="nonterminal">derivationByRemovalFromExpression</span> ::=
<span class="name">derivedByRemovalFrom</span>
@@ -1269,12 +1149,6 @@
<span class="name">)</span>
<br>
</div>
--->
-
-<table class="grammar">
-<tbody class="grammar-ref" data-ref="prod-removalExpression"></tbody>
-<tbody class="grammar-ref" data-ref="prod-keySet"></tbody>
-</table>
<p>The following table summarizes how each constituent of a PROV-DM Removal maps to a non-terminal.</p>
<div style="text-align: left; ">
@@ -1282,16 +1156,16 @@
<tr><td><b>Removal</b></td><td><b>Non-Terminal</b></td></tr>
<tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td></tr>
-<tr><td><a href="http://www.w3.org/TR/prov-dm/#removal.id"><span class='attribute' id="removal.id">id</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-optionalIdentifier">optionalIdentifier</a></code></td></tr>
-
-<tr><td><a href="http://www.w3.org/TR/prov-dm/#removal.after"><span class='attribute' id="removal.after">after</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-cIdentifier">cIdentifier</a></code></td></tr>
-
-<tr><td><a href="http://www.w3.org/TR/prov-dm/#removal.before"><span class='attribute' id="removal.before">before</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-cIdentifier">cIdentifier</a></code></td></tr>
-
-
-<tr><td><a href="http://www.w3.org/TR/prov-dm/#removal.key-set"><span class='attribute' id="removal.key-set">key-set</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-keySet">keySet</a></code></td></tr>
-
-<tr><td><a href="http://www.w3.org/TR/prov-dm/#removal.attributes"><span class='attribute' id="removal.attributes">attributes</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-optionalAttributeValuePairs">optionalAttributeValuePairs</a></code></td></tr>
+<tr><td><a href="http://www.w3.org/TR/prov-dm/#removal.id"><span class='attribute' id="provn-removal.id">id</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-optionalIdentifier">optionalIdentifier</a></code></td></tr>
+
+<tr><td><a href="http://www.w3.org/TR/prov-dm/#removal.after"><span class='attribute' id="provn-removal.after">after</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-cIdentifier">cIdentifier</a></code></td></tr>
+
+<tr><td><a href="http://www.w3.org/TR/prov-dm/#removal.before"><span class='attribute' id="provn-removal.before">before</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-cIdentifier">cIdentifier</a></code></td></tr>
+
+
+<tr><td><a href="http://www.w3.org/TR/prov-dm/#removal.key-set"><span class='attribute' id="provn-removal.key-set">key-set</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-keySet">keySet</a></code></td></tr>
+
+<tr><td><a href="http://www.w3.org/TR/prov-dm/#removal.attributes"><span class='attribute' id="provn-removal.attributes">attributes</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-optionalAttributeValuePairs">optionalAttributeValuePairs</a></code></td></tr>
</table>
</div>
@@ -1318,211 +1192,12 @@
</pre>
</div>
-</section>
+</section> <!-- removal -->
</section>
-<section id="dictionary-constraints">
-<h2>Dictionary Constraints</h2>
-
-
- <div class="note">
- As resolved at F2F3, the material in this section goes, if
- anywhere, into the PROV-COLLECTIONS note.
- </div>
-
-<hr>
-
-<p id='membership-as-insertion_text'>Membership is a convenience notation, since it can be expressed in terms of an insertion into some dictionary. The membership definition is formalized by <a class="rule-ref" href="#membership-as-insertion"><span/></a>.</p>
-
-<div class='definition' id='membership-as-insertion'>
-<p>
- <span class="name">memberOf(d, {(k1, v1), ...})</span> holds
-<span class='conditional'>IF AND ONLY IF</span> there exists a dictionary <span class="name">d0</span>, such that
-<span class="name">derivedByInsertionFrom(d, d0, {(k1, v1), ...})</span>.</p>
-</div>
-
-<p>
-
-<hr>
-
-<p id='dictionary-unique-derivation_text'>A dictionary may be obtained by insertion or removal, or said to satisfy the membership relation.
-To provide an interpretation of dictionaries, PROV-DM
- restricts one dictionary to be involved in a single derivation by insertion or removal, or to one membership relation.
-PROV-DM does not provide an interpretation for statements that consist of two (or more) insertion, removal, membership relations that result in the same dictionary.</p>
-
-
-
-<p>The following constraint ensures unique derivation.</p>
-
-
-<div class='note'> The following constraint is unclear.</div>
-<div class='constraint' id='dictionary-unique-derivation'>
-<p>A dictionary MUST NOT be derived through multiple insertions, removal,
- or membership relations. </p>
-</div>
-
-<div class="anexample">
-Consider the following statements about three dictionaries.
- <pre class="codeexample">
-entity(d1, [prov:type='prov:Dictionary'])
-entity(d2, [prov:type='prov:Dictionary'])
-entity(d3, [prov:type='prov:Dictionary'])
-
-
-derivedByInsertionFrom(d3, d1, {("k1", e1), ("k2", e2)})
-derivedByInsertionFrom(d3, d2, {("k3", e3)})
-</pre>
-<p>There is no interpretation for such statements since <span class="name">d3</span> is derived multiple times by insertion.</p>
-</div>
-
-
-<div class="anexample">
-<p>As a particular case, dictionary <span class="name">d</span> is derived multiple times from the same <span class="name">d1</span>. </p>
-<pre class="codeexample">
-derivedByInsertionFrom(id1, d, d1, {("k1", e1), ("k2", e2)})
-derivedByInsertionFrom(id2, d, d1, {("k3", e3), ("k4", e4)})
-</pre>
-<p>The interpretation of such statements is also unspecified. </p>
-<p>To describe the insertion of the 4 key-entity pairs, one would instead write:</p>
-<pre class="codeexample">
-derivedByInsertionFrom(id1, d, d1, {("k1", e1), ("k2", e2), ("k3", e3), ("k4", e4)})
-</pre>
-</div>
-
-The same is true for any combination of insertions, removals, and membership relations:
-<div class="anexample">
-<p>The following statements</p>
-<pre class="codeexample">
-derivedByInsertionFrom(d, d1, {("k1", e1)})
-derivedByRemovalFrom(d, d2, {"k2"})
-</pre>
-have no interpretation.
-Nor have the following:
-<pre class="codeexample">
-derivedByInsertionFrom(d, d1, {("k1", e1)})
-memberOf(d, {"k2",e2})
-</pre>
-</div>
-
-
-
-<section id="dictionary-branching">
-<h4>Dictionary branching</h4>
-
-It is allowed to have multiple derivations from a single root dictionary, as long as the resulting entities are distinct, as shown in the following example.
-
-<div class="anexample">
-<pre class="codeexample">
-entity(d0, [prov:type='prov:EmptyDictionary']) // d0 is an empty dictionary
-entity(d1, [prov:type='prov:Dictionary'])
-entity(d2, [prov:type='prov:Dictionary'])
-entity(d3, [prov:type='prov:Dictionary'])
-entity(e1)
-entity(e2)
-entity(e3)
-
-derivedByInsertionFrom(d1, d0, {("k1", e1)})
-derivedByInsertionFrom(d2, d0, {("k2", e2)})
-derivedByInsertionFrom(d3, d1, {("k3", e3)})
-</pre>
-From this set of statements, we conclude:
-<pre class="codeexample">
- d1 = { ("k1", e1) }
- d2 = { ("k2", e2) }
- d3 = { ("k1", e1), ("k3", e3)}
-</pre>
-</div>
-
-</section>
-
-
-
-<section id="dictionaries-and-derivation">
-
-
-<h4>Dictionaries and Weaker Derivation Relation</h4>
-
-<p>Since a
-set of statements regarding a dictionary's evolution may be
-incomplete, so is the reconstructed state obtained by querying those
-statements. In general, all statements reflect partial knowledge regarding a sequence of data transformation events. In the particular case of dictionary evolution, in which some of the state changes may have been missed, the more generic derivation relation should be used to signal that some updates may have occurred, which cannot be expressed as insertions or removals. The following example illustrates this.</p>
-
-
-
- <div class="anexample">
-In the example, the state of <span class="name">d2</span> is only partially known because the dictionary is constructed from partially known other dictionaries.
- <pre class="codeexample">
-entity(d0, [prov:type='prov:EmptyDictionary']) // d0 is an empty dictionary
-entity(d1, [prov:type='prov:Dictionary'])
-entity(d2, [prov:type='prov:Dictionary'])
-entity(d3, [prov:type='prov:Dictionary'])
-entity(e1)
-entity(e2)
-
-derivedByInsertionFrom(d1, d0, {("k1", e1)})
-wasDerivedFrom(d2, d1)
-derivedByInsertionFrom(d3, d2, {("k2", e2)})
- </pre>
-From this set of statements, we conclude:
-<ul>
-<li> <span class="name">d1 = { ("k1", e1) }</span>
-<li> <span class="name">d2</span> is somehow derived from <span class="name">d1</span>, but the precise sequence of updates is unknown
-<li> <span class="name">d3</span> includes <span class="name">("k2", e2)</span> but the earlier "gap" leaves uncertainty regarding <span class="name">("k1", e1)</span> (it may have been removed) or any other pair that may have been added as part of the derivation activities.
-</ul>
- </div>
-
-</section>
-
-
-<div class='note'>
- Do the insertion/removal derivation steps imply wasDerivedFrom,
- wasVersionOf, alternateOf?
- </div>
-
-
-
-<section id="dictionaries-and-contents">
-
-
-<h4>Dictionaries and Contents</h4>
-
-<div class="note">
-Axiomatisation of dictionaries to be expressed here. See <a href="./working-copy/wd6-collections-constraints.html">here</a>.
-</div>
-</section>
-
-</section> <!-- dictionary-constraints -->
-
-
-<div id="glossary_div" class="remove">
-<!-- glossary loaded from glossary.js will be hooked up here,
- class remove, will remove this element from the final output.
--->
-</div>
-<div id="grammar_div" class="remove">
-<!-- grammar loaded from glossary.js will be hooked up here,
- class remove, will remove this element from the final output.
--->
-</div>
-
-
-
-
- <section id="description-collections-terms"> <!-- section 3.1 -->
- <!-- This section was taken from http://dvcs.w3.org/hg/prov/file/a1d1ff134131/ontology/prov-o-html-sections/description-collections.inc.html -->
-
- <!-- Khalid's desired take away: Relations between the starting point classes can be specified using the starting object properties. However, in certain cases, users may want to provide elaborated info
-rmation about such relations. Qualified classes and properties provides users with the means to do so. -->
- <-p><strong>Collection classes and properties</strong> are specializations of the Starting Point and Qualified terms that describe the provenance of collections as key-value pairs that are inserted a
-nd removed to create new collections.
- The classes and properties in this category are listed below and are discussed in <a href="#description-collections-terms">Section 3.4</a>.</p>
- <div id="prov-collections-owl-terms-at-a-glance">
- need to include aquarius:"includes/at-a-glance-collections.html"
- </div>
-
-
- <h3>Collections Terms</h3>
+<section id="dictionary-ontological-definition">
+<h2>Ontological Definition of Dictionary</h2>
<p> A <code><a class="qname"
href='#Dictionary'>prov:Dictionary</a></code> is an <code
@@ -1538,7 +1213,28 @@
<div about="#narrative-example-dictionaries-1" typeof="prov:Entity" class="exampleOuter" xmlns:prov="http://www.w3.org/ns/prov#">
<pre rel="prov:wasQuotedFrom" resource="http://dvcs.w3.org/hg/prov/raw-file/tip/examples/eg-26-provo-collections-narrative/rdf/membership.ttl"
- class="example">{% escape %}{% include "includes/prov/examples/eg-26-provo-collections-narrative/rdf/membership.ttl" %}{% endescape %}</pre>
+ class="example">@prefix prov: <http://www.w3.org/ns/prov#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix : <http://example.org/> .
+
+:e1 a prov:Entity .
+:e2 a prov:Entity .
+
+:c1 a prov:Dictionary;
+ prov:membership [
+ a prov:Membership;
+ prov:member [
+ a prov:KeyValuePair;
+ prov:key "k1"^^xsd:string;
+ prov:value :e1
+ ], [
+ a prov:KeyValuePair;
+ prov:key "k2"^^xsd:string;
+ prov:value :e2
+ ];
+ ];
+.
+</pre>
</div>
<p>It is worth noting that <code>:c1</code> MAY also
@@ -1564,7 +1260,32 @@
<div about="#narrative-example-dictionaries-2" typeof="prov:Entity" class="exampleOuter" xmlns:prov="http://www.w3.org/ns/prov#">
<pre rel="prov:wasQuotedFrom" resource="http://dvcs.w3.org/hg/prov/raw-file/tip/examples/eg-26-provo-collections-narrative/rdf/insertion.ttl"
- class="example">{% escape %}{% include "includes/prov/examples/eg-26-provo-collections-narrative/rdf/insertion.ttl" %}{% endescape %}</pre>
+ class="example">@prefix prov: <http://www.w3.org/ns/prov#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix : <http://example.org/> .
+
+:e1 a prov:Entity .
+:e2 a prov:Entity .
+
+:c a prov:EmptyDictionary .
+
+:c1 a prov:Dictionary;
+ prov:derivedByInsertionFrom :c;
+ prov:qualifiedInsertion [
+ a prov:Insertion;
+ prov:dictionary :c;
+ prov:inserted [
+ a prov:KeyValuePair;
+ prov:key "k1"^^xsd:string;
+ prov:value :e1;
+ ], [
+ a prov:KeyValuePair;
+ prov:key "k2"^^xsd:string;
+ prov:value :e2;
+ ];
+ ];
+.
+</pre>
</div>
@@ -1579,19 +1300,1428 @@
<div about="#narrative-example-dictionaries-3" typeof="prov:Entity" class="exampleOuter" xmlns:prov="http://www.w3.org/ns/prov#">
<pre rel="prov:wasQuotedFrom" resource="http://dvcs.w3.org/hg/prov/raw-file/tip/examples/eg-26-provo-collections-narrative/rdf/removal.ttl"
- class="example">{% escape %}{% include "includes/prov/examples/eg-26-provo-collections-narrative/rdf/removal.ttl" %}{% endescape %}</pre>
+ class="example">@prefix prov: <http://www.w3.org/ns/prov#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix : <http://example.org/> .
+
+:c2 a prov:Dictionary .
+
+:c3 a prov:Dictionary;
+ prov:derivedByRemovalFrom :c2;
+ prov:qualifiedRemoval [
+ a prov:Removal;
+ prov:dictionary :c2;
+ prov:removed "k1"^^xsd:string,
+ "k3"^^xsd:string;
+ ];
+.
+</pre>
</div>
- </section>
-
-
-<section id="cross-reference-collection-terms">
- <h3>Collection Terms</h3>
- <p>The terms used to describe the provenance of collections of key-value pairs are discussed in <a href="#description-collections-terms">Section 3.4</a>.</p>
- need to include aquarius:"includes/at-a-glance-collections.html"
- need to include aquarius:"includes/cross-reference-collections.html"
+ <p>These terms are used to describe the provenance of collections of key-value pairs.</p>
+
+<div
+ class="prov-collections owl-classes at-a-glance">
+ <ul class="hlist">
+ <li>
+ <a href="#CompleteMembership">prov:CompleteMembership</a>
+ </li>
+ <li>
+ <a href="#Dictionary">prov:Dictionary</a>
+ </li>
+ <li>
+ <a href="#DictionaryInvolvement">prov:DictionaryInvolvement</a>
+ </li>
+ <li>
+ <a href="#EmptyDictionary">prov:EmptyDictionary</a>
+ </li>
+ <li>
+ <a href="#Insertion">prov:Insertion</a>
+ </li>
+ <li>
+ <a href="#KeyValuePair">prov:KeyValuePair</a>
+ </li>
+ <li>
+ <a href="#Membership">prov:Membership</a>
+ </li>
+ <li>
+ <a href="#Removal">prov:Removal</a>
+ </li>
+ </ul>
+</div>
+
+<div
+ class="prov-collections owl-properties at-a-glance">
+ <ul class="hlist">
+ <li class="object-property">
+ <a href="#derivedByInsertionFrom">prov:derivedByInsertionFrom</a>
+ </li>
+ <li class="object-property">
+ <a href="#derivedByRemovalFrom">prov:derivedByRemovalFrom</a>
+ </li>
+ <li class="object-property">
+ <a href="#dictionary">prov:dictionary</a>
+ </li>
+ <li class="object-property">
+ <a href="#inserted">prov:inserted</a>
+ </li>
+ <li class="object-property">
+ <a href="#member">prov:member</a>
+ </li>
+ <li class="object-property">
+ <a href="#membership">prov:membership</a>
+ </li>
+ <li class="datatype-property">
+ <a href="#pairKey">prov:pairKey</a>
+ </li>
+ <li class="object-property">
+ <a href="#pairValue">prov:pairValue</a>
+ </li>
+ <li class="object-property">
+ <a href="#qualifiedInsertion">prov:qualifiedInsertion</a>
+ </li>
+ <li class="object-property">
+ <a href="#qualifiedRemoval">prov:qualifiedRemoval</a>
+ </li>
+ <li class="datatype-property">
+ <a href="#removedKey">prov:removedKey</a>
+ </li>
+ </ul>
+</div>
+
+ <div
+ class="prov-collections owl-classes crossreference"
+ xmlns:dcterms="http://purl.org/dc/terms/"
+ xmlns:prov="http://www.w3.org/ns/prov#">
+
+ <div id="CompleteMembership" class="entity">
+ <h3>
+ Class: <a href="#CompleteMembership"><span class="dotted" title="http://www.w3.org/ns/prov#CompleteMembership">prov:CompleteMembership</span></a>
+ <span class="backlink">
+ back to <a href="#prov-collections-owl-terms-at-a-glance">collections classes</a>
+ </span>
+ </h3>
+ <p><strong>IRI:</strong>http://www.w3.org/ns/prov#CompleteMembership</p>
+
+ <div about="#example-for-class-CompleteMembership" typeof="prov:Entity" class="example">
+ <span rel="dcterms:subject" resource="http://www.w3.org/ns/prov#CompleteMembership"></span>
+ <strong>Example</strong>
+ <pre rel="prov:wasQuotedFrom" resource="http://dvcs.w3.org/hg/prov/raw-file/tip/examples/eg-24-prov-o-html-examples/rdf/create/rdf/class_CompleteMembership.ttl"
+ property="prov:value">@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix owl: <http://www.w3.org/2002/07/owl#> .
+@prefix prov: <http://www.w3.org/ns/prov#> .
+@prefix : <http://example.com/> .
+
+:e1 a prov:Entity .
+:e2 a prov:Entity .
+
+:c1 a prov:Dictionary, prov:Entity;
+ prov:membership [
+ a prov:CompleteMembership, prov:Membership;
+ # These are the members, and all the members of c1
+ prov:member [
+ a prov:KeyValuePair;
+ prov:key "k1"^^xsd:string;
+ prov:value :e1;
+ ], [
+ a prov:KeyValuePair;
+ prov:key "k2"^^xsd:string;
+ prov:value :e2;
+ ]
+ ] .
+
+:c2
+ a prov:Dictionary, prov:Entity;
+ prov:derivedByRemovalFrom :c1;
+ prov:qualifiedRemoval [
+ a prov:Removal;
+ prov:collection :c1;
+ prov:removedKey "k1"^^xsd:string,
+ "k2"^^xsd:string;
+ ];
+.
+
+## As membership on :c1 is complete, we can infer:
+#
+# :c2 a prov:EmptyDictionary;
+# prov:membership [
+# a prov:CompleteMembership
+# ] .
+</pre>
+ </div>
+
+ <dl class="description">
+ <dd class="comment"><p>Indicates that no other member belongs to the collection, that is all the prov:member stated for this CompleteMembership constitutes all members of the collection.</p>
+ </dd>
+
+ <dt>is subclass of</dt>
+ <dd>
+ <a title="http://www.w3.org/ns/prov#Membership" href="#Membership" class="owlclass">prov:Membership</a>
+ </dd>
+
+ <dt>parent is in domain of</dt>
+ <dd>
+ <a title="http://www.w3.org/ns/prov#member" href="#member">prov:member</a> </dd>
+ </dl>
+ </div>
+
+ <div id="Dictionary" class="entity">
+ <h3>
+ Class: <a href="#Dictionary"><span class="dotted" title="http://www.w3.org/ns/prov#Dictionary">prov:Dictionary</span></a>
+ <span class="backlink">
+ back to <a href="#prov-collections-owl-terms-at-a-glance">collections classes</a>
+ </span>
+ </h3>
+ <p><strong>IRI:</strong>http://www.w3.org/ns/prov#Dictionary</p>
+ <div class="definition"><p>A dictionary is an entity that provides a structure to some constituents, which are themselves entities. These constituents are said to be member of the dictionary.</p>
+ </div>
+
+ <div about="#example-for-class-Dictionary" typeof="prov:Entity" class="example">
+ <span rel="dcterms:subject" resource="http://www.w3.org/ns/prov#Dictionary"></span>
+ <strong>Example</strong>
+ <pre rel="prov:wasQuotedFrom" resource="http://dvcs.w3.org/hg/prov/raw-file/tip/examples/eg-24-prov-o-html-examples/rdf/create/rdf/class_Dictionary.ttl"
+ property="prov:value">@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix owl: <http://www.w3.org/2002/07/owl#> .
+@prefix prov: <http://www.w3.org/ns/prov#> .
+@prefix : <http://example.com/> .
+
+:studentRegister_2012
+ a prov:Dictionary, prov:Entity;
+ prov:derivedByInsertionFrom :studentRegister_2011;
+ :hasTotalStudents 45;
+ :wasCreatedBy :bob;
+.
+</pre>
+ </div>
+
+ <dl class="description">
+ <dd class="comment"><p>This concept allows for the provenance of the dictionary, but also of its constituents to be expressed. Such a notion of dictionary corresponds to a wide variety of concrete data structures, such as a maps or associative arrays.</p>
+ </dd>
+ <dd class="comment"><p>A given dictionary forms a given structure for its members. A different structure (obtained either by insertion or removal of members) constitutes a different dictionary.</p>
+ </dd>
+
+ <dt>is subclass of</dt>
+ <dd>
+ <a title="http://www.w3.org/ns/prov#Entity" href="#Entity" class="owlclass">prov:Entity</a>
+ </dd>
+
+ <dt>in domain of</dt>
+ <dd>
+ <a title="http://www.w3.org/ns/prov#derivedByInsertionFrom" href="#derivedByInsertionFrom">prov:derivedByInsertionFrom</a><sup class="type-op" title="object property">op</sup>
+ <a title="http://www.w3.org/ns/prov#qualifiedRemoval" href="#qualifiedRemoval">prov:qualifiedRemoval</a><sup class="type-op" title="object property">op</sup>
+ <a title="http://www.w3.org/ns/prov#qualifiedInsertion" href="#qualifiedInsertion">prov:qualifiedInsertion</a><sup class="type-op" title="object property">op</sup>
+ <a title="http://www.w3.org/ns/prov#derivedByRemovalFrom" href="#derivedByRemovalFrom">prov:derivedByRemovalFrom</a><sup class="type-op" title="object property">op</sup>
+ <a title="http://www.w3.org/ns/prov#membership" href="#membership">prov:membership</a><sup class="type-op" title="object property">op</sup>
+ </dd>
+
+ <dt>parent is in domain of</dt>
+ <dd>
+ </dd>
+
+ <dt>in range of</dt>
+ <dd>
+ <a title="http://www.w3.org/ns/prov#derivedByInsertionFrom" href="#derivedByInsertionFrom">prov:derivedByInsertionFrom</a><sup class="type-op" title="object property">op</sup>
+ <a title="http://www.w3.org/ns/prov#derivedByRemovalFrom" href="#derivedByRemovalFrom">prov:derivedByRemovalFrom</a><sup class="type-op" title="object property">op</sup>
+ <a title="http://www.w3.org/ns/prov#dictionary" href="#dictionary">prov:dictionary</a><sup class="type-op" title="object property">op</sup>
+ </dd>
+
+ <dt>has subclass</dt>
+ <dd>
+ <a title="http://www.w3.org/ns/prov#EmptyDictionary" href="#EmptyDictionary" class="owlclass">prov:EmptyDictionary</a>
+ </dd>
+ </dl>
+ </div>
+
+ <div id="DictionaryInvolvement" class="entity">
+ <h3>
+ Class: <a href="#DictionaryInvolvement"><span class="dotted" title="http://www.w3.org/ns/prov#DictionaryInvolvement">prov:DictionaryInvolvement</span></a>
+ <span class="backlink">
+ back to <a href="#prov-collections-owl-terms-at-a-glance">collections classes</a>
+ </span>
+ </h3>
+ <p><strong>IRI:</strong>http://www.w3.org/ns/prov#DictionaryInvolvement</p>
+
+ <div about="#example-for-class-DictionaryInvolvement" typeof="prov:Entity" class="example">
+ <span rel="dcterms:subject" resource="http://www.w3.org/ns/prov#DictionaryInvolvement"></span>
+ <strong>Example</strong>
+ <pre rel="prov:wasQuotedFrom" resource="http://dvcs.w3.org/hg/prov/raw-file/tip/examples/eg-24-prov-o-html-examples/rdf/create/rdf/class_DictionaryInvolvement.ttl"
+ property="prov:value">@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix owl: <http://www.w3.org/2002/07/owl#> .
+@prefix prov: <http://www.w3.org/ns/prov#> .
+@prefix : <http://example.com/> .
+
+:c1 a prov:Dictionary .
+
+:c2
+ a prov:Dictionary,
+ prov:Entity;
+ prov:derivedByRemovalFrom :c1;
+ prov:qualifiedRemoval [
+ a prov:Removal, prov:DictionaryInvolvement;
+ prov:dictionary :c1;
+ prov:removedKey "k1"^^xsd:string;
+ ];
+.
+</pre>
+ </div>
+
+ <dl class="description">
+ <dd class="comment"><p>prov:DictionaryInvolvement provides descriptions of any binary involvement between any instance and a prov:Dictionary.</p>
+ </dd>
+
+ <dt>is subclass of</dt>
+ <dd>
+ <a title="http://www.w3.org/ns/prov#Involvement" href="#Involvement" class="owlclass">prov:Involvement</a>
+ </dd>
+
+ <dt>in domain of</dt>
+ <dd>
+ <a title="http://www.w3.org/ns/prov#dictionary" href="#dictionary">prov:dictionary</a><sup class="type-op" title="object property">op</sup>
+ </dd>
+
+ <dt>parent is in domain of</dt>
+ <dd>
+ </dd>
+
+ <dt>has subclasses</dt>
+ <dd>
+ <a title="http://www.w3.org/ns/prov#Insertion" href="#Insertion" class="owlclass">prov:Insertion</a>
+ <a title="http://www.w3.org/ns/prov#Removal" href="#Removal" class="owlclass">prov:Removal</a>
+ </dd>
+ </dl>
+ </div>
+
+ <div id="EmptyDictionary" class="entity">
+ <h3>
+ Class: <a href="#EmptyDictionary"><span class="dotted" title="http://www.w3.org/ns/prov#EmptyDictionary">prov:EmptyDictionary</span></a>
+ <span class="backlink">
+ back to <a href="#prov-collections-owl-terms-at-a-glance">collections classes</a>
+ </span>
+ </h3>
+ <p><strong>IRI:</strong>http://www.w3.org/ns/prov#EmptyDictionary</p>
+
+ <div about="#example-for-class-EmptyDictionary" typeof="prov:Entity" class="example">
+ <span rel="dcterms:subject" resource="http://www.w3.org/ns/prov#EmptyDictionary"></span>
+ <strong>Example</strong>
+ <pre rel="prov:wasQuotedFrom" resource="http://dvcs.w3.org/hg/prov/raw-file/tip/examples/eg-24-prov-o-html-examples/rdf/create/rdf/class_EmptyDictionary.ttl"
+ property="prov:value">@prefix prov: <http://www.w3.org/ns/prov#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix : <http://example.org/> .
+
+:e1 a prov:Entity .
+:e2 a prov:Entity .
+
+:c a prov:EmptyDictionary .
+
+:c1 a prov:Dictionary;
+ prov:derivedByInsertionFrom :c;
+ prov:qualifiedInsertion [
+ a prov:Insertion;
+ prov:dictionary :c;
+ prov:inserted [
+ a prov:KeyValuePair;
+ prov:key "k1"^^xsd:string;
+ prov:value :e1;
+ ], [
+ a prov:KeyValuePair;
+ prov:key "k2"^^xsd:string;
+ prov:value :e2;
+ ];
+ ];
+. </pre>
+ </div>
+
+ <dl class="description">
+ <dd class="comment"><p>An empty dictionary.</p>
+ </dd>
+
+ <dt>is subclass of</dt>
+ <dd>
+ <a title="http://www.w3.org/ns/prov#Dictionary" href="#Dictionary" class="owlclass">prov:Dictionary</a>
+ </dd>
+
+ <dt>parent is in domain of</dt>
+ <dd>
+ </dd>
+ </dl>
+ </div>
+
+ <div id="Insertion" class="entity">
+ <h3>
+ Class: <a href="#Insertion"><span class="dotted" title="http://www.w3.org/ns/prov#Insertion">prov:Insertion</span></a>
+ <span class="backlink">
+ back to <a href="#prov-collections-owl-terms-at-a-glance">collections classes</a>
+ </span>
+ </h3>
+ <p><strong>IRI:</strong>http://www.w3.org/ns/prov#Insertion</p>
+ <div class="definition"><p>Insertion is a derivation that transforms a dictionary into another, by insertion of one or more key-value pairs.</p>
+ </div>
+
+ <div about="#example-for-class-Insertion" typeof="prov:Entity" class="example">
+ <span rel="dcterms:subject" resource="http://www.w3.org/ns/prov#Insertion"></span>
+ <strong>Example</strong>
+ <pre rel="prov:wasQuotedFrom" resource="http://dvcs.w3.org/hg/prov/raw-file/tip/examples/eg-24-prov-o-html-examples/rdf/create/rdf/class_Insertion.ttl"
+ property="prov:value">@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix owl: <http://www.w3.org/2002/07/owl#> .
+@prefix prov: <http://www.w3.org/ns/prov#> .
+@prefix : <http://example.com/> .
+
+:our-NEW-baseball-team-field-positions
+ a prov:Dictionary,
+ :FieldPositions;
+ prov:derivedByInsertionFrom :our-old-baseball-team-field-positions;
+ prov:qualifiedInsertion [
+ a prov:Insertion;
+ prov:collection :our-old-baseball-team-field-positions;
+ prov:inserted [
+ a prov:KeyValuePair;
+ prov:key "first-baseman"^^xsd:string;
+ prov:value <http://dbpedia.org/resource/Jim_Thorpe>;
+ ];
+ ];
+.
+
+<http://dbpedia.org/resource/Jim_Thorpe> a prov:Entity .
+
+:our-old-baseball-team-field-positions a prov:Dictionary .
+</pre>
+ </div>
+
+ <dl class="description">
+ <dd class="comment"><p>Insertion is a derivation that transforms a dictionary into another, by insertion of one or more key-value pairs.</p>
+ </dd>
+
+ <dt>is subclass of</dt>
+ <dd>
+ <a title="http://www.w3.org/ns/prov#DictionaryInvolvement" href="#DictionaryInvolvement" class="owlclass">prov:DictionaryInvolvement</a>
+ </dd>
+
+ <dt>in domain of</dt>
+ <dd>
+ <a title="http://www.w3.org/ns/prov#inserted" href="#inserted">prov:inserted</a><sup class="type-op" title="object property">op</sup>
+ </dd>
+
+ <dt>parent is in domain of</dt>
+ <dd>
+ <a title="http://www.w3.org/ns/prov#dictionary" href="#dictionary">prov:dictionary</a> </dd>
+
+ <dt>in range of</dt>
+ <dd>
+ <a title="http://www.w3.org/ns/prov#qualifiedInsertion" href="#qualifiedInsertion">prov:qualifiedInsertion</a><sup class="type-op" title="object property">op</sup>
+ </dd>
+
+ <dt>qualifies</dt>
+ <dd>
+ <a title="http://www.w3.org/ns/prov#derivedByInsertionFrom" href="#derivedByInsertionFrom" class="owlproperty">prov:derivedByInsertionFrom</a>
+ </dd>
+ </dl>
+ </div>
+
+ <div id="KeyValuePair" class="entity">
+ <h3>
+ Class: <a href="#KeyValuePair"><span class="dotted" title="http://www.w3.org/ns/prov#KeyValuePair">prov:KeyValuePair</span></a>
+ <span class="backlink">
+ back to <a href="#prov-collections-owl-terms-at-a-glance">collections classes</a>
+ </span>
+ </h3>
+ <p><strong>IRI:</strong>http://www.w3.org/ns/prov#KeyValuePair</p>
+
+ <div about="#example-for-class-KeyValuePair" typeof="prov:Entity" class="example">
+ <span rel="dcterms:subject" resource="http://www.w3.org/ns/prov#KeyValuePair"></span>
+ <strong>Example</strong>
+ <pre rel="prov:wasQuotedFrom" resource="http://dvcs.w3.org/hg/prov/raw-file/tip/examples/eg-24-prov-o-html-examples/rdf/create/rdf/class_KeyValuePair.ttl"
+ property="prov:value">@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix owl: <http://www.w3.org/2002/07/owl#> .
+@prefix prov: <http://www.w3.org/ns/prov#> .
+@prefix : <http://example.com/> .
+
+:our-NEW-baseball-team-field-positions
+ a prov:Dictionary,
+ :FieldPositions;
+ prov:derivedByInsertionFrom :our-old-baseball-team-field-positions;
+ prov:qualifiedInsertion [
+ a prov:Insertion;
+ prov:collection :our-old-baseball-team-field-positions;
+ prov:inserted [
+ a prov:KeyValuePair;
+ prov:key "first-baseman"^^xsd:string;
+ prov:value <http://dbpedia.org/resource/Jim_Thorpe>;
+ ];
+ ];
+ prov:hadActivity :hiring_jim_thorpe;
+.
+
+<http://dbpedia.org/resource/Jim_Thorpe> a prov:Entity .
+
+:hiring_jim_thorpe a prov:Activity .
+
+:our-old-baseball-team-field-positions
+ a prov:Dictionary,
+ :FieldPositions;
+ prov:membership [
+ a prov:Membership;
+ prov:member [
+ a prov:KeyValuePair;
+ prov:key "first-baseman"^^xsd:string;
+ prov:value :george;
+ ];
+ prov:member [
+ a prov:KeyValuePair;
+ prov:key "pitcher"^^xsd:string;
+ prov:value :carl;
+ ];
+ ];
+.
+
+:george a prov:Entity .
+:carl a prov:Entity .
+</pre>
+ </div>
+
+ <dl class="description">
+ <dd class="comment"><p>A key-value pair. Part of a prov:Dictionary through prov:Membership. The key is any RDF Literal, the value is a prov:Entity.</p>
+ </dd>
+
+ <dt>in domain of</dt>
+ <dd>
+ <a title="http://www.w3.org/ns/prov#pairKey" href="#pairKey">prov:pairKey</a><sup class="type-dp" title="data property">dp</sup>
+ <a title="http://www.w3.org/ns/prov#pairValue" href="#pairValue">prov:pairValue</a><sup class="type-op" title="object property">op</sup>
+ </dd>
+
+ <dt>in range of</dt>
+ <dd>
+ <a title="http://www.w3.org/ns/prov#member" href="#member">prov:member</a><sup class="type-op" title="object property">op</sup>
+ <a title="http://www.w3.org/ns/prov#inserted" href="#inserted">prov:inserted</a><sup class="type-op" title="object property">op</sup>
+ </dd>
+ </dl>
+ </div>
+
+ <div id="Membership" class="entity">
+ <h3>
+ Class: <a href="#Membership"><span class="dotted" title="http://www.w3.org/ns/prov#Membership">prov:Membership</span></a>
+ <span class="backlink">
+ back to <a href="#prov-collections-owl-terms-at-a-glance">collections classes</a>
+ </span>
+ </h3>
+ <p><strong>IRI:</strong>http://www.w3.org/ns/prov#Membership</p>
+
+ <div about="#example-for-class-Membership" typeof="prov:Entity" class="example">
+ <span rel="dcterms:subject" resource="http://www.w3.org/ns/prov#Membership"></span>
+ <strong>Example</strong>
+ <pre rel="prov:wasQuotedFrom" resource="http://dvcs.w3.org/hg/prov/raw-file/tip/examples/eg-24-prov-o-html-examples/rdf/create/rdf/class_Membership.ttl"
+ property="prov:value">@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix owl: <http://www.w3.org/2002/07/owl#> .
+@prefix prov: <http://www.w3.org/ns/prov#> .
+@prefix : <http://example.com/> .
+
+
+:e1 a prov:Entity .
+:e2 a prov:Entity .
+
+:c1
+ a prov:Dictionary,
+ prov:Entity;
+ prov:membership [
+ a prov:Membership;
+ # These are (some of the) members of c1
+ prov:member [
+ a prov:KeyValuePair;
+ prov:key "k1"^^xsd:string;
+ prov:value :e1;
+ ], [
+ a prov:KeyValuePair;
+ prov:key "k2"^^xsd:string;
+ prov:value :e2;
+ ];
+ ];
+.
+</pre>
+ </div>
+
+ <dl class="description">
+ <dd class="comment"><p>Described members of a collection, in the form of key-value pairs. The Membership resource can also be annotated with attributes.</p>
+ </dd>
+
+ <dt>in domain of</dt>
+ <dd>
+ <a title="http://www.w3.org/ns/prov#member" href="#member">prov:member</a><sup class="type-op" title="object property">op</sup>
+ </dd>
+
+ <dt>in range of</dt>
+ <dd>
+ <a title="http://www.w3.org/ns/prov#membership" href="#membership">prov:membership</a><sup class="type-op" title="object property">op</sup>
+ </dd>
+
+ <dt>has subclass</dt>
+ <dd>
+ <a title="http://www.w3.org/ns/prov#CompleteMembership" href="#CompleteMembership" class="owlclass">prov:CompleteMembership</a>
+ </dd>
+
+ <dt>qualifies</dt>
+ <dd>
+ <a title="http://www.w3.org/ns/prov#membership" href="#membership" class="owlproperty">prov:membership</a>
+ </dd>
+ </dl>
+ </div>
+
+ <div id="Removal" class="entity">
+ <h3>
+ Class: <a href="#Removal"><span class="dotted" title="http://www.w3.org/ns/prov#Removal">prov:Removal</span></a>
+ <span class="backlink">
+ back to <a href="#prov-collections-owl-terms-at-a-glance">collections classes</a>
+ </span>
+ </h3>
+ <p><strong>IRI:</strong>http://www.w3.org/ns/prov#Removal</p>
+ <div class="definition"><p>Removal is a derivation that transforms a dictionary into another, by removing one or more key-value pairs.</p>
+ </div>
+
+ <div about="#example-for-class-Removal" typeof="prov:Entity" class="example">
+ <span rel="dcterms:subject" resource="http://www.w3.org/ns/prov#Removal"></span>
+ <strong>Example</strong>
+ <pre rel="prov:wasQuotedFrom" resource="http://dvcs.w3.org/hg/prov/raw-file/tip/examples/eg-24-prov-o-html-examples/rdf/create/rdf/class_Removal.ttl"
+ property="prov:value">@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix owl: <http://www.w3.org/2002/07/owl#> .
+@prefix prov: <http://www.w3.org/ns/prov#> .
+@prefix : <http://example.com/> .
+
+:c1 a prov:Dictionary .
+
+:c2
+ a prov:Dictionary,
+ prov:Entity;
+ prov:derivedByRemovalFrom :c1;
+ prov:qualifiedRemoval [
+ a prov:Removal, prov:DictionaryInvolvement;
+ prov:dictionary :c1;
+ prov:removedKey "k1"^^xsd:string,
+ "k2"^^xsd:string;
+ ];
+.
+</pre>
+ </div>
+
+ <dl class="description">
+ <dd class="comment"><p>Removal is a derivation that transforms a dictionary into another, by removing one or more key-value pairs.</p>
+ </dd>
+
+ <dt>is subclass of</dt>
+ <dd>
+ <a title="http://www.w3.org/ns/prov#DictionaryInvolvement" href="#DictionaryInvolvement" class="owlclass">prov:DictionaryInvolvement</a>
+ </dd>
+
+ <dt>in domain of</dt>
+ <dd>
+ <a title="http://www.w3.org/ns/prov#removedKey" href="#removedKey">prov:removedKey</a><sup class="type-dp" title="data property">dp</sup>
+ </dd>
+
+ <dt>parent is in domain of</dt>
+ <dd>
+ <a title="http://www.w3.org/ns/prov#dictionary" href="#dictionary">prov:dictionary</a> </dd>
+
+ <dt>in range of</dt>
+ <dd>
+ <a title="http://www.w3.org/ns/prov#qualifiedRemoval" href="#qualifiedRemoval">prov:qualifiedRemoval</a><sup class="type-op" title="object property">op</sup>
+ </dd>
+
+ <dt>qualifies</dt>
+ <dd>
+ <a title="http://www.w3.org/ns/prov#derivedByRemovalFrom" href="#derivedByRemovalFrom" class="owlproperty">prov:derivedByRemovalFrom</a>
+ </dd>
+ </dl>
+ </div>
+</div>
+<div
+ class="prov-collections owl-properties crossreference"
+ xmlns:prov="http://www.w3.org/ns/prov#">
+ <div id="derivedByInsertionFrom" class="entity">
+ <h3>
+ Property: <a href="#derivedByInsertionFrom"><span class="dotted" title="http://www.w3.org/ns/prov#derivedByInsertionFrom">prov:derivedByInsertionFrom</span></a><sup class="type-op" title="object property">op</sup>
+ <span class="backlink">
+ back to <a href="#prov-collections-owl-terms-at-a-glance">collections properties</a>
+ </span>
+ </h3>
+ <p><strong>IRI:</strong>http://www.w3.org/ns/prov#derivedByInsertionFrom</p>
+
+ <div about="#example-for-property-derivedByInsertionFrom" typeof="prov:Entity" class="example">
+ <span rel="dcterms:subject" resource="http://www.w3.org/ns/prov#derivedByInsertionFrom"></span>
+ <strong>Example</strong>
+ <pre rel="prov:wasQuotedFrom" resource="http://dvcs.w3.org/hg/prov/raw-file/tip/examples/eg-24-prov-o-html-examples/rdf/create/rdf/property_derivedByInsertionFrom.ttl"
+ property="prov:value">@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix owl: <http://www.w3.org/2002/07/owl#> .
+@prefix prov: <http://www.w3.org/ns/prov#> .
+@prefix : <http://example.com/> .
+
+
+:e1 a prov:Entity .
+:e2 a prov:Entity .
+
+:c a prov:EmptyDictionary .
+
+:c1 a prov:Dictionary;
+ prov:derivedByInsertionFrom :c;
+ prov:qualifiedInsertion [
+ a prov:Insertion;
+ prov:dictionary :c;
+ prov:inserted [
+ a prov:KeyValuePair;
+ prov:key "k1"^^xsd:string;
+ prov:value :e1;
+ ], [
+ a prov:KeyValuePair;
+ prov:key "k2"^^xsd:string;
+ prov:value :e2;
+ ];
+ ];
+. </pre>
+ </div>
+
+ <div class="description">
+ <div class="comment"><p>The dictionary was derived from the other by insertion. prov:qualifiedInsertion shows details of the insertion, in particular the inserted key-value pairs.</p>
+ </div>
+ <dl>
+
+ <dt>has super-properties</dt>
+ <dd>
+ <ul>
+ <li>
+ <a title="http://www.w3.org/ns/prov#wasDerivedFrom" href="#wasDerivedFrom" class="owlclass">prov:wasDerivedFrom</a>
+ </li>
+ </ul>
+ </dd>
+
+ <dt>has domain</dt>
+ <dd>
+ <ul>
+ <li>
+ <a title="http://www.w3.org/ns/prov#Dictionary" href="#Dictionary" class="owlclass">prov:Dictionary</a>
+ </li>
+ </ul>
+ </dd>
+
+ <dt>has range</dt>
+ <dd>
+ <ul>
+ <li>
+ <a title="http://www.w3.org/ns/prov#Dictionary" href="#Dictionary" class="owlclass">prov:Dictionary</a>
+ </li>
+ </ul>
+ </dd>
+
+ <dt>can be qualified with</dt>
+ <dd>
+ <ul>
+ <li>
+ <a title="http://www.w3.org/ns/prov#qualifiedInsertion" href="#qualifiedInsertion" class="owlproperty">prov:qualifiedInsertion</a>
+ </li>
+ <li>
+ <a title="http://www.w3.org/ns/prov#Insertion" href="#Insertion" class="owlclass">prov:Insertion</a>
+ </li>
+ </ul>
+ </dd>
+
+ </dl>
+ </div>
+ </div>
+
+ <div id="derivedByRemovalFrom" class="entity">
+ <h3>
+ Property: <a href="#derivedByRemovalFrom"><span class="dotted" title="http://www.w3.org/ns/prov#derivedByRemovalFrom">prov:derivedByRemovalFrom</span></a><sup class="type-op" title="object property">op</sup>
+ <span class="backlink">
+ back to <a href="#prov-collections-owl-terms-at-a-glance">collections properties</a>
+ </span>
+ </h3>
+ <p><strong>IRI:</strong>http://www.w3.org/ns/prov#derivedByRemovalFrom</p>
+
+ <div about="#example-for-property-derivedByRemovalFrom" typeof="prov:Entity" class="example">
+ <span rel="dcterms:subject" resource="http://www.w3.org/ns/prov#derivedByRemovalFrom"></span>
+ <strong>Example</strong>
+ <pre rel="prov:wasQuotedFrom" resource="http://dvcs.w3.org/hg/prov/raw-file/tip/examples/eg-24-prov-o-html-examples/rdf/create/rdf/property_derivedByRemovalFrom.ttl"
+ property="prov:value">@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix owl: <http://www.w3.org/2002/07/owl#> .
+@prefix prov: <http://www.w3.org/ns/prov#> .
+@prefix : <http://example.com/> .
+
+:c1 a prov:Dictionary .
+
+:c2
+ a prov:Dictionary, prov:Entity;
+ prov:derivedByRemovalFrom :c1;
+ prov:qualifiedRemoval [
+ a prov:Removal, prov:DictionaryInvolvement;
+ prov:dictionary :c1;
+ prov:removedKey "k1"^^xsd:string,
+ "k2"^^xsd:string;
+ ];
+.
+</pre>
+ </div>
+
+ <div class="description">
+ <div class="comment"><p>The dictionary was derived from the other by removal. prov:qualifiedRemoval shows details of the removal, in particular the removed key-value pairs.</p>
+ </div>
+ <dl>
+
+ <dt>has super-properties</dt>
+ <dd>
+ <ul>
+ <li>
+ <a title="http://www.w3.org/ns/prov#wasDerivedFrom" href="#wasDerivedFrom" class="owlclass">prov:wasDerivedFrom</a>
+ </li>
+ </ul>
+ </dd>
+
+ <dt>has domain</dt>
+ <dd>
+ <ul>
+ <li>
+ <a title="http://www.w3.org/ns/prov#Dictionary" href="#Dictionary" class="owlclass">prov:Dictionary</a>
+ </li>
+ </ul>
+ </dd>
+
+ <dt>has range</dt>
+ <dd>
+ <ul>
+ <li>
+ <a title="http://www.w3.org/ns/prov#Dictionary" href="#Dictionary" class="owlclass">prov:Dictionary</a>
+ </li>
+ </ul>
+ </dd>
+
+ <dt>can be qualified with</dt>
+ <dd>
+ <ul>
+ <li>
+ <a title="http://www.w3.org/ns/prov#qualifiedRemoval" href="#qualifiedRemoval" class="owlproperty">prov:qualifiedRemoval</a>
+ </li>
+ <li>
+ <a title="http://www.w3.org/ns/prov#Removal" href="#Removal" class="owlclass">prov:Removal</a>
+ </li>
+ </ul>
+ </dd>
+
+ </dl>
+ </div>
+ </div>
+
+ <div id="dictionary" class="entity">
+ <h3>
+ Property: <a href="#dictionary"><span class="dotted" title="http://www.w3.org/ns/prov#dictionary">prov:dictionary</span></a><sup class="type-op" title="object property">op</sup>
+ <span class="backlink">
+ back to <a href="#prov-collections-owl-terms-at-a-glance">collections properties</a>
+ </span>
+ </h3>
+ <p><strong>IRI:</strong>http://www.w3.org/ns/prov#dictionary</p>
+
+ <div about="#example-for-property-dictionary" typeof="prov:Entity" class="example">
+ <span rel="dcterms:subject" resource="http://www.w3.org/ns/prov#dictionary"></span>
+ <strong>Example</strong>
+ <pre rel="prov:wasQuotedFrom" resource="http://dvcs.w3.org/hg/prov/raw-file/tip/examples/eg-24-prov-o-html-examples/rdf/create/rdf/property_dictionary.ttl"
+ property="prov:value">@prefix prov: <http://www.w3.org/ns/prov#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix : <http://example.org/> .
+
+:e1 a prov:Entity .
+
+:c a prov:EmptyDictionary .
+
+:c1 a prov:Dictionary;
+ prov:derivedByInsertionFrom :c;
+ prov:qualifiedInsertion [
+ a prov:Insertion;
+ prov:dictionary :c;
+ prov:inserted [
+ a prov:KeyValuePair;
+ prov:key "k1"^^xsd:string;
+ prov:value :e1;
+ ];
+ ];
+.
+</pre>
+ </div>
+
+ <div class="description">
+ <div class="comment"><p>The property used by a prov:DictionaryInvolvement to cite the prov:Dictionary that was prov:involved in insertion or removal of elements of a collection. </p>
+ </div>
+ <dl>
+
+ <dt>has super-properties</dt>
+ <dd>
+ <ul>
+ <li>
+ <a title="http://www.w3.org/ns/prov#involvee" href="#involvee" class="owlclass">prov:involvee</a>
+ </li>
+ </ul>
+ </dd>
+
+ <dt>has domain</dt>
+ <dd>
+ <ul>
+ <li>
+ <a title="http://www.w3.org/ns/prov#DictionaryInvolvement" href="#DictionaryInvolvement" class="owlclass">prov:DictionaryInvolvement</a>
+ </li>
+ </ul>
+ </dd>
+
+ <dt>has range</dt>
+ <dd>
+ <ul>
+ <li>
+ <a title="http://www.w3.org/ns/prov#Dictionary" href="#Dictionary" class="owlclass">prov:Dictionary</a>
+ </li>
+ </ul>
+ </dd>
+
+ </dl>
+ </div>
+ </div>
+
+ <div id="inserted" class="entity">
+ <h3>
+ Property: <a href="#inserted"><span class="dotted" title="http://www.w3.org/ns/prov#inserted">prov:inserted</span></a><sup class="type-op" title="object property">op</sup>
+ <span class="backlink">
+ back to <a href="#prov-collections-owl-terms-at-a-glance">collections properties</a>
+ </span>
+ </h3>
+ <p><strong>IRI:</strong>http://www.w3.org/ns/prov#inserted</p>
+
+ <div about="#example-for-property-inserted" typeof="prov:Entity" class="example">
+ <span rel="dcterms:subject" resource="http://www.w3.org/ns/prov#inserted"></span>
+ <strong>Example</strong>
+ <pre rel="prov:wasQuotedFrom" resource="http://dvcs.w3.org/hg/prov/raw-file/tip/examples/eg-24-prov-o-html-examples/rdf/create/rdf/property_inserted.ttl"
+ property="prov:value">@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix owl: <http://www.w3.org/2002/07/owl#> .
+@prefix prov: <http://www.w3.org/ns/prov#> .
+@prefix : <http://example.com/> .
+
+:our-NEW-baseball-team-field-positions
+ a prov:Dictionary,
+ :FieldPositions;
+ prov:derivedByInsertionFrom :our-old-baseball-team-field-positions;
+ prov:qualifiedInsertion [
+ a prov:Insertion;
+ prov:collection :our-old-baseball-team-field-positions;
+ prov:inserted [
+ a prov:KeyValuePair;
+ prov:key "first-baseman"^^xsd:string;
+ prov:value <http://dbpedia.org/resource/Jim_Thorpe>;
+ ];
+ ];
+.
+
+<http://dbpedia.org/resource/Jim_Thorpe> a prov:Entity .
+
+:our-old-baseball-team-field-positions a prov:Dictionary .
+</pre>
+ </div>
+
+ <div class="description">
+ <div class="comment"><p>An object property to refer to the prov:KeyValuePair inserted into a prov:Dictionary.</p>
+ </div>
+ <dl>
+
+ <dt>has domain</dt>
+ <dd>
+ <ul>
+ <li>
+ <a title="http://www.w3.org/ns/prov#Insertion" href="#Insertion" class="owlclass">prov:Insertion</a>
+ </li>
+ </ul>
+ </dd>
+
+ <dt>has range</dt>
+ <dd>
+ <ul>
+ <li>
+ <a title="http://www.w3.org/ns/prov#KeyValuePair" href="#KeyValuePair" class="owlclass">prov:KeyValuePair</a>
+ </li>
+ </ul>
+ </dd>
+
+ </dl>
+ </div>
+ </div>
+
+ <div id="member" class="entity">
+ <h3>
+ Property: <a href="#member"><span class="dotted" title="http://www.w3.org/ns/prov#member">prov:member</span></a><sup class="type-op" title="object property">op</sup>
+ <span class="backlink">
+ back to <a href="#prov-collections-owl-terms-at-a-glance">collections properties</a>
+ </span>
+ </h3>
+ <p><strong>IRI:</strong>http://www.w3.org/ns/prov#member</p>
+
+ <div about="#example-for-property-member" typeof="prov:Entity" class="example">
+ <span rel="dcterms:subject" resource="http://www.w3.org/ns/prov#member"></span>
+ <strong>Example</strong>
+ <pre rel="prov:wasQuotedFrom" resource="http://dvcs.w3.org/hg/prov/raw-file/tip/examples/eg-24-prov-o-html-examples/rdf/create/rdf/property_member.ttl"
+ property="prov:value">@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix owl: <http://www.w3.org/2002/07/owl#> .
+@prefix prov: <http://www.w3.org/ns/prov#> .
+@prefix : <http://example.com/> .
+
+:our-old-baseball-team-field-positions
+ a prov:Dictionary,
+ :FieldPositions;
+ prov:membership [
+ a prov:Membership;
+ prov:member [
+ a prov:KeyValuePair;
+ prov:key "first-baseman"^^xsd:string;
+ prov:value :george;
+ ];
+ prov:member [
+ a prov:KeyValuePair;
+ prov:key "pitcher"^^xsd:string;
+ prov:value :carl;
+ ]
+ ];
+.
+
+:george a prov:Entity .
+:carl a prov:Entity .
+</pre>
+ </div>
+
+ <div class="description">
+ <div class="comment"><p>The key-value pair was part of the membership. A membership can have multiple members.</p>
+ </div>
+ <dl>
+
+ <dt>has domain</dt>
+ <dd>
+ <ul>
+ <li>
+ <a title="http://www.w3.org/ns/prov#Membership" href="#Membership" class="owlclass">prov:Membership</a>
+ </li>
+ </ul>
+ </dd>
+
+ <dt>has range</dt>
+ <dd>
+ <ul>
+ <li>
+ <a title="http://www.w3.org/ns/prov#KeyValuePair" href="#KeyValuePair" class="owlclass">prov:KeyValuePair</a>
+ </li>
+ </ul>
+ </dd>
+
+ </dl>
+ </div>
+ </div>
+
+ <div id="membership" class="entity">
+ <h3>
+ Property: <a href="#membership"><span class="dotted" title="http://www.w3.org/ns/prov#membership">prov:membership</span></a><sup class="type-op" title="object property">op</sup>
+ <span class="backlink">
+ back to <a href="#prov-collections-owl-terms-at-a-glance">collections properties</a>
+ </span>
+ </h3>
+ <p><strong>IRI:</strong>http://www.w3.org/ns/prov#membership</p>
+
+ <div about="#example-for-property-membership" typeof="prov:Entity" class="example">
+ <span rel="dcterms:subject" resource="http://www.w3.org/ns/prov#membership"></span>
+ <strong>Example</strong>
+ <pre rel="prov:wasQuotedFrom" resource="http://dvcs.w3.org/hg/prov/raw-file/tip/examples/eg-24-prov-o-html-examples/rdf/create/rdf/property_membership.ttl"
+ property="prov:value">@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix owl: <http://www.w3.org/2002/07/owl#> .
+@prefix prov: <http://www.w3.org/ns/prov#> .
+@prefix : <http://example.com/> .
+
+:e1 a prov:Entity .
+:e2 a prov:Entity .
+
+:c1 a prov:Dictionary, prov:Entity;
+ prov:membership [
+ a prov:Membership;
+ # These are (some of the) members of c1
+ prov:member [
+ a prov:KeyValuePair;
+ prov:key "k1"^^xsd:string;
+ prov:value :e1
+ ], [
+ a prov:KeyValuePair;
+ prov:key "k2"^^xsd:string;
+ prov:value :e2
+ ];
+ ];
+.
+</pre>
+ </div>
+
+ <div class="description">
+ <div class="comment"><p>The collection included the specified membership of keys-values.</p>
+ </div>
+ <dl>
+
+ <dt>has domain</dt>
+ <dd>
+ <ul>
+ <li>
+ <a title="http://www.w3.org/ns/prov#Dictionary" href="#Dictionary" class="owlclass">prov:Dictionary</a>
+ </li>
+ </ul>
+ </dd>
+
+ <dt>has range</dt>
+ <dd>
+ <ul>
+ <li>
+ <a title="http://www.w3.org/ns/prov#Membership" href="#Membership" class="owlclass">prov:Membership</a>
+ </li>
+ </ul>
+ </dd>
+
+ </dl>
+ </div>
+ </div>
+
+ <div id="pairKey" class="entity">
+ <h3>
+ Property: <a href="#pairKey"><span class="dotted" title="http://www.w3.org/ns/prov#pairKey">prov:pairKey</span></a><sup class="type-dp" title="data property">dp</sup>
+ <span class="backlink">
+ back to <a href="#prov-collections-owl-terms-at-a-glance">collections properties</a>
+ </span>
+ </h3>
+ <p><strong>IRI:</strong>http://www.w3.org/ns/prov#pairKey</p>
+
+ <div about="#example-for-property-pairKey" typeof="prov:Entity" class="example">
+ <span rel="dcterms:subject" resource="http://www.w3.org/ns/prov#pairKey"></span>
+ <strong>Example</strong>
+ <pre rel="prov:wasQuotedFrom" resource="http://dvcs.w3.org/hg/prov/raw-file/tip/examples/eg-24-prov-o-html-examples/rdf/create/rdf/property_pairKey.ttl"
+ property="prov:value">@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix owl: <http://www.w3.org/2002/07/owl#> .
+@prefix prov: <http://www.w3.org/ns/prov#> .
+@prefix : <http://example.com/> .
+
+# TODO
+</pre>
+ </div>
+
+ <div class="description">
+ <div class="comment"><p>The key of a KeyValuePair, which is an element of a prov:Dictionary.</p>
+ </div>
+ <p><strong>has characteristics</strong> <a href="http://www.w3.org/TR/owl2-syntax/#Functional_Object_Properties"> Functional</a> </p>
+ <dl>
+
+ <dt>has domain</dt>
+ <dd>
+ <ul>
+ <li>
+ <a title="http://www.w3.org/ns/prov#KeyValuePair" href="#KeyValuePair" class="owlclass">prov:KeyValuePair</a>
+ </li>
+ </ul>
+ </dd>
+
+ <dt>has range</dt>
+ <dd>
+ <ul>
+ <li>
+ http://www.w3.org/2000/01/rdf-schema#Literal
+ </li>
+ </ul>
+ </dd>
+
+ </dl>
+ </div>
+ </div>
+
+ <div id="pairValue" class="entity">
+ <h3>
+ Property: <a href="#pairValue"><span class="dotted" title="http://www.w3.org/ns/prov#pairValue">prov:pairValue</span></a><sup class="type-op" title="object property">op</sup>
+ <span class="backlink">
+ back to <a href="#prov-collections-owl-terms-at-a-glance">collections properties</a>
+ </span>
+ </h3>
+ <p><strong>IRI:</strong>http://www.w3.org/ns/prov#pairValue</p>
+
+ <div about="#example-for-property-pairValue" typeof="prov:Entity" class="example">
+ <span rel="dcterms:subject" resource="http://www.w3.org/ns/prov#pairValue"></span>
+ <strong>Example</strong>
+ <pre rel="prov:wasQuotedFrom" resource="http://dvcs.w3.org/hg/prov/raw-file/tip/examples/eg-24-prov-o-html-examples/rdf/create/rdf/property_pairValue.ttl"
+ property="prov:value">@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix owl: <http://www.w3.org/2002/07/owl#> .
+@prefix prov: <http://www.w3.org/ns/prov#> .
+@prefix : <http://example.com/> .
+
+# TODO
+</pre>
+ </div>
+
+ <div class="description">
+ <div class="comment"><p>The value of a KeyValuePair.</p>
+ </div>
+ <p><strong>has characteristics</strong> <a href="http://www.w3.org/TR/owl2-syntax/#Functional_Object_Properties"> Functional</a> </p>
+ <dl>
+
+ <dt>has domain</dt>
+ <dd>
+ <ul>
+ <li>
+ <a title="http://www.w3.org/ns/prov#KeyValuePair" href="#KeyValuePair" class="owlclass">prov:KeyValuePair</a>
+ </li>
+ </ul>
+ </dd>
+
+ <dt>has range</dt>
+ <dd>
+ <ul>
+ <li>
+ <a title="http://www.w3.org/ns/prov#Entity" href="#Entity" class="owlclass">prov:Entity</a>
+ </li>
+ </ul>
+ </dd>
+
+ </dl>
+ </div>
+ </div>
+
+ <div id="qualifiedInsertion" class="entity">
+ <h3>
+ Property: <a href="#qualifiedInsertion"><span class="dotted" title="http://www.w3.org/ns/prov#qualifiedInsertion">prov:qualifiedInsertion</span></a><sup class="type-op" title="object property">op</sup>
+ <span class="backlink">
+ back to <a href="#prov-collections-owl-terms-at-a-glance">collections properties</a>
+ </span>
+ </h3>
+ <p><strong>IRI:</strong>http://www.w3.org/ns/prov#qualifiedInsertion</p>
+
+ <div about="#example-for-property-qualifiedInsertion" typeof="prov:Entity" class="example">
+ <span rel="dcterms:subject" resource="http://www.w3.org/ns/prov#qualifiedInsertion"></span>
+ <strong>Example</strong>
+ <pre rel="prov:wasQuotedFrom" resource="http://dvcs.w3.org/hg/prov/raw-file/tip/examples/eg-24-prov-o-html-examples/rdf/create/rdf/property_qualifiedInsertion.ttl"
+ property="prov:value">@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix owl: <http://www.w3.org/2002/07/owl#> .
+@prefix prov: <http://www.w3.org/ns/prov#> .
+@prefix : <http://example.com/> .
+
+:our-NEW-baseball-team-field-positions
+ a prov:Dictionary,
+ :FieldPositions;
+ prov:derivedByInsertionFrom :our-old-baseball-team-field-positions;
+ prov:qualifiedInsertion [
+ a prov:Insertion;
+ prov:collection :our-old-baseball-team-field-positions;
+ prov:inserted [
+ a prov:KeyValuePair;
+ prov:key "first-baseman"^^xsd:string;
+ prov:value <http://dbpedia.org/resource/Jim_Thorpe>;
+ ];
+ ];
+.
+
+<http://dbpedia.org/resource/Jim_Thorpe> a prov:Entity .
+
+:our-old-baseball-team-field-positions
+ a prov:Dictionary,
+ :FieldPositions;
+ prov:membership [
+ a prov:Membership;
+ prov:member [
+ a prov:KeyValuePair;
+ prov:key "first-baseman"^^xsd:string;
+ prov:value :george;
+ ];
+ prov:member [
+ a prov:KeyValuePair;
+ prov:key "pitcher"^^xsd:string;
+ prov:value :carl;
+ ];
+ ];
+.
+
+:george a prov:Entity .
+:carl a prov:Entity .
+</pre>
+ </div>
+
+ <div class="description">
+ <div class="comment"><p>If this Dictionary prov:derivedByInsertionFrom another Dictionary :e, then it can qualify how it did perform the Insertion using prov:qualifiedInsertion [ a prov:Insertion; prov:dictionary :e; prov:inserted [a prov:KeyValuePair; prov:key "k1"^^xsd:string; prov:value :foo] ].</p>
+ </div>
+ <dl>
+
+ <dt>has domain</dt>
+ <dd>
+ <ul>
+ <li>
+ <a title="http://www.w3.org/ns/prov#Dictionary" href="#Dictionary" class="owlclass">prov:Dictionary</a>
+ </li>
+ </ul>
+ </dd>
+
+ <dt>has range</dt>
+ <dd>
+ <ul>
+ <li>
+ <a title="http://www.w3.org/ns/prov#Insertion" href="#Insertion" class="owlclass">prov:Insertion</a>
+ </li>
+ </ul>
+ </dd>
+
+ <dt>qualifies</dt>
+ <dd>
+ <a title="http://www.w3.org/ns/prov#derivedByInsertionFrom" href="#derivedByInsertionFrom" class="owlproperty">prov:derivedByInsertionFrom</a>
+ </dd>
+
+ </dl>
+ </div>
+ </div>
+
+ <div id="qualifiedRemoval" class="entity">
+ <h3>
+ Property: <a href="#qualifiedRemoval"><span class="dotted" title="http://www.w3.org/ns/prov#qualifiedRemoval">prov:qualifiedRemoval</span></a><sup class="type-op" title="object property">op</sup>
+ <span class="backlink">
+ back to <a href="#prov-collections-owl-terms-at-a-glance">collections properties</a>
+ </span>
+ </h3>
+ <p><strong>IRI:</strong>http://www.w3.org/ns/prov#qualifiedRemoval</p>
+
+ <div about="#example-for-property-qualifiedRemoval" typeof="prov:Entity" class="example">
+ <span rel="dcterms:subject" resource="http://www.w3.org/ns/prov#qualifiedRemoval"></span>
+ <strong>Example</strong>
+ <pre rel="prov:wasQuotedFrom" resource="http://dvcs.w3.org/hg/prov/raw-file/tip/examples/eg-24-prov-o-html-examples/rdf/create/rdf/property_qualifiedRemoval.ttl"
+ property="prov:value">@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix owl: <http://www.w3.org/2002/07/owl#> .
+@prefix prov: <http://www.w3.org/ns/prov#> .
+@prefix : <http://example.com/> .
+
+:d1 a prov:Dictionary .
+
+:d2
+ a prov:Dictionary, prov:Entity;
+ prov:derivedByRemovalFrom :d1;
+ prov:qualifiedRemoval [
+ a prov:Removal;
+ prov:dictionary :d1;
+ prov:removedKey "k1"^^xsd:string,
+ "k2"^^xsd:string;
+ ];
+.
+</pre>
+ </div>
+
+ <div class="description">
+ <div class="comment"><p>If this Dictionary prov:derivedByRemovalFrom another Dictionary :e, then it can qualify how it did perform the Removal using prov:qualifiedRemoval [ a prov:Removal; prov:dictionary :c; prov:removed "k1"^^xsd:string ].</p>
+ </div>
+ <dl>
+
+ <dt>has domain</dt>
+ <dd>
+ <ul>
+ <li>
+ <a title="http://www.w3.org/ns/prov#Dictionary" href="#Dictionary" class="owlclass">prov:Dictionary</a>
+ </li>
+ </ul>
+ </dd>
+
+ <dt>has range</dt>
+ <dd>
+ <ul>
+ <li>
+ <a title="http://www.w3.org/ns/prov#Removal" href="#Removal" class="owlclass">prov:Removal</a>
+ </li>
+ </ul>
+ </dd>
+
+ <dt>qualifies</dt>
+ <dd>
+ <a title="http://www.w3.org/ns/prov#derivedByRemovalFrom" href="#derivedByRemovalFrom" class="owlproperty">prov:derivedByRemovalFrom</a>
+ </dd>
+
+ </dl>
+ </div>
+ </div>
+
+ <div id="removedKey" class="entity">
+ <h3>
+ Property: <a href="#removedKey"><span class="dotted" title="http://www.w3.org/ns/prov#removedKey">prov:removedKey</span></a><sup class="type-dp" title="data property">dp</sup>
+ <span class="backlink">
+ back to <a href="#prov-collections-owl-terms-at-a-glance">collections properties</a>
+ </span>
+ </h3>
+ <p><strong>IRI:</strong>http://www.w3.org/ns/prov#removedKey</p>
+
+ <div about="#example-for-property-removedKey" typeof="prov:Entity" class="example">
+ <span rel="dcterms:subject" resource="http://www.w3.org/ns/prov#removedKey"></span>
+ <strong>Example</strong>
+ <pre rel="prov:wasQuotedFrom" resource="http://dvcs.w3.org/hg/prov/raw-file/tip/examples/eg-24-prov-o-html-examples/rdf/create/rdf/property_removedKey.ttl"
+ property="prov:value">@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix owl: <http://www.w3.org/2002/07/owl#> .
+@prefix prov: <http://www.w3.org/ns/prov#> .
+@prefix : <http://example.com/> .
+
+:c2
+ a prov:Dictionary,
+ prov:Entity;
+ prov:derivedByRemovalFrom :c1;
+ prov:qualifiedRemoval [
+ a prov:Removal,
+ prov:DictionaryInvolvement;
+ prov:dictionary :c1;
+ prov:removedKey "k1"^^xsd:string,
+ 1337,
+ 3.14;
+ ];
+.
+</pre>
+ </div>
+
+ <div class="description">
+ <div class="comment"><p>The key removed in a Removal.</p>
+ </div>
+ <dl>
+
+ <dt>has domain</dt>
+ <dd>
+ <ul>
+ <li>
+ <a title="http://www.w3.org/ns/prov#Removal" href="#Removal" class="owlclass">prov:Removal</a>
+ </li>
+ </ul>
+ </dd>
+
+ <dt>has range</dt>
+ <dd>
+ <ul>
+ <li>
+ http://www.w3.org/2000/01/rdf-schema#Literal
+ </li>
+ </ul>
+ </dd>
+
+ </dl>
+ </div>
+ </div>
+ </div>
+
+
</section>
+<section id="dictionary-xml-schema">
+<h2>XML Schema Dictionary</h2>
+</section>
+
+<section id="dictionary-constraints">
+<h2>Constraints Associated with Dictionary</h2>
+</section>
+
+
<section class="appendix">
<h2>Acknowledgements</h2>