merge
authorTim L <lebot@rpi.edu>
Mon, 17 Dec 2012 09:43:00 -0500
changeset 5370 3afdd5380e0b
parent 5369 4835b8879db3 (current diff)
parent 5368 2676962db448 (diff)
child 5371 978d01eb5481
merge
--- a/dictionary/prov-dictionary.html	Mon Dec 17 09:42:40 2012 -0500
+++ b/dictionary/prov-dictionary.html	Mon Dec 17 09:43:00 2012 -0500
@@ -825,45 +825,30 @@
 <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:
+ A <dfn title="hadMember-d">membership</dfn> relation, written <span class="pnExpression">hadMember(d, (key_1, e_1))</span>, has:
 <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>
-<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>
+<li><span class='attribute' id="membership-d.dictionary">dictionary</span>: an identifier (<span class="name">d</span>) for the dictionary whose members are asserted; </li>
+<li><span class='attribute' id="membership-d.key-entity-set">key-entity-pair</span>: a key-entity pair <span class="name">(key_1, e_1)</span> that is a member of the dictionary;</li>
 </ul>
 
 </div>
 
-<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
-entity(d2, [prov:type='prov:Dictionary' ])    // d2 is a dictionary, with unknown content
+entity(d, [prov:type='prov:Dictionary' ])    // d1 is a dictionary, with unknown content
 
 entity(e1)
 entity(e2)
 
-hadMember(d1, {("k1", e1), ("k2", e2)} )  
-hadMember(d2, {("k1", e1), ("k2", e2)}, true)  
+hadMember(d, ("k1", e1))  
+hadMember(d, ("k2", e2))  
 
 </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>
-<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>
+<li> <span class="name">d</span>  has  the following pairs as members: <span class="name">("k1", e1), ("k2", e2)</span>, and may contain others.</li>
 </ul>
-<p> Thus, the membership of <span class="name">d1</span> is only partially known.</p>
+<p> Thus, the membership of <span class="name">d</span> is only partially known, unless it was derived through insertions and removals from an empty dictionary (See <a href="#insertion-removal-membership-inference_text">Completeness constraints</a>).</p>
 </div>
 
 </section> <!-- end membership -->
@@ -1001,14 +986,9 @@
  <span class="nonterminal">membershipExpression</span>&nbsp;::=  
 <span class="name">hadMember</span> 
  <span class="name">(</span>
- <span class="optional"><span class="nonterminal">identifier</span>
- <span class="name">,</span></span>
-<span class="nonterminal">cIdentifier</span>
+<span class="nonterminal">dIdentifier</span>
  <span class="name">,</span>
-  <span class="name">{</span>
-  <span class="nonterminal">keyValuePairs</span>
-   <span class="name">}</span>
-<span class="nonterminal">optional-attribute-values</span>
+  <span class="nonterminal">keyValuePair</span>
   <span class="name">)</span>
   <br>
 </div>
@@ -1020,40 +1000,26 @@
 <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="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>
+<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">keyEntityPair</a></code></td></tr>
+
 </table>
 </div>
 
 
 
 <div class="anexample">
-    <pre class="codeexample">
-   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,
-  <span class="name">c</span> is the  identifier for the collection whose membership is stated,
-  <span class="name"> {("k4", v4), ("k5", v5)}</span> is the set of key-value pairs that are members of 
-  <span class="name">c</span>,
-    and <span class="name">[]</span> is the optional (empty) set of attributes. </p>  
-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.
-
+	<p>In this example, d is a dictionary known to have <span class="name">e0</span>, <span class="name">e1</span>, and <span class="name">e2</span> as members, and may have other members.</p>
 <pre class="codeexample">
-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, [])  
+entity(e0)
+entity(e1)
+entity(e2)
+
+entity(d, [prov:type='prov:Dictionary'  ])      // d is a dictionary, with unknown content
+hadMember(d, ("k0", e0))
+hadMember(d, ("k1", e1))
+hadMember(d, ("k2", e2))
 </pre>
 </div>
 
@@ -1066,9 +1032,9 @@
  <span class="name">(</span>
  <span class="optional"><span class="nonterminal">identifier</span>
  <span class="name">,</span></span>
-<span class="nonterminal">cIdentifier</span>
+<span class="nonterminal">dIdentifier</span>
  <span class="name">,</span>
-<span class="nonterminal">cIdentifier</span>
+<span class="nonterminal">dIdentifier</span>
  <span class="name">,</span>
   <span class="name">{</span>
   <span class="nonterminal">keyValuePairs</span>
@@ -1086,9 +1052,9 @@
 
 <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.after"><span class='attribute' id="provn-insertion.after">after</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-cIdentifier">dIdentifier</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">dIdentifier</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>
@@ -1100,21 +1066,21 @@
 
 <div class="anexample">
     <pre class="codeexample">
- derivedByInsertionFrom(id; c1, c, {("k1", v1), ("k2", v2)}, [])  
+ derivedByInsertionFrom(id; d1, d, {("k1", e1), ("k2", e2)}, [])  
   </pre>
 <p>  Here
     <span class="name">id</span> is the optional insertion identifier,
-  <span class="name">c1</span> is the  identifier for the collection after the insertion,
-  <span class="name">c</span> is the  identifier for the collection before the insertion,
-  <span class="name"> {("k1", v1), ("k2", v2)}</span> is the set of key-value pairs that have been inserted in
-  <span class="name">c</span>,
+  <span class="name">d1</span> is the  identifier for the dictionary after the insertion,
+  <span class="name">d</span> is the  identifier for the dictionary before the insertion,
+  <span class="name"> {("k1", e1), ("k2", e2)}</span> is the set of key-entity pairs that have been inserted in
+  <span class="name">d</span>,
     and <span class="name">[]</span> is the optional (empty) set of attributes. </p>
 The remaining examples show cases where some of the optionals are omitted.
 
   <pre class="codeexample">
- derivedByInsertionFrom(c1, c, {("k1", v1), ("k2", v2)})  
- derivedByInsertionFrom(c1, c, {("k1", v1)})  
- derivedByInsertionFrom(c1, c, {("k1", v1), ("k2", v2)}, [])
+ derivedByInsertionFrom(d1, d, {("k1", e1), ("k2", e2)})  
+ derivedByInsertionFrom(d1, d, {("k1", e1)})  
+ derivedByInsertionFrom(d1, d, {("k1", e1), ("k2", e2)}, [])
 </pre>
 </div>
 
@@ -1128,9 +1094,9 @@
  <span class="name">(</span>
  <span class="optional"><span class="nonterminal">identifier</span>
  <span class="name">,</span></span>
-<span class="nonterminal">cIdentifier</span>
+<span class="nonterminal">dIdentifier</span>
  <span class="name">,</span>
-<span class="nonterminal">cIdentifier</span>
+<span class="nonterminal">dIdentifier</span>
  <span class="name">,</span>
   <span class="name">{</span>
   <span class="nonterminal">keySet</span>
@@ -1148,9 +1114,9 @@
 
 <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.after"><span class='attribute' id="provn-removal.after">after</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-cIdentifier">dIdentifier</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">dIdentifier</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>
@@ -1164,24 +1130,25 @@
 
 <div class="anexample">
     <pre class="codeexample">
- derivedByRemovalFrom(id; c3, c, {"k1", "k3"}, [])  
+ derivedByRemovalFrom(id; d3, d, {"k1", "k2"}, [])  
   </pre>
 <p>  Here
     <span class="name">id</span> is the optional removal identifier,
-  <span class="name">c1</span> is the  identifier for the collection after the removal,
-  <span class="name">c</span> is the  identifier for the collection before the removal,
-  <span class="name"> {("k1", v1), ("k2", v2)}</span> is the set of key-value pairs that have been removed from
-  <span class="name">c</span>,
+  <span class="name">d1</span> is the  identifier for the collection after the removal,
+  <span class="name">d</span> is the  identifier for the collection before the removal,
+  <span class="name"> {"k1", "k2"}</span> is the set of keys that have been removed from
+  <span class="name">d</span>,
     and <span class="name">[]</span> is the optional (empty) set of attributes. </p>
   The remaining examples show cases where some of the optionals are omitted.
 
   <pre class="codeexample">
-   derivedByRemovalFrom(c3, c1, {"k1", "k3"})               
-   derivedByRemovalFrom(c3, c1, {"k1"})               
-   derivedByRemovalFrom(c3, c1, {"k1", "k3"}, [])               
+   derivedByRemovalFrom(d2, d, {"k1", "k2"})               
+   derivedByRemovalFrom(d2, d, {"k1"})               
+   derivedByRemovalFrom(d2, d, {"k1", "k2"}, [])               
 </pre>
   </div>
 
+
 </section> <!-- removal -->
 
 </section>
@@ -2705,14 +2672,123 @@
 
 <section id="dictionary-xml-schema"> 
 <h2>XML Schema Dictionary</h2>
-
-TODO: PROV-XML Team?
+The XML serialization of Dictionary will follow once this document has passed a first round of internal review by the Working Group.
 </section>
 
 <section id="dictionary-constraints"> 
 <h2>Constraints Associated with Dictionary</h2>
-
-<a href="http://dvcs.w3.org/hg/prov/raw-file/default/dictionary/PROV-Dictionary_discussion.txt">Discussion on constraints for PROV-Dictionary</a>
+In this section, we specify some inferences and constraints associated with dictionaries. These inferences and constraints need to be applied to obtain valid provenance. 
+For more information on how to read this section, we refer to [[PROV-CONSTRAINTS]].
+<section id="dictionary-constraints-inferences">
+	<h3>Inferences</h3>
+	<p id="membership-membership-inference_text">Each key maps to a single entity.</p>
+	 <div class='inference' id='membership-membership-inference'>
+<p>
+<span class="conditional">IF</span>  <span class="name">hadMember(d1, ("k1",e1))</span>
+   and <span class="name">hadMember(d1, ("k1",e2))</span> 
+   <span class='conditional'>THEN</span> <span class="name">e1 = e2</span>
+</p></div>
+
+<p id="membership-insertion-membership-inference_text">If a dictionary was derived from another dictionary by an insertion, then the former holds all key-entity pairs of the latter, except those updated by the insertion.</p>
+	 <div class='inference' id='membership-insertion-membership-inference'>
+<p>
+<span class="conditional">IF</span>  <span class="name">hadMember(d1, ("k1",e1))</span>
+   and <span class="name">derivedByInsertionFrom(d2, d1, {("k2", _e2)})</span> and <span class="name">k1</span> &ne; <span class="name">k2</span>
+   <span class='conditional'>THEN</span> <span class="name">hadMember(d2, ("k1", e1))</span>
+</p></div>
+<p id="membership-update-membership-inference_text">Insertion provides an "update semantics" for the keys that are already present in a dictionary. A new pair replaces an existing pair with the same key in the new dictionary. </p>
+	 <div class='inference' id='membership-update-membership-inference'>
+<p>
+<span class="conditional">IF</span>  <span class="name">hadMember(d1, ("k1", e1))</span>
+   and <span class="name">derivedByInsertionFrom(d2, d1, {("k1", e2)})</span>
+   <span class='conditional'>THEN</span> <span class="name">hadMember(d2, ("k1", e2))</span>
+</p></div>
+
+<p id="insertion-membership-inference_text">A dictionary that was derived by an insertion of key-entity pairs, holds all these specified key-entity pairs.</p>
+	 <div class='inference' id='insertion-membership-inference'>
+<p>
+<span class="conditional">IF</span> <span class="name">derivedByInsertionFrom(d2, d1, {("k1", e1)})</span> 
+   <span class='conditional'>THEN</span> <span class="name">hadMember(d2, ("k1", e1))</span>
+</p></div>
+
+
+<p id="removal-membership-inference_text">Only keys that actually mapped to an entity in a dictionary can be removed from it.</p>
+	 <div class='inference' id='removal-membership-inference'>
+<p>
+<span class="conditional">IF</span> <span class="name">derivedByRemovalFrom(d2, d1, {"k1"})</span> 
+   <span class='conditional'>THEN</span> <span class="name">hadMember(d1, ("k1",_e1))</span>
+</p></div>
+
+<p id="insertion-derivation-inference_text">Insertion and removal are special cases of derivation.</p>
+	 <div class='inference' id='insertion-derivation-inference'>
+<p>
+<span class="conditional">IF</span> <span class="name">derivedByInsertionFrom(d2, d1, {_("k1", e1)})</span> 
+   <span class='conditional'>THEN</span> <span class="name">wasDerivedFrom(d2, d1)</span>
+</p></div>
+	 <div class='inference' id='removal-derivation-inference'>
+<p>
+<span class="conditional">IF</span> <span class="name">derivedByRemovalFrom(d2, d1, {_"k1"})</span> 
+   <span class='conditional'>THEN</span> <span class="name">wasDerivedFrom(d2, d1)</span>
+</p></div>
+
+
+<p id="insertion-removal-membership-inference_text">Insertions and removals do not introduce any new key-entity pairs, other than those specified.</p>
+	 <div class='inference' id='insertion-removal-membership-inference'>
+<p>
+<span class="conditional">IF</span> <span class="name">derivedByInsertionFrom(d2, d1, {("k1", _e1)})</span> and <span class="name">derivedByRemovalFrom(d3, d2, {"k1"})</span> 
+   <span class='conditional'>THEN</span> <span class="name">hadMember(d1, ("k2",e2))</span> holds <span
+  class='conditional'>IF AND ONLY IF</span> <span class="name">hadMember(d3, ("k2",e2))</span>
+</p></div>
+  <div class="remark">
+  Note that this inference, together with the constraints that specify that a dictionary cannot be derived by multiple insertions or removals, and that an EmptyDictionary does not contain any key-entity pairs, guarantees <b>completeness</b> of a dictionary, if it can be traced back to an EmptyDictionary through insertions and removals.
+  Here, completeness means that all key-entity pairs of the dictionary are known through a hadMember statement.
+	  </div>
+
+</section>
+	<!-- end inferences -->
+	
+<section id="dictionary-constraints-constraints">
+	<h3>Constraints</h3>
+
+<p id="impossible-removal-membership_text">A dictionary that was derived by removal from another dictionary, cannot contain the key-entity pairs that were removed from the latter.</p>
+	 <div class='constraint' id='impossible-removal-membership'>
+<p>
+<span class="conditional">IF</span> <span class="name">derivedByRemovalFrom(d2, d1, {"k1"})</span> and 
+    <span class="name">hadMember(d2, {("k1",_e1)})</span><span class='conditional'>THEN</span> <span
+	 class="conditional">INVALID</span>
+</p></div>
+	
+	<p id="impossible-removal-insertion_text">A dictionary must not be derived through multiple insertion or removal relations.</p>
+	 <div class='constraint' id='impossible-removal-insertion'>
+<p>
+<span class="conditional">IF</span> <span class="name">derivedByRemovalFrom(d2, d1, {_"k1"})</span> and 
+    <span class="name">derivedByInsertionFrom(d2, d1, {_("k2", e2)})</span><span class='conditional'>THEN</span> <span
+	 class="conditional">INVALID</span>
+</p></div>
+<div class='constraint' id='impossible-insertion-insertion'>
+<p>
+<span class="conditional">IF</span> <span class="name">IF derivedByInsertionFrom(d2, d1, {_("k1", e1)})</span> and 
+    <span class="name">derivedByInsertionFrom(d2, d1, {_("k2", e2)})</span><span class='conditional'>THEN</span> <span
+	 class="conditional">INVALID</span>
+</p></div>
+<div class='constraint' id='impossible-removal-removal'>
+<p>
+<span class="conditional">IF</span> <span class="name">derivedByRemovalFrom(d2, d1, {_"k1"})</span> and 
+    <span class="name">derivedByRemovalFrom(d2, d1, {_"k2"})</span><span class='conditional'>THEN</span> <span
+	 class="conditional">INVALID</span>
+</p></div>
+
+<p id="impossible-removal-insertion_text">An empty dictionary cannot hold any key-entity pairs.</p>
+	 <div class='constraint' id='impossible-removal-insertion'>
+<p>
+<span class="conditional">IF</span> <span class="name">hadMember(d,("_k1", e1))</span> and 
+    <span class="name">'EmptyDictionary' &isin; typeOf(e1)</span><span class='conditional'>THEN</span> <span
+	 class="conditional">INVALID</span>
+</p></div>
+	
+</section> <!-- end constraints -->
+	
+	
 </section>
 
 
--- a/model/prov-constraints.html	Mon Dec 17 09:42:40 2012 -0500
+++ b/model/prov-constraints.html	Mon Dec 17 09:43:00 2012 -0500
@@ -888,7 +888,7 @@
 //authors:  ,
           authors:  [
               { name: "Tom De Nies", url: "http://users.ugent.be/~tdenies/",
-			  company: "IBBT - Ghent University"  },
+			  company: "iMinds - Ghent University"  },
          ],
           
           // name of the WG
@@ -5564,10 +5564,10 @@
 Reza B'Far (Oracle Corporation),
 Khalid Belhajjame (University of Manchester),
 James Cheney (University of Edinburgh, School of Informatics),
-Sam Coppens (IBBT),
+Sam Coppens (iMinds),
 David Corsar (University of Aberdeen, Computing Science),
 Stephen Cresswell (The National Archives),
-Tom De Nies (IBBT),
+Tom De Nies (iMinds),
 Helena Deus (DERI Galway at the National University of Ireland, Galway, Ireland),
 Simon Dobson (Invited expert),
 Martin Doerr (Foundation for Research and Technology - Hellas(FORTH)),
--- a/semantics/constraints.pl	Mon Dec 17 09:42:40 2012 -0500
+++ b/semantics/constraints.pl	Mon Dec 17 09:43:00 2012 -0500
@@ -65,7 +65,7 @@
 
 
 decl('Inference', 11, 'derivation-generation-use-inference',
-     comment('In this inference, none of <math>a</math>, <math>gen_2</math> or <math>use_1</math> can be placeholders -',
+     comment('In this inference, none of <em>a</em>, <em>gen<sub>2</sub></em> or <em>use_1</em> can be placeholders -.',
 	     rule( [id, e_2, e_1, a, gen_2, use_1, attrs],
 		   [wasDerivedFrom(id, e_2,e_1,a,gen_2,use_1,attrs)],
 		   [s, t_1,t_2 ],
@@ -74,7 +74,7 @@
     
 
 decl('Inference', 12, 'revision-is-alternate-inference', 
-     comment('In this inference, any of <math>a</math>, <math>g</math> or <math>u</math> may be placeholders.',
+     comment('In this inference, any of <em>a</em>, <em>g</em> or <em>u</em> may be placeholders.',
      rule( [id, e_1, e_2, a, g,u],
 	   [wasDerivedFrom(id, e_2,e_1,a,g,u,['prov:type = prov:Revision'])],
 	   [],
@@ -123,12 +123,12 @@
 		  [wasDerivedFrom(id, e_2, e_1, a, g, u, attrs)],
 		  [],
 		  [wasInfluencedBy(id, e_2, e_1, attrs)]),
-	    comment('In this rule, <math>a</math>, <math>g</math>, <math>u</math> may be placeholders -.',
+	    comment('In this rule, <em>a</em>, <em>g</em>, <em>u</em> may be placeholders -.',
 	    rule( [id, e, ag, attrs],
 		  [wasAttributedTo(id, e,ag,attrs)],
 		  [],
 		  [wasInfluencedBy(id, e, ag, attrs)])),
-	    comment('In this rule, <math>pl</math> may be a placeholder -',
+	    comment('In this rule, <em>pl</em> may be a placeholder -.',
 	    rule( [id, a, ag, pl, attrs],
 		  [wasAssociatedWith(id, a,ag,pl,attrs)],
 		  [],
@@ -269,10 +269,21 @@
 
 %% Todo: Recognize subscripts and translate to <sub>
 
+emitVar(A) --> {split('_',A,X,I), !},
+	emit(X),
+	emit('<sub>'),
+	emit(I),
+	emit('</sub>').
 emitVar(A) --> emit(A).
 
+split(C,A,A1,A2) :- atom(A),
+	atom_chars(A,L),
+	append(L1,[C|L2],L),
+	atom_chars(A1,L1),
+	atom_chars(A2,L2).
+
 htmlPred(A) --> {atom(A)},
-	emit(A).
+	emitVar(A).
 htmlPred(T) -->
 	{T =.. [F|Ts], Ts \= []},
 	emit(F),
@@ -287,11 +298,11 @@
 htmlQuantify(_Q,[]) --> [].
 htmlQuantify(forall,Xs) --> {Xs \= []},
 	emit('&#8704; '),
-	emitListSep(',', emit, Xs),
+	emitListSep(',', emitVar, Xs),
 	emit('. ').
 htmlQuantify(exists,Xs) --> {Xs \= []},
 	emit('&#8707; '),
-	emitListSep(',', emit, Xs),
+	emitListSep(',', emitVar, Xs),
 	emit('. ').
 
 htmlRule(Xs,Hyps,Ys,Concls) -->
@@ -354,3 +365,4 @@
 
 main :- findall(X, decl(_,X,_,_),Xs),
 	writeEach(htmlDecl,user,Xs).
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/semantics/prov-sem-math-test.html	Mon Dec 17 09:43:00 2012 -0500
@@ -0,0 +1,883 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>
+<html lang="en" dir="ltr">
+<head> 
+    <title>Semantics of the Provenance Data Model</title> 
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
+    <!-- 
+      === NOTA BENE ===
+      For the three scripts below, if your spec resides on dev.w3 you can check them
+      out in the same tree and use relative links so that they'll work offline,
+     -->
+<!-- PM -->
+    <style type="text/css">
+      .note { font-size:small; margin-left:50px }
+
+
+/* --- EDITORIAL NOTES --- */
+.pending {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #f00;
+    background: #BFEFFF;
+}
+
+.pending::before {
+    content:    "Pending Review";
+    display:    block;
+    width:  150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight:    bold;
+    border: 1px solid #f00;
+    background: #fff;
+    padding:    3px 1em;
+}
+
+
+
+
+.resolved {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #f00;
+    background: #9BCD9B;
+}
+
+.resolved::before {
+    content:    "Resolved";
+    display:    block;
+    width:  150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight:    bold;
+    border: 1px solid #f00;
+    background: #fff;
+    padding:    3px 1em;
+}
+
+
+.inference {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #f00;
+    background: #fff;
+}
+
+
+.inference-example {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #f00;
+    background: #fff;
+}
+
+/* .inference[id]::before { */
+/*     content:    "Inference: " attr(id); */
+/*     width:  380px;  /\* How can we compute the length of "Constraint: " attr(id) *\/ */
+/* } */
+
+
+/* .inference::before { */
+/*     content:    "Inference"; */
+/*     display:    block; */
+/*     width:  150px; */
+/*     margin: -1.5em 0 0.5em 0; */
+/*     font-weight:    bold; */
+/*     border: 1px solid #f00; */
+/*     background: #fff; */
+/*     padding:    3px 1em; */
+/* } */
+
+.syntax {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #f00;
+    background: #fff;
+}
+
+.syntax[id]::before {
+    content:    "Syntax: " attr(id);
+    width:  380px;  /* How can we compute the length of "Constraint: " attr(id) */
+}
+
+
+.syntax::before {
+    content:    "Syntax";
+    display:    block;
+    width:  150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight:    bold;
+    border: 1px solid #f00;
+    background: #fff;
+    padding:    3px 1em;
+}
+
+.unamedconstraint {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #00f;
+    background: #fff;
+}
+
+
+.unamedconstraint::before {
+    content:    "Constraint";
+    display:    block;
+    width:  150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight:    bold;
+    border: 1px solid #00f;
+    background: #fff;
+    padding:    3px 1em;
+}
+
+
+
+.constraint {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #00f;
+    background: #fff;
+}
+
+.constraint-example {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #00f;
+    background: #fff;
+}
+
+/* .constraint[id]::before { */
+/*     content:    "Constraint: " attr(id); */
+/*     width:  380px;  /\* How can we compute the length of "Constraint: " attr(id) *\/ */
+/* } */
+
+
+/* .constraint::before { */
+/*     content:    "Constraint"; */
+/*     display:    block; */
+/*     width:  150px; */
+/*     margin: -1.5em 0 0.5em 0; */
+/*     font-weight:    bold; */
+/*     border: 1px solid #00f; */
+/*     background: #fff; */
+/*     padding:    3px 1em; */
+/* } */
+
+
+
+.interpretation {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #00f;
+    background: #fff;
+}
+
+.interpretation[id]::before {
+    content:    "Interpretation: " attr(id);
+    width:  380px;  /* How can we compute the length of "Interpretation: " attr(id) */
+}
+
+
+.interpretation::before {
+    content:    "Interpretation";
+    display:    block;
+    width:  150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight:    bold;
+    border: 1px solid #00f;
+    background: #fff;
+    padding:    3px 1em;
+}
+
+.definition {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #777;
+    background: #fff;
+}
+
+.definition-example {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #777;
+    background: #fff;
+}
+
+/* .definition[id]::before { */
+/*     content:    "Definition: " attr(id); */
+/*     width:  380px;  */
+/* } */
+
+
+/* .definition::before { */
+/*     content:    "Definition"; */
+/*     display:    block; */
+/*     width:  150px; */
+/*     margin: -1.5em 0 0.5em 0; */
+/*     font-weight:    bold; */
+/*     border: 1px solid #000; */
+/*     background: #fff; */
+/*     padding:    3px 1em; */
+/* } */
+
+
+.deprecatedconstraint {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #00f;
+    background: #fff;
+}
+
+.deprecatedconstraint[id]::before {
+    content:    "Deprecated: " attr(id);
+    width:  380px;  /* How can we compute the length of "Deprecatedconstraint: " attr(id) */
+}
+
+
+.deprecatedconstraint::before {
+    content:    "Deprecated";
+    display:    block;
+    width:  150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight:    bold;
+    border: 1px solid #00f;
+    background: #fff;
+    padding:    3px 1em;
+}
+
+.glossary-ref {
+    font-style:    italic;
+}
+
+.dfn {
+    font-weight:    bold;
+}
+
+
+.attribute {
+    font-style: italic;
+}
+
+
+.conditional {
+    color: blue;
+}
+
+.grammar {
+    margin-top: 1ex;
+    margin-bottom: 1ex;
+    padding-left: 1ex;
+    padding-right: 1ex;
+    padding-top: 1ex;
+    padding-bottom: 0.6ex;
+    border: 1px dashed #2f6fab;
+    font-size: 95%;
+}
+.nonterminal {
+    font-weight: bold;
+    font-family: sans-serif;
+    font-size: 95%;
+}
+
+.name {
+    font-family: monospace;
+}
+
+.math {
+    font-family: roman;
+    font-style:italic;
+}
+
+
+.xmpl {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #f00;
+    background: #fff;
+}
+
+.xmpl::before {
+    content:    "Example";
+    display:    block;
+    width:  150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight:    bold;
+    border: 1px solid #f00;
+    background: #fff;
+    padding:    3px 1em;
+}
+
+/*
+.anexample[count]::before {
+    content: "Example " attr(count) ;
+    font-family: sans-serif;
+    font-size: 1.6ex;
+    font-weight: bold;
+}
+
+.anexample:before {
+    content: "Example:";
+    font-family: sans-serif;
+    font-size: 1.6ex;
+    font-weight: bold;
+}
+
+*/
+
+.anexample {
+    margin-top: 1ex;
+    margin-bottom: 1ex;
+    padding-left: 1ex;
+    padding-right: 1ex;
+    padding-top: 1ex;
+    padding-bottom: 0.6ex;
+    border: 1px dashed #2f6fab;
+    background-color: #f9f9f9;
+}
+.anexample table {
+    background-color: #f9f9f9;
+}
+
+.conceptexample:before {
+    content: "Example:";
+    font-family: sans-serif;
+    font-size: 1.6ex;
+    font-weight: bold;
+}
+.conceptexample {
+    margin-top: 1ex;
+    margin-bottom: 1ex;
+    padding-left: 1ex;
+    padding-right: 1ex;
+    padding-top: 1ex;
+    padding-bottom: 0.6ex;
+    border: 1px dashed #2f6fab;
+    background-color: #f9f9f9;
+}
+
+.pnExpression {
+    font-weight: normal;
+    font-size:120%;
+    font-family: monospace;
+}
+
+
+div[class="grammar"] span[class="name"]:before {
+    content: "'";
+}
+
+div[class="grammar"] span[class="name"]:after {
+    content: "'";
+}
+
+
+div[class="grammar"] span[class="optional"]:before {
+    font-weight: normal;
+    font-size:130%;
+    font-family: monospace;
+    content: "(";
+}
+
+div[class="grammar"] span[class="optional"]:after {
+    font-weight: normal;
+    font-size:130%;
+    font-family: monospace;
+    content: ")?";
+}
+
+
+div[class="grammar"] span[class="plus"]:before {
+    font-weight: normal;
+    font-size:130%;
+    font-family: monospace;
+    content: "(";
+}
+
+div[class="grammar"] span[class="plus"]:after {
+    font-weight: normal;
+    font-size:130%;
+    font-family: monospace;
+    content: ")+";
+}
+
+
+div[class="grammar"] span[class="star"]:before {
+    font-weight: normal;
+    font-size:130%;
+    font-family: monospace;
+    content: "(";
+}
+
+div[class="grammar"] span[class="star"]:after {
+    font-weight: normal;
+    font-size:130%;
+    font-family: monospace;
+    content: ")*";
+}
+
+div[class="grammar"] span[class="choice"]:before {
+    font-weight: normal;
+    font-size:130%;
+    font-family: monospace;
+    content: "(";
+}
+
+div[class="grammar"] span[class="choice"]:after {
+    font-weight: normal;
+    font-size:130%;
+    font-family: monospace;
+    content: ")";
+}
+
+div[class="grammar"] span[class="group"]:before {
+    font-weight: normal;
+    font-size:130%;
+    font-family: monospace;
+    content: "(";
+}
+
+div[class="grammar"] span[class="group"]:after {
+    font-weight: normal;
+    font-size:130%;
+    font-family: monospace;
+    content: ")";
+}
+
+table {
+    background-color: #f9f9f9;
+}
+
+.component1-color {
+ background-color: rgba(255,42,42,0.2);
+}
+
+.component2-color {
+ background-color: rgba(0,68,170,0.2);
+}
+
+.component3-color {
+ background-color: rgba(0,170,0,0.2);
+}
+.component4-color {
+ background-color: rgba(204,255,0,0.2);
+}
+
+.component5-color {
+ background-color: rgba(11,40,40,0.2);
+}
+
+.component6-color {
+ background-color: rgba(244,105,14,0.2);
+}
+
+.interpretation-forward::before {
+    content:    "Interpretation: ";
+    font-weight:    bold;
+}
+
+.structural-forward::before {
+    content:    "Structural constraint: ";
+    font-weight:    bold;
+}
+
+
+code {
+    color:  black;
+}
+
+.ruleTitle {
+    font-family: sans-serif;
+    font-size: 1.6ex;
+    font-weight: bold;
+}
+
+
+
+
+.remark {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px dashed #000;
+    background: #F0F0F0;
+}
+
+.remark::before {
+    content:    "Remark";
+    display:    block;
+    width:  150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight:    bold;
+    border: 1px solid #000;
+    background: #fff;
+    padding:    3px 1em;
+}
+
+table.thinborder {
+	border-width: 1px;
+	border-spacing: 0px;
+	border-style: none;
+	border-color: gray;
+	border-collapse: collapse;
+}
+table.thinborder th {
+	border-width: 1px;
+	padding: 0px;
+	border-style: solid;
+	border-color: gray;
+}
+table.thinborder td {
+	border-width: 1px;
+	padding: 2px;
+	border-style: solid;
+	border-color: gray;
+}
+
+
+     </style>
+
+      
+<!--    <script src="http://www.w3.org/Tools/respec/respec-w3c-common" class="remove" async></script> -->
+
+     
+    
+    
+
+
+   
+    
+
+     
+  <style type="text/css">.MathJax_Hover_Frame {border-radius: .25em; -webkit-border-radius: .25em; -moz-border-radius: .25em; -khtml-border-radius: .25em; box-shadow: 0px 0px 15px #83A; -webkit-box-shadow: 0px 0px 15px #83A; -moz-box-shadow: 0px 0px 15px #83A; -khtml-box-shadow: 0px 0px 15px #83A; border: 1px solid #A6D ! important; display: inline-block; position: absolute}
+.MathJax_Hover_Arrow {position: absolute; width: 15px; height: 11px; cursor: pointer}
+</style><style type="text/css">#MathJax_About {position: fixed; left: 50%; width: auto; text-align: center; border: 3px outset; padding: 1em 2em; background-color: #DDDDDD; color: black; cursor: default; font-family: message-box; font-size: 120%; font-style: normal; text-indent: 0; text-transform: none; line-height: normal; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; z-index: 201; border-radius: 15px; -webkit-border-radius: 15px; -moz-border-radius: 15px; -khtml-border-radius: 15px; box-shadow: 0px 10px 20px #808080; -webkit-box-shadow: 0px 10px 20px #808080; -moz-box-shadow: 0px 10px 20px #808080; -khtml-box-shadow: 0px 10px 20px #808080; filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')}
+.MathJax_Menu {position: absolute; background-color: white; color: black; width: auto; padding: 5px 0px; border: 1px solid #CCCCCC; margin: 0; cursor: default; font: menu; text-align: left; text-indent: 0; text-transform: none; line-height: normal; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; z-index: 201; border-radius: 5px; -webkit-border-radius: 5px; -moz-border-radius: 5px; -khtml-border-radius: 5px; box-shadow: 0px 10px 20px #808080; -webkit-box-shadow: 0px 10px 20px #808080; -moz-box-shadow: 0px 10px 20px #808080; -khtml-box-shadow: 0px 10px 20px #808080; filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')}
+.MathJax_MenuItem {padding: 1px 2em; background: transparent}
+.MathJax_MenuTitle {background-color: #CCCCCC; margin: -5px 0 0 0; text-align: center; font-style: italic; font-size: 80%; color: #444444; padding: 2px 0; overflow: hidden}
+.MathJax_MenuArrow {position: absolute; right: .5em; color: #666666}
+.MathJax_MenuActive .MathJax_MenuArrow {color: white}
+.MathJax_MenuCheck {position: absolute; left: .7em}
+.MathJax_MenuRadioCheck {position: absolute; left: .7em}
+.MathJax_MenuLabel {padding: 1px 2em 3px 1.33em; font-style: italic}
+.MathJax_MenuRule {border-top: 1px solid #DDDDDD; margin: 4px 3px}
+.MathJax_MenuDisabled {color: GrayText}
+.MathJax_MenuActive {background-color: #606872; color: white}
+.MathJax_Menu_Close {position: absolute; width: 31px; height: 31px; top: -15px; left: -15px}
+</style><style type="text/css">#MathJax_Zoom {position: absolute; background-color: #F0F0F0; overflow: auto; display: block; z-index: 301; padding: .5em; border: 1px solid black; margin: 0; font-weight: normal; font-style: normal; text-align: left; text-indent: 0; text-transform: none; line-height: normal; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; box-shadow: 5px 5px 15px #AAAAAA; -webkit-box-shadow: 5px 5px 15px #AAAAAA; -moz-box-shadow: 5px 5px 15px #AAAAAA; -khtml-box-shadow: 5px 5px 15px #AAAAAA; filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')}
+#MathJax_ZoomOverlay {position: absolute; left: 0; top: 0; z-index: 300; display: inline-block; width: 100%; height: 100%; border: 0; padding: 0; margin: 0; background-color: white; opacity: 0; filter: alpha(opacity=0)}
+#MathJax_ZoomEventTrap {position: absolute; left: 0; top: 0; z-index: 302; display: inline-block; border: 0; padding: 0; margin: 0; background-color: white; opacity: 0; filter: alpha(opacity=0)}
+</style><style type="text/css">.MathJax_Preview {color: #888}
+#MathJax_Message {position: fixed; left: 1em; bottom: 1.5em; background-color: #E6E6E6; border: 1px solid #959595; margin: 0px; padding: 2px 8px; z-index: 102; color: black; font-size: 80%; width: auto; white-space: nowrap}
+#MathJax_MSIE_Frame {position: absolute; top: 0; left: 0; width: 0px; z-index: 101; border: 0px; margin: 0px; padding: 0px}
+.MathJax_Error {color: #CC0000; font-style: italic}
+</style><link href="http://www.w3.org/StyleSheets/TR/W3C-ED" rel="stylesheet" type="text/css" charset="utf-8"><style type="text/css">.MathJax_Display {text-align: center; margin: 1em 0em; position: relative; display: block; width: 100%}
+.MathJax .merror {background-color: #FFFF88; color: #CC0000; border: 1px solid #CC0000; padding: 1px 3px; font-style: normal; font-size: 90%}
+#MathJax_Tooltip {background-color: InfoBackground; color: InfoText; border: 1px solid black; box-shadow: 2px 2px 5px #AAAAAA; -webkit-box-shadow: 2px 2px 5px #AAAAAA; -moz-box-shadow: 2px 2px 5px #AAAAAA; -khtml-box-shadow: 2px 2px 5px #AAAAAA; filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true'); padding: 3px 4px; position: absolute; left: 0; top: 0; width: auto; height: auto; display: none}
+.MathJax {display: inline; font-style: normal; font-weight: normal; line-height: normal; font-size: 100%; font-size-adjust: none; text-indent: 0; text-align: left; text-transform: none; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; direction: ltr; border: 0; padding: 0; margin: 0}
+.MathJax img, .MathJax nobr, .MathJax a {border: 0; padding: 0; margin: 0; max-width: none; max-height: none; vertical-align: 0; line-height: normal; text-decoration: none}
+img.MathJax_strut {border: 0 !important; padding: 0 !important; margin: 0 !important; vertical-align: 0 !important}
+.MathJax span {display: inline; position: static; border: 0; padding: 0; margin: 0; vertical-align: 0; line-height: normal; text-decoration: none}
+.MathJax nobr {white-space: nowrap ! important}
+.MathJax img {display: inline ! important; float: none ! important}
+.MathJax_Processing {visibility: hidden; position: fixed; width: 0; height: 0; overflow: hidden}
+.MathJax_Processed {display: none!important}
+.MathJax_ExBox {display: block; overflow: hidden; width: 1px; height: 60ex}
+.MathJax .MathJax_EmBox {display: block; overflow: hidden; width: 1px; height: 60em}
+.MathJax .MathJax_HitBox {cursor: text; background: white; opacity: 0; filter: alpha(opacity=0)}
+.MathJax .MathJax_HitBox * {filter: none; opacity: 1; background: transparent}
+#MathJax_Tooltip * {filter: none; opacity: 1; background: transparent}
+@font-face {font-family: MathJax_Blank; src: url('about:blank')}
+.MathJax .noError {vertical-align: ; font-size: 90%; text-align: left; color: black; padding: 1px 3px; border: 1px solid}
+</style></head> 
+  <body style="display: inherit;"><div style="visibility: hidden; overflow: hidden; position: absolute; top: 0px; height: 1px; width: auto; padding: 0px; border: 0px; margin: 0px; text-align: left; text-indent: 0px; text-transform: none; line-height: normal; letter-spacing: normal; word-spacing: normal;"><div id="MathJax_Hidden"></div></div><div class="head"><p><a href="http://www.w3.org/"><img width="72" height="48" src="http://www.w3.org/Icons/w3c_home" alt="W3C"></a></p><h1 class="title" id="title">Semantics of the Provenance Data Model</h1><h2 id="w3c-editor-s-draft-17-december-2012"><acronym title="World Wide Web Consortium">W3C</acronym> Editor's Draft 17 December 2012</h2><dl><dt>This version:</dt><dd><a href="http://dvcs.w3.org/hg/prov/raw-file/default/semantics/prov-sem.html">http://dvcs.w3.org/hg/prov/raw-file/default/semantics/prov-sem.html</a></dd><dt>Latest published version:</dt><dd><a href="http://www.w3.org/TR/prov-sem/">http://www.w3.org/TR/prov-sem/</a></dd><dt>Latest editor's draft:</dt><dd><a href="http://dvcs.w3.org/hg/prov/raw-file/default/semantics/prov-sem.html">http://dvcs.w3.org/hg/prov/raw-file/default/semantics/prov-sem.html</a></dd><dt>Previous version:</dt><dd>none</dd><dt>Editor:</dt><dd><a href="http://homepages.inf.ed.ac.uk/jcheney">James Cheney</a>, University of Edinburgh</dd>
+</dl><p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 2012-2012 <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.eu/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. <acronym title="World Wide Web Consortium">W3C</acronym> <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p><hr></div><div id="MathJax_Message" style="display: none;">Loading [MathJax]/jax/output/HTML-CSS/fonts/STIX/fontdata.js</div> 
+
+    <div id="abstract" class="introductory section"><h2>Abstract</h2>
+<p>
+Provenance is information about entities, activities, and people
+involved in producing a piece of data or thing, which can be used to
+form assessments about its quality, reliability or
+trustworthiness. PROV-DM is the conceptual data model that forms a
+basis for the <acronym title="World Wide Web Consortium">W3C</acronym> provenance (PROV) family of specifications.
+</p>
+
+
+<p> This document ... TODO </p>
+<p>The PROV Document Overview describes the overall state of PROV, and should be read before other PROV documents.</p>
+</div><div id="sotd" class="introductory section"><h2>Status of This Document</h2><p><em>This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current <acronym title="World Wide Web Consortium">W3C</acronym> publications and the latest revision of this technical report can be found in the <a href="http://www.w3.org/TR/"><acronym title="World Wide Web Consortium">W3C</acronym> technical reports index</a> at http://www.w3.org/TR/.</em></p>
+<h4 id="prov-family-of-documents">PROV Family of Documents</h4>
+This document is part of the PROV family of documents, a set of documents defining various aspects that are necessary to achieve the vision of inter-operable
+interchange of provenance information in heterogeneous environments such as the Web.  These documents are:
+<ul>
+<li> <a href="http://www.w3.org/TR/2012/WD-prov-overview-20121211/">PROV-OVERVIEW</a> (Note), an overview of the PROV family of documents [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-OVERVIEW">PROV-OVERVIEW</a></cite>];</li>
+<li> <a href="http://www.w3.org/TR/2012/WD-prov-primer-20121211/">PROV-PRIMER</a> (Note), a primer for the PROV data model [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-PRIMER">PROV-PRIMER</a></cite>];</li>
+<li> <a href="http://www.w3.org/TR/2012/CR-prov-o-20121211/">PROV-O</a> (Recommendation), the PROV ontology, an OWL2 ontology allowing the mapping of PROV to RDF [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-O">PROV-O</a></cite>];</li>
+<li> <a href="http://www.w3.org/TR/2012/CR-prov-dm-20121211/">PROV-DM</a> (Recommendation), the PROV data model for provenance [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-DM">PROV-DM</a></cite>];</li>
+<li> <a href="http://www.w3.org/TR/2012/CR-prov-n-20121211/">PROV-N</a> (Recommendation), a notation for provenance aimed at human consumption [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-N">PROV-N</a></cite>];</li>
+<li> <a href="http://www.w3.org/TR/2012/CR-prov-constraints-20121211/">PROV-CONSTRAINTS</a>
+(Recommendation), a set of constraints applying to the PROV data model;</li>
+<li> <a href="http://www.w3.org/TR/2012/WD-prov-aq-20120619/">PROV-AQ</a> (Note), the mechanisms for accessing and querying provenance [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-AQ">PROV-AQ</a></cite>]; </li>
+<li> <a href="http://www.w3.org/TR/2012/WD-prov-xml-20121211/">PROV-XML</a> (Note),  an XML schema for the PROV data model [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-XML">PROV-XML</a></cite>].</li>
+
+</ul>
+<h4 id="how-to-read-the-prov-family-of-documents">How to read the PROV Family of Documents</h4>
+<ul>
+<li>The primer is the entry point to PROV offering an introduction to the provenance model.</li>
+<li>The Linked Data and Semantic Web community should focus on PROV-O defining PROV classes and properties specified in an OWL2 ontology. For further details, PROV-DM and PROV-CONSTRAINTS specify the constraints applicable to the data model, and its interpretation. </li>
+<li>Developers seeking to retrieve or publish provenance should focus on PROV-AQ.</li>
+<li>Readers seeking to implement other PROV serializations
+should focus on PROV-DM and PROV-CONSTRAINTS.  PROV-O and PROV-N offer examples of mapping to RDF and text, respectively.</li>
+</ul>
+
+<p>This document was published by the <a href="http://www.w3.org/2011/prov/">Provenance Working Group</a> as an Editor's Draft. If you wish to make comments regarding this document, please send them to <a href="mailto:public-prov-comments@w3.org">public-prov-comments@w3.org</a> (<a href="mailto:public-prov-comments-request@w3.org?subject=subscribe">subscribe</a>, <a href="http://lists.w3.org/Archives/Public/public-prov-comments/">archives</a>). All feedback is welcome.</p><p>Publication as an Editor's Draft does not imply endorsement by the <acronym title="World Wide Web Consortium">W3C</acronym> Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.</p><p>This document was produced by a group operating under the <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5 February 2004 <acronym title="World Wide Web Consortium">W3C</acronym> Patent Policy</a>. <acronym title="World Wide Web Consortium">W3C</acronym> maintains a <a href="http://www.w3.org/2004/01/pp-impl/46974/status" rel="disclosure">public list of any patent disclosures</a> made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">Essential Claim(s)</a> must disclose the information in accordance with <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">section 6 of the <acronym title="World Wide Web Consortium">W3C</acronym> Patent Policy</a>.</p></div><div id="toc" class="section"><h2 class="introductory">Table of Contents</h2><ul class="toc"><li class="tocline"><a href="#introduction" class="tocxref"><span class="secno">1. </span>Introduction<br>
+</a><ul class="toc"><li class="tocline"><a href="#conventions" class="tocxref"><span class="secno">1.1 </span>Conventions</a></li><li class="tocline"><a href="#purpose" class="tocxref"><span class="secno">1.2 </span>Purpose of this document</a></li><li class="tocline"><a href="#structure-of-this-document" class="tocxref"><span class="secno">1.3 </span>Structure of this document</a></li><li class="tocline"><a href="#audience" class="tocxref"><span class="secno">1.4 </span> Audience </a></li></ul></li><li class="tocline"><a href="#test" class="tocxref"><span class="secno">2. </span>MathJax test</a></li><li class="tocline"><a href="#inferences" class="tocxref"><span class="secno">3. </span>Inferences</a></li><li class="tocline"><a href="#acknowledgements" class="tocxref"><span class="secno">A. </span>Acknowledgements</a></li><li class="tocline"><a href="#references" class="tocxref"><span class="secno">B. </span>References</a><ul class="toc"><li class="tocline"><a href="#normative-references" class="tocxref"><span class="secno">B.1 </span>Normative references</a></li><li class="tocline"><a href="#informative-references" class="tocxref"><span class="secno">B.2 </span>Informative references</a></li></ul></li></ul></div>
+
+
+
+
+
+
+    <div id="introduction" class="section"> 
+      <!--OddPage--><h2><span class="secno">1. </span>Introduction<br>
+</h2> 
+
+<p>
+Provenance is a record that describes the people, institutions, entities, and activities involved in producing, influencing, or delivering a piece of data or a thing.
+This document complements
+  the PROV-DM specification [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-DM">PROV-DM</a></cite>] that defines a data model for
+  provenance on the Web. This document defines a form of validation for provenance. </p>
+
+
+
+    <div id="conventions" class="section"> 
+<h3><span class="secno">1.1 </span>Conventions</h3>
+
+
+
+<p>The key words "<em class="rfc2119" title="must">must</em>", "<em class="rfc2119" title="must not">must not</em>", "<em class="rfc2119" title="required">required</em>", "<em class="rfc2119" title="shall">shall</em>", "<em class="rfc2119" title="shall
+      not">shall
+      not</em>", "<em class="rfc2119" title="should">should</em>", "<em class="rfc2119" title="should not">should not</em>", "<em class="rfc2119" title="recommended">recommended</em>",  "<em class="rfc2119" title="may">may</em>", and
+      "<em class="rfc2119" title="optional">optional</em>" in this document are to be interpreted as described in
+      [<cite><a class="bibref" rel="biblioentry" href="#bib-RFC2119">RFC2119</a></cite>].</p>
+
+<p>In this document, logical formulas contain variables written as
+    lower-case identifiers.  Some of these variables are written
+    beginning with the underscore character <span class="name">_</span>, by convention, to indicate that they
+    appear only once in the formula.  Such variables are
+    provided merely as an aid to the reader.  </p>
+
+</div>
+
+
+<div id="purpose" class="section">
+
+<h3><span class="secno">1.2 </span>Purpose of this document</h3>
+
+</div>
+
+<div id="structure-of-this-document" class="section">
+<h3><span class="secno">1.3 </span>Structure of this document</h3>
+<p>
+</p>
+
+
+
+</div>
+<div id="audience" class="section">
+<h3><span class="secno">1.4 </span> Audience </h3>
+
+
+<p>This document assumes familiarity with [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-DM">PROV-DM</a></cite>] and employs the
+[<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-N">PROV-N</a></cite>] notation.
+</p>
+
+</div>
+</div>
+
+<div id="test" class="section">
+<!--OddPage--><h2><span class="secno">2. </span>MathJax test</h2>
+
+<span class="MathJax_Preview"></span><span class="MathJax" id="MathJax-Element-1-Frame" role="textbox" aria-readonly="true" style=""><nobr><span class="math" id="MathJax-Span-1"><span style="display: inline-block; position: relative; width: 0px; height: 0px; font-size: 121%;"><span style="position: absolute; clip: rect(74px 19360px 80px -9px); top: -77px; left: 0px;"><span class="mrow" id="MathJax-Span-2"></span><span style="display: inline-block; width: 0px; height: 77px;"></span></span></span><span style="border-left-width: 0px; border-left-style: solid; display: inline-block; overflow: hidden; width: 0px; height: 2px; vertical-align: -1px;"></span></span></nobr></span><script type="math/tex" id="MathJax-Element-1">\newcommand{\wasDerivedFrom}{\mathit{wasDerivedFrom}}</script>
+<span class="MathJax_Preview"></span><span class="MathJax" id="MathJax-Element-2-Frame" role="textbox" aria-readonly="true" style=""><nobr><span class="math" id="MathJax-Span-3"><span style="display: inline-block; position: relative; width: 0px; height: 0px; font-size: 121%;"><span style="position: absolute; clip: rect(74px 19360px 80px -9px); top: -77px; left: 0px;"><span class="mrow" id="MathJax-Span-4"></span><span style="display: inline-block; width: 0px; height: 77px;"></span></span></span><span style="border-left-width: 0px; border-left-style: solid; display: inline-block; overflow: hidden; width: 0px; height: 2px; vertical-align: -1px;"></span></span></nobr></span><script type="math/tex" id="MathJax-Element-2">\newcommand{\wasInformedBy}{\mathit{wasInformedBy}}</script>
+<span class="MathJax_Preview"></span><span class="MathJax" id="MathJax-Element-3-Frame" role="textbox" aria-readonly="true" style=""><nobr><span class="math" id="MathJax-Span-5"><span style="display: inline-block; position: relative; width: 0px; height: 0px; font-size: 121%;"><span style="position: absolute; clip: rect(74px 19360px 80px -9px); top: -77px; left: 0px;"><span class="mrow" id="MathJax-Span-6"></span><span style="display: inline-block; width: 0px; height: 77px;"></span></span></span><span style="border-left-width: 0px; border-left-style: solid; display: inline-block; overflow: hidden; width: 0px; height: 2px; vertical-align: -1px;"></span></span></nobr></span><script type="math/tex" id="MathJax-Element-3">\newcommand{\wasGeneratedBy}{\mathit{wasGeneratedBy}}</script>
+<span class="MathJax_Preview"></span><span class="MathJax" id="MathJax-Element-4-Frame" role="textbox" aria-readonly="true" style=""><nobr><span class="math" id="MathJax-Span-7"><span style="display: inline-block; position: relative; width: 0px; height: 0px; font-size: 121%;"><span style="position: absolute; clip: rect(74px 19360px 80px -9px); top: -77px; left: 0px;"><span class="mrow" id="MathJax-Span-8"></span><span style="display: inline-block; width: 0px; height: 77px;"></span></span></span><span style="border-left-width: 0px; border-left-style: solid; display: inline-block; overflow: hidden; width: 0px; height: 2px; vertical-align: -1px;"></span></span></nobr></span><script type="math/tex" id="MathJax-Element-4">\newcommand{\used}{\mathit{used}}</script>
+<span class="MathJax_Preview"></span><span class="MathJax" id="MathJax-Element-5-Frame" role="textbox" aria-readonly="true" style=""><nobr><span class="math" id="MathJax-Span-9"><span style="display: inline-block; position: relative; width: 0px; height: 0px; font-size: 121%;"><span style="position: absolute; clip: rect(74px 19360px 80px -9px); top: -77px; left: 0px;"><span class="mrow" id="MathJax-Span-10"></span><span style="display: inline-block; width: 0px; height: 77px;"></span></span></span><span style="border-left-width: 0px; border-left-style: solid; display: inline-block; overflow: hidden; width: 0px; height: 2px; vertical-align: -1px;"></span></span></nobr></span><script type="math/tex" id="MathJax-Element-5">\newcommand{\entity}{\mathit{entity}}</script>
+<span class="MathJax_Preview"></span><span class="MathJax" id="MathJax-Element-6-Frame" role="textbox" aria-readonly="true" style=""><nobr><span class="math" id="MathJax-Span-11"><span style="display: inline-block; position: relative; width: 0px; height: 0px; font-size: 121%;"><span style="position: absolute; clip: rect(74px 19360px 80px -9px); top: -77px; left: 0px;"><span class="mrow" id="MathJax-Span-12"></span><span style="display: inline-block; width: 0px; height: 77px;"></span></span></span><span style="border-left-width: 0px; border-left-style: solid; display: inline-block; overflow: hidden; width: 0px; height: 2px; vertical-align: -1px;"></span></span></nobr></span><script type="math/tex" id="MathJax-Element-6">\newcommand{\activity}{\mathit{activity}}</script>
+
+<p>When <span class="MathJax_Preview"></span><span class="MathJax" id="MathJax-Element-7-Frame" role="textbox" aria-readonly="true" style=""><nobr><span class="math" id="MathJax-Span-13"><span style="display: inline-block; position: relative; width: 48px; height: 0px; font-size: 121%;"><span style="position: absolute; clip: rect(31.9px 19360px 54px -8.7px); top: -48px; left: 0px;"><span class="mrow" id="MathJax-Span-14"><span class="mi" id="MathJax-Span-15" style="font-family: STIXGeneral-Italic;">a</span><span class="mo" id="MathJax-Span-16" style="font-family: STIXGeneral-Regular; padding-left: 6px;">≠</span><span class="mn" id="MathJax-Span-17" style="font-family: STIXGeneral-Regular; padding-left: 6px;">0</span></span><span style="display: inline-block; width: 0px; height: 48px;"></span></span></span><span style="border-left-width: 0px; border-left-style: solid; display: inline-block; overflow: hidden; width: 0px; height: 18.1px; vertical-align: -4px;"></span></span></nobr></span><script type="math/tex" id="MathJax-Element-7">a \ne 0</script>, there are two solutions to <span class="MathJax_Preview"></span><span class="MathJax" id="MathJax-Element-8-Frame" role="textbox" aria-readonly="true" style=""><nobr><span class="math" id="MathJax-Span-18"><span style="display: inline-block; position: relative; width: 132px; height: 0px; font-size: 121%;"><span style="position: absolute; clip: rect(28.7px 19360px 51.8px -8.7px); top: -48px; left: 0px;"><span class="mrow" id="MathJax-Span-19"><span class="mi" id="MathJax-Span-20" style="font-family: STIXGeneral-Italic;">a</span><span class="msubsup" id="MathJax-Span-21"><span style="display: inline-block; position: relative; width: 18.4px; height: 0px;"><span style="position: absolute; clip: rect(36.5px 19360px 51.2px -9.5px); top: -48px; left: 0px;"><span class="mi" id="MathJax-Span-22" style="font-family: STIXGeneral-Italic;">x<span style="display: inline-block; overflow: hidden; height: 1px; width: 0.1px;"></span></span><span style="display: inline-block; width: 0px; height: 48px;"></span></span><span style="position: absolute; top: -49px; left: 10px;"><span class="mn" id="MathJax-Span-23" style="font-size: 70.7%; font-family: STIXGeneral-Regular;">2</span><span style="display: inline-block; width: 0px; height: 42px;"></span></span></span></span><span class="mo" id="MathJax-Span-24" style="font-family: STIXGeneral-Regular; padding-left: 4.8px;">+</span><span class="mi" id="MathJax-Span-25" style="font-family: STIXGeneral-Italic; padding-left: 4.8px;">b</span><span class="mi" id="MathJax-Span-26" style="font-family: STIXGeneral-Italic;">x<span style="display: inline-block; overflow: hidden; height: 1px; width: 0.1px;"></span></span><span class="mo" id="MathJax-Span-27" style="font-family: STIXGeneral-Regular; padding-left: 4.8px;">+</span><span class="mi" id="MathJax-Span-28" style="font-family: STIXGeneral-Italic; padding-left: 4.8px;">c</span><span class="mo" id="MathJax-Span-29" style="font-family: STIXGeneral-Regular; padding-left: 6px;">=</span><span class="mn" id="MathJax-Span-30" style="font-family: STIXGeneral-Regular; padding-left: 6px;">0</span></span><span style="display: inline-block; width: 0px; height: 48px;"></span></span></span><span style="border-left-width: 0px; border-left-style: solid; display: inline-block; overflow: hidden; width: 0px; height: 19.1px; vertical-align: -1.8px;"></span></span></nobr></span><script type="math/tex" id="MathJax-Element-8">ax^2 + bx + c = 0</script> and they are
+</p>
+<span class="MathJax_Preview"></span><div class="MathJax_Display" role="textbox" aria-readonly="true" style="text-align: center;"><span class="MathJax" id="MathJax-Element-9-Frame" style=""><nobr><span class="math" id="MathJax-Span-31"><span style="display: inline-block; position: relative; width: 173px; height: 0px; font-size: 121%;"><span style="position: absolute; clip: rect(11px 19360px 64.5px -9.5px); top: -48px; left: 0px;"><span class="mrow" id="MathJax-Span-32"><span class="mi" id="MathJax-Span-33" style="font-family: STIXGeneral-Italic;">x<span style="display: inline-block; overflow: hidden; height: 1px; width: 0.1px;"></span></span><span class="mo" id="MathJax-Span-34" style="font-family: STIXGeneral-Regular; padding-left: 6px;">=</span><span class="texatom" id="MathJax-Span-35" style="padding-left: 6px;"><span class="mrow" id="MathJax-Span-36"><span class="mfrac" id="MathJax-Span-37" style="padding-left: 2.3px; padding-right: 2.3px;"><span style="display: inline-block; position: relative; width: 130.3px; height: 0px;"><span style="position: absolute; clip: rect(24.1px 19360px 54.2px -7.8px); top: -61.1px; left: 50%; margin-left: -64px;"><span class="mrow" id="MathJax-Span-38"><span class="mo" id="MathJax-Span-39" style="font-family: STIXGeneral-Regular;">−</span><span class="mi" id="MathJax-Span-40" style="font-family: STIXGeneral-Italic;">b</span><span class="mo" id="MathJax-Span-41" style="font-family: STIXGeneral-Regular; padding-left: 4.8px;">±</span><span class="msqrt" id="MathJax-Span-42" style="padding-left: 4.8px;"><span style="display: inline-block; position: relative; width: 83.5px; height: 0px;"><span style="position: absolute; clip: rect(27.8px 19360px 51.2px -8.6px); top: -48px; left: 15px;"><span class="mrow" id="MathJax-Span-43"><span class="msubsup" id="MathJax-Span-44"><span style="display: inline-block; position: relative; width: 18.5px; height: 0px;"><span style="position: absolute; clip: rect(31.8px 19360px 51.2px -8.6px); top: -48px; left: 0px;"><span class="mi" id="MathJax-Span-45" style="font-family: STIXGeneral-Italic;">b</span><span style="display: inline-block; width: 0px; height: 48px;"></span></span><span style="position: absolute; top: -49.9px; left: 10px;"><span class="mn" id="MathJax-Span-46" style="font-size: 70.7%; font-family: STIXGeneral-Regular;">2</span><span style="display: inline-block; width: 0px; height: 42px;"></span></span></span></span><span class="mo" id="MathJax-Span-47" style="font-family: STIXGeneral-Regular; padding-left: 4.8px;">−</span><span class="mn" id="MathJax-Span-48" style="font-family: STIXGeneral-Regular; padding-left: 4.8px;">4</span><span class="mi" id="MathJax-Span-49" style="font-family: STIXGeneral-Italic;">a</span><span class="mi" id="MathJax-Span-50" style="font-family: STIXGeneral-Italic;">c</span></span><span style="display: inline-block; width: 0px; height: 48px;"></span></span><span style="position: absolute; clip: rect(58.1px 19360px 65.1px -9px); top: -82px; left: 15px;"><span style="display: inline-block; position: relative; width: 68.5px; height: 0px;"><span style="position: absolute; font-family: STIXGeneral-Regular; top: -77px; left: 0px;">‾<span style="display: inline-block; width: 0px; height: 77px;"></span></span><span style="position: absolute; font-family: STIXGeneral-Regular; top: -77px; left: 58.8px;">‾<span style="display: inline-block; width: 0px; height: 77px;"></span></span><span style="font-family: STIXGeneral-Regular; position: absolute; top: -77px; left: 8px;">‾<span style="display: inline-block; width: 0px; height: 77px;"></span></span><span style="font-family: STIXGeneral-Regular; position: absolute; top: -77px; left: 16.5px;">‾<span style="display: inline-block; width: 0px; height: 77px;"></span></span><span style="font-family: STIXGeneral-Regular; position: absolute; top: -77px; left: 24.9px;">‾<span style="display: inline-block; width: 0px; height: 77px;"></span></span><span style="font-family: STIXGeneral-Regular; position: absolute; top: -77px; left: 33.4px;">‾<span style="display: inline-block; width: 0px; height: 77px;"></span></span><span style="font-family: STIXGeneral-Regular; position: absolute; top: -77px; left: 41.9px;">‾<span style="display: inline-block; width: 0px; height: 77px;"></span></span><span style="font-family: STIXGeneral-Regular; position: absolute; top: -77px; left: 50.3px;">‾<span style="display: inline-block; width: 0px; height: 77px;"></span></span></span><span style="display: inline-block; width: 0px; height: 77px;"></span></span><span style="position: absolute; clip: rect(55.2px 19360px 85px -6.8px); top: -78.8px; left: 0px;"><span style="font-family: STIXGeneral-Regular;">√</span><span style="display: inline-block; width: 0px; height: 77px;"></span></span></span></span></span><span style="display: inline-block; width: 0px; height: 48px;"></span></span><span style="position: absolute; clip: rect(31.9px 19360px 51.2px -8.4px); top: -34.7px; left: 50%; margin-left: -10px;"><span class="mrow" id="MathJax-Span-51"><span class="mn" id="MathJax-Span-52" style="font-family: STIXGeneral-Regular;">2</span><span class="mi" id="MathJax-Span-53" style="font-family: STIXGeneral-Italic;">a</span></span><span style="display: inline-block; width: 0px; height: 48px;"></span></span><span style="position: absolute; clip: rect(16.8px 19360px 24px -9px); top: -25.3px; left: 0px;"><span style="border-left-width: 130.3px; border-left-style: solid; display: inline-block; overflow: hidden; width: 0px; height: 1.25px; vertical-align: 0px;"></span><span style="display: inline-block; width: 0px; height: 21px;"></span></span></span></span></span></span><span class="mo" id="MathJax-Span-54" style="font-family: STIXGeneral-Regular;">.</span></span><span style="display: inline-block; width: 0px; height: 48px;"></span></span></span><span style="border-left-width: 0px; border-left-style: solid; display: inline-block; overflow: hidden; width: 0px; height: 49.5px; vertical-align: -14.5px;"></span></span></nobr></span></div><script type="math/tex; mode=display" id="MathJax-Element-9">x = {-b \pm \sqrt{b^2-4ac} \over 2a}.</script>
+
+<div class="inference" id="communication-generation-use-inference_test"><div class="ruleTitle"><a class="internalDFN" href="#communication-generation-use-inference_test">Inference 1 (communication-generation-use-inference_test)</a></div>
+<span class="MathJax_Preview"></span><span class="MathJax" id="MathJax-Element-10-Frame" role="textbox" aria-readonly="true" style=""><nobr><span class="math" id="MathJax-Span-55"><span style="display: inline-block; position: relative; width: 993px; height: 0px; font-size: 121%;"><span style="position: absolute; clip: rect(31.8px 19360px 55px -9px); top: -48px; left: 0px;"><span class="mrow" id="MathJax-Span-56"><span class="mi" id="MathJax-Span-57" style="font-family: STIXGeneral-Regular;">∀</span><span class="mi" id="MathJax-Span-58" style="font-family: STIXGeneral-Italic;">i</span><span class="mi" id="MathJax-Span-59" style="font-family: STIXGeneral-Italic;">d<span style="display: inline-block; overflow: hidden; height: 1px; width: 0.5px;"></span></span><span class="mo" id="MathJax-Span-60" style="font-family: STIXGeneral-Regular;">,</span><span class="msubsup" id="MathJax-Span-61" style="padding-left: 3.6px;"><span style="display: inline-block; position: relative; width: 18.5px; height: 0px;"><span style="position: absolute; clip: rect(36.5px 19360px 51.2px -8.7px); top: -48px; left: 0px;"><span class="mi" id="MathJax-Span-62" style="font-family: STIXGeneral-Italic;">a</span><span style="display: inline-block; width: 0px; height: 48px;"></span></span><span style="position: absolute; top: -39.1px; left: 10px;"><span class="mn" id="MathJax-Span-63" style="font-size: 70.7%; font-family: STIXGeneral-Regular;">2</span><span style="display: inline-block; width: 0px; height: 42px;"></span></span></span></span><span class="mo" id="MathJax-Span-64" style="font-family: STIXGeneral-Regular;">,</span><span class="msubsup" id="MathJax-Span-65" style="padding-left: 3.6px;"><span style="display: inline-block; position: relative; width: 18.5px; height: 0px;"><span style="position: absolute; clip: rect(36.5px 19360px 51.2px -8.7px); top: -48px; left: 0px;"><span class="mi" id="MathJax-Span-66" style="font-family: STIXGeneral-Italic;">a</span><span style="display: inline-block; width: 0px; height: 48px;"></span></span><span style="position: absolute; top: -39.1px; left: 10px;"><span class="mn" id="MathJax-Span-67" style="font-size: 70.7%; font-family: STIXGeneral-Regular;">1</span><span style="display: inline-block; width: 0px; height: 42px;"></span></span></span></span><span class="mo" id="MathJax-Span-68" style="font-family: STIXGeneral-Regular;">,</span><span class="mi" id="MathJax-Span-69" style="font-family: STIXGeneral-Italic; padding-left: 3.6px;">a</span><span class="mi" id="MathJax-Span-70" style="font-family: STIXGeneral-Italic;">t<span style="display: inline-block; overflow: hidden; height: 1px; width: 0.3px;"></span></span><span class="mi" id="MathJax-Span-71" style="font-family: STIXGeneral-Italic;">t<span style="display: inline-block; overflow: hidden; height: 1px; width: 0.3px;"></span></span><span class="mi" id="MathJax-Span-72" style="font-family: STIXGeneral-Italic;">r<span style="display: inline-block; overflow: hidden; height: 1px; width: 0.4px;"></span></span><span class="mi" id="MathJax-Span-73" style="font-family: STIXGeneral-Italic;">s</span><span class="mo" id="MathJax-Span-74" style="font-family: STIXGeneral-Regular;">.</span><span class="mtext" id="MathJax-Span-75" style="font-family: STIXGeneral-Regular; padding-left: 3.6px;">&nbsp;</span><span class="texatom" id="MathJax-Span-76"><span class="mrow" id="MathJax-Span-77"><span class="mi" id="MathJax-Span-78" style="font-family: STIXGeneral-Italic;">w</span><span class="mi" id="MathJax-Span-79" style="font-family: STIXGeneral-Italic;">a</span><span class="mi" id="MathJax-Span-80" style="font-family: STIXGeneral-Italic;">s</span><span class="mi" id="MathJax-Span-81" style="font-family: STIXGeneral-Italic;">I</span><span class="mi" id="MathJax-Span-82" style="font-family: STIXGeneral-Italic;">n</span><span class="mi" id="MathJax-Span-83" style="font-family: STIXGeneral-Italic;">f</span><span class="mi" id="MathJax-Span-84" style="font-family: STIXGeneral-Italic;">o</span><span class="mi" id="MathJax-Span-85" style="font-family: STIXGeneral-Italic;">r</span><span class="mi" id="MathJax-Span-86" style="font-family: STIXGeneral-Italic;">m</span><span class="mi" id="MathJax-Span-87" style="font-family: STIXGeneral-Italic;">e</span><span class="mi" id="MathJax-Span-88" style="font-family: STIXGeneral-Italic;">d</span><span class="mi" id="MathJax-Span-89" style="font-family: STIXGeneral-Italic;">B</span><span class="mi" id="MathJax-Span-90" style="font-family: STIXGeneral-Italic;">y</span></span></span><span class="mo" id="MathJax-Span-91" style="font-family: STIXGeneral-Regular;">(</span><span class="mi" id="MathJax-Span-92" style="font-family: STIXGeneral-Italic;">i</span><span class="mi" id="MathJax-Span-93" style="font-family: STIXGeneral-Italic;">d<span style="display: inline-block; overflow: hidden; height: 1px; width: 0.5px;"></span></span><span class="mo" id="MathJax-Span-94" style="font-family: STIXGeneral-Regular;">,</span><span class="msubsup" id="MathJax-Span-95" style="padding-left: 3.6px;"><span style="display: inline-block; position: relative; width: 18.5px; height: 0px;"><span style="position: absolute; clip: rect(36.5px 19360px 51.2px -8.7px); top: -48px; left: 0px;"><span class="mi" id="MathJax-Span-96" style="font-family: STIXGeneral-Italic;">a</span><span style="display: inline-block; width: 0px; height: 48px;"></span></span><span style="position: absolute; top: -39.1px; left: 10px;"><span class="mn" id="MathJax-Span-97" style="font-size: 70.7%; font-family: STIXGeneral-Regular;">2</span><span style="display: inline-block; width: 0px; height: 42px;"></span></span></span></span><span class="mo" id="MathJax-Span-98" style="font-family: STIXGeneral-Regular;">,</span><span class="msubsup" id="MathJax-Span-99" style="padding-left: 3.6px;"><span style="display: inline-block; position: relative; width: 18.5px; height: 0px;"><span style="position: absolute; clip: rect(36.5px 19360px 51.2px -8.7px); top: -48px; left: 0px;"><span class="mi" id="MathJax-Span-100" style="font-family: STIXGeneral-Italic;">a</span><span style="display: inline-block; width: 0px; height: 48px;"></span></span><span style="position: absolute; top: -39.1px; left: 10px;"><span class="mn" id="MathJax-Span-101" style="font-size: 70.7%; font-family: STIXGeneral-Regular;">1</span><span style="display: inline-block; width: 0px; height: 42px;"></span></span></span></span><span class="mo" id="MathJax-Span-102" style="font-family: STIXGeneral-Regular;">,</span><span class="mi" id="MathJax-Span-103" style="font-family: STIXGeneral-Italic; padding-left: 3.6px;">a</span><span class="mi" id="MathJax-Span-104" style="font-family: STIXGeneral-Italic;">t<span style="display: inline-block; overflow: hidden; height: 1px; width: 0.3px;"></span></span><span class="mi" id="MathJax-Span-105" style="font-family: STIXGeneral-Italic;">t<span style="display: inline-block; overflow: hidden; height: 1px; width: 0.3px;"></span></span><span class="mi" id="MathJax-Span-106" style="font-family: STIXGeneral-Italic;">r<span style="display: inline-block; overflow: hidden; height: 1px; width: 0.4px;"></span></span><span class="mi" id="MathJax-Span-107" style="font-family: STIXGeneral-Italic;">s</span><span class="mo" id="MathJax-Span-108" style="font-family: STIXGeneral-Regular;">)</span><span class="mo" id="MathJax-Span-109" style="font-family: STIXGeneral-Regular; padding-left: 6px;">⟹</span><span class="mi" id="MathJax-Span-110" style="font-family: STIXGeneral-Regular; padding-left: 6px;">∃</span><span class="mi" id="MathJax-Span-111" style="font-family: STIXGeneral-Italic;">e</span><span class="mo" id="MathJax-Span-112" style="font-family: STIXGeneral-Regular;">,</span><span class="mi" id="MathJax-Span-113" style="font-family: STIXGeneral-Italic; padding-left: 3.6px;">g</span><span class="mi" id="MathJax-Span-114" style="font-family: STIXGeneral-Italic;">e</span><span class="mi" id="MathJax-Span-115" style="font-family: STIXGeneral-Italic;">n</span><span class="mo" id="MathJax-Span-116" style="font-family: STIXGeneral-Regular;">,</span><span class="msubsup" id="MathJax-Span-117" style="padding-left: 3.6px;"><span style="display: inline-block; position: relative; width: 14.1px; height: 0px;"><span style="position: absolute; clip: rect(34.4px 19360px 51.2px -8.3px); top: -48px; left: 0px;"><span class="mi" id="MathJax-Span-118" style="font-family: STIXGeneral-Italic;">t<span style="display: inline-block; overflow: hidden; height: 1px; width: 0.3px;"></span></span><span style="display: inline-block; width: 0px; height: 48px;"></span></span><span style="position: absolute; top: -39.1px; left: 5.7px;"><span class="mn" id="MathJax-Span-119" style="font-size: 70.7%; font-family: STIXGeneral-Regular;">1</span><span style="display: inline-block; width: 0px; height: 42px;"></span></span></span></span><span class="mo" id="MathJax-Span-120" style="font-family: STIXGeneral-Regular;">,</span><span class="mi" id="MathJax-Span-121" style="font-family: STIXGeneral-Italic; padding-left: 3.6px;">u</span><span class="mi" id="MathJax-Span-122" style="font-family: STIXGeneral-Italic;">s</span><span class="mi" id="MathJax-Span-123" style="font-family: STIXGeneral-Italic;">e</span><span class="mo" id="MathJax-Span-124" style="font-family: STIXGeneral-Regular;">,</span><span class="msubsup" id="MathJax-Span-125" style="padding-left: 3.6px;"><span style="display: inline-block; position: relative; width: 14.1px; height: 0px;"><span style="position: absolute; clip: rect(34.4px 19360px 51.2px -8.3px); top: -48px; left: 0px;"><span class="mi" id="MathJax-Span-126" style="font-family: STIXGeneral-Italic;">t<span style="display: inline-block; overflow: hidden; height: 1px; width: 0.3px;"></span></span><span style="display: inline-block; width: 0px; height: 48px;"></span></span><span style="position: absolute; top: -39.1px; left: 5.7px;"><span class="mn" id="MathJax-Span-127" style="font-size: 70.7%; font-family: STIXGeneral-Regular;">2</span><span style="display: inline-block; width: 0px; height: 42px;"></span></span></span></span><span class="mo" id="MathJax-Span-128" style="font-family: STIXGeneral-Regular;">.</span><span class="mtext" id="MathJax-Span-129" style="font-family: STIXGeneral-Regular; padding-left: 3.6px;">&nbsp;</span><span class="texatom" id="MathJax-Span-130"><span class="mrow" id="MathJax-Span-131"><span class="mi" id="MathJax-Span-132" style="font-family: STIXGeneral-Italic;">w</span><span class="mi" id="MathJax-Span-133" style="font-family: STIXGeneral-Italic;">a</span><span class="mi" id="MathJax-Span-134" style="font-family: STIXGeneral-Italic;">s</span><span class="mi" id="MathJax-Span-135" style="font-family: STIXGeneral-Italic;">G</span><span class="mi" id="MathJax-Span-136" style="font-family: STIXGeneral-Italic;">e</span><span class="mi" id="MathJax-Span-137" style="font-family: STIXGeneral-Italic;">n</span><span class="mi" id="MathJax-Span-138" style="font-family: STIXGeneral-Italic;">e</span><span class="mi" id="MathJax-Span-139" style="font-family: STIXGeneral-Italic;">r</span><span class="mi" id="MathJax-Span-140" style="font-family: STIXGeneral-Italic;">a</span><span class="mi" id="MathJax-Span-141" style="font-family: STIXGeneral-Italic;">t</span><span class="mi" id="MathJax-Span-142" style="font-family: STIXGeneral-Italic;">e</span><span class="mi" id="MathJax-Span-143" style="font-family: STIXGeneral-Italic;">d</span><span class="mi" id="MathJax-Span-144" style="font-family: STIXGeneral-Italic;">B</span><span class="mi" id="MathJax-Span-145" style="font-family: STIXGeneral-Italic;">y</span></span></span><span class="mo" id="MathJax-Span-146" style="font-family: STIXGeneral-Regular;">(</span><span class="mi" id="MathJax-Span-147" style="font-family: STIXGeneral-Italic;">g</span><span class="mi" id="MathJax-Span-148" style="font-family: STIXGeneral-Italic;">e</span><span class="mi" id="MathJax-Span-149" style="font-family: STIXGeneral-Italic;">n</span><span class="mo" id="MathJax-Span-150" style="font-family: STIXGeneral-Regular;">,</span><span class="mi" id="MathJax-Span-151" style="font-family: STIXGeneral-Italic; padding-left: 3.6px;">e</span><span class="mo" id="MathJax-Span-152" style="font-family: STIXGeneral-Regular;">,</span><span class="msubsup" id="MathJax-Span-153" style="padding-left: 3.6px;"><span style="display: inline-block; position: relative; width: 18.5px; height: 0px;"><span style="position: absolute; clip: rect(36.5px 19360px 51.2px -8.7px); top: -48px; left: 0px;"><span class="mi" id="MathJax-Span-154" style="font-family: STIXGeneral-Italic;">a</span><span style="display: inline-block; width: 0px; height: 48px;"></span></span><span style="position: absolute; top: -39.1px; left: 10px;"><span class="mn" id="MathJax-Span-155" style="font-size: 70.7%; font-family: STIXGeneral-Regular;">1</span><span style="display: inline-block; width: 0px; height: 42px;"></span></span></span></span><span class="mo" id="MathJax-Span-156" style="font-family: STIXGeneral-Regular;">,</span><span class="msubsup" id="MathJax-Span-157" style="padding-left: 3.6px;"><span style="display: inline-block; position: relative; width: 14.1px; height: 0px;"><span style="position: absolute; clip: rect(34.4px 19360px 51.2px -8.3px); top: -48px; left: 0px;"><span class="mi" id="MathJax-Span-158" style="font-family: STIXGeneral-Italic;">t<span style="display: inline-block; overflow: hidden; height: 1px; width: 0.3px;"></span></span><span style="display: inline-block; width: 0px; height: 48px;"></span></span><span style="position: absolute; top: -39.1px; left: 5.7px;"><span class="mn" id="MathJax-Span-159" style="font-size: 70.7%; font-family: STIXGeneral-Regular;">1</span><span style="display: inline-block; width: 0px; height: 42px;"></span></span></span></span><span class="mo" id="MathJax-Span-160" style="font-family: STIXGeneral-Regular;">,</span><span class="mo" id="MathJax-Span-161" style="font-family: STIXGeneral-Regular; padding-left: 3.6px;">[</span><span class="mo" id="MathJax-Span-162" style="font-family: STIXGeneral-Regular;">]</span><span class="mo" id="MathJax-Span-163" style="font-family: STIXGeneral-Regular;">)</span><span class="mo" id="MathJax-Span-164" style="font-family: STIXGeneral-Regular; padding-left: 4.8px;">∧</span><span class="texatom" id="MathJax-Span-165" style="padding-left: 4.8px;"><span class="mrow" id="MathJax-Span-166"><span class="mi" id="MathJax-Span-167" style="font-family: STIXGeneral-Italic;">u</span><span class="mi" id="MathJax-Span-168" style="font-family: STIXGeneral-Italic;">s</span><span class="mi" id="MathJax-Span-169" style="font-family: STIXGeneral-Italic;">e</span><span class="mi" id="MathJax-Span-170" style="font-family: STIXGeneral-Italic;">d</span></span></span><span class="mo" id="MathJax-Span-171" style="font-family: STIXGeneral-Regular;">(</span><span class="mi" id="MathJax-Span-172" style="font-family: STIXGeneral-Italic;">u</span><span class="mi" id="MathJax-Span-173" style="font-family: STIXGeneral-Italic;">s</span><span class="mi" id="MathJax-Span-174" style="font-family: STIXGeneral-Italic;">e</span><span class="mo" id="MathJax-Span-175" style="font-family: STIXGeneral-Regular;">,</span><span class="msubsup" id="MathJax-Span-176" style="padding-left: 3.6px;"><span style="display: inline-block; position: relative; width: 18.5px; height: 0px;"><span style="position: absolute; clip: rect(36.5px 19360px 51.2px -8.7px); top: -48px; left: 0px;"><span class="mi" id="MathJax-Span-177" style="font-family: STIXGeneral-Italic;">a</span><span style="display: inline-block; width: 0px; height: 48px;"></span></span><span style="position: absolute; top: -39.1px; left: 10px;"><span class="mn" id="MathJax-Span-178" style="font-size: 70.7%; font-family: STIXGeneral-Regular;">2</span><span style="display: inline-block; width: 0px; height: 42px;"></span></span></span></span><span class="mo" id="MathJax-Span-179" style="font-family: STIXGeneral-Regular;">,</span><span class="mi" id="MathJax-Span-180" style="font-family: STIXGeneral-Italic; padding-left: 3.6px;">e</span><span class="mo" id="MathJax-Span-181" style="font-family: STIXGeneral-Regular;">,</span><span class="msubsup" id="MathJax-Span-182" style="padding-left: 3.6px;"><span style="display: inline-block; position: relative; width: 14.1px; height: 0px;"><span style="position: absolute; clip: rect(34.4px 19360px 51.2px -8.3px); top: -48px; left: 0px;"><span class="mi" id="MathJax-Span-183" style="font-family: STIXGeneral-Italic;">t<span style="display: inline-block; overflow: hidden; height: 1px; width: 0.3px;"></span></span><span style="display: inline-block; width: 0px; height: 48px;"></span></span><span style="position: absolute; top: -39.1px; left: 5.7px;"><span class="mn" id="MathJax-Span-184" style="font-size: 70.7%; font-family: STIXGeneral-Regular;">2</span><span style="display: inline-block; width: 0px; height: 42px;"></span></span></span></span><span class="mo" id="MathJax-Span-185" style="font-family: STIXGeneral-Regular;">,</span><span class="mo" id="MathJax-Span-186" style="font-family: STIXGeneral-Regular; padding-left: 3.6px;">[</span><span class="mo" id="MathJax-Span-187" style="font-family: STIXGeneral-Regular;">]</span><span class="mo" id="MathJax-Span-188" style="font-family: STIXGeneral-Regular;">)</span></span><span style="display: inline-block; width: 0px; height: 48px;"></span></span></span><span style="border-left-width: 0px; border-left-style: solid; display: inline-block; overflow: hidden; width: 0px; height: 19.2px; vertical-align: -5px;"></span></span></nobr></span><script type="math/tex" id="MathJax-Element-10">\forall id,a_2,a_1,attrs.~ \wasInformedBy(id,a_2,a_1,attrs) \Longrightarrow \exists e,gen,t_1,use,t_2.~\wasGeneratedBy(gen,e,a_1,t_1,[]) \wedge \used(use,a_2,e,t_2,[])</script></div>
+
+</div>
+
+
+<div id="inferences" class="section">
+<!--OddPage--><h2><span class="secno">3. </span>Inferences</h2>
+
+<div class="inference" id="communication-generation-use-inference"><div class="ruleTitle"><a class="internalDFN" href="#communication-generation-use-inference">Inference 2 (communication-generation-use-inference)</a></div><span class="math">∀ id,a<sub>2</sub>,a<sub>1</sub>,attrs. wasInformedBy(id,a<sub>2</sub>,a<sub>1</sub>,attrs) ⟹ ∃ e,gen,t<sub>1</sub>,use,t<sub>2</sub>. wasGeneratedBy(gen,e,a<sub>1</sub>,t<sub>1</sub>,[]) ∧ used(use,a<sub>2</sub>,e,t<sub>2</sub>,[])</span></div>
+<div class="inference" id="generation-use-communication-inference"><div class="ruleTitle"><a class="internalDFN" href="#generation-use-communication-inference">Inference 3 (generation-use-communication-inference)</a></div><span class="math">∀ gen,a<sub>1</sub>,t<sub>1</sub>,attrs<sub>1</sub>,id<sub>2</sub>,a<sub>2</sub>,t<sub>2</sub>,attrs<sub>2</sub>. wasGeneratedBy(gen,e,a<sub>1</sub>,t<sub>1</sub>,attrs<sub>1</sub>) ∧ used(id<sub>2</sub>,a<sub>2</sub>,e,t<sub>2</sub>,attrs<sub>2</sub>) ⟹ ∃ id. wasInformedBy(id,a<sub>2</sub>,a<sub>1</sub>,[])</span></div>
+<div class="inference" id="entity-generation-invalidation-inference"><div class="ruleTitle"><a class="internalDFN" href="#entity-generation-invalidation-inference">Inference 4 (entity-generation-invalidation-inference)</a></div><span class="math">∀ gen,e,a<sub>1</sub>,t<sub>1</sub>,attrs<sub>1</sub>,id<sub>2</sub>,a<sub>2</sub>,t<sub>2</sub>,attrs<sub>2</sub>. wasGeneratedBy(gen,e,a<sub>1</sub>,t<sub>1</sub>,attrs<sub>1</sub>) ∧ used(id<sub>2</sub>,a<sub>2</sub>,e,t<sub>2</sub>,attrs<sub>2</sub>) ⟹ ∃ id. wasInformedBy(id,a<sub>2</sub>,a<sub>1</sub>,[])</span></div>
+<div class="inference" id="activity-start-end-inference"><div class="ruleTitle"><a class="internalDFN" href="#activity-start-end-inference">Inference 5 (activity-start-end-inference)</a></div><span class="math">∀ a,t<sub>1</sub>,t<sub>2</sub>,attrs. activity(a,t<sub>1</sub>,t<sub>2</sub>,attrs) ⟹ ∃ start,e<sub>1</sub>,a<sub>1</sub>,end,a<sub>2</sub>,e<sub>2</sub>. wasStartedBy(start,a,e<sub>1</sub>,a<sub>1</sub>,t<sub>1</sub>,[]) ∧ wasEndedBy(end,a,e<sub>2</sub>,a<sub>2</sub>,t<sub>2</sub>,[])</span></div>
+<div class="inference" id="wasStartedBy-inference"><div class="ruleTitle"><a class="internalDFN" href="#wasStartedBy-inference">Inference 6 (wasStartedBy-inference)</a></div><span class="math">∀ id,a,e<sub>1</sub>,a<sub>1</sub>,t,attrs. wasStartedBy(id,a,e<sub>1</sub>,a<sub>1</sub>,t,attrs) ⟹ ∃ gen,t<sub>1</sub>. wasGeneratedBy(gen,e<sub>1</sub>,a<sub>1</sub>,t<sub>1</sub>,[])</span></div>
+<div class="inference" id="wasEndedBy-inference"><div class="ruleTitle"><a class="internalDFN" href="#wasEndedBy-inference">Inference 7 (wasEndedBy-inference)</a></div><span class="math">∀ id,a,e<sub>1</sub>,a<sub>1</sub>,t,attrs. wasEndedBy(id,a,e<sub>1</sub>,a<sub>1</sub>,t,attrs) ⟹ ∃ gen,t<sub>1</sub>. wasGeneratedBy(gen,e<sub>1</sub>,a<sub>1</sub>,t<sub>1</sub>,[])</span></div>
+<div class="inference" id="derivation-generation-use-inference"><div class="ruleTitle"><a class="internalDFN" href="#derivation-generation-use-inference">Inference 8 (derivation-generation-use-inference)</a></div>In this inference, none of <em>a</em>, <em>gen<sub>2</sub></em> or <em>use_1</em> can be placeholders -.<span class="math">∀ id,e<sub>2</sub>,e<sub>1</sub>,a,gen<sub>2</sub>,use<sub>1</sub>,attrs. wasDerivedFrom(id,e<sub>2</sub>,e<sub>1</sub>,a,gen<sub>2</sub>,use<sub>1</sub>,attrs) ⟹ ∃ s,t<sub>1</sub>,t<sub>2</sub>. used(use<sub>1</sub>,a,e<sub>1</sub>,t<sub>1</sub>,[]) ∧ wasGeneratedBy(gen<sub>2</sub>,e<sub>2</sub>,a,t<sub>2</sub>,[])</span></div>
+<div class="inference" id="revision-is-alternate-inference"><div class="ruleTitle"><a class="internalDFN" href="#revision-is-alternate-inference">Inference 9 (revision-is-alternate-inference)</a></div>In this inference, any of <em>a</em>, <em>g</em> or <em>u</em> may be placeholders.<span class="math">∀ id,e<sub>1</sub>,e<sub>2</sub>,a,g,u. wasDerivedFrom(id,e<sub>2</sub>,e<sub>1</sub>,a,g,u,.(prov:type = prov:Revision,[])) ⟹ alternateOf(e<sub>2</sub>,e<sub>1</sub>)</span></div>
+<div class="inference" id="attribution-inference"><div class="ruleTitle"><a class="internalDFN" href="#attribution-inference">Inference 10 (attribution-inference)</a></div><span class="math">∀ att,e,ag,attrs. wasAttributedTo(att,e,ag,attrs) ⟹ ∃ a,t,gen,assoc,pl. wasGeneratedBy(gen,e,a,t,[]) ∧ wasAssociatedWith(assoc,a,ag,pl,[])</span></div>
+<div class="inference" id="delegation-inference"><div class="ruleTitle"><a class="internalDFN" href="#delegation-inference">Inference 11 (delegation-inference)</a></div><span class="math">∀ id,ag<sub>1</sub>,ag<sub>2</sub>,a,attrs. actedOnBehalfOf(id,ag<sub>1</sub>,ag<sub>2</sub>,a,attrs) ⟹ ∃ id<sub>1</sub>,pl<sub>1</sub>,id<sub>2</sub>,pl<sub>2</sub>. wasAssociatedWith(id<sub>1</sub>,a,ag<sub>1</sub>,pl<sub>1</sub>,[]) ∧ wasAssociatedWith(id<sub>2</sub>,a,ag<sub>2</sub>,pl<sub>2</sub>,[])</span></div>
+<div class="inference" id="influence-inference"><div class="ruleTitle"><a class="internalDFN" href="#influence-inference">Inference 12 (influence-inference)</a></div><ol><li><span class="math">∀ id,e,a,t,attrs. wasGeneratedBy(id,e,a,t,attrs) ⟹ wasInfluencedBy(id,e,a,attrs)</span></li><li><span class="math">∀ id,a,e,t,attrs. used(id,a,e,t,attrs) ⟹ wasInfluencedBy(id,a,e,attrs)</span></li><li><span class="math">∀ id,a<sub>2</sub>,a<sub>1</sub>,attrs. wasInformedBy(id,a<sub>2</sub>,a<sub>1</sub>,attrs) ⟹ wasInfluencedBy(id,a<sub>2</sub>,a<sub>1</sub>,attrs)</span></li><li><span class="math">∀ id,a<sub>2</sub>,e,a<sub>1</sub>,t,attrs. wasStartedBy(id,a<sub>2</sub>,e,a<sub>1</sub>,t,attrs) ⟹ wasInfluencedBy(id,a<sub>2</sub>,e,attrs)</span></li><li><span class="math">∀ id,a<sub>2</sub>,e,a<sub>1</sub>,t,attrs. wasEndedBy(id,a<sub>2</sub>,e,a<sub>1</sub>,t,attrs) ⟹ wasInfluencedBy(id,a<sub>2</sub>,e,attrs)</span></li><li><span class="math">∀ id,e,a,t,attrs. wasInvalidatedBy(id,e,a,t,attrs) ⟹ wasInfluencedBy(id,e,a,attrs)</span></li><li><span class="math">∀ id,e<sub>2</sub>,e<sub>1</sub>,a,g,u,attrs. wasDerivedFrom(id,e<sub>2</sub>,e<sub>1</sub>,a,g,u,attrs) ⟹ wasInfluencedBy(id,e<sub>2</sub>,e<sub>1</sub>,attrs)</span></li><li>In this rule, <em>a</em>, <em>g</em>, <em>u</em> may be placeholders -.<span class="math">∀ id,e,ag,attrs. wasAttributedTo(id,e,ag,attrs) ⟹ wasInfluencedBy(id,e,ag,attrs)</span></li><li>In this rule, <em>pl</em> may be a placeholder -.<span class="math">∀ id,a,ag,pl,attrs. wasAssociatedWith(id,a,ag,pl,attrs) ⟹ wasInfluencedBy(id,a,ag,attrs)</span></li><li><span class="math">∀ id,ag<sub>2</sub>,ag<sub>1</sub>,a,attrs. actedOnBehalfOf(id,ag<sub>2</sub>,ag<sub>1</sub>,a,attrs) ⟹ wasInfluencedBy(id,ag<sub>2</sub>,ag<sub>1</sub>,attrs)</span></li></ol></div>
+<div class="inference" id="alternate-reflexive"><div class="ruleTitle"><a class="internalDFN" href="#alternate-reflexive">Inference 13 (alternate-reflexive)</a></div><span class="math">∀ e. entity(e) ⟹ alternateOf(e,e)</span></div>
+<div class="inference" id="alternate-transitive"><div class="ruleTitle"><a class="internalDFN" href="#alternate-transitive">Inference 14 (alternate-transitive)</a></div><span class="math">∀ e<sub>1</sub>,e<sub>2</sub>,e<sub>3</sub>. alternateOf(e<sub>1</sub>,e<sub>2</sub>) ∧ alternateOf(e<sub>2</sub>,e<sub>3</sub>) ⟹ alternateOf(e<sub>1</sub>,e<sub>3</sub>)</span></div>
+<div class="inference" id="alternate-symmetric"><div class="ruleTitle"><a class="internalDFN" href="#alternate-symmetric">Inference 15 (alternate-symmetric)</a></div><span class="math">∀ e<sub>1</sub>,e<sub>2</sub>. alternateOf(e<sub>1</sub>,e<sub>2</sub>) ⟹ alternateOf(e<sub>2</sub>,e<sub>1</sub>)</span></div>
+<div class="inference" id="specialization-transitive"><div class="ruleTitle"><a class="internalDFN" href="#specialization-transitive">Inference 16 (specialization-transitive)</a></div><span class="math">∀ e<sub>1</sub>,e<sub>2</sub>,e<sub>3</sub>. specializationOf(e<sub>1</sub>,e<sub>2</sub>) ∧ specializationOf(e<sub>2</sub>,e<sub>3</sub>) ⟹ specializationOf(e<sub>1</sub>,e<sub>3</sub>)</span></div>
+<div class="inference" id="specialization-alternate-inference"><div class="ruleTitle"><a class="internalDFN" href="#specialization-alternate-inference">Inference 17 (specialization-alternate-inference)</a></div><span class="math">∀ e<sub>1</sub>,e<sub>2</sub>. specializationOf(e<sub>1</sub>,e<sub>2</sub>) ⟹ alternateOf(e<sub>1</sub>,e<sub>2</sub>)</span></div>
+<div class="inference" id="specialization-attributes-inference"><div class="ruleTitle"><a class="internalDFN" href="#specialization-attributes-inference">Inference 18 (specialization-attributes-inference)</a></div><span class="math">∀ e<sub>1</sub>,attrs,e<sub>2</sub>. entity(e<sub>1</sub>,attrs) ∧ specializationOf(e<sub>2</sub>,e<sub>1</sub>) ⟹ entity(e<sub>2</sub>,attrs)</span></div>
+<div class="constraint" id="membership-empty-collection"><div class="ruleTitle"><a class="internalDFN" href="#membership-empty-collection">Constraint 19 (membership-empty-collection)</a></div><span class="math">∀ c,e. hasMember(c,e) ∧ prov:EmptyCollection \in typeOf(c) ⟹ False</span></div>
+
+</div>
+
+<div class="appendix section" id="acknowledgements"> 
+      <!--OddPage--><h2><span class="secno">A. </span>Acknowledgements</h2> 
+      <p> 
+
+This  document has been produced by the PROV Working Group, and its contents reflect extensive discussion within the Working Group as a whole. The editors extend special thanks to Ivan Herman (<acronym title="World Wide Web Consortium">W3C</acronym>/<acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym>), Paul Groth, Tim Lebo, Simon Miles, Stian Soiland-Reyes,  for their thorough reviews.
+      </p> 
+
+<p>
+Members of the PROV Working Group at the time of publication of this document were:
+
+Ilkay Altintas (Invited expert),
+Reza B'Far (Oracle Corporation),
+Khalid Belhajjame (University of Manchester),
+James Cheney (University of Edinburgh, School of Informatics),
+Sam Coppens (IBBT),
+David Corsar (University of Aberdeen, Computing Science),
+Stephen Cresswell (The National Archives),
+Tom De Nies (IBBT),
+Helena Deus (DERI Galway at the National University of Ireland, Galway, Ireland),
+Simon Dobson (Invited expert),
+Martin Doerr (Foundation for Research and Technology - Hellas(FORTH)),
+Kai Eckert (Invited expert),
+Jean-Pierre EVAIN (European Broadcasting Union, EBU-UER),
+James Frew (Invited expert),
+Irini Fundulaki (Foundation for Research and Technology - Hellas(FORTH)),
+Daniel Garijo (Universidad Politécnica de Madrid),
+Yolanda Gil (Invited expert),
+Ryan Golden (Oracle Corporation),
+Paul Groth (Vrije Universiteit),
+Olaf Hartig (Invited expert),
+David Hau (National Cancer Institute, NCI),
+Sandro Hawke (<acronym title="World Wide Web Consortium">W3C</acronym>/<acronym title="Massachusetts Institute of Technology">MIT</acronym>),
+Jörn Hees (German Research Center for Artificial Intelligence (DFKI) Gmbh),
+Ivan Herman, (<acronym title="World Wide Web Consortium">W3C</acronym>/<acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym>),
+Ralph Hodgson (TopQuadrant),
+Hook Hua (Invited expert),
+Trung Dong Huynh (University of Southampton),
+Graham Klyne (University of Oxford),
+Michael Lang (Revelytix, Inc.),
+Timothy Lebo (Rensselaer Polytechnic Institute),
+James McCusker (Rensselaer Polytechnic Institute),
+Deborah McGuinness (Rensselaer Polytechnic Institute),
+Simon Miles (Invited expert),
+Paolo Missier (School of Computing Science, Newcastle university),
+Luc Moreau (University of Southampton),
+James Myers (Rensselaer Polytechnic Institute),
+Vinh Nguyen (Wright State University),
+Edoardo Pignotti (University of Aberdeen, Computing Science),
+Paulo da Silva Pinheiro (Rensselaer Polytechnic Institute),
+Carl Reed (Open Geospatial Consortium),
+Adam Retter (Invited Expert),
+Christine Runnegar (Invited expert),
+Satya Sahoo (Invited expert),
+David Schaengold (Revelytix, Inc.),
+Daniel Schutzer (FSTC, Financial Services Technology Consortium),
+Yogesh Simmhan (Invited expert),
+Stian Soiland-Reyes (University of Manchester),
+Eric Stephan (Pacific Northwest National Laboratory),
+Linda Stewart (The National Archives),
+Ed Summers (Library of Congress),
+Maria Theodoridou (Foundation for Research and Technology - Hellas(FORTH)),
+Ted Thibodeau (OpenLink Software Inc.),
+Curt Tilmes (National Aeronautics and Space Administration),
+Craig Trim (IBM Corporation),
+Stephan Zednik (Rensselaer Polytechnic Institute),
+Jun Zhao (University of Oxford),
+Yuting Zhao (University of Aberdeen, Computing Science).
+</p>
+    </div> 
+
+ 
+
+<!--  LocalWords:  px DM RL RDF AQ SEM SOTD Definitional wasInformedBy attrs ag
+ -->
+<!--  LocalWords:  wasGeneratedBy wasStartedBy gAttr sAttr wasAttributedTo attr
+ -->
+<!--  LocalWords:  wasAssociatedWith dAttrs gAttrs wasDerivedFrom uAttrs eAttrs
+ -->
+<!--  LocalWords:  wasRevisionOf specializationOf wasQuotedFrom Traceability WD
+ -->
+<!--  LocalWords:  tracedTo aAttr actedOnBehalfOf rAttr traceability TODO xsd
+ -->
+<!--  LocalWords:  alternateOf wasEndedBy Lamport's timeline subfigure memberOf
+ -->
+<!--  LocalWords:  wasStartedByAgent wasAttributedWith derivedByInsertionFrom
+ -->
+<!--  LocalWords:  QName derivedByRemovalFrom EmptyCollection wasVersionOf dm
+ -->
+<!--  LocalWords:  RecsWD formedness workflow ness operability CSP versa hyp YY
+ -->
+<!--  LocalWords:  disambiguating lifecycle conformant minimalistic Lamport fo
+ -->
+<!--  LocalWords:  reflexivity antisymmetry timelines timespan WG concl inv TBD
+ -->
+<!--  LocalWords:  continuant occurrent modalities toyota womanInRedDress provn
+ -->
+<!--  LocalWords:  customerInChairAt manWithGlasses customerInChair irreflexive
+ -->
+<!--  LocalWords:  wasStartedByActivity antisymmetric wasInvalidatedBy stmt CHR
+ -->
+<!--  LocalWords:  DBCONSTRAINTS formalisms URIs wasInfluencedBy definitional
+ -->
+<!--  LocalWords:  wasInvalidated th  nontermination  implementability att evt
+ -->
+<!--  LocalWords:  Irreflexivity mentionOf preorder equalities unsatisfiable De
+ -->
+<!--  LocalWords:  Lebo subfigures pre del irreflexivity superproperty typeOf
+ -->
+<!--  LocalWords:  disjointness inferrable subtyping subtype subtypes hadMember
+ -->
+<!--  LocalWords:  hasMember toplevel sameAs tuple acyclicity isomorphism IRI
+ -->
+<!--  LocalWords:  endBundle typeof equational acyclic invertible procedurally
+ -->
+<!--  LocalWords:  implementers multi unifier ERCIM Groth Stian Soiland Ilkay
+ -->
+<!--  LocalWords:  Altintas Reza B'Far Belhajjame Informatics Coppens IBBT Nies
+ -->
+<!--  LocalWords:  Corsar Cresswell Deus DERI Galway satisfiable namespace Kai
+ -->
+<!--  LocalWords:  endDocument Dobson Doerr Hellas Eckert EVAIN EBU UER Frew de
+ -->
+<!--  LocalWords:  Irini Fundulaki Garijo Universidad Politécnica Vrije Hartig
+ -->
+<!--  LocalWords:  Universiteit Hau NCI Sandro Hawke Jörn Hees DFKI Gmbh Hua da
+ -->
+<!--  LocalWords:  Hodgson TopQuadrant Trung Huynh Klyne Revelytix Rensselaer
+ -->
+<!--  LocalWords:  McCusker McGuinness Paolo Missier Luc Moreau Vinh Edoardo
+ -->
+<!--  LocalWords:  Pignotti Paulo Pinheiro Geospatial Retter Runnegar Satya
+ -->
+<!--  LocalWords:  Sahoo Schaengold Schutzer FSTC Yogesh Simmhan Theodoridou
+ -->
+<!--  LocalWords:  Thibodeau OpenLink Tilmes Zednik Zhao Yuting
+ -->
+<div id="MathJax_Font_Test" style="position: absolute; visibility: hidden; top: 0px; left: 0px; width: auto; padding: 0px; border: 0px; margin: 0px; white-space: nowrap; text-align: left; text-indent: 0px; text-transform: none; line-height: normal; letter-spacing: normal; word-spacing: normal; font-size: 40px; font-weight: normal; font-style: normal; font-family: STIXSizeOneSym, sans-serif;">() {} []</div><div id="references" class="appendix section"><!--OddPage--><h2><span class="secno">B. </span>References</h2><div id="normative-references" class="section"><h3><span class="secno">B.1 </span>Normative references</h3><dl class="bibliography"><dt id="bib-PROV-DM">[PROV-DM]</dt><dd>Luc Moreau; Paolo Missier; eds. <a href="http://www.w3.org/TR/2012/CR-prov-dm-20121211/"><cite>PROV-DM: The PROV Data Model</cite></a>. 11 December 2012, W3C Candidate Recommendation. URL: <a href="http://www.w3.org/TR/2012/CR-prov-dm-20121211/">http://www.w3.org/TR/2012/CR-prov-dm-20121211/</a>
+</dd><dt id="bib-PROV-N">[PROV-N]</dt><dd>Luc Moreau; Paolo Missier; eds. <a href="http://www.w3.org/TR/2012/CR-prov-n-20121211/"><cite>PROV-N: The Provenance Notation</cite></a>. 11 December 2012, W3C Candidate Recommendation. URL: <a href="http://www.w3.org/TR/2012/CR-prov-n-20121211/">http://www.w3.org/TR/2012/CR-prov-n-20121211/</a>
+</dd><dt id="bib-PROV-O">[PROV-O]</dt><dd>Timothy Lebo; Satya Sahoo; Deborah McGuinness; eds. <a href="http://www.w3.org/TR/2012/CR-prov-o-20121211/"><cite>PROV-O: The PROV Ontology</cite></a>. 11 December 2012, W3C Candidate Recommendation. URL: <a href="http://www.w3.org/TR/2012/CR-prov-o-20121211/">http://www.w3.org/TR/2012/CR-prov-o-20121211/</a>
+</dd><dt id="bib-RFC2119">[RFC2119]</dt><dd>S. Bradner. <a href="http://www.ietf.org/rfc/rfc2119.txt"><cite>Key words for use in RFCs to Indicate Requirement Levels.</cite></a> March 1997. Internet RFC 2119.  URL: <a href="http://www.ietf.org/rfc/rfc2119.txt">http://www.ietf.org/rfc/rfc2119.txt</a> 
+</dd></dl></div><div id="informative-references" class="section"><h3><span class="secno">B.2 </span>Informative references</h3><dl class="bibliography"><dt id="bib-PROV-AQ">[PROV-AQ]</dt><dd>Graham Klyne; Paul Groth; eds. <a href="http://www.w3.org/TR/2012/WD-prov-aq-20120619/"><cite>Provenance Access and Query</cite></a>. 19 June 2012, Working Draft. URL: <a href="http://www.w3.org/TR/2012/WD-prov-aq-20120619/">http://www.w3.org/TR/2012/WD-prov-aq-20120619/</a>
+</dd><dt id="bib-PROV-OVERVIEW">[PROV-OVERVIEW]</dt><dd>Paul Groth; Luc Moreau; eds. <a href="http://www.w3.org/TR/2012/WD-prov-overview-20121211/"><cite>PROV-OVERVIEW: An Overview of the PROV Family of Documents</cite></a>. 11 December 2012, Working Draft. URL: <a href="http://www.w3.org/TR/2012/WD-prov-overview-20121211/">http://www.w3.org/TR/2012/WD-prov-overview-20121211/</a>
+</dd><dt id="bib-PROV-PRIMER">[PROV-PRIMER]</dt><dd>Yolanda Gil; Simon Miles; eds. <a href="http://www.w3.org/TR/2012/WD-prov-primer-20121211/"><cite>PROV Model Primer</cite></a>. 11 December 2012, Working Draft. URL: <a href="http://www.w3.org/TR/2012/WD-prov-primer-20121211/">http://www.w3.org/TR/2012/WD-prov-primer-20121211/</a>
+</dd><dt id="bib-PROV-XML">[PROV-XML]</dt><dd>Hook Hua; Curt Tilmes; Stephan Zednik; eds. <a href="http://www.w3.org/TR/2012/WD-prov-xml-20121211/"><cite>PROV-XML: The PROV XML Schema</cite></a>. 11 December 2012, Working Draft. URL: <a href="http://www.w3.org/TR/2012/WD-prov-xml-20121211/">http://www.w3.org/TR/2012/WD-prov-xml-20121211/</a>
+</dd></dl></div></div></body></html>
\ No newline at end of file
--- a/semantics/prov-sem.html	Mon Dec 17 09:42:40 2012 -0500
+++ b/semantics/prov-sem.html	Mon Dec 17 09:43:00 2012 -0500
@@ -1,14 +1,9 @@
-<!DOCTYPE html>
-
+<?xml version="1.0" encoding="UTF-8"?>
 <html><head> 
     <title>Semantics of the Provenance Data Model</title> 
-    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
-    <!-- 
-      === NOTA BENE ===
-      For the three scripts below, if your spec resides on dev.w3 you can check them
-      out in the same tree and use relative links so that they'll work offline,
-     -->
-<!-- PM -->
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></meta> 
+    
+
     <style type="text/css">
       .note { font-size:small; margin-left:50px }
 
@@ -535,367 +530,28 @@
      </style>
 
     <script src="http://dev.w3.org/2009/dap/ReSpec.js/js/respec.js" class="remove"></script>  
-<!--    <script src="http://www.w3.org/Tools/respec/respec-w3c-common" class="remove" async></script> -->
+
 
     <script src="http://www.w3.org/2007/OWL/toggles.js" class="remove"></script> 
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" class="remove"></script>
-
-    <script class="remove"> 
-
-function setColoredDiffs () {
-    $('dt').each(function(index) {
-        var content=$(this).text();
-        if (content== "Previous version:") {
-         console.log( "content " +  content);
-	  $(this).next().append(" ").append($('<a>').attr('href','diff-c.html').append("(colored-coded diff)"));
-        }
-    })
-}
-
-
-      function updateRules() {
-        var count=1;
-        $('.constraint,.definition,.inference').each(function(index) {
-
-          var myid=$(this).attr('id');
-          var mycount=count++;
-
-          if (myid==undefined) {
-            myid='rule_' + mycount;
-            $(this).attr('id',myid);
-          }
-
-          var myClass=$(this).attr('class');
-
-          var myTitle=capitaliseFirstLetter(myClass) + ' ' + mycount + ' (' + myid + ')';
-          
-          $(this).attr('data-count', mycount)
-                 .attr('data-title',myTitle).prepend($('<div>').addClass('ruleTitle')
-                                                          .append($('<a>').addClass('internalDFN').attr('href','#'+myid).append(myTitle)));
-
-          //console.log( "rule for " + myid + " " + mycount);
-
-        });
-		   
-        $('.constraint-example,.definition-example,.inference-example').each(function(index) {
-
-          var myid=$(this).attr('id');
-          var mycount='NNN';
-
-          if (myid==undefined) {
-            myid='rule_' + mycount;
-            $(this).attr('id',myid);
-          }
-
-          var myClass=$(this).attr('class');
-
-          var myTitle=capitaliseFirstLetter(myClass) + ' ' + mycount + ' (' + myid + ')';
-          
-          $(this).attr('data-count', mycount)
-                 .attr('data-title',myTitle).prepend($('<div>').addClass('ruleTitle')
-                                                          .append($('<a>').addClass('internalDFN').attr('href','#'+myid).append(myTitle)));
-
-          //console.log( "rule for " + myid + " " + mycount);
-
-        });
-      }
-
-          function capitaliseFirstLetter(string)
-          {
-          return string.charAt(0).toUpperCase() + string.slice(1);
-          }
-
-
-      function updateRulesRefs() {
-        $('.rule-ref').each(function(index) {
-
-          myhref=$(this).attr('href');
-
-          //console.log( "example ref for " + myhref);
-
-          mytitle=$(myhref).attr('data-title');
-
-          console.log( "rule ref for " + myhref + " " + mytitle);
-
-          $(this).children('span').replaceWith(function(){return $('<span>').append(mytitle)});
-
-        });
-
-        $('.rule-text').each(function(index) {
-
-          myhref=$(this).attr('href');
-          $(this).attr('href', myhref + '_text');
-
-          //console.log( "example ref for " + myhref);
-
-          mytitle=$(myhref).attr('data-title');
-
-          console.log( "rule ref for " + myhref + " " + mytitle);
-
-          $(this).children('span').replaceWith(function(){return $('<span>').append(mytitle)});
-
-        });
-      }
-      function updateExamples() {
-        var count=1;
-        $('.anexample').each(function(index) {
-
-          var myid=$(this).attr('id');
-          var mycount=count++;
-
-          if (myid==undefined) {
-            myid='example_' + mycount;
-            $(this).attr('id',myid);
-          }
-
-          
-          $(this).attr('data-count', mycount).prepend($('<div>').addClass('anexampleTitle')
-                                                          .append($('<a>').addClass('internalDFN').attr('href','#'+myid).append("Example " + mycount)));
-
-          //console.log( "example for " + myid + " " + mycount);
-
-        });
-      }
-
-
-      function updateExamplesRefs() {
-        $('.anexample-ref').each(function(index) {
-
-          myhref=$(this).attr('href');
-
-              //console.log( "example ref for " + myhref);
-
-          mycount=$(myhref).attr('data-count');
-
-              //console.log( "example ref for " + myhref + " " + mycount);
-
-          $(this).children('span').replaceWith(function(){return $('<span>').append("Example " + mycount)});
-
-        });
-      };
-
-
-        // function to replace figcaption since not allowed by prov rules, and not transformed by respec.js
-      function updateFigCaptions() {
-	var figureCount=1;
-
-        $('figcaption').each(function(index) {
-
-          var myid=$(this).attr('id');
-          var mycount=figureCount++;
-
-          $(this).replaceWith(function(){return $('<span>').addClass('figcaption').attr('data-count', mycount).attr('id',myid).append("Figure " + mycount)
-.append($('<sup>').append($('<a>').addClass('internalDFN').attr('href','#'+myid).append($('<span>').addClass('diamond').append(" &#9674;:")))).append(" ")
-.append($(this).contents())});
-        });
-      }
-
-        // function to replace figure since not allowed by prov rules, and not transformed by respec.js
-      function updateFigures() {
-        $('figure').each(function(index) {
-
-          var myid=$(this).attr('id');
-          var mystyle=$(this).attr('style');
-
-             console.log( "figure " + myid + " " + $(this).contents());
-
-          $(this).replaceWith(function(){
-                                          var aNewElement=$('<span>').addClass('figure').append($(this).contents());
-                                          if (myid) {
-                                            aNewElement.attr('id',myid)
-                                          }                                          
-                                          if (mystyle) {
-                                            aNewElement.attr('style',mystyle)
-                                          }                                          
-                                          return aNewElement });
-
-
-
-        //          $(this).replaceWith(function(){return $('<span>').addClass('figure').attr('id',myid).attr('style',mystyle).append($(this).contents())});
-             console.log( "figure " + myid);
-        });
-      }
-
-
-      function removeDataAttributes() {
-
-
-        $('.anexample').each(function(index) {
-          $(this).removeAttr('data-count');
-        });
-
-        $('caption').each(function(index) {
-          $(this).removeAttr('data-count');
-        });
-
-        $('.figcaption').each(function(index) {
-          $(this).removeAttr('data-count');
-        });
-
-        $('.definition').each(function(index) {
-          $(this).removeAttr('data-count');
-          $(this).removeAttr('data-title');
-        });
-
-        $('.inference').each(function(index) {
-          $(this).removeAttr('data-count');
-          $(this).removeAttr('data-title');
-        });
-
-        $('.constraint').each(function(index) {
-          $(this).removeAttr('data-count');
-          $(this).removeAttr('data-title');
-        });
-
-        $('.inference-example').each(function(index) {
-          $(this).removeAttr('data-count');
-          $(this).removeAttr('data-title');
-        });
-
-        $('.constraint-example').each(function(index) {
-          $(this).removeAttr('data-count');
-          $(this).removeAttr('data-title');
-        });
-
-        $('.definition-example').each(function(index) {
-          $(this).removeAttr('data-count');
-          $(this).removeAttr('data-title');
-        });
-}				    
-
-      $(document).ready(function(){
-        updateRules();
-        updateRulesRefs();
-        updateFigCaptions();
-	if (typeof String.prototype.startsWith != 'function') {
-            String.prototype.startsWith = function (str) {
-					    return this.indexOf(str) == 0;
-					  };
-        }
-	if (typeof String.prototype.contains != 'function') {
-            String.prototype.contains  = function (str) {
-					    return this.indexOf(str) >= 0;
-					  };
-        }
-
-
-
-      });
+    <script type="text/javascript" class="remove" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML">
+    </script>
+<script type="text/x-mathjax-config" class="remove">
+MathJax.Hub.Config({
+ tex2jax: {
+      inlineMath: [ ['$','$'], ["\\(","\\)"] ],
+      displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
+      processEscapes: true
+    },
+ });
+</script>
+  <script class="remove"> 
+//
 </script>
     <script src="../model/provbib.js" class="remove"></script>
 
     <script class="remove"> 
-
-
-      var addExtraReferences = function() {
-          for (var k in extraReferences)
-              berjon.biblio[k] = extraReferences[k];
-      };
-
-      var extraReferences = {
-        "CHR":
-         "Thom Frühwirth. "+
-         "<a        href=\"http://constraint-handling-rules.org/\"><cite>Constraint        Handling Rules</cite></a>."+
-         " Cambridge University Press "+
-         " URL: <a href=\"http://constraint-handling-rules.org/\">http://constraint-handling-rules.org/</a>",
-        "CLOCK":
-         "L. Lamport. "+
-         "<a href=\"http://research.microsoft.com/users/lamport/pubs/time-clocks.pdf\"><cite>Time, clocks, and the ordering of events in a distributed system</cite></a>."+
-         " Communications of the ACM 21 (7): 558–565. 1978. "+
-         "URL: <a href=\"http://research.microsoft.com/users/lamport/pubs/time-clocks.pdf\">http://research.microsoft.com/users/lamport/pubs/time-clocks.pdf</a> " +
-         "DOI: doi:10.1145/359545.359563.",
-        "CSP":
-         "Hoare, C. A. R. "+
-         "<a href=\"http://www.usingcsp.com/cspbook.pdf\"><cite>Communicating Sequential Processes</cite></a>."+
-         "Prentice-Hall. 1985"+
-         "URL: <a href=\"http://www.usingcsp.com/cspbook.pdf\">http://www.usingcsp.com/cspbook.pdf</a>",
-        "DBCONSTRAINTS":
-         " Ronald Fagin; Phokion G. Kolaitis; Renée J. Miller; Lucian Popa. "+
-         " <a href=\"http://dx.doi.org/10.1016/j.tcs.2004.10.033\"><cite>Data        exchange: Semantics and query answering</cite></a>.  Theoretical computer science 336(1):89-124 "+
-         "  Elsevier "+
-         " URL: <a href=\"http://dx.doi.org/10.1016/j.tcs.2004.10.033\">http://dx.doi.org/10.1016/j.tcs.2004.10.033</a>",
-	    "Logic":
-          "W. E. Johnson. "+
-          "<a href=\"http://www.ditext.com/johnson/intro-3.html\"><cite>Logic: Part III</cite></a>."+
-          "1924. "+
-          "URL: <a href=\"http://www.ditext.com/johnson/intro-3.html\">http://www.ditext.com/johnson/intro-3.html</a>",
-
-         "RDF":
-          "Graham Klyne and Jeremy J. Carroll (eds.) "+
-          "<a href=\"http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/\"><cite>Resource Description Framework (RDF): Concepts and Abstract Syntax</cite></a>. "+
-          "2004, W3C Recommendation. "+
-          "URL: <a href=\"http://www.w3.org/TR/2004/REC-rdf-concepts-20040210//\">http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/</a>",
-};
-      var respecConfig = {
-          // specification status (e.g. WD, LCWD, NOTE, etc.). If in doubt use ED.
-          specStatus:           "ED",
-          
-          // the specification's short name, as in http://www.w3.org/TR/short-name/
-          shortName:            "prov-sem",
- 
-          // if your specification has a subtitle that goes below the main
-          // formal title, define it here
-          //subtitle : "<a href=\"diff-c.html\">Changes</a> since Last Call Working Draft  (LC)",
-
-
-
-          // if you wish the publication date to be other than today, set this
-         // publishDate:  "",
-
-          // if the specification's copyright date is a range of years, specify
-          // the start date here:
-          copyrightStart: "2012",
- 
-          // if there is a previously published draft, uncomment this and set its YYYY-MM-DD date
-          // and its maturity status
-          
-          // if there a publicly available Editor's Draft, this is the link
-          edDraftURI:           "http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-sem.html",
-
-
-
- 
-          // if this is a LCWD, uncomment and set the end of its review period
-
-          // if you want to have extra CSS, append them to this list
-          // it is recommended that the respec.css stylesheet be kept
-          //extraCSS:             ["http://dev.w3.org/2009/dap/ReSpec.js/css/respec.css", "./extra.css"],
- 
-          // editors, add as many as you like
-          // only "name" is required
-          editors:  [
-              { name: "James Cheney", url:
-          "http://homepages.inf.ed.ac.uk/jcheney", company:
-          "University of Edinburgh" },
-         ],
- 
-          // authors, add as many as you like. 
-          // This is optional, uncomment if you have authors as well as editors.
-          // only "name" is required. Same format as editors.
- 
-//authors:  [] ,
-         
-          // name of the WG
-          wg:           "Provenance Working Group",
-          
-          // URI of the public WG page
-          wgURI:        "http://www.w3.org/2011/prov/",
-          
-          // name (with the @w3c.org) of the public mailing to which comments are due
-          wgPublicList: "public-prov-comments",
-          
-          // URI of the patent status for this WG, for Rec-track documents
-          // !!!! IMPORTANT !!!!
-          // This is important for Rec-track documents, do not copy a patent URI from a random
-          // document unless you know what you're doing. If in doubt ask your friendly neighbourhood
-          // Team Contact.
-          wgPatentURI:  "http://www.w3.org/2004/01/pp-impl/46974/status",
-
-          // Add extraReferences to bibliography database
-          preProcess: [addExtraReferences, addProvReferences],
-
-          postProcess: [updateFigures, removeDataAttributes, checkLinksToW3CReports, setColoredDiffs],
-      };
+//
     </script> 
   </head> 
   <body> 
@@ -924,8 +580,7 @@
 <li> <a href="http://www.w3.org/TR/2012/CR-prov-o-20121211/">PROV-O</a> (Recommendation), the PROV ontology, an OWL2 ontology allowing the mapping of PROV to RDF [[!PROV-O]];</li>
 <li> <a href="http://www.w3.org/TR/2012/CR-prov-dm-20121211/">PROV-DM</a> (Recommendation), the PROV data model for provenance [[!PROV-DM]];</li>
 <li> <a href="http://www.w3.org/TR/2012/CR-prov-n-20121211/">PROV-N</a> (Recommendation), a notation for provenance aimed at human consumption [[!PROV-N]];</li>
-<li> <a
-href="http://www.w3.org/TR/2012/CR-prov-constraints-20121211/">PROV-CONSTRAINTS</a>
+<li> <a href="http://www.w3.org/TR/2012/CR-prov-constraints-20121211/">PROV-CONSTRAINTS</a>
 (Recommendation), a set of constraints applying to the PROV data model;</li>
 <li> <a href="http://www.w3.org/TR/2012/WD-prov-aq-20120619/">PROV-AQ</a> (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> (Note),  an XML schema for the PROV data model [[PROV-XML]].</li>
@@ -946,8 +601,7 @@
 
 
     <section id="introduction"> 
-      <h2>Introduction<br>
-</h2> 
+      <h2>Introduction</h2> 
 
 <p>
 Provenance is a record that describes the people, institutions, entities, and activities involved in producing, influencing, or delivering a piece of data or a thing.
@@ -969,8 +623,7 @@
 
 <p>In this document, logical formulas contain variables written as
     lower-case identifiers.  Some of these variables are written
-    beginning with the underscore character <span
-    class="name">_</span>, by convention, to indicate that they
+    beginning with the underscore character <span class="name">_</span>, by convention, to indicate that they
     appear only once in the formula.  Such variables are
     provided merely as an aid to the reader.  </p>
 
@@ -1002,27 +655,66 @@
 </section>
 </section>
 
+<section id="test">
+<h2>MathJax test</h2>
+
+\(\newcommand{\wasDerivedFrom}{\mathit{wasDerivedFrom}}\)
+\(\newcommand{\wasInformedBy}{\mathit{wasInformedBy}}\)
+\(\newcommand{\wasGeneratedBy}{\mathit{wasGeneratedBy}}\)
+\(\newcommand{\used}{\mathit{used}}\)
+\(\newcommand{\entity}{\mathit{entity}}\)
+\(\newcommand{\activity}{\mathit{activity}}\)
+
+<p>When $a \ne 0$, there are two solutions to \(ax^2 + bx + c = 0\) and they are
+</p>
+$$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$
+
+<div class="inference" id="communication-generation-use-inference_test">
+\(\forall id,a_2,a_1,attrs.~ \wasInformedBy(id,a_2,a_1,attrs) \Longrightarrow \exists e,gen,t_1,use,t_2.~\wasGeneratedBy(gen,e,a_1,t_1,[]) \wedge \used(use,a_2,e,t_2,[])\)</div>
+
+</section>
+
+
+<section id="test2">
+<h2> BlahTeXML text </h2>
+
+<div xmlns:b="http://gva.noekeon.org/blahtexml">
+  <span><math xmlns="http://www.w3.org/1998/Math/MathML"></math></span>
+  <span><math xmlns="http://www.w3.org/1998/Math/MathML"></math></span>
+  <span><math xmlns="http://www.w3.org/1998/Math/MathML"></math></span>
+  <span><math xmlns="http://www.w3.org/1998/Math/MathML"></math></span>
+  <span><math xmlns="http://www.w3.org/1998/Math/MathML"></math></span>
+  <span><math xmlns="http://www.w3.org/1998/Math/MathML"></math></span>
+  <span><math xmlns="http://www.w3.org/1998/Math/MathML"></math></span>
+  <span><math xmlns="http://www.w3.org/1998/Math/MathML"><mo lspace="0" rspace="0">∀</mo><mi>i</mi><mspace width="0"></mspace><mi>d</mi><mo lspace="0" rspace="0.167em">,</mo><msub><mi>a</mi><mn>2</mn></msub><mo lspace="0" rspace="0.167em">,</mo><msub><mi>a</mi><mn>1</mn></msub><mo lspace="0" rspace="0.167em">,</mo><mi>a</mi><mspace width="0"></mspace><mi>t</mi><mspace width="0"></mspace><mi>t</mi><mspace width="0"></mspace><mi>r</mi><mspace width="0"></mspace><mi>s</mi><mo lspace="0" rspace="0.333em">.</mo><mi>w</mi><mspace width="0"></mspace><mi>a</mi><mspace width="0"></mspace><mi>s</mi><mspace width="0"></mspace><mi>I</mi><mspace width="0"></mspace><mi>n</mi><mspace width="0"></mspace><mi>f</mi><mspace width="0"></mspace><mi>o</mi><mspace width="0"></mspace><mi>r</mi><mspace width="0"></mspace><mi>m</mi><mspace width="0"></mspace><mi>e</mi><mspace width="0"></mspace><mi>d</mi><mspace width="0"></mspace><mi>B</mi><mspace width="0"></mspace><mi>y</mi><mo lspace="0" rspace="0" stretchy="false">(</mo><mi>i</mi><mspace width="0"></mspace><mi>d</mi><mo lspace="0" rspace="0.167em">,</mo><msub><mi>a</mi><mn>2</mn></msub><mo lspace="0" rspace="0.167em">,</mo><msub><mi>a</mi><mn>1</mn></msub><mo lspace="0" rspace="0.167em">,</mo><mi>a</mi><mspace width="0"></mspace><mi>t</mi><mspace width="0"></mspace><mi>t</mi><mspace width="0"></mspace><mi>r</mi><mspace width="0"></mspace><mi>s</mi><mo lspace="0" rspace="0.278em" stretchy="false">)</mo><mo lspace="0" rspace="0.278em">⇒</mo><mo lspace="0" rspace="0">∃</mo><mi>e</mi><mo lspace="0" rspace="0.167em">,</mo><mi>g</mi><mspace width="0"></mspace><mi>e</mi><mspace width="0"></mspace><mi>n</mi><mo lspace="0" rspace="0.167em">,</mo><msub><mi>t</mi><mn>1</mn></msub><mo lspace="0" rspace="0.167em">,</mo><mi>u</mi><mspace width="0"></mspace><mi>s</mi><mspace width="0"></mspace><mi>e</mi><mo lspace="0" rspace="0.167em">,</mo><msub><mi>t</mi><mn>2</mn></msub><mo lspace="0" rspace="0.333em">.</mo><mi>w</mi><mspace width="0"></mspace><mi>a</mi><mspace width="0"></mspace><mi>s</mi><mspace width="0"></mspace><mi>G</mi><mspace width="0"></mspace><mi>e</mi><mspace width="0"></mspace><mi>n</mi><mspace width="0"></mspace><mi>e</mi><mspace width="0"></mspace><mi>r</mi><mspace width="0"></mspace><mi>a</mi><mspace width="0"></mspace><mi>t</mi><mspace width="0"></mspace><mi>e</mi><mspace width="0"></mspace><mi>d</mi><mspace width="0"></mspace><mi>B</mi><mspace width="0"></mspace><mi>y</mi><mo lspace="0" rspace="0" stretchy="false">(</mo><mi>g</mi><mspace width="0"></mspace><mi>e</mi><mspace width="0"></mspace><mi>n</mi><mo lspace="0" rspace="0.167em">,</mo><mi>e</mi><mo lspace="0" rspace="0.167em">,</mo><msub><mi>a</mi><mn>1</mn></msub><mo lspace="0" rspace="0.167em">,</mo><msub><mi>t</mi><mn>1</mn></msub><mo lspace="0" rspace="0.167em">,</mo><mo lspace="0" rspace="0" stretchy="false">[</mo><mo lspace="0" rspace="0" stretchy="false">]</mo><mo lspace="0" rspace="0.222em" stretchy="false">)</mo><mo lspace="0" rspace="0.222em">∧</mo><mi>u</mi><mspace width="0"></mspace><mi>s</mi><mspace width="0"></mspace><mi>e</mi><mspace width="0"></mspace><mi>d</mi><mo lspace="0" rspace="0" stretchy="false">(</mo><mi>u</mi><mspace width="0"></mspace><mi>s</mi><mspace width="0"></mspace><mi>e</mi><mo lspace="0" rspace="0.167em">,</mo><msub><mi>a</mi><mn>2</mn></msub><mo lspace="0" rspace="0.167em">,</mo><mi>e</mi><mo lspace="0" rspace="0.167em">,</mo><msub><mi>t</mi><mn>2</mn></msub><mo lspace="0" rspace="0.167em">,</mo><mo lspace="0" rspace="0" stretchy="false">[</mo><mo lspace="0" rspace="0" stretchy="false">]</mo><mo lspace="0" rspace="0" stretchy="false">)</mo></math></span>
+  <span><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><mstyle displaystyle="true"><mi>exp</mi><mo lspace="0" rspace="0" stretchy="false">(</mo><mo lspace="0" rspace="0">-</mo><mi>γ</mi><mspace width="0"></mspace><mi>x</mi><mo lspace="0" rspace="0" stretchy="false">)</mo></mstyle></math></span>
+  When <span><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>a</mi><mo lspace="0.278em" rspace="0.278em">≠</mo><mn>0</mn></math></span>, there are two solutions to <span><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>a</mi><mspace width="0"></mspace><msup><mi>x</mi><mn>2</mn></msup><mo lspace="0.222em" rspace="0.222em">+</mo><mi>b</mi><mspace width="0"></mspace><mi>x</mi><mo lspace="0.222em" rspace="0.222em">+</mo><mi>c</mi><mo lspace="0.278em" rspace="0.278em">=</mo><mn>0</mn></math></span> and they are
+<span><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><mstyle displaystyle="true"><mi>x</mi><mo lspace="0.278em" rspace="0.278em">=</mo><mfrac><mrow><mo lspace="0" rspace="0">-</mo><mi>b</mi><mo lspace="0.222em" rspace="0.222em">±</mo><msqrt><msup><mi>b</mi><mn>2</mn></msup><mo lspace="0.222em" rspace="0.222em">-</mo><mn>4</mn><mi>a</mi><mspace width="0"></mspace><mi>c</mi></msqrt></mrow><mrow><mn>2</mn><mi>a</mi></mrow></mfrac></mstyle></math></span>.
+</div>
+
+</section>
 
 <section id="inferences">
 <h2>Inferences</h2>
-<div class="inference" id="communication-generation-use-inference"><span class="math">&#8704; <span class="math">id</span>,<span class="math">a_2</span>,<span class="math">a_1</span>,<span class="math">attrs</span>. wasInformedBy(id,a_2,a_1,attrs) &#10233; &#8707; <span class="math">e</span>,<span class="math">gen</span>,<span class="math">t_1</span>,<span class="math">use</span>,<span class="math">t_2</span>. wasGeneratedBy(gen,e,a_1,t_1,[]) &#8743; used(use,a_2,e,t_2,[])</span></div>
-<div class="inference" id="generation-use-communication-inference"><span class="math">&#8704; <span class="math">gen</span>,<span class="math">a_1</span>,<span class="math">t_1</span>,<span class="math">attrs_1</span>,<span class="math">id_2</span>,<span class="math">a_2</span>,<span class="math">t_2</span>,<span class="math">attrs_2</span>. wasGeneratedBy(gen,e,a_1,t_1,attrs_1) &#8743; used(id_2,a_2,e,t_2,attrs_2) &#10233; &#8707; <span class="math">id</span>. wasInformedBy(id,a_2,a_1,[])</span></div>
-<div class="inference" id="entity-generation-invalidation-inference"><span class="math">&#8704; <span class="math">gen</span>,<span class="math">e</span>,<span class="math">a_1</span>,<span class="math">t_1</span>,<span class="math">attrs_1</span>,<span class="math">id_2</span>,<span class="math">a_2</span>,<span class="math">t_2</span>,<span class="math">attrs_2</span>. wasGeneratedBy(gen,e,a_1,t_1,attrs_1) &#8743; used(id_2,a_2,e,t_2,attrs_2) &#10233; &#8707; <span class="math">id</span>. wasInformedBy(id,a_2,a_1,[])</span></div>
-<div class="inference" id="activity-start-end-inference"><span class="math">&#8704; <span class="math">a</span>,<span class="math">t_1</span>,<span class="math">t_2</span>,<span class="math">attrs</span>. activity(a,t_1,t_2,attrs) &#10233; &#8707; <span class="math">start</span>,<span class="math">e_1</span>,<span class="math">a_1</span>,<span class="math">end</span>,<span class="math">a_2</span>,<span class="math">e_2</span>. wasStartedBy(start,a,e_1,a_1,t_1,[]) &#8743; wasEndedBy(end,a,e_2,a_2,t_2,[])</span></div>
-<div class="inference" id="wasStartedBy-inference"><span class="math">&#8704; <span class="math">id</span>,<span class="math">a</span>,<span class="math">e_1</span>,<span class="math">a_1</span>,<span class="math">t</span>,<span class="math">attrs</span>. wasStartedBy(id,a,e_1,a_1,t,attrs) &#10233; &#8707; <span class="math">gen</span>,<span class="math">t_1</span>. wasGeneratedBy(gen,e_1,a_1,t_1,[])</span></div>
-<div class="inference" id="wasEndedBy-inference"><span class="math">&#8704; <span class="math">id</span>,<span class="math">a</span>,<span class="math">e_1</span>,<span class="math">a_1</span>,<span class="math">t</span>,<span class="math">attrs</span>. wasEndedBy(id,a,e_1,a_1,t,attrs) &#10233; &#8707; <span class="math">gen</span>,<span class="math">t_1</span>. wasGeneratedBy(gen,e_1,a_1,t_1,[])</span></div>
-<div class="inference" id="derivation-generation-use-inference">In this inference, none of <math>a</math>, <math>gen_2</math> or <math>use_1</math> can be placeholders -<span class="math">&#8704; <span class="math">id</span>,<span class="math">e_2</span>,<span class="math">e_1</span>,<span class="math">a</span>,<span class="math">gen_2</span>,<span class="math">use_1</span>,<span class="math">attrs</span>. wasDerivedFrom(id,e_2,e_1,a,gen_2,use_1,attrs) &#10233; &#8707; <span class="math">s</span>,<span class="math">t_1</span>,<span class="math">t_2</span>. used(use_1,a,e_1,t_1,[]) &#8743; wasGeneratedBy(gen_2,e_2,a,t_2,[])</span></div>
-<div class="inference" id="revision-is-alternate-inference">In this inference, any of <math>a</math>, <math>g</math> or <math>u</math> may be placeholders.<span class="math">&#8704; <span class="math">id</span>,<span class="math">e_1</span>,<span class="math">e_2</span>,<span class="math">a</span>,<span class="math">g</span>,<span class="math">u</span>. wasDerivedFrom(id,e_2,e_1,a,g,u,.(=(prov:type,prov:Revision),[])) &#10233; alternateOf(e_2,e_1)</span></div>
-<div class="inference" id="attribution-inference"><span class="math">&#8704; <span class="math">att</span>,<span class="math">e</span>,<span class="math">ag</span>,<span class="math">attrs</span>. wasAttributedTo(att,e,ag,attrs) &#10233; &#8707; <span class="math">a</span>,<span class="math">t</span>,<span class="math">gen</span>,<span class="math">assoc</span>,<span class="math">pl</span>. wasGeneratedBy(gen,e,a,t,[]) &#8743; wasAssociatedWith(assoc,a,ag,pl,[])</span></div>
-<div class="inference" id="delegation-inference"><span class="math">&#8704; <span class="math">id</span>,<span class="math">ag_1</span>,<span class="math">ag_2</span>,<span class="math">a</span>,<span class="math">attrs</span>. actedOnBehalfOf(id,ag_1,ag_2,a,attrs) &#10233; &#8707; <span class="math">id_1</span>,<span class="math">pl_1</span>,<span class="math">id_2</span>,<span class="math">pl_2</span>. wasAssociatedWith(id_1,a,ag_1,pl_1,[]) &#8743; wasAssociatedWith(id_2,a,ag_2,pl_2,[])</span></div>
-<div class="inference" id="influence-inference"><ol><li><span class="math">&#8704; <span class="math">id</span>,<span class="math">e</span>,<span class="math">a</span>,<span class="math">t</span>,<span class="math">attrs</span>. wasGeneratedBy(id,e,a,t,attrs) &#10233; wasInfluencedBy(id,e,a,attrs)</span></li><li><span class="math">&#8704; <span class="math">id</span>,<span class="math">a</span>,<span class="math">e</span>,<span class="math">t</span>,<span class="math">attrs</span>. used(id,a,e,t,attrs) &#10233; wasInfluencedBy(id,a,e,attrs)</span></li><li><span class="math">&#8704; <span class="math">id</span>,<span class="math">a_2</span>,<span class="math">a_1</span>,<span class="math">attrs</span>. wasInformedBy(id,a_2,a_1,attrs) &#10233; wasInfluencedBy(id,a_2,a_1,attrs)</span></li><li><span class="math">&#8704; <span class="math">id</span>,<span class="math">a_2</span>,<span class="math">e</span>,<span class="math">a_1</span>,<span class="math">t</span>,<span class="math">attrs</span>. wasStartedBy(id,a_2,e,a_1,t,attrs) &#10233; wasInfluencedBy(id,a_2,e,attrs)</span></li><li><span class="math">&#8704; <span class="math">id</span>,<span class="math">a_2</span>,<span class="math">e</span>,<span class="math">a_1</span>,<span class="math">t</span>,<span class="math">attrs</span>. wasEndedBy(id,a_2,e,a_1,t,attrs) &#10233; wasInfluencedBy(id,a_2,e,attrs)</span></li><li><span class="math">&#8704; <span class="math">id</span>,<span class="math">e</span>,<span class="math">a</span>,<span class="math">t</span>,<span class="math">attrs</span>. wasInvalidatedBy(id,e,a,t,attrs) &#10233; wasInfluencedBy(id,e,a,attrs)</span></li><li><span class="math">&#8704; <span class="math">id</span>,<span class="math">e_2</span>,<span class="math">e_1</span>,<span class="math">a</span>,<span class="math">g</span>,<span class="math">u</span>,<span class="math">attrs</span>. wasDerivedFrom(id,e_2,e_1,a,g,u,attrs) &#10233; wasInfluencedBy(id,e_2,e_1,attrs)</span></li><li>In this rule, <math>a</math>, <math>g</math>, <math>u</math> may be placeholders -.<span class="math">&#8704; <span class="math">id</span>,<span class="math">e</span>,<span class="math">ag</span>,<span class="math">attrs</span>. wasAttributedTo(id,e,ag,attrs) &#10233; wasInfluencedBy(id,e,ag,attrs)</span></li><li>In this rule, <math>pl</math> may be a placeholder -<span class="math">&#8704; <span class="math">id</span>,<span class="math">a</span>,<span class="math">ag</span>,<span class="math">pl</span>,<span class="math">attrs</span>. wasAssociatedWith(id,a,ag,pl,attrs) &#10233; wasInfluencedBy(id,a,ag,attrs)</span></li><li><span class="math">&#8704; <span class="math">id</span>,<span class="math">ag_2</span>,<span class="math">ag_1</span>,<span class="math">a</span>,<span class="math">attrs</span>. actedOnBehalfOf(id,ag_2,ag_1,a,attrs) &#10233; wasInfluencedBy(id,ag_2,ag_1,attrs)</span></li></ol></div>
-<div class="inference" id="alternate-reflexive"><span class="math">&#8704; <span class="math">e</span>. entity(e) &#10233; alternateOf(e,e)</span></div>
-<div class="inference" id="alternate-transitive"><span class="math">&#8704; <span class="math">e_1</span>,<span class="math">e_2</span>,<span class="math">e_3</span>. alternateOf(e_1,e_2) &#8743; alternateOf(e_2,e_3) &#10233; alternateOf(e_1,e_3)</span></div>
-<div class="inference" id="alternate-symmetric"><span class="math">&#8704; <span class="math">e_1</span>,<span class="math">e_2</span>. alternateOf(e_1,e_2) &#10233; alternateOf(e_2,e_1)</span></div>
-<div class="inference" id="specialization-transitive"><span class="math">&#8704; <span class="math">e_1</span>,<span class="math">e_2</span>,<span class="math">e_3</span>. specializationOf(e_1,e_2) &#8743; specializationOf(e_2,e_3) &#10233; specializationOf(e_1,e_3)</span></div>
-<div class="inference" id="specialization-alternate-inference"><span class="math">&#8704; <span class="math">e_1</span>,<span class="math">e_2</span>. specializationOf(e_1,e_2) &#10233; alternateOf(e_1,e_2)</span></div>
-<div class="inference" id="specialization-attributes-inference"><span class="math">&#8704; <span class="math">e_1</span>,<span class="math">attrs</span>,<span class="math">e_2</span>. entity(e_1,attrs) &#8743; specializationOf(e_2,e_1) &#10233; entity(e_2,attrs)</span></div>
 
+<div class="inference" id="communication-generation-use-inference"><span class="math">∀ id,a<sub>2</sub>,a<sub>1</sub>,attrs. wasInformedBy(id,a<sub>2</sub>,a<sub>1</sub>,attrs) ⟹ ∃ e,gen,t<sub>1</sub>,use,t<sub>2</sub>. wasGeneratedBy(gen,e,a<sub>1</sub>,t<sub>1</sub>,[]) ∧ used(use,a<sub>2</sub>,e,t<sub>2</sub>,[])</span></div>
+<div class="inference" id="generation-use-communication-inference"><span class="math">∀ gen,a<sub>1</sub>,t<sub>1</sub>,attrs<sub>1</sub>,id<sub>2</sub>,a<sub>2</sub>,t<sub>2</sub>,attrs<sub>2</sub>. wasGeneratedBy(gen,e,a<sub>1</sub>,t<sub>1</sub>,attrs<sub>1</sub>) ∧ used(id<sub>2</sub>,a<sub>2</sub>,e,t<sub>2</sub>,attrs<sub>2</sub>) ⟹ ∃ id. wasInformedBy(id,a<sub>2</sub>,a<sub>1</sub>,[])</span></div>
+<div class="inference" id="entity-generation-invalidation-inference"><span class="math">∀ gen,e,a<sub>1</sub>,t<sub>1</sub>,attrs<sub>1</sub>,id<sub>2</sub>,a<sub>2</sub>,t<sub>2</sub>,attrs<sub>2</sub>. wasGeneratedBy(gen,e,a<sub>1</sub>,t<sub>1</sub>,attrs<sub>1</sub>) ∧ used(id<sub>2</sub>,a<sub>2</sub>,e,t<sub>2</sub>,attrs<sub>2</sub>) ⟹ ∃ id. wasInformedBy(id,a<sub>2</sub>,a<sub>1</sub>,[])</span></div>
+<div class="inference" id="activity-start-end-inference"><span class="math">∀ a,t<sub>1</sub>,t<sub>2</sub>,attrs. activity(a,t<sub>1</sub>,t<sub>2</sub>,attrs) ⟹ ∃ start,e<sub>1</sub>,a<sub>1</sub>,end,a<sub>2</sub>,e<sub>2</sub>. wasStartedBy(start,a,e<sub>1</sub>,a<sub>1</sub>,t<sub>1</sub>,[]) ∧ wasEndedBy(end,a,e<sub>2</sub>,a<sub>2</sub>,t<sub>2</sub>,[])</span></div>
+<div class="inference" id="wasStartedBy-inference"><span class="math">∀ id,a,e<sub>1</sub>,a<sub>1</sub>,t,attrs. wasStartedBy(id,a,e<sub>1</sub>,a<sub>1</sub>,t,attrs) ⟹ ∃ gen,t<sub>1</sub>. wasGeneratedBy(gen,e<sub>1</sub>,a<sub>1</sub>,t<sub>1</sub>,[])</span></div>
+<div class="inference" id="wasEndedBy-inference"><span class="math">∀ id,a,e<sub>1</sub>,a<sub>1</sub>,t,attrs. wasEndedBy(id,a,e<sub>1</sub>,a<sub>1</sub>,t,attrs) ⟹ ∃ gen,t<sub>1</sub>. wasGeneratedBy(gen,e<sub>1</sub>,a<sub>1</sub>,t<sub>1</sub>,[])</span></div>
+<div class="inference" id="derivation-generation-use-inference">In this inference, none of <em>a</em>, <em>gen<sub>2</sub></em> or <em>use_1</em> can be placeholders -.<span class="math">∀ id,e<sub>2</sub>,e<sub>1</sub>,a,gen<sub>2</sub>,use<sub>1</sub>,attrs. wasDerivedFrom(id,e<sub>2</sub>,e<sub>1</sub>,a,gen<sub>2</sub>,use<sub>1</sub>,attrs) ⟹ ∃ s,t<sub>1</sub>,t<sub>2</sub>. used(use<sub>1</sub>,a,e<sub>1</sub>,t<sub>1</sub>,[]) ∧ wasGeneratedBy(gen<sub>2</sub>,e<sub>2</sub>,a,t<sub>2</sub>,[])</span></div>
+<div class="inference" id="revision-is-alternate-inference">In this inference, any of <em>a</em>, <em>g</em> or <em>u</em> may be placeholders.<span class="math">∀ id,e<sub>1</sub>,e<sub>2</sub>,a,g,u. wasDerivedFrom(id,e<sub>2</sub>,e<sub>1</sub>,a,g,u,.(prov:type = prov:Revision,[])) ⟹ alternateOf(e<sub>2</sub>,e<sub>1</sub>)</span></div>
+<div class="inference" id="attribution-inference"><span class="math">∀ att,e,ag,attrs. wasAttributedTo(att,e,ag,attrs) ⟹ ∃ a,t,gen,assoc,pl. wasGeneratedBy(gen,e,a,t,[]) ∧ wasAssociatedWith(assoc,a,ag,pl,[])</span></div>
+<div class="inference" id="delegation-inference"><span class="math">∀ id,ag<sub>1</sub>,ag<sub>2</sub>,a,attrs. actedOnBehalfOf(id,ag<sub>1</sub>,ag<sub>2</sub>,a,attrs) ⟹ ∃ id<sub>1</sub>,pl<sub>1</sub>,id<sub>2</sub>,pl<sub>2</sub>. wasAssociatedWith(id<sub>1</sub>,a,ag<sub>1</sub>,pl<sub>1</sub>,[]) ∧ wasAssociatedWith(id<sub>2</sub>,a,ag<sub>2</sub>,pl<sub>2</sub>,[])</span></div>
+<div class="inference" id="influence-inference"><ol><li><span class="math">∀ id,e,a,t,attrs. wasGeneratedBy(id,e,a,t,attrs) ⟹ wasInfluencedBy(id,e,a,attrs)</span></li><li><span class="math">∀ id,a,e,t,attrs. used(id,a,e,t,attrs) ⟹ wasInfluencedBy(id,a,e,attrs)</span></li><li><span class="math">∀ id,a<sub>2</sub>,a<sub>1</sub>,attrs. wasInformedBy(id,a<sub>2</sub>,a<sub>1</sub>,attrs) ⟹ wasInfluencedBy(id,a<sub>2</sub>,a<sub>1</sub>,attrs)</span></li><li><span class="math">∀ id,a<sub>2</sub>,e,a<sub>1</sub>,t,attrs. wasStartedBy(id,a<sub>2</sub>,e,a<sub>1</sub>,t,attrs) ⟹ wasInfluencedBy(id,a<sub>2</sub>,e,attrs)</span></li><li><span class="math">∀ id,a<sub>2</sub>,e,a<sub>1</sub>,t,attrs. wasEndedBy(id,a<sub>2</sub>,e,a<sub>1</sub>,t,attrs) ⟹ wasInfluencedBy(id,a<sub>2</sub>,e,attrs)</span></li><li><span class="math">∀ id,e,a,t,attrs. wasInvalidatedBy(id,e,a,t,attrs) ⟹ wasInfluencedBy(id,e,a,attrs)</span></li><li><span class="math">∀ id,e<sub>2</sub>,e<sub>1</sub>,a,g,u,attrs. wasDerivedFrom(id,e<sub>2</sub>,e<sub>1</sub>,a,g,u,attrs) ⟹ wasInfluencedBy(id,e<sub>2</sub>,e<sub>1</sub>,attrs)</span></li><li>In this rule, <em>a</em>, <em>g</em>, <em>u</em> may be placeholders -.<span class="math">∀ id,e,ag,attrs. wasAttributedTo(id,e,ag,attrs) ⟹ wasInfluencedBy(id,e,ag,attrs)</span></li><li>In this rule, <em>pl</em> may be a placeholder -.<span class="math">∀ id,a,ag,pl,attrs. wasAssociatedWith(id,a,ag,pl,attrs) ⟹ wasInfluencedBy(id,a,ag,attrs)</span></li><li><span class="math">∀ id,ag<sub>2</sub>,ag<sub>1</sub>,a,attrs. actedOnBehalfOf(id,ag<sub>2</sub>,ag<sub>1</sub>,a,attrs) ⟹ wasInfluencedBy(id,ag<sub>2</sub>,ag<sub>1</sub>,attrs)</span></li></ol></div>
+<div class="inference" id="alternate-reflexive"><span class="math">∀ e. entity(e) ⟹ alternateOf(e,e)</span></div>
+<div class="inference" id="alternate-transitive"><span class="math">∀ e<sub>1</sub>,e<sub>2</sub>,e<sub>3</sub>. alternateOf(e<sub>1</sub>,e<sub>2</sub>) ∧ alternateOf(e<sub>2</sub>,e<sub>3</sub>) ⟹ alternateOf(e<sub>1</sub>,e<sub>3</sub>)</span></div>
+<div class="inference" id="alternate-symmetric"><span class="math">∀ e<sub>1</sub>,e<sub>2</sub>. alternateOf(e<sub>1</sub>,e<sub>2</sub>) ⟹ alternateOf(e<sub>2</sub>,e<sub>1</sub>)</span></div>
+<div class="inference" id="specialization-transitive"><span class="math">∀ e<sub>1</sub>,e<sub>2</sub>,e<sub>3</sub>. specializationOf(e<sub>1</sub>,e<sub>2</sub>) ∧ specializationOf(e<sub>2</sub>,e<sub>3</sub>) ⟹ specializationOf(e<sub>1</sub>,e<sub>3</sub>)</span></div>
+<div class="inference" id="specialization-alternate-inference"><span class="math">∀ e<sub>1</sub>,e<sub>2</sub>. specializationOf(e<sub>1</sub>,e<sub>2</sub>) ⟹ alternateOf(e<sub>1</sub>,e<sub>2</sub>)</span></div>
+<div class="inference" id="specialization-attributes-inference"><span class="math">∀ e<sub>1</sub>,attrs,e<sub>2</sub>. entity(e<sub>1</sub>,attrs) ∧ specializationOf(e<sub>2</sub>,e<sub>1</sub>) ⟹ entity(e<sub>2</sub>,attrs)</span></div>
+<div class="constraint" id="membership-empty-collection"><span class="math">∀ c,e. hasMember(c,e) ∧ prov:EmptyCollection \in typeOf(c) ⟹ False</span></div>
 
 </section>
 
@@ -1096,69 +788,4 @@
 </p>
     </section> 
 
- </body></html>
-
-<!--  LocalWords:  px DM RL RDF AQ SEM SOTD Definitional wasInformedBy attrs ag
- -->
-<!--  LocalWords:  wasGeneratedBy wasStartedBy gAttr sAttr wasAttributedTo attr
- -->
-<!--  LocalWords:  wasAssociatedWith dAttrs gAttrs wasDerivedFrom uAttrs eAttrs
- -->
-<!--  LocalWords:  wasRevisionOf specializationOf wasQuotedFrom Traceability WD
- -->
-<!--  LocalWords:  tracedTo aAttr actedOnBehalfOf rAttr traceability TODO xsd
- -->
-<!--  LocalWords:  alternateOf wasEndedBy Lamport's timeline subfigure memberOf
- -->
-<!--  LocalWords:  wasStartedByAgent wasAttributedWith derivedByInsertionFrom
- -->
-<!--  LocalWords:  QName derivedByRemovalFrom EmptyCollection wasVersionOf dm
- -->
-<!--  LocalWords:  RecsWD formedness workflow ness operability CSP versa hyp YY
- -->
-<!--  LocalWords:  disambiguating lifecycle conformant minimalistic Lamport fo
- -->
-<!--  LocalWords:  reflexivity antisymmetry timelines timespan WG concl inv TBD
- -->
-<!--  LocalWords:  continuant occurrent modalities toyota womanInRedDress provn
- -->
-<!--  LocalWords:  customerInChairAt manWithGlasses customerInChair irreflexive
- -->
-<!--  LocalWords:  wasStartedByActivity antisymmetric wasInvalidatedBy stmt CHR
- -->
-<!--  LocalWords:  DBCONSTRAINTS formalisms URIs wasInfluencedBy definitional
- -->
-<!--  LocalWords:  wasInvalidated th  nontermination  implementability att evt
- -->
-<!--  LocalWords:  Irreflexivity mentionOf preorder equalities unsatisfiable De
- -->
-<!--  LocalWords:  Lebo subfigures pre del irreflexivity superproperty typeOf
- -->
-<!--  LocalWords:  disjointness inferrable subtyping subtype subtypes hadMember
- -->
-<!--  LocalWords:  hasMember toplevel sameAs tuple acyclicity isomorphism IRI
- -->
-<!--  LocalWords:  endBundle typeof equational acyclic invertible procedurally
- -->
-<!--  LocalWords:  implementers multi unifier ERCIM Groth Stian Soiland Ilkay
- -->
-<!--  LocalWords:  Altintas Reza B'Far Belhajjame Informatics Coppens IBBT Nies
- -->
-<!--  LocalWords:  Corsar Cresswell Deus DERI Galway satisfiable namespace Kai
- -->
-<!--  LocalWords:  endDocument Dobson Doerr Hellas Eckert EVAIN EBU UER Frew de
- -->
-<!--  LocalWords:  Irini Fundulaki Garijo Universidad Politécnica Vrije Hartig
- -->
-<!--  LocalWords:  Universiteit Hau NCI Sandro Hawke Jörn Hees DFKI Gmbh Hua da
- -->
-<!--  LocalWords:  Hodgson TopQuadrant Trung Huynh Klyne Revelytix Rensselaer
- -->
-<!--  LocalWords:  McCusker McGuinness Paolo Missier Luc Moreau Vinh Edoardo
- -->
-<!--  LocalWords:  Pignotti Paulo Pinheiro Geospatial Retter Runnegar Satya
- -->
-<!--  LocalWords:  Sahoo Schaengold Schutzer FSTC Yogesh Simmhan Theodoridou
- -->
-<!--  LocalWords:  Thibodeau OpenLink Tilmes Zednik Zhao Yuting
- -->
+ </body></html>
\ No newline at end of file