staging prov-constraints
authorLuc Moreau <l.moreau@ecs.soton.ac.uk>
Thu, 06 Sep 2012 10:34:15 +0100
changeset 4409 b510ca44e0bc
parent 4408 0fd58d8d8bd5
child 4410 e7a6b5f5169a
staging prov-constraints
model/diff-c.html
model/diff/Makefile
--- a/model/diff-c.html	Thu Sep 06 10:29:40 2012 +0100
+++ b/model/diff-c.html	Thu Sep 06 10:34:15 2012 +0100
@@ -1,4 +1,3 @@
-
 <!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>
 <html lang="en" dir="ltr">
 <head><style type="text/css"><!--
@@ -19,6 +18,12 @@
 
      
      
+
+     
+  
+
+     
+     
     
 
     
@@ -489,84 +494,531 @@
 pre.sh_sourceCode .sh_paren { color: red; }
 pre.sh_sourceCode .sh_attribute { color: #006400; }
 
-</style><link href="./extra.css" rel="stylesheet" type="text/css" charset="utf-8"><link href="http://www.w3.org/StyleSheets/TR/W3C-ED" rel="stylesheet" type="text/css" charset="utf-8"></head> 
-  <body style="display: inherit; "><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">Constraints of the Provenance Data Model</h1><h2 id="subtitle"><span class="delete">Version for</span><a href="diff-c.html"><span class="insert">Changes</span></a><span class="insert"> since</span> internal <span class="delete">review</span><span class="insert">release (pre-LC)</span></h2><h2 id="w3c-editor-s-draft-08-august-2012"><acronym title="World Wide Web Consortium">W3C</acronym> Editor's Draft <span class="delete">23 July</span><span class="insert">08 August</span> 2012</h2><dl><dt>This version:</dt><dd><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html">http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html</a></dd><dt>Latest published version:</dt><dd><a href="http://www.w3.org/TR/prov-constraints/">http://www.w3.org/TR/prov-constraints/</a></dd><dt>Latest editor's draft:</dt><dd><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html">http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html</a></dd><dt>Previous version:</dt><dd><a href="http://www.w3.org/TR/2012/WD-prov-constraints-20120503/">http://www.w3.org/TR/2012/WD-prov-constraints-20120503/</a></dd><dt>Editors:</dt><dd><a href="http://homepages.inf.ed.ac.uk/jcheney">James Cheney</a>, University of Edinburgh</dd>
+</style><span class="delete">
+/* --- 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[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[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[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: 80%;
+}
+.nonterminal {
+    font-weight: bold;
+    font-family: sans-serif;
+    font-size: 95%;
+}
+
+.name {
+    font-family: monospace;
+}
+
+
+.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: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;
+}
+</span><link href="./extra.css" rel="stylesheet" type="text/css" charset="utf-8"><link href="http://www.w3.org/StyleSheets/TR/W3C-WD" rel="stylesheet" type="text/css" charset="utf-8"></head> 
+  <body style="display: inherit; "><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">Constraints of the Provenance Data Model</h1><h2 id="w3c-working-draft-11-september-2012"><acronym title="World Wide Web Consortium">W3C</acronym> Working Draft <span class="delete">03 May</span><span class="insert">11 September</span> 2012</h2><dl><dt>This version:</dt><dd><span class="delete">http://www.w3.org/TR/2012/WD-prov-constraints-20120503/</span><a href="http://www.w3.org/TR/2012/WD-prov-constraints-20120911/"><span class="insert">http://www.w3.org/TR/2012/WD-prov-constraints-20120911/</span></a></dd><dt>Latest published version:</dt><dd><a href="http://www.w3.org/TR/prov-constraints/">http://www.w3.org/TR/prov-constraints/</a></dd><dt>Latest editor's draft:</dt><dd><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html">http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html</a></dd><dt><span class="insert">Previous version:</span></dt><dd><a href="http://www.w3.org/TR/2012/WD-prov-constraints-20120503/"><span class="insert">http://www.w3.org/TR/2012/WD-prov-constraints-20120503/</span></a></dd><dt>Editors:</dt><dd><a href="http://homepages.inf.ed.ac.uk/jcheney">James Cheney</a>, University of Edinburgh</dd>
 <dd><a href="http://www.cs.ncl.ac.uk/people/Paolo.Missier">Paolo Missier</a>, Newcastle University</dd>
 <dd><a href="http://www.ecs.soton.ac.uk/~lavm/">Luc Moreau</a>, University of Southampton</dd>
-<dt>Author:</dt><dd><a href="http://users.ugent.be/~tdenies/">Tom De Nies</a>, IBBT - Ghent University</dd>
+<dt><span class="insert">Author:</span></dt><dd><a href="http://users.ugent.be/~tdenies/"><span class="insert">Tom De Nies</span></a><span class="insert">, IBBT - Ghent University</span></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="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.<span class="delete"> PROV-DM distinguishes core structures, forming the essence of provenance information, from extended structures catering for more specific uses of provenance. PROV-DM is organized in six components, respectively dealing with: (1) entities and activities, and the time at which they were created, used, or ended; (2) derivations of entities from entities; (3) agents bearing responsibility for entities that were generated and activities that happened; (4) a notion of bundle, a mechanism to support provenance of provenance; (5) properties to link entities that refer to the same thing; and, (6) collections forming a logical structure for its members.
-</span>
-
-</p>
-
-
-<p> This document <span class="delete">introduces</span><span class="insert">defines a subset of PROV instances called
-</span><i><a href="#dfn-valid" class="internalDFN"><span class="insert">valid</span></a></i><span class="insert"> PROV instances.  A </span><a href="#dfn-valid" class="internalDFN"><span class="insert">valid</span></a><span class="insert"> PROV instance corresponds to a
-consistent history of objects and interactions to which logical
-reasoning can be safely applied.
-Valid PROV instances satisfy
-certain </span><a><span class="insert">definitions</span></a><span class="insert">,</span> <a>inferences</a><span class="delete"> and </span><span class="delete">definitions</span><span class="delete">
-  that are allowed on provenance statements and </span><span class="insert">, and
-</span><a>constraints</a><span class="delete">
-  that PROV instances </span><span class="delete">must</span><span class="delete"> satisfy in order to be considered
-  </span><span class="delete">valid</span>. These <span class="delete">inferences</span><span class="insert">definitions, inferences,</span> and constraints<span class="delete"> are useful</span><span class="insert">
-provide a measure of consistency checking</span> for<span class="delete">
-  readers who develop applications that generate</span> provenance <span class="delete">or reason
-  </span><span class="insert">and reasoning
-</span>over provenance.  They can also be used to <a title="normal
-form" href="#dfn-normal-form" class="internalDFN">normalize</a> PROV
-   instances to forms that can easily be 
-compared in order to determine
-   whether two PROV instances are 
-<a href="#dfn-equivalent" class="internalDFN">equivalent</a>.</p>
+<span class="delete">PROV-DM, the PROV</span><span class="insert">Provenance is information about entities, activities, and people
+involved in producing a piece of</span> data <span class="delete">model,</span><span class="insert">or thing, which can be used to
+form assessments about its quality, reliability or
+trustworthiness. PROV-DM</span> is <span class="insert">the conceptual data model that forms </span>a<span class="delete"> data model</span><span class="insert">
+basis</span> for <span class="insert">the </span><acronym title="World Wide Web Consortium"><span class="insert">W3C</span></acronym> provenance <span class="delete">that describes
+the entities, people and activities involved in
+producing a piece</span><span class="insert">(PROV) family</span> of <span class="delete">data or thing. 
+PROV-DM is structured in six components, dealing with: 
+(1) entities and activities, and the time at which they were created, used, or ended;
+(2) agents bearing responsibility for entities that were generated and activities that happened;
+(3) derivations of entities from entities;
+(4) properties to link entities that refer to a same thing;
+(5) collections forming a logical structure for its members;
+(6) a simple annotation mechanism.
+</span><span class="insert">specifications.
+
+</span></p>
+
+
+<p> This document <span class="delete">introduces</span><span class="insert">defines</span> a <span class="delete">further set</span><span class="insert">subset</span> of <span class="delete">concepts useful</span><span class="insert">PROV instances called
+</span><i><a href="#dfn-valid" class="internalDFN"><span class="insert">valid</span></a></i><span class="insert"> PROV instances.  
+The intent of validation is ensure that a PROV instance represents a history of objects and their interactions which is consistent, and thus safe to use</span> for<span class="delete">
+  understanding the</span><span class="insert"> the purpose of logical reasoning and other kinds of analysis.
+Valid</span> PROV <span class="delete">data model and defines </span><span class="insert">instances satisfy
+certain </span><a><span class="insert">definitions</span></a><span class="insert">, </span><a>inferences
+  </a><span class="insert">, and
+</span><a><span class="insert">constraints</span></a><span class="insert">. These definitions, inferences, and constraints
+provide a measure of consistency checking for provenance and reasoning
+over provenance.  They can also be used to </span><a title="normal
+form" href="#dfn-normal-form" class="internalDFN"><span class="insert">normalize</span></a><span class="insert"> PROV instances to forms </span>that <span class="insert">can easily be
+compared in order to determine whether two PROV instances </span>are<span class="delete"> allowed on provenance statements and </span><span class="delete">validity
+  constraints</span><span class="delete"> that</span>
+<a href="#dfn-equivalent" class="internalDFN"><span class="insert">equivalent</span></a><span class="insert">.  Validity and equivalence are also defined for</span> PROV<span class="delete"> instances should
+  follow. These inferences and constraints are useful for readers who
+  develop applications that generate provenance</span><span class="insert">
+bundles (that is, named instances) and documents (that is, a toplevel
+instance together with zero</span> or <span class="delete">reason over
+  provenance.
+</span><span class="insert">more bundles).</span></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="last-call">Last Call</h4>
-<p>This is the second public release of the PROV-CONSTRAINTS document. 
-This is a Last Call Working Draft. The design is not expected to change significantly, going forward, and now is the key time for external review.</p>
-
-<p>This specification identifies  <a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi">features at
-risk</a> related to the at-risk Mention feature of [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-DM">PROV-DM</a></cite>]:
-<a class="rule-text" href="#mention-specialization-inference_text"><span>Inference 24 <span class="delete">(mention-specialization)</span><span class="delete"> and
-</span><span class="insert">(mention-specialization-inference)</span></span></a><span class="insert"> and
-</span><a class="rule-text" href="#unique-mention_text"><span>Constraint 33 <span class="delete">(mention-unique)</span><span class="insert">(unique-mention)</span></span></a>.
-These might be removed from PROV-CONSTRAINTS.</p>
+<h4 id="last-call"><span class="insert">Last Call</span></h4>
+<p><span class="insert">This is the second public release of the PROV-CONSTRAINTS document. 
+This is a Last Call Working Draft. The design is not expected to change significantly, going forward, and now is the key time for external review.</span></p>
+
+<p><span class="insert">This specification identifies  </span><a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi"><span class="insert">features at
+risk</span></a><span class="insert"> related to the at-risk Mention feature of [</span><cite><a class="bibref" rel="biblioentry" href="#bib-PROV-DM"><span class="insert">PROV-DM</span></a></cite><span class="insert">]:
+</span><a class="rule-text" href="#mention-specialization-inference_text"><span><span class="insert">Inference 22 (mention-specialization-inference)</span></span></a><span class="insert"> and
+</span><a class="rule-text" href="#unique-mention_text"><span><span class="insert">Constraint 31 (unique-mention)</span></span></a><span class="insert">.
+These might be removed from PROV-CONSTRAINTS.</span></p>
 
 <h4 id="prov-family-of-specifications">PROV Family of Specifications</h4>
 This document is part of the PROV family of specifications, a set of specifications defining various aspects that are necessary to achieve the vision of inter-operable
 interchange of provenance information in heterogeneous environments such as the Web.  The specifications are:
 <ul>
-<li> <a href="http://www.w3.org/TR/prov-dm/">PROV-DM</a>, the PROV data model for provenance;</li>
-<li> <a href="http://www.w3.org/TR/prov-constraints/">PROV-CONSTRAINTS</a>, a set of constraints applying to the PROV data model  (this document);</li>
-<li> <a href="http://www.w3.org/TR/prov-n/">PROV-N</a>, a notation for provenance aimed at human consumption;</li>
-<li> <a href="http://www.w3.org/TR/prov-o/">PROV-O</a>, the PROV ontology, an OWL2 ontology allowing the mapping of PROV to RDF;</li>
-<li> <a href="http://www.w3.org/TR/prov-aq/">PROV-AQ</a>, the mechanisms for accessing and querying provenance; </li>
-<li> <a href="http://www.w3.org/TR/prov-primer/">PROV-PRIMER</a>, a primer for the PROV data model.</li>
+<li> <span class="delete">PROV-DM,</span><a href="http://www.w3.org/TR/prov-dm/"><span class="insert">PROV-DM</span></a><span class="insert">,</span> the PROV data model for provenance;</li>
+<li> <span class="delete">PROV-CONSTRAINTS,</span><a href="http://www.w3.org/TR/prov-constraints/"><span class="insert">PROV-CONSTRAINTS</span></a><span class="insert">,</span> a set of constraints applying to the PROV data model  (this document);</li>
+<li> <span class="delete">PROV-N,</span><a href="http://www.w3.org/TR/prov-n/"><span class="insert">PROV-N</span></a><span class="insert">,</span> a notation for provenance aimed at human consumption;</li>
+<li> <span class="delete">PROV-O,</span><a href="http://www.w3.org/TR/prov-o/"><span class="insert">PROV-O</span></a><span class="insert">,</span> the PROV ontology, an <span class="delete">OWL-RL</span><span class="insert">OWL2</span> ontology allowing the mapping of PROV to RDF;</li>
+<li> <span class="delete">PROV-AQ,</span><a href="http://www.w3.org/TR/prov-aq/"><span class="insert">PROV-AQ</span></a><span class="insert">,</span> the mechanisms for accessing and querying provenance; </li>
+<li> <span class="delete">PROV-PRIMER,</span><a href="http://www.w3.org/TR/prov-primer/"><span class="insert">PROV-PRIMER</span></a><span class="insert">,</span> a primer<span class="delete"> for the PROV data model;</span>
+<span class="delete"> PROV-SEM, a formal semantics for the PROV data model;</span>
+<span class="delete"> PROV-XML, an XML schema</span> for the PROV data model.</li>
 </ul>
 <h4 id="how-to-read-the-prov-family-of-specifications">How to read the PROV Family of Specifications</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 
+defining PROV classes and properties specified in an <span class="delete">OWL-RL </span><span class="insert">OWL2
+</span>ontology. For further details, PROV-DM and PROV-CONSTRAINTS specify 
 the constraints applicable to the data model, and its interpretation.<span class="delete"> PROV-SEM provides a mathematical semantics.</span>
+<span class="delete">The XML community should focus on PROV-XML defining an XML schema for PROV-DM. Further details can also be found in PROV-DM, PROV-CONSTRAINTS, and PROV-SEM.</span>
 
 </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>
+should focus on PROV-DM and PROV-CONSTRAINTS.  <span class="delete">PROV-O, PROV-N, PROV-XML</span><span class="insert">PROV-O and PROV-N</span> offer examples of mapping to <span class="delete">RDF,</span><span class="insert">RDF and</span> text,<span class="delete"> and XML,</span> 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="#rationale" class="tocxref"><span class="secno">2. </span>Rationale</a><ul class="toc"><li class="tocline"><a href="#entities--activities-and-agents" class="tocxref"><span class="secno">2.1 </span>Entities, Activities and Agents</a></li><li class="tocline"><a href="#events" class="tocxref"><span class="secno">2.2 </span>Events</a></li><li class="tocline"><a href="#validation-process-overview-1" class="tocxref"><span class="secno"><span class="insert">2.3 </span></span><span class="insert">Validation Process Overview</span></a></li><li class="tocline"><a href="#summary-of-constraints-and-inferences" class="tocxref"><span class="secno"><span class="delete">2.3</span><span class="insert">2.4</span> </span>Summary of constraints and inferences</a></li></ul></li><li class="tocline"><a href="#compliance" class="tocxref"><span class="secno">3. </span>Compliance with this document</a></li><li class="tocline"><a href="#inferences" class="tocxref"><span class="secno">4. </span><span class="insert">Definitions and </span>Inferences<span class="delete"> and Definitions</span></a><ul class="toc"><li class="tocline"><a href="#optional-identifiers-and-attributes" class="tocxref"><span class="secno">4.1 </span>Optional Identifiers and Attributes</a></li><li class="tocline"><a href="#entities-and-activities" class="tocxref"><span class="secno">4.2 </span>Entities and Activities</a></li><li class="tocline"><a href="#derivations" class="tocxref"><span class="secno">4.3 </span>Derivations</a></li><li class="tocline"><a href="#agents" class="tocxref"><span class="secno">4.4 </span>Agents</a></li><li class="tocline"><a href="#alternate-and-specialized-entities" class="tocxref"><span class="secno">4.5 </span>Alternate and Specialized Entities</a></li></ul></li><li class="tocline"><a href="#constraints" class="tocxref"><span class="secno">5. </span>Constraints</a><ul class="toc"><li class="tocline"><a href="#uniqueness-constraints" class="tocxref"><span class="secno">5.1 </span>Uniqueness Constraints</a></li><li class="tocline"><a href="#event-ordering-constraints" class="tocxref"><span class="secno">5.2 </span>Event Ordering Constraints</a><ul class="toc"><li class="tocline"><a href="#activity-constraints" class="tocxref"><span class="secno">5.2.1 </span>Activity constraints</a></li><li class="tocline"><a href="#entity-constraints" class="tocxref"><span class="secno">5.2.2 </span> Entity constraints</a></li><li class="tocline"><a href="#agent-constraints" class="tocxref"><span class="secno">5.2.3 </span> Agent constraints</a></li></ul></li><li class="tocline"><a href="#impossibility-constraints" class="tocxref"><span class="secno">5.3 </span>Impossibility constraints</a></li><li class="tocline"><a href="#type-constraints" class="tocxref"><span class="secno">5.4 </span>Type Constraints</a></li></ul></li><li class="tocline"><a href="#normalization-validity-equivalence" class="tocxref"><span class="secno">6. </span>Normalization, Validity, and Equivalence</a><span class="delete">6.1 </span><span class="delete">Bundles</span><span class="delete">A. </span><span class="delete">Acknowledgements</span><span class="delete">B. </span><span class="delete">Glossary</span><span class="delete">C. </span><span class="delete">Termination of normalization</span></li><li class="tocline"><a href="#references" class="tocxref"><span class="secno"><span class="delete">D.</span><span class="insert">A.</span> </span>References</a><ul class="toc"><li class="tocline"><a href="#normative-references" class="tocxref"><span class="secno"><span class="delete">D.1</span><span class="insert">A.1</span> </span>Normative references</a></li><li class="tocline"><a href="#informative-references" class="tocxref"><span class="secno"><span class="delete">D.2</span><span class="insert">A.2</span> </span>Informative references</a></li></ul></li></ul></div>
+<span class="delete">First Public Working Draft</span>
+ <p>This <span class="delete">is the first public release of the PROV-CONSTRAINTS
+document. Following feedback, the Working Group has decided to
+reorganize the PROV-DM document substantially, separating the data model,
+from its constraints, and the notation used to illustrate it. The
+PROV-CONSTRAINTS release is synchronized with the release of the PROV-DM, PROV-O,
+PROV-PRIMER, and PROV-N documents.
+</span>
+<span class="delete">This </span>document was published by the <a href="http://www.w3.org/2011/prov/">Provenance Working Group</a> as a <span class="delete">First Public</span><span class="insert">Last Call</span> Working Draft. This document is intended to become a <acronym title="World Wide Web Consortium">W3C</acronym> Recommendation. If you wish to make comments regarding this document, please send them to <span class="delete">public-prov-wg@w3.org</span><a href="mailto:public-prov-comments@w3.org"><span class="insert">public-prov-comments@w3.org</span></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>).<span class="insert"> The Last Call period ends 10 October 2012.</span> All feedback is welcome.</p><p>Publication as a Working 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><span class="insert">This is a Last Call Working Draft and thus the Working Group has determined that this document has satisfied the relevant technical requirements and is sufficiently stable to advance through the Technical Recommendation process.</span></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"><span class="insert">1.3 </span></span><span class="insert">Structure of this document</span></a></li><li class="tocline"><a href="#audience" class="tocxref"><span class="secno"><span class="delete">1.3</span><span class="insert">1.4</span> </span> Audience </a></li></ul></li><li class="tocline"><a href="#rationale" class="tocxref"><span class="secno"><span class="insert">2. </span></span><span class="insert">Rationale</span></a><ul class="toc"><li class="tocline"><a href="#entities--activities-and-agents" class="tocxref"><span class="secno"><span class="insert">2.1 </span></span><span class="insert">Entities, Activities and Agents</span></a></li><li class="tocline"><a href="#events" class="tocxref"><span class="secno"><span class="insert">2.2 </span></span><span class="insert">Events</span></a></li><li class="tocline"><a href="#typing-section" class="tocxref"><span class="secno"><span class="insert">2.3 </span></span><span class="insert">Types</span></a></li><li class="tocline"><a href="#validation-process-overview-1" class="tocxref"><span class="secno"><span class="insert">2.4 </span></span><span class="insert">Validation Process Overview</span></a></li><li class="tocline"><a href="#summary-of-inferences-and-constraints" class="tocxref"><span class="secno"><span class="insert">2.5 </span></span><span class="insert">Summary of inferences and constraints</span></a></li></ul></li><li class="tocline"><a href="#compliance" class="tocxref"><span class="secno"><span class="delete">2.</span><span class="insert">3.</span> </span>Compliance with this document</a></li><li class="tocline"><a href="#inferences" class="tocxref"><span class="secno"><span class="delete">3. </span><span class="insert">4. </span></span><span class="insert">Definitions and </span>Inferences<span class="delete"> and Definitions</span></a><ul class="toc"><li class="tocline"><a href="#optional-identifiers-and-attributes" class="tocxref"><span class="secno"><span class="delete">3.1 </span><span class="delete">Component 1: Entities and Activities</span><span class="insert">4.1 </span></span><span class="insert">Optional Identifiers and Attributes</span></a></li><li class="tocline"><a href="#entities-and-activities" class="tocxref"><span class="secno"><span class="delete">3.2 </span><span class="delete">Component 2: Agents</span><span class="insert">4.2 </span></span><span class="insert">Entities and Activities</span></a></li><li class="tocline"><a href="#derivations" class="tocxref"><span class="secno"><span class="delete">3.3 </span><span class="delete">Component 3: </span><span class="insert">4.3 </span></span>Derivations</a></li><li class="tocline"><a href="#agents" class="tocxref"><span class="secno"><span class="delete">3.4 </span><span class="delete">Component 4: Alternate Entities</span><span class="delete">3.4.1 </span><span class="delete">Specialization</span><span class="insert">4.4 </span></span><span class="insert">Agents</span></a></li><li class="tocline"><a href="#alternate-and-specialized-entities" class="tocxref"><span class="secno"><span class="delete">3.4.2</span><span class="insert">4.5</span> </span>Alternate<span class="delete">4. </span><span class="delete">Equivalence</span><span class="delete">4.1 </span><span class="delete">Optional Attributes</span><span class="delete">4.2 </span><span class="delete">Normalization</span><span class="insert"> and Specialized Entities</span></a></li></ul></li><li class="tocline"><a href="#constraints" class="tocxref"><span class="secno">5. </span><span class="delete">Validity </span>Constraints</a><ul class="toc"><li class="tocline"><a href="#uniqueness-constraints" class="tocxref"><span class="secno">5.1 </span>Uniqueness Constraints</a></li><li class="tocline"><a href="#event-ordering-constraints" class="tocxref"><span class="secno">5.2 </span>Event Ordering Constraints</a><ul class="toc"><li class="tocline"><a href="#activity-constraints" class="tocxref"><span class="secno">5.2.1 </span>Activity constraints</a></li><li class="tocline"><a href="#entity-constraints" class="tocxref"><span class="secno">5.2.2 </span> Entity constraints</a></li><li class="tocline"><a href="#agent-constraints" class="tocxref"><span class="secno">5.2.3 </span> Agent constraints</a></li></ul></li><li class="tocline"><a href="#type-constraints" class="tocxref"><span class="secno"><span class="insert">5.3 </span></span><span class="insert">Type Constraints</span></a></li><li class="tocline"><a href="#impossibility-constraints" class="tocxref"><span class="secno"><span class="delete">6. </span><span class="delete">Collection Constraints</span><span class="delete">6.1 </span><span class="delete">Collection branching</span><span class="delete">6.2 </span><span class="delete">Collections and Weaker Derivation Relation</span><span class="insert">5.4 </span></span><span class="insert">Impossibility constraints</span></a></li></ul></li><li class="tocline"><a href="#normalization-validity-equivalence" class="tocxref"><span class="secno"><span class="delete">7. </span><span class="delete">Account Constraints</span><span class="insert">6. </span></span><span class="insert">Normalization, Validity, and Equivalence</span></a><ul class="toc"><li class="tocline"><a href="#instance" class="tocxref"><span class="secno"><span class="insert">6.1 </span></span><span class="insert">Instances</span></a></li><li class="tocline"><a href="#bundle-constraints" class="tocxref"><span class="secno"><span class="delete">8. </span><span class="delete">Rationale for inferences and constraints</span><span class="delete">8.1 </span><span class="delete">Entities and Attributes</span><span class="delete">8.2 </span><span class="delete">Activities</span><span class="delete">8.3 </span><span class="delete">Description, Assertion, and Inference</span><span class="delete">8.4 </span><span class="delete">Events and Time</span><span class="delete">8.4.1 </span><span class="delete">Event Ordering</span><span class="delete">8.4.2 </span><span class="delete">Types of Events</span><span class="insert">6.2 </span></span><span class="insert">Bundles and Documents</span></a></li></ul></li><li class="tocline"><a href="#glossary" class="tocxref"><span class="secno"><span class="delete">8.5 </span><span class="delete">Account</span><span class="insert">7. </span></span><span class="insert">Glossary</span></a></li><li class="tocline"><a href="#termination" class="tocxref"><span class="secno"><span class="insert">A. </span></span><span class="insert">Termination of normalization</span></a></li><li class="tocline"><a href="#acknowledgements" class="tocxref"><span class="secno"><span class="delete">A.</span><span class="insert">B.</span> </span>Acknowledgements<span class="delete">B. </span><span class="delete">Glossary</span></a></li><li class="tocline"><a href="#references" class="tocxref"><span class="secno">C. </span>References</a><ul class="toc"><li class="tocline"><a href="#normative-references" class="tocxref"><span class="secno">C.1 </span>Normative references</a></li><li class="tocline"><a href="#informative-references" class="tocxref"><span class="secno">C.2 </span>Informative references</a></li></ul></li></ul></div>
 
 
 
@@ -598,74 +1050,102 @@
       "<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 <span class="delete">ariables</span><span class="insert">variables</span> are written
-    beginning with the underscore character <span class="name">_</span>, by convention, to indicate that they
-    <span class="delete">(intentionally) </span>appear only once in the <span class="delete">formula; thus, the textual</span><span class="insert">formula.  Such variables are</span>
-    <span class="delete">variable name is mnemonic only.</span><span class="insert">provided merely as an aid to the reader.</span>  </p>
-
-</div>
+<p><span class="insert">In this document, logical formulas contain variables written as</span>
+    <span class="insert">lower-case identifiers.  Some of these variables are written
+    beginning with the underscore character </span><span class="name"><span class="insert">_</span></span><span class="insert">, by convention, to indicate that they
+    appear only once in the formula.  Such variables are
+    provided merely as an aid to the reader.  </span></p>
+
+</div> 
+
+
+
 
 
 <div id="purpose" class="section">
 
 <h3><span class="secno">1.2 </span>Purpose of this document</h3>
 
-<p>The PROV Data Model, PROV-DM, is a conceptual data model for provenance, which is
-realizable using different <span class="delete">serializations</span><span class="insert">representations</span> such as PROV-N and PROV-O.
-A PROV <dfn id="dfn-instance">instance</dfn> is a set of PROV statements,
-possibly including <a>bundles</a>, or named sets of statements. For
-example, such a PROV instance could be a .provn document, the result
-of a query, a triple store containing PROV statements in RDF, etc. The
-PROV-DM specification [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-DM">PROV-DM</a></cite>] imposes minimal requirements upon
-PROV instances. A <a href="#dfn-valid" class="internalDFN">valid</a> PROV instance corresponds to a
-consistent history of objects and interactions to which logical
-reasoning can be safely applied. By default, PROV instances need not
-be <span class="delete">valid.</span><a href="#dfn-valid" class="internalDFN"><span class="insert">valid</span></a><span class="insert">.</span>  </p>
+<p><span class="delete"> PROV-DM</span><span class="insert">The PROV Data Model, PROV-DM,</span> is a conceptual data model for <span class="delete">provenance (realizable
+</span><span class="insert">provenance, which is
+realizable </span>using different <span class="delete">serializations</span><span class="insert">representations</span> such as <span class="delete">PROV-N, PROV-O,</span><span class="insert">PROV-N and PROV-O.
+A PROV </span><dfn id="dfn-document"><span class="insert">document</span></dfn><span class="insert"> is a set of PROV statements,
+together with zero</span> or <span class="delete">PROV-XML).
+However, nothing</span><span class="insert">more </span><a><span class="insert">bundles</span></a><span class="insert">, or named sets of
+statements.  For
+example, a PROV document could be a .provn document, the result
+of a query, a triple store containing PROV statements</span> in <span class="delete">the </span><span class="insert">RDF, etc.
+A PROV </span><dfn id="dfn-instance"><span class="insert">instance</span></dfn><span class="insert"> is a set of PROV statements.
+The
+</span>PROV-DM specification [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-DM">PROV-DM</a></cite>] <span class="delete">forces sets
+</span><span class="insert">imposes minimal requirements upon
+PROV instances. A </span><a href="#dfn-valid" class="internalDFN"><span class="insert">valid</span></a><span class="insert"> PROV instance corresponds to a
+consistent history </span>of <span class="insert">objects and interactions to which logical
+reasoning can be safely applied. By default, </span>PROV<span class="delete">
+statements (or </span> instances<span class="delete">) to </span><span class="insert"> need not
+</span>be <span class="delete">meaningful, that is, to correspond to a consistent
+history of objects and interactions.  Furthermore, nothing in the
+PROV-DM specification enables applications to perform inferences over
+PROV </span><span class="delete">instances</span><a href="#dfn-valid" class="internalDFN"><span class="insert">valid</span></a>.  </p>
 
 <p> This document specifies <em><span class="insert">definitions</span></em><span class="insert"> of some
-provenance statements in terms of others, </span><em>inferences</em> over PROV instances
-that applications <em class="rfc2119" title="may">may</em> employ, <span class="delete">including </span><span class="delete">definitions</span><span class="insert">and also defines a class</span> of<span class="delete"> some
-provenance statements in terms of others, and also defines a class of
+provenance statements in terms of others, </span><em>inferences</em> over PROV instances 
+that
+ applications <em class="rfc2119" title="may">may</em> employ, <span class="delete">including definitions</span><span class="insert">and also defines a class</span> of<span class="delete"> some provenance
+statements in terms of others, and also defines a class of </span>
+<a href="#dfn-valid" class="internalDFN">valid
+</a> PROV instances by specifying <em>constraints</em> that 
+<a href="#dfn-valid" class="internalDFN">valid</a> PROV instances must
+ satisfy. <span class="delete">Applications </span><span class="delete">should</span><span class="delete"> produce valid provenance and
+</span><span class="delete">may</span><span class="delete"> reject provenance that is not valid in order to increase
+the usefulness</span><span class="insert">There are four kinds</span> of<span class="delete"> provenance and reliability of applications that
+process it.  </span><span class="delete">section 2. Compliance with this document</span><span class="delete">
+summarizes the requirements for compliance with this document, which
+are specified in detail in the rest of the document.
 </span>
-<a href="#dfn-valid" class="internalDFN">valid</a> PROV instances by specifying <em>constraints</em> that
-<span class="delete">valid PROV instances must satisfy. Applications </span><span class="delete">should</span><span class="delete"> produce valid
-provenance and </span><span class="delete">may</span><span class="delete"> reject provenance that is not valid.  Applications
-</span><span class="delete">should</span><span class="delete"> also use definitions, inferences and constraints to normalize
-PROV instances in order to determine whether two such instances convey
-the same information.
-
-
-</span><span class="delete">To summarize: compliant applications use definitions,
-inferences, and uniqueness constraints to normalize PROV instances,
-and then apply event ordering constraints to determine whether the
-instance has a consistent event ordering.  If so, the instance is
-</span><a href="#dfn-valid" class="internalDFN">valid</a><span class="insert"> PROV instances must satisfy. There are four kinds of
-constraints: </span><em><span class="insert">uniqueness constraints</span></em>, <span class="delete">and the normal form is considered </span><span class="delete">equivalent</span><span class="delete"> to
-the original instance.  Also, any two</span><em><span class="insert">event ordering
-constraints</span></em><span class="insert">, </span><em><span class="insert">impossibility constraints</span></em><span class="insert">, and </span><em><span class="insert">type
+
+<span class="delete"> This specification lists inferences and definitions together in one
+section (</span><span class="delete">section 3. Inferences and Definitions</span><span class="delete">), defines the
+induced notion of </span><span class="delete">equivalence</span><span class="delete"> (</span><span class="delete">section 4. Equivalence</span><span class="delete">), and then
+considers two kinds of validity constraints (</span><span class="delete">section 5. Validity Constraints</span><span class="delete">):</span><span class="insert">
+constraints:</span> <em><span class="delete">structural</span><span class="insert">uniqueness</span> constraints</em><span class="delete"> that
+prescribe properties of PROV instances that can be checked directly
+by inspecting the syntax, and</span><span class="insert">,</span> <em>event ordering<span class="insert">
+constraints</span></em><span class="insert">, </span><em><span class="insert">impossibility</span> constraints<span class="delete"> that
+require that the records</span></em><span class="insert">, and </span><em><span class="insert">type
 constraints</span></em><span class="insert">.
 Further discussion
-of the semantics of</span> PROV <span class="delete">instances that yield the
-same normal form are considered </span><span class="delete">equivalent</span><span class="delete">.  Further discussion
-of the semantics of PROV </span>statements, which justifies the<span class="insert"> definitions,</span> inferences
-and constraints, can be found in the formal semantics [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-SEM">PROV-SEM</a></cite>].
+of the semantics of PROV statements, which justifies the definitions, inferences
+and constraints, can be found</span> in <span class="delete">a PROV </span><span class="delete">instance</span><span class="delete"> are consistent with a
+sensible ordering of events relating the activities, entities and
+agents involved.  In separate sections we consider additional
+constraints specific to collections and accounts (</span><span class="delete">section 6. Collection Constraints</span><span class="delete"> and </span><span class="delete">section 7. Account Constraints</span><span class="delete">).  </span>
+
+
+<span class="delete">
+Finally, the specification includes a section (</span><span class="delete">section 8. Rationale for inferences and constraints</span><span class="delete">) describing the rationale
+for the inferences and constraints in greater detail, particularly
+background on events, attributes, the role of inference, and
+accounts. A</span><span class="insert">the</span> formal <span class="delete">mathematical model that further justifies the
+constraints and inferences is found in</span><span class="insert">semantics</span> [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-SEM">PROV-SEM</a></cite>].
 </p>
 
 <p><span class="insert">We define validity and equivalence in terms of a
 concept called </span><a title="normal form" href="#dfn-normal-form" class="internalDFN"><span class="insert">normalization</span></a><span class="insert">.  Definitions, inferences,
 and uniqueness constraints can be applied to </span><a title="normal
 form" href="#dfn-normal-form" class="internalDFN"><span class="insert">normalize</span></a><span class="insert"> PROV instances, and event ordering, typing, and
-impossibility constraints are checked on the normal form to determine
+impossibility constraints can be checked on the normal form to determine
 </span><a title="valid" href="#dfn-valid" class="internalDFN"><span class="insert">validity</span></a><span class="insert">.  Equivalence of two PROV 
-instances can be determined by comparing their normal forms.
+instances can be determined by comparing their normal forms.  For PROV
+documents, validity and equivalence amount to checking the validity or
+pairwise equivalence of their respective documents.
 </span></p>
 <p><span class="insert">
 This document outlines an algorithm for validity checking based on
-</span><a title="normal form" href="#dfn-normal-form" class="internalDFN"><span class="insert">noramlization</span></a><span class="insert">.  Applications </span><em class="rfc2119" title="may"><span class="insert">may</span></em><span class="insert"> implement
+</span><a title="normal form" href="#dfn-normal-form" class="internalDFN"><span class="insert">normalization</span></a><span class="insert">.  Applications </span><em class="rfc2119" title="may"><span class="insert">may</span></em><span class="insert"> implement
 validity and equivalence checking using normalization, as suggested
 here, or in
-any other way as long as the same instances are considered valid or
+any other way as long as the same instances or documents are considered valid or
 equivalent, respectively.
 </span></p>
 
@@ -675,208 +1155,200 @@
 to support them at all.  
 Applications producing provenance </span><em class="rfc2119" title="should"><span class="insert">should</span></em><span class="insert"> ensure that it is
 </span><a href="#dfn-valid" class="internalDFN"><span class="insert">valid</span></a><span class="insert">, and similarly applications consuming provenance </span><em class="rfc2119" title="may"><span class="insert">may</span></em><span class="insert"> reject provenance that is not </span><a href="#dfn-valid" class="internalDFN"><span class="insert">valid</span></a><span class="insert">.  Applications
-which are determining whether PROV instances convey the same
+which are determining whether PROV instances or documents convey the same
 information </span><em class="rfc2119" title="should"><span class="insert">should</span></em><span class="insert"> check equivalence as specified here, and </span><em class="rfc2119" title="should"><span class="insert">should</span></em><span class="insert">
-treat equivalent instances in the same way.</span>
-</p>
+treat equivalent instances or documents in the same way.
+</span></p>
 </div>
 <div id="structure-of-this-document" class="section">
-<h3><span class="secno">1.3 </span>Structure of this document</h3>
-
-<p><a href="#rationale">Section 2</a> gives a brief rationale
+<h3><span class="secno">1.3 </span><span class="insert">Structure of this document</span></h3>
+
+<p><a href="#rationale"><span class="insert">Section 2</span></a><span class="insert"> gives a brief rationale
 for the definitions, inferences and constraints.
-</p>
+</span></p>
 <p>
-<a href="#compliance">Section 3</a> summarizes the
+<a href="#compliance"><span class="insert">Section 3</span></a><span class="insert"> summarizes the
 requirements for compliance with this document, which are specified in
-detail in the rest of the document.  </p>
-
-<p> <a href="#inferences">Section 4</a> presents <span class="delete">inferences and
-definitions.</span><span class="insert">definitions and inferences.</span>  Definitions allow replacing shorthand notation in [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-N">PROV-N</a></cite>]
+detail in the rest of the document.  </span></p>
+
+<p> <a href="#inferences"><span class="insert">Section 4</span></a><span class="insert"> presents definitions and inferences.  Definitions allow replacing shorthand notation in [</span><cite><a class="bibref" rel="biblioentry" href="#bib-PROV-N"><span class="insert">PROV-N</span></a></cite><span class="insert">]
 with more explicit and complete statements; inferences allow adding
 new facts representing implicit knowledge about the structure of
-provenance.  </p>
-
-<p><a href="#constraints">Section 5</a> presents <span class="delete">three</span><span class="insert">four</span> kinds of constraints,
-<em>uniqueness</em> constraints that prescribe that certain <span class="delete">statments</span><span class="insert">statements</span>
-must be unique within PROV <a>instances</a>,
-<em>event ordering</em> constraints that require that the records in a
-PROV <a href="#dfn-instance" class="internalDFN">instance</a> are consistent with a sensible ordering of events
-relating the activities, entities and agents involved,<span class="delete"> and
-</span> 
-<em>impossibility</em> constraints that forbid certain patterns of
-statements<span class="insert"> in valid PROV instances, and </span><em><span class="insert">type</span></em><span class="insert"> constraints that
-classify the types of identifiers</span> in valid PROV instances.
-</p>
-
-<p><a href="#normalization-validity-equivalence">Section 6</a> defines the notions
-of <a>validity</a>, <a>equivalence</a> and <a>normalization</a>.
-</p>
+provenance.  </span></p>
+
+<p><a href="#constraints"><span class="insert">Section 5</span></a><span class="insert"> presents four kinds of constraints,
+</span><em><span class="insert">uniqueness</span></em><span class="insert"> constraints that prescribe that certain statements
+must be unique within PROV </span><a><span class="insert">instances</span></a><span class="insert">,
+</span><em><span class="insert">event ordering</span></em><span class="insert"> constraints that require that the records in a
+PROV </span><a href="#dfn-instance" class="internalDFN"><span class="insert">instance</span></a><span class="insert"> are consistent with a sensible ordering of events
+relating the activities, entities and agents involved, 
+</span><em><span class="insert">impossibility</span></em><span class="insert"> constraints that forbid certain patterns of
+statements in valid PROV instances, and </span><em><span class="insert">type</span></em><span class="insert"> constraints that
+classify the types of identifiers in valid PROV instances.
+</span></p>
+
+<p><a href="#normalization-validity-equivalence"><span class="insert">Section 6</span></a><span class="insert"> defines the notions
+of </span><a><span class="insert">validity</span></a><span class="insert">, </span><a><span class="insert">equivalence</span></a><span class="insert"> and </span><a><span class="insert">normalization</span></a><span class="insert">.
+</span></p>
 
 
 
 </div>
 <div id="audience" class="section">
-<h3><span class="secno">1.4 </span> Audience </h3>
+<h3><span class="secno"><span class="insert">1.4</span> </span> Audience </h3>
 
 <p> The audience for this document is the same as for [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-DM">PROV-DM</a></cite>]: developers
 and users who wish to create, process, share or integrate provenance
 records on the (Semantic) Web.  Not all PROV-compliant applications
-need to perform inferences or check validity when processing provenance.
-However, applications that create or transform provenance <em class="rfc2119" title="should">should</em>
-attempt to produce valid provenance, to make it more useful to other
-applications by ruling out nonsensical or inconsistent information.
+need to <span class="insert">perform inferences or </span>check validity when processing <span class="insert">provenance.
+However, applications that create or transform provenance </span><em class="rfc2119" title="should"><span class="insert">should</span></em><span class="insert">
+attempt to produce valid </span>provenance, <span class="delete">but many</span><span class="insert">to make it more useful to other</span>
+applications <span class="delete">could benefit from the inference rules specified here.
+Conversely, applications that create</span><span class="insert">by ruling out nonsensical</span> or <span class="delete">transform provenance should
+try to produce valid provenance, to make it more useful to other
+applications.</span><span class="insert">inconsistent information.</span>
 </p>
 
-<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>
+<p>This document assumes familiarity with [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-DM">PROV-DM</a></cite><span class="insert">] and employs the
+[</span><cite><a class="bibref" rel="biblioentry" href="#bib-PROV-N"><span class="insert">PROV-N</span></a></cite><span class="insert">] notation.
+</span></p>
 
 </div>
 </div>
 
 <div id="rationale" class="informative section">
-<h2><span class="secno">2. </span>Rationale</h2><p><em>This section is non-normative.</em></p>
-<p> <span class="delete">In this</span><span class="insert">This</span> section <span class="delete">we give</span><span class="insert">gives</span> a high-level rationale that provides some
-  further background for the <span class="delete">constraints. </span><span class="insert">constraints, but does not affect the
+<h2><span class="secno"><span class="insert">2. </span></span><span class="insert">Rationale</span></h2><p><em><span class="insert">This section is non-normative.</span></em></p>
+<p><span class="insert"> This section gives a high-level rationale that provides some
+  further background for the constraints, but does not affect the
 technical content of the rest of the specification.</span></p>
 
 <div id="entities--activities-and-agents" class="section">
-<h3><span class="secno">2.1 </span>Entities, Activities and Agents</h3>
-<p>
+<h3><span class="secno"><span class="insert">2.1 </span></span><span class="insert">Entities, Activities and Agents</span></h3>
+<p><span class="insert">
 One of the central challenges in representing provenance information
 is how to deal with change.  Real-world objects, information objects
 and Web resources change over time, and the characteristics that make
 them identifiable in a given situation are sometimes subject to change
-as well.  <span class="delete">To avoid over-reliance on assumptions that identifying
-characteristics do not change, </span>PROV allows for things to be described
-in different ways, with different descriptions of their<span class="delete"> partial
-</span> 
+as well.  PROV allows for things to be described
+in different ways, with different descriptions of their 
 state.  
-</p>
-
-<p>
+</span></p>
+
+<p><span class="insert">
 An entity is a thing one wants to provide provenance for
 and whose situation in the world is described by some fixed
-attributes. An entity has a <dfn id="lifetime">lifetime</dfn>,
+attributes. An entity has a </span><dfn id="lifetime"><span class="insert">lifetime</span></dfn><span class="insert">,
 defined as the period
-between its <a title="entity generation event" href="#dfn-generation-event" class="internalDFN">generation event</a>
-and its <a title="entity invalidation event" href="#dfn-invalidation-event" class="internalDFN">invalidation event</a>.
+between its </span><a title="entity generation event" href="#dfn-generation-event" class="internalDFN"><span class="insert">generation event</span></a><span class="insert">
+and its </span><a title="entity invalidation event" href="#dfn-invalidation-event" class="internalDFN"><span class="insert">invalidation event</span></a><span class="insert">.
 An entity's attributes are established when the entity is
-created and <span class="insert">(partially) </span>describe the entity's situation and <span class="delete">(partial) </span>state
-during <span class="delete">an</span><span class="insert">the entirety of the</span> entity's lifetime.</p>
-
-<p>
+created and (partially) describe the entity's situation and state
+during the entirety of the entity's lifetime.</span></p>
+
+<p><span class="insert">
 A different entity (perhaps representing a different user or
 system perspective) may fix other aspects of the same thing, and its provenance
-may be different.  Different entities that <span class="insert">fix aspects of the same
-thing </span>are <span class="delete">aspects of the same
-thing are </span>called <em><span class="delete">alternate</span><span class="insert">alternates</span></em>, and the PROV relations of
-<span class="delete">specialization and alternate</span><span class="name"><span class="insert">specializationOf</span></span><span class="insert"> and </span><span class="name"><span class="insert">alternateOf</span></span> can be used to link such entities.</p>
-
-<p>Besides entities, a variety of other PROV objects have
+may be different.  Different entities that fix aspects of the same
+thing are called </span><em><span class="insert">alternates</span></em><span class="insert">, and the PROV relations of
+</span><span class="name"><span class="insert">specializationOf</span></span><span class="insert"> and </span><span class="name"><span class="insert">alternateOf</span></span><span class="insert"> can be used to link such entities.</span></p>
+
+<p><span class="insert">Besides entities, a variety of other PROV objects have
 attributes, including activity, generation, usage, invalidation, start, end,
 communication, attribution, association, delegation, and
 derivation. Each object has an associated duration interval (which may
 be a single time point), and attribute-value pairs for a given object
 are expected to be descriptions that hold for the object's duration.
-</p>
-<p>
+</span></p>
+<p><span class="insert">
 However, the attributes of entities have special meaning because they
 are considered to be fixed aspects
 of underlying, changing things.  This motivates constraints on
-<span class="name">alternateOf</span> and <span class="name">specializationOf</span> relating the attribute values of
+</span><span class="name"><span class="insert">alternateOf</span></span><span class="insert"> and </span><span class="name"><span class="insert">specializationOf</span></span><span class="insert"> relating the attribute values of
 different entities.
-</p>
-
-<p>
+</span></p>
+
+<p><span class="insert">
 In order to describe the provenance of something during an interval
   over which relevant attributes of the thing are not fixed, a PROV
   instance would describe multiple entities, each with its own
-  identifier, <a href="#lifetime" class="internalDFN">lifetime</a>, and fixed attributes, and express dependencies between
-  the various entities using <span class="delete">events.</span><i><a href="instantaneous event"><span class="insert">events</span></a></i><span class="insert">.</span>  For example, <span class="delete">if we want</span><span class="insert">in order</span> to
+  identifier, </span><a href="#lifetime" class="internalDFN"><span class="insert">lifetime</span></a><span class="insert">, and fixed attributes, and express dependencies between
+  the various entities using </span><i><a title="instantaneous event" href="#dfn-event" class="internalDFN"><span class="insert">events</span></a></i><span class="insert">.  For example, in order to
   describe the provenance of several versions of a document, involving
-  attributes such as authorship that change over time, <span class="delete">we need</span><span class="insert">one can use</span>
+  attributes such as authorship that change over time, one can use
   different entities for the versions linked by appropriate
   generation, usage, revision, and invalidation events. 
-</p>
-
-<p>There is no assumption that the set of attributes listed in an
-<span class="name">entity</span> statement is complete, nor
+</span></p>
+
+<p><span class="insert">There is no assumption that the set of attributes listed in an
+</span><span class="name"><span class="insert">entity</span></span><span class="insert"> statement is complete, nor
 that the attributes are independent or orthogonal of each
 other. Similarly, there is no assumption that the attributes of an
 entity uniquely identify it.  Two different entities that present the
 same aspects of possibly different things can have the same
 attributes; this leads to potential ambiguity, which is mitigated through the
-use of identifiers.</p>
-
-<p>An <a>activity</a><span class="insert">'s lifetime</span> is delimited by its <a title="activity start
-event" href="#dfn-start-event" class="internalDFN">start</a> and its <a title="activity end event" href="#dfn-end-event" class="internalDFN">end</a><span class="delete"> events; hence, it</span><span class="insert">
-events.  It</span> occurs over
-an interval delimited by two <a title="instantaneous event" href="#dfn-event" class="internalDFN">instantaneous
-events</a>. However, an activity statement need not mention start or end time information, because they may not be known.
-An activity's attribute-value pairs are expected to describe the activity's situation during its <span class="delete">interval, i.e. an interval between two instantaneous events, namely its </span><span class="delete">start</span><span class="delete"> event and its </span><span class="delete">end</span><span class="delete"> event.</span><span class="insert">lifetime.</span>
+use of identifiers.</span></p>
+
+<p><span class="insert">An </span><a><span class="insert">activity</span></a><span class="insert">'s lifetime is delimited by its </span><a title="activity start
+event" href="#dfn-start-event" class="internalDFN"><span class="insert">start</span></a><span class="insert"> and its </span><a title="activity end event" href="#dfn-end-event" class="internalDFN"><span class="insert">end</span></a><span class="insert">
+events.  It occurs over
+an interval delimited by two </span><a title="instantaneous event" href="#dfn-event" class="internalDFN"><span class="insert">instantaneous
+events</span></a><span class="insert">. However, an activity statement need not mention start or end time information, because they may not be known.
+An activity's attribute-value pairs are expected to describe the activity's situation during its lifetime.
+</span></p>
+
+
+
+<p><span class="insert">An activity is not an entity.  Indeed, an entity exists in full at
+any point in its lifetime, persists during this interval, and
+preserves the characteristics provided.  In
+contrast, an activity is something that occurs, happens, unfolds, or
+develops through time.  This
+distinction is similar to the distinction between 'continuant' and
+'occurrent' in logic [</span><cite><a class="bibref" rel="biblioentry" href="#bib-Logic"><span class="insert">Logic</span></a></cite>].
 </p>
 
 
 
-<p>An activity is not an entity.  Indeed, an entity exists in full at
-any point in its lifetime, persists during this interval, and
-preserves the characteristics <span class="delete">that make it identifiable.</span><span class="insert">provided.</span>  In
-contrast, an activity is something that occurs, happens, unfolds, or
-develops through <span class="delete">time, but is typically not identifiable by the
-characteristics it exhibits at any point during its duration.</span><span class="insert">time.</span>  This
-distinction is similar to the distinction between 'continuant' and
-'occurrent' in logic [<cite><a class="bibref" rel="biblioentry" href="#bib-Logic">Logic</a></cite>].</p>
-
-
 </div>
 <div id="events" class="section">
-<h3><span class="secno">2.2 </span>Events</h3>
-
-<p> Although time is important for provenance, provenance can be used
+<h3><span class="secno"><span class="insert">2.2 </span></span><span class="insert">Events</span></h3>
+
+<p><span class="insert"> Although time is important for provenance, provenance can be used
 in many different contexts within individual systems and across the
 Web. Different systems may use different clocks which may not be
 precisely synchronized, so when provenance statements are combined by
-different systems, <span class="delete">we</span><span class="insert">an application</span> may not be able to align the times involved to a
+different systems, an application may not be able to align the times involved to a
 single global timeline.  Hence, PROV is designed to minimize
 assumptions about time.  Instead, PROV talks about (identified)
-events. </p>
-
-<p>The PROV data model is implicitly based on a notion of <dfn id="dfn-event">instantaneous event</dfn>s (or just <a title="instantaneous event" href="#dfn-event" class="internalDFN">event</a>s), that mark
+events. </span></p>
+
+<p><span class="insert">The PROV data model is implicitly based on a notion of </span><dfn id="dfn-event"><span class="insert">instantaneous event</span></dfn><span class="insert">s (or just </span><a title="instantaneous event" href="#dfn-event" class="internalDFN"><span class="insert">event</span></a><span class="insert">s), that mark
 transitions in the world.  Events include generation, usage, or
 invalidation of entities, as well as start or end of activities.  This
 notion of event is not first-class in the data model, but it is useful
-for explaining its other concepts and its semantics [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-SEM">PROV-SEM</a></cite>].
-Thus, events help justify  <i>inferences</i> on provenance as well as
-<i>validity</i> constraints indicating when provenance is
+for explaining its other concepts and its semantics [</span><cite><a class="bibref" rel="biblioentry" href="#bib-PROV-SEM"><span class="insert">PROV-SEM</span></a></cite><span class="insert">].
+Thus, events help justify  </span><i><span class="insert">inferences</span></i><span class="insert"> on provenance as well as
+</span><i><span class="insert">validity</span></i><span class="insert"> constraints indicating when provenance is
   self-consistent.
 
 
 
-</p><p>Five kinds of <a title="instantaneous event" href="#dfn-event" class="internalDFN">instantaneous
-events</a> are used in PROV. The <strong>activity start</strong>
-and <strong>activity end</strong> events delimit the beginning and the
-end of activities, respectively. The  
-<strong>entity <span class="delete">usage</span><span class="insert">generation</span></strong>,
- <strong>entity <span class="delete">generation</span><span class="insert">usage</span></strong>, and <strong>entity
-invalidation</strong> events apply to entities, and the generation and
-invalidation events delimit the <a href="#lifetime" class="internalDFN">lifetime</a> of an entity. More
+</span></p><p><span class="insert">Five kinds of </span><a title="instantaneous event" href="#dfn-event" class="internalDFN"><span class="insert">instantaneous
+events</span></a><span class="insert"> are used in PROV. The </span><strong><span class="insert">activity start</span></strong><span class="insert">
+and </span><strong><span class="insert">activity end</span></strong><span class="insert"> events delimit the beginning and the
+end of activities, respectively. The 
+</span><strong><span class="insert">entity generation</span></strong><span class="insert">, </span><strong><span class="insert">entity usage</span></strong><span class="insert">, and </span><strong><span class="insert">entity
+invalidation</span></strong><span class="insert"> events apply to entities, and the generation and
+invalidation events delimit the </span><a href="#lifetime" class="internalDFN"><span class="insert">lifetime</span></a><span class="insert"> of an entity. More
 precisely:
-</p>
-
-<p>An <dfn id="dfn-start-event">activity start event</dfn> is the <a title="instantaneous event" href="#dfn-event" class="internalDFN">instantaneous event</a> that marks the instant an activity starts.</p>
-
-<p>An <dfn id="dfn-end-event">activity end event</dfn> is the <a title="instantaneous event" href="#dfn-event" class="internalDFN">instantaneous event</a> that marks the instant an activity ends.</p>
-
-<p>An <span class="delete">entity usage event</span><span class="delete"> is the </span><span class="delete">instantaneous event</span><span class="delete"> that marks the first instant of
-an entity's consumption timespan by an activity.  Before this instant
-the entity had not begun to be used by the activity.</span>
-
-<span class="delete">An </span><dfn id="dfn-generation-event">entity generation event</dfn> is the <a title="instantaneous event" href="#dfn-event" class="internalDFN">instantaneous event</a> that marks the  final instant of an entity's creation timespan, after which
-it is available for use.  The entity did not exist before this event.</p>
-
-
+</span></p>
+
+<p><span class="insert">An </span><dfn id="dfn-start-event"><span class="insert">activity start event</span></dfn><span class="insert"> is the </span><a title="instantaneous event" href="#dfn-event" class="internalDFN"><span class="insert">instantaneous event</span></a><span class="insert"> that marks the instant an activity starts.</span></p>
+
+<p><span class="insert">An </span><dfn id="dfn-end-event"><span class="insert">activity end event</span></dfn><span class="insert"> is the </span><a title="instantaneous event" href="#dfn-event" class="internalDFN"><span class="insert">instantaneous event</span></a><span class="insert"> that marks the instant an activity ends.</span></p>
+
+<p><span class="insert">An </span><dfn id="dfn-generation-event"><span class="insert">entity generation event</span></dfn><span class="insert"> is the </span><a title="instantaneous event" href="#dfn-event" class="internalDFN"><span class="insert">instantaneous event</span></a><span class="insert"> that marks the  final instant of an entity's creation timespan, after which
+it is available for use.  The entity did not exist before this event.</span></p>
 
 
 <p><span class="insert">An </span><dfn id="dfn-usage-event"><span class="insert">entity usage event</span></dfn><span class="insert"> is the </span><a title="instantaneous event" href="#dfn-event" class="internalDFN"><span class="insert">instantaneous event</span></a><span class="insert"> that marks the first instant of
@@ -885,16 +1357,517 @@
 potentially have used the same entity at a different time.</span></p>
 
 
-<p>An <dfn id="dfn-invalidation-event">entity invalidation event</dfn>
-is the <a title="instantaneous event" href="#dfn-event" class="internalDFN">instantaneous event</a> that
+<p><span class="insert">An </span><dfn id="dfn-invalidation-event"><span class="insert">entity invalidation event</span></dfn><span class="insert">
+is the </span><a title="instantaneous event" href="#dfn-event" class="internalDFN"><span class="insert">instantaneous event</span></a><span class="insert"> that
 marks the  initial instant of the destruction, invalidation, or
 cessation of an entity, after which the entity is  no longer available
-for use.  The entity no longer exists after this event.</p>
+for use.  The entity no longer exists after this event.</span></p>
 
 </div>
 
+<div id="typing-section" class="section">
+<h3><span class="secno"><span class="insert">2.3 </span></span><span class="insert">Types</span></h3>
+
+<p><span class="insert"> As set out in other specifications, the identifiers used in PROV
+documents have associated type information.  An identifier can have
+more than one type, reflecting subtyping or allowed overlap between
+types, and so we define a set of types of each identifier, </span><span class="name"><span class="insert">typeOf(id)</span></span><span class="insert">.  Some types are, however,
+required not to overlap (for example, no identifier can describe both
+an entity and an activity).
+In addition, an identifier cannot be used to identify both an object
+(that is, an entity, activity or agent) and a property (that is, a
+named event such as usage, generation, or a relationship such as
+attribution.)
+This specification includes </span><a href="#type-constraints"><span class="insert">disjointness and typing constraints</span></a><span class="insert"> that
+check these requirements.  Here, we 
+summarize the type constraints in </span><a href="#typing-table"><span class="insert">Table 1</span></a><span class="insert">.
+</span></p>
+
+<div id="typing-table-fig">
+    <table id="typing-table" border="1" class="thinborder" style="margin-left: auto; margin-right: auto; border-color: black;">
+<caption id="typing-table-caption"><span class="insert">Table 1: Summary of Typing Constraints</span></caption>
+      <tbody><tr>
+	<th><span class="insert">In relation...</span></th>
+	<th><span class="insert">identifier</span></th>
+	<th><span class="insert">has type(s)...</span></th>
+      </tr>
+
+<tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td></tr>
+
+      <tr style="text-align: center; ">
+	<td class="name"><span class="insert">entity(e,attrs)</span></td>
+	<td class="name" style="text-align: center; "><span class="insert">e</span></td>
+	<td class="name"><span class="insert">'entity'</span></td>
+      </tr>
+      <tr style="text-align: center; ">
+	<td class="name"><span class="insert">activity(a,t1,t2,attrs)</span></td>
+	<td class="name"><span class="insert">a</span></td>
+	<td class="name"><span class="insert">'activity'</span></td>
+      </tr>
+      <tr style="text-align: center; ">
+	<td class="name"><span class="insert">agent(ag,attrs)</span></td>
+	<td class="name"><span class="insert">ag</span></td>
+	<td class="name"><span class="insert">'agent'</span></td>
+      </tr>
+      <tr style="text-align: center; ">
+	<td rowspan="2" class="name"><span class="insert">used(id; a,e,t,attrs)</span></td>
+	<td class="name"><span class="insert">e</span></td>
+	<td class="name"><span class="insert">'entity'</span></td>
+     </tr>
+     <tr style="text-align: center; ">
+	<td class="name"><span class="insert">a</span></td>
+	<td class="name"><span class="insert">'activity'</span></td>
+      </tr>
+     <tr style="text-align: center; ">
+	<td rowspan="2" class="name"><span class="insert">wasGeneratedBy(id; e,a,t,attrs)</span></td>
+	<td class="name"><span class="insert">e</span></td>
+	<td class="name"><span class="insert">'entity'</span></td>
+      </tr>
+     <tr style="text-align: center; ">
+	<td class="name"><span class="insert">a</span></td>
+	<td class="name"><span class="insert">'activity'</span></td>
+    </tr>
+      <tr style="text-align: center; ">
+	<td rowspan="2" class="name"><span class="insert">wasInformedBy(id; a2,a1,attrs)</span></td>
+	<td class="name"><span class="insert">a2</span></td>
+	<td class="name"><span class="insert">'activity'</span></td>
+      </tr>
+      <tr style="text-align: center; ">
+	<td class="name"><span class="insert">a1</span></td>
+	<td class="name"><span class="insert">'activity'</span></td>
+      </tr>
+    <tr style="text-align: center; ">
+	<td rowspan="3" class="name"><span class="insert">wasStartedBy(id; a2,e,a1,t,attrs)</span></td>
+	<td class="name"><span class="insert">a2</span></td>
+	<td class="name"><span class="insert">'activity'</span></td>
+      </tr>
+      <tr style="text-align: center; ">
+	<td class="name"><span class="insert">e</span></td>
+	<td class="name"><span class="insert">'entity'</span></td>
+      </tr>
+      <tr style="text-align: center; ">
+	<td class="name"><span class="insert">a1</span></td>
+	<td class="name"><span class="insert">'activity'</span></td>
+      </tr>
+      <tr style="text-align: center; ">
+	<td rowspan="3" class="name"><span class="insert">wasEndedBy(id; a2,e,a1,t,attrs)</span></td>
+	<td class="name"><span class="insert">a2</span></td>
+	<td class="name"><span class="insert">'activity'</span></td>
+      </tr>
+      <tr style="text-align: center; ">
+	<td class="name"><span class="insert">e</span></td>
+	<td class="name"><span class="insert">'entity'</span></td>
+      </tr>
+      <tr style="text-align: center; ">
+	<td class="name"><span class="insert">a1</span></td>
+	<td class="name"><span class="insert">'activity'</span></td>
+      </tr>
+      <tr style="text-align: center; ">
+	<td rowspan="2" class="name"><span class="insert">wasInvalidatedBy(id; e,a,t,attrs)</span></td>
+	<td class="name"><span class="insert">e</span></td>
+	<td class="name"><span class="insert">'entity'</span></td>
+      </tr>
+      <tr style="text-align: center; ">
+	<td class="name"><span class="insert">a</span></td>
+	<td class="name"><span class="insert">'activity'</span></td>
+      </tr>
+      <tr style="text-align: center; ">
+	<td rowspan="3" class="name"><span class="insert">wasDerivedFrom(id; e2,e1,a,g,u,attrs)</span></td>
+	<td class="name"><span class="insert">e2</span></td>
+	<td class="name"><span class="insert">'entity'</span></td>
+     </tr>
+      <tr style="text-align: center; ">
+	<td class="name"><span class="insert">e1</span></td>
+	<td class="name"><span class="insert">'entity'</span></td>
+     </tr>
+      <tr style="text-align: center; ">
+	<td class="name"><span class="insert">a</span></td>
+	<td class="name"><span class="insert">'activity'</span></td>
+     </tr>
+     <tr style="text-align: center; ">
+	<td rowspan="2" class="name"><span class="insert">wasAttributedTo(id; e,ag,attr)</span></td>
+	<td class="name"><span class="insert">e</span></td>
+	<td class="name"><span class="insert">'entity'</span></td>
+     </tr>
+      <tr style="text-align: center; ">
+	<td class="name"><span class="insert">ag</span></td>
+	<td class="name"><span class="insert">'agent'</span></td>
+     </tr>
+     <tr style="text-align: center; ">
+	<td rowspan="3" class="name"><span class="insert">wasAssociatedWith(id; a,ag,pl,attrs)</span></td>
+	<td class="name"><span class="insert">a</span></td> 
+	<td class="name"><span class="insert">'activity'</span></td>
+     </tr>
+      <tr style="text-align: center; ">
+	<td class="name"><span class="insert">ag</span></td> 
+	<td class="name"><span class="insert">'agent'</span></td>
+     </tr>
+      <tr style="text-align: center; ">
+	<td class="name"><span class="insert">pl</span></td> 
+	<td class="name"><span class="insert">'entity'</span></td>
+     </tr>
+      <tr style="text-align: center; ">
+	<td rowspan="3" class="name"><span class="insert">actedOnBehalfOf(id; ag2,ag1,a,attrs)</span></td>
+    	<td class="name"><span class="insert">ag2</span></td> 
+	<td class="name"><span class="insert">'agent'</span></td>
+     </tr>
+     <tr style="text-align: center; ">
+       <td class="name"><span class="insert">ag1</span></td> 
+       <td class="name"><span class="insert">'agent'</span></td>
+     </tr>
+      <tr style="text-align: center; ">
+	<td class="name"><span class="insert">a</span></td> 
+	<td class="name"><span class="insert">'activity'</span></td>
+      </tr>
+      <tr style="text-align: center; ">
+	<td rowspan="2" class="name"><span class="insert">alternateOf(e1,e2)</span></td>
+    	<td class="name"><span class="insert">e1</span></td> 
+	<td class="name"><span class="insert">'entity'</span></td>
+     </tr>
+     <tr style="text-align: center; ">
+       <td class="name"><span class="insert">e2</span></td> 
+       <td class="name"><span class="insert">'entity'</span></td>
+     </tr>
+      <tr style="text-align: center; ">
+	<td rowspan="2" class="name"><span class="insert">specializationOf(e1,e2)</span></td>
+    	<td class="name"><span class="insert">e1</span></td> 
+	<td class="name"><span class="insert">'entity'</span></td>
+     </tr>
+     <tr style="text-align: center; ">
+       <td class="name"><span class="insert">e2</span></td> 
+       <td class="name"><span class="insert">'entity'</span></td>
+     </tr>
+      <tr style="text-align: center; ">
+	<td rowspan="3" class="name"><span class="insert">mentionOf(e1,e2,b)</span></td>
+    	<td class="name"><span class="insert">e1</span></td> 
+	<td class="name"><span class="insert">'entity'</span></td>
+     </tr>
+     <tr style="text-align: center; ">
+       <td class="name"><span class="insert">e2</span></td> 
+       <td class="name"><span class="insert">'entity'</span></td>
+     </tr>
+     <tr style="text-align: center; ">
+       <td class="name"><span class="insert">b</span></td> 
+       <td class="name"><span class="insert">'entity'</span></td>
+     </tr>
+           <tr style="text-align: center; ">
+	<td rowspan="2" class="name"><span class="insert">hadMember(c,e)</span></td>
+    	<td class="name"><span class="insert">c</span></td> 
+	<td class="name"><span class="insert">'entity'</span><br><span class="insert"> 'prov:Collection'</span></td>
+     </tr>
+     <tr style="text-align: center; ">
+       <td class="name"><span class="insert">e</span></td> 
+       <td class="name"><span class="insert">'entity'</span></td>
+     </tr>
+     <tr style="text-align: center; ">
+	<td class="name"><span class="insert">entity(c,[prov:type='prov:EmptyCollection,...])</span></td>
+    	<td class="name"><span class="insert">c</span></td> 
+	<td class="name"><span class="insert">'entity'</span><br><span class="insert"> 'prov:Collection' </span><br><span class="insert"> 'prov:EmptyCollection'</span></td>
+     </tr>
+ </tbody></table>
+    </div>
+
+</div> 
+
+
 <div id="validation-process-overview-1" class="section">
-<h3><span class="secno">2.3 </span><span class="insert">Validation Process Overview</span></h3>
+<h3><span class="secno"><span class="insert">2.4 </span></span><span class="insert">Validation Process Overview</span></h3>
+
+
+    <p><span class="insert">
+  This section collects common concepts and operations that are used
+  throughout the specification, and relates them to background
+  terminology and ideas from logic [</span><cite><a class="bibref" rel="biblioentry" href="#bib-Logic"><span class="insert">Logic</span></a></cite><span class="insert">], constraint programming
+  [</span><cite><a class="bibref" rel="biblioentry" href="#bib-CHR"><span class="insert">CHR</span></a></cite><span class="insert">], and database constraints [</span><cite><a class="bibref" rel="biblioentry" href="#bib-DBCONSTRAINTS"><span class="insert">DBCONSTRAINTS</span></a></cite><span class="insert">].  This section
+  does not attempt to provide a complete introduction to these topics,
+  but it is provided in order to aid readers familiar with one or more
+  of these topics in understanding the specification, and to clarify
+  some of the motivations for choices in the specification to all readers.
+  </span></p>
+
+ 
+ <h4 id="constants--variables-and-placeholders"><span class="insert">Constants, Variables and Placeholders</span></h4>
+  <p><span class="insert">
+  PROV statements involve identifiers, literals, 
+  placeholders, and attribute lists.  Identifiers are, according to PROV-N, expressed as </span><a href="http://www.w3.org/TR/prov-n/#prod-QUALIFIED_NAME"><span class="insert">qualified names</span></a><span class="insert"> which can be mapped to URIs [</span><cite><a class="bibref" rel="biblioentry" href="#bib-IRI"><span class="insert">IRI</span></a></cite><span class="insert">].
+  However, in order to specify
+  constraints over PROV instances, we also need </span><em><span class="insert">variables</span></em><span class="insert">
+  that represent unknown identifiers, literals, or placeholders.
+  These variables are similar to those in first-order
+  logic [</span><cite><a class="bibref" rel="biblioentry" href="#bib-Logic"><span class="insert">Logic</span></a></cite><span class="insert">].  A variable is a symbol that can be replaced by
+  other symbols, including either other variables or constant
+  identifiers, literals, or placeholders.  In a few special cases, we
+  also use variables for unknown attribute lists. 
+  To help distinguish identifiers and variables, we also term the former 'constant identifiers' to highlight their non-variable nature.
+  </span></p>
+  
+  <p><span class="insert">Several definitions and inferences conclude by saying that some
+  objects exist such that some other formulas hold.  Such an inference
+  introduces fresh </span><a><span class="insert">existential variable</span></a><span class="insert">s into the instance.  An
+  existential variable denotes a fixed object that exists, but its
+  exact identity is unknown.  Existential variables can stand for
+  unknown identifiers or literal values only; we do not allow
+  existential variables that stand for unknown attribute lists.  </span></p>
+
+  <p><span class="insert">In particular, many
+  occurrences of the placeholder symbol </span><span class="name"><span class="insert">-</span></span><span class="insert"> stand for unknown
+  objects; these are handled by expanding them to existential
+  variables. Some placeholders, however, indicate the absence of an
+  object, rather than an unknown object.  In other words, the
+  placeholder is overloaded, with different meanings in different
+  places.
+  </span></p>
+  <p><span class="insert">An expression is called a </span><em><span class="insert">term</span></em><span class="insert"> if it is either a
+  constant identifier, literal, placeholder, or variable.  We write
+  </span><span class="math"><span class="insert">t</span></span><span class="insert"> to denote an arbitrary term.
+</span></p>
+
+  
+ <h4 id="substitution"><span class="insert">Substitution</span></h4>
+<p><span class="insert">A </span><em><span class="insert">substitution</span></em><span class="insert"> is a function that maps variables to terms. Concretely, since we only
+  need to consider substitutions of finite sets of variables, we can
+  write substitutions as </span><span class="math"><span class="insert">[x</span><sub><span class="insert">1</span></sub><span class="insert"> = t</span><sub><span class="insert">1</span></sub><span class="insert">,...,x</span><sub><span class="insert">n</span></sub><span class="insert">=t</span><sub><span class="insert">n</span></sub><span class="insert">]</span></span><span class="insert">.  A substitution
+  </span><span class="math"><span class="insert">S = [x</span><sub><span class="insert">1</span></sub><span class="insert"> = t</span><sub><span class="insert">1</span></sub><span class="insert">,...,x</span><sub><span class="insert">n</span></sub><span class="insert">=t</span><sub><span class="insert">n</span></sub><span class="insert">]</span></span><span class="insert"> 
+  can be </span><em><span class="insert">applied</span></em><span class="insert"> to a term as follows.
+</span></p>
+<ol><li><span class="insert">
+  If the term is a variable </span><span class="math"><span class="insert">x</span><sub><span class="insert">i</span></sub></span><span class="insert">, one of the variables in the
+  domain of </span><span class="math"><span class="insert">S</span></span><span class="insert">, then </span><span class="math"><span class="insert">S(x</span><sub><span class="insert">i</span></sub><span class="insert">) = t</span><sub><span class="insert">i</span></sub></span><span class="insert">.
+  </span></li>
+  <li><span class="insert">If the term is a constant identifier or literal </span><span class="math"><span class="insert">c</span></span><span class="insert">, then </span><span class="math"><span class="insert">S(c) = c</span></span><span class="insert">.
+  </span></li>
+  </ol>
+<p><span class="insert">
+  In addition, a substitution can be applied to an atomic formula
+  (PROV statement) </span><span class="math"><span class="insert">p(t</span><sub><span class="insert">1</span></sub><span class="insert">,...,t</span><sub><span class="insert">n</span></sub><span class="insert">)</span></span><span class="insert"> by applying it to each term,
+  that is, </span><span class="math"><span class="insert">S(p(t</span><sub><span class="insert">1</span></sub><span class="insert">,...,t</span><sub><span class="insert">n</span></sub><span class="insert">)) = p(S(t</span><sub><span class="insert">1</span></sub><span class="insert">),...,S(t</span><sub><span class="insert">n</span></sub><span class="insert">))</span></span><span class="insert">.  Likewise, a
+  substitution </span><span class="math"><span class="insert">S</span></span><span class="insert"> can be applied to an instance </span><span class="math"><span class="insert">I</span></span><span class="insert"> by applying
+  it to each atomic formula (PROV statement) in </span><span class="math"><span class="insert">I</span></span><span class="insert">, that is, </span><span class="math"><span class="insert">S(I)
+  = {S(A) | A ∈ I}</span></span><span class="insert">.
+</span></p>
+
+
+  
+ 
+
+ <h4 id="formulas"><span class="insert">Formulas</span></h4>
+  <p><span class="insert">
+  For the purpose of constraint checking, we view PROV statements
+  (possibly involving existential variables) as
+  </span><dfn id="dfn-formulas"><span class="insert">formulas</span></dfn><span class="insert">.  An instance is analogous to a "theory" in
+  logic, that is, a set of formulas all thought to describe the same
+  situation.  The set can also be thought of a single, large formula:
+  the conjunction of all of the atomic formulas.
+  </span></p>
+<p><span class="insert">The atomic constraints considered in this specification can be
+  viewed as atomic formulas:</span></p>
+<ul>
+  <li><span class="insert">Uniqueness constraints employ atomic equational formulas </span><span class="math"><span class="insert">t =
+  t'</span></span><span class="insert">.</span></li>
+  <li><span class="insert">Ordering constraints employ atomic precedence relations that can
+  be thought of as binary formulas </span><span class="math"><span class="insert">precedes(t,t')</span></span><span class="insert"> or </span><span class="math"><span class="insert">strictly_precedes(t,t')</span></span>
+  </li>
+  <li><span class="insert">Typing constraints </span><span class="name"><span class="insert">'type' ∈ typeOf(id)</span></span><span class="insert">
+  can be represented as a atomic formulas </span><span class="name"><span class="insert">typeOf(id,'type')</span></span><span class="insert">.
+  </span></li>
+  <li><span class="insert">Impossibility constraints employ the conclusion </span><span class="name"><span class="insert">INVALID</span></span><span class="insert">,
+  which is equivalent to the logical constant </span><span class="math"><span class="insert">False</span></span><span class="insert">. </span></li>
+  </ul>
+  <p><span class="insert"> Similarly, the definitions, inferences, and constraint rules in this
+  specification can also be viewed as logical formulas, built up out
+  of atomic formulas, logical connectives "and" (∧), "implies" (⇒),
+  and quantifiers "for all" (∀) and "there exists" (∃).  For more
+  background on logical formulas, see a logic textbook such as [</span><cite><a class="bibref" rel="biblioentry" href="#bib-Logic"><span class="insert">Logic</span></a></cite><span class="insert">].</span></p>
+<ul>
+  <li><span class="insert">
+  A definition of the form </span><span class="name"><span class="insert">A</span></span> <span class="conditional"><span class="insert">IF AND ONLY IF</span></span><span class="insert"> there
+  exists </span><span class="name"><span class="insert">y</span><sub><span class="insert">1</span></sub></span><span class="insert">...</span><span class="name"><span class="insert">y</span><sub><span class="insert">m</span></sub></span><span class="insert"> such that </span><span class="name"><span class="insert">B</span><sub><span class="insert">1</span></sub></span><span class="insert"> and ... and </span><span class="name"><span class="insert">B</span><sub><span class="insert">k</span></sub></span><span class="insert">
+  can be thought of as a formula </span><span class="math"><span class="insert">∀ x</span><sub><span class="insert">1</span></sub><span class="insert">,....,x</span><sub><span class="insert">n</span></sub><span class="insert">. A ⇔ ∃ y</span><sub><span class="insert">1</span></sub><span class="insert">...y</span><sub><span class="insert">m</span></sub><span class="insert"> . B</span><sub><span class="insert">1</span></sub><span class="insert"> ∧ ... ∧ B</span><sub><span class="insert">k</span></sub></span><span class="insert">, where </span><span class="math"><span class="insert">x</span><sub><span class="insert">1</span></sub></span><span class="insert">...</span><span class="math"><span class="insert">x</span><sub><span class="insert">n</span></sub></span><span class="insert"> are the
+  free variables of the definition.  
+</span></li>
+<li><span class="insert">An inference of the form </span><span class="conditional"><span class="insert">IF</span></span> <span class="name"><span class="insert">A</span><sub><span class="insert">1</span></sub></span><span class="insert"> and ... and </span><span class="name"><span class="insert">A</span><sub><span class="insert">l</span></sub></span>  <span class="conditional"><span class="insert">THEN</span></span><span class="insert">  there
+  exists </span><span class="name"><span class="insert">y</span><sub><span class="insert">1</span></sub></span><span class="insert">...</span><span class="name"><span class="insert">y</span><sub><span class="insert">m</span></sub></span><span class="insert"> such that </span><span class="name"><span class="insert">B</span><sub><span class="insert">1</span></sub></span><span class="insert"> and ... and </span><span class="name"><span class="insert">B</span><sub><span class="insert">k</span></sub></span><span class="insert"> can
+  be thought of as a formula </span><span class="math"><span class="insert">∀ x</span><sub><span class="insert">1</span></sub><span class="insert">,....,x</span><sub><span class="insert">n</span></sub><span class="insert">.  A</span><sub><span class="insert">1</span></sub><span class="insert"> ∧ ... ∧ A</span><sub><span class="insert">l</span></sub><span class="insert"> ⇒ ∃ y</span><sub><span class="insert">1</span></sub><span class="insert">...y</span><sub><span class="insert">m</span></sub><span class="insert"> . B</span><sub><span class="insert">1</span></sub><span class="insert"> ∧ ... ∧ B</span><sub><span class="insert">k</span></sub></span><span class="insert">, where </span><span class="math"><span class="insert">x</span><sub><span class="insert">1</span></sub></span><span class="insert">...</span><span class="math"><span class="insert">x</span><sub><span class="insert">n</span></sub></span><span class="insert"> are the
+  free variables of the inference.  
+</span></li>
+<li><span class="insert">A uniqueness, ordering, or typing constraint of the form </span><span class="conditional"><span class="insert">IF</span></span> <span class="name"><span class="insert">A</span><sub><span class="insert">1</span></sub><span class="insert"> ∧ ... ∧ A</span><sub><span class="insert">l</span></sub></span> <span class="conditional"><span class="insert">THEN</span></span> <span class="name"><span class="insert">C</span></span><span class="insert"> can be viewed as a formula
+  </span><span class="math"><span class="insert">∀ x</span><sub><span class="insert">1</span></sub><span class="insert">...x</span><sub><span class="insert">n</span></sub><span class="insert">. A</span><sub><span class="insert">1</span></sub><span class="insert"> ∧ ... ∧ A</span><sub><span class="insert">l</span></sub><span class="insert"> ⇒ C</span></span><span class="insert">.  </span></li>
+<li><span class="insert">A constraint of the form </span><span class="conditional"><span class="insert">IF</span></span> <span class="name"><span class="insert">A</span><sub><span class="insert">1</span></sub><span class="insert"> ∧ ... ∧ A</span><sub><span class="insert">l</span></sub></span> <span class="conditional"><span class="insert">THEN INVALID</span></span><span class="insert"> can be viewed as a formula
+  </span><span class="math"><span class="insert">∀ x</span><sub><span class="insert">1</span></sub><span class="insert">...x</span><sub><span class="insert">n</span></sub><span class="insert">. A</span><sub><span class="insert">1</span></sub><span class="insert"> ∧ ... ∧ A</span><sub><span class="insert">l</span></sub><span class="insert"> ⇒ False</span></span><span class="insert">.  </span></li>
+  </ul>
+
+
+ <h4 id="satisfying-definitions--inferences--and-constraints"><span class="insert">Satisfying definitions, inferences, and constraints</span></h4>
+  <p><span class="insert">
+  In logic, a formula's meaning is defined by saying when it is
+  </span><em><span class="insert">satisfied</span></em><span class="insert">.  We can view
+  definitions, inferences, and constraints as being satisfied or not
+  satisfied in a PROV instance, augmented with information about the constraints.
+  </span></p>
+  <ol>
+    <li><span class="insert">A logical equivalence as used in a definition is satisfied
+  when the formula </span><span class="math"><span class="insert">∀
+  x</span><sub><span class="insert">1</span></sub><span class="insert">,....,x</span><sub><span class="insert">n</span></sub><span class="insert">. A ⇔ ∃
+  y</span><sub><span class="insert">1</span></sub><span class="insert">...y</span><sub><span class="insert">m</span></sub><span class="insert"> . B</span><sub><span class="insert">1</span></sub><span class="insert"> ∧ ... ∧
+  B</span><sub><span class="insert">k</span></sub></span><span class="insert"> holds, that is, for any substitution of the
+  variables </span><span class="math"><span class="insert">x</span><sub><span class="insert">1</span></sub><span class="insert">,....,x</span><sub><span class="insert">n</span></sub></span><span class="insert">, formula </span><span class="math"><span class="insert">A</span></span><span class="insert"> and
+  formula </span><span class="math"><span class="insert">∃
+  y</span><sub><span class="insert">1</span></sub><span class="insert">...y</span><sub><span class="insert">m</span></sub><span class="insert">. B</span><sub><span class="insert">1</span></sub><span class="insert"> ∧ ... ∧
+  B</span><sub><span class="insert">k</span></sub></span><span class="insert"> are either both true or both false.
+    </span></li>
+  <li><span class="insert">A logical implication as used in an inference is
+   satisfied with the formula  </span><span class="math"><span class="insert">∀
+  x</span><sub><span class="insert">1</span></sub><span class="insert">,....,x</span><sub><span class="insert">n</span></sub><span class="insert">.  A</span><sub><span class="insert">1</span></sub><span class="insert"> ∧ ... ∧
+  A</span><sub><span class="insert">l</span></sub><span class="insert"> ⇒ ∃ y</span><sub><span class="insert">1</span></sub><span class="insert">...y</span><sub><span class="insert">m</span></sub><span class="insert"> . B</span><sub><span class="insert">1</span></sub><span class="insert"> ∧
+  ... ∧ B</span><sub><span class="insert">k</span></sub></span><span class="insert"> holds, that is, for any substitution of
+  the variables </span><span class="math"><span class="insert">x</span><sub><span class="insert">1</span></sub><span class="insert">,....,x</span><sub><span class="insert">n</span></sub></span><span class="insert">, if  </span><span class="math"><span class="insert">A</span><sub><span class="insert">1</span></sub><span class="insert"> ∧ ... ∧
+  A</span><sub><span class="insert">l</span></sub></span><span class="insert"> is true, then 
+ for some further substitution of terms for variables </span><span class="math"><span class="insert">
+  y</span><sub><span class="insert">1</span></sub><span class="insert">...y</span><sub><span class="insert">m</span></sub></span><span class="insert">, formula </span><span class="math"><span class="insert">B</span><sub><span class="insert">1</span></sub><span class="insert"> ∧ ... ∧
+  B</span><sub><span class="insert">k</span></sub></span><span class="insert"> is also true.</span></li>
+  <li><span class="insert">A uniqueness, ordering, or typing constraint is satisfied when
+  its associated formula </span><span class="math"><span class="insert">∀ x</span><sub><span class="insert">1</span></sub><span class="insert">...x</span><sub><span class="insert">n</span></sub><span class="insert">. A</span><sub><span class="insert">1</span></sub><span class="insert"> ∧ ... ∧ A</span><sub><span class="insert">l</span></sub><span class="insert"> ⇒ C</span></span><span class="insert"> holds, that is, for any substitution of
+  the variables </span><span class="math"><span class="insert">x</span><sub><span class="insert">1</span></sub><span class="insert">,....,x</span><sub><span class="insert">n</span></sub></span><span class="insert">, if  </span><span class="math"><span class="insert">A</span><sub><span class="insert">1</span></sub><span class="insert"> ∧ ... ∧
+  A</span><sub><span class="insert">l</span></sub></span><span class="insert"> is true, then </span><span class="math"><span class="insert">C</span></span><span class="insert"> is
+  also true.</span></li>
+  <li><span class="insert">An impossibility constraint is satisfied when the formula
+  </span><span class="math"><span class="insert">∀ x</span><sub><span class="insert">1</span></sub><span class="insert">...x</span><sub><span class="insert">n</span></sub><span class="insert">. A</span><sub><span class="insert">1</span></sub><span class="insert"> ∧ ... ∧ A</span><sub><span class="insert">l</span></sub><span class="insert"> ⇒
+  False</span></span><span class="insert"> holds.  This is logically equivalent to </span><span class="math"><span class="insert">∄
+  x</span><sub><span class="insert">1</span></sub><span class="insert">...x</span><sub><span class="insert">n</span></sub><span class="insert">. A</span><sub><span class="insert">1</span></sub><span class="insert"> ∧ ... ∧ A</span><sub><span class="insert">l</span></sub></span><span class="insert">, that is, there exists no
+  substitution for </span><span class="math"><span class="insert">x</span><sub><span class="insert">1</span></sub><span class="insert">...x</span><sub><span class="insert">n</span></sub></span><span class="insert"> making </span><span class="math"><span class="insert">A</span><sub><span class="insert">1</span></sub><span class="insert"> ∧ ... ∧ A</span><sub><span class="insert">l</span></sub></span><span class="insert"> true.
+</span></li></ol>  
+
+<h4 id="merging"><span class="insert">Merging</span></h4>
+
+  <p><em><span class="insert">Merging</span></em><span class="insert"> is an operation that takes two terms and compares them to
+  see if they are equal, or can be made equal by substituting an
+  existential variable with another term.  This operation is a special
+  case of </span><em><span class="insert">unification</span></em><span class="insert">, a common operation in logical
+  reasoning, including logic programming and automated reasoning.
+Merging two terms </span><span class="math"><span class="insert">t,t'</span></span><span class="insert"> results in either substitution </span><span class="math"><span class="insert">S</span></span><span class="insert">
+  such that </span><span class="math"><span class="insert">S(t) = S(t')</span></span><span class="insert">, or failure indicating that there is no
+  substitution that can be applied to both </span><span class="math"><span class="insert">t</span></span><span class="insert"> and </span><span class="math"><span class="insert">t'</span></span><span class="insert"> to make
+  them equal.
+</span></p>
+
+  
+
+ <h4 id="applying-definitions--inferences--and-constraints"><span class="insert">Applying definitions, inferences, and constraints</span></h4>
+<p><span class="insert">Formulas can also be interpreted as having computational
+  content.  That is, if an instance does not satisfy a formula, we can
+  often </span><em><span class="insert">apply</span></em><span class="insert"> the formula to the instance to produce another
+  instance that does satisfy the formula.  Definitions, inferences,
+  and uniqueness constraints can be applied to instances:
+</span></p>
+  <ul>
+  <li><span class="insert">
+  A definition of the form </span><span class="math"><span class="insert">∀
+  x</span><sub><span class="insert">1</span></sub><span class="insert">,....,x</span><sub><span class="insert">n</span></sub><span class="insert">. A ⇔ ∃
+  y</span><sub><span class="insert">1</span></sub><span class="insert">...y</span><sub><span class="insert">m</span></sub><span class="insert"> . B</span><sub><span class="insert">1</span></sub><span class="insert"> ∧ ... ∧
+  B</span><sub><span class="insert">k</span></sub></span><span class="insert">
+  can be applied by searching for any occurrences of </span><span class="math"><span class="insert">A</span></span><span class="insert"> in the instance  and adding </span><span class="math"><span class="insert"> B</span><sub><span class="insert">1</span></sub><span class="insert">, ..., B</span><sub><span class="insert">k</span></sub></span><span class="insert">, generating fresh existential
+  variables </span><span class="math"><span class="insert">y</span><sub><span class="insert">1</span></sub><span class="insert">,...,y</span><sub><span class="insert">m</span></sub></span><span class="insert">, and conversely, whenever there is an
+    occurrence of </span><span class="math"><span class="insert"> B</span><sub><span class="insert">1</span></sub><span class="insert">, ..., B</span><sub><span class="insert">k</span></sub></span><span class="insert">, adding
+    </span><span class="math"><span class="insert">A</span></span><span class="insert">.
+    In our setting, the defined formulas </span><span class="math"><span class="insert">A</span></span><span class="insert"> are never used in other
+    formulas, so it is sufficient to replace all occurrences of
+    </span><span class="math"><span class="insert">A</span></span><span class="insert"> with their definitions.  The formula </span><span class="math"><span class="insert">A</span></span><span class="insert"> is then redundant, and can be
+  removed from the instance.
+</span></li>
+<li><span class="insert">An inference of the form </span><span class="math"><span class="insert">∀
+  x</span><sub><span class="insert">1</span></sub><span class="insert">,....,x</span><sub><span class="insert">n</span></sub><span class="insert">.  A</span><sub><span class="insert">1</span></sub><span class="insert"> ∧ ... ∧
+  A</span><sub><span class="insert">p</span></sub><span class="insert"> ⇒ ∃ y</span><sub><span class="insert">1</span></sub><span class="insert">...y</span><sub><span class="insert">m</span></sub><span class="insert"> . B</span><sub><span class="insert">1</span></sub><span class="insert"> ∧
+  ... ∧ B</span><sub><span class="insert">k</span></sub></span><span class="insert"> can be applied by searching for  any occurrences of </span><span class="math"><span class="insert"> A</span><sub><span class="insert">1</span></sub><span class="insert"> ∧ ... ∧
+  A</span><sub><span class="insert">p</span></sub></span><span class="insert"> in the instance and, for each such match,
+for which the entire conclusion does not already hold (for some </span><span class="math"><span class="insert">y</span><sub><span class="insert">1</span></sub><span class="insert">,...,y</span><sub><span class="insert">m</span></sub></span><span class="insert">),
+adding </span><span class="math"><span class="insert">B</span><sub><span class="insert">1</span></sub><span class="insert"> ∧
+  ... ∧ B</span><sub><span class="insert">k</span></sub></span><span class="insert"> to the instance, generating fresh existential
+  variables </span><span class="math"><span class="insert">y</span><sub><span class="insert">1</span></sub><span class="insert">,...,y</span><sub><span class="insert">m</span></sub></span><span class="insert">.
+</span></li>
+<li><span class="insert">A uniqueness  constraint of the form </span><span class="math"><span class="insert">∀
+x</span><sub><span class="insert">1</span></sub><span class="insert">...x</span><sub><span class="insert">n</span></sub><span class="insert">. A</span><sub><span class="insert">1</span></sub><span class="insert"> ∧ ... ∧ A</span><sub><span class="insert">p</span></sub><span class="insert"> ⇒ t
+= t'</span></span><span class="insert"> can be
+  applied by searching for an occurrence </span><span class="math"><span class="insert">A</span><sub><span class="insert">1</span></sub><span class="insert"> ∧ ... ∧ A</span><sub><span class="insert">p</span></sub></span><span class="insert"> in the instance, and
+  if one is found, merging the terms </span><span class="math"><span class="insert">t</span></span><span class="insert"> and
+</span><span class="math"><span class="insert">t'</span></span><span class="insert">. If successful, the resulting
+substitution is applied to the instance; otherwise, the application
+of the uniqueness constraint fails.  </span></li>
+<li><span class="insert">A key constraint can similarly be applied by searching for
+different occurrences of a statement with the same identifier, merging the
+corresponding parameters of the statements, and concatenating their
+attribute lists.  The substitutions obtained by merging are applied to
+the instance.
+</span></li>
+  </ul>
+  
+ <p><span class="insert">As noted above, uniqueness or key constraint
+  application can </span><em><span class="insert">fail</span></em><span class="insert">, if a required merging step fails.  Failure of constraint
+  application means that there is no way to add information to the
+  instance to satisfy the constraint, which in turn implies that the
+  instance is </span><em><span class="insert">invalid</span></em><span class="insert">.
+  </span></p>
+  <p><span class="insert">
+  The process of applying definitions, inferences, and constraints
+  to a PROV instance until all of them are satisfied is similar to
+  what is sometimes 
+  called </span><em><span class="insert">chasing</span></em><span class="insert"> [</span><cite><a class="bibref" rel="biblioentry" href="#bib-DBCONSTRAINTS"><span class="insert">DBCONSTRAINTS</span></a></cite><span class="insert">] or </span><em><span class="insert">saturation</span></em><span class="insert">
+  [</span><cite><a class="bibref" rel="biblioentry" href="#bib-CHR"><span class="insert">CHR</span></a></cite><span class="insert">].  We call this process </span><em><span class="insert">normalization</span></em><span class="insert">.
+  </span></p>
+
+ 
+ <h4 id="termination-1"><span class="insert">Termination</span></h4>
+  <p><span class="insert">
+ In general, applying sets of logical formulas of the above
+  definition, inference, and constraint forms is not guaranteed to
+  terminate.  A simple example is the inference </span><span class="math"><span class="insert">R(x,y) ⇒ ∃z. R(x,z)
+  ∧R(z,y)</span></span><span class="insert">, which can be applied to </span><span class="math"><span class="insert">{R(a,b)}</span></span><span class="insert"> to generate an
+  infinite sequence of larger and larger instances.  To ensure that
+  normalization, validity, and equivalence are decidable, we require
+  that normalization terminates.  There is a great deal of work on termination of the chase in
+  databases, or of sets of constraint handling rules.  The termination
+  of the notion of normalization defined in this specification is
+  guaranteed because the definitions, inferences and uniqueness/key
+  constraints correspond to a </span><em><span class="insert">weakly acyclic</span></em><span class="insert"> set of
+  tuple-generating and equality-generating dependencies, in the
+  terminology of [</span><cite><a class="bibref" rel="biblioentry" href="#bib-DBCONSTRAINTS"><span class="insert">DBCONSTRAINTS</span></a></cite><span class="insert">].  The termination of the remaining
+  ordering, typing, and impossibility constraints is easy to show.  </span><a href="#termination"><span class="insert">Appendix
+  C</span></a><span class="insert"> gives a proof that the definitions, inferences, and uniqueness
+  and key constraints are weakly acyclic and therefore terminating.
+  </span></p>
+  <p><span class="insert">
+  There is an important subtlety that is essential to guarantee
+  termination.  This specification draws a distinction between knowing
+  that an identifier has type </span><span class="name"><span class="insert">'entity'</span></span><span class="insert">, </span><span class="name"><span class="insert">'activity'</span></span><span class="insert">, or </span><span class="name"><span class="insert">'agent'</span></span><span class="insert">, and having
+  an explicit </span><span class="name"><span class="insert">entity(id)</span></span><span class="insert">, </span><span class="name"><span class="insert">activity(id)</span></span><span class="insert">, or </span><span class="name"><span class="insert">agent(id)</span></span><span class="insert"> statement in the instance.
+  For example, focusing on entity statements, we can infer </span><span class="name"><span class="insert">'entity' ∈ typeOf(id)</span></span><span class="insert"> if  </span><span class="name"><span class="insert">entity(id)</span></span><span class="insert"> holds in the instance.  In contrast, if we only know
+  that </span><span class="name"><span class="insert">'entity' ∈ typeOf(id)</span></span><span class="insert">, this does not imply that </span><span class="name"><span class="insert">entity(id)</span></span><span class="insert">
+  holds.
+  </span></p>
+  <p><span class="insert">
+  This distinction (for both entities and activities) is essential to
+  ensure termination of the inferences, because we allow inferring
+  that a declared </span><span class="name"><span class="insert">entity(id,attrs)</span></span><span class="insert"> has a generation
+  and invalidation event, using
+  </span><a class="rule-text" href="#entity-generation-invalidation-inference_text"><span><span class="insert">Inference 7 (entity-generation-invalidation-inference)</span></span></a><span class="insert">.
+  Likewise, for activities, we allow inferring that a declared </span><span class="name"><span class="insert">activity(id,t1,t2,attrs)</span></span><span class="insert"> has a generation
+  and invalidation event, using
+  </span><a class="rule-text" href="#activity-start-end-inference_text"><span><span class="insert">Inference 8 (activity-start-end-inference)</span></span></a><span class="insert">.  These
+  inferences do not apply to identifiers whose types are known, but for
+  which there is not an explicit entity or activity statement.
+If we strengthened the type
+  inference constraints to add new entity or activity statements for
+  the entities and activities involved in generating or starting other
+  declared entities or activities, then we could keep generating new entities and
+  activities in an unbounded chain into the past (as in the "chicken
+  and egg" paradox).  The
+  design adopted here requires that instances explicitly declare the
+  entities and activities that are relevant for validity checking, and only
+  these can be inferred to have invalidation/generation and start/end events.  This inference
+  is not supported for identifiers
+that are indirectly referenced in other relations and therefore have
+  type </span><span class="name"><span class="insert">'entity'</span></span><span class="insert"> or </span><span class="name"><span class="insert">'activity'</span></span><span class="insert">.  
+  </span></p>
+
 
 <div style="text-align: center;">
 <span class="figure">
@@ -904,272 +1877,391 @@
 </span> 
 </div>
 
-<div class="note"><span class="insert">
-  James to add prose
-  </span></div>
-
-
+
+ <h4 id="checking-ordering--typing--and-impossibility-constraints"><span class="insert">Checking ordering, typing, and impossibility constraints</span></h4>
+  <p><span class="insert">
+  The ordering, typing, and impossibility constraints are checked
+  rather than applied.  This means that they do not generate new
+  formulas expressible in PROV, but they do generate basic constraints
+  that might or might not be consistent with each other.  Checking
+  such constraints follows a saturation strategy similar to that for normalization:
+  </span></p>
+  <ol>
+  <li><p><span class="insert">
+    For ordering constraints, we check by generating all of the
+  precedes and strictly-precedes relationships specified by the rules.  These can be thought
+  of as a directed graph whose nodes are terms, and whose edges are
+  precedes or strictly-precedes relationships.  
+    An ordering constraint  of the form </span><span class="math"><span class="insert">∀
+x</span><sub><span class="insert">1</span></sub><span class="insert">...x</span><sub><span class="insert">n</span></sub><span class="insert">. A</span><sub><span class="insert">1</span></sub><span class="insert"> ∧ ... ∧ A</span><sub><span class="insert">p</span></sub><span class="insert"> ⇒
+precedes(t,t')</span></span><span class="insert"> can be applied by searching for occurrences of
+</span><span class="math"><span class="insert"> A</span><sub><span class="insert">1</span></sub><span class="insert"> ∧ ... ∧ A</span><sub><span class="insert">p</span></sub></span><span class="insert"> and for each such match
+adding the atomic formula </span><span class="math"><span class="insert">precedes(t,t')</span></span><span class="insert"> to
+  the instance, and similarly for strictly-precedes constraints.  After all such constraints have been checked, and the
+  resulting edges added to the graph, the ordering constraints are
+  violated if there is a cycle in the graph that includes a
+  strictly-precedes edge, and satisfied otherwise.
+    </span></p>
+</li>
+<li><p><span class="insert">For typing constraints, we check by constructing a function
+  </span><span class="math"><span class="insert">typeOf(id)</span></span><span class="insert"> mapping identifiers to sets of possible types.  We
+  start with a function mapping each identifier to the empty set,
+  reflecting no constraints on the identifiers' types.  A typing
+  constraint of the form </span><span class="math"><span class="insert">∀
+x</span><sub><span class="insert">1</span></sub><span class="insert">...x</span><sub><span class="insert">n</span></sub><span class="insert">. A</span><sub><span class="insert">1</span></sub><span class="insert"> ∧ ... ∧ A</span><sub><span class="insert">p</span></sub><span class="insert"> ⇒ 'type' ∈ typeOf(id)
+</span></span><span class="insert"> is checked  by adjusting the
+  function by adding </span><span class="name"><span class="insert">'type'</span></span><span class="insert"> to </span><span class="math"><span class="insert">typeOf(id)</span></span><span class="insert"> for each conclusion
+  </span><span class="name"><span class="insert">'type' ∈ typeOf(id)</span></span><span class="insert"> of the rule.  Typing constraints with
+  multiple conclusions are handled analogously.  Once all constraints
+  have been checked in all possible ways, we check that the
+  disjointness constraints hold of the resulting </span><span class="math"><span class="insert">typeOf</span></span><span class="insert"> function.
+  (These are essentially impossibility constraints).
+</span></p>
+  </li>
+  <li><p><span class="insert">For impossibility constraints, we check by searching for the
+  forbidden pattern that the impossibility constraint describes. Any
+  match of this pattern leads to failure of the constraint checking process.
+An impossibility constraint of the form </span><span class="math"><span class="insert">∀
+x</span><sub><span class="insert">1</span></sub><span class="insert">...x</span><sub><span class="insert">n</span></sub><span class="insert">. A</span><sub><span class="insert">1</span></sub><span class="insert"> ∧ ... ∧ A</span><sub><span class="insert">p</span></sub><span class="insert"> ⇒
+False</span></span><span class="insert"> can be applied by  searching for occurrences of
+</span><span class="math"><span class="insert">A</span><sub><span class="insert">1</span></sub><span class="insert"> ∧ ... ∧ A</span><sub><span class="insert">p</span></sub></span><span class="insert"> in the instance, and if any
+such occurrence is found, signaling failure.</span></p>
+  </li>
+  </ol>
+  <p><span class="insert">
+  A normalized instance that satisfies all of the checked constraints
+  is called </span><a href="#dfn-valid" class="internalDFN"><span class="insert">valid</span></a><span class="insert">.  Validity can be, but is not required to be,
+  checked by normalizing and then checking constraints.  Any other
+  algorithm that provides equivalent behavior (that is, accepts the
+  same valid instances and rejects the same invalid instances) is allowed.
+  In particular, the checked constraints and the
+  applied definitions, inferences and uniqueness constraints do not
+  interfere with one another, so it is also possible to mix checking
+  and application.  This may be desirable in order to detect
+  invalidity more quickly.
+  </span></p>
+
+
+
+ <h4 id="equivalence-and-isomorphism"><span class="insert">Equivalence and Isomorphism</span></h4>
+  <p><span class="insert"> Given two normal forms, a natural question is whether they contain
+  the same information, that is, whether they are equivalent (if so,
+  then the original instances are also equivalent.)  By analogy with
+  logic, if we consider normalized PROV instances with existential
+  variables to represent sets of possible situations, then two normal
+  forms may describe the same situation but differ in inessential
+  details such as the order of statements or of elements of
+  attribute-value lists.  To remedy this, we can easily consider
+  instances to be equivalent up to reordering of attributes.  However,
+  instances can also be equivalent if they differ only in choice of
+  names of existential variables. Because of this, the appropriate
+  notion of equivalence of normal forms is </span><em><span class="insert">isomorphism</span></em><span class="insert">.  Two
+  instances </span><span class="math"><span class="insert">I</span><sub><span class="insert">1</span></sub></span><span class="insert"> and </span><span class="math"><span class="insert">I</span><sub><span class="insert">2</span></sub></span><span class="insert"> are </span><em><span class="insert">isomorphic</span></em><span class="insert"> if there is an invertible
+  substitution </span><span class="math"><span class="insert">S</span></span><span class="insert"> mapping existential variables to existential variables such that </span><span class="math"><span class="insert">S(I</span><sub><span class="insert">1</span></sub><span class="insert">) = I</span><sub><span class="insert">2</span></sub></span><span class="insert">.
+  This is similar to the notion of equivalence used in [</span><cite><a class="bibref" rel="biblioentry" href="#bib-RDF"><span class="insert">RDF</span></a></cite><span class="insert">], where
+  blank nodes play an analogous role to existential variables.  </span></p>
+ 
+<p><span class="insert">Equivalence can be checked by normalizing instances, checking that
+  both instances are valid, then
+  testing whether the two normal forms are isomorphic.  (It is
+  technically possible for two invalid normal forms to be isomorphic,
+  but to be considered equivalent, the two instances must also be
+  valid.)
+As with validity, the algorithm suggested by this specification is
+  just one of many possible ways to implement equivalence checking; it
+  is not required that implementations compute normal forms
+  explicitly, only that their determinations of equivalence match
+  those obtained by the algorithm in this specification.
+  </span></p>
+
+<h4 id="from-instances-to-bundles-and-documents"><span class="insert">From Instances to Bundles and Documents</span></h4>
+
+<p><span class="insert">PROV documents can contain multiple instances: a </span><a><span class="insert">toplevel
+instance</span></a><span class="insert"> consisting of the set of statements not appearing within a bundle, and
+zero or more named instances called </span><a><span class="insert">bundle</span></a><span class="insert">s.  For the purpose
+of inference and constraint checking, these instances are treated independently. That is,
+a PROV document is valid provided that each instance in it is valid
+and the names of its bundles are distinct.  Similarly, a PROV document is
+equivalent to another if their toplevel instances are equivalent, they
+have the same number of bundles with the same names, and the instances
+of their corresponding bundles are equivalent.  Analogously to blank nodes in
+[</span><cite><a class="bibref" rel="biblioentry" href="#bib-RDF"><span class="insert">RDF</span></a></cite><span class="insert">], the scope of an existential variable in PROV is the instance
+level, so existential variables with the same name occurring in
+different instances do not necessarily denote the same term.  This
+is a consequence of the fact that the instances of two equivalent
+documents only need to be  pairwise isomorphic; this is a weaker
+property than requiring that there be a single isomorphism that works
+for all of the corresponding instances.
+</span></p>
 </div>
 
-<div id="summary-of-constraints-and-inferences" class="section">
-<h3><span class="secno"><span class="insert">2.4</span> </span>Summary of constraints and inferences</h3>
-
-<p><a href="">Table <span class="delete">5</span><span class="insert">1</span></a> summarizes the definitions, inferences, and
-constraints of this document.
-</p>
-
-<div class="note">Table: work in progress; these entries might change when the document is updated.</div>
+<div id="summary-of-inferences-and-constraints" class="section">
+<h3><span class="secno"><span class="insert">2.5 </span></span><span class="insert">Summary of inferences and constraints</span></h3>
+
+<p><a href=""><span class="insert">Table 2</span></a><span class="insert"> summarizes the inferences, and
+constraints specified in this document, broken down by component and
+type or relation involved.
+</span></p>
+
+<div class="note"><span class="insert">Table: work in progress; these entries might change when the document is updated.</span></div>
 
 <div id="prov-constraints-fig" style="text-align: left;">
 <table class="thinborder" style="margin-left: auto; margin-right: auto; border-color: #0;">
-<caption id="prov-constraints">Table <span class="delete">5:</span><span class="insert">1:</span> Summary of definitions, constraints, and inferences for PROV Types and Relations</caption>
-<tbody><tr><td><a><b>Type or Relation Name</b></a></td><td><b><span class="delete">Definitions, Constraints, </span>
-  Inferences<span class="insert"> and Constraints</span></b></td><td><b>Component</b></td></tr>
+<caption id="prov-constraints"><span class="insert">Table 2: Summary of inferences and constraints for PROV Types and Relations</span></caption>
+<tbody><tr><td><a><b><span class="insert">Type or Relation Name</span></b></a></td><td><b><span class="insert">
+  Inferences and Constraints</span></b></td><td><b><span class="insert">Component</span></b></td></tr>
 <tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td></tr>
 
+
 <tr class="component1-color">
-	<td class="essential"><a>Entity</a></td>
-	<td><a class="rule-text" href="#entity-generation-invalidation-inference_text"><span>Inference 7 (entity-generation-invalidation-inference)</span></a><br>
-		<a class="rule-text" href="#specialization-attributes-inference_text"><span>Inference 23 <span class="delete">(specialization-attributes)</span><span class="insert">(specialization-attributes-inference)</span></span></a><br>
-		<a class="rule-text" href="#key-object_text"><span>Constraint 25 (key-object)</span></a><br>
-		<a class="rule-text" href="#impossible-object-property-overlap_text"><span>Constraint <span class="delete">53</span><span class="insert">52</span> (impossible-object-property-overlap)</span></a><br>
-		<a class="rule-text" href="#entity-activity-disjoint_text"><span>Constraint <span class="delete">55</span><span class="insert">54</span> (entity-activity-disjoint)</span></a><br>
+	<td class="essential"><a><span class="insert">Entity</span></a></td>
+	<td><a class="rule-text" href="#entity-generation-invalidation-inference_text"><span><span class="insert">Inference 7 (entity-generation-invalidation-inference)</span></span></a><br>
+		<a class="rule-text" href="#specialization-attributes-inference_text"><span><span class="insert">Inference 21 (specialization-attributes-inference)</span></span></a><br>
+		<a class="rule-text" href="#key-object_text"><span><span class="insert">Constraint 23 (key-object)</span></span></a><br>
+		<a class="rule-text" href="#impossible-object-property-overlap_text"><span><span class="insert">Constraint 56 (impossible-object-property-overlap)</span></span></a><br>
+		<a class="rule-text" href="#entity-activity-disjoint_text"><span><span class="insert">Constraint 57 (entity-activity-disjoint)</span></span></a><br>
 	</td>
-	<td rowspan="8"><a href="http://www.w3.org/TR/prov-dm/#component1">Component 1: Entities/Activities</a></td>
+	<td rowspan="8" style="text-align: center; "><a href="http://www.w3.org/TR/prov-dm/#component1" title="Component 1: Entities/Activities"><span class="insert">1</span></a></td>
 </tr>
 <tr class="component1-color">
-	<td class="essential"><a>Activity</a></td>
-	<td><a class="rule-text" href="#activity-start-end-inference_text"><span>Inference 8 (activity-start-end-inference)</span></a><br>
-		<a class="rule-text" href="#key-object_text"><span>Constraint 25 (key-object)</span></a><br>
-		<a class="rule-text" href="#unique-startTime_text"><span>Constraint 31 (unique-startTime)</span></a><br>
-		<a class="rule-text" href="#unique-endTime_text"><span>Constraint 32 (unique-endTime)</span></a><br>
-		<a class="rule-text" href="#impossible-object-property-overlap_text"><span>Constraint <span class="delete">53</span><span class="insert">52</span> (impossible-object-property-overlap)</span></a><br>
-		<a class="rule-text" href="#entity-activity-disjoint_text"><span>Constraint <span class="delete">55</span><span class="insert">54</span> (entity-activity-disjoint)</span></a><br>
-	</td>
-</tr>
-<tr class="component1-color">
-	<td class="essential"><a>Generation</a></td>
-	<td><a class="rule-text" href="#generation-use-communication-inference_text"><span>Inference 6 (generation-use-communication-inference)</span></a><br>
-		<a class="rule-text" href="#derivation-use-inference_text"><span>Inference 12 <span class="delete">(derivation-use)</span><span class="insert">(derivation-use-inference)</span></span></a><br>
-		<a class="rule-text" href="#influence-inference_text"><span>Inference 17 (influence-inference)</span></a><br>
-		<a class="rule-text" href="#key-properties_text"><span>Constraint 26 (key-properties)</span></a><br>
-		<a class="rule-text" href="#unique-generation_text"><span>Constraint 27 (unique-generation)</span></a><br>
-		<a class="rule-text" href="#generation-within-activity_text"><span>Constraint 36 (generation-within-activity)</span></a><br>
-		<a class="rule-text" href="#generation-precedes-invalidation_text"><span>Constraint 38 (generation-precedes-invalidation)</span></a><br>
-		<a class="rule-text" href="#generation-precedes-usage_text"><span>Constraint 39 (generation-precedes-usage)</span></a><br>
-		<a class="rule-text" href="#derivation-usage-generation-ordering_text"><span>Constraint 41 (derivation-usage-generation-ordering)</span></a><br>
-		<a class="rule-text" href="#derivation-generation-generation-ordering_text"><span>Constraint 42 (derivation-generation-generation-ordering)</span></a><br>
-		<a class="rule-text" href="#wasStartedBy-ordering_text"><span>Constraint 43 (wasStartedBy-ordering)</span></a><br>
-		<a class="rule-text" href="#wasEndedBy-ordering_text"><span>Constraint 44 (wasEndedBy-ordering)</span></a><br>
-		<a class="rule-text" href="#specialization-generation-ordering_text"><span>Constraint 45 <span class="delete">(specialization-generation)</span><span class="insert">(specialization-generation-ordering)</span></span></a><br>
-		<a class="rule-text" href="#wasAssociatedWith-ordering_text"><span>Constraint 47 (wasAssociatedWith-ordering)</span></a><br>
-		<a class="rule-text" href="#wasAttributedTo-ordering_text"><span>Constraint 48 (wasAttributedTo-ordering)</span></a><br>
-		<a class="rule-text" href="#actedOnBehalfOf-ordering_text"><span>Constraint 49 (actedOnBehalfOf-ordering)</span></a><br>
-		<a class="rule-text" href="#impossible-property-overlap_text"><span>Constraint <span class="delete">52</span><span class="insert">51</span> (impossible-property-overlap)</span></a><br>
-		<a class="rule-text" href="#typing_text"><span>Constraint <span class="delete">54</span><span class="insert">53</span> (typing)</span></a><br>
+	<td class="essential"><a><span class="insert">Activity</span></a></td>
+	<td><a class="rule-text" href="#activity-start-end-inference_text"><span><span class="insert">Inference 8 (activity-start-end-inference)</span></span></a><br>
+		<a class="rule-text" href="#key-object_text"><span><span class="insert">Constraint 23 (key-object)</span></span></a><br>
+		<a class="rule-text" href="#unique-startTime_text"><span><span class="insert">Constraint 29 (unique-startTime)</span></span></a><br>
+		<a class="rule-text" href="#unique-endTime_text"><span><span class="insert">Constraint 30 (unique-endTime)</span></span></a><br>
+		<a class="rule-text" href="#impossible-object-property-overlap_text"><span><span class="insert">Constraint 56 (impossible-object-property-overlap)</span></span></a><br>
+		<a class="rule-text" href="#entity-activity-disjoint_text"><span><span class="insert">Constraint 57 (entity-activity-disjoint)</span></span></a><br>
 	</td>
 </tr>
 <tr class="component1-color">
-	<td class="essential"><a>Usage</a></td>
-	<td><a class="rule-text" href="#generation-use-communication-inference_text"><span>Inference 6 (generation-use-communication-inference)</span></a><br>
-		<a class="rule-text" href="#influence-inference_text"><span>Inference 17 (influence-inference)</span></a><br>
-		<a class="rule-text" href="#key-properties_text"><span>Constraint 26 (key-properties)</span></a><br>
-		<a class="rule-text" href="#usage-within-activity_text"><span>Constraint 35 (usage-within-activity)</span></a><br>
-		<a class="rule-text" href="#generation-precedes-usage_text"><span>Constraint 39 (generation-precedes-usage)</span></a><br>
-		<a class="rule-text" href="#usage-precedes-invalidation_text"><span>Constraint 40 (usage-precedes-invalidation)</span></a><br>
-		<a class="rule-text" href="#derivation-usage-generation-ordering_text"><span>Constraint 41 (derivation-usage-generation-ordering)</span></a><br>
-		<a class="rule-text" href="#impossible-property-overlap_text"><span>Constraint <span class="delete">52</span><span class="insert">51</span> (impossible-property-overlap)</span></a><br>
-		<a class="rule-text" href="#typing_text"><span>Constraint <span class="delete">54</span><span class="insert">53</span> (typing)</span></a><br>
-	</td>
-</tr>
-<tr class="component1-color">
-	<td class="essential"><a>Communication</a></td>
-	<td><a class="rule-text" href="#communication-generation-use-inference_text"><span>Inference 5 (communication-generation-use-inference)</span></a><br>
-		<a class="rule-text" href="#influence-inference_text"><span>Inference 17 (influence-inference)</span></a><br>
-		<a class="rule-text" href="#key-properties_text"><span>Constraint 26 (key-properties)</span></a><br>
-		<a class="rule-text" href="#wasInformedBy-ordering_text"><span>Constraint 37 (wasInformedBy-ordering)</span></a><br>
-		<a class="rule-text" href="#impossible-property-overlap_text"><span>Constraint <span class="delete">52</span><span class="insert">51</span> (impossible-property-overlap)</span></a><br>
-		<a class="rule-text" href="#typing_text"><span>Constraint <span class="delete">54</span><span class="insert">53</span> (typing)</span></a><br>
+	<td class="essential"><a><span class="insert">Generation</span></a></td>
+	<td><a class="rule-text" href="#generation-use-communication-inference_text"><span><span class="insert">Inference 6 (generation-use-communication-inference)</span></span></a><br>
+
+		<a class="rule-text" href="#influence-inference_text"><span><span class="insert">Inference 15 (influence-inference)</span></span></a><br>
+		<a class="rule-text" href="#key-properties_text"><span><span class="insert">Constraint 24 (key-properties)</span></span></a><br>
+		<a class="rule-text" href="#unique-generation_text"><span><span class="insert">Constraint 25 (unique-generation)</span></span></a><br>
+		<a class="rule-text" href="#generation-within-activity_text"><span><span class="insert">Constraint 36 (generation-within-activity)</span></span></a><br>
+		<a class="rule-text" href="#generation-precedes-invalidation_text"><span><span class="insert">Constraint 38 (generation-precedes-invalidation)</span></span></a><br>
+		<a class="rule-text" href="#generation-precedes-usage_text"><span><span class="insert">Constraint 39 (generation-precedes-usage)</span></span></a><br>
+		<a class="rule-text" href="#generation-generation-ordering_text"><span><span class="insert">Constraint 41 (generation-generation-ordering)</span></span></a><br>
+		<a class="rule-text" href="#derivation-usage-generation-ordering_text"><span><span class="insert">Constraint 43 (derivation-usage-generation-ordering)</span></span></a><br>
+		<a class="rule-text" href="#derivation-generation-generation-ordering_text"><span><span class="insert">Constraint 44 (derivation-generation-generation-ordering)</span></span></a><br>
+		<a class="rule-text" href="#wasStartedBy-ordering_text"><span><span class="insert">Constraint 45 (wasStartedBy-ordering)</span></span></a><br>
+		<a class="rule-text" href="#wasEndedBy-ordering_text"><span><span class="insert">Constraint 46 (wasEndedBy-ordering)</span></span></a><br>
+		<a class="rule-text" href="#specialization-generation-ordering_text"><span><span class="insert">Constraint 47 (specialization-generation-ordering)</span></span></a><br>
+		<a class="rule-text" href="#wasAssociatedWith-ordering_text"><span><span class="insert">Constraint 49 (wasAssociatedWith-ordering)</span></span></a><br>
+		<a class="rule-text" href="#wasAttributedTo-ordering_text"><span><span class="insert">Constraint 50 (wasAttributedTo-ordering)</span></span></a><br>
+		<a class="rule-text" href="#actedOnBehalfOf-ordering_text"><span><span class="insert">Constraint 51 (actedOnBehalfOf-ordering)</span></span></a><br>
+		<a class="rule-text" href="#impossible-property-overlap_text"><span><span class="insert">Constraint 55 (impossible-property-overlap)</span></span></a><br>
+		<a class="rule-text" href="#typing_text"><span><span class="insert">Constraint 52 (typing)</span></span></a><br>
 	</td>
 </tr>
 <tr class="component1-color">
-	<td class="essential"><a>Start</a></td>
-	<td><a class="rule-text" href="#wasStartedBy-inference_text"><span>Inference 9 (wasStartedBy-inference)</span></a><br>
-		<a class="rule-text" href="#influence-inference_text"><span>Inference 17 (influence-inference)</span></a><br>
-		<a class="rule-text" href="#key-properties_text"><span>Constraint 26 (key-properties)</span></a><br>
-		<a class="rule-text" href="#unique-wasStartedBy_text"><span>Constraint 29 (unique-wasStartedBy)</span></a><br>
-		<a class="rule-text" href="#unique-startTime_text"><span>Constraint 31 (unique-startTime)</span></a><br>
-		<a class="rule-text" href="#start-precedes-end_text"><span>Constraint 34 (start-precedes-end)</span></a><br>
-		<a class="rule-text" href="#usage-within-activity_text"><span>Constraint 35 (usage-within-activity)</span></a><br>
-		<a class="rule-text" href="#generation-within-activity_text"><span>Constraint 36 (generation-within-activity)</span></a><br>
-		<a class="rule-text" href="#wasInformedBy-ordering_text"><span>Constraint 37 (wasInformedBy-ordering)</span></a><br>
-		<a class="rule-text" href="#wasStartedBy-ordering_text"><span>Constraint 43 (wasStartedBy-ordering)</span></a><br>
-		<a class="rule-text" href="#wasAssociatedWith-ordering_text"><span>Constraint 47 (wasAssociatedWith-ordering)</span></a><br>
-		<a class="rule-text" href="#impossible-property-overlap_text"><span>Constraint <span class="delete">52</span><span class="insert">51</span> (impossible-property-overlap)</span></a><br>
-		<a class="rule-text" href="#typing_text"><span>Constraint <span class="delete">54</span><span class="insert">53</span> (typing)</span></a><br>
+	<td class="essential"><a><span class="insert">Usage</span></a></td>
+	<td><a class="rule-text" href="#generation-use-communication-inference_text"><span><span class="insert">Inference 6 (generation-use-communication-inference)</span></span></a><br>
+		<a class="rule-text" href="#influence-inference_text"><span><span class="insert">Inference 15 (influence-inference)</span></span></a><br>
+		<a class="rule-text" href="#key-properties_text"><span><span class="insert">Constraint 24 (key-properties)</span></span></a><br>
+		<a class="rule-text" href="#usage-within-activity_text"><span><span class="insert">Constraint 35 (usage-within-activity)</span></span></a><br>
+		<a class="rule-text" href="#generation-precedes-usage_text"><span><span class="insert">Constraint 39 (generation-precedes-usage)</span></span></a><br>
+		<a class="rule-text" href="#usage-precedes-invalidation_text"><span><span class="insert">Constraint 40 (usage-precedes-invalidation)</span></span></a><br>
+		<a class="rule-text" href="#derivation-usage-generation-ordering_text"><span><span class="insert">Constraint 43 (derivation-usage-generation-ordering)</span></span></a><br>
+		<a class="rule-text" href="#impossible-property-overlap_text"><span><span class="insert">Constraint 55 (impossible-property-overlap)</span></span></a><br>
+		<a class="rule-text" href="#typing_text"><span><span class="insert">Constraint 52 (typing)</span></span></a><br>
 	</td>
 </tr>
 <tr class="component1-color">
-	<td class="essential"><a>End</a></td>
-	<td><a class="rule-text" href="#wasEndedBy-inference_text"><span>Inference 10 (wasEndedBy-inference)</span></a><br>
-		<a class="rule-text" href="#influence-inference_text"><span>Inference 17 (influence-inference)</span></a><br>
-		<a class="rule-text" href="#key-properties_text"><span>Constraint 26 (key-properties)</span></a><br>
-		<a class="rule-text" href="#unique-wasEndedBy_text"><span>Constraint 30 (unique-wasEndedBy)</span></a><br>
-		<a class="rule-text" href="#unique-endTime_text"><span>Constraint 32 (unique-endTime)</span></a><br>
-		<a class="rule-text" href="#start-precedes-end_text"><span>Constraint 34 (start-precedes-end)</span></a><br>
-		<a class="rule-text" href="#usage-within-activity_text"><span>Constraint 35 (usage-within-activity)</span></a><br>
-		<a class="rule-text" href="#generation-within-activity_text"><span>Constraint 36 (generation-within-activity)</span></a><br>
-		<a class="rule-text" href="#wasInformedBy-ordering_text"><span>Constraint 37 (wasInformedBy-ordering)</span></a><br>
-		<a class="rule-text" href="#wasEndedBy-ordering_text"><span>Constraint 44 (wasEndedBy-ordering)</span></a><br>
-		<a class="rule-text" href="#wasAssociatedWith-ordering_text"><span>Constraint 47 (wasAssociatedWith-ordering)</span></a><br>
-		<a class="rule-text" href="#impossible-property-overlap_text"><span>Constraint <span class="delete">52</span><span class="insert">51</span> (impossible-property-overlap)</span></a><br>
-		<a class="rule-text" href="#typing_text"><span>Constraint <span class="delete">54</span><span class="insert">53</span> (typing)</span></a><br>
+	<td class="essential"><a><span class="insert">Communication</span></a></td>
+	<td><a class="rule-text" href="#communication-generation-use-inference_text"><span><span class="insert">Inference 5 (communication-generation-use-inference)</span></span></a><br>
+		<a class="rule-text" href="#influence-inference_text"><span><span class="insert">Inference 15 (influence-inference)</span></span></a><br>
+		<a class="rule-text" href="#key-properties_text"><span><span class="insert">Constraint 24 (key-properties)</span></span></a><br>
+		<a class="rule-text" href="#wasInformedBy-ordering_text"><span><span class="insert">Constraint 37 (wasInformedBy-ordering)</span></span></a><br>
+		<a class="rule-text" href="#impossible-property-overlap_text"><span><span class="insert">Constraint 55 (impossible-property-overlap)</span></span></a><br>
+		<a class="rule-text" href="#typing_text"><span><span class="insert">Constraint 52 (typing)</span></span></a><br>
 	</td>
 </tr>
 <tr class="component1-color">
-	<td class="essential"><a>Invalidation</a></td>
-	<td><a class="rule-text" href="#influence-inference_text"><span>Inference 17 (influence-inference)</span></a><br>
-		<a class="rule-text" href="#key-properties_text"><span>Constraint 26 (key-properties)</span></a><br>
-		<a class="rule-text" href="#unique-invalidation_text"><span>Constraint 28 (unique-invalidation)</span></a><br>
-		<a class="rule-text" href="#generation-precedes-invalidation_text"><span>Constraint 38 (generation-precedes-invalidation)</span></a><br>
-		<a class="rule-text" href="#usage-precedes-invalidation_text"><span>Constraint 40 (usage-precedes-invalidation)</span></a><br>
-		<a class="rule-text" href="#wasStartedBy-ordering_text"><span>Constraint 43 (wasStartedBy-ordering)</span></a><br>
-		<a class="rule-text" href="#wasEndedBy-ordering_text"><span>Constraint 44 (wasEndedBy-ordering)</span></a><br>
-		<a class="rule-text" href="#specialization-invalidation-ordering_text"><span>Constraint 46 <span class="delete">(specialization-invalidation)</span><span class="insert">(specialization-invalidation-ordering)</span></span></a><br>
-		<a class="rule-text" href="#wasAssociatedWith-ordering_text"><span>Constraint 47 (wasAssociatedWith-ordering)</span></a><br>
-		<a class="rule-text" href="#wasAttributedTo-ordering_text"><span>Constraint 48 (wasAttributedTo-ordering)</span></a><br>
-		<a class="rule-text" href="#actedOnBehalfOf-ordering_text"><span>Constraint 49 (actedOnBehalfOf-ordering)</span></a><br>
-		<a class="rule-text" href="#impossible-property-overlap_text"><span>Constraint <span class="delete">52</span><span class="insert">51</span> (impossible-property-overlap)</span></a><br>
-		<a class="rule-text" href="#typing_text"><span>Constraint <span class="delete">54</span><span class="insert">53</span> (typing)</span></a><br>
+	<td class="essential"><a><span class="insert">Start</span></a></td>
+	<td><a class="rule-text" href="#wasStartedBy-inference_text"><span><span class="insert">Inference 9 (wasStartedBy-inference)</span></span></a><br>
+		<a class="rule-text" href="#influence-inference_text"><span><span class="insert">Inference 15 (influence-inference)</span></span></a><br>
+		<a class="rule-text" href="#key-properties_text"><span><span class="insert">Constraint 24 (key-properties)</span></span></a><br>
+		<a class="rule-text" href="#unique-wasStartedBy_text"><span><span class="insert">Constraint 27 (unique-wasStartedBy)</span></span></a><br>
+		<a class="rule-text" href="#unique-startTime_text"><span><span class="insert">Constraint 29 (unique-startTime)</span></span></a><br>
+		<a class="rule-text" href="#start-precedes-end_text"><span><span class="insert">Constraint 32 (start-precedes-end)</span></span></a><br>
+		<a class="rule-text" href="#usage-within-activity_text"><span><span class="insert">Constraint 35 (usage-within-activity)</span></span></a><br>
+		<a class="rule-text" href="#generation-within-activity_text"><span><span class="insert">Constraint 36 (generation-within-activity)</span></span></a><br>
+		<a class="rule-text" href="#wasInformedBy-ordering_text"><span><span class="insert">Constraint 37 (wasInformedBy-ordering)</span></span></a><br>
+		<a class="rule-text" href="#start-start-ordering_text"><span><span class="insert">Constraint 33 (start-start-ordering)</span></span></a><br>
+		<a class="rule-text" href="#wasStartedBy-ordering_text"><span><span class="insert">Constraint 45 (wasStartedBy-ordering)</span></span></a><br>
+		<a class="rule-text" href="#wasAssociatedWith-ordering_text"><span><span class="insert">Constraint 49 (wasAssociatedWith-ordering)</span></span></a><br>
+		<a class="rule-text" href="#impossible-property-overlap_text"><span><span class="insert">Constraint 55 (impossible-property-overlap)</span></span></a><br>
+		<a class="rule-text" href="#typing_text"><span><span class="insert">Constraint 52 (typing)</span></span></a><br>
+	</td>
+</tr>
+<tr class="component1-color">
+	<td class="essential"><a><span class="insert">End</span></a></td>
+	<td><a class="rule-text" href="#wasEndedBy-inference_text"><span><span class="insert">Inference 10 (wasEndedBy-inference)</span></span></a><br>
+		<a class="rule-text" href="#influence-inference_text"><span><span class="insert">Inference 15 (influence-inference)</span></span></a><br>
+		<a class="rule-text" href="#key-properties_text"><span><span class="insert">Constraint 24 (key-properties)</span></span></a><br>
+		<a class="rule-text" href="#unique-wasEndedBy_text"><span><span class="insert">Constraint 28 (unique-wasEndedBy)</span></span></a><br>
+		<a class="rule-text" href="#unique-endTime_text"><span><span class="insert">Constraint 30 (unique-endTime)</span></span></a><br>
+		<a class="rule-text" href="#start-precedes-end_text"><span><span class="insert">Constraint 32 (start-precedes-end)</span></span></a><br>
+		<a class="rule-text" href="#usage-within-activity_text"><span><span class="insert">Constraint 35 (usage-within-activity)</span></span></a><br>
+		<a class="rule-text" href="#generation-within-activity_text"><span><span class="insert">Constraint 36 (generation-within-activity)</span></span></a><br>
+		<a class="rule-text" href="#wasInformedBy-ordering_text"><span><span class="insert">Constraint 37 (wasInformedBy-ordering)</span></span></a><br>
+		<a class="rule-text" href="#end-end-ordering_text"><span><span class="insert">Constraint 34 (end-end-ordering)</span></span></a><br>
+		<a class="rule-text" href="#wasEndedBy-ordering_text"><span><span class="insert">Constraint 46 (wasEndedBy-ordering)</span></span></a><br>
+		<a class="rule-text" href="#wasAssociatedWith-ordering_text"><span><span class="insert">Constraint 49 (wasAssociatedWith-ordering)</span></span></a><br>
+		<a class="rule-text" href="#impossible-property-overlap_text"><span><span class="insert">Constraint 55 (impossible-property-overlap)</span></span></a><br>
+		<a class="rule-text" href="#typing_text"><span><span class="insert">Constraint 52 (typing)</span></span></a><br>
+	</td>
+</tr>
+<tr class="component1-color">
+	<td class="essential"><a><span class="insert">Invalidation</span></a></td>
+	<td><a class="rule-text" href="#influence-inference_text"><span><span class="insert">Inference 15 (influence-inference)</span></span></a><br>
+		<a class="rule-text" href="#key-properties_text"><span><span class="insert">Constraint 24 (key-properties)</span></span></a><br>
+		<a class="rule-text" href="#unique-invalidation_text"><span><span class="insert">Constraint 26 (unique-invalidation)</span></span></a><br>
+		<a class="rule-text" href="#generation-precedes-invalidation_text"><span><span class="insert">Constraint 38 (generation-precedes-invalidation)</span></span></a><br>
+		<a class="rule-text" href="#usage-precedes-invalidation_text"><span><span class="insert">Constraint 40 (usage-precedes-invalidation)</span></span></a><br>
+		<a class="rule-text" href="#invalidation-invalidation-ordering_text"><span><span class="insert">Constraint 42 (invalidation-invalidation-ordering)</span></span></a><br>
+		<a class="rule-text" href="#wasStartedBy-ordering_text"><span><span class="insert">Constraint 45 (wasStartedBy-ordering)</span></span></a><br>
+		<a class="rule-text" href="#wasEndedBy-ordering_text"><span><span class="insert">Constraint 46 (wasEndedBy-ordering)</span></span></a><br>
+		<a class="rule-text" href="#specialization-invalidation-ordering_text"><span><span class="insert">Constraint 48 (specialization-invalidation-ordering)</span></span></a><br>
+		<a class="rule-text" href="#wasAssociatedWith-ordering_text"><span><span class="insert">Constraint 49 (wasAssociatedWith-ordering)</span></span></a><br>
+		<a class="rule-text" href="#wasAttributedTo-ordering_text"><span><span class="insert">Constraint 50 (wasAttributedTo-ordering)</span></span></a><br>
+		<a class="rule-text" href="#actedOnBehalfOf-ordering_text"><span><span class="insert">Constraint 51 (actedOnBehalfOf-ordering)</span></span></a><br>
+		<a class="rule-text" href="#impossible-property-overlap_text"><span><span class="insert">Constraint 55 (impossible-property-overlap)</span></span></a><br>
+		<a class="rule-text" href="#typing_text"><span><span class="insert">Constraint 52 (typing)</span></span></a><br>
 	</td>
 </tr>
 <tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td></tr>
 
 
 <tr class="component2-color">
-	<td class="essential"><a>Derivation</a></td>
-	<td><a class="rule-text" href="#derivation-generation-use-inference_text"><span>Inference 11 <span class="delete">(derivation-generation-use)</span><span class="insert">(derivation-generation-use-inference)</span></span></a><br>
-		<a class="rule-text" href="#derivation-use-inference_text"><span>Inference 12 <span class="delete">(derivation-use)</span><span class="insert">(derivation-use-inference)</span></span></a><br>
-		<a class="rule-text" href="#specific-derivation-inference_text"><span>Inference 13 (specific-derivation-inference)</span></a><br>
-		<a class="rule-text" href="#influence-inference_text"><span>Inference 17 (influence-inference)</span></a><br>
-		<a class="rule-text" href="#key-properties_text"><span>Constraint 26 (key-properties)</span></a><br>
-		<a class="rule-text" href="#derivation-usage-generation-ordering_text"><span>Constraint 41 (derivation-usage-generation-ordering)</span></a><br>
-		<a class="rule-text" href="#derivation-generation-generation-ordering_text"><span>Constraint 42 (derivation-generation-generation-ordering)</span></a><br>
-		<a class="rule-text" href="#typing_text"><span>Constraint <span class="delete">54</span><span class="insert">53</span> (typing)</span></a><br>
+	<td class="essential"><a><span class="insert">Derivation</span></a></td>
+	<td><a class="rule-text" href="#derivation-generation-use-inference_text"><span><span class="insert">Inference 11 (derivation-generation-use-inference)</span></span></a><br>
+
+
+		<a class="rule-text" href="#influence-inference_text"><span><span class="insert">Inference 15 (influence-inference)</span></span></a><br>
+		<a class="rule-text" href="#key-properties_text"><span><span class="insert">Constraint 24 (key-properties)</span></span></a><br>
+		<a class="rule-text" href="#derivation-usage-generation-ordering_text"><span><span class="insert">Constraint 43 (derivation-usage-generation-ordering)</span></span></a><br>
+		<a class="rule-text" href="#derivation-generation-generation-ordering_text"><span><span class="insert">Constraint 44 (derivation-generation-generation-ordering)</span></span></a><br>
+		<a class="rule-text" href="#typing_text"><span><span class="insert">Constraint 52 (typing)</span></span></a><br>
 	</td>
-	<td rowspan="5"><a href="http://www.w3.org/TR/prov-dm/#component2">Component 2: Derivations</a></td>
+	<td rowspan="5" style="text-align: center; "><a href="http://www.w3.org/TR/prov-dm/#component2" title="Component 2: Derivations"><span class="insert">2</span></a></td>
 </tr>
 <tr class="component2-color">
-	<td class="provType"><a>Revision</a></td>
-	<td><a class="rule-text" href="#revision-is-alternate-inference_text"><span>Inference 14 <span class="delete">(revision-is-alternate)</span><span class="insert">(revision-is-alternate-inference)</span></span></a><br></td>
+	<td class="provType"><a><span class="insert">Revision</span></a></td>
+	<td><a class="rule-text" href="#revision-is-alternate-inference_text"><span><span class="insert">Inference 12 (revision-is-alternate-inference)</span></span></a><br></td>
 </tr>
 <tr class="component2-color">
-	<td class="provType"><a>Quotation</a></td>
-	<td></td>
+	<td class="provType"><a><span class="insert">Quotation</span></a></td>
+	<td><span class="insert">No specific constraints</span></td>
 </tr>
 <tr class="component2-color">
-	<td class="provType"><a>Primary Source</a></td>
-	<td></td>
+	<td class="provType"><a><span class="insert">Primary Source</span></a></td>
+	<td><span class="insert">No specific constraints</span></td>
 </tr>
 <tr class="component2-color">
-	<td><a class="essential">Influence</a></td>
-	<td></td>
+	<td><a class="essential"><span class="insert">Influence</span></a></td>
+	<td><span class="insert">No specific constraints</span></td>
 </tr>
 <tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td></tr>
 
 <tr class="component3-color" style="border-collapse: collapse; ">
-	<td class="essential"><a>Agent</a></td>
-	<td><a class="rule-text" href="#key-object_text"><span>Constraint 25 (key-object)</span></a><br>
-		<a class="rule-text" href="#impossible-object-property-overlap_text"><span>Constraint <span class="delete">53</span><span class="insert">52</span> (impossible-object-property-overlap)</span></a><br>
+	<td class="essential"><a><span class="insert">Agent</span></a></td>
+	<td><a class="rule-text" href="#key-object_text"><span><span class="insert">Constraint 23 (key-object)</span></span></a><br>
+		<a class="rule-text" href="#impossible-object-property-overlap_text"><span><span class="insert">Constraint 56 (impossible-object-property-overlap)</span></span></a><br>
 	</td>
-	<td rowspan="5"><a href="http://www.w3.org/TR/prov-dm/#component3">Component 3: Agents/Responsibility</a></td>
+	<td rowspan="5" style="text-align: center; "><a href="http://www.w3.org/TR/prov-dm/#component3" title="Component 3: Agents/Responsibility"><span class="insert">3</span></a></td>
 </tr>
 <tr class="component3-color">
-	<td class="essential"><a>Attribution</a></td>
-	<td><a class="rule-text" href="#attribution-inference_text"><span>Inference 15 (attribution-inference)</span></a><br>
-		<a class="rule-text" href="#influence-inference_text"><span>Inference 17 (influence-inference)</span></a><br>
-		<a class="rule-text" href="#key-properties_text"><span>Constraint 26 (key-properties)</span></a><br>
-		<a class="rule-text" href="#wasAttributedTo-ordering_text"><span>Constraint 48 (wasAttributedTo-ordering)</span></a><br>
-		<a class="rule-text" href="#impossible-property-overlap_text"><span>Constraint <span class="delete">52</span><span class="insert">51</span> (impossible-property-overlap)</span></a><br>
-		<a class="rule-text" href="#typing_text"><span>Constraint <span class="delete">54</span><span class="insert">53</span> (typing)</span></a><br>
+	<td class="essential"><a><span class="insert">Attribution</span></a></td>
+	<td><a class="rule-text" href="#attribution-inference_text"><span><span class="insert">Inference 13 (attribution-inference)</span></span></a><br>
+		<a class="rule-text" href="#influence-inference_text"><span><span class="insert">Inference 15 (influence-inference)</span></span></a><br>
+		<a class="rule-text" href="#key-properties_text"><span><span class="insert">Constraint 24 (key-properties)</span></span></a><br>
+		<a class="rule-text" href="#wasAttributedTo-ordering_text"><span><span class="insert">Constraint 50 (wasAttributedTo-ordering)</span></span></a><br>
+		<a class="rule-text" href="#impossible-property-overlap_text"><span><span class="insert">Constraint 55 (impossible-property-overlap)</span></span></a><br>
+		<a class="rule-text" href="#typing_text"><span><span class="insert">Constraint 52 (typing)</span></span></a><br>
 	</td>
 </tr>
 <tr class="component3-color">
-	<td class="essential"><a>Association</a></td>
-	<td><a class="rule-text" href="#influence-inference_text"><span>Inference 17 (influence-inference)</span></a><br>
-		<a class="rule-text" href="#key-properties_text"><span>Constraint 26 (key-properties)</span></a><br>
-		<a class="rule-text" href="#wasAssociatedWith-ordering_text"><span>Constraint 47 (wasAssociatedWith-ordering)</span></a><br>
-		<a class="rule-text" href="#impossible-property-overlap_text"><span>Constraint <span class="delete">52</span><span class="insert">51</span> (impossible-property-overlap)</span></a><br>
-		<a class="rule-text" href="#typing_text"><span>Constraint <span class="delete">54</span><span class="insert">53</span> (typing)</span></a><br>
+	<td class="essential"><a><span class="insert">Association</span></a></td>
+	<td><a class="rule-text" href="#influence-inference_text"><span><span class="insert">Inference 15 (influence-inference)</span></span></a><br>
+		<a class="rule-text" href="#key-properties_text"><span><span class="insert">Constraint 24 (key-properties)</span></span></a><br>
+		<a class="rule-text" href="#wasAssociatedWith-ordering_text"><span><span class="insert">Constraint 49 (wasAssociatedWith-ordering)</span></span></a><br>
+		<a class="rule-text" href="#impossible-property-overlap_text"><span><span class="insert">Constraint 55 (impossible-property-overlap)</span></span></a><br>
+		<a class="rule-text" href="#typing_text"><span><span class="insert">Constraint 52 (typing)</span></span></a><br>
 	</td>
 </tr>
 <tr class="component3-color">
-	<td class="essential"><a>Delegation</a></td>
-	<td><a class="rule-text" href="#delegation-inference_text"><span>Inference 16 (delegation-inference)</span></a><br>
-		<a class="rule-text" href="#influence-inference_text"><span>Inference 17 (influence-inference)</span></a><br>
-		<a class="rule-text" href="#key-properties_text"><span>Constraint 26 (key-properties)</span></a><br>
-		<a class="rule-text" href="#actedOnBehalfOf-ordering_text"><span>Constraint 49 (actedOnBehalfOf-ordering)</span></a><br>
-		<a class="rule-text" href="#impossible-property-overlap_text"><span>Constraint <span class="delete">52</span><span class="insert">51</span> (impossible-property-overlap)</span></a><br>
-		<a class="rule-text" href="#typing_text"><span>Constraint <span class="delete">54</span><span class="insert">53</span> (typing)</span></a><br>
+	<td class="essential"><a><span class="insert">Delegation</span></a></td>
+	<td><a class="rule-text" href="#delegation-inference_text"><span><span class="insert">Inference 14 (delegation-inference)</span></span></a><br>
+		<a class="rule-text" href="#influence-inference_text"><span><span class="insert">Inference 15 (influence-inference)</span></span></a><br>
+		<a class="rule-text" href="#key-properties_text"><span><span class="insert">Constraint 24 (key-properties)</span></span></a><br>
+		<a class="rule-text" href="#actedOnBehalfOf-ordering_text"><span><span class="insert">Constraint 51 (actedOnBehalfOf-ordering)</span></span></a><br>
+		<a class="rule-text" href="#impossible-property-overlap_text"><span><span class="insert">Constraint 55 (impossible-property-overlap)</span></span></a><br>
+		<a class="rule-text" href="#typing_text"><span><span class="insert">Constraint 52 (typing)</span></span></a><br>
 	</td>
 </tr>
 <tr class="component3-color">
-	<td class="essential"><a>Influence</a></td>
-	<td><a class="rule-text" href="#influence-inference_text"><span>Inference 17 (influence-inference)</span></a><br>
-		<a class="rule-text" href="#key-properties_text"><span>Constraint 26 (key-properties)
-		<span class="delete">Constraint 50 (impossible-influence-reflexive)</span></span></a><br>
+	<td class="essential"><a><span class="insert">Influence</span></a></td>
+	<td><a class="rule-text" href="#influence-inference_text"><span><span class="insert">Inference 15 (influence-inference)</span></span></a><br>
+		<a class="rule-text" href="#key-properties_text"><span><span class="insert">Constraint 24 (key-properties)</span></span></a><br>
 	</td>
 </tr>
 <tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td></tr>
 
 <tr class="component4-color">
-	<td><a title="bundle">Bundle constructor</a></td>
-	<td></td>
-	<td rowspan="2"><a href="http://www.w3.org/TR/prov-dm/#component4">Component 4: Bundles</a></td>
+	<td><a title="bundle"><span class="insert">Bundle constructor</span></a></td>
+	<td><span class="insert">No specific constraints; see </span><a href="#bundle-constraints" class="sectionRef"><span class="insert">section 6.2 Bundles and Documents</span></a></td>
+	<td rowspan="2" style="text-align: center; "><a href="http://www.w3.org/TR/prov-dm/#component4" title="Component 4: Bundles"><span class="insert">4</span></a></td>
 </tr>
 <tr class="component4-color">
-	<td class="provType"><a title="bundle">Bundle type</a></td>
-	<td> </td>
+	<td class="provType"><a title="bundle"><span class="insert">Bundle type</span></a></td>
+	<td><span class="insert"> No specific constraints; see </span><a href="#bundle-constraints" class="sectionRef"><span class="insert">section 6.2 Bundles and Documents</span></a>
+        </td>
 </tr>
 <tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td></tr>
 
 <tr class="component5-color">
-	<td><a>Alternate</a></td>
-	<td><a class="rule-text" href="#alternate-reflexive_text"><span>Inference 18 (alternate-reflexive)</span></a><br>
-		<a class="rule-text" href="#alternate-transitive_text"><span>Inference 19 (alternate-transitive)</span></a><br>
-		<a class="rule-text" href="#alternate-symmetric_text"><span>Inference 20 (alternate-symmetric)</span></a><br>
-		<a class="rule-text" href="#typing_text"><span>Constraint <span class="delete">54</span><span class="insert">53</span> (typing)</span></a><br>
+	<td><a><span class="insert">Alternate</span></a></td>
+	<td><a class="rule-text" href="#alternate-reflexive_text"><span><span class="insert">Inference 16 (alternate-reflexive)</span></span></a><br>
+		<a class="rule-text" href="#alternate-transitive_text"><span><span class="insert">Inference 17 (alternate-transitive)</span></span></a><br>
+		<a class="rule-text" href="#alternate-symmetric_text"><span><span class="insert">Inference 18 (alternate-symmetric)</span></span></a><br>
+		<a class="rule-text" href="#typing_text"><span><span class="insert">Constraint 52 (typing)</span></span></a><br>
 	</td>
-	<td rowspan="3"><a href="http://www.w3.org/TR/prov-dm/#component5">Component 5: Alternate Entities</a></td>
+	<td rowspan="3" style="text-align: center; "><a href="http://www.w3.org/TR/prov-dm/#component5" title="Component 5: Alternate Entities"><span class="insert">5</span></a></td>
 </tr>
 <tr class="component5-color">
-	<td><a>Specialization</a></td>
-	<td><a class="rule-text" href="#specialization-transitive_text"><span>Inference 21 (specialization-transitive)</span></a><br>
-		<a class="rule-text" href="#specialization-alternate-inference_text"><span>Inference 22 <span class="delete">(specialization-alternate)</span><span class="insert">(specialization-alternate-inference)</span></span></a><br>
-		<a class="rule-text" href="#specialization-attributes-inference_text"><span>Inference 23 <span class="delete">(specialization-attributes)</span><span class="insert">(specialization-attributes-inference)</span></span></a><br>
-		<a class="rule-text" href="#specialization-generation-ordering_text"><span>Constraint 45 <span class="delete">(specialization-generation)</span><span class="insert">(specialization-generation-ordering)</span></span></a><br>
-		<a class="rule-text" href="#specialization-invalidation-ordering_text"><span>Constraint 46 <span class="delete">(specialization-invalidation)</span><span class="insert">(specialization-invalidation-ordering)</span></span></a><br>
-		<a class="rule-text" href="#impossible-specialization-reflexive_text"><span>Constraint <span class="delete">51</span><span class="insert">50</span> (impossible-specialization-reflexive)</span></a><br>
-		<a class="rule-text" href="#typing_text"><span>Constraint <span class="delete">54</span><span class="insert">53</span> (typing)</span></a><br>
+	<td><a><span class="insert">Specialization</span></a></td>
+	<td><a class="rule-text" href="#specialization-transitive_text"><span><span class="insert">Inference 19 (specialization-transitive)</span></span></a><br>
+		<a class="rule-text" href="#specialization-alternate-inference_text"><span><span class="insert">Inference 20 (specialization-alternate-inference)</span></span></a><br>
+		<a class="rule-text" href="#specialization-attributes-inference_text"><span><span class="insert">Inference 21 (specialization-attributes-inference)</span></span></a><br>
+		<a class="rule-text" href="#specialization-generation-ordering_text"><span><span class="insert">Constraint 47 (specialization-generation-ordering)</span></span></a><br>
+		<a class="rule-text" href="#specialization-invalidation-ordering_text"><span><span class="insert">Constraint 48 (specialization-invalidation-ordering)</span></span></a><br>
+		<a class="rule-text" href="#impossible-specialization-reflexive_text"><span><span class="insert">Constraint 54 (impossible-specialization-reflexive)</span></span></a><br>
+		<a class="rule-text" href="#typing_text"><span><span class="insert">Constraint 52 (typing)</span></span></a><br>
 	</td>
 </tr>
 <tr class="component5-color">
-	<td><a>Mention</a></td>
-	<td><a class="rule-text" href="#mention-specialization-inference_text"><span>Inference 24 <span class="delete">(mention-specialization)</span><span class="insert">(mention-specialization-inference)</span></span></a><br>
-		<a class="rule-text" href="#unique-mention_text"><span>Constraint 33 <span class="delete">(mention-unique)</span><span class="insert">(unique-mention)</span></span></a><br>
-		<a class="rule-text" href="#typing_text"><span>Constraint <span class="delete">54</span><span class="insert">53</span> (typing)</span></a><br>
+	<td><a><span class="insert">Mention</span></a></td>
+	<td><a class="rule-text" href="#mention-specialization-inference_text"><span><span class="insert">Inference 22 (mention-specialization-inference)</span></span></a><br>
+		<a class="rule-text" href="#unique-mention_text"><span><span class="insert">Constraint 31 (unique-mention)</span></span></a><br>
+		<a class="rule-text" href="#typing_text"><span><span class="insert">Constraint 52 (typing)</span></span></a><br>
 	</td>
 </tr>
 <tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td></tr>
 
 <tr class="component6-color">
-	<td><a>Collection</a></td>
-	<td> </td>
-	<td rowspan="2"><a href="http://www.w3.org/TR/prov-dm/#component6">Component 6: Collections</a></td>
+	<td><a><span class="insert">Collection</span></a></td>
+	<td><span class="insert"> No specific constraints </span></td>
+	<td rowspan="2" style="text-align: center; "><a href="http://www.w3.org/TR/prov-dm/#component6" title="Component 6: Collections"><span class="insert">6</span></a></td>
 </tr>
 <tr class="component6-color">
-	<td><a>Membership</a></td>
-	<td><a class="rule-text" href="#typing_text"><span>Constraint <span class="delete">54</span><span class="insert">53</span> (typing)</span></a><br></td>
+	<td><a><span class="insert">Membership</span></a></td>
+	<td> <a class="rule-text" href="#membership-empty-collection_text"><span><span class="insert">Constraint 58 (membership-empty-collection)</span></span></a><br>
+             <a class="rule-text" href="#typing_text"><span><span class="insert">Constraint 52 (typing)</span></span></a><br>
+        </td>
 </tr>
 </tbody></table>
 </div>
@@ -1180,115 +2272,105 @@
 </div>
 
 <div id="compliance" class="section">
-<h2><span class="secno">3. </span>Compliance with this document</h2>
-
-<p>
+<h2><span class="secno"><span class="delete">2.</span><span class="insert">3.</span> </span>Compliance with this document</h2>
+
+<span class="delete">
+TODO: Add collection and account constraint sections to the compliance
+  list as appropriate.
+  </span><p>
   For the purpose of compliance, the normative sections of this document
-  are <a href="#compliance" class="sectionRef">section 3. Compliance with this document</a>, <a href="#inferences" class="sectionRef">section 4. <span class="insert">Definitions and </span>Inferences<span class="delete"> and Definitions</span></a>, <a href="#constraints" class="sectionRef">section 5. Constraints</a>, and <a href="#normalization-validity-equivalence" class="sectionRef">section 6. Normalization, Validity, and Equivalence</a>.  
+  are <a href="#compliance" class="sectionRef">section <span class="delete">2.</span><span class="insert">3.</span> Compliance with this document</a>, <a href="#inferences" class="sectionRef">section <span class="delete">3.</span><span class="insert">4. Definitions and</span> Inferences<span class="delete"> and Definitions</span></a>, <span class="delete">section 4. Equivalence</span><span class="delete">, and</span> <a href="#constraints" class="sectionRef">section 5. <span class="delete">Validity </span>Constraints</a><span class="insert">, and </span><a href="#normalization-validity-equivalence" class="sectionRef"><span class="insert">section 6. Normalization, Validity, and Equivalence</span></a>.
+   
 
 
  To be compliant:
   </p><ol><li>When processing provenance, an
-    application <em class="rfc2119" title="may">may</em> apply the inferences and definitions in <a href="#inferences" class="sectionRef">section 4. <span class="insert">Definitions and </span>Inferences<span class="delete"> and Definitions</span></a>.</li>
-   <li><span class="delete">When</span><span class="insert">If</span> determining whether a PROV instance is <a href="#dfn-valid" class="internalDFN">valid</a>, an
-    application <em class="rfc2119" title="must">must</em> check that all of the
-    constraints of <a href="#constraints" class="sectionRef">section 5. Constraints</a> are
-  satisfied  on the <a href="#dfn-normal-form" class="internalDFN">normal form</a> of the instance.  </li>
-   <li> <span class="delete">When</span><span class="insert">If</span> producing provenance meant for other applications to
-    use, the application <em class="rfc2119" title="should">should</em> produce <a href="#dfn-valid" class="internalDFN">valid</a> provenance, as specified in <a href="#normalization-validity-equivalence" class="sectionRef">section 6. Normalization, Validity, and Equivalence</a>. </li>
-    <li><span class="delete">When</span><span class="insert">If</span> determining whether two PROV instances are
+    application <em class="rfc2119" title="may">may</em> apply the inferences and definitions in <a href="#inferences" class="sectionRef">section <span class="delete">3.</span><span class="insert">4. Definitions and</span> Inferences<span class="delete"> and Definitions</span></a>.</li>
+   <li><span class="insert">If determining whether a PROV instance or document is </span><a href="#dfn-valid" class="internalDFN"><span class="insert">valid</span></a><span class="insert">, an
+    application </span><em class="rfc2119" title="must"><span class="insert">must</span></em><span class="insert"> check that all of the
+    constraints of </span><a href="#constraints" class="sectionRef"><span class="insert">section 5. Constraints</span></a><span class="insert"> are
+  satisfied  on the </span><a href="#dfn-normal-form" class="internalDFN"><span class="insert">normal form</span></a><span class="insert"> of the instance or document.  </span></li>
+   <li><span class="insert"> If producing provenance meant for other applications to
+    use, the application </span><em class="rfc2119" title="should"><span class="insert">should</span></em><span class="insert"> produce </span><a href="#dfn-valid" class="internalDFN"><span class="insert">valid</span></a><span class="insert"> provenance, as specified in </span><a href="#normalization-validity-equivalence" class="sectionRef"><span class="insert">section 6. Normalization, Validity, and Equivalence</span></a><span class="insert">. </span></li>
+    <li><span class="delete">When</span><span class="insert">If</span> determining whether two PROV instances<span class="insert"> or documents</span> are
   <a href="#dfn-equivalent" class="internalDFN">equivalent</a>, an application <em class="rfc2119" title="must">must</em> determine whether their
-  normal forms are equal, as specified in <a href="#normalization-validity-equivalence" class="sectionRef">section 6. Normalization, Validity, and Equivalence</a>.
-  </li></ol>
-
-
-  
+  normal forms are equal, as specified in <a href="#normalization-validity-equivalence" class="sectionRef">section <span class="delete">4.</span><span class="insert">6. Normalization, Validity, and</span> Equivalence</a>.
+    
+  </li><span class="delete">When determining whether</span></ol>
 
   <p><span class="insert">Compliant applications are not required to explicitly compute
   normal forms; however, if checking validity or equivalence, the
   results should be the same as would be obtained by computing normal
   forms as defined in this specification.</span></p>
 
-  <p>
-  All <span class="delete">diagrams</span><span class="insert">figures</span> are for illustration purposes
-  only.<span class="insert">  Information in tables is normative if it appears in a
-  normative section; specifically, </span><a href="#expandable-parameters-fig"><span class="insert">Table 2</span></a><span class="insert"> is normative.</span>  Text in appendices and
+  <p><span class="insert">
+  All figures are for illustration purposes
+  only.  Information in tables is normative if it appears in</span> a<span class="delete"> PROV instance</span><span class="insert">
+  normative section; specifically, </span><a href="#expandable-parameters-fig"><span class="insert">Table 3</span></a> is <span class="delete">valid</span><span class="delete">, an
+    application </span><span class="delete">must</span><span class="delete"> check that all of the
+    constraints of </span><span class="delete">section 5. Validity Constraints</span><span class="delete"> are
+  satisfied</span><span class="insert">normative.</span>  <span class="delete">on the </span><span class="delete">normal form</span><span class="delete"> of the instance.</span>
+    <span class="delete"> When producing provenance meant for other applications to
+    use, the application </span><span class="delete">should</span><span class="delete"> produce </span><span class="delete">valid</span><span class="delete"> provenance. </span>
+  
+  <span class="delete">
+    Should we specify</span><span class="insert">Text in appendices and
 in boxes labeled "Remark" is informative.  Where there is any apparent
-  ambiguity between the descriptive text and the formal text in a
-  "definition", "inference" or "constraint" box, the formal text takes
+  ambiguity between the descriptive text and the formal text in</span> a<span class="delete"> way for PROV instances to say whether they
+    are meant to be validated</span><span class="insert">
+  "definition", "inference"</span> or <span class="delete">not?  Seems outside the scope of this
+    document, may require changes to PROV-N.
+  </span><span class="insert">"constraint" box, the formal text takes
 priority.  
-  </p>
-
-  <div class="note"> To reviewers: We specifically invite review for
-  consistency between the informal and formal text.</div>
+  </span></p>
+
+
 
 </div>
-
-
-
-
-
+  
+
+
+
+
+
+
+ 
 
 <div id="inferences" class="section">
-<h2><span class="secno">4. </span><span class="insert">Definitions and </span>Inferences<span class="delete"> and Definitions</span></h2>
+<h2><span class="secno"><span class="delete">3. </span><span class="insert">4. </span></span><span class="insert">Definitions and </span>Inferences<span class="delete"> and Definitions</span></h2>
+
+
 <p>
 <span class="delete">In this section, we describe</span><span class="insert">This section  describes </span><a title="definition" href="#definition" class="internalDFN"><span class="insert">definitions</span></a><span class="insert"> and</span> <a title="inference" href="#inference" class="internalDFN">inferences<span class="delete"> and </span><span class="delete">definitions</span></a> that <em class="rfc2119" title="may">may</em> be used on
-  provenance data, and preserve <a>equivalence</a> on <a href="#dfn-valid" class="internalDFN">valid</a>
-PROV instances (as detailed in <a href="#normalization-validity-equivalence" class="sectionRef">section 6. Normalization, Validity, and Equivalence</a>).
-<span class="insert">A </span><dfn id="definition"><span class="insert">definition</span></dfn><span class="insert"> is a rule that can be applied to
-  PROV instances to replace defined expressions with definitions. </span>An  <dfn id="inference">inference</dfn> is a rule that can be applied
+  provenance data, and <span class="insert">preserve </span><a><span class="insert">equivalence</span></a><span class="insert"> on </span><a href="#dfn-valid" class="internalDFN"><span class="insert">valid</span></a><span class="insert">
+PROV instances (as detailed in </span><a href="#normalization-validity-equivalence" class="sectionRef"><span class="insert">section 6. Normalization, Validity, and Equivalence</span></a><span class="insert">).
+A </span><dfn id="definition"><span class="insert">definition</span></dfn><span class="insert"> is </span>a <span class="delete">notion of </span><span class="delete">equivalence</span><span class="delete"> on </span><span class="insert">rule that can be applied to
+  </span>PROV <span class="delete">instances.  
+</span><span class="insert">instances to replace defined expressions with definitions. </span>An  <dfn id="inference">inference</dfn> is a rule that can be applied
   to PROV instances to add new PROV statements.  A definition<span class="insert"> states that a
-  provenance statement</span> is <span class="delete">a rule that</span><span class="insert">equivalent to some other statements, whereas
-  an inference only</span> states <span class="delete">that a
-  </span><span class="insert">one direction of an implication; thus,
-  defined </span>provenance <span class="delete">statement is equivalent to some other statements; thus,
-  defined provenance </span>statements can be replaced by their <span class="delete">definitions,
-and vice versa.</span><span class="insert">definitions.</span>
-</p>
-
-<span class="delete"> Inferences have the following general form:</span>
-<span class="delete">Inference-example NNN (inference-example)</span>
-
-  <span class="delete">IF</span> <span class="delete">hyp</span><span class="delete">1</span><span class="delete"> and ... and
-</span><span class="delete">hyp</span><span class="delete">k</span> <span class="delete">THEN</span><span class="delete">
-  there exists </span><span class="delete">a</span><span class="delete">1</span><span class="delete"> and ... and </span><span class="delete">a</span><span class="delete">m</span><span class="delete"> such that </span><span class="delete">conclusion</span><span class="delete">1</span><span class="delete"> and ... and </span><span class="delete">conclusion</span><span class="delete">n</span><span class="delete">.</span>
-  
- 
-<span class="delete"> This means that if all of the provenance statements matching
-  </span><span class="delete">hyp</span><span class="delete">1</span><span class="delete">... </span><span class="delete">hyp</span><span class="delete">k</span><span class="delete">
-  can be found in a PROV instance, we can add all of the statements
-  </span><span class="delete">concl</span><span class="delete">1</span><span class="delete"> ... </span><span class="delete">concl</span><span class="delete">n</span><span class="delete"> to the instance, possibly after
-  generating fresh identifiers </span><span class="delete">a</span><span class="delete">1</span><span class="delete">,...,</span><span class="delete">a</span><span class="delete">m</span><span class="delete"> for unknown objects.  These fresh
-  identifiers might later be found to be equal to known identifiers;
-  they play a similar role in PROV constraints to existential
-  variables in logic, "labeled nulls" in database theory [</span><span class="delete">DBCONSTRAINTS</span><span class="delete">],  or to blank nodes in [</span><span class="delete">RDF</span><span class="delete">].  With a few
-  exceptions (discussed below), omitted optional parameters to
-  [</span><span class="delete">PROV-N</span><span class="delete">] statements, or explicit </span><span class="delete">-</span><span class="delete">
-  markers, are placeholders for existentially quantified variables;
-  that is, they denote unknown values.  </span>
-
-
-
-
-<p> Definitions have the following general form:</p>
-
-<div class="definition-example" id="definition-example"><div class="ruleTitle"><a class="internalDFN" href="#definition-example">Definition-example NNN (definition-example)</a></div>
+  provenance statement</span> is <span class="insert">equivalent to some other statements, whereas
+  an inference only states one direction of an implication; thus,
+  defined provenance statements can be replaced by their definitions.
+</span></p>
+
+
+<p><span class="insert"> Definitions have the following general form:</span></p>
+
+<div class="definition-example" id="definition-example"><div class="ruleTitle"><a class="internalDFN" href="#definition-example"><span class="insert">Definition-example NNN (definition-example)</span></a></div>
 <p>
-  <span class="name"><span class="delete">defined_exp</span><span class="delete"> holds</span><span class="insert">defined_stmt</span></span> <span class="conditional">IF AND ONLY IF</span>
-  there exists <span class="name">a<sub>1</sub></span>,..., <span class="name">a<sub>m</sub></span> such that <span class="name"><span class="delete">defining_exp</span><span class="insert">defining_stmt</span><sub>1</sub></span> and  ... and <span class="name"><span class="delete">defining_exp</span><span class="insert">defining_stmt</span><sub>n</sub></span>.</p>
+  <span class="name"><span class="insert">defined_stmt</span></span> <span class="conditional"><span class="insert">IF AND ONLY IF</span></span><span class="insert">
+  there exists </span><span class="name">a<span class="delete"> rule</span><sub><span class="insert">1</span></sub></span><span class="insert">,..., </span><span class="name"><span class="insert">a</span><sub><span class="insert">m</span></sub></span><span class="insert"> such</span> that <span class="delete">states</span><span class="name"><span class="insert">defining_stmt</span><sub><span class="insert">1</span></sub></span><span class="insert"> and  ... and </span><span class="name"><span class="insert">defining_stmt</span><sub><span class="insert">n</span></sub></span><span class="insert">.</span></p>
   </div>
  
-  <p>
-  <span class="delete">This means that</span><span class="insert">A definition can be applied to</span> a <span class="delete">provenance statement </span><span class="delete">defined_exp</span><span class="insert">PROV instance, since its </span><span class="name"><span class="insert">defined_stmt</span></span> is defined in
-  terms of other statements.  <span class="delete">This </span><span class="insert">Applying a
-  definition to an instance means that if an occurrence of a defined
-  provenance statement  </span><span class="name"><span class="insert">defined_stmt</span></span>
-  can be <span class="delete">viewed as</span><span class="insert">found in</span> a <span class="delete">two-way
-  inference:  If </span><span class="delete">defined_exp</span>
-  <span class="insert">PROV instance, then we </span>can <span class="delete">be found in a PROV instance, we can</span><span class="insert">remove it and</span> add all of the statements
-<span class="name"><span class="delete">defining_exp</span><span class="insert">defining_stmt</span><sub>1</sub></span> ... <span class="name"><span class="delete">defining_exp</span><span class="insert">defining_stmt</span><sub>n</sub></span> to the instance, possibly after generating fresh
-  identifiers <span class="name">a<sub>1</sub></span>,...,<span class="name">a<sub>m</sub></span> for <span class="insert">existential variables.  In
-  other words, it is safe to replace
+  <p><span class="insert">
+  A definition can be applied to a PROV instance, since its </span><span class="name"><span class="insert">defined_stmt</span></span><span class="insert"> is defined in
+  terms of other statements.  Applying a
+  definition to an instance means</span> that <span class="insert">if an occurrence of </span>a<span class="insert"> defined</span>
+  provenance <span class="delete">expression</span><span class="insert">statement  </span><span class="name"><span class="insert">defined_stmt</span></span><span class="insert">
+  can be found in a PROV instance, then we can remove it and add all of the statements
+</span><span class="name"><span class="insert">defining_stmt</span><sub><span class="insert">1</span></sub></span><span class="insert"> ... </span><span class="name"><span class="insert">defining_stmt</span><sub><span class="insert">n</span></sub></span><span class="insert"> to the instance, possibly after generating fresh
+  identifiers </span><span class="name"><span class="insert">a</span><sub><span class="insert">1</span></sub></span><span class="insert">,...,</span><span class="name"><span class="insert">a</span><sub><span class="insert">m</span></sub></span><span class="insert"> for existential variables.  In
+  other words, it</span> is <span class="delete">equivalent</span><span class="insert">safe</span> to <span class="insert">replace
   a defined statement with
   its definition.  
 </span></p>
@@ -1305,10 +2387,13 @@
 <p><span class="insert"> Inferences can be applied to PROV instances.  Applying an inference to an instance means that if all of the provenance statements matching
   </span><span class="name"><span class="insert">hyp</span><sub><span class="insert">1</span></sub></span><span class="insert">... </span><span class="name"><span class="insert">hyp</span><sub><span class="insert">k</span></sub></span><span class="insert">
   can be found in the instance, then we check whether the conclusion 
-  </span><span class="name"><span class="insert">concl</span><sub><span class="insert">1</span></sub></span><span class="insert"> ... </span><span class="name"><span class="insert">concl</span><sub><span class="insert">n</span></sub></span><span class="insert"> is satisfied for some values
+  </span><span class="name"><span class="insert">concl</span><sub><span class="insert">1</span></sub></span><span class="insert"> ... </span><span class="name"><span class="insert">concl</span><sub><span class="insert">n</span></sub></span><span class="insert"> is satisfied for </span>some <span class="delete">other expressions; thus,
+  defined provenance expressions can</span><span class="insert">values
   of existential variables.  If so, application of the inference has
   no effect on the instance.  If not, then a copy the
-  conclusion should be added to the instance, after
+  conclusion should</span> be <span class="delete">replaced by their definitions,
+and vice versa.
+</span><span class="insert">added to the instance, after
   generating fresh identifiers </span><span class="name"><span class="insert">a</span><sub><span class="insert">1</span></sub></span><span class="insert">,...,</span><span class="name"><span class="insert">a</span><sub><span class="insert">m</span></sub></span><span class="insert"> for the existential variables.  These fresh
   identifiers might later be found to be equal to known identifiers;
   they play a similar role in PROV constraints to existential
@@ -1316,47 +2401,51 @@
   [</span><cite><a class="bibref" rel="biblioentry" href="#bib-DBCONSTRAINTS"><span class="insert">DBCONSTRAINTS</span></a></cite><span class="insert">],  or to blank nodes in [</span><cite><a class="bibref" rel="biblioentry" href="#bib-RDF"><span class="insert">RDF</span></a></cite><span class="insert">].  In general, omitted optional parameters to
   [</span><cite><a class="bibref" rel="biblioentry" href="#bib-PROV-N"><span class="insert">PROV-N</span></a></cite><span class="insert">] statements, or explicit </span><span class="name"><span class="insert">-</span></span><span class="insert">
   markers, are placeholders for existentially quantified variables;
-  that is, they denote </span>unknown <span class="delete">objects.</span><span class="insert">values.</span>  <span class="delete">It is safe</span><span class="insert">There are a few exceptions</span> to<span class="delete"> replace
-  a defined statement with
-  its definition.
-</span><span class="insert">
+  that is, they denote unknown values.  There are a few exceptions to
   this general rule, which are specified in </span><a class="rule-ref" href="#optional-placeholders"><span><span class="insert">Definition 4 (optional-placeholders)</span></span></a><span class="insert">.</span></p>
-  
-
-
-<p> Definitions and inferences can be viewed as logical formulas;
-  similar formalisms are often used in rule-based reasoning [<cite><a class="bibref" rel="biblioentry" href="#bib-CHR">CHR</a></cite>]
-  and in databases [<cite><a class="bibref" rel="biblioentry" href="#bib-DBCONSTRAINTS">DBCONSTRAINTS</a></cite>].  In particular, the identifiers
-  <span class="name">a<sub>1</sub></span> ...  <span class="name">a<sub>n</sub></span>
+
+<p> <span class="delete">Inferences</span><span class="insert">Definitions and inferences can be viewed as logical formulas;
+  similar formalisms are often used in rule-based reasoning [</span><cite><a class="bibref" rel="biblioentry" href="#bib-CHR"><span class="insert">CHR</span></a></cite><span class="insert">]
+  and in databases [</span><cite><a class="bibref" rel="biblioentry" href="#bib-DBCONSTRAINTS"><span class="insert">DBCONSTRAINTS</span></a></cite><span class="insert">].  In particular, the identifiers
+  </span><span class="name"><span class="insert">a</span><sub><span class="insert">1</span></sub></span><span class="insert"> ...  </span><span class="name"><span class="insert">a</span><sub><span class="insert">n</span></sub></span><span class="insert">
   should be viewed as existentially quantified variables, meaning that
   through subsequent reasoning steps they may turn out to be equal to
   other identifiers that are already known, or to other existentially
   quantified variables.  Their treatment is analogous to that of blank
   nodes in RDF.  In contrast, distinct URIs or literal values in PROV
   are assumed to be distinct for the purpose of checking validity or
-  inferences.  This issue is discussed in more detail under <a href="#uniqueness-constraints">Uniqueness Constraints</a><span class="delete"> below.</span><span class="insert">.</span>
-  </p>
-
+  inferences.  This issue is discussed in more detail under </span><a href="#uniqueness-constraints"><span class="insert">Uniqueness Constraints</span></a><span class="insert">.
+  </span></p>
+  
+<p><span class="insert">In a [definition|inference], term symbols such as </span><span class="name"><span class="insert">id</span></span><span class="insert">, 
+	</span><span class="name"><span class="insert">start</span></span><span class="insert">, </span><span class="name"><span class="insert">end</span></span><span class="insert">, </span><span class="name"><span class="insert">e</span></span><span class="insert">, 
+	</span><span class="name"><span class="insert">a</span></span><span class="insert">, </span><span class="name"><span class="insert">attrs</span></span><span class="insert">,
+	are assumed to be variables unless otherwise specified.  These variables are scoped at 
+	the [definition|inference|constraint] level, so the rule is equivalent to any one-for-one 
+	renaming of the variable names.  When several rules are collected within a [definition|inference] 
+	as an ordered list, the scope of the variables in each rule is at the level of list elements, and so reuse of 
+	variable names in different rules does not affect the meaning.
+</span></p>
 <div id="optional-identifiers-and-attributes" class="section">
-  <h3><span class="secno">4.1 </span>Optional Identifiers and Attributes</h3>
-
-  <p>Many PROV relation statements have an identifier, identifying a
+  <h3><span class="secno"><span class="insert">4.1 </span></span><span class="insert">Optional Identifiers and Attributes</span></h3>
+
+  <p><span class="insert">Many PROV relation statements</span> have <span class="insert">an identifier, identifying a
   link between two or more related objects.  Identifiers can sometimes
-  be omitted in [<cite><span class="delete">PROV-N</span><a class="bibref" rel="biblioentry" href="#bib-PROV-O"><span class="insert">PROV-O</span></a></cite>] notation.  For the purpose of inference and
+  be omitted in [</span><cite><a class="bibref" rel="biblioentry" href="#bib-PROV-O"><span class="insert">PROV-O</span></a></cite><span class="insert">] notation.  For the purpose of inference and
   validity checking, we generate special identifiers called
-  <dfn id="dfn-existential-variables">existential variables</dfn> denoting the unknown values.
-  
-</p>
-<p>
-Existential variables can be <a title="substitution" href="#dfn-substitution" class="internalDFN">substituted </a>
-  with <span class="delete">constant
-  </span><span class="insert">other terms.  Specifically, a
+  </span><dfn id="dfn-existential-variables"><span class="insert">existential variables</span></dfn><span class="insert"> denoting the unknown values.
+</span></p>
+<p><span class="insert">
+Existential variables can be </span><a title="substitution" href="#dfn-substitution" class="internalDFN"><span class="insert">substituted</span></a><span class="insert">
+  with other terms.  Specifically, a
   </span><dfn id="dfn-substitution"><span class="insert">substitution</span></dfn><span class="insert"> is a function from a set of existential
-  variables to </span>identifiers, literals, the placeholder <span class="name">-</span>,
-  or other <a href="#dfn-existential-variables" class="internalDFN">existential variables</a>.<span class="insert">  A substitution </span><span class="math"><span class="insert">S</span></span><span class="insert"> can be
+  variables to identifiers, literals, the placeholder </span><span class="name"><span class="insert">-</span></span><span class="insert">,
+  or other </span><a href="#dfn-existential-variables" class="internalDFN"><span class="insert">existential variables</span></a><span class="insert">.  A substitution </span><span class="math"><span class="insert">S</span></span><span class="insert"> can be
   applied to an instance </span><span class="math"><span class="insert">I</span></span><span class="insert"> by replacing all occurrences of existential
-  variables </span><span class="math"><span class="insert">x</span></span><span class="insert"> in the instance with </span><span class="math"><span class="insert">S(x)</span></span><span class="insert">.  </span></p><div class="note"><span class="insert">More explanation may be needed</span></div>
-<p></p>
+  variables </span><span class="math"><span class="insert">x</span></span><span class="insert"> in the instance with </span><span class="math"><span class="insert">S(x)</span></span><span class="insert">.  
+</span></p>
+
+
 <p>
 <a class="rule-ref" href="#optional-identifiers"><span><span class="insert">Definition 1 (optional-identifiers)</span></span></a><span class="insert">,
 </span><a class="rule-ref" href="#optional-attributes"><span><span class="insert">Definition 2 (optional-attributes)</span></span></a><span class="insert">, and
@@ -1364,146 +2453,157 @@
  explain how to expand the compact forms of PROV-N notation into a
   normal form.  </span><a class="rule-ref" href="#optional-placeholders"><span><span class="insert">Definition 4 (optional-placeholders)</span></span></a><span class="insert"> indicates when
   other optional parameters can be replaced by </span><a href="#dfn-existential-variables" class="internalDFN"><span class="insert">existential
-  variables</span></a><span class="insert">.</span>  
-<span class="delete">We note that  Definitions 1, 2, and 3 desugar compact PROV-N notation into a normal form.
+  variables</span></a><span class="insert">.  
 </span></p>
 
-  <div class="definition" id="optional-identifiers"><div class="ruleTitle"><a class="internalDFN" href="#optional-identifiers">Definition 1 (optional-identifiers)</a></div>
-<p>For each  <span class="name">r</span> in { 
-<span class="name">used</span>,
-<span class="name">wasGeneratedBy</span>,
-<span class="name">wasInvalidatedBy</span>,
-<span class="name">wasInfluencedBy</span>,
-<span class="name">wasStartedBy</span>,
-<span class="name">wasEndedBy</span>,
-<span class="name">wasInformedBy</span>,
-<span class="name">wasDerivedFrom</span>,
-<span class="name">wasAttributedTo</span>,
-<span class="name">wasAssociatedWith</span>,
-<span class="name">actedOnBehalfOf</span>}, the following
-    definitional rules hold:</p>
+  <div class="definition" id="optional-identifiers"><div class="ruleTitle"><a class="internalDFN" href="#optional-identifiers"><span class="insert">Definition 1 (optional-identifiers)</span></a></div>
+<p><span class="insert">For each  </span><span class="name"><span class="insert">r</span></span><span class="insert"> in { 
+</span><span class="name"><span class="insert">used</span></span><span class="insert">,
+</span><span class="name"><span class="insert">wasGeneratedBy</span></span><span class="insert">,
+</span><span class="name"><span class="insert">wasInvalidatedBy</span></span><span class="insert">,
+</span><span class="name"><span class="insert">wasInfluencedBy</span></span><span class="insert">,
+</span><span class="name"><span class="insert">wasStartedBy</span></span><span class="insert">,
+</span><span class="name"><span class="insert">wasEndedBy</span></span><span class="insert">,
+</span><span class="name"><span class="insert">wasInformedBy</span></span><span class="insert">,
+</span><span class="name"><span class="insert">wasDerivedFrom</span></span><span class="insert">,
+</span><span class="name"><span class="insert">wasAttributedTo</span></span><span class="insert">,
+</span><span class="name"><span class="insert">wasAssociatedWith</span></span><span class="insert">,
+</span><span class="name"><span class="insert">actedOnBehalfOf</span></span><span class="insert">}, </span>the following<span class="delete"> general form:</span><span class="insert">
+    definitional rules hold:</span></p>
+
+  
     <ol>     <li>
-    <span class="name">r(a<sub>1</sub>,...,a<sub>n</sub>) </span> <span class="delete">holds </span><span class="conditional">IF AND ONLY IF</span>
-  there exists <span class="name">id</span> such that  <span class="name"><span class="delete">r(id;a</span><span class="insert">r(id; a</span><sub>1</sub>,...,a<sub>n</sub>)</span><span class="delete">  holds.</span><span class="insert">.</span></li>
-     <li> <span class="name"><span class="delete">r(-;a</span><span class="insert">r(-; a</span><sub>1</sub>,...,a<sub>n</sub>) </span> <span class="delete">holds </span><span class="conditional">IF AND ONLY IF</span>
-  there exists <span class="name">id</span> such that  <span class="name"><span class="delete">r(id;a</span><span class="insert">r(id; a</span><sub>1</sub>,...,a<sub>n</sub>)</span><span class="delete">  holds.</span><span class="insert">.</span></li>
+    <span class="name"><span class="insert">r(a</span><sub><span class="insert">1</span></sub><span class="insert">,...,a</span><sub><span class="insert">n</span></sub><span class="insert">) </span></span> <span class="conditional">IF <span class="delete">hyp_1</span><span class="delete"> and ... and
+</span><span class="delete">hyp_k</span><span class="insert"> AND ONLY IF</span></span><span class="insert">
+  there exists </span><span class="name"><span class="insert">id</span></span><span class="insert"> such that  </span><span class="name"><span class="insert">r(id; a</span><sub><span class="insert">1</span></sub><span class="insert">,...,a</span><sub><span class="insert">n</span></sub><span class="insert">)</span></span><span class="insert">.</span></li>
+     <li> <span class="name"><span class="insert">r(-; a</span><sub><span class="insert">1</span></sub><span class="insert">,...,a</span><sub><span class="insert">n</span></sub><span class="insert">) </span></span> <span class="conditional"><span class="delete">THEN</span><span class="insert">IF AND ONLY IF</span></span>
+  there exists <span class="name"><span class="delete">a_1</span><span class="delete"> and ... and </span><span class="delete">a_m</span><span class="insert">id</span></span> such that <span class="delete">conclusion_1</span><span class="delete"> and ... and </span><span class="delete">conclusion_n</span>  <span class="name"><span class="insert">r(id; a</span><sub><span class="insert">1</span></sub><span class="insert">,...,a</span><sub><span class="insert">n</span></sub><span class="insert">)</span></span>.
+  </li>
      </ol>
     </div>
-
-    <p>Likewise, many <span class="delete">PROV</span><span class="insert">PROV-N</span> statements allow for an optional attribute
+ 
+
+
+    <p><span class="delete">
+  This means</span><span class="insert">Likewise, many PROV-N statements allow for an optional attribute
    list.  If it is omitted, this is the same as specifying an empty
-   attribute list:</p>
-   <div class="definition" id="optional-attributes"><div class="ruleTitle"><a class="internalDFN" href="#optional-attributes">Definition 2 (optional-attributes)</a></div>
+   attribute list:</span></p>
+   <div class="definition" id="optional-attributes"><div class="ruleTitle"><a class="internalDFN" href="#optional-attributes"><span class="insert">Definition 2 (optional-attributes)</span></a></div>
 <ol>
-  <li>
-
-  For each  <span class="name"><span class="delete">r</span><span class="insert">p</span></span> in {<span class="name">entity</span>, <span class="name">activity</span>,
-   <span class="name">agent</span>}, if <span class="name"><span class="delete">a_n</span><span class="insert">a</span><sub><span class="insert">n</span></sub></span> is not an attribute
+  <li><span class="insert">
+  For each  </span><span class="name"><span class="insert">p</span></span><span class="insert"> in {</span><span class="name"><span class="insert">entity</span></span><span class="insert">, </span><span class="name"><span class="insert">activity</span></span><span class="insert">,
+   </span><span class="name"><span class="insert">agent</span></span><span class="insert">}, if </span><span class="name"><span class="insert">a</span><sub><span class="insert">n</span></sub></span><span class="insert"> is not an attribute
    list parameter then the following definitional rule holds:
-  <p><span class="name"><span class="delete">r(a</span><span class="insert">p(a</span><sub>1</sub>,...,a<sub>n</sub>)</span> 
-   <span class="delete">holds </span><span class="conditional">IF AND ONLY IF</span>   <span class="name"><span class="delete">r(a</span><span class="insert">p(a</span><sub>1</sub>,...,a<sub>n</sub>,[])</span><span class="delete"> holds.</span><span class="insert">.
+  </span><p><span class="name"><span class="insert">p(a</span><sub><span class="insert">1</span></sub><span class="insert">,...,a</span><sub><span class="insert">n</span></sub><span class="insert">)</span></span> 
+   <span class="conditional"><span class="insert">IF AND ONLY IF</span></span>   <span class="name"><span class="insert">p(a</span><sub><span class="insert">1</span></sub><span class="insert">,...,a</span><sub><span class="insert">n</span></sub><span class="insert">,[])</span></span><span class="insert">.
   </span></p></li>
-     
-  <li>
-     For each <span class="name">r</span> in { 
-<span class="name">used</span>,
-<span class="name">wasGeneratedBy</span>,
-<span class="name">wasInvalidated</span>,
-<span class="name">wasInfluencedBy</span>,
-<span class="name">wasStartedBy</span>,
-<span class="name">wasEndedBy</span>,
-<span class="name">wasInformedBy</span>,
-<span class="name">wasDerivedFrom</span>,
-<span class="name">wasAttributedTo</span>,
-<span class="name">wasAssociatedWith</span>,
-<span class="name">actedOnBehalfOf</span>}, if <span class="name"><span class="delete">a_n</span><span class="insert">a</span><sub><span class="insert">n</span></sub></span> is not an
+  <li><span class="insert">
+     For each </span><span class="name"><span class="insert">r</span></span><span class="insert"> in { 
+</span><span class="name"><span class="insert">used</span></span><span class="insert">,
+</span><span class="name"><span class="insert">wasGeneratedBy</span></span><span class="insert">,
+</span><span class="name"><span class="insert">wasInvalidated</span></span><span class="insert">,
+</span><span class="name"><span class="insert">wasInfluencedBy</span></span><span class="insert">,
+</span><span class="name"><span class="insert">wasStartedBy</span></span><span class="insert">,
+</span><span class="name"><span class="insert">wasEndedBy</span></span><span class="insert">,
+</span><span class="name"><span class="insert">wasInformedBy</span></span><span class="insert">,
+</span><span class="name"><span class="insert">wasDerivedFrom</span></span><span class="insert">,
+</span><span class="name"><span class="insert">wasAttributedTo</span></span><span class="insert">,
+</span><span class="name"><span class="insert">wasAssociatedWith</span></span><span class="insert">,
+</span><span class="name"><span class="insert">actedOnBehalfOf</span></span><span class="insert">}, if </span><span class="name"><span class="insert">a</span><sub><span class="insert">n</span></sub></span><span class="insert"> is not an
    attribute list parameter then the following definition holds:
    
-  <p> <span class="name"><span class="delete">r(id;a</span><span class="insert">r(id; a</span><sub>1</sub>,...,a<sub>n</sub>)</span><span class="delete"> holds
-   </span> 
-   <span class="conditional">IF AND ONLY IF</span>   <span class="name"><span class="delete">r(id;a</span><span class="insert">r(id; a</span><sub>1</sub>,...,a<sub>n</sub>,[])</span><span class="delete"> holds.</span><span class="insert">.</span></p></li></ol>
+  </span><p> <span class="name"><span class="insert">r(id; a</span><sub><span class="insert">1</span></sub><span class="insert">,...,a</span><sub><span class="insert">n</span></sub><span class="insert">)</span></span> 
+   <span class="conditional"><span class="insert">IF AND ONLY IF</span></span>   <span class="name"><span class="insert">r(id; a</span><sub><span class="insert">1</span></sub><span class="insert">,...,a</span><sub><span class="insert">n</span></sub><span class="insert">,[])</span></span><span class="insert">.</span></p></li></ol>
     </div>   
 
-    <p>  Finally, many PROV
-  statements have other optional arguments or short forms that can be
-  used if none of the optional arguments is present.  These are
-  handled by specific rules listed below.  </p>
-
-<div class="definition" id="definition-short-forms"><div class="ruleTitle"><a class="internalDFN" href="#definition-short-forms">Definition 3 (definition-short-forms)</a></div>
+
+ <div class="remark">
+  <p><span class="insert">Definitions  </span><a class="rule-ref" href="#optional-identifiers"><span><span class="insert">Definition 1 (optional-identifiers)</span></span></a><span class="insert"> and </span><a class="rule-ref" href="#optional-attributes"><span><span class="insert">Definition 2 (optional-attributes)</span></span></a><span class="insert">.  
+do not apply to </span><span class="name"><span class="insert">alternateOf</span></span><span class="insert">, </span><span class="name"><span class="insert">specializationOf</span></span><span class="insert">, and </span><span class="name"><span class="insert">mentionOf</span></span><span class="insert">, which do not have identifiers and attributes.
+</span></p>
+ </div>
+
+
+    <p><span class="insert">  Finally, many PROV
+  statements have other optional arguments or short forms</span> that <span class="insert">can be
+  used </span>if <span class="delete">all</span><span class="insert">none</span> of the <span class="delete">provenance expressions matching </span><span class="delete">hyp_1</span><span class="delete">... </span><span class="delete">hyp_k</span><span class="delete">
+  can be found in a PROV instance, we can add all of the expressions
+  </span><span class="delete">concl_1</span><span class="delete"> ... </span><span class="delete">concl_n</span><span class="delete"> to the instance, possibly after generating fresh
+  identifiers </span><span class="delete">a_1</span><span class="delete">,...,</span><span class="delete">a_m</span><span class="delete"> for unknown objects.</span><span class="insert">optional arguments is present.</span>  These <span class="insert">are
+  handled by specific rules listed below.  </span></p>
+
+<div class="definition" id="definition-short-forms"><div class="ruleTitle"><a class="internalDFN" href="#definition-short-forms"><span class="insert">Definition 3 (definition-short-forms)</span></a></div>
  <p>
   
   </p><ol>
-    <li> <span class="name">activity(id,attrs)</span> <span class="conditional">IF AND ONLY IF</span> <span class="name">activity(id,-,-,attrs)</span>.
-    </li>
-    <li><span class="name"><span class="delete">wasGeneratedBy(id;e,attrs)</span><span class="insert">wasGeneratedBy(id; e,attrs)</span></span> <span class="conditional">IF AND ONLY IF</span> <span class="name"><span class="delete">wasGeneratedBy(id;e,-,-,attrs)</span><span class="insert">wasGeneratedBy(id; e,-,-,attrs)</span></span>.
-    </li>
-    <li><span class="name"><span class="delete">used(id;a,attrs)</span><span class="insert">used(id; a,attrs)</span></span> <span class="conditional">IF AND ONLY IF</span> <span class="name"><span class="delete">used(id;a,-,-,attrs)</span><span class="insert">used(id; a,-,-,attrs)</span></span>.
-   </li>
-   <li><span class="name"><span class="delete">wasStartedBy(id;a,attrs)</span><span class="insert">wasStartedBy(id; a,attrs)</span></span> <span class="conditional">IF AND ONLY IF</span> <span class="name"><span class="delete">wasStartedBy(id;a,-,-,-,attrs)</span><span class="insert">wasStartedBy(id; a,-,-,-,attrs)</span></span>.
-   </li>
-    <li><span class="name"><span class="delete">wasEndedBy(id;a,attrs)</span><span class="insert">wasEndedBy(id; a,attrs)</span></span> <span class="conditional">IF AND ONLY IF</span> <span class="name"><span class="delete">wasEndedBy(id;a,-,-,-,attrs)</span><span class="insert">wasEndedBy(id; a,-,-,-,attrs)</span></span>.
-   </li>
-    <li><span class="name"><span class="delete">wasInvalidatedBy(id;e,attrs)</span><span class="insert">wasInvalidatedBy(id; e,attrs)</span></span> <span class="conditional">IF AND ONLY IF</span> <span class="name"><span class="delete">wasInvalidatedBy(id;e,-,-,attrs)</span><span class="insert">wasInvalidatedBy(id; e,-,-,attrs)</span></span>.
-   </li>
-    <li><span class="name"><span class="delete">wasDerivedFrom(id;e2,e1,attrs)</span><span class="insert">wasDerivedFrom(id; e2,e1,attrs)</span></span> <span class="conditional">IF AND ONLY IF</span> <span class="name"><span class="delete">wasDerivedFrom(id;e2,e1,-,-,-,attrs)</span><span class="insert">wasDerivedFrom(id; e2,e1,-,-,-,attrs)</span></span>.
-   </li>
-    <li><span class="name"><span class="delete">wasAssociatedWith(id;e,attrs)</span><span class="insert">wasAssociatedWith(id; e,attrs)</span></span> <span class="conditional">IF AND ONLY IF</span> <span class="name"><span class="delete">wasAssociatedWith(id;e,-,-,attrs)</span><span class="insert">wasAssociatedWith(id; e,-,-,attrs)</span></span>.
-   </li>
-    <li><span class="name"><span class="delete">actedOnBehalfOf(id;a2,a1,attrs)</span><span class="insert">actedOnBehalfOf(id; a2,a1,attrs)</span></span> <span class="conditional">IF AND ONLY IF</span> <span class="name"><span class="delete">actedOnBehalfOf(id;a2,a1,-,attrs)</span><span class="insert">actedOnBehalfOf(id; a2,a1,-,attrs)</span></span>.
-   </li>
+    <li> <span class="name"><span class="insert">activity(id,attrs)</span></span> <span class="conditional"><span class="insert">IF AND ONLY IF</span></span> <span class="name"><span class="insert">activity(id,-,-,attrs)</span></span><span class="insert">.
+    </span></li>
+    <li><span class="name"><span class="insert">wasGeneratedBy(id; e,attrs)</span></span> <span class="conditional"><span class="insert">IF AND ONLY IF</span></span> <span class="name"><span class="insert">wasGeneratedBy(id; e,-,-,attrs)</span></span><span class="insert">.
+    </span></li>
+    <li><span class="name"><span class="insert">used(id; a,attrs)</span></span> <span class="conditional"><span class="insert">IF AND ONLY IF</span></span> <span class="name"><span class="insert">used(id; a,-,-,attrs)</span></span><span class="insert">.
+   </span></li>
+   <li><span class="name"><span class="insert">wasStartedBy(id; a,attrs)</span></span> <span class="conditional"><span class="insert">IF AND ONLY IF</span></span> <span class="name"><span class="insert">wasStartedBy(id; a,-,-,-,attrs)</span></span><span class="insert">.
+   </span></li>
+    <li><span class="name"><span class="insert">wasEndedBy(id; a,attrs)</span></span> <span class="conditional"><span class="insert">IF AND ONLY IF</span></span> <span class="name"><span class="insert">wasEndedBy(id; a,-,-,-,attrs)</span></span><span class="insert">.
+   </span></li>
+    <li><span class="name"><span class="insert">wasInvalidatedBy(id; e,attrs)</span></span> <span class="conditional"><span class="insert">IF AND ONLY IF</span></span> <span class="name"><span class="insert">wasInvalidatedBy(id; e,-,-,attrs)</span></span><span class="insert">.
+   </span></li>
+    <li><span class="name"><span class="insert">wasDerivedFrom(id; e2,e1,attrs)</span></span> <span class="conditional"><span class="insert">IF AND ONLY IF</span></span> <span class="name"><span class="insert">wasDerivedFrom(id; e2,e1,-,-,-,attrs)</span></span><span class="insert">.
+   </span></li>
+    <li><span class="name"><span class="insert">wasAssociatedWith(id; e,attrs)</span></span> <span class="conditional"><span class="insert">IF AND ONLY IF</span></span> <span class="name"><span class="insert">wasAssociatedWith(id; e,-,-,attrs)</span></span><span class="insert">.
+   </span></li>
+    <li><span class="name"><span class="insert">actedOnBehalfOf(id; a2,a1,attrs)</span></span> <span class="conditional"><span class="insert">IF AND ONLY IF</span></span> <span class="name"><span class="insert">actedOnBehalfOf(id; a2,a1,-,attrs)</span></span><span class="insert">.
+   </span></li>
   </ol>
  </div>
 
  <div class="remark">
 
 
-  <p>
-  
-There<span class="insert"> are no expansion rules for entity, agent, communication,
- attribution, influence, alternate, specialization, or mention</span>
-   <span class="insert">relations, because these
+  <p><span class="insert">
+There are no expansion rules for entity, agent, communication,
+ attribution, influence, alternate, specialization, or mention
+   relations, because these
  have no optional parameters aside from the identifier and attributes,
- which </span>are <span class="delete">also no expansion</span><span class="insert">expanded by the</span> rules <span class="delete">for entity, agent, communiction,
-   attribution, influence, alternate, or specialization, because these have no optional parameters aside
-   from the identifier and attribute, which are expanded by other
-   rules above.</span><span class="insert">in </span><a class="rule-ref" href="#optional-identifiers"><span><span class="insert">Definition 1 (optional-identifiers)</span></span></a> <a class="rule-ref" href="#optional-attributes"><span><span class="insert">Definition 2 (optional-attributes)</span></span></a><span class="insert">.  </span></p>
+ which are expanded by the rules in </span><a class="rule-ref" href="#optional-identifiers"><span><span class="insert">Definition 1 (optional-identifiers)</span></span></a><span class="insert"> and </span><a class="rule-ref" href="#optional-attributes"><span><span class="insert">Definition 2 (optional-attributes)</span></span></a><span class="insert">.  </span></p>
    </div>
 
 
-<p id="optional-placeholders_text">Finally,  most optional parameters (written <span class="name">-</span>) are, for the purpose of this document,
-  considered to be distinct, fresh existential variables.  Thus,
+<p id="optional-placeholders_text"><span class="insert">Finally,  most optional parameters (written </span><span class="name"><span class="insert">-</span></span><span class="insert">) are, for the purpose of this document,
+  considered to be distinct, </span>fresh
+  <span class="insert"> existential variables.  Optional parameters are defined in  [</span><cite><a class="bibref" rel="biblioentry" href="#bib-PROV-DM"><span class="insert">PROV-DM</span></a></cite><span class="insert">] and in [</span><cite><a class="bibref" rel="biblioentry" href="#bib-PROV-N"><span class="insert">PROV-N</span></a></cite><span class="insert">] for each type of PROV statement.
+  Thus,
   before proceeding to apply other definitions or inferences, most
-  occurrences of <span class="name">-</span> <span class="delete">must</span><span class="insert">are to</span> be replaced
+  occurrences of </span><span class="name"><span class="insert">-</span></span><span class="insert"> are to be replaced
  by fresh existential variables, distinct from any others occurring in
   the instance.
-  The only <span class="delete">exceptions,</span><span class="insert">exceptions to this general rule,</span> where  <span class="name">-</span> <span class="delete">must</span><span class="insert">are to</span> be left
-  in place, are the <a href="http://www.w3.org/TR/prov-dm/#derivation.activity">activity </a><span class="insert">, </span><a href="http://www.w3.org/TR/prov-dm/#derivation.generation"><span class="insert">generation</span></a><span class="insert">, and </span><a href="http://www.w3.org/TR/prov-dm/#derivation.usage"><span class="insert">usage</span></a><span class="insert"> parameters in </span><span class="name"><span class="insert">wasDerivedFrom</span></span><span class="insert"> and
-  the </span><a href="http://www.w3.org/TR/prov-dm/#association.plan"><span class="insert">plan</span></a>
-  parameter in <span class="name"><span class="delete">wasDerivedFrom</span><span class="delete"> and
-  the </span><span class="delete">plan</span><span class="delete"> parameter</span><span class="insert">wasAssociatedWith</span></span><span class="insert">.  This is
-  further explained</span> in <span class="delete">wasAssociatedWith</span><span class="delete">.</span><span class="insert">remarks below.</span>
-  </p>
-
-   <p>The <span class="delete">following table characterizes the</span><span class="insert">treatment of optional parameters is specified formally using
-   the auxiliary concept of</span> <dfn id="dfn-expandable-parameter"><span class="insert">expandable parameter</span></dfn><span class="insert">.  An
+  The only exceptions to this general rule, where  </span><span class="name"><span class="insert">-</span></span><span class="insert"> are to be left
+  in place, are the </span><a href="http://www.w3.org/TR/prov-dm/#derivation.activity"><span class="insert">activity</span></a><span class="insert">, </span><a href="http://www.w3.org/TR/prov-dm/#derivation.generation"><span class="insert">generation</span></a><span class="insert">, and </span><a href="http://www.w3.org/TR/prov-dm/#derivation.usage"><span class="insert">usage</span></a><span class="insert"> parameters in </span><span class="name"><span class="insert">wasDerivedFrom</span></span><span class="insert"> and
+  the </span><a href="http://www.w3.org/TR/prov-dm/#association.plan"><span class="insert">plan</span></a><span class="insert">
+  parameter in </span><span class="name"><span class="insert">wasAssociatedWith</span></span><span class="insert">.  This is
+  further explained in remarks below.
+  </span></p>
+
+   <p><span class="insert">The treatment of optional parameters is specified formally using
+   the auxiliary concept of </span><dfn id="dfn-expandable-parameter"><span class="insert">expandable parameter</span></dfn><span class="insert">.  An
    expandable parameter is one that can be omitted using the
    placeholder </span><span class="name"><span class="insert">-</span></span><span class="insert">, and if so, it is
    to be replaced by a fresh existential identifier.
-  </span><a href="#expandable-parameters-fig"><span class="insert">Table 2</span></a><span class="insert"> defines the </span><a href="#dfn-expandable-parameter" class="internalDFN">expandable
-    parameter</a>s of the properties of PROV, needed in <span class="delete">the
-    following definition.</span><a class="rule-ref" href="#optional-placeholders"><span><span class="insert">Definition 4 (optional-placeholders)</span></span></a><span class="insert">.</span>  For emphasis, the <span class="delete">two</span><span class="insert">four</span> optional parameters
-    that are not <a title="expandable parameter" href="#dfn-expandable-parameter" class="internalDFN">expandable</a> are
-    also listed.<span class="insert">  Parameters that cannot have value </span><span class="name"><span class="insert">-</span></span><span class="insert">, and identifiers that are 
+  </span><a href="#expandable-parameters-fig"><span class="insert">Table 3</span></a><span class="insert"> defines the </span><a href="#dfn-expandable-parameter" class="internalDFN"><span class="insert">expandable
+    parameter</span></a><span class="insert">s of the properties of PROV, needed in </span><a class="rule-ref" href="#optional-placeholders"><span><span class="insert">Definition 4 (optional-placeholders)</span></span></a><span class="insert">.  For emphasis, the four optional parameters
+    that are not </span><a title="expandable parameter" href="#dfn-expandable-parameter" class="internalDFN"><span class="insert">expandable</span></a><span class="insert"> are
+    also listed.  Parameters that cannot have value </span><span class="name"><span class="insert">-</span></span><span class="insert">, and </span>identifiers <span class="delete">might later be found to be equal to known identifiers;
+  these fresh identifiers play </span><span class="insert">that are 
    expanded by </span><a class="rule-ref" href="#optional-identifiers"><span><span class="insert">Definition 1 (optional-identifiers)</span></span></a><span class="insert">, are not listed.</span></p>
   <div id="expandable-parameters-fig">
-    <table id="expandable-parameters" border="1" class="thinborder" style="margin-left: auto; margin-right: auto; border-color: black;">
-<caption id="expandable-parameters"><span class="insert">Table 2: Expandable and
+    <table id="expandable-parameters_table" border="1" class="thinborder" style="margin-left: auto; margin-right: auto; border-color: black;">
+<caption id="expandable-parameters"><span class="insert">Table 3: Expandable and
     Non-Expandable Parameters</span></caption>
 <tbody><tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td></tr>
       <tr>
-	<th>Relation</th>
-	<th>Expandable </th>
-	<th>Non-expandable</th>
+	<th><span class="insert">Relation</span></th>
+	<th><span class="insert">Expandable </span></th>
+	<th><span class="insert">Non-expandable</span></th>
       </tr>
      <tr>
 	<td class="name"><span class="insert">used(id; a,e,t,attrs)</span></td>
@@ -1511,268 +2611,292 @@
 	<td></td>
       </tr>
       <tr>
-	<td class="name"><span class="delete">wasGeneratedBy(id;e,a,t,attrs)</span><span class="insert">wasGeneratedBy(id; e,a,t,attrs)</span></td>
-	<td class="name"><span class="delete">id,a,t</span><span class="insert">a,t</span></td>
+	<td class="name"><span class="insert">wasGeneratedBy(id; e,a,t,attrs)</span></td>
+	<td class="name"><span class="insert">a,t</span></td>
 	<td></td>
     </tr>
-      <tr>
-	<td class="name"><span class="delete">used(id;a,e,t,attrs)</span><span class="insert">wasInformedBy(id; a2,a1,attrs)</span></td>
-	<td class="name"><span class="delete">id,e,t</span></td>
-	<td></td>
-      </tr>
+
       <tr>
-	<td class="name"><span class="delete">wasInformedBy(id;a2,a1,attrs)</span><span class="insert">wasStartedBy(id; a2,e,a1,t,attrs)</span></td>
-	<td class="name"><span class="delete">id</span><span class="insert">e,a1,t</span></td>
-	<td></td>
-      </tr>
-      <tr>
-	<td class="name"><span class="delete">wasStartedBy(id;a2,e,a1,t,attrs)</span><span class="insert">wasEndedBy(id; a2,e,a1,t,attrs)</span></td>
-	<td class="name"><span class="delete">id,e,a1,t</span><span class="insert">e,a1,t</span></td>
-	<td></td>
-      </tr>
-      <tr>
-	<td class="name"><span class="delete">wasEndedBy(id;a2,e,a1,t,attrs)</span><span class="insert">wasInvalidatedBy(id; e,a,t,attrs)</span></td>
-	<td class="name"><span class="delete">id,e,a1,t</span><span class="insert">a,t</span></td>
+	<td class="name"><span class="insert">wasStartedBy(id; a2,e,a1,t,attrs)</span></td>
+	<td class="name"><span class="insert">e,a1,t</span></td>
 	<td></td>
       </tr>
       <tr>
-	<td class="name"><span class="delete">wasInvalidatedBy(id;e,a,t,attrs)</span><span class="insert">wasDerivedFrom(id; e2,e1,a,g2,u1,attrs)</span></td>
-	<td class="name"><span class="delete">id,a,t</span><span class="insert">e1,e2</span></td>
-	<td class="name"><span class="insert">a,g2,u1</span></td>
+	<td class="name"><span class="insert">wasEndedBy(id; a2,e,a1,t,attrs)</span></td>
+	<td class="name"><span class="insert">e,a1,t</span></td>
+	<td></td>
+      </tr>
+      <tr>
+	<td class="name"><span class="insert">wasInvalidatedBy(id; e,a,t,attrs)</span></td>
+	<td class="name"><span class="insert">a,t</span></td>
+	<td></td>
+      </tr>
+      <tr>
+	<td class="name"><span class="insert">wasDerivedFrom(id; e2,e1,-,g,u,attrs)</span></td>
+	<td class="name"></td>
+	<td class="name"><span class="insert">g,u</span></td>
+      </tr>      <tr>
+	<td class="name"><span class="insert">wasDerivedFrom(id; e2,e1,a,g,u,attrs)</span><br><span class="insert">(where </span><span class="name">a<span class="delete"> similar role in PROV constraints to existential variables in logic.
+</span>
+<span class="delete">
+  TODO: Is this re-inventing blank nodes in PROV-DM, and do we want to
+  do this?  A lot of the inferences have existentially quantified
+  conclusions (and there</span></span> is <span class="delete">some theory that supports this).
+
+  TODO: Make sure conjunctive reading of conclusion is clear.
+  </span><span class="insert">not placeholder </span><span class="name"><span class="insert">-</span></span><span class="insert">)</span></td>
+	<td class="name"><span class="insert">g,u</span></td>
+	<td class="name"><span class="insert">a</span></td>
       </tr>
       
 
+
       <tr>
-	<td class="name"><span class="delete">wasDerivedFrom(id;e2,e1,a,g2,u1,attrs)</span><span class="insert">wasAttributedTo(id; e,ag,attr)</span></td>
-	<td class="name"><span class="delete">id,g2,u1</span>
-	<span class="delete">a</span>
-      
-      
-	<span class="delete">wasDerivedFrom(id;e2,e1,attrs)</span>
-	<span class="delete">id</span></td> 
-	<td></td>
-     </tr>
-      <tr>
-	<td class="name"><span class="delete">wasAttributedTo(id;e,ag,attr)</span><span class="insert">wasAssociatedWith(id; a,ag,pl,attrs)</span></td>
-	<td class="name"><span class="delete">id</span> 
-	
-     
-      
-	<span class="delete">wasAssociatedWith(id;a,ag,pl,attrs)</span>
-	<span class="delete">id,ag</span><span class="insert">ag</span></td> 
-	<td class="name">pl</td>
+	<td class="name"><span class="insert">wasAssociatedWith(id; a,ag,pl,attrs)</span></td>
+	<td class="name"><span class="insert">ag</span></td> 
+	<td class="name"><span class="insert">pl</span></td>
      </tr>
       <tr>
-	<td class="name"><span class="delete">actedOnBehalfOf(id;ag2,ag1,a,attrs)</span><span class="insert">actedOnBehalfOf(id; ag2,ag1,a,attrs)</span></td>
-	<td class="name"><span class="delete">id,a</span><span class="insert">a</span></td> 
-	<td></td>
-     </tr>
-      <tr>
-	<td class="name"><span class="delete">wasInfluencedBy(id;e2,e1,attrs)</span><span class="insert">wasInfluencedBy(id; o2,o1,attrs)</span></td>
-	<td class="name"><span class="delete">id</span></td> 
+	<td class="name"><span class="insert">actedOnBehalfOf(id; ag2,ag1,a,attrs)</span></td>
+	<td class="name"><span class="insert">a</span></td> 
 	<td></td>
      </tr>
-</tbody></table>
+
+   </tbody></table>
     </div>
 
-<p> <a class="rule-ref" href="#optional-placeholders"><span><span class="insert">Definition 4 (optional-placeholders)</span></span></a><span class="insert"> states how parameters are to be expanded,
-    using the expandable parameters defined in the   </span><a href="#expandable-parameters-fig"><span class="insert">Table 2</span></a><span class="insert">.</span></p>
+<p> <span class="delete">Definitions</span><a class="rule-ref" href="#optional-placeholders"><span><span class="insert">Definition 4 (optional-placeholders)</span></span></a><span class="insert"> states how parameters are to be expanded,
+    using the expandable parameters defined in   </span><a href="#expandable-parameters-fig"><span class="insert">Table 3</span></a><span class="insert">.  The last two parts, 4 and 5,
+  indicate how to handle expansion of parameters for
+  </span><span class="name"><span class="insert">wasDerivedFrom</span></span><span class="insert"> expansion, which is only allowed for the
+  generation and use parameters when the activity is specified.
+  Essentially, the definitions state that parameters  
+</span><span class="name"><span class="insert">g,u</span></span><span class="insert"> are expandable only if the activity is specified, i.e., if parameter </span><span class="name"><span class="insert">a</span></span><span class="insert"> is provided.
+
+The rationale for this is that when a is provided, then there</span> have <span class="insert">to be two events, namely </span><span class="name"><span class="insert">u</span></span><span class="insert"> and </span><span class="name"><span class="insert">g</span></span><span class="insert">, which account for the usage of </span><span class="name"><span class="insert">e1</span></span><span class="insert"> and the generation of </span><span class="name"><span class="insert">e2</span></span><span class="insert">, respectively, by </span><span class="name"><span class="insert">a</span></span><span class="insert">. Conversely, if </span><span class="name"><span class="insert">a</span></span><span class="insert"> is not provided, then one cannot tell whether one or more activities are involved in the derivation, and the explicit introduction of such events, which correspond to a single acitivity, would therefore not be justified.  </span></p>
+
+
+<p><span class="insert">  A  later constraint, </span><a class="rule-ref" href="#impossible-unspecified-derivation-generation-use"><span><span class="insert">Constraint 53 (impossible-unspecified-derivation-generation-use)</span></span></a><span class="insert">,
+  forbids specifying generation and use parameters when the activity
+  is unspecified.</span></p>
     
-  <div class="definition" id="optional-placeholders"><div class="ruleTitle"><a class="internalDFN" href="#optional-placeholders">Definition 4 (optional-placeholders)</a></div>
+  <div class="definition" id="optional-placeholders"><div class="ruleTitle"><a class="internalDFN" href="#optional-placeholders"><span class="insert">Definition 4 (optional-placeholders)</span></a></div>
     <ol><li>
-
       <span class="name"><span class="insert">activity(id,-,t2,attrs)</span></span> <span class="conditional"><span class="insert">IF AND ONLY
-   IF</span></span><span class="insert"> there exists </span><span class="name"><span class="insert">t1</span></span><span class="insert"> such that </span><span class="name"><span class="insert">activity(id,t1,t2,attrs)</span></span><span class="insert">.
+   IF</span></span><span class="insert"> there exists </span><span class="name"><span class="insert">t1</span></span><span class="insert"> such that </span><span class="name"><span class="insert">activity(id,t1,t2,attrs)</span></span><span class="insert">. Here, </span><span class="name"><span class="insert">t2</span></span> <em class="rfc2119" title="may"><span class="insert">may</span></em><span class="insert"> be a placeholder.
   </span></li>
 <li>  <span class="name"><span class="insert">activity(id,t1,-,attrs)</span></span> <span class="conditional"><span class="insert">IF AND ONLY
-   IF</span></span><span class="insert"> there exists </span><span class="name"><span class="insert">t2</span></span><span class="insert"> such that </span><span class="name"><span class="insert">activity(id,t1,t2,attrs)</span></span><span class="insert">.
+   IF</span></span><span class="insert"> there exists </span><span class="name"><span class="insert">t2</span></span><span class="insert"> such that </span><span class="name"><span class="insert">activity(id,t1,t2,attrs)</span></span><span class="insert">. Here, </span><span class="name"><span class="insert">t1</span></span> <em class="rfc2119" title="must not"><span class="insert">must not</span></em><span class="insert"> be a placeholder.
 </span></li>
 
-    <li>For each   <span class="name">r</span> in {<span class="delete">entity</span> 
-<span class="name"><span class="insert">used</span></span>, <span class="delete">activity</span>
-<span class="name"><span class="insert">wasGeneratedBy</span></span><span class="insert">,
-</span><span class="name"><span class="insert">wasInformedBy</span></span><span class="insert">,
+    <li><span class="insert">For each  </span><span class="name"><span class="insert">r</span></span><span class="insert"> in { 
+</span><span class="name"><span class="insert">used</span></span><span class="insert">,
+</span><span class="name"><span class="insert">wasGeneratedBy</span></span><span class="insert">,
+
 </span><span class="name"><span class="insert">wasStartedBy</span></span><span class="insert">,
 </span><span class="name"><span class="insert">wasEndedBy</span></span><span class="insert">,
 </span><span class="name"><span class="insert">wasInvalidatedBy</span></span><span class="insert">,
-</span><span class="name"><span class="insert">wasDerivedFrom</span></span><span class="insert">,
-</span><span class="name"><span class="insert">wasAttributedTo</span></span><span class="insert">,
+
+
 </span><span class="name"><span class="insert">wasAssociatedWith</span></span><span class="insert">,
-</span><span class="name"><span class="insert">actedOnBehalfOf</span></span>,
-    <span class="name"><span class="delete">agent</span><span class="delete">}, the following definition
-    holds:
-      </span>
-      <span class="delete">r(a</span><span class="delete">0</span><span class="delete">,...,a</span><span class="delete">i-1</span><span class="delete">, -, a</span><span class="delete">i+1</span><span class="delete">, ...,a</span><span class="delete">n</span><span class="delete">) </span> <span class="delete">IF AND ONLY IF</span><span class="delete"> there exists </span><span class="delete">a'</span><span class="delete">
-    such that </span><span class="delete">r(a</span><span class="delete">0</span><span class="delete">,...,a</span><span class="delete">i-1</span><span class="delete">,a',a</span><span class="delete">i+1</span><span class="delete">,...,a</span><span class="delete">n</span><span class="delete">)</span><span class="delete">.
-    </span>
-    <span class="delete">For each  </span><span class="delete">r</span><span class="delete"> in { 
-</span><span class="delete">used</span><span class="delete">,
-</span><span class="delete">wasGeneratedBy</span><span class="delete">,
-</span>wasInfluencedBy<span class="delete">,
-</span><span class="delete">wasInvalidatedBy</span><span class="delete">,
-</span><span class="delete">wasStartedBy</span><span class="delete">,
-</span><span class="delete">wasEndedBy</span><span class="delete">,
-</span><span class="delete">wasInformedBy</span><span class="delete">,
-</span><span class="delete">wasDerivedFrom</span><span class="delete">,
-</span><span class="delete">wasAttributedTo</span><span class="delete">,
-</span><span class="delete">wasAssociatedWith</span><span class="delete">,
-</span><span class="delete">actedOnBehalfOf</span></span>}, if the <span class="name">i</span>th parameter
-    of <span class="name">r</span> is an <a href="#dfn-expandable-parameter" class="internalDFN">expandable parameter</a>
-    of <span class="name">r</span> <span class="insert">
-    as specified in </span><a href="#expandable-parameters-fig"><span class="insert">Table 2</span></a>
-then the following definition holds:
-    <p> <span class="name">r(a<sub>0</sub>;...,a<sub>i-1</sub>, -, a<sub>i+1</sub>, ...,a<sub>n</sub>) </span> <span class="conditional">IF AND ONLY IF</span> there exists <span class="name">a'</span>
-    such that <span class="name">r(a<sub>0</sub>;...,a<sub>i-1</sub>,a',a<sub>i+1</sub>,...,a<sub>n</sub>)</span>.
-    </p></li></ol>
+</span><span class="name"><span class="insert">actedOnBehalfOf</span></span><span class="insert">
+   
+    }, if the </span><span class="name"><span class="insert">i</span></span><span class="insert">th parameter
+    of </span><span class="name"><span class="insert">r</span></span><span class="insert"> is an </span><a href="#dfn-expandable-parameter" class="internalDFN"><span class="insert">expandable parameter</span></a><span class="insert">
+    of </span><span class="name"><span class="insert">r</span></span><span class="insert">
+    as specified in </span><a href="#expandable-parameters-fig"><span class="insert">Table 3</span></a><span class="insert">
+then </span>the following <span class="delete">general form:</span><span class="insert">definition holds:
+    </span><p> <span class="name"><span class="insert">r(a</span><sub><span class="insert">0</span></sub><span class="insert">;...,a</span><sub><span class="insert">i-1</span></sub><span class="insert">, -, a</span><sub><span class="insert">i+1</span></sub><span class="insert">, ...,a</span><sub><span class="insert">n</span></sub><span class="insert">) </span></span> <span class="conditional"><span class="insert">IF AND ONLY IF</span></span><span class="insert"> there exists </span><span class="name"><span class="insert">a'</span></span><span class="insert">
+    such that </span><span class="name"><span class="insert">r(a</span><sub><span class="insert">0</span></sub><span class="insert">;...,a</span><sub><span class="insert">i-1</span></sub><span class="insert">,a',a</span><sub><span class="insert">i+1</span></sub><span class="insert">,...,a</span><sub><span class="insert">n</span></sub><span class="insert">)</span></span><span class="insert">.
+    </span></p></li>
+  <li><span class="insert">If </span><span class="name"><span class="insert">a</span></span><span class="insert"> is not the placeholder </span><span class="name"><span class="insert">-</span></span><span class="insert">, and </span><span class="name"><span class="insert">u</span></span><span class="insert"> is any term, then the following definition holds:
+   </span><p> <span class="name"><span class="insert">wasDerivedFrom(id;e2,e1,a,-,u,attrs)</span></span> <span class="conditional"><span class="insert">IF AND ONLY IF</span></span><span class="insert"> there exists </span><span class="name"><span class="insert">g</span></span><span class="insert">
+    such that </span><span class="name"><span class="insert">wasDerivedFrom(id; e2,e1,a,g,u,attrs)</span></span><span class="insert">.</span></p></li>
+  <li><span class="insert">If </span><span class="name"><span class="insert">a</span></span><span class="insert"> is not the placeholder </span><span class="name"><span class="insert">-</span></span><span class="insert">, and </span><span class="name"><span class="insert">g</span></span><span class="insert"> is any term,
+    then the following definition holds:
+   </span><p> <span class="name"><span class="insert">wasDerivedFrom(id;e2,e1,a,g,-,attrs)</span></span> <span class="conditional"><span class="insert">IF AND ONLY IF</span></span><span class="insert"> there exists </span><span class="name"><span class="insert">u</span></span><span class="insert">
+    such that </span><span class="name"><span class="insert">wasDerivedFrom(id; e2,e1,a,g,u,attrs)</span></span><span class="insert">.</span></p></li></ol>
     </div>
 
   <div class="remark">
-<p>In an association of the form
-  <span class="name"><span class="delete">wasAssociatedWith(id;a, ag,-,attr)</span><span class="insert">wasAssociatedWith(id; a,ag,-,attr)</span></span>, the
+<p><span class="insert">In an association of the form
+  </span><span class="name"><span class="insert">wasAssociatedWith(id; a,ag,-,attr)</span></span><span class="insert">, the
   absence of a plan means: either no plan exists, or a plan exists but
-  it is not identified.  Thus, it is not equivalent to <span class="name"><span class="delete">wasAssociatedWith(id;a,ag,p,attr)</span><span class="insert">wasAssociatedWith(id; a,ag,p,attr)</span></span> where a
-  plan <span class="name">p</span> is given.</p>
+  it is not identified.  Thus, it is not equivalent to </span><span class="name"><span class="insert">wasAssociatedWith(id; a,ag,p,attr)</span></span><span class="insert"> where a
+  plan </span><span class="name"><span class="insert">p</span></span><span class="insert"> is given.</span></p>
 </div>
   <div class="remark">
-<p><span class="insert"> A derivation</span>  <span class="delete">Similarly,</span><span class="name"><span class="insert">wasDerivedFrom(id; e2,e1,a,gen,use,attrs)</span></span><span class="insert"> that
-  specifies an activity explicitly indicates that  this activity achieved the derivation, with</span> a<span class="insert"> usage </span><span class="name"><span class="insert">use</span></span><span class="insert"> of entity </span><span class="name"><span class="insert">e1</span></span><span class="insert">, and a generation </span><span class="name"><span class="insert">gen</span></span><span class="insert"> of entity </span><span class="name"><span class="insert">e2</span></span><span class="insert">.
+<p><span class="insert"> A derivation  </span><span class="name"><span class="insert">wasDerivedFrom(id; e2,e1,a,gen,use,attrs)</span></span><span class="insert"> that
+  specifies an activity explicitly indicates that  this activity achieved the derivation, with a usage </span><span class="name"><span class="insert">use</span></span><span class="insert"> of entity </span><span class="name"><span class="insert">e1</span></span><span class="insert">, and a generation </span><span class="name"><span class="insert">gen</span></span><span class="insert"> of entity </span><span class="name"><span class="insert">e2</span></span><span class="insert">.
   It differs from a derivation of the form
    </span><span class="name"><span class="insert">wasDerivedFrom(id; e2,e1,-,-,-,attrs)</span></span><span class="insert"> with 
   missing activity, generation, and usage. In the latter form, it is not specified
   if one or more activities are involved in the derivation. </span></p>
 
- <p><span class="insert">Let us consider a system, in which a derivation is underpinned by multiple activities. Conceptually, one could also model such a system with a new activity that encompasses the two original activities and underpins the derivation.   The infererences defined in this specification do not allow the latter modelling to be inferred from the former. Hence, the two</span>  <span class="delete">wasDerivedFrom(id;e2,e1,a,gen,use,attrs)</span><span class="delete"> that
-  specifies an activity explicitly is not
-  equivalent to </span><span class="delete">wasDerivedFrom(id;e2,e1,-,gen,use,attrs)</span><span class="delete"> with a
-  missing activity.</span><span class="insert">modellings of the same system are regarded as different in the context of this specification.</span></p>
+ <p><span class="insert">Let us consider a system, in which a derivation is underpinned by multiple activities. Conceptually, one could also model such a system with a new activity that encompasses the two original activities and underpins the derivation.   The inferences defined in this specification do not allow the latter modelling to be inferred from the former. Hence, the two  modellings of the same system are regarded as different in the context of this specification.</span></p>
     </div>
 </div>
     
 <div id="entities-and-activities" class="section">
-  <h3><span class="secno">4.2 </span>Entities and Activities</h3>
+  <h3><span class="secno"><span class="insert">4.2 </span></span><span class="insert">Entities and Activities</span></h3>
 
 
   
 
-<p id="communication-generation-use-inference_text">Communication between activities <span class="delete">is </span><a title="definition" href="#definition" class="internalDFN"><span class="delete">defined</span><span class="delete"> as</span><span class="insert">implies</span></a> the existence of an underlying
-entity generated by one activity and used by the <span class="delete">other.</span><span class="insert">other, and vice versa.</span></p>
-
-<div class="inference" id="communication-generation-use-inference"><div class="ruleTitle"><a class="internalDFN" href="#communication-generation-use-inference">Inference 5 (communication-generation-use-inference)</a></div>
+<p id="communication-generation-use-inference_text"><span class="insert">Communication between activities </span><a title="definition" href="#definition" class="internalDFN"><span class="insert">implies</span></a><span class="insert"> the existence of an underlying
+entity generated by one activity and used by the other, and vice versa.</span></p>
+
+
+  <span class="delete">defined_exp</span><span class="delete"> holds </span><div class="inference" id="communication-generation-use-inference"><div class="ruleTitle"><a class="internalDFN" href="#communication-generation-use-inference"><span class="insert">Inference 5 (communication-generation-use-inference)</span></a></div>
 <p>
-<span class="conditional">IF</span> 
-<span class="name"><span class="delete">wasInformedBy(_id;a2,a1,_attrs)</span><span class="delete">
-holds </span><span class="insert">wasInformedBy(_id; a2,a1,_attrs)</span></span>
-<span class="conditional">THEN</span>
- there exist <span class="name">e</span>,  <span class="name"><span class="delete">_id1</span><span class="insert">_gen</span></span>, <span class="name">_t1</span>, <span class="name"><span class="delete">_id2</span><span class="insert">_use</span></span>, and <span class="name">_t2</span>, 
-such that <span class="name"><span class="delete">wasGeneratedBy(_id1;e,a1,_t1,[])</span><span class="delete"> and </span><span class="delete">used(_id2;a2,e,_t2,[])</span><span class="insert">wasGeneratedBy(_gen; e,a1,_t1,[])</span></span><span class="insert"> and </span><span class="name"><span class="insert">used(_use; a2,e,_t2,[])</span></span> hold.</p>
+<span class="conditional">IF<span class="delete"> AND ONLY IF </span>
+  </span> 
+<span class="name"><span class="insert">wasInformedBy(_id; a2,a1,_attrs)</span></span>
+<span class="conditional"><span class="insert">THEN</span></span>
+ there <span class="delete">exists </span><span class="delete">a_1</span><span class="delete">,..., </span><span class="delete">a_m</span><span class="delete"> such that </span><span class="delete">defining_exp_1</span><span class="delete"> and</span><span class="insert">exist </span><span class="name"><span class="insert">e</span></span><span class="insert">,</span>  <span class="delete">... and </span><span class="delete">defining_exp_n</span><span class="delete">.
+  </span>
+ 
+  <span class="delete">
+  This means that a provenance expression defined_exp is defined in
+  terms of other expressions.  This can be viewed as a two-way
+  inference:  If </span><span class="delete">defined_exp</span><span class="delete">
+  can be found in a PROV instance, we can add all of the expressions
+</span><span class="delete">defining_exp_1</span><span class="delete"> ... </span><span class="delete">defining_exp_n</span><span class="delete"> to the instance, possibly after generating fresh
+  identifiers </span><span class="delete">a_1</span><span class="delete">,...,</span><span class="delete">a_m</span><span class="delete"> for unknown objects.  Conversely, if there
+  exist identifiers </span><span class="delete">a_1</span><span class="delete">...</span><span class="delete">a_m</span><span class="delete"> such that </span><span class="delete">defining_exp_1</span><span class="delete">
+  and ... and </span><span class="delete">defining_exp_n</span><span class="delete"> hold in the instance, we can add the defined
+  expression </span><span class="delete">def_exp</span><span class="delete">.  When an expression is defined in terms of
+  others, it is in a sense redundant; it is safe to replace it with
+  its definition.
+</span>
+  
+
+
+
+  <span class="delete">3.1 </span><span class="delete">Component 1: Entities and Activities</span>
+  
+
+<span class="delete">Communication between activities is </span><span class="delete">defined</span><span class="delete"> in terms
+as the existence of an underlying entity generated by one activity and used by the
+other.</span>
+
+<span class="delete">Given two activities identified by </span><span class="delete">a1</span><span class="delete"> and </span><span class="delete">a2</span><span class="name"><span class="insert">_gen</span></span><span class="insert">, </span><span class="name"><span class="insert">_t1</span></span><span class="insert">, </span><span class="name"><span class="insert">_use</span></span><span class="insert">, and </span><span class="name"><span class="insert">_t2</span></span>, 
+<span class="delete">wasInformedBy(a2,a1)</span><span class="delete">
+holds </span><span class="insert">such that </span><span class="name"><span class="insert">wasGeneratedBy(_gen; e,a1,_t1,[])</span></span><span class="insert"> and </span><span class="name"><span class="insert">used(_use; a2,e,_t2,[])</span></span><span class="insert"> hold.</span></p>
 </div>
 
+
 <p id="generation-use-communication-inference_text">
 
-</p><div class="note">
-A final check is required on <span class="delete">this inference</span><a class="rule-text" href="#generation-use-communication-inference_text"><span><span class="insert">Inference 6 (generation-use-communication-inference)</span></span></a> to ensure that it does not lead to non-termination, when combined with
-<a class="rule-text" href="#communication-generation-use-inference_text"><span>Inference 5 (communication-generation-use-inference)</span></a>.
-  </div>
-
- <div class="inference" id="generation-use-communication-inference"><div class="ruleTitle"><a class="internalDFN" href="#generation-use-communication-inference">Inference 6 (generation-use-communication-inference)</a></div>
+ </p><div class="inference" id="generation-use-communication-inference"><div class="ruleTitle"><a class="internalDFN" href="#generation-use-communication-inference"><span class="insert">Inference 6 (generation-use-communication-inference)</span></a></div>
 <p>
-<span class="conditional">IF</span>  <span class="name"><span class="delete">wasGeneratedBy(_id1;e,a1,_t1,_attrs1)</span><span class="insert">wasGeneratedBy(_gen; e,a1,_t1,_attrs1)</span></span>
-   and <span class="name"><span class="delete">used(_id2;a2,e,_t2,_attrs2)</span><span class="insert">used(_id2; a2,e,_t2,_attrs2)</span></span> hold
-   <span class="conditional">THEN</span>
- there exists <span class="name">_id</span>
-such that <span class="name"><span class="delete">wasInformedBy(_id;a2,a1,[])</span><span class="insert">wasInformedBy(_id; a2,a1,[])</span></span>
+<span class="conditional">IF<span class="delete"> AND ONLY IF</span></span>  <span class="name"><span class="insert">wasGeneratedBy(_gen; e,a1,_t1,_attrs1)</span></span><span class="insert">
+   and </span><span class="name"><span class="insert">used(_id2; a2,e,_t2,_attrs2)</span></span><span class="insert"> hold
+   </span><span class="conditional"><span class="insert">THEN</span></span>
+ there <span class="delete">is an entity  with some identifier </span><span class="delete">e</span><span class="delete"> and some sets of attribute-value pairs </span><span class="delete">attrs1</span><span class="delete"> and </span><span class="delete">attrs2</span><span class="delete">,</span><span class="insert">exists </span><span class="name"><span class="insert">_id</span></span>
+such that <span class="name"><span class="delete">wasGeneratedBy(-,e,a1,-,attrs1)</span><span class="delete"> and </span><span class="delete">used(-,a2,e,-,attrs2)</span><span class="delete"> hold.
+</span><span class="insert">wasInformedBy(_id; a2,a1,[])</span></span>
 </p></div>
+
+
  
 
   <div class="remark">
 <p>The relationship <span class="name">wasInformedBy</span> is not
-<a href="#dfn-transitive" class="internalDFN">transitive</a>. Indeed, consider the following statements.</p>
+<span class="delete">transitive.</span><a href="#dfn-transitive" class="internalDFN"><span class="insert">transitive</span></a><span class="insert">.</span> Indeed, consider the following statements.</p>
 <pre class="codeexample">wasInformedBy(a2,a1)
 wasInformedBy(a3,a2)
 </pre>
 <p> We cannot infer <span class="name">wasInformedBy(a3,a1)</span> 
-    from these <span class="delete">statements.</span><span class="insert">statements alone.</span> Indeed, 
+    from these <span class="delete">expressions.</span><span class="insert">statements alone.</span> Indeed, 
 from 
 <span class="name">wasInformedBy(a2,a1)</span>, we know that there exists <span class="name">e1</span> such that <span class="name">e1</span> was generated by <span class="name">a1</span>
-and used by <span class="name">a2</span>. Likewise, from <span class="name">wasInformedBy(a3,a2)</span>, we know that there exists  <span class="name">e2</span> such that <span class="name">e2</span> was generated by <span class="name">a2</span>
-and used by <span class="name">a3</span>. The following illustration
-shows a counterexample to  transitivity. The
+and used by <span class="name">a2</span>. Likewise, from <span class="name">wasInformedBy(a3,a2)</span>, we know that there exists  <span class="name">e2</span> such that <span class="name">e2</span> was generated by <span class="name">a2</span> 
+and used by <span class="name">a3</span>. The following illustration 
+shows a <span class="delete">case for which transitivity cannot hold.</span><span class="insert">counterexample to  transitivity.</span> The
 horizontal axis represents the event line. We see that <span class="name">e1</span> was generated after <span class="name">e2</span> was used. Furthermore, the illustration also shows that
 <span class="name">a3</span> completes before <span class="name">a1</span><span class="delete">.</span><span class="insert"> started.</span>  So <span class="insert">in this example (with no other
-    information) </span>it is impossible for <span class="name">a3</span> to have used an entity generated by <span class="name">a1</span>. This is illustrated in <a href="#counterexample-wasInformedBy">Figure <span class="delete">1</span><span class="insert">2</span></a>.</p>
+    information) </span>it is impossible for <span class="name">a3</span> to have used an entity generated by <span class="name">a1</span><span class="insert">. This is illustrated in </span><a href="#counterexample-wasInformedBy"><span class="insert">Figure 2</span></a>.</p>
 
 <div style="text-align: center;">
+
+
 <span class="figure">
 <img src="images/constraints/informedByNonTransitive.png" alt="non transitivity of wasInformedBy">
 <br>
-<span class="figcaption" id="counterexample-wasInformedBy">Figure <span class="delete">1</span><span class="insert">2</span><sup><a class="internalDFN" href="#counterexample-wasInformedBy"><span class="diamond"> ◊:</span></a></sup> Counter-example for transitivity of wasInformedBy</span>
+<span class="figcaption" id="counterexample-wasInformedBy"><span class="insert">Figure 2</span><sup><a class="internalDFN" href="#counterexample-wasInformedBy"><span class="diamond"><span class="insert"> ◊:</span></span></a></sup> Counter-example for transitivity of wasInformedBy</span>
 </span> 
 </div>
 </div>
 
 
+
  
 <hr>
 
 
 
-<p id="entity-generation-invalidation-inference_text">
-From an <span class="delete">entity,</span><span class="insert">entity statement,</span> we can infer <span class="delete">that</span><span class="insert">the</span> existence of
+<p id="entity-generation-invalidation-inference_text"><span class="insert">
+From an entity statement, we can infer the existence of
 generation and invalidation events.
-</p>
-<div class="inference" id="entity-generation-invalidation-inference"><div class="ruleTitle"><a class="internalDFN" href="#entity-generation-invalidation-inference">Inference 7 (entity-generation-invalidation-inference)</a></div>
+</span></p>
+<div class="inference" id="entity-generation-invalidation-inference"><div class="ruleTitle"><a class="internalDFN" href="#entity-generation-invalidation-inference"><span class="insert">Inference 7 (entity-generation-invalidation-inference)</span></a></div>
 <p>
-<span class="conditional">IF</span> <span class="name">entity(e,_attrs)</span> <span class="conditional">THEN</span> there exist 
-<span class="name"><span class="delete">_id1</span><span class="insert">_gen</span></span>, <span class="name">_a1</span>, <span class="name">_t1</span>,
-<span class="name"><span class="delete">_id2</span><span class="insert">_inv</span></span>, <span class="name">_a2</span>, and <span class="name">_t2</span> such that
-  <span class="name"><span class="delete">wasGeneratedBy(_id1;e,_a1,_t1,[])</span><span class="delete"> and </span><span class="delete">wasInvalidatedBy(_id2;e,_a2,_t2,[])</span><span class="insert">wasGeneratedBy(_gen; e,_a1,_t1,[])</span></span><span class="insert"> and </span><span class="name"><span class="insert">wasInvalidatedBy(_inv; e,_a2,_t2,[])</span></span>.
-</p></div> 
+<span class="conditional"><span class="insert">IF</span></span> <span class="name"><span class="insert">entity(e,_attrs)</span></span> <span class="conditional"><span class="insert">THEN</span></span><span class="insert"> there exist 
+</span><span class="name"><span class="insert">_gen</span></span><span class="insert">, </span><span class="name"><span class="insert">_a1</span></span><span class="insert">, </span><span class="name"><span class="insert">_t1</span></span><span class="insert">,
+</span><span class="name"><span class="insert">_inv</span></span><span class="insert">, </span><span class="name"><span class="insert">_a2</span></span><span class="insert">, and </span><span class="name"><span class="insert">_t2</span></span><span class="insert"> such that
+  </span><span class="name"><span class="insert">wasGeneratedBy(_gen; e,_a1,_t1,[])</span></span><span class="insert"> and </span><span class="name"><span class="insert">wasInvalidatedBy(_inv; e,_a2,_t2,[])</span></span><span class="insert">.
+</span></p></div> 
 
 
 <hr>
 
 
-<p id="activity-start-end-inference_text">
-From an activity <span class="delete">statemen,t</span><span class="insert">statement,</span> we can infer<span class="delete"> that</span> 
-start and end events <span class="delete">having</span><span class="insert">whose</span> times <span class="delete">matching</span><span class="insert">match</span> the start and end times of
-the <span class="delete">activity.</span><span class="insert">activity, respectively.</span>
-</p>
-<div class="inference" id="activity-start-end-inference"><div class="ruleTitle"><a class="internalDFN" href="#activity-start-end-inference">Inference 8 (activity-start-end-inference)</a></div>
-<p>
-<span class="conditional">IF</span> <span class="name">activity(a,t1,t2,_attrs)</span> <span class="conditional">THEN</span> there exist <span class="name"><span class="delete">_id1</span><span class="insert">_start</span></span>, <span class="name">_e1</span>, <span class="name"><span class="delete">_id2</span><span class="insert">_end</span></span>,
-  and <span class="name">_e2</span> such that
-  <span class="name"><span class="delete">wasStartedBy(_id1;a,_e1,_a1,t1,[])</span><span class="delete"> and </span><span class="delete">wasEndedBy(_id2;a,_e2,_a2,t2,[])</span><span class="insert">wasStartedBy(_start; a,_e1,_a1,t1,[])</span></span><span class="insert"> and </span><span class="name"><span class="insert">wasEndedBy(_end; a,_e2,_a2,t2,[])</span></span>.
-</p></div> 
+<p id="activity-start-end-inference_text"><span class="insert">
+From an activity statement, we can infer 
+start and end events whose times match the start and end times of
+the activity, respectively.
+</span></p>
+<div class="inference" id="activity-start-end-inference"><div class="ruleTitle"><a class="internalDFN" href="#activity-start-end-inference"><span class="insert">Inference 8 (activity-start-end-inference)</span></a></div>
+<p><span class="delete">Start</span>
+<span class="conditional"><span class="insert">IF</span></span> <span class="name"><span class="insert">activity(a,t1,t2,_attrs)</span></span> <span class="conditional"><span class="insert">THEN</span></span><span class="insert"> there exist </span><span class="name"><span class="insert">_start</span></span><span class="insert">, </span><span class="name"><span class="insert">_e1</span></span><span class="insert">, </span><span class="name"><span class="insert">_a1</span></span><span class="insert">, </span><span class="name"><span class="insert">_end</span></span><span class="insert">, </span><span class="name"><span class="insert">_a2</span></span><span class="insert">, 
+  and </span><span class="name"><span class="insert">_e2</span></span><span class="insert"> such that
+  </span><span class="name"><span class="insert">wasStartedBy(_start; a,_e1,_a1,t1,[])</span></span><span class="insert"> and </span><span class="name"><span class="insert">wasEndedBy(_end; a,_e2,_a2,t2,[])</span></span><span class="insert">.
+</span></p></div> 
 
 
 <hr>
 
   
-<p id="wasStartedBy-inference_text"><span class="delete">Start</span><span class="insert">The start</span> of <span class="insert">an activity </span><span class="name">a</span> <span class="insert">triggered </span>by <span class="delete">trigger</span><span class="insert">entity</span> <span class="name">e1</span><span class="delete"> and starter activity </span><span class="delete">a1</span> 
+<p id="wasStartedBy-inference_text"><span class="insert">The start</span> of <span class="delete">a2</span><span class="insert">an activity </span><span class="name"><span class="insert">a</span></span><span class="insert"> triggered</span> by <span class="insert">entity </span><span class="name"><span class="insert">e1</span></span><span class="insert">
 implies that 
-<span class="name">e1</span> was generated by<span class="insert"> the starting activity</span> <span class="name">a1</span>.</p>
-
-<div class="inference" id="wasStartedBy-inference"><div class="ruleTitle"><a class="internalDFN" href="#wasStartedBy-inference">Inference 9 (wasStartedBy-inference)</a></div>
-<p><span class="conditional">IF</span>
- <span class="name"><span class="delete">wasStartedBy(_id;a,e1,a1,_t,_attrs)</span><span class="insert">wasStartedBy(_id; a,e1,a1,_t,_attrs)</span></span>,
-<span class="conditional">THEN</span> there exist <span class="name">_gen</span> and  <span class="name">_t1</span>
+</span><span class="name"><span class="insert">e1</span></span><span class="insert"> was generated by the starting </span>activity <span class="name">a1</span><span class="delete"> is </span><span class="delete">defined</span><span class="delete"> as follows.</span><span class="insert">.</span></p>
+
+<span class="delete">Given two activities with identifiers </span><span class="delete">a1</span><span class="delete"> and </span><span class="delete">a2</span><span class="delete">, 
+ </span><span class="delete">wasStartedByActivity(a2,a1)</span><span class="delete">
+holds </span><div class="inference" id="wasStartedBy-inference"><div class="ruleTitle"><a class="internalDFN" href="#wasStartedBy-inference"><span class="insert">Inference 9 (wasStartedBy-inference)</span></a></div>
+<p><span class="conditional">IF<span class="delete"> AND ONLY </span></span>
+ <span class="name"><span class="insert">wasStartedBy(_id; a,e1,a1,_t,_attrs)</span></span><span class="insert">,
+</span><span class="conditional"><span class="insert">THEN</span></span><span class="insert"> there exist </span><span class="name"><span class="insert">_gen</span></span><span class="insert"> and  </span><span class="name"><span class="insert">_t1</span></span><span class="insert">
 such that 
- <span class="name"><span class="delete">wasGeneratedBy(_gen;e1,a1,_t1,[])</span><span class="insert">wasGeneratedBy(_gen; e1,a1,_t1,[])</span></span>.</p>
+ </span><span class="name"><span class="insert">wasGeneratedBy(_gen; e1,a1,_t1,[])</span></span><span class="insert">.</span></p>
 </div>
 <p>
 
 </p><hr>
 
-<p id="wasEndedBy-inference_text">Likewise,
-<span class="delete">end</span><span class="insert">the ending</span> of <span class="insert">activity </span><span class="name">a</span> by <span class="delete">trigger</span><span class="insert">triggering entity</span> <span class="name">e1<span class="delete"> and ender activity </span><span class="delete">a1</span></span> implies that 
-<span class="name">e1</span> was generated by<span class="insert"> the ending activity</span> <span class="name">a1</span>.
-</p>
-
-<div class="inference" id="wasEndedBy-inference"><div class="ruleTitle"><a class="internalDFN" href="#wasEndedBy-inference">Inference 10 (wasEndedBy-inference)</a></div>
+<p id="wasEndedBy-inference_text"><span class="insert">Likewise,
+the ending of activity </span><span class="name"><span class="insert">a</span></span><span class="insert"> by triggering entity </span><span class="name"><span class="insert">e1</span></span><span class="insert"> implies that 
+</span><span class="name"><span class="insert">e1</span></span><span class="insert"> was generated by the ending activity </span><span class="name"><span class="insert">a1</span></span><span class="insert">.
+</span></p>
+
+<div class="inference" id="wasEndedBy-inference"><div class="ruleTitle"><a class="internalDFN" href="#wasEndedBy-inference"><span class="insert">Inference 10 (wasEndedBy-inference)</span></a></div>
 <p><span class="conditional">IF</span>
- <span class="name"><span class="delete">wasEndedBy(_id;a,e1,a1,_t,_attrs)</span><span class="insert">wasEndedBy(_id; a,e1,a1,_t,_attrs)</span></span>,
-<span class="conditional">THEN</span> there exist <span class="name">_gen</span> and <span class="name">_t1</span> such that 
- <span class="name"><span class="delete">wasGeneratedBy(_gen;e1,a1,_t1,[])</span><span class="insert">wasGeneratedBy(_gen; e1,a1,_t1,[])</span></span>.</p>
+ <span class="name"><span class="insert">wasEndedBy(_id; a,e1,a1,_t,_attrs)</span></span><span class="insert">,
+</span><span class="conditional"><span class="insert">THEN</span></span> there <span class="delete">exists an entity </span><span class="delete">e</span> 
+<span class="insert">exist </span><span class="name"><span class="insert">_gen</span></span><span class="insert"> and </span><span class="name"><span class="insert">_t1</span></span> such that
+ <span class="delete">wasGeneratedBy(-,e,a1,-,-)</span> 
+ <span class="delete">and </span><span class="delete">wasStartedBy(-,a2,e,-,-)</span><span class="delete"> hold.</span><span class="name"><span class="insert">wasGeneratedBy(_gen; e1,a1,_t1,[])</span></span><span class="insert">.</span></p>
 </div>
 
 
@@ -1780,104 +2904,45 @@
 
 </div>
 
+
+
+
  <div id="derivations" class="section"> 
-<h3><span class="secno">4.3 </span>Derivations</h3>
+<h3><span class="secno"><span class="delete">3.2 </span><span class="delete">Component 2: </span><span class="insert">4.3 </span></span><span class="insert">Derivations</span></h3>
 
 
 <hr>
-<p id="derivation-generation-use-inference_text">Derivations with explicit
-activity, generation, and usage admit the  following inference: </p>
-
-<div class="inference" id="derivation-generation-use-inference"><div class="ruleTitle"><a class="internalDFN" href="#derivation-generation-use-inference">Inference 11 <span class="delete">(derivation-generation-use)</span><span class="insert">(derivation-generation-use-inference)</span></a></div>
-<p>
-
-
-</p><p>
-<span class="conditional">IF</span> <span class="name"><span class="delete">wasDerivedFrom(_id;e2,e1,a,id2,id1,_attrs)</span><span class="insert">wasDerivedFrom(_id; e2,e1,a,gen2,use1,_attrs)</span></span>,
-  <span class="conditional">THEN</span> there exists  <span class="name">_t1</span> and <span class="name">_t2</span> such that  <span class="name"><span class="delete">used(id1;a,e1,_t1,[])</span><span class="delete"> and </span><span class="delete">wasGeneratedBy(id2;e2,a,_t2,[])</span><span class="delete"> hold.</span><span class="insert">used(use1; a,e1,_t1,[])</span></span><span class="insert"> and </span><span class="name"><span class="insert">wasGeneratedBy(gen2; e2,a,_t2,[])</span></span><span class="insert">.</span>
-</p>
+<p id="derivation-generation-use-inference_text"><span class="insert">Derivations with explicit
+activity, generation, and usage admit the  following inference: </span></p>
+
+<div class="inference" id="derivation-generation-use-inference"><div class="ruleTitle"><a class="internalDFN" href="#derivation-generation-use-inference"><span class="insert">Inference 11 (derivation-generation-use-inference)</span></a></div>
+<p><span class="insert"> In this inference, none of </span><span class="name"><span class="insert">a</span></span><span class="insert">, </span><span class="name"><span class="insert">gen2</span></span><span class="insert"> or </span><span class="name"><span class="insert">use1</span></span><span class="insert"> can be
+  placeholders </span><span class="name"><span class="insert">-</span></span><span class="insert">.
+  </span></p><p>
+<span class="conditional"><span class="insert">IF</span></span> <span class="name"><span class="insert">wasDerivedFrom(_id; e2,e1,a,gen2,use1,_attrs)</span></span><span class="insert">,
+  </span><span class="conditional"><span class="insert">THEN</span></span><span class="insert"> there exists  </span><span class="name"><span class="insert">_t1</span></span><span class="insert"> and </span><span class="name"><span class="insert">_t2</span></span><span class="insert"> such that  </span><span class="name"><span class="insert">used(use1; a,e1,_t1,[])</span></span><span class="insert"> and </span><span class="name"><span class="insert">wasGeneratedBy(gen2; e2,a,_t2,[])</span></span><span class="insert">.
+</span></p>
 </div>
 <p>
-</p><hr>
-
-<span class="delete">Derivations</span><p id="derivation-use-inference_text"><span class="insert">According to </span><a class="rule-text" href="#optional-placeholders_text"><span><span class="insert">Definition 4 (optional-placeholders)</span></span></a><span class="insert">, optional generation and usage in a derivation are not expandable. However,  derivations</span> with an explicit activity and
-no specified generation and usage admit the  following inference: </p>
-<span class="delete">Final check required. The following inference
-  appears redundant (it can be derived using other rules).
-  </span>
-
-
-<div class="inference" id="derivation-use-inference"><div class="ruleTitle"><a class="internalDFN" href="#derivation-use-inference">Inference 12 <span class="delete">(derivation-use)</span><span class="insert">(derivation-use-inference)</span></a></div>
-<p>
-<span class="conditional">IF</span> <span class="name"><span class="delete">wasDerivedFrom(id;e2,e1,a,-,-,attrs)</span><span class="delete"> and </span><span class="delete">wasGeneratedBy(gen;e2,a,_t2,_attrs2)</span><span class="insert">wasDerivedFrom(id; e2,e1,a,-,-,attrs)</span></span><span class="insert"> and </span><span class="name"><span class="insert">wasGeneratedBy(gen; e2,a,_t2,_attrs2)</span></span> hold, <span class="conditional">THEN</span> there exist <span class="name">_t1</span> and <span class="name">use</span> such
-  that <span class="name"><span class="delete">used(use;a,e1,_t1,[])</span><span class="delete"> and </span><span class="delete">wasDerivedFrom(id;e2,e1,a,gen,use,attrs)</span><span class="delete"> hold.</span><span class="insert">used(use; a,e1,_t1,[])</span></span><span class="insert"> and </span><span class="name"><span class="insert">wasDerivedFrom(id; e2,e1,a,gen,use,attrs)</span></span><span class="insert">.</span>
-</p></div>
-<p>This inference is justified by the fact that the entity denoted by <span class="name">e2</span> is generated by at most one activity
-(see <a class="rule-text" href="#unique-generation_text"><span>Constraint 27 (unique-generation)</span></a>). Hence,  this activity is also the one referred to by the usage of <span class="name">e1</span>. 
-</p>
-
-
-<div class="remark" id="derivation-generation-use-inference-remark">
-  <p><span class="delete">The converse inference does</span>
- <a class="rule-text" href="#derivation-use-inference_text"><span><span class="insert">Inference 12 (derivation-use-inference)</span></span></a><span class="insert"> allows "-" to be replaced by existential variables in a </span><span class="name"><span class="insert">wasDerivedFrom</span></span><span class="insert">, when an activity is explict, and a generation known.</span></p>
-
-<p><span class="insert"> However, a derivation without explicit generation and usage cannot be normalized even when a generation and usage hold.   
-</span><span class="conditional"><span class="insert">IF</span></span> 
-<span class="name"><span class="insert">wasDerivedFrom(id; e2,e1,a,-,-,attrs)</span></span><span class="insert">,
-</span><span class="name"><span class="insert">wasGeneratedBy(gen; e2,a,_t2,_attrs2)</span></span><span class="insert">,
-and </span><span class="name"><span class="insert">used(use; a,e1,_t1,[])</span></span><span class="insert">, </span><span class="conditional"><span class="insert">IT IS NOT NECESSARILY THE CASE THAT</span></span> 
-<span class="name"><span class="insert">wasDerivedFrom(id; e2,e1,a,gen,use,attrs)</span></span><span class="insert">.
-Indeed,
-</span><span class="name"><span class="insert">e1</span></span><span class="insert"> may be used multiple times by 
- </span><span class="name"><span class="insert">a</span></span><span class="insert">, usage  </span><span class="name"><span class="insert">use</span></span><span class="insert">
-may</span> not <span class="delete">hold.</span><span class="insert">be involved in the derivation</span>  <span class="delete">Informally, from </span><span class="delete">wasDerivedFrom(id;e2,e1,-,-,-,attrs)</span><span class="delete"> and </span><span class="delete">used(use;a,e1,_t1,attrs1)</span><span class="delete">, one cannot derive </span><span class="delete">wasGeneratedBy(gen;e2,a,_t2,attrs2)</span><span class="delete"> because entity </span><span class="delete">e1</span><span class="insert">(for instance, it</span> may <span class="delete">be used by many activities, whereas at most
-one activity could generate the entity </span><span class="insert">well have taken place after 
-the generation of </span><span expanclass="name">e2</span><span class="delete">.
-Even if </span><span class="delete">e2</span><span class="delete"> is used by some activity that
-later generates </span><span class="delete">e1</span><span class="delete"> is generated, it is not
-safe to assume that </span><span class="delete">e2</span><span class="delete"> was derived from
-</span><span class="delete">e1</span><span class="delete">.  Derivation is not defined to be
-transitive either, following similar reasoning as for </span><span class="delete">wasInformedBy</span><span class="delete">. </span><span class="insert">).</span></p>
+
+ 
 
   
- </div>
-
-<hr>
-<p id="specific-derivation-inference_text">A derivation
-  specifying activity, generation and use events is a special case of
-  a derivation that leaves these unspecified.  <span class="delete">(The</span><span class="insert">The</span> converse is not
-  the <span class="delete">case).</span><span class="insert">case because the activity parameter of derivations is
- non-expandable in </span><a class="rule-ref" href="#optional-placeholders"><span><span class="insert">Definition 4 (optional-placeholders)</span></span></a><span class="insert">. </span></p>
-
-<div class="inference" id="specific-derivation-inference"><div class="ruleTitle"><a class="internalDFN" href="#specific-derivation-inference">Inference 13 (specific-derivation-inference)</a></div>
-<p><span class="conditional">IF</span> <span class="name"><span class="delete">wasDerivedFrom(id;e2,e1,_act,_gen,_use,attrs)</span><span class="delete">
-  holds, </span><span class="insert">wasDerivedFrom(id; e2,e1,_act,_gen,_use,attrs)</span></span><span class="insert">, 
-</span><span class="conditional">THEN</span> <span class="name"><span class="delete">wasDerivedFrom(id;e2,e1,-,-,-,attrs)</span><span class="delete"> holds.</span><span class="insert">wasDerivedFrom(id; e2,e1,-,-,-,attrs)</span></span><span class="insert">.</span>
-</p>
-</div>
-
-  
-<hr>
-<p id="revision-is-alternate-inference_text">A revision admits the following inference, stating that  the two entities
-linked  by a revision are also alternates.</p>
+</p><hr>
+<p id="revision-is-alternate-inference_text"><span class="insert">A revision admits the following inference, stating that  the two entities
+linked  by a revision are also alternates.</span></p>
  
-<div class="inference" id="revision-is-alternate-inference"><div class="ruleTitle"><a class="internalDFN" href="#revision-is-alternate-inference">Inference 14 <span class="delete">(revision-is-alternate)</span><span class="insert">(revision-is-alternate-inference)</span></a></div>
+<div class="inference" id="revision-is-alternate-inference"><div class="ruleTitle"><a class="internalDFN" href="#revision-is-alternate-inference"><span class="insert">Inference 12 (revision-is-alternate-inference)</span></a></div>
+  <p><span class="insert">In this inference, any of </span><span class="name"><span class="insert">_a</span></span><span class="insert">, </span><span class="name"><span class="insert">_g</span></span><span class="insert"> or </span><span class="name"><span class="insert">_u</span></span> <em class="rfc2119" title="may"><span class="insert">may</span></em><span class="insert"> be placeholders.</span></p>
 <p>
-  <span class="conditional">IF</span> <span class="name"><span class="delete">wasDerivedFrom(_id;e2,e1,[prov:type='prov:Revision'])</span><span class="delete">
-  holds,</span><span class="insert">wasDerivedFrom(_id; e2,e1,_a,_g,_u,[prov:type='prov:Revision'])</span></span><span class="insert">,</span> <span class="conditional">THEN</span> <span class="name">alternateOf(e2,e1)</span><span class="delete"> holds.</span><span class="insert">.  The activity </span><span class="name"><span class="insert">_a</span></span><span class="insert">,
-  generation </span><span class="name"><span class="insert">_g</span></span><span class="insert">,
-  or use </span><span class="name"><span class="insert">_u</span></span><span class="insert"> may be the placeholder </span><span class="name"><span class="insert">-</span></span><span class="insert">.</span>
-</p>
+  <span class="conditional"><span class="insert">IF</span></span> <span class="name"><span class="insert">wasDerivedFrom(_id; e2,e1,_a,_g,_u,[prov:type='prov:Revision'])</span></span><span class="insert">, </span><span class="conditional"><span class="insert">THEN</span></span> <span class="name"><span class="insert">alternateOf(e2,e1)</span></span><span class="insert">.  
+</span></p>
 
 </div>
 
 
 
 
-
-
-
-
 <div class="remark"><span class="insert">
   There is no inference stating that </span><span class="name"><span class="insert">wasDerivedFrom</span></span><span class="insert"> is
   transitive.  
@@ -1886,137 +2951,293 @@
 
 
 <div id="agents" class="section">
-<h3><span class="secno">4.4 </span>Agents</h3>
+<h3><span class="secno"><span class="insert">4.4 </span></span>Agents</h3>
 
 <p id="attribution-inference_text"> Attribution <span class="delete">identifies</span><span class="insert">is the ascribing of</span> an <span class="delete">agent as responsible for</span><span class="insert">entity to</span> an <span class="delete">entity.</span><span class="insert">agent.</span>  An
 <span class="insert">entity can only be ascribed to an </span>agent <span class="delete">can only be responsible for an entity </span>if <span class="delete">it</span><span class="insert">the agent</span> was associated with
 an activity that generated the entity.  If the activity, generation
  
 and association events are not explicit in the instance, they can
-be inferred.</p>
-
-<div class="inference" id="attribution-inference"><div class="ruleTitle"><a class="internalDFN" href="#attribution-inference">Inference 15 (attribution-inference)</a></div>
+be inferred.
+</p>
+
+<div class="inference" id="attribution-inference"><div class="ruleTitle"><a class="internalDFN" href="#attribution-inference"><span class="insert">Inference 13 (attribution-inference)</span></a></div>
 <p>
 <span class="conditional">IF</span>
-<span class="name"><span class="delete">wasAttributedTo(_att;e,ag,_attrs)</span><span class="delete"> holds for some identifiers
+<span class="name"><span class="delete">wasAttributedTo(e,ag)</span><span class="delete"> holds for some identifiers
 </span><span class="delete">e</span><span class="delete"> and </span><span class="delete">ag</span><span class="delete">,  
 </span><span class="insert">wasAttributedTo(_att; e,ag,_attrs)</span></span>
   
-<span class="conditional">THEN</span> there exist
-  <span class="name">a</span>,
- <span class="name">_t</span>,
-<span class="name">_gen</span>,
-<span class="name">_assoc</span>,
-  <span class="name">_pl</span>,
-such that 
-<span class="name"><span class="delete">wasGeneratedBy(_gen;e,a,_t,[])</span><span class="insert">wasGeneratedBy(_gen; e,a,_t,[])</span></span> and 
-<span class="name"><span class="delete">wasAssociatedWith(_assoc;a,ag,_pl,[])</span><span class="insert">wasAssociatedWith(_assoc; a,ag,_pl,[])</span></span>  hold.
-</p>
+<span class="conditional">THEN</span> there <span class="delete">exists an activity with some identifier </span><span class="insert">exist
+  </span><span class="name">a</span> <span class="insert">,
+ </span><span class="name"><span class="insert">_t</span></span><span class="insert">,
+</span><span class="name"><span class="insert">_gen</span></span><span class="insert">,
+</span><span class="name"><span class="insert">_assoc</span></span><span class="insert">,
+  </span><span class="name"><span class="insert">_pl</span></span><span class="insert">,
+</span>such that<span class="delete"> the following statements hold:
+</span><span class="delete">activity(a, -, -,-)
+wasGeneratedBy(-,e, a, -,_)
+wasAssociatedWith(-,a, ag, -, -)
+</span> 
+<span class="name"><span class="insert">wasGeneratedBy(_gen; e,a,_t,[])</span></span><span class="insert"> and 
+</span><span class="name"><span class="insert">wasAssociatedWith(_assoc; a,ag,_pl,[])</span></span><span class="insert">.
+</span></p>
 </div>
+
+<span class="delete"> Responsibility</span><div class="remark"><span class="insert">
+  In the above inference, </span><span class="name"><span class="insert">_pl</span></span><span class="insert"> is an
+  existential variable, so it can be
+  merged with a constant identifier, another existential variable, or a
+  placeholder </span><span class="name"><span class="insert">-</span></span><span class="insert">, as explained
+  in the definition of </span><a href="#dfn-merging" class="internalDFN"><span class="insert">merging</span></a><span class="insert">.
+  </span></div>
 <hr>
-<p id="delegation-inference_text"> Delegation relates agents where one agent acts on behalf of
+<p id="delegation-inference_text"><span class="insert"> Delegation</span> relates agents where one agent acts on behalf of
 another, in the context of some activity.  The supervising agent
 delegates some responsibility for part of the activity to the
 subordinate agent, while retaining some responsibility for the overall
-activity.  Both agents are associated with this activity.</p>
-
-
-<div class="inference" id="delegation-inference"><div class="ruleTitle"><a class="internalDFN" href="#delegation-inference">Inference 16 (delegation-inference)</a></div>
+activity.  <span class="insert">Both agents are associated with this activity.</span></p>
+
+
+<span class="delete">
+  @@TODO: Could this be an inference? Does it imply</span><div class="inference" id="delegation-inference"><div class="ruleTitle"><a class="internalDFN" href="#delegation-inference"><span class="insert">Inference 14 (delegation-inference)</span></a></div>
 <p>
-<span class="conditional">IF</span>
-<span class="name"><span class="delete">actedOnBehalfOf(_id;ag1,</span><span class="insert">actedOnBehalfOf(_id; ag1,</span> ag2, a, _attrs)</span>
-<span class="conditional">THEN</span> there exist  <span class="name">_id1</span>, <span class="name">_pl1</span>, <span class="name">_id2</span>, and  <span class="name">_pl2</span> such that <span class="name"><span class="delete">wasAssociatedWith(_id1;a,</span><span class="insert">wasAssociatedWith(_id1; a,</span> ag1, _pl1, [])</span>
-  and <span class="name"><span class="delete">wasAssociatedWith(_id2;a,</span><span class="insert">wasAssociatedWith(_id2; a,</span> ag2, _pl2, [])</span>.
-</p>
+<span class="conditional"><span class="insert">IF</span></span>
+<span class="name"><span class="insert">actedOnBehalfOf(_id; ag1, ag2, a, _attrs)</span></span>
+<span class="conditional"><span class="insert">THEN</span></span><span class="insert"> there exist  </span><span class="name"><span class="insert">_id1</span></span><span class="insert">, </span><span class="name"><span class="insert">_pl1</span></span><span class="insert">, </span><span class="name"><span class="insert">_id2</span></span><span class="insert">, and  </span><span class="name"><span class="insert">_pl2</span></span><span class="insert"> such</span> that<span class="delete">
+  a1 is associated with all activities a2 is associated with?
+  </span> <span class="name"><span class="insert">wasAssociatedWith(_id1; a, ag1, _pl1, [])</span></span><span class="insert">
+  and </span><span class="name"><span class="insert">wasAssociatedWith(_id2; a, ag2, _pl2,
+  [])</span></span><span class="insert">.
+</span></p>
 </div>
 
 
-<div class="remark">
-  Note that the two associations between the agents and the activity
+<div class="remark"><span class="insert">
+  The two associations between the agents and the activity
   may have different identifiers, different plans, and different
   attributes.  In particular, the plans of the two agents need not be
-  the same, and one, both, or neither can be the placeholder <span class="name">-</span>
+  the same, and one, both, or neither can be the placeholder </span><span class="name"><span class="insert">-</span></span><span class="insert">
   indicating that there is no plan, because the existential variables
-  <span class="name">_pl1</span> and <span class="name">_pl2</span> can be replaced with constant identifiers or
-  placeholders <span class="name">-</span> <span class="delete">independently.</span><span class="insert">independently, as explained
-  in the definition of </span><a href="#dfn-merging" class="internalDFN"><span class="insert">merging</span></a><span class="insert">.</span>
-  </div>
+  </span><span class="name"><span class="insert">_pl1</span></span><span class="insert"> and </span><span class="name"><span class="insert">_pl2</span></span><span class="insert">
+  can be replaced with constant identifiers, existential variables, or
+  placeholders </span><span class="name"><span class="insert">-</span></span><span class="insert"> independently, as explained
+  in the definition of </span><a href="#dfn-merging" class="internalDFN"><span class="insert">merging</span></a><span class="insert">.
+  </span></div>
+
+ 
 
 <hr>
-<p id="influence-inference_text">
-The <span class="name">wasInfluencedBy</span> relation is implied by other relations, including
+<p id="influence-inference_text"><span class="insert">
+The </span><span class="name"><span class="insert">wasInfluencedBy</span></span><span class="insert"> relation is implied by other relations, including
 usage, start, end, generation, invalidation, communication,
 derivation, attribution, association, and delegation.  To capture this
 explicitly, we allow the following inferences:
-</p>
-<div class="inference" id="influence-inference"><div class="ruleTitle"><a class="internalDFN" href="#influence-inference">Inference 17 (influence-inference)</a></div>
+</span></p>
+<div class="inference" id="influence-inference"><div class="ruleTitle"><a class="internalDFN" href="#influence-inference"><span class="insert">Inference 15 (influence-inference)</span></a></div>
 <p>
   </p><ol>
   <li>
-    <span class="conditional">IF</span> <span class="name"><span class="delete">wasGeneratedBy(id;e,a,t,attrs)</span><span class="insert">wasGeneratedBy(id; e,a,_t,attrs)</span></span> <span class="conditional">THEN</span> <span class="name">wasInfluencedBy(id;   e, a, attrs)</span>.
-  </li>
-  <li>
-    <span class="conditional">IF</span> <span class="name"><span class="delete">used(id;a,e,t,attrs)</span><span class="insert">used(id; a,e,_t,attrs)</span></span> <span class="conditional">THEN</span> <span class="name">wasInfluencedBy(id;   a, e, attrs)</span>.
-  </li>
-  <li>
-    <span class="conditional">IF</span> <span class="name"><span class="delete">wasInformedBy(id;a2,a1,attrs)</span><span class="insert">wasInformedBy(id; a2,a1,attrs)</span></span> <span class="conditional">THEN</span> <span class="name">wasInfluencedBy(id;   a2, a1, attrs)</span>.
-  </li>
- <li>
-    <span class="conditional">IF</span> <span class="name"><span class="delete">wasStartedBy(id;a2,e,a1,t,attrs)</span><span class="insert">wasStartedBy(id; a2,e,a1,_t,attrs)</span></span> <span class="conditional">THEN</span> <span class="name">wasInfluencedBy(id;   a2, e, attrs)</span>.
-  </li>
-  <li>
-    <span class="conditional">IF</span> <span class="name"><span class="delete">wasEndedBy(id;a2,e,a1,t,attrs)</span><span class="insert">wasEndedBy(id; a2,e,_a1,_t,attrs)</span></span> <span class="conditional">THEN</span> <span class="name">wasInfluencedBy(id;   a2, e, attrs)</span>.
-  </li>
+    <span class="conditional"><span class="insert">IF</span></span> <span class="name"><span class="insert">wasGeneratedBy(id; e,a,_t,attrs)</span></span> <span class="conditional"><span class="insert">THEN</span></span> <span class="name"><span class="insert">wasInfluencedBy(id;  e, a, attrs)</span></span><span class="insert">.
+  </span></li>
   <li>
-    <span class="conditional">IF</span> <span class="name"><span class="delete">wasInvalidatedBy(id;e,a,t,attrs)</span><span class="insert">wasInvalidatedBy(id; e,a,_t,attrs)</span></span> <span class="conditional">THEN</span> <span class="name">wasInfluencedBy(id;   e, a, attrs)</span>.
-  </li>
+    <span class="conditional"><span class="insert">IF</span></span> <span class="name"><span class="insert">used(id; a,e,_t,attrs)</span></span> <span class="conditional"><span class="insert">THEN</span></span> <span class="name"><span class="insert">wasInfluencedBy(id;  a, e, attrs)</span></span><span class="insert">.
+  </span></li>
   <li>
-    <span class="conditional">IF</span> <span class="name">wasDerivedFrom(id;   e2, e1, attrs)</span> <span class="conditional">THEN</span> <span class="name">wasInfluencedBy(id;   e2, e1, attrs)</span>.
-  </li>
-
+    <span class="conditional"><span class="insert">IF</span></span> <span class="name"><span class="insert">wasInformedBy(id; a2,a1,attrs)</span></span> <span class="conditional"><span class="insert">THEN</span></span> <span class="name"><span class="insert">wasInfluencedBy(id;  a2, a1, attrs)</span></span><span class="insert">.
+  </span></li>
  <li>
-    <span class="conditional">IF</span> <span class="name"><span class="delete">wasAttributedTo(id;e,ag,attr)</span><span class="insert">wasAttributedTo(id; e,ag,attrs)</span></span> <span class="conditional">THEN</span> <span class="name">wasInfluencedBy(id; e, ag, attrs)</span>.
-  </li>
+    <span class="conditional"><span class="insert">IF</span></span> <span class="name"><span class="insert">wasStartedBy(id; a2,e,a1,_t,attrs)</span></span> <span class="conditional"><span class="insert">THEN</span></span> <span class="name"><span class="insert">wasInfluencedBy(id;  a2, e, attrs)</span></span><span class="insert">.
+  </span></li>
   <li>
-    <span class="conditional">IF</span> <span class="name"><span class="delete">wasAssociatedWith(id;a,ag,pl,attrs)</span><span class="insert">wasAssociatedWith(id; a,ag,_pl,attrs)</span></span> <span class="conditional">THEN</span> <span class="name">wasInfluencedBy(id;   a, ag, attrs)</span>.
-  </li>
+    <span class="conditional"><span class="insert">IF</span></span> <span class="name"><span class="insert">wasEndedBy(id; a2,e,_a1,_t,attrs)</span></span> <span class="conditional"><span class="insert">THEN</span></span> <span class="name"><span class="insert">wasInfluencedBy(id;  a2, e, attrs)</span></span><span class="insert">.
+  </span></li>
   <li>
-    <span class="conditional">IF</span> <span class="name"><span class="delete">actedOnBehalfOf(id;ag2,ag1,a,attrs)</span><span class="insert">actedOnBehalfOf(id; ag2,ag1,_a,attrs)</span></span> <span class="conditional">THEN</span> <span class="name">wasInfluencedBy(id;   ag2, ag1, attrs)</span>.
-  </li>
+    <span class="conditional"><span class="insert">IF</span></span> <span class="name"><span class="insert">wasInvalidatedBy(id; e,a,_t,attrs)</span></span> <span class="conditional"><span class="insert">THEN</span></span> <span class="name"><span class="insert">wasInfluencedBy(id;  e, a, attrs)</span></span><span class="insert">.
+  </span></li>
+ <li>
+    <span class="conditional"><span class="insert">IF</span></span> <span class="name"><span class="insert">wasDerivedFrom(id;  e2, e1, a, g, u, attrs)</span></span> <span class="conditional"><span class="insert">THEN</span></span> <span class="name"><span class="insert">wasInfluencedBy(id;  e2, e1, attrs)</span></span><span class="insert">.  Here,
+  </span><span class="name"><span class="insert">a</span></span><span class="insert">, </span><span class="name"><span class="insert">g</span></span><span class="insert">, </span><span class="name"><span class="insert">u</span></span> <em class="rfc2119" title="may"><span class="insert">may</span></em><span class="insert"> be placeholders </span><span class="name"><span class="insert">-</span></span><span class="insert">.
+  </span></li>
+<li>
+    <span class="conditional"><span class="insert">IF</span></span> <span class="name"><span class="insert">wasAttributedTo(id; e,ag,attrs)</span></span> <span class="conditional"><span class="insert">THEN</span></span> <span class="name"><span class="insert">wasInfluencedBy(id; e, ag, attrs)</span></span><span class="insert">.
+  </span></li>
+  <li>
+    <span class="conditional"><span class="insert">IF</span></span> <span class="name"><span class="insert">wasAssociatedWith(id; a,ag,_pl,attrs)</span></span> <span class="conditional"><span class="insert">THEN</span></span> <span class="name"><span class="insert">wasInfluencedBy(id;  a, ag, attrs)</span></span><span class="insert">.  Here,
+  </span><span class="name"><span class="insert">_pl</span></span> <em class="rfc2119" title="may"><span class="insert">may</span></em><span class="insert"> be a placeholder </span><span class="name"><span class="insert">-</span></span><span class="insert">.
+  </span></li>
+  <li>
+    <span class="conditional"><span class="insert">IF</span></span> <span class="name"><span class="insert">actedOnBehalfOf(id; ag2,ag1,_a,attrs)</span></span> <span class="conditional"><span class="insert">THEN</span></span> <span class="name"><span class="insert">wasInfluencedBy(id;  ag2, ag1, attrs)</span></span><span class="insert">.
+  </span></li>
 </ol>
 </div>
 
-<div class="remark">
-  <span class="delete">Note that the</span><span class="insert">The</span> inferences above <span class="insert">permit the </span>use <span class="delete">the </span><span class="insert">of  </span>same identifier for <span class="delete">the</span><span class="insert">an
-  influence relationship and a</span> more
-  specific<span class="delete"> relationship and the influence</span> relationship.
-</div>
+<div class="remark"><span class="insert">
+  The inferences above permit the use of  same identifier for an
+  influence relationship and a more
+  specific relationship.
+</span></div>
 
 </div>
 
 
 
  <div id="alternate-and-specialized-entities" class="section"> 
-<h3><span class="secno">4.5 </span>Alternate and Specialized Entities</h3>
+<h3><span class="secno"><span class="delete">3.3 </span><span class="delete">Component 3: Derivations</span><span class="insert">4.5 </span></span><span class="insert">Alternate and Specialized Entities</span></h3>
+
+
+ 
 
 
 
   
 <hr>
-  <p id="alternate-reflexive_text">The relation <span class="name">alternateOf</span> is an <a href="#dfn-equivalence-relation" class="internalDFN">equivalence <span class="delete">relation:</span><span class="insert">relation</span></a><span class="insert">: that is,
-  it is</span> <a href="#dfn-reflexive" class="internalDFN">reflexive</a>,
-  <a href="#dfn-transitive" class="internalDFN">transitive</a> and <a href="#dfn-symmetric" class="internalDFN">symmetric</a>.<span class="insert">  As a consequence, the
+  <p id="alternate-reflexive_text"><span class="insert">The relation </span><span class="name"><span class="insert">alternateOf</span></span><span class="insert"> is an </span><a href="#dfn-equivalence-relation" class="internalDFN"><span class="insert">equivalence relation</span></a><span class="insert">: that is,
+  it is </span><a href="#dfn-reflexive" class="internalDFN"><span class="insert">reflexive</span></a><span class="insert">,
+  </span><a href="#dfn-transitive" class="internalDFN"><span class="insert">transitive</span></a><span class="insert"> and </span><a href="#dfn-symmetric" class="internalDFN"><span class="insert">symmetric</span></a><span class="insert">.  As a consequence, the
   following inferences can be applied:</span></p>
-  
-
 
  
-<div class="inference" id="alternate-reflexive"><div class="ruleTitle"><a class="internalDFN" href="#alternate-reflexive">Inference 18 (alternate-reflexive)</a></div>
-<p><span class="delete">
-    For any entity </span><span class="delete">e</span><span class="delete">, we have </span>
-<span class="conditional"><span class="insert">IF</span></span>  <span class="name"><span class="insert">entity(e)</span></span> <span class="conditional"><span class="insert">THEN</span></span>
-<span class="name">alternateOf(e,e)</span>.
+<div class="inference" id="alternate-reflexive"><div class="ruleTitle"><a class="internalDFN" href="#alternate-reflexive"><span class="insert">Inference 16 (alternate-reflexive)</span></a></div>
+<p><span class="delete">Derivations with an explicit activity and no usage admit the
+  following inference: </span>
+
+<span class="delete">Given an activity </span><span class="delete">a</span><span class="delete">, entities  denoted by </span><span class="delete">e1</span><span class="delete"> and </span><span class="delete">e2</span><span class="delete">, 
+</span>
+<span class="conditional">IF</span> <span class="delete">wasDerivedFrom(-,e2,e1, a, -)</span><span class="delete"> and </span><span class="delete">wasGeneratedBy(-,e2,a,-,-)</span><span class="delete"> hold,</span>  <span class="name"><span class="insert">entity(e)</span></span> <span class="conditional">THEN</span> <span class="delete">used(-,a,e1,-,-)</span><span class="delete"> also holds.</span>
+<span class="name"><span class="insert">alternateOf(e,e)</span></span><span class="insert">.</span>
 </p>
+<span class="delete">This inference is justified by the fact that the entity denoted by </span><span class="delete">e2</span><span class="delete"> is generated by at most one activity in a given account
+(see </span><span class="delete">generation-uniqueness</span><span class="delete">). Hence,  this activity is also the one referred to by the usage of </span><span class="delete">e1</span><span class="delete">. 
+</span>
+
+<span class="delete">
+  There is some redundancy in the following discussion.
+  </span>
+
+<span class="delete">The converse inference does not hold.
+From </span><span class="delete">wasDerivedFrom(e2,e1)</span><span class="delete"> and </span><span class="delete">used(a,e1,-)</span><span class="delete">, one cannot
+derive </span><span class="delete">wasGeneratedBy(e2,a,-)</span><span class="delete"> because identifier </span><span class="delete">e1</span><span class="delete"> may occur in usages performed by many activities, which may have not generated the entity denoted by </span><span class="delete">e2</span><span class="delete">.</span>
+
+  <span class="delete">
+Note that derivation cannot in general be inferred from the existence
+of related usage and generation events. Indeed, when a generation </span><span class="delete">wasGeneratedBy(g, e2, a, -, attrs2)</span>
+<span class="delete">precedes</span> <span class="delete">used(u, a, e1, -, attrs1)</span><span class="delete">, for
+some </span><span class="delete">e1</span><span class="delete">, </span><span class="delete">e2</span><span class="delete">, </span><span class="delete">attrs1</span><span class="delete">, </span><span class="delete">attrs2</span><span class="delete">, and </span><span class="delete">a</span><span class="delete">, one
+cannot infer derivation </span><span class="delete">wasDerivedFrom(e2, e1, a, g, u)</span><span class="delete">
+or </span><span class="delete">wasDerivedFrom(e2,e1)</span><span class="delete"> since 
+ </span><span class="delete">e2</span><span class="delete"> cannot possibly be derived from
+ </span><span class="delete">e1</span><span class="delete">, given the creation of </span><span class="delete">e2</span> <span class="delete">precedes</span><span class="delete"> the use
+of </span><span class="delete">e1</span><span class="delete">.  That is, if </span><span class="delete">e1</span><span class="delete"> is generated
+by an activity before </span><span class="delete">e2</span><span class="delete"> is used, then
+obviously  </span><span class="delete">e2</span><span class="delete"> cannot have been derived from
+</span><span class="delete">e1</span><span class="delete">.  However, even if  </span><span class="delete">e2</span><span class="delete"> happens used before   </span><span class="delete">e1</span><span class="delete">
+is generated, it is not safe to assume that  </span><span class="delete">e2</span><span class="delete"> was derived from  </span><span class="delete">e1</span><span class="delete">.
+</span>
+
+<span class="delete"> Derivation is not defined to be transitive. Domain-specific specializations of derivation may be defined in such a way that the transitivity property
+holds.</span>
+
+  
+
+
+
+<span class="delete">A revision admits the following inference, linking the two entities
+  by a derivation, and stating them to be alternates.</span>
+
+<span class="delete">
+Given two identifiers </span><span class="delete">e1</span><span class="delete"> and </span><span class="delete">e2</span><span class="delete"> identifying two entities, and an identifier </span><span class="delete">ag</span><span class="delete"> identifying an agent,
+</span><span class="delete">IF</span> <span class="delete">wasRevisionOf(-,e2,e1,ag)</span><span class="delete"> holds, </span><span class="delete">THEN</span><span class="delete"> the following 
+hold:
+</span><span class="delete">wasDerivedFrom(-,e2,e1,-)
+alternateOf(e1,e2)
+wasAttributedTo(e2,ag)
+</span>
+
+
+<span class="delete">
+  The following doesn't make sense because wasRevisionOf and
+  wasDerivedFrom have different types.
+  </span>
+<span class="delete">wasRevisionOf</span><span class="delete"> is a strict sub-relation
+ of </span><span class="delete">wasDerivedFrom</span><span class="delete"> since two entities </span><span class="delete">e2</span><span class="delete"> and </span><span class="delete">e1</span><span class="delete">
+ may satisfy </span><span class="delete">wasDerivedFrom(e2,e1)</span><span class="delete"> without being a variant of
+ each other.
+</span>
+
+
+  <span class="delete">
+  Motivation for quotation inference
+  </span>
+
+<span class="delete">IF</span>
+<span class="delete">wasQuotedFrom(e2,e1,ag2,ag1,attrs)</span><span class="delete"> holds for some identifiers
+</span><span class="delete">e2</span><span class="delete">, </span><span class="delete">e1</span><span class="delete">, </span><span class="delete">ag2</span><span class="delete">, </span><span class="delete">ag1</span><span class="delete">, 
+</span><span class="delete">THEN</span><span class="delete"> the following hold:
+</span><span class="delete">wasDerivedFrom(e2,e1)
+wasAttributedTo(e2,ag2)
+wasAttributedTo(e1,ag1)
+</span>
+
+
+
+
+
+
+<span class="delete">Traceability allows an entity to be transitively linked to another entity it is derived from, to an agent it is attributed to, or another agent having some responsibility, or a trigger of an activity that generated it.</span>
+
+<span class="delete">Traceability can be inferred from existing statements, or can be asserted stating that a dependency path exists without its individual steps being expressed. This is captured 
+by the following inferences:
+
+</span><span class="delete">
+Given two identifiers </span><span class="delete">e2</span><span class="delete"> and  </span><span class="delete">e1</span><span class="delete"> for entities, 
+the following statements hold:
+
+</span> 
+<span class="delete">IF</span>  <span class="delete">wasDerivedFrom(e2,e1,a,g2,u1)</span><span class="delete"> holds, for some </span><span class="delete">a</span><span class="delete">, </span><span class="delete">g2</span><span class="delete">, </span><span class="delete">u1</span><span class="delete">, </span><span class="delete">THEN</span>  <span class="delete">tracedTo(e2,e1)</span><span class="delete"> also holds.</span>
+<span class="delete">IF</span>  <span class="delete">wasDerivedFrom(e2,e1)</span><span class="delete"> holds, </span><span class="delete">THEN</span>  <span class="delete">tracedTo(e2,e1)</span><span class="delete"> also
+holds.</span>
+<span class="delete">IF</span>  <span class="delete">wasAttributedTo(e2,ag1,aAttr)</span><span class="delete"> holds, </span><span class="delete">THEN</span>  <span class="delete">tracedTo(e2,ag1)</span><span class="delete"> also holds.
+</span>
+
+<span class="delete">IF</span>  <span class="delete">wasAttributedTo(e2,ag2,aAttr)</span><span class="delete">, </span><span class="delete">wasGeneratedBy(-,e2,a,-,gAttr)</span><span class="delete">,  and </span><span class="delete">actedOnBehalfOf(ag2,ag1,a,rAttr)</span><span class="delete"> hold, for some  </span><span class="delete">a</span><span class="delete">, </span><span class="delete">ag2</span><span class="delete">, </span><span class="delete">ag1</span><span class="delete">, </span><span class="delete">aAttr</span><span class="delete">,  </span><span class="delete">gAttr</span><span class="delete">, and </span><span class="delete">rAttr</span><span class="delete">, </span><span class="delete">THEN</span>  <span class="delete">tracedTo(e2,ag1)</span><span class="delete"> also holds.</span>
+
+<span class="delete">IF</span> <span class="delete">wasGeneratedBy(e2,a,gAttr)</span><span class="delete"> and </span><span class="delete">wasStartedBy(a,e1,sAttr)</span><span class="delete"> hold, for some  </span><span class="delete">a</span><span class="delete">, </span><span class="delete">gAttr</span><span class="delete"> , </span><span class="delete">sAttr</span><span class="delete">  then </span><span class="delete">tracedTo(e2,e1)</span><span class="delete"> holds.</span>
+<span class="delete">IF</span>  <span class="delete">tracedTo(e2,e)</span><span class="delete"> and  </span><span class="delete">tracedTo(e,e1)</span><span class="delete"> hold for some  </span><span class="delete">e</span><span class="delete">, </span><span class="delete">THEN</span>  <span class="delete">tracedTo(e2,e1)</span><span class="delete"> also holds.</span>
+
+
+
+<span class="delete">We note that the inference rule </span><span class="delete">traceability-inference</span><span class="delete"> does not
+allow us to infer anything about the attributes of the related
+entities, agents or events.
+</span>
+
+
+
+
+
+  
+<span class="delete">3.4 </span><span class="delete">Component 4: Alternate Entities</span>
+<span class="delete">TODO: There is currently no consensus what inferences on
+  alternate or specialization should be assumed.  The following
+  section lists possible inferences that may or may not be adopted. Section is under review, pending ISSUE-29.
+</span>
+
+
+  <span class="delete">The relation </span><span class="delete">alternateOf</span><span class="delete"> is an equivalence relation: </span><span class="delete">reflexive</span><span class="delete">,
+  </span><span class="delete">transitive</span><span class="delete"> and </span><span class="delete">symmetric</span><span class="delete">.</span>
+  
+  <span class="delete">
+    For any entity </span><span class="delete">e</span><span class="delete">, we have </span><span class="delete">alternateOf(e,e)</span><span class="delete">.
+    </span>
+
+
+       <span class="delete">
+    For any entities </span><span class="delete">e1</span><span class="delete">, </span><span class="delete">e2</span><span class="delete">, </span><span class="delete">e3</span><span class="delete">, </span><span class="delete">IF</span> <span class="delete">alternateOf(e1,e2)</span><span class="delete"> and
+   </span><span class="delete">alternateOf(e2,e3)</span> <span class="delete">THEN</span> <span class="delete">alternateOf(e1,e3)</span><span class="delete">.
+    </span>
+   <span class="delete">
+    For any entity </span><span class="delete">e1</span><span class="delete">, </span><span class="delete">e2</span><span class="delete">, </span><span class="delete">IF</span>  <span class="delete">alternateOf(e1,e2)</span> <span class="delete">THEN</span> <span class="delete">alternateOf(e2,e1)</span><span class="delete">.</span>
     </div>
 
 <p>
@@ -2024,10 +3245,10 @@
 </p><hr>
   <p id="alternate-transitive_text">
 
-       </p><div class="inference" id="alternate-transitive"><div class="ruleTitle"><a class="internalDFN" href="#alternate-transitive">Inference 19 (alternate-transitive)</a></div>
+       </p><div class="inference" id="alternate-transitive"><div class="ruleTitle"><a class="internalDFN" href="#alternate-transitive"><span class="insert">Inference 17 (alternate-transitive)</span></a></div>
 <p>
-<span class="conditional">IF</span> <span class="name">alternateOf(e1,e2)</span> and
-   <span class="name">alternateOf(e2,e3)</span> <span class="conditional">THEN</span> <span class="name">alternateOf(e1,e3)</span>.</p>
+<span class="conditional"><span class="insert">IF</span></span> <span class="name"><span class="insert">alternateOf(e1,e2)</span></span><span class="insert"> and
+   </span><span class="name"><span class="insert">alternateOf(e2,e3)</span></span> <span class="conditional"><span class="insert">THEN</span></span> <span class="name"><span class="insert">alternateOf(e1,e3)</span></span><span class="insert">.</span></p>
     </div>
 
 <p>
@@ -2035,9 +3256,9 @@
 </p><hr>
   <p id="alternate-symmetric_text">
 
-   </p><div class="inference" id="alternate-symmetric"><div class="ruleTitle"><a class="internalDFN" href="#alternate-symmetric">Inference 20 (alternate-symmetric)</a></div>
+   </p><div class="inference" id="alternate-symmetric"><div class="ruleTitle"><a class="internalDFN" href="#alternate-symmetric"><span class="insert">Inference 18 (alternate-symmetric)</span></a></div>
 <p>
-<span class="conditional">IF</span>  <span class="name">alternateOf(e1,e2)</span> <span class="conditional">THEN</span> <span class="name">alternateOf(e2,e1)</span>.</p>
+<span class="conditional"><span class="insert">IF</span></span>  <span class="name"><span class="insert">alternateOf(e1,e2)</span></span> <span class="conditional"><span class="insert">THEN</span></span> <span class="name"><span class="insert">alternateOf(e2,e1)</span></span><span class="insert">.</span></p>
     </div>
 
 <p>
@@ -2045,64 +3266,110 @@
 
 </p><hr>
 <p id="specialization-transitive_text">
-Similarly, specialization is a
-    <a href="#dfn-strict-partial-order" class="internalDFN">strict partial order</a>: it is <a href="#dfn-irreflexive" class="internalDFN">irreflexive</a> and
-    <a href="#dfn-transitive" class="internalDFN">transitive</a>.  Irreflexivity is handled later as <span class="delete">a
-    constraint.</span><a class="rule-ref" href="#impossible-specialization-reflexive"><span><span class="insert">Constraint 50 (impossible-specialization-reflexive)</span></span></a>
+Similarly, specialization is a 
+    <a href="#dfn-strict-partial-order" class="internalDFN">strict partial <span class="delete">order:</span><span class="insert">order</span></a><span class="insert">:</span> it is <a href="#dfn-irreflexive" class="internalDFN">irreflexive<span class="delete">,
+    </span><span class="delete">anti-symmetric</span></a> and
+    <a href="#dfn-transitive" class="internalDFN">transitive</a>.<span class="insert">  Irreflexivity is handled later as </span><a class="rule-ref" href="#impossible-specialization-reflexive"><span><span class="insert">Constraint 54 (impossible-specialization-reflexive)</span></span></a>
     </p>
-       <div class="inference" id="specialization-transitive"><div class="ruleTitle"><a class="internalDFN" href="#specialization-transitive">Inference 21 (specialization-transitive)</a></div>
+
+        
+       <div class="inference" id="specialization-transitive"><div class="ruleTitle"><a class="internalDFN" href="#specialization-transitive"><span class="insert">Inference 19 (specialization-transitive)</span></a></div>
 <p>
 
-<span class="conditional">IF</span> <span class="name">specializationOf(e1,e2)</span>
-    and
-	 <span class="name">specializationOf(e2,e3)</span> <span class="conditional">THEN</span> <span class="name">specializationOf(e1,e3)</span>.</p>
+<span class="conditional"><span class="insert">IF</span></span> <span class="name"><span class="insert">specializationOf(e1,e2)</span></span>
+    <span class="delete">For any entity </span><span class="delete">e</span><span class="delete">, it is not the case that
+    have </span><span class="delete">specializationOf(e,e)</span><span class="insert">and
+	 </span><span class="name"><span class="insert">specializationOf(e2,e3)</span></span> <span class="conditional"><span class="insert">THEN</span></span> <span class="name"><span class="insert">specializationOf(e1,e3)</span></span>.</p>
     </div> 
 
 <p>
 
-</p><hr>
-
-    <p id="specialization-alternate-inference_text">If one entity specializes another, then they are also
+<span class="delete">
+  For any
+    entities </span><span class="delete">e1</span><span class="delete">, </span><span class="delete">e2</span><span class="delete">,
+it is not the case that 
+  </span><span class="delete">specializationOf(e1,e2)</span><span class="delete">
+    and
+	 </span><span class="delete">specializationOf(e2,e1)</span><span class="delete">.
+</span> 
+       <span class="delete">
+    For any
+    entities </span><span class="delete">e1</span><span class="delete">, </span><span class="delete">e2</span><span class="delete">, </span><span class="delete">e3</span><span class="delete">, </span><span class="delete">IF</span> <span class="delete">specializationOf(e1,e2)</span><span class="delete">
+    and
+	 </span><span class="delete">specializationOf(e2,e3)</span> <span class="delete">THEN</span> <span class="delete">specializationOf(e1,e3)</span><span class="delete">.
+    </span> 
+
+
+
+    <span class="delete">Finally, if</span></p><hr>
+
+    <p id="specialization-alternate-inference_text"><span class="insert">If</span> one entity specializes another, then they are also
     alternates:</p>
     
-       <div class="inference" id="specialization-alternate-inference"><div class="ruleTitle"><a class="internalDFN" href="#specialization-alternate-inference">Inference 22 <span class="delete">(specialization-alternate)</span><span class="insert">(specialization-alternate-inference)</span></a></div>
+       <span class="delete">
+    For any entities  </span><span class="delete">e1</span><span class="delete">, </span><span class="delete">e2</span><span class="delete">, </span><div class="inference" id="specialization-alternate-inference"><div class="ruleTitle"><a class="internalDFN" href="#specialization-alternate-inference"><span class="insert">Inference 20 (specialization-alternate-inference)</span></a></div>
 <p>
 
 <span class="conditional">IF</span> <span class="name">specializationOf(e1,e2)</span> <span class="conditional">THEN</span> <span class="name">alternateOf(e1,e2)</span>.</p>
     </div> 
 
+
+    
+
 <hr>
-<p id="specialization-attributes-inference_text">
+<p id="specialization-attributes-inference_text"><span class="insert">
     If one entity specializes another then all attributes of the more
     general entity are also attributes of the more specific one.
-    </p>
-<div class="inference" id="specialization-attributes-inference"><div class="ruleTitle"><a class="internalDFN" href="#specialization-attributes-inference">Inference 23 <span class="delete">(specialization-attributes)</span><span class="insert">(specialization-attributes-inference)</span></a></div>
+    </span></p>
+<div class="inference" id="specialization-attributes-inference"><div class="ruleTitle"><a class="internalDFN" href="#specialization-attributes-inference"><span class="insert">Inference 21 (specialization-attributes-inference)</span></a></div>
   <p>
 
-<span class="conditional">IF</span> <span class="name">entity(e1, attrs)</span><span class="delete"> holds for some
-  attributes </span><span class="delete">attrs</span>   and <span class="name">specializationOf(e2,e1)</span><span class="delete"> holds,</span><span class="insert">,</span> <span class="conditional">THEN </span>
-  <span class="name">entity(e2, attrs)</span><span class="delete"> also holds.</span><span class="insert">.</span></p>
+<span class="conditional"><span class="insert">IF</span></span> <span class="name"><span class="insert">entity(e1, attrs)</span></span><span class="insert">  and </span><span class="name"><span class="insert">specializationOf(e2,e1)</span></span><span class="insert">, </span><span class="conditional"><span class="insert">THEN </span></span>
+  <span class="name"><span class="insert">entity(e2, attrs)</span></span><span class="insert">.</span></p>
   </div>
 
 
   
   <hr>
 
-  <div class="note">
-<p>Note: The following inference is associated with a feature "<a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi">at risk</a>" and may be removed from this specification based on feedback. Please send feedback to public-prov-comments@w3.org.</p>
+  <div class="note"><span class="delete">TODO: Possible inferences about attributes,
+  generation, invalidation?
+  </span>
+<p><span class="insert">Note: The following inference is associated with a feature "</span><a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi"><span class="insert">at risk</span></a><span class="insert">" and may be removed from this specification based on feedback. Please send feedback to public-prov-comments@w3.org.</span></p>
 </div>
 
 
-    <p id="mention-specialization-inference_text">If one entity is a mention of another in a bundle, then the former is also a specialization of the latter:</p>
+  <span class="delete">
+    The following sections are retained from an older version, and are
+    not consistent with the above constraints.  This will be revised
+    once the consensus on ISSUE-29</span>
+
+
+    <p id="mention-specialization-inference_text"><span class="insert">If one entity</span> is <span class="delete">clearer.</span><span class="insert">a mention of another in a bundle, then the former is also a specialization of the latter:</span></p>
     
-       <div class="inference" id="mention-specialization-inference"><div class="ruleTitle"><a class="internalDFN" href="#mention-specialization-inference">Inference 24 <span class="delete">(mention-specialization)</span><span class="insert">(mention-specialization-inference)</span></a></div>
+       <div class="inference" id="mention-specialization-inference"><div class="ruleTitle"><a class="internalDFN" href="#mention-specialization-inference"><span class="insert">Inference 22 (mention-specialization-inference)</span></a></div>
 <p>
-<span class="conditional">IF</span> <span class="name">mentionOf(e2,e1,b)</span> <span class="conditional">THEN</span> <span class="name">specializationOf(e2,e1)</span>.</p>
-    </div> 
+<span class="conditional"><span class="insert">IF</span></span> <span class="name"><span class="insert">mentionOf(e2,e1,b)</span></span> <span class="conditional"><span class="insert">THEN</span></span> <span class="name"><span class="insert">specializationOf(e2,e1)</span></span><span class="insert">.</span></p>
+    </div>
+    
+  
+<span class="delete">3.4.1 </span><span class="delete">Specialization</span>
+
+
+<span class="delete">Specialization is </span><span class="delete">neither symmetric nor anti-symmetric</span><span class="delete">.
+</span>
+
+<span class="delete">
+"Alice's toyota car on fifth Avenue" is a specialization of "Alice's toyota car", but the converse does not hold.
+</span> 
 
 
 </div>
 
+<span class="delete">
+anti-symmetric counter-example???
+</span>
+
 
 
 
@@ -2110,32 +3377,251 @@
 </div>
 
 
+<span class="delete">Specialization is </span><span class="delete">transitive</span><span class="delete">. Indeed if </span><span class="delete">specializationOf(e1,e2)</span><span class="delete"> holds, then there is some
+common thing, say </span><span class="delete">T1-2</span><span class="delete"> they both refer to,
+and  </span><span class="delete">e1</span><span class="delete"> is a more specific aspect of this
+thing than </span><span class="delete">e2</span><span class="delete">. Likewise, if </span><span class="delete">specializationOf(e2,e3)</span><span class="delete"> holds, then there is some
+common thing, say </span><span class="delete">T2-3</span><span class="delete"> they both refer to, and  </span><span class="delete">e2</span><span class="delete"> is a more specific aspect of this
+thing than </span><span class="delete">e3</span><span class="delete">.  The things </span><span class="delete">T1-2</span><span class="delete"> and </span><span class="delete">T2-3</span><span class="delete"> are the
+same since </span><span class="delete">e2</span><span class="delete"> is an aspect of both of them,
+so </span><span class="delete">specializationOf(e1,e3)</span><span class="delete"> follows since </span><span class="delete">e1</span><span class="delete"> and </span><span class="delete">e3</span><span class="delete">
+are aspects fo the same thing and </span><span class="delete">e1</span><span class="delete"> is more specific than </span><span class="delete">e3</span><span class="delete">. </span>
+
+
+<span class="delete">
+A specialization of "this  email message" would be, for example, the "printed version on my desk", which is a specialization of "my thoughts on this email thread".  So, the "printed version on my desk" is also a specialization   "my thoughts on this email thread".
+</span>
+
+
+ 
+
+
+<span class="delete">3.4.2 </span><span class="delete">Alternate</span>
+ 
+
+
+<span class="delete">Alternate not is </span><span class="delete">reflexive</span><span class="delete">. Indeed, </span><span class="delete">alternate(e,e)</span><span class="delete"> does not hold for any arbitrary entity </span><span class="delete">e</span><span class="delete"> since  </span><span class="delete">e</span><span class="delete"> may not be a specialization of another entity.</span>
+
+
+<span class="delete">Alternate is </span><span class="delete">symmetric</span><span class="delete">. Indeed, if </span><span class="delete">alternate(e1,e2)</span><span class="delete"> holds,
+then there exists an unspecified entity </span><span class="delete">e</span><span class="delete">, such that
+both </span><span class="delete">e1</span><span class="delete"> and </span><span class="delete">e2</span><span class="delete"> are specialization of </span><span class="delete">e</span><span class="delete">.
+Therefore, </span><span class="delete">alternate(e2,e1)</span><span class="delete"> also holds.
+</span>
+
+
+
+<span class="delete">Alternate is </span><span class="delete">not transitive</span><span class="delete">. Indeed, if </span><span class="delete">alternate(e1,e2)</span><span class="delete"> holds,
+then there exists an unspecified entity </span><span class="delete">e1-2</span><span class="delete">, such that
+both </span><span class="delete">e1</span><span class="delete"> and </span><span class="delete">e2</span><span class="delete"> are specialization of </span><span class="delete">e1-2</span><span class="delete">.
+Likewise, if </span><span class="delete">alternate(e2,e3)</span><span class="delete"> holds,
+then there exists an unspecified entity </span><span class="delete">e2-3</span><span class="delete">, such that
+both </span><span class="delete">e2</span><span class="delete"> and </span><span class="delete">e3</span><span class="delete"> are specialization of </span><span class="delete">e2-3</span><span class="delete">.
+It does not imply that there is a common entity </span><span class="delete">e1-3</span><span class="delete">
+that both  </span><span class="delete">e1</span><span class="delete"> and </span><span class="delete">e3</span><span class="delete"> specialize.
+</span>
+
+
+
+<span class="delete">At 6pm, the customer in a chair is a woman in a red dress, who happens to be Alice. After she leaves, another customer arrives at 7pm, a man with glasses, who happens to be Bob.  Transitivity does not hold since the </span><span class="delete">womanInRedDress\</span><span class="delete"> is not alternate of </span><span class="delete">customerInChairAt7pm</span><span class="delete">.
+</span><span class="delete">alternate(womanInRedDress,customerInChairAt6pm)
+specialization(customerInChairAt6pm,Alice)
+specialization(womanInRedDress,Alice)
+
+alternate(manWithGlasses,customerInChairAt7pm)
+specialization(customerInChairAt7pm,Bob)
+specialization(manWithGlasses,Bob)
+
+alternate(customerInChairAt6pm, customerInChairAt7pm)
+specialization(customerInChairAt6pm, customerInChair)
+specialization(customerInChairAt7pm, customerInChair)
+</span>
+
+
+<span class="delete">The above example shows that  </span><span class="delete">customerInChairAt6pm</span><span class="delete"> and </span><span class="delete">customerInChairAt7pm</span><span class="delete"> are two alternate entities that have no overlap, while </span><span class="delete">womanInRedDress</span><span class="delete"> and </span><span class="delete">customerInChairAt6pm</span><span class="delete"> do overlap.
+The following example   illustrates another case of non-overlapping alternate entities.
+</span>
+
+<span class="delete">Two copies of the same book, where copy A was destroyed before copy B was made.</span>
+
+
+
+
+
+
+
+
+  
+<span class="delete">4. </span><span class="delete">Equivalence</span><span class="delete">
+
+
+  For the purpose of checking inferences and constraints, we define a
+notion of </span><span class="delete">equivalence</span><span class="delete"> of PROV s.  Equivalence has the following characteristics:
+
+
+</span>
+  <span class="delete">Missing attributes that are interpreted as omitted values are
+  handled by generating a fresh
+  identifier for the omitted value.
+  </span>
+  <span class="delete"> Redundant expressions are merged according to uniqueness
+  constraints. </span>
+  <span class="delete">
+  The order of provenance expressions is irrelevant to the meaning of
+  a PROV instance.  That is, a
+  PROV instance is equivalent to any other instance obtained by
+  permuting its expressions.
+  </span>
+  <span class="delete">
+  Inference rules and definitions preserve equivalence.  That is, a </span><span class="delete">PROV
+  instance</span><span class="delete"> is equivalent to the instance obtained by applying any
+  inference rule.
+  </span>
+  <span class="delete">Equivalence is reflexive, symmetric, and transitive.</span>
+
+
+  
+  <span class="delete">4.1 </span><span class="delete">Optional Attributes</span>
+  
+<span class="delete">
+  TODO: Clarify how optional attributes are handled; clarify merging.  The following is
+  not very explicit about the difference between "not present" and
+  "omitted but inferred".
+  </span>
+<span class="delete">PROV-DM allows for some attributes to
+  be optionally expressed. Unless otherwise specified, when an
+  optional attribute is not present in a statement, some value
+  </span><span class="delete">should</span><span class="delete"> be assumed to exist for this attribute, though it is not
+  known which.
+
+  The only exceptions are:
+  </span>
+   <span class="delete">Activities also allow for an
+  optional start time attribute.  If both are specified, they </span><span class="delete">must</span><span class="delete"> be
+  the same, as expressed by the following constraint.</span>
+    <span class="delete">Activities also allow for an optional end time attribute.  If both are specified, they </span><span class="delete">must</span><span class="delete"> be the same, as expressed by the following constraint.</span>
+    
+    <span class="delete">In a quotation of the form </span><span class="delete">wasQuotedFrom(e2,e1,-,-,attrs)</span><span class="delete">, the absence of an agent means: either no agent exists, or an agent exists but it is not identified.</span>
+
+<span class="delete">In an association of the form
+  </span><span class="delete">wasAssociatedWith(a, ag, -, attr)</span><span class="delete">, the
+  absence of a plan means: either no plan exists, or a plan exists but
+  it is not identified.</span>
+  <span class="delete">
+In an association of the form </span><span class="delete">wasAssociatedWith(a, -, pl, attr)</span><span class="delete">, an agent exists but it is not identified.</span>
+
+<span class="delete">
+In a a delegation of the form </span><span class="delete">actedOnBehalfOf(a,
+  ag2, ag1, -, attr)</span><span class="delete">, the absence of an activity means that
+  </span><span class="delete">a2</span><span class="delete"> acts on behalf of </span><span class="delete">a1</span><span class="delete"> for all activities with which </span><span class="delete">a2</span><span class="delete"> is
+  associated.
+</span>
+   
+
+
+
+
+
+<span class="delete">4.2 </span><span class="delete">Normalization</span>
+
+
+<span class="delete">
+We define the </span><span class="delete">normal form</span><span class="delete"> of a PROV instance as the set
+of provenance expressions resulting from merging all of the overlapping
+expressions in the instance and applying all possible inference rules
+to this set.  Formally, we say that two PROV  instances are
+</span><span class="delete">equivalent</span><span class="delete"> if they have the same normal form (that is,
+after applying all possible inference rules, the two instances produce
+the same set of PROV-DM expressions.)
+</span>
+
+<span class="delete">
+  We should check that normal forms exist, i.e. that applying rules
+  and definitions eventually terminates.  More clarity is needed about
+  enforcing uniqueness via merging vs. constraint checking.
+  </span>
+
+<span class="delete"> An application that processes PROV-DM data </span><span class="delete">should</span><span class="delete"> handle
+equivalent instances in the same way. (Common exceptions to this rule
+include, for example, pretty printers that seek to preserve the
+original order of statements in a file and avoid expanding
+inferences.)  </span>
+
+
+  
+ 
 
 <div id="constraints" class="section">
-<h2><span class="secno">5. </span>Constraints</h2>
+<h2><span class="secno">5. </span><span class="delete">Validity </span>Constraints</h2>
 
 
 
 
 <p>
-This section defines a collection of constraints on PROV instances.
-There are three kinds of constraints:
+This section defines a collection of constraints on PROV instances.<span class="delete">  A PROV instance is </span><span class="delete">valid</span><span class="delete">
+  if, after applying all possible inference and definition rules from
+  </span><span class="delete">Section 2</span><span class="delete">, the resulting instance
+  satisfies all of the constraints specified in this section.
+ </span>
+
+   
+There are <span class="delete">two</span><span class="insert">three</span> kinds of constraints:
   </p><ul><li><em>uniqueness constraints</em> that say that a <a>PROV
-  instance</a> can contain at most one statement of each kind with a
+  instance</a> can contain at most one <span class="delete">expression or that multiple
+  expressions about</span><span class="insert">statement of each kind with a
     given identifier. For
+  example, if we describe</span> the same <span class="delete">objects need to</span><span class="insert">generation event twice, then the
+  two statements should</span> have the same <span class="delete">values (for
   example, if we describe the same generation event twice, then the
-  two statements should have the same times;
+  two expressions should have the same times);</span><span class="insert">times;</span>
     </li>
-    <li> <em>event ordering constraints</em> that say that it
+    <li> <span class="delete">and </span><em>event ordering constraints</em> that say that it
   should be possible to arrange the 
   events (generation, usage, invalidation, start, end) described in a
-  PROV instance into a <a href="#dfn-preorder" class="internalDFN">preorder</a> that corresponds to a sensible
+  PROV instance into a <span class="delete">partial order</span><a href="#dfn-preorder" class="internalDFN"><span class="insert">preorder</span></a> that corresponds to a sensible
   "history" (for example, an entity should not be generated after it
-  is used); and
+  is <span class="delete">used).</span><span class="insert">used); and</span>
     </li>
-    <li><em>impossibility constraints</em>, which forbid certain
-    patterns of statements in <a href="#dfn-valid" class="internalDFN">valid</a> PROV instances.
-    </li></ul>
+    <li><em><span class="insert">impossibility constraints</span></em><span class="insert">, which forbid certain
+    patterns of statements in </span><a href="#dfn-valid" class="internalDFN"><span class="insert">valid</span></a><span class="insert"> PROV instances.
+    </span></li></ul>
+
+
+  
+  <p><span class="delete">The PROV data model</span><span class="insert">As in a [definition|inference], term symbols such as </span><span class="name"><span class="insert">id</span></span><span class="insert">, 
+	</span><span class="name"><span class="insert">start</span></span><span class="insert">, </span><span class="name"><span class="insert">end</span></span><span class="insert">, </span><span class="name"><span class="insert">e</span></span><span class="insert">, 
+	</span><span class="name"><span class="insert">a</span></span><span class="insert">, </span><span class="name"><span class="insert">attrs</span></span><span class="insert"> in a constraint,
+	are assumed to be variables unless otherwise specified.  These variables are scoped at 
+	the constraint level, so the rule</span> is <span class="delete">implicitly based on</span><span class="insert">equivalent to any one-for-one 
+	renaming of the variable names.  When several rules are collected within</span> a <span class="delete">notion</span><span class="insert">constraint
+	as an ordered list, the scope</span> of <span class="delete">instantaneous event</span><span class="delete">s (or just </span><span class="delete">event</span><span class="delete">s), that mark
+transitions</span><span class="insert">the variables</span> in <span class="delete">the world.  Events include generation, usage, or
+invalidation</span><span class="insert">each rule is at the level</span> of <span class="delete">entities, as well as starting or ending</span><span class="insert">list elements, and so reuse</span> of<span class="delete"> activities.  This
+notion of event is</span><span class="insert"> 
+	variable names in different rules does</span> not <span class="delete">first-class in the data model, but it is useful
+for explaining its other concepts and its semantics [</span><span class="delete">PROV-SEM</span><span class="delete">].
+Thus, events help justify  </span><span class="delete">inferences</span><span class="delete"> on provenance as well as
+</span><span class="delete">validity</span><span class="delete"> constraints indicating when provenance is self-consistent. In </span><span class="delete">section 8.4 Events and Time</span><span class="delete"> we
+discuss the motivation for </span><span class="delete">instantaneous events</span><span class="delete">
+and their relationship to time in greater detail.</span><span class="insert">affect the meaning.
+</span></p>
+
+<span class="delete">  PROV-DM
+identifies five kinds of </span><span class="delete">instantaneous events</span><span class="delete">, namely </span><span class="delete">entity generation
+event</span><span class="delete">, </span><span class="delete">entity usage event</span><span class="delete">, </span><span class="delete">entity invalidation event</span><span class="delete">, </span><span class="delete">activity start event</span><span class="delete">
+and </span><span class="delete">activity end event</span><span class="delete">.  PROV-DM adopts Lamport's clock
+assumptions [</span><span class="delete">CLOCK</span><span class="delete">] in the form of a reflexive, transitive partial order </span><span class="delete">follows</span><span class="delete">
+(and its inverse </span><span class="delete">precedes</span><span class="delete">) between </span><span class="delete">instantaneous events</span><span class="delete">.  Furthermore,
+PROV-DM assumes the existence of a mapping from </span><span class="delete">instantaneous events</span><span class="delete"> to time clocks,
+though the actual mapping is not in scope of this specification.</span>
+
+    
+<span class="delete">
+  TODO: More about what it means for constraints to be satisfied;
+  constraint template(s)
+  </span>
+  
+    
 
   <div id="uniqueness-constraints" class="section">
 
@@ -2143,114 +3629,129 @@
  
   <h3><span class="secno">5.1 </span>Uniqueness Constraints</h3>
 
+<span class="delete">
+Attribute</span>
+
 
     
-   <p> In the absence of existential variables, uniqueness constraints
+   <p><span class="insert"> In the absence of existential variables,</span> uniqueness <span class="delete">constraints?
+</span><span class="insert">constraints
     could be checked directly by checking that no identifier appears
     more than once for a given statement.  However, in the presence of
     existential variables, we need to be more careful to combine
     partial information that might be present in multiple compatible
     statements, due to inferences.  Uniqueness constraints are
-    enforced through <a href="#dfn-merging" class="internalDFN">merging</a> pairs of statements subject to
+    enforced through </span><a href="#dfn-merging" class="internalDFN"><span class="insert">merging</span></a><span class="insert"> pairs of statements subject to
     equalities.  For example, suppose we have two activity statements
-    <span class="name"><span class="delete">activity(a,2011-11-16T16:00:00,t1,[a=1])</span><span class="delete"> and </span><span class="delete">activity(a,t2,2011-11-16T18:00:00,[b=2])</span><span class="insert">activity(a,2011-11-16T16:00:00,_t1,[a=1])</span></span><span class="insert"> and </span><span class="name"><span class="insert">activity(a,_t2,2011-11-16T18:00:00,[b=2])</span></span><span class="insert">, with existential variables </span><span class="name"><span class="insert">_t1</span></span><span class="insert"> and </span><span class="name"><span class="insert">_t2</span></span>.  The <a>merge</a> of
-    these two statements (describing the same activity <span class="name">a</span>) is <span class="name">activity(a,2011-11-16T16:00:00,2011-11-16T18:00:00,[a=1,b=2])</span>.  </p>
-
-    <p> <dfn id="dfn-merging">Merging</dfn><span class="insert"> is an operation that</span> can be applied
+    </span><span class="name"><span class="insert">activity(a,2011-11-16T16:00:00,_t1,[a=1])</span></span><span class="insert"> and </span><span class="name"><span class="insert">activity(a,_t2,2011-11-16T18:00:00,[b=2])</span></span><span class="insert">, with existential variables </span><span class="name"><span class="insert">_t1</span></span><span class="insert"> and </span><span class="name"><span class="insert">_t2</span></span><span class="insert">.  The </span><a><span class="insert">merge</span></a><span class="insert"> of
+    these two statements (describing the same activity </span><span class="name"><span class="insert">a</span></span><span class="insert">) is </span><span class="name"><span class="insert">activity(a,2011-11-16T16:00:00,2011-11-16T18:00:00,[a=1,b=2])</span></span><span class="insert">.  </span></p>
+
+    <p> <dfn id="dfn-merging"><span class="insert">Merging</span></dfn><span class="insert"> is an operation that can be applied
    to a pair of terms, or a pair of attribute lists.
    The result of merging is either a substitution (mapping
-   existentially quantified variables to terms) or <span class="delete">a special symbol
-   </span><span class="delete">undefined</span><span class="insert">failure,</span> indicating that the merge
+   existentially quantified variables to terms) or failure, indicating that the merge
    cannot be performed.  Merging of pairs of terms, attribute lists,
-   or statements is defined as follows.</p>
+   or statements is defined as follows.</span></p>
 
     <ul>
-      <li> If <span class="name">t</span> and <span class="name">t'</span> are concrete identifiers or values
-      (including the placeholder <span class="name">-</span>), then
-   their <a>merge</a> exists only if they are equal, otherwise merging<span class="delete">
-   is undefined.</span><span class="insert">
-fails.</span>  </li>
-   <li> If <span class="name">x</span> is an existential variable
+      <li><span class="insert"> If </span><span class="name"><span class="insert">t</span></span><span class="insert"> and </span><span class="name"><span class="insert">t'</span></span><span class="insert"> are constant identifiers or values
+      (including the placeholder </span><span class="name"><span class="insert">-</span></span><span class="insert">), then
+   their </span><a><span class="insert">merge</span></a><span class="insert"> exists only if they are equal, otherwise merging
+fails.  </span></li>
+   <li><span class="insert"> If </span><span class="name"><span class="insert">x</span></span><span class="insert"> is an existential variable
       and 
-   <span class="name">t'</span> is any term (identifier, constant,
-      placeholder <span class="name">-</span>, or
+   </span><span class="name"><span class="insert">t'</span></span><span class="insert"> is any term (identifier, constant,
+      placeholder </span><span class="name"><span class="insert">-</span></span><span class="insert">, or
       existential variable), then their
-   <a>merge</a> is <span class="name">t'</span>, and the resulting substitution is
-      <span class="name">[x=t']</span>.  In the special case where <span class="name">t'=x</span>, the merge is
-      <span class="name">x</span> and the resulting substitution is empty.</li>
-         <li> If <span class="name">t</span> is any term (identifier, constant,
-      placeholder <span class="name">-</span>, or
+   </span><a><span class="insert">merge</span></a><span class="insert"> is </span><span class="name"><span class="insert">t'</span></span><span class="insert">, and the resulting substitution is
+      </span><span class="name"><span class="insert">[x=t']</span></span><span class="insert">.  In the special case where </span><span class="name"><span class="insert">t'=x</span></span><span class="insert">, the merge is
+      </span><span class="name"><span class="insert">x</span></span><span class="insert"> and the resulting substitution is empty.</span></li>
+         <li><span class="insert"> If </span><span class="name"><span class="insert">t</span></span><span class="insert"> is any term (identifier, constant,
+      placeholder </span><span class="name"><span class="insert">-</span></span><span class="insert">, or
       existential variable) and
-   <span class="name">x'</span> is an existential variable, then their
-      merge is the same as the merge of <span class="name">x</span> and <span class="name">t</span>.</li>
-  <li> The <a>merge</a> of two attribute lists  <span class="name">attrs1</span> and  <span class="name">attrs2</span>
-   is their union, considered as <span class="delete">unordered lists,</span><span class="insert">sets of key-value pairs,</span> written  <span class="name">attrs1 ∪ attrs2</span>. <span class="insert">  Duplicate keys with
+   </span><span class="name"><span class="insert">x'</span></span><span class="insert"> is an existential variable, then their
+      merge is the same as the merge of </span><span class="name"><span class="insert">x</span></span><span class="insert"> and </span><span class="name"><span class="insert">t</span></span><span class="insert">.</span></li>
+  <li><span class="insert"> The </span><a><span class="insert">merge</span></a><span class="insert"> of two attribute lists  </span><span class="name"><span class="insert">attrs1</span></span><span class="insert"> and  </span><span class="name"><span class="insert">attrs2</span></span><span class="insert">
+   is their union, considered as sets of key-value pairs, written  </span><span class="name"><span class="insert">attrs1 ∪ attrs2</span></span><span class="insert">.  Duplicate keys with
       different  are
       allowed, but equal key-value pairs are merged.</span></li>
 </ul>
 
 
-<div class="remark">Merging for terms is analogous to unification in
+<div class="remark"><span class="insert">Merging for terms is analogous to unification in
   logic programming and theorem proving, restricted to flat terms with
   no function symbols.  No occurs check is needed because there are no
-  function symbols.</div>
-
-  <p>
+  function symbols.</span></div>
+
+  <p><span class="delete"> We assume </span><span class="insert">
 A typical uniqueness constraint is as follows:
-  </p>
-  <div class="constraint-example" id="uniqueness-example"><div class="ruleTitle"><a class="internalDFN" href="#uniqueness-example">Constraint-example NNN (uniqueness-example)</a></div>
-<p>    <span class="conditional">IF</span> <span class="name">hyp<sub>1</sub></span> and ... and <span class="name">hyp<sub>n</sub></span> <span class="conditional">THEN</span> <span class="name">t<sub>1</sub></span> = <span class="name">u<sub>1</sub></span> and ... and <span class="name">t<sub>n</sub></span> = <span class="name">u<sub>n</sub></span>.</p>
+  </span></p>
+  <div class="constraint-example" id="uniqueness-example"><div class="ruleTitle"><a class="internalDFN" href="#uniqueness-example"><span class="insert">Constraint-example NNN (uniqueness-example)</span></a></div>
+<p>    <span class="conditional"><span class="insert">IF</span></span> <span class="name"><span class="insert">hyp</span><sub><span class="insert">1</span></sub></span><span class="insert"> and ... and </span><span class="name"><span class="insert">hyp</span><sub><span class="insert">n</span></sub></span> <span class="conditional"><span class="insert">THEN</span></span> <span class="name"><span class="insert">t</span><sub><span class="insert">1</span></sub></span><span class="insert"> = </span><span class="name"><span class="insert">u</span><sub><span class="insert">1</span></sub></span><span class="insert"> and ... and </span><span class="name"><span class="insert">t</span><sub><span class="insert">n</span></sub></span><span class="insert"> = </span><span class="name"><span class="insert">u</span><sub><span class="insert">n</span></sub></span><span class="insert">.</span></p>
   </div>
 
-  <p> Such a constraint is enforced as follows:</p>
-  <ol> <li>Suppose PROV instance <span class="math">I</span> contains all of the hypotheses
-  <span class="name">hyp<sub>1</sub></span> and ... and <span class="name">hyp<sub>n</sub></span>.
-    </li>
-    <li>Attempt to merge all of the equated terms in the conclusion
-  <span class="name">t<sub>1</sub></span> = <span class="name">u<sub>1</sub></span> and ... and <span class="name">t<sub>n</sub></span> = <span class="name">u<sub>n</sub></span>.
-    </li>
-    <li>If merging fails, then the constraint
-  is unsatisfiable, so application of the constraint to <span class="math">I</span>
-  fails.<span class="insert"> If this failure occurs during </span><a><span class="insert">normalization</span></a><span class="insert"> prior to
+  <p><span class="insert"> Such a constraint is enforced as follows:</span></p>
+  <ol> <li><span class="insert">Suppose PROV instance </span><span class="math"><span class="insert">I</span></span><span class="insert"> contains all of the hypotheses
+  </span><span class="name"><span class="insert">hyp</span><sub><span class="insert">1</span></sub></span><span class="insert"> and ... and </span><span class="name"><span class="insert">hyp</span><sub><span class="insert">n</span></sub></span><span class="insert">.
+    </span></li>
+    <li><span class="insert">Attempt to merge all of the equated terms in the conclusion
+  </span><span class="name"><span class="insert">t</span><sub><span class="insert">1</span></sub></span><span class="insert"> = </span><span class="name"><span class="insert">u</span><sub><span class="insert">1</span></sub></span><span class="insert"> and ... and </span><span class="name"><span class="insert">t</span><sub><span class="insert">n</span></sub></span><span class="insert"> = </span><span class="name"><span class="insert">u</span><sub><span class="insert">n</span></sub></span><span class="insert">.
+    </span></li>
+    <li><span class="insert">If merging fails, then the constraint
+  is unsatisfiable, so application of the constraint to </span><span class="math"><span class="insert">I</span></span><span class="insert">
+  fails. If this failure occurs during </span><a><span class="insert">normalization</span></a><span class="insert"> prior to
 validation, then </span><span class="math"><span class="insert">I</span></span><span class="insert"> is invalid, as explained in </span><a href="#normalization-validity-equivalence"><span class="insert">Section 6</span></a><span class="insert">.
     </span></li>
-  <li>If merging succeeds with a substitution <span class="math">S</span>, then
-  <span class="math">S</span> is applied to the instance <span class="math">I</span>, yielding result <span class="math"><span class="delete">I(S)</span><span class="insert">S(I)</span></span>.</li>
+  <li><span class="insert">If merging succeeds with a substitution </span><span class="math"><span class="insert">S</span></span><span class="insert">, then
+  </span><span class="math"><span class="insert">S</span></span><span class="insert"> is applied to the instance </span><span class="math"><span class="insert">I</span></span><span class="insert">, yielding result </span><span class="math"><span class="insert">S(I)</span></span><span class="insert">.</span></li>
   </ol>
   
-<p>  <span class="delete">In the common case </span><em><dfn id="dfn-key-constraints"><span class="insert">Key constraints</span></dfn></em><span class="insert"> are uniqueness constraints
-  </span>that <span class="insert">specify that </span>a particular <span class="insert">key </span>field of a relation uniquely
-  determines the other <span class="delete">fields, we call the uniqueness constraint a
-  </span><span class="delete">key constraint</span><span class="delete">.</span><span class="insert">parameters.</span>  Key constraints are written as follows:
+<p>  <em><dfn id="dfn-key-constraints"><span class="insert">Key constraints</span></dfn></em><span class="insert"> are uniqueness constraints
+  </span>that <span class="delete">the various identified objects</span><span class="insert">specify that a particular key field</span> of <span class="delete">PROV-DM have
+  unique statements describing them within </span>a <span class="delete">PROV instance.</span><span class="insert">relation uniquely
+  determines the other parameters.  Key constraints are written as follows:</span>
   </p>
-
-  <div class="constraint-example" id="key-example"><div class="ruleTitle"><a class="internalDFN" href="#key-example">Constraint-example NNN (key-example)</a></div>
-    <p>The <span class="name">a<sub>k</sub></span> field is a <span class="conditional">KEY</span> for relation <span class="name">r(a<sub>0</sub><span class="delete">;a</span><span class="insert">; a</span><sub>1</sub>,...,a<sub>n</sub>)</span>.  </p></div>
-
- <p> Because of the presence of attributes, key constraints do not
+  
+<span class="delete">Given an entity identifier </span><span class="delete">e</span><span class="delete">, there is at
+  most one expression 
+</span><span class="delete">entity(e,attrs)</span><span class="delete">, where </span><span class="delete">attrs</span><span class="delete"> is some set of attribute-values.</span>
+    
+  
+<span class="delete">Given an activity identifier </span><span class="delete">a</span><span class="delete">, there is
+  at most one expression 
+</span><span class="delete">activity(a,t1,t2,attrs)</span><span class="delete">, where </span><span class="delete">attrs</span><span class="delete"> is some set of attribute-values.</span>
+    
+
+  <div class="constraint-example" id="key-example"><div class="ruleTitle"><a class="internalDFN" href="#key-example"><span class="insert">Constraint-example NNN (key-example)</span></a></div>
+    <span class="delete">TODO: Same goes</span><p><span class="insert">The </span><span class="name"><span class="insert">a</span><sub><span class="insert">k</span></sub></span><span class="insert"> field is a </span><span class="conditional"><span class="insert">KEY</span></span> for <span class="insert">relation </span><span class="name"><span class="insert">r(a</span><sub><span class="insert">0</span></sub><span class="insert">; a</span><sub><span class="insert">1</span></sub><span class="insert">,...,a</span><sub><span class="insert">n</span></sub><span class="insert">)</span></span><span class="insert">.  </span></p></div>
+
+ <p><span class="insert"> Because of the presence of attributes, key constraints do not
   reduce directly to uniqueness constraints.  Instead, we enforce key
-  constraints as follows.  </p>
+  constraints as follows.  </span></p>
   <ol>
-    <li> Suppose <span class="name">r(a<sub>0</sub><span class="delete">;a</span><span class="insert">; a</span><sub>1</sub>,...a<sub>n</sub>,attrs1)</span> and <span class="name">r(b<sub>0</sub><span class="delete">;b</span><span class="insert">; b</span><sub>1</sub>,...b<sub>n</sub>,attrs2)</span> hold in PROV instance <span class="math">I</span>, where the key fields <span class="name">a<sub>k</sub> = b<sub>k</sub></span> are equal.</li>
-  <li> Attempt to merge all of the corresponding parameters  <span class="name">a<sub>0</sub> = b<sub>0</sub> </span> and ... and  <span class="name">a<sub>n</sub> = b<sub>n</sub></span>.
-  </li>
-  <li>If merging fails, then the constraint is unsatisfiable, so
-  application of the key constraint to <span class="math">I</span> fails.
-  </li>
-  <li>If merging succeeds with substitution <span class="math">S</span>, then we remove <span class="name">r(a<sub>0</sub><span class="delete">;a</span><span class="insert">; a</span><sub>1</sub>,...a<sub>n</sub>,attrs1)</span> and <span class="name">r(b<sub>0</sub><span class="delete">;b</span><span class="insert">; b</span><sub>1</sub>,...b<sub>n</sub>,attrs2)</span> from <span class="math">I</span>, obtaining
-  instance <span class="math">I'</span>, and return instance  <span class="name">{r(S(a<sub>0</sub><span class="delete">);S(a</span><span class="insert">); S(a</span><sub>1</sub>),...S(a<sub>n</sub>),attrs1 ∪
-  attrs2)}</span>  ∪ <span class="math">S(I')</span>.
-    </li></ol>
+    <li><span class="insert"> Suppose </span><span class="name"><span class="insert">r(a</span><sub><span class="insert">0</span></sub><span class="insert">; a</span><sub><span class="insert">1</span></sub><span class="insert">,...a</span><sub><span class="insert">n</span></sub><span class="insert">,attrs1)</span></span><span class="insert"> and </span><span class="name"><span class="insert">r(b</span><sub><span class="insert">0</span></sub><span class="insert">; b</span><sub><span class="insert">1</span></sub><span class="insert">,...b</span><sub><span class="insert">n</span></sub><span class="insert">,attrs2)</span></span><span class="insert"> hold in PROV instance </span><span class="math"><span class="insert">I</span></span><span class="insert">, where the key fields </span><span class="name"><span class="insert">a</span><sub><span class="insert">k</span></sub><span class="insert"> = b</span><sub><span class="insert">k</span></sub></span><span class="insert"> are equal.</span></li>
+  <li><span class="insert"> Attempt to merge </span>all <span class="insert">of the corresponding parameters  </span><span class="name"><span class="insert">a</span><sub><span class="insert">0</span></sub><span class="insert"> = b</span><sub><span class="insert">0</span></sub> </span><span class="insert"> and ... and  </span><span class="name"><span class="insert">a</span><sub><span class="insert">n</span></sub><span class="insert"> = b</span><sub><span class="insert">n</span></sub></span><span class="insert">.
+  </span></li>
+  <li><span class="insert">If merging fails, then the constraint is unsatisfiable, so
+  application of the key constraint to </span><span class="math"><span class="insert">I</span></span><span class="insert"> fails.
+  </span></li>
+  <li><span class="insert">If merging succeeds with substitution </span><span class="math"><span class="insert">S</span></span><span class="insert">, then we remove </span><span class="name"><span class="insert">r(a</span><sub><span class="insert">0</span></sub><span class="insert">; a</span><sub><span class="insert">1</span></sub><span class="insert">,...a</span><sub><span class="insert">n</span></sub><span class="insert">,attrs1)</span></span><span class="insert"> and </span><span class="name"><span class="insert">r(b</span><sub><span class="insert">0</span></sub><span class="insert">; b</span><sub><span class="insert">1</span></sub><span class="insert">,...b</span><sub><span class="insert">n</span></sub><span class="insert">,attrs2)</span></span><span class="insert"> from </span><span class="math"><span class="insert">I</span></span><span class="insert">, obtaining
+  instance </span><span class="math"><span class="insert">I'</span></span><span class="insert">, and return instance  </span><span class="name"><span class="insert">{r(S(a</span><sub><span class="insert">0</span></sub><span class="insert">); S(a</span><sub><span class="insert">1</span></sub><span class="insert">),...S(a</span><sub><span class="insert">n</span></sub><span class="insert">),attrs1 ∪
+  attrs2)}</span></span><span class="insert">  ∪ </span><span class="math"><span class="insert">S(I')</span></span><span class="insert">.
+    </span></li></ol>
 
     
-<p>Thus, if a PROV instance contains an apparent violation of a uniqueness
+<p><span class="insert">Thus, if a PROV instance contains an apparent violation of a uniqueness
   constraint or key constraint, merging can be used to determine
   whether the constraint can be satisfied by instantiating some existential
-  variables with other terms.  For key constraints, this is the same
+  variables with </span>other <span class="delete">objects:
+  agent, note, generation, usage, invalidation, start, end,
+  communication, start by, attribution, association, responsibility, 
+  derivation, revision, quotation.</span><span class="insert">terms.</span>  <span class="delete">We should find</span><span class="insert">For key constraints, this is the same
   as merging pairs of statements whose keys are equal and whose
-  coresponding arguments are compatible, because after
+  corresponding arguments are compatible, because after
   merging respective arguments and attribute lists, the two statements
-  become equal and one can be omitted. </p>
+  become equal and one can be omitted. </span></p>
   
 
 
@@ -2260,76 +3761,75 @@
 <p>
 </p><hr>
 
-  <p id="key-object_text"><span class="delete"> We assume that the</span><span class="insert">The</span> various identified objects of PROV <em class="rfc2119" title="must"><span class="insert">must</span></em> have
-  unique statements describing them within a <span class="insert">valid </span>PROV <span class="delete">instance,</span><span class="insert">instance.
-  This is enforced</span> through
+  <p id="key-object_text"><span class="insert">The various identified objects of PROV </span><em class="rfc2119" title="must"><span class="insert">must</span></em><span class="insert"> have
+  unique statements describing them within</span> a<span class="delete">
+  way</span><span class="insert"> valid PROV instance.
+  This is enforced through
   the following key constraints:
-  </p>
-  <div class="constraint" id="key-object"><div class="ruleTitle"><a class="internalDFN" href="#key-object">Constraint 25 (key-object)</a></div>
+  </span></p>
+  <div class="constraint" id="key-object"><div class="ruleTitle"><a class="internalDFN" href="#key-object"><span class="insert">Constraint 23 (key-object)</span></a></div>
 <p></p><ol>
-  <li>The identifier field <span class="name">e</span> is a <span class="conditional">KEY</span> for
-  the <span class="name">entity(e,attrs)</span> statement.
-  </li>
-  <li>The identifier field <span class="name">a</span> is a <span class="conditional">KEY</span> for
-  the  <span class="name">activity(a,t1,t2,attrs)</span> statement.
-   </li>
-<li>The identifier field <span class="name">ag</span> is a <span class="conditional">KEY</span> for
-  the  <span class="name">agent(ag,attrs)</span> statement.
-  </li>
+  <li><span class="insert">The identifier field </span><span class="name"><span class="insert">e</span></span><span class="insert"> is a </span><span class="conditional"><span class="insert">KEY</span></span><span class="insert"> for
+  the </span><span class="name"><span class="insert">entity(e,attrs)</span></span><span class="insert"> statement.
+  </span></li>
+  <li><span class="insert">The identifier field </span><span class="name"><span class="insert">a</span></span><span class="insert"> is a </span><span class="conditional"><span class="insert">KEY</span></span><span class="insert"> for
+  the  </span><span class="name"><span class="insert">activity(a,t1,t2,attrs)</span></span><span class="insert"> statement.
+   </span></li>
+<li><span class="insert">The identifier field </span><span class="name"><span class="insert">ag</span></span><span class="insert"> is a </span><span class="conditional"><span class="insert">KEY</span></span><span class="insert"> for
+  the  </span><span class="name"><span class="insert">agent(ag,attrs)</span></span><span class="insert"> statement.
+  </span></li>
   </ol>
    </div>
 
    <hr>
-   <p id="key-properties_text"> Likewise, <span class="delete">we assume</span><span class="insert">the statements
+   <p id="key-properties_text"><span class="insert"> Likewise, the statements
 in a valid PROV instance must provide consistent information about
    each identified object or relationship. The following key
-   constraints require</span> that <span class="delete">the identifiers</span><span class="insert">all of the information about each identified</span>
-   <span class="delete">of relationships in PROV uniquely identify the corresponding statements</span><span class="insert">statement can be merged into</span> a <span class="delete">PROV instance, through
-  the following key constraints:</span><span class="insert">single, consistent statement:</span>
-  </p>
-  <div class="constraint" id="key-properties"><div class="ruleTitle"><a class="internalDFN" href="#key-properties">Constraint 26 (key-properties)</a></div>
-<p></p><ol>
-  <li>The identifier field <span class="name">id</span> is a <span class="conditional">KEY</span> for
-  the <span class="name"><span class="delete">wasGeneratedBy(id;e,a,t,attrs)</span><span class="insert">wasGeneratedBy(id; e,a,t,attrs)</span></span> statement.
-  </li>
-  <li>The identifier field <span class="name">id</span> is a <span class="conditional">KEY</span> for
-  the <span class="name"><span class="delete">used(id;a,e,t,attrs)</span><span class="insert">used(id; a,e,t,attrs)</span></span> statement.
-  </li>
- <li>The identifier field <span class="name">id</span> is a <span class="conditional">KEY</span> for
-  the <span class="name"><span class="delete">wasInformedBy(id;a2,a1,attrs)</span><span class="insert">wasInformedBy(id; a2,a1,attrs)</span></span> statement.
-  </li>
-  <li>The identifier field <span class="name">id</span> is a <span class="conditional">KEY</span> for
-  the <span class="name"><span class="delete">wasStartedBy(id;a2,e,a1,t,attrs)</span><span class="insert">wasStartedBy(id; a2,e,a1,t,attrs)</span></span> statement.
-  </li>
-  <li>The identifier field <span class="name">id</span> is a <span class="conditional">KEY</span> for
-  the <span class="name"><span class="delete">wasEndedBy(id;a2,e,a1,t,attrs)</span><span class="insert">wasEndedBy(id; a2,e,a1,t,attrs)</span></span> statement.
-  </li>
-  <li>The identifier field <span class="name">id</span> is a <span class="conditional">KEY</span> for
-  the <span class="name"><span class="delete">wasInvalidatedBy(id;e,a,t,attrs)</span><span class="insert">wasInvalidatedBy(id; e,a,t,attrs)</span></span> statement.
-  </li>
+   constraints require that all</span> of <span class="delete">saying this once concisely.
+      </span><span class="insert">the information about each identified
+   statement can be merged into a single, consistent statement:
+  </span></p>
+  <div class="constraint" id="key-properties"><div class="ruleTitle"><a class="internalDFN" href="#key-properties"><span class="insert">Constraint 24 (key-properties)</span></a></div>
   
 
-  <li>The identifier field <span class="name">id</span> is a <span class="conditional">KEY</span> for
-  the <span class="name">wasDerivedFrom(id;<span class="delete"> e2, e1, attrs)</span><span class="delete"> statement.
-  </span>
-  <span class="delete">The identifier field </span><span class="delete">id</span><span class="delete"> is a </span><span class="delete">KEY</span><span class="delete"> for
-  the </span><span class="delete">wasDerivedFrom(id; </span>  e2, e1, a, g2, u1, attrs)</span> statement.
-  </li>
- <li>The identifier field <span class="name">id</span> is a <span class="conditional">KEY</span> for
-  the <span class="name"><span class="delete">wasAttributedTo(id;e,ag,attr)</span><span class="insert">wasAttributedTo(id; e,ag,attr)</span></span> statement.
-  </li>
-  <li>The identifier field <span class="name">id</span> is a <span class="conditional">KEY</span> for
-  the <span class="name"><span class="delete">wasAssociatedWith(id;a,ag,pl,attrs)</span><span class="insert">wasAssociatedWith(id; a,ag,pl,attrs)</span></span> statement.
-  </li>
-  <li>The identifier field <span class="name">id</span> is a <span class="conditional">KEY</span> for
-  the <span class="name"><span class="delete">wasAssociatedWith(id;a,ag,-,attrs)</span><span class="insert">wasAssociatedWith(id; a,ag,-,attrs)</span></span> statement.
-  </li>
-  <li>The identifier field <span class="name">id</span> is a <span class="conditional">KEY</span> for
-  the <span class="name"><span class="delete">actedOnBehalfOf(id;ag2,ag1,a,attrs)</span><span class="insert">actedOnBehalfOf(id; ag2,ag1,a,attrs)</span></span> statement.
-  </li>
-  <li>The identifier field <span class="name">id</span> is a <span class="conditional">KEY</span> for
-  the <span class="name"><span class="delete">wasInfluencedBy(id;o2,o1,attrs)</span><span class="insert">wasInfluencedBy(id; o2,o1,attrs)</span></span> statement.
-  </li>
+<p><span class="delete">We assume that an</span></p><ol>
+  <li><span class="insert">The identifier field </span><span class="name"><span class="insert">id</span></span><span class="insert"> is a </span><span class="conditional"><span class="insert">KEY</span></span><span class="insert"> for
+  the </span><span class="name"><span class="insert">wasGeneratedBy(id; e,a,t,attrs)</span></span><span class="insert"> statement.
+  </span></li>
+  <li><span class="insert">The identifier field </span><span class="name"><span class="insert">id</span></span><span class="insert"> is a </span><span class="conditional"><span class="insert">KEY</span></span><span class="insert"> for
+  the </span><span class="name"><span class="insert">used(id; a,e,t,attrs)</span></span><span class="insert"> statement.
+  </span></li>
+ <li><span class="insert">The identifier field </span><span class="name"><span class="insert">id</span></span><span class="insert"> is a </span><span class="conditional"><span class="insert">KEY</span></span><span class="insert"> for
+  the </span><span class="name"><span class="insert">wasInformedBy(id; a2,a1,attrs)</span></span><span class="insert"> statement.
+  </span></li>
+  <li><span class="insert">The identifier field </span><span class="name"><span class="insert">id</span></span><span class="insert"> is a </span><span class="conditional"><span class="insert">KEY</span></span><span class="insert"> for
+  the </span><span class="name"><span class="insert">wasStartedBy(id; a2,e,a1,t,attrs)</span></span><span class="insert"> statement.
+  </span></li>
+  <li><span class="insert">The identifier field </span><span class="name"><span class="insert">id</span></span><span class="insert"> is a </span><span class="conditional"><span class="insert">KEY</span></span><span class="insert"> for
+  the </span><span class="name"><span class="insert">wasEndedBy(id; a2,e,a1,t,attrs)</span></span><span class="insert"> statement.
+  </span></li>
+  <li><span class="insert">The identifier field </span><span class="name"><span class="insert">id</span></span><span class="insert"> is a </span><span class="conditional"><span class="insert">KEY</span></span><span class="insert"> for
+  the </span><span class="name"><span class="insert">wasInvalidatedBy(id; e,a,t,attrs)</span></span><span class="insert"> statement.
+  </span></li>
+
+  <li><span class="insert">The identifier field </span><span class="name"><span class="insert">id</span></span><span class="insert"> is a </span><span class="conditional"><span class="insert">KEY</span></span><span class="insert"> for
+  the </span><span class="name"><span class="insert">wasDerivedFrom(id;  e2, e1, a, g2, u1, attrs)</span></span><span class="insert"> statement.
+  </span></li>
+ <li><span class="insert">The identifier field </span><span class="name"><span class="insert">id</span></span><span class="insert"> is a </span><span class="conditional"><span class="insert">KEY</span></span><span class="insert"> for
+  the </span><span class="name"><span class="insert">wasAttributedTo(id; e,ag,attr)</span></span><span class="insert"> statement.
+  </span></li>
+  <li><span class="insert">The identifier field </span><span class="name"><span class="insert">id</span></span><span class="insert"> is a </span><span class="conditional"><span class="insert">KEY</span></span><span class="insert"> for
+  the </span><span class="name"><span class="insert">wasAssociatedWith(id; a,ag,pl,attrs)</span></span><span class="insert"> statement.
+ </span></li>
+  <li><span class="insert">The identifier field </span><span class="name"><span class="insert">id</span></span><span class="insert"> is a </span><span class="conditional"><span class="insert">KEY</span></span><span class="insert"> for
+  the </span><span class="name"><span class="insert">wasAssociatedWith(id; a,ag,-,attrs)</span></span><span class="insert"> statement.
+  </span></li>
+  <li><span class="insert">The identifier field </span><span class="name"><span class="insert">id</span></span><span class="insert"> is a </span><span class="conditional"><span class="insert">KEY</span></span><span class="insert"> for
+  the </span><span class="name"><span class="insert">actedOnBehalfOf(id; ag2,ag1,a,attrs)</span></span><span class="insert"> statement.
+  </span></li>
+  <li><span class="insert">The identifier field </span><span class="name"><span class="insert">id</span></span><span class="insert"> is a </span><span class="conditional"><span class="insert">KEY</span></span><span class="insert"> for
+  the </span><span class="name"><span class="insert">wasInfluencedBy(id; o2,o1,attrs)</span></span><span class="insert"> statement.
+  </span></li>
 </ol>
    </div>
 
@@ -2339,90 +3839,116 @@
 
 
 <div id="unique-generation_text">
-<p><span class="delete">We assume that an</span><span class="insert">An</span> entity has exactly one generation and
-invalidation event (either or both may, however, be left implicit).
-  <span class="delete">Note that together</span><span class="insert">Together</span> with the key constraints above, this implies that
-  <span class="name">e</span> is also a key for generation and
-  invalidation statements.
+<p><span class="insert"> Entities may have multiple generation or invalidation events
+  (either or both may, however, be left implicit).  An</span> entity <span class="delete">has exactly</span><span class="insert">can be
+  generated by more than</span> one <span class="insert">activity, with one </span>generation <span class="delete">and
+invalidation </span>event <span class="delete">(either or both may, however,</span><span class="insert">per
+  each entity-activity pair.  These events must</span> be <span class="delete">left implicit).
+So, PROV-DM allows for two distinct </span><span class="delete">generations</span>  <span class="delete">g1</span><span class="delete"> and </span><span class="delete">g2</span><span class="delete"> referencing the same entity provided they occur
+</span><span class="delete">simultaneously</span><span class="insert">simultaneous, as required by </span><a class="rule-ref" href="#generation-generation-ordering"><span><span class="insert">Constraint 41 (generation-generation-ordering)</span></span></a><span class="insert">
+  and </span><a class="rule-ref" href="#invalidation-invalidation-ordering"><span><span class="insert">Constraint 42 (invalidation-invalidation-ordering)</span></span></a>.<span class="delete"> 
+This implies that the two generation events are actually the same and
+caused by the same </span><span class="delete">activity</span><span class="delete">, though  provenance may contain
+several  statements for the same world activity. 
+</span>
+
 </p>
 </div>
 
 
-<div class="constraint" id="unique-generation"><div class="ruleTitle"><a class="internalDFN" href="#unique-generation">Constraint 27 (unique-generation)</a></div>
+<span class="delete">Given an entity denoted by </span><span class="delete">e</span><span class="delete">, two activities denoted by </span><span class="delete">a1</span><span class="delete"> and </span><span class="delete">a2</span><span class="delete">, two time instants  </span><span class="delete">t1</span><span class="delete"> and </span><span class="delete">t2</span><span class="delete">, and two sets of attribute-value pairs </span><span class="delete">attrs1</span><span class="delete"> and </span><span class="delete">attrs2</span><span class="delete">,</span><div class="constraint" id="unique-generation"><div class="ruleTitle"><a class="internalDFN" href="#unique-generation"><span class="insert">Constraint 25 (unique-generation)</span></a></div>
 <p>
-<span class="conditional">IF</span> <span class="name"><span class="delete">wasGeneratedBy(id1;e,_a1,_t1,_attrs1)</span><span class="delete"> and </span><span class="delete">wasGeneratedBy(id2;e,_a2,_t2,_attrs2)</span><span class="insert">wasGeneratedBy(gen1; e,_a1,_t1,_attrs1)</span></span><span class="insert"> and </span><span class="name"><span class="insert">wasGeneratedBy(gen2; e,_a2,_t2,_attrs2)</span></span>,
-<span class="conditional">THEN</span> <span class="name"><span class="delete">id1</span><span class="insert">gen1</span></span> =<span class="delete">id2</span> <span class="name"><span class="insert">gen2</span></span>.</p>
-</div> 
-
-<hr>
-
-<div id="unique-invalidation_text">
-
-<div class="constraint" id="unique-invalidation"><div class="ruleTitle"><a class="internalDFN" href="#unique-invalidation">Constraint 28 (unique-invalidation)</a></div>
-<p>
-<span class="conditional">IF</span> <span class="name"><span class="delete">wasInvalidatedBy(id1;e,_a1,_t1,_attrs1)</span><span class="delete"> and </span><span class="delete">wasInvalidatedBy(id2;e,_a2,_t2,_attrs2)</span><span class="insert">wasInvalidatedBy(inv1; e,_a1,_t1,_attrs1)</span></span><span class="insert"> and </span><span class="name"><span class="insert">wasInvalidatedBy(inv2; e,_a2,_t2,_attrs2)</span></span>,
-<span class="conditional">THEN</span> <span class="name"><span class="delete">id1</span><span class="insert">inv1</span></span> =<span class="delete">id2</span> <span class="name"><span class="insert">inv2</span></span>.</p>
+<span class="conditional">IF</span> <span class="name"><span class="delete">wasGeneratedBy(id1, e, a1, t1, attrs1)</span><span class="delete"> and </span><span class="delete">wasGeneratedBy(id2, e, a2, t2, attrs2)</span><span class="delete"> exist,</span><span class="insert">wasGeneratedBy(gen1; e,a,_t1,_attrs1)</span></span><span class="insert"> and </span><span class="name"><span class="insert">wasGeneratedBy(gen2; e,a,_t2,_attrs2)</span></span><span class="insert">,</span>
+<span class="conditional">THEN</span> <span class="name"><span class="delete">id1</span><span class="insert">gen1</span></span> =<span class="delete">id2</span><span class="delete">, </span><span class="delete">a1</span><span class="delete">=</span><span class="delete">a2</span><span class="delete">, </span><span class="delete">t1</span><span class="delete">=</span><span class="delete">t2</span><span class="delete">  and </span><span class="delete">attrs1</span><span class="delete">=</span><span class="delete">attrs2</span> <span class="name"><span class="insert">gen2</span></span>.
+ 
+
+<span class="delete">
+Wouldn't the above constraint violate uniqueness?
+</span>
+
+<span class="delete">
+Invalidation uniqueness?
+</span>
+
+<span class="delete">A generation can be used to indicate a generation time without having to specify the involved activity.  A generation time is unique, as specified by the following constraint.</span></p> 
+<span class="delete">
+Seems redundant given generation-uniqueness
+</span>
+<span class="delete">
+Given an entity denoted by </span><span class="delete">e</span><span class="delete"> and 
+two time instants  </span><span class="delete">t1</span><span class="delete"> and </span><span class="delete">t2</span><span class="delete">,
+</span><span class="delete">IF</span> <span class="delete">wasGeneratedBy(e, -, t1)</span><span class="delete"> and </span><span class="delete">wasGeneratedBy(e, -, t2)</span><span class="delete"> hold, </span><span class="delete">THEN</span> <span class="delete">t1</span><span class="delete">=</span><span class="delete">t2</span><span class="delete">.</span>
 </div> 
 
-
-<div class="remark"> <p> It follows from the above <span class="insert">uniqueness and key
-  </span>constraints that the generation and
- invalidation <span class="insert">activities and
-  </span>times of
- an entity are unique, if specified.
-<span class="insert">  However, because we
+<p>
+
+</p><hr>
+<p id="unique-invalidation_text">
+
+</p><div class="constraint" id="unique-invalidation"><div class="ruleTitle"><a class="internalDFN" href="#unique-invalidation"><span class="insert">Constraint 26 (unique-invalidation)</span></a></div>
+<p>
+<span class="conditional"><span class="insert">IF</span></span> <span class="name"><span class="insert">wasInvalidatedBy(inv1; e,a,_t1,_attrs1)</span></span><span class="insert"> and </span><span class="name"><span class="insert">wasInvalidatedBy(inv2; e,a,_t2,_attrs2)</span></span><span class="insert">,
+</span><span class="conditional"><span class="insert">THEN</span></span> <span class="name"><span class="insert">inv1</span></span><span class="insert"> = </span><span class="name"><span class="insert">inv2</span></span><span class="insert">.</span></p>
+</div> 
+
+
+<div class="remark"> <p><span class="insert"> It follows from the above uniqueness and key
+  constraints that the generation and invalidation events linking an
+  entity and activity are unique, if specified.  However, because we
   apply the constraints by merging, it is possible for a valid PROV instance
-to contain multiple statements about the same identifiers.
-  </span></p><pre><span class="insert">wasGeneratedBy(id1; e,a,-,[prov:location="Paris"])
-wasGeneratedBy(-; e,-,-,[color="Red"])
-</span></pre><span class="insert">
-  When the uniqueness and key constraints are applied, the instance is
-  </span><a title="normal form" href="#dfn-normal-form" class="internalDFN"><span class="insert">normalized</span></a><span class="insert"> to the following form:
-  </span><pre><span class="insert">wasGeneratedBy(id1; e,a,_t,[prov:location="Paris",color="Red"])
-</span></pre><span class="insert">
+to contain multiple statements about the same generation or
+  invalidation event, for example:</span></p>
+  <pre><span class="insert">wasGeneratedBy(id1; e,a,-,[prov:location="Paris"])
+wasGeneratedBy(-; e,a,-,[color="Red"])
+</span></pre>
+<p><span class="insert">  When the uniqueness and key constraints are applied, the instance is
+  </span><a title="normal form" href="#dfn-normal-form" class="internalDFN"><span class="insert">normalized</span></a><span class="insert"> to the following form:</span></p>
+  <pre><span class="insert">wasGeneratedBy(id1; e,a,_t,[prov:location="Paris",color="Red"])
+</span></pre>
+<p><span class="insert">
   where </span><span class="name"><span class="insert">_t</span></span><span class="insert"> is a new existential variable.
-  </span><p>
-
-
-
-</p>
+  </span></p>
 </div>
 
 
 <hr>
-<p id="unique-wasStartedBy_text">
-<span class="delete">We assume that an</span><span class="insert">An</span> activity has exactly one start and
-end event (either or both may, however, be left implicit).  Again,
-together with above key constraints these constraints imply that the
-activity is a key for activity start and end statements.
-</p>
-
-<div class="constraint" id="unique-wasStartedBy"><div class="ruleTitle"><a class="internalDFN" href="#unique-wasStartedBy">Constraint 29 (unique-wasStartedBy)</a></div>
+<p id="unique-wasStartedBy_text"><span class="insert">
+An activity may have more than one start and
+end event, each having a different activity (either or both may,
+however, be left implicit).  However,
+the triggering entity linking any two activities in a start or end event is unique.
+That is, an activity may be started by
+several other activities, with shared or separate triggering
+entities.  If an activity is started or ended by multiple events, they must all
+be simultaneous, as specified in </span><a class="rule-ref" href="#start-start-ordering"><span><span class="insert">Constraint 33 (start-start-ordering)</span></span></a><span class="insert">
+and </span><a class="rule-ref" href="#end-end-ordering"><span><span class="insert">Constraint 34 (end-end-ordering)</span></span></a><span class="insert">.
+</span></p>
+
+<div class="constraint" id="unique-wasStartedBy"><div class="ruleTitle"><a class="internalDFN" href="#unique-wasStartedBy"><span class="insert">Constraint 27 (unique-wasStartedBy)</span></a></div>
 <p>
-<span class="conditional">IF</span> <span class="name"><span class="delete">wasStartedBy(id1;a,_e1,_a1,_t1,_attrs1)</span><span class="delete"> and </span><span class="delete">wasStartedBy(id2;a,_e2,_a2,_t2,_attrs2)</span><span class="insert">wasStartedBy(start1; a,_e1,_a1,_t1,_attrs1)</span></span><span class="insert"> and </span><span class="name"><span class="insert">wasStartedBy(start2; a,_e2,_a2,_t2,_attrs2)</span></span>,  <span class="conditional">THEN</span> <span class="name"><span class="delete">id</span><span class="insert">start1</span></span> =<span class="delete">id'</span> <span class="name"><span class="insert">start2</span></span>.</p>
+<span class="conditional"><span class="insert">IF</span></span> <span class="name"><span class="insert">wasStartedBy(start1; a,_e1,a0,_t1,_attrs1)</span></span><span class="insert"> and </span><span class="name"><span class="insert">wasStartedBy(start2; a,_e2,a0,_t2,_attrs2)</span></span><span class="insert">,  </span><span class="conditional"><span class="insert">THEN</span></span> <span class="name"><span class="insert">start1</span></span><span class="insert"> = </span><span class="name"><span class="insert">start2</span></span><span class="insert">.</span></p>
 </div> 
 
+<p id="unique-wasEndedBy_text">
+
+</p><div class="constraint" id="unique-wasEndedBy"><div class="ruleTitle"><a class="internalDFN" href="#unique-wasEndedBy"><span class="insert">Constraint 28 (unique-wasEndedBy)</span></a></div>
+<p>
+<span class="conditional"><span class="insert">IF</span></span> <span class="name"><span class="insert">wasEndedBy(end1; a,_e1,a0,_t1,_attrs1)</span></span><span class="insert"> and </span><span class="name"><span class="insert">wasEndedBy(end2; a,_e2,a0,_t2,_attrs2)</span></span><span class="insert">,  </span><span class="conditional"><span class="insert">THEN</span></span> <span class="name"><span class="insert">end1</span></span><span class="insert"> = </span><span class="name"><span class="insert">end2</span></span><span class="insert">.</span></p>
+</div> 
+
+
 <hr>
-<p id="unique-wasEndedBy_text">
-
-</p><div class="constraint" id="unique-wasEndedBy"><div class="ruleTitle"><a class="internalDFN" href="#unique-wasEndedBy">Constraint 30 (unique-wasEndedBy)</a></div>
+
+
+
+
+
+ <p id="unique-startTime_text">An <a href="#dfn-start-event" class="internalDFN">activity start event</a> is the <a title="instantaneous event" href="#dfn-event" class="internalDFN">instantaneous event</a> that marks the instant an activity starts. It allows for an optional time attribute.  <span id="optional-start-time">Activities also allow for an optional start time attribute.  If both are specified, they <em class="rfc2119" title="must">must</em> be the same, as expressed by the following constraint.</span>
+</p>
+
+<div class="constraint" id="unique-startTime"><div class="ruleTitle"><a class="internalDFN" href="#unique-startTime"><span class="insert">Constraint 29 (unique-startTime)</span></a></div>
 <p>
-<span class="conditional">IF</span> <span class="name"><span class="delete">wasEndedBy(id1;a,_e1,_a1,_t1,_attrs1)</span><span class="delete"> and </span><span class="delete">wasEndedBy(id2;a,_e2,_a2,_t2,_attrs2)</span><span class="insert">wasEndedBy(end1; a,_e1,_a1,_t1,_attrs1)</span></span><span class="insert"> and </span><span class="name"><span class="insert">wasEndedBy(end2; a,_e2,_a2,_t2,_attrs2)</span></span>,  <span class="conditional">THEN</span> <span class="name"><span class="delete">id</span><span class="insert">end1</span></span> =<span class="delete">id'</span> <span class="name"><span class="insert">end2</span></span>.</p>
-</div> 
-
-
-
-
-<p>
-
-
-
- </p><p id="unique-startTime_text">An <a href="#dfn-start-event" class="internalDFN">activity start event</a> is the <a title="instantaneous event" href="#dfn-event" class="internalDFN">instantaneous event</a> that marks the instant an activity starts. It allows for an optional time attribute.  <span id="optional-start-time">Activities also allow for an optional start time attribute.  If both are specified, they <em class="rfc2119" title="must">must</em> be the same, as expressed by the following constraint.</span>
-</p>
-
-<div class="constraint" id="unique-startTime"><div class="ruleTitle"><a class="internalDFN" href="#unique-startTime">Constraint 31 (unique-startTime)</a></div>
-<p>
-<span class="conditional">IF</span> <span class="name"><span class="delete">activity(a,t,_t',_attrs)</span><span class="delete"> and </span><span class="delete">wasStartedBy(id;a,_e1,_a1,t1,_attrs1)</span><span class="insert">activity(a2,t1,_t2,_attrs)</span></span><span class="insert"> and </span><span class="name"><span class="insert">wasStartedBy(_start; a2,_e,_a1,t,_attrs)</span></span>,  <span class="conditional">THEN</span> <span class="name"><span class="insert">t1</span></span><span class="insert">=</span><span class="name">t<span class="delete">=</span><span class="delete">t1</span></span>.</p>
+<span class="conditional">IF</span> <span class="name"><span class="delete">activity(a,t1,t2,-)</span><span class="delete"> and </span><span class="delete">wasStartedBy(id,a,e,t,-)</span><span class="insert">activity(a2,t1,_t2,_attrs)</span></span><span class="insert"> and </span><span class="name"><span class="insert">wasStartedBy(_start; a2,_e,_a1,t,_attrs)</span></span>,  <span class="conditional">THEN</span> <span class="name"><span class="insert">t1</span></span><span class="insert">=</span><span class="name">t</span><span class="delete">=</span><span class="delete">t1</span>.</p>
 </div> 
 
 <hr>
@@ -2430,9 +3956,9 @@
 <p id="unique-endTime_text">An <a href="#dfn-end-event" class="internalDFN">activity end event</a> is the <a title="instantaneous event" href="#dfn-event" class="internalDFN">instantaneous event</a> that marks the instant an activity ends. It allows for an optional time attribute.  <span id="optional-end-time">Activities also allow for an optional end time attribute.  If both are specified, they <em class="rfc2119" title="must">must</em> be the same, as expressed by the following constraint.</span>
 </p>
 
-<div class="constraint" id="unique-endTime"><div class="ruleTitle"><a class="internalDFN" href="#unique-endTime">Constraint 32 (unique-endTime)</a></div>
+<div class="constraint" id="unique-endTime"><div class="ruleTitle"><a class="internalDFN" href="#unique-endTime"><span class="insert">Constraint 30 (unique-endTime)</span></a></div>
 <p>
-<span class="conditional">IF</span> <span class="name"><span class="delete">activity(a,_t,t',_attrs)</span><span class="delete"> and </span><span class="delete">wasEndedBy(id;a,_e1,_a1,t1,_attrs1)</span><span class="insert">activity(a2,_t1,t2,_attrs)</span></span><span class="insert"> and </span><span class="name"><span class="insert">wasEndedBy(_end; a2,_e,_a1,t,_attrs1)</span></span>,  <span class="conditional">THEN</span> <span class="name"><span class="delete">t'</span><span class="insert">t2</span></span> = <span class="name"><span class="delete">t1</span><span class="insert">t</span></span>.</p>
+<span class="conditional">IF</span> <span class="name"><span class="delete">activity(a,t1,t2,-)</span><span class="delete"> and </span><span class="delete">wasEndedBy(id,a,e,t,-)</span><span class="insert">activity(a2,_t1,t2,_attrs)</span></span><span class="insert"> and </span><span class="name"><span class="insert">wasEndedBy(_end; a2,_e,_a1,t,_attrs1)</span></span>,  <span class="conditional">THEN</span> <span class="name"><span class="insert">t2</span></span><span class="insert"> = </span><span class="name">t</span> <span class="insert">.</span></p>
 </div> 
 
 <p>
@@ -2442,27 +3968,31 @@
 
 
 <div class="note">
-<p>Note: The following constraint is associated with a feature "<a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi">at risk</a>" and may be removed from this specification based on feedback. Please send feedback to public-prov-comments@w3.org.</p>
+<p><span class="insert">Note: The following constraint is associated with a feature "</span><a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi"><span class="insert">at risk</span></a><span class="insert">" and may be removed from this specification based on feedback. Please send feedback to public-prov-comments@w3.org.</span></p>
 </div>
   
 
 <div id="unique-mention_text">
-<p>An entity can be the subject of at most one mention relation.</p>
+<p><span class="insert">An entity can be the subject of at most one mention relation.</span></p>
 </div>
 
 
-<div class="constraint" id="unique-mention"><div class="ruleTitle"><a class="internalDFN" href="#unique-mention">Constraint 33 <span class="delete">(mention-unique)</span><span class="insert">(unique-mention)</span></a></div>
+<div class="constraint" id="unique-mention"><div class="ruleTitle"><a class="internalDFN" href="#unique-mention"><span class="insert">Constraint 31 (unique-mention)</span></a></div>
 <p>
-<span class="conditional">IF</span> <span class="name">mentionOf(e, e1, b1)</span> and <span class="name">mentionOf(e, e2, b2)</span>,
-<span class="conditional">THEN</span>  <span class="name">e1</span>=<span class="name">e2</span> and <span class="name">b1</span>=<span class="name">b2</span>.</p>
+<span class="conditional"><span class="insert">IF</span></span> <span class="name"><span class="insert">mentionOf(e, e1, b1)</span></span><span class="insert"> and </span><span class="name"><span class="insert">mentionOf(e, e2, b2)</span></span><span class="insert">,
+</span><span class="conditional"><span class="insert">THEN</span></span>  <span class="name"><span class="insert">e1</span></span>= <span class="delete">t2</span><span class="name"><span class="insert">e2</span></span><span class="insert"> and </span><span class="name"><span class="insert">b1</span></span><span class="insert">=</span><span class="name"><span class="insert">b2</span></span>.</p>
 </div> 
 
 
 
 
-
-
-</div></div>  
+ 
+
+
+
+
+
+</div>  
 
 <div id="event-ordering-constraints" class="section">
 <h3><span class="secno">5.2 </span>Event Ordering Constraints</h3>
@@ -2476,70 +4006,111 @@
 event" href="#dfn-generation-event" class="internalDFN">generation event</a> precedes any of this
 entity's <a title="entity usage event" href="#dfn-usage-event" class="internalDFN">usage events</a>.  Should this
 ordering constraint be violated, the associated generation and
-usage would not be credible.  The rest of this section defines
+usage <span class="delete">could</span><span class="insert">would</span> not be credible.  The rest of this section defines
 the <dfn id="dfn-temporal-interpretation">temporal interpretation</dfn> of provenance instances as a
 set of instantaneous event ordering constraints. </p>
 
 
 <p>To allow for minimalistic clock assumptions, like Lamport
-[<cite><a class="bibref" rel="biblioentry" href="#bib-CLOCK">CLOCK</a></cite>], PROV relies on a notion of relative ordering of <a title="instantaneous event" href="#dfn-event" class="internalDFN">instantaneous events</a>,
-without using physical clocks. This specification assumes that a <a href="#dfn-preorder" class="internalDFN">preorder</a> exists between <a title="instantaneous event" href="#dfn-event" class="internalDFN">instantaneous events</a>.
+[<cite><a class="bibref" rel="biblioentry" href="#bib-CLOCK">CLOCK</a></cite>], <span class="delete">PROV-DM</span><span class="insert">PROV</span> relies on a notion of relative ordering of <a title="instantaneous event" href="#dfn-event" class="internalDFN">instantaneous events</a>,
+without using physical clocks. This specification assumes that a <span class="delete">partial order</span><a href="#dfn-preorder" class="internalDFN"><span class="insert">preorder</span></a> exists between <a title="instantaneous event" href="#dfn-event" class="internalDFN">instantaneous events</a>.
 </p>
 
 
-<p>Specifically, <dfn id="dfn-precedes">precedes</dfn> is a <a href="#dfn-preorder" class="internalDFN">preorder</a>
-between <a title="instantaneous event" href="#dfn-event" class="internalDFN">instantaneous events</a>.  <span class="delete">When
-we say </span><span class="insert">A
-constraint of the form
-</span><span class="name">e1</span> precedes <span class="name">e2</span><span class="delete">, this</span> means that <span class="name">e1</span>
-happened at the same time as or before <span class="name">e2</span>.
+<p>Specifically, <dfn id="dfn-precedes">precedes</dfn> is a <span class="delete">partial
+order </span><a href="#dfn-preorder" class="internalDFN"><span class="insert">preorder</span></a>
+between <a title="instantaneous event" href="#dfn-event" class="internalDFN">instantaneous events</a>.  <span class="delete">When we say</span><span class="insert">A
+constraint of the form</span>
+<span class="name">e1</span> precedes <span class="name">e2</span><span class="delete">,
+this</span> means that <span class="delete">either the two events are equal</span><span class="name"><span class="insert">e1</span></span><span class="insert">
+happened at the same time as</span> or <span class="delete">e1</span><span class="delete"> happened</span> before <span class="name">e2</span>.
 For symmetry, <dfn id="dfn-follows">follows</dfn> is defined as the
-inverse of <a title="precedes" href="#dfn-precedes" class="internalDFN">precedes</a>; that is, <span class="delete">when we say
-</span><span class="insert">a constraint of
+inverse of <a title="precedes" href="#dfn-precedes" class="internalDFN">precedes</a>; that is, <span class="delete">when</span><span class="insert">a constraint of
 the form 
-</span><span class="name">e1</span> follows <span class="name">e2</span><span class="delete">,
-this</span> means that <span class="name">e1</span> happened at the same time
-as or after <span class="name">e2</span>. Both relations are
-<a href="#dfn-preorder" class="internalDFN">preorder</a>s, meaning that they are <a href="#dfn-reflexive" class="internalDFN">reflexive</a> and
-<a href="#dfn-transitive" class="internalDFN">transitive</a>.  Moreover, we sometimes consider <em>strict</em> forms of these
-orders: we say <span class="name">e1</span> <dfn id="dfn-strictly-precedes">strictly precedes</dfn> <span class="name">e2</span> to indicate that <span class="name">e1</span>
-happened before <span class="name">e2</span><span class="delete">.</span><span class="insert">, but not at the same time.</span>  This is a
-<a href="#dfn-transitive" class="internalDFN">transitive</a> relation. </p>
-
-
-<p>PROV also allows for time observations to be inserted in
-specific provenance statements, for each of the five kinds of <a title="instantaneous event" href="#dfn-event" class="internalDFN">instantaneous events</a> introduced in
-this specification.  Times in provenance records arising from
+</span><span class="name"><span class="insert">e1</span></span><span class="insert"> follows </span><span class="name"><span class="insert">e2</span></span><span class="insert"> means that </span><span class="name"><span class="insert">e1</span></span><span class="insert"> happened at the same time
+as or after </span><span class="name"><span class="insert">e2</span></span><span class="insert">. Both relations are
+</span><a href="#dfn-preorder" class="internalDFN"><span class="insert">preorder</span></a><span class="insert">s, meaning that they are </span><a href="#dfn-reflexive" class="internalDFN"><span class="insert">reflexive</span></a><span class="insert"> and
+</span><a href="#dfn-transitive" class="internalDFN"><span class="insert">transitive</span></a><span class="insert">.  Moreover,</span> we <span class="insert">sometimes consider </span><em><span class="insert">strict</span></em><span class="insert"> forms of these
+orders: we </span>say
+ <span class="name">e1</span> <span class="delete">follows</span><dfn id="dfn-strictly-precedes"><span class="insert">strictly precedes</span></dfn> <span class="name">e2</span><span class="insert"> to indicate that </span><span class="name"><span class="insert">e1</span></span><span class="insert">
+happened before </span><span class="name"><span class="insert">e2</span></span>,<span class="delete">
+this means that either the two events are equal or </span><span class="delete">e1</span><span class="delete"> happened after </span><span class="delete">e2</span><span class="delete">. Both relations are partial orders, meaning
+that they are reflexive, transitive, and antisymmetric.</span><span class="insert"> but not at the same time.  This is a
+</span><a href="#dfn-transitive" class="internalDFN"><span class="insert">transitive</span></a><span class="insert"> relation. </span></p>
+
+<span class="delete"> Do we want</span>
+
+
+<p><span class="insert">PROV also allows for time observations</span> to <span class="delete">allow an event to
+  "precede" itself?  Perhaps precedes should </span>be <span class="delete">strict.
+</span>
+
+<span class="delete">
+  The following discussion is unclear: what is being said here, and why?
+  </span>
+
+<span class="delete">PROV-DM also allows</span><span class="insert">inserted in
+specific provenance statements,</span> for <span class="delete">time observations to be inserted in
+specific provenance statements, for </span>each of the five kinds
+ of <a title="instantaneous event" href="#dfn-event" class="internalDFN">instantaneous events</a> introduced in 
+this specification.  <span class="insert">Times in provenance records arising from
 different sources might be with respect to different timelines
 (e.g. different time zones) leading to apparent inconsistencies.  For
 the purpose of checking ordering constraints, the times associated
 with events are irrelevant; thus, there is no inference that time ordering
-implies event ordering, or vice versa.  However, an application <em class="rfc2119" title="may">may</em> flag time values
+implies event ordering, or vice versa.  However, an application </span><em class="rfc2119" title="may"><span class="insert">may</span></em><span class="insert"> flag time values
 that appear inconsistent with the event ordering as possible
-inconsistencies.  When generating provenance, an application <em class="rfc2119" title="should">should</em>
-use a consistent timeline for related PROV statements within an
-instance.</p>
-
-
-<p>  A typical ordering constraint is as follows.</p>
-
-  <div class="constraint-example" id="ordering-example"><div class="ruleTitle"><a class="internalDFN" href="#ordering-example">Constraint-example NNN (ordering-example)</a></div>
-    <p><span class="conditional">IF</span> <span class="name">hyp<sub>1</sub></span> and ... and <span class="name">hyp<sub>n</sub></span> <span class="conditional">THEN</span> <span class="name">evt1</span> <a href="#dfn-precedes" class="internalDFN">precedes</a>/<a href="#dfn-strictly-precedes" class="internalDFN">strictly precedes</a> <span class="name">evt2</span>.  </p></div>
+inconsistencies.  When generating provenance, an application </span><em class="rfc2119" title="should"><span class="insert">should</span></em><span class="insert">
+use a consistent imeline for related PROV statements within an
+instance.</span></p>
+
+
+<p><span class="insert">  A typical ordering constraint is as follows.</span></p>
+
+  <div class="constraint-example" id="ordering-example"><div class="ruleTitle"><a class="internalDFN" href="#ordering-example"><span class="insert">Constraint-example NNN (ordering-example)</span></a></div>
+    <p><span class="conditional"><span class="insert">IF</span></span> <span class="name"><span class="insert">hyp</span><sub><span class="insert">1</span></sub></span><span class="insert"> and ... and </span><span class="name"><span class="insert">hyp</span><sub><span class="insert">n</span></sub></span> <span class="conditional"><span class="insert">THEN</span></span> <span class="name"><span class="insert">evt1</span></span> <a href="#dfn-precedes" class="internalDFN"><span class="insert">precedes</span></a><span class="insert">/</span><a href="#dfn-strictly-precedes" class="internalDFN"><span class="insert">strictly precedes</span></a> <span class="name"><span class="insert">evt2</span></span><span class="insert">.  </span></p></div>
   <p>
-  The conclusion of an ordering constraint is either <a href="#dfn-precedes" class="internalDFN">precedes</a>
-  or <a href="#dfn-strictly-precedes" class="internalDFN"><span class="insert">strictly precedes</span></a><span class="insert">.  One way to check
+  The<span class="delete">
+presence</span><span class="insert"> conclusion</span> of <span class="insert">an ordering constraint is either </span><a href="#dfn-precedes" class="internalDFN"><span class="insert">precedes</span></a><span class="insert">
+  or </span><a href="#dfn-strictly-precedes" class="internalDFN"><span class="insert">strictly precedes</span></a><span class="insert">.  One way to check
   ordering constraints is to 
-  generate all </span><a href="#dfn-precedes" class="internalDFN"><span class="insert">precedes</span></a><span class="insert"> and </span><a title="precedes" href="#dfn-precedes" class="internalDFN">strictly 
-  precedes</a><span class="delete">.  To check</span><span class="insert"> 
-  relationships arising from the</span> ordering <span class="delete">constraints, we
-  generate all</span><span class="insert">constraints to form a directed graph, with edges marked</span> <a href="#dfn-precedes" class="internalDFN">precedes</a> <span class="delete">and </span><span class="insert">or
-  </span><a href="#dfn-strictly-precedes" class="internalDFN">strictly
-   precedes</a><span class="delete"> 
-  relationships arising from the ordering constraints to form</span><span class="insert">, and check that there is no cycle
-  containing</span> a <span class="delete">directed graph, with edges marked </span><span class="delete">precedes</span><span class="delete"> or
-  </span><span class="delete">strictly precedes</span><span class="delete">, and check that there is no cycle
-  containing a </span><a href="#dfn-strictly-precedes" class="internalDFN">strictly precedes</a> edge.
-  </p>
+  generate all </span><a href="#dfn-precedes" class="internalDFN"><span class="insert">precedes</span></a><span class="insert"> and </span><a title="precedes" href="#dfn-precedes" class="internalDFN"><span class="insert">strictly
+  precedes</span></a><span class="insert"> 
+  relationships arising from the ordering constraints to form </span>a <span class="delete">time observation for</span><span class="insert">directed graph, with edges marked </span><a href="#dfn-precedes" class="internalDFN"><span class="insert">precedes</span></a><span class="insert"> or
+  </span><a href="#dfn-strictly-precedes" class="internalDFN"><span class="insert">strictly precedes</span></a><span class="insert">, and check that there is no cycle
+  containing</span> a <span class="delete">given </span><span class="delete">instantaneous event</span><span class="delete"> fixes the
+mapping of this </span><span class="delete">instantaneous event</span><span class="delete"> to the timeline. The presence of time
+information in a provenance statement instantiates the ordering constraint with
+that time information. It is expected that such instantiated
+constraints can help corroborate provenance information. We anticipate
+that verification algorithms could be developed, though this
+verification is outside the scope of this specification.
+</span><a href="#dfn-strictly-precedes" class="internalDFN"><span class="insert">strictly precedes</span></a><span class="insert"> edge.
+  </span></p>
+
+<span class="delete">The following figure summarizes the ordering constraints in a
+graphical manner. For each subfigure, an event time line points to the
+right. Activities are represented by rectangles, whereas entities are
+represented by circles. Usage, generation and derivation are
+represented by the corresponding edges between entities and
+activities.  The five kinds of </span><span class="delete">instantaneous events</span><span class="delete"> are represented by vertical
+dotted lines (adjacent to the vertical sides of an activity's
+rectangle, or intersecting usage and generation edges).  The ordering
+constraints are represented by triangles: an occurrence of a triangle between two </span><span class="delete">instantaneous event</span><span class="delete"> vertical dotted lines represents that the event denoted by the left
+line precedes the event denoted by the right line.</span>
+
+
+  
+
+
+<span class="delete">Summary of </span><span class="delete">instantaneous event</span><span class="delete"> ordering constraints for activities</span>
+
+
+
+
+
+
+
 
   
 
@@ -2551,7 +4122,7 @@
 <p>
 <span class="delete">In this</span><span class="insert">This</span> section <span class="delete">we discuss</span><span class="insert">specifies ordering</span> constraints from the perspective of
 the <a href="#lifetime" class="internalDFN">lifetime</a> of an activity.  An activity starts, then during
-its lifetime <span class="delete">uses, generates</span><span class="insert">can use, generate</span> or invalidates entities, <span class="delete">and communicates</span><span class="insert">communicate
+its lifetime <span class="delete">uses, generates entities and communicates</span><span class="insert">can use, generate or invalidate entities, communicate
   with, start, or end
 other
 activities, or be associated</span> with<span class="delete">  or starts
@@ -2562,22 +4133,22 @@
 start and endpoints of its lifetime.
 </p>
 
-<p><a href="#ordering-activity">Figure <span class="delete">2</span><span class="insert">3</span></a> summarizes the ordering
+<p><a href="#ordering-activity"><span class="insert">Figure 3</span></a><span class="insert"> summarizes the ordering
   constraints on activities in a
 graphical manner. For this and subsequent figures, an event time line points to the
 right. Activities are represented by rectangles, whereas entities are
 represented by circles. Usage, generation and invalidation are
 represented by the corresponding edges between entities and
-activities.  The five kinds of <a title="instantaneous event" href="#dfn-event" class="internalDFN">instantaneous events</a> are represented by vertical
+activities.  The five kinds of </span><a title="instantaneous event" href="#dfn-event" class="internalDFN"><span class="insert">instantaneous events</span></a><span class="insert"> are represented by vertical
 dotted lines (adjacent to the vertical sides of an activity's
 rectangle, or intersecting usage and generation edges).  The ordering
-constraints are represented by triangles: an occurrence of a triangle between two <a title="instantaneous event" href="#dfn-event" class="internalDFN">instantaneous event</a> vertical dotted lines represents that the event denoted by the left
-line precedes the event denoted by the right line.</p>
-  <div class="note"> Miscellanous suggestions about figures
+constraints are represented by triangles: an occurrence of a triangle between two </span><a title="instantaneous event" href="#dfn-event" class="internalDFN"><span class="insert">instantaneous event</span></a><span class="insert"> vertical dotted lines represents that the event denoted by the left
+line precedes the event denoted by the right line.</span></p>
+  <div class="note"><span class="insert"> Miscellaneous suggestions about figures
   (originally from Tim Lebo):
-<ul>
-  <li>
-    I think it would help if the "corresponding edges between entities and activities" where the same visual style as the vertical line marking the time the Usage, generation and derivation occurred. A matching visual style provides a Gestalt that matches the concept. I am looking at subfigures b and c in 5.2. </li></ul>
+</span><ul>
+  <li><span class="insert">
+    I think it would help if the "corresponding edges between entities and activities" where the same visual style as the vertical line marking the time the Usage, generation and derivation occurred. A matching visual style provides a Gestalt that matches the concept. I am looking at subfigures b and c in 5.2. </span></li></ul>
   </div>
 
   <div style="text-align: center;">
@@ -2585,47 +4156,96 @@
 <span class="figure" id="ordering-activity">
 <img src="images/constraints/ordering-activity.png" alt="constraints between events">
 <br>
-<span class="figcaption" id="ordering-activity-fig">Figure <span class="delete">2</span><span class="insert">3</span><sup><a class="internalDFN" href="#ordering-activity-fig"><span class="diamond"> ◊:</span></a></sup> Summary of <a title="instantaneous event" href="#dfn-event" class="internalDFN">instantaneous event</a> ordering constraints for activities</span> 
+<span class="figcaption" id="ordering-activity-fig"><span class="insert">Figure 3</span><sup><a class="internalDFN" href="#ordering-activity-fig"><span class="diamond"><span class="insert"> ◊:</span></span></a></sup><span class="insert"> Summary of </span><a title="instantaneous event" href="#dfn-event" class="internalDFN"><span class="insert">instantaneous event</span></a><span class="insert"> ordering constraints for activities</span></span> 
 </span>
 </div>
 
 
-<p>
-  
-</p><hr>
+ 
+<hr>
 
 <p id="start-precedes-end_text">
-The existence of an activity implies that the <a href="#dfn-start-event" class="internalDFN">activity start
+The existence of an activity implies that the <a href="#dfn-start-event" class="internalDFN">activity start 
 event</a> always <a href="#dfn-precedes" class="internalDFN">precedes</a> the corresponding <a href="#dfn-end-event" class="internalDFN">activity end
-event</a>.  This is illustrated by
-<a href="#ordering-activity">Figure <span class="delete">2</span><span class="insert">3</span></a>
-(a) and expressed by <a class="rule-ref" href="#start-precedes-end"><span>Constraint 34 (start-precedes-end)</span></a>.</p>
-
-<div class="constraint" id="start-precedes-end"><div class="ruleTitle"><a class="internalDFN" href="#start-precedes-end">Constraint 34 (start-precedes-end)</a></div>
+event</a>.  This is
+ illustrated by<span class="delete"> Subfigure </span><span class="delete">ordering-activity-fig</span> 
+<a href="#ordering-activity"><span class="insert">Figure 3</span></a>
+(a) and   expressed by <span class="delete">constraint </span><span class="delete">start-precedes-end</span><a class="rule-ref" href="#start-precedes-end"><span><span class="insert">Constraint 32 (start-precedes-end)</span></span></a>.</p> 
+
+
+<div class="constraint" id="start-precedes-end"><div class="ruleTitle"><a class="internalDFN" href="#start-precedes-end"><span class="insert">Constraint 32 (start-precedes-end)</span></a></div>
 <p>
 <span class="conditional">IF</span>
-<span class="name"><span class="delete">wasStartedBy(start;a,_e1,_a1,_t1,_attrs1)</span><span class="insert">wasStartedBy(start; a,_e1,_a1,_t1,_attrs1)</span></span> 
+<span class="name"><span class="delete">wasStartedBy(start,a,-,-)</span><span class="insert">wasStartedBy(start; a,_e1,_a1,_t1,_attrs1)</span></span> 
 and
-<span class="name"><span class="delete">wasEndedBy(end;a,_e2,_a2,_t2,_attrs2)</span><span class="insert">wasEndedBy(end; a,_e2,_a2,_t2,_attrs2)</span></span> 
+<span class="name"><span class="delete">wasEndedBy(end,a,-,-)</span><span class="insert">wasEndedBy(end; a,_e2,_a2,_t2,_attrs2)</span></span> 
 <span class="conditional">THEN</span>
 <span class="name">start</span> 
-<a title="precedes" href="#dfn-precedes" class="internalDFN">precedes</a>
-<span class="name">end</span>.
-</p>
+<a title="precedes" href="#dfn-precedes" class="internalDFN"><span class="insert">precedes</span></a>
+<span class="name"><span class="insert">end</span></span><span class="insert">.
+</span></p>
 </div>
 <p>
+
 </p><hr>
 
+<p id="start-start-ordering_text"><span class="insert">
+If an activity is started by more than one activity, the events must all
+be simultaneous.  The following constraint requires that if there are two start
+events that start the same activity, then one </span><a href="#dfn-precedes" class="internalDFN">precedes</a>
+<span class="delete">end</span><span class="insert"> the
+other.  Using this constraint in both directions means that each event
+</span><a href="#dfn-precedes" class="internalDFN"><span class="insert">precedes</span></a><span class="insert"> the other.
+</span></p>
+<div class="constraint" id="start-start-ordering"><div class="ruleTitle"><a class="internalDFN" href="#start-start-ordering"><span class="insert">Constraint 33 (start-start-ordering)</span></a></div>
+ <p>
+    <span class="conditional"><span class="insert">IF</span></span>
+<span class="name"><span class="insert">wasStartedBy(start1; a,_e1,_a1,_t1,_attrs1)</span></span><span class="insert"> 
+and
+</span><span class="name"><span class="insert">wasStartedBy(start2; a,_e2,_a2,_t2,_attrs2)</span></span> 
+<span class="conditional"><span class="insert">THEN</span></span>
+<span class="name"><span class="insert">start1</span></span> 
+<a title="precedes" href="#dfn-precedes" class="internalDFN"><span class="insert">precedes</span></a>
+<span class="name"><span class="insert">start2</span></span>.
+  </p>
+</div>
+
+<hr>
+
+<p id="end-end-ordering_text"><span class="insert">
+If an activity is ended by more than one activity, the events must all
+be simultaneous.  The following constraint requires that if there are two end
+events that end the same activity, then one </span><a href="#dfn-precedes" class="internalDFN"><span class="insert">precedes</span></a><span class="insert"> the
+other.  Using this constraint in both directions means that each event
+</span><a href="#dfn-precedes" class="internalDFN"><span class="insert">precedes</span></a><span class="insert"> the other, that is, they are simultaneous.
+</span></p>
+<div class="constraint" id="end-end-ordering"><div class="ruleTitle"><a class="internalDFN" href="#end-end-ordering"><span class="insert">Constraint 34 (end-end-ordering)</span></a></div>
+ <p>
+    <span class="conditional"><span class="insert">IF</span></span>
+<span class="name"><span class="insert">wasEndedBy(end1; a,_e2,_a1,_t1,_attrs1)</span></span><span class="insert"> 
+and
+</span><span class="name"><span class="insert">wasEndedBy(end2; a,_e2,_a2,_t2,_attrs2)</span></span> 
+<span class="conditional"><span class="insert">THEN</span></span>
+<span class="name"><span class="insert">end1</span></span> 
+<a title="precedes" href="#dfn-precedes" class="internalDFN"><span class="insert">precedes</span></a>
+<span class="name"><span class="insert">end2</span></span><span class="insert">.
+  </span></p>
+</div>
+
+<hr>
+
 <p id="usage-within-activity_text">A usage implies ordering of <a title="instantaneous event" href="#dfn-event" class="internalDFN">events</a>, since the <a title="entity usage event" href="#dfn-usage-event" class="internalDFN">usage event</a> had to occur during the associated activity. This is
-illustrated by <a href="#ordering-activity">Figure <span class="delete">2</span><span class="insert">3</span></a> (b) and  expressed by <a class="rule-ref" href="#usage-within-activity"><span>Constraint 35 (usage-within-activity)</span></a>.</p>
-
-<div class="constraint" id="usage-within-activity"><div class="ruleTitle"><a class="internalDFN" href="#usage-within-activity">Constraint 35 (usage-within-activity)</a></div>
+illustrated by <span class="delete">Subfigure </span><span class="delete">ordering-activity-fig</span><a href="#ordering-activity"><span class="insert">Figure 3</span></a> (b) and  expressed by <span class="delete">constraint </span><span class="delete">usage-within-activity</span><a class="rule-ref" href="#usage-within-activity"><span><span class="insert">Constraint 35 (usage-within-activity)</span></span></a>.</p>
+
+<div class="constraint" id="usage-within-activity"><div class="ruleTitle"><a class="internalDFN" href="#usage-within-activity"><span class="insert">Constraint 35 (usage-within-activity)</span></a></div>
 <ol>
     <li>
   <span class="conditional">IF</span>
-<span class="name"><span class="delete">used(use;a,e,_t,_attrs)</span><span class="insert">used(use; a,e,_t,_attrs)</span></span> 
+<span class="name"><span class="delete">used(use,a,e,-,-)</span><span class="delete"> 
 and
-<span class="name"><span class="delete">wasStartedBy(start;a,_e1,_a1,_t1,_attrs1)</span><span class="insert">wasStartedBy(start; a,_e1,_a1,_t1,_attrs1)</span></span> 
+</span><span class="delete">wasStartedBy(start,a,-,-)</span><span class="insert">wasStartedBy(start; a,_e1,_a1,_t1,_attrs1)</span></span><span class="insert"> 
+ and
+</span><span class="name"><span class="insert">used(use; a,_e2,_t2,_attrs2)</span></span> 
 <span class="conditional">THEN</span>
 <span class="name">start</span> 
 <a title="precedes" href="#dfn-precedes" class="internalDFN">precedes</a>
@@ -2633,9 +4253,9 @@
   </li>
   <li>
   <span class="conditional">IF</span>
-<span class="name"><span class="delete">used(use;a,e,_t,_attrs)</span><span class="insert">used(use; a,e,_t,_attrs)</span></span> 
+<span class="name"><span class="delete">used(use,a,e,-,-)</span><span class="insert">used(use; a,_e1,_t1,_attrs1)</span></span> 
 and
-<span class="name"><span class="delete">wasEndedBy(end;a,_e1,_a1,_t1,_attrs1)</span><span class="insert">wasEndedBy(end; a,_e2,_a2,_t2,_attrs2)</span></span> 
+<span class="name"><span class="delete">wasEndedBy(end,a,-,-)</span><span class="insert">wasEndedBy(end; a,_e2,_a2,_t2,_attrs2)</span></span> 
 <span class="conditional">THEN</span>
 <span class="name">use</span> 
 <a title="precedes" href="#dfn-precedes" class="internalDFN">precedes</a>
@@ -2649,61 +4269,61 @@
 </p><hr>
 
 
-<p id="generation-within-activity_text">A generation implies ordering of <a title="instantaneous event" href="#dfn-event" class="internalDFN">events</a>, since the <a title="entity generation event" href="#dfn-generation-event" class="internalDFN">generation event</a> had to occur during the associated activity. This is
-illustrated by <a href="#ordering-activity">Figure <span class="delete">2</span><span class="insert">3</span></a> (c) and  expressed by <a class="rule-ref" href="#generation-within-activity"><span>Constraint 36 (generation-within-activity)</span></a>.</p> 
-
-<div class="constraint" id="generation-within-activity"><div class="ruleTitle"><a class="internalDFN" href="#generation-within-activity">Constraint 36 (generation-within-activity)</a></div>
+<p id="generation-within-activity_text"><span class="insert">A generation implies ordering of </span><a title="instantaneous event" href="#dfn-event" class="internalDFN"><span class="insert">events</span></a><span class="insert">, since the </span><a title="entity generation event" href="#dfn-generation-event" class="internalDFN"><span class="insert">generation event</span></a><span class="insert"> had to occur during the associated activity. This is
+illustrated by </span><a href="#ordering-activity"><span class="insert">Figure 3</span></a><span class="insert"> (c) and  expressed by </span><a class="rule-ref" href="#generation-within-activity"><span><span class="insert">Constraint 36 (generation-within-activity)</span></span></a><span class="insert">.</span></p> 
+
+<div class="constraint" id="generation-within-activity"><div class="ruleTitle"><a class="internalDFN" href="#generation-within-activity"><span class="insert">Constraint 36 (generation-within-activity)</span></a></div>
    <ol>
     <li>
-  <span class="conditional">IF</span>
-<span class="name"><span class="delete">wasGeneratedBy(gen;_e,a,_t,_attrs)</span><span class="insert">wasGeneratedBy(gen; _e,a,_t,_attrs)</span></span> 
+  <span class="conditional"><span class="insert">IF</span></span>
+<span class="name"><span class="insert">wasStartedBy(start; a,_e1,_a1,_t1,_attrs1)</span></span><span class="insert"> 
+ and
+</span><span class="name"><span class="insert">wasGeneratedBy(gen; _e2,a,_t2,_attrs2)</span></span> 
+<span class="conditional"><span class="insert">THEN</span></span>
+<span class="name"><span class="insert">start</span></span> 
+<a title="precedes" href="#dfn-precedes" class="internalDFN"><span class="insert">precedes</span></a>
+<span class="name"><span class="insert">gen</span></span><span class="insert">.
+  </span></li>
+  <li>
+  <span class="conditional"><span class="insert">IF</span></span>
+<span class="name"><span class="insert">wasGeneratedBy(gen; _e,a,_t,_attrs)</span></span><span class="insert"> 
 and
-<span class="name"><span class="delete">wasStartedBy(start;a,_e1,_a1,_t1,_attrs1)</span><span class="insert">wasStartedBy(start; a,_e1,_a1,_t1,_attrs1)</span></span> 
-<span class="conditional">THEN</span>
-<span class="name">start</span> 
-<a title="precedes" href="#dfn-precedes" class="internalDFN">precedes</a>
-<span class="name">gen</span>.
-  </li>
-  <li>
-  <span class="conditional">IF</span>
-<span class="name"><span class="delete">wasGeneratedBy(gen;_e,a,_t,_attrs)</span><span class="insert">wasGeneratedBy(gen; _e,a,_t,_attrs)</span></span> 
-and
-<span class="name"><span class="delete">wasEndedBy(end;a,_e1,_a1,_t1,_attrs1)</span><span class="insert">wasEndedBy(end; a,_e1,_a1,_t1,_attrs1)</span></span> 
-<span class="conditional">THEN</span>
-<span class="name">gen</span> 
-<a title="precedes" href="#dfn-precedes" class="internalDFN">precedes</a>
-<span class="name">end</span>.
-  </li>
+</span><span class="name"><span class="insert">wasEndedBy(end; a,_e1,_a1,_t1,_attrs1)</span></span> 
+<span class="conditional"><span class="insert">THEN</span></span>
+<span class="name"><span class="insert">gen</span></span> 
+<a title="precedes" href="#dfn-precedes" class="internalDFN"><span class="insert">precedes</span></a>
+<span class="name"><span class="insert">end</span></span><span class="insert">.
+  </span></li>
   </ol>
 </div> 
 
 <p>
 
 </p><hr>
-<p id="wasInformedBy-ordering_text">
-Communication between two activities <span class="name">a1</span>
-and <span class="name">a2</span> also implies ordering
-of <a title="instantaneous event" href="#dfn-event" class="internalDFN">events</a>, since some entity must
+<p id="wasInformedBy-ordering_text"><span class="insert">
+Communication between two activities </span><span class="name"><span class="insert">a1</span></span><span class="insert">
+and </span><span class="name"><span class="insert">a2</span></span><span class="insert"> also implies ordering
+of </span><a title="instantaneous event" href="#dfn-event" class="internalDFN"><span class="insert">events</span></a><span class="insert">, since some entity must
 have been generated by the former and used by the latter, which
-implies that the start event of <span class="name">a1</span> cannot
-follow the end event of <span class="name">a2</span>. This is
+implies that the start event of </span><span class="name"><span class="insert">a1</span></span><span class="insert"> cannot
+follow the end event of </span><span class="name"><span class="insert">a2</span></span><span class="insert">. This is
 illustrated by
-<a href="#ordering-activity">Figure <span class="delete">2</span><span class="insert">3</span></a>
-(d) and expressed by <a class="rule-ref" href="#wasInformedBy-ordering"><span>Constraint 37 (wasInformedBy-ordering)</span></a>.</p>
-
-<div class="constraint" id="wasInformedBy-ordering"><div class="ruleTitle"><a class="internalDFN" href="#wasInformedBy-ordering">Constraint 37 (wasInformedBy-ordering)</a></div>
+</span><a href="#ordering-activity"><span class="insert">Figure 3</span></a><span class="insert">
+(d) and expressed by </span><a class="rule-ref" href="#wasInformedBy-ordering"><span><span class="insert">Constraint 37 (wasInformedBy-ordering)</span></span></a><span class="insert">.</span></p>
+
+<div class="constraint" id="wasInformedBy-ordering"><div class="ruleTitle"><a class="internalDFN" href="#wasInformedBy-ordering"><span class="insert">Constraint 37 (wasInformedBy-ordering)</span></a></div>
 <p>
-  <span class="conditional">IF</span>
-<span class="name"><span class="delete">wasInformedBy(_id;a2,a1,_attrs)</span><span class="insert">wasInformedBy(_id; a2,a1,_attrs)</span></span> 
+  <span class="conditional"><span class="insert">IF</span></span>
+<span class="name"><span class="insert">wasInformedBy(_id; a2,a1,_attrs)</span></span><span class="insert"> 
 and
-<span class="name"><span class="delete">wasStartedBy(start;a1,_e1,_a1',_t1,_attrs1)</span><span class="insert">wasStartedBy(start; a1,_e1,_a1',_t1,_attrs1)</span></span> 
+</span><span class="name"><span class="insert">wasStartedBy(start; a1,_e1,_a1',_t1,_attrs1)</span></span><span class="insert"> 
 and
-<span class="name"><span class="delete">wasEndedBy(end;a2,_e2,_a2',_t2,_attrs2)</span><span class="insert">wasEndedBy(end; a2,_e2,_a2',_t2,_attrs2)</span></span> 
-<span class="conditional">THEN</span>
-<span class="name">start</span> 
-<a title="precedes" href="#dfn-precedes" class="internalDFN">precedes</a>
-<span class="name">end</span>.
-</p>
+</span><span class="name"><span class="insert">wasEndedBy(end; a2,_e2,_a2',_t2,_attrs2)</span></span> 
+<span class="conditional"><span class="insert">THEN</span></span>
+<span class="name"><span class="insert">start</span></span> 
+<a title="precedes" href="#dfn-precedes" class="internalDFN"><span class="insert">precedes</span></a>
+<span class="name"><span class="insert">end</span></span><span class="insert">.
+</span></p>
 </div>
 <p>
 
@@ -2712,19 +4332,18 @@
 </p></div>
 
 <div id="entity-constraints" class="section">
-<h4><span class="secno">5.2.2 </span> Entity constraints</h4>
-
-
-<div class="note">The figure(s) in this section should have vertical lines with visual styles that match the diagonal arrow that they go with. </div>
-
-<p>
+<h4><span class="secno"><span class="insert">5.2.2 </span></span><span class="insert"> Entity constraints</span></h4>
+
+
+<div class="note"><span class="insert">The figure(s) in this section should have vertical lines with visual styles that match the diagonal arrow that they go with. </span></div>
+
+<p><span class="insert">
 As with activities, entities have lifetimes: they are generated, then
-can be used, <span class="delete">revised, or </span>other entities can be derived from them, and
- finally they<span class="delete"> may</span><span class="insert">
-can</span> be invalidated.   The constraints on these events are
-illustrated graphically in <a href="#ordering-entity">Figure <span class="delete">3</span><span class="insert">4</span></a> and
-<a href="#ordering-entity-trigger">Figure <span class="delete">4</span><span class="insert">5</span></a>.
-</p>
+can be used, other entities can be derived from them, and finally they
+can be invalidated. The constraints on these events are
+illustrated graphically in </span><a href="#ordering-entity"><span class="insert">Figure 4</span></a><span class="insert"> and
+</span><a href="#ordering-entity-trigger"><span class="insert">Figure 5</span></a><span class="insert">.
+</span></p>
 
 
   
@@ -2732,163 +4351,358 @@
 <span class="figure" id="ordering-entity">
 <img src="images/constraints/ordering-entity.png" alt="ordering constraints for entities">
 <br>
-<span class="figcaption" id="ordering-entity-fig">Figure <span class="delete">3</span><span class="insert">4</span><sup><a class="internalDFN" href="#ordering-entity-fig"><span class="diamond"> ◊:</span></a></sup> Summary of <a title="instantaneous event" href="#dfn-event" class="internalDFN">instantaneous event</a> ordering constraints for entities</span></span>  
+<span class="figcaption" id="ordering-entity-fig"><span class="insert">Figure 4</span><sup><a class="internalDFN" href="#ordering-entity-fig"><span class="diamond"><span class="insert"> ◊:</span></span></a></sup><span class="insert"> Summary of </span><a title="instantaneous event" href="#dfn-event" class="internalDFN"><span class="insert">instantaneous event</span></a><span class="insert"> ordering constraints for entities</span></span></span>  
 </div>
 
 <p>
 
 </p><hr>
 
-<p id="generation-precedes-invalidation_text">
+<p id="generation-precedes-invalidation_text"><span class="insert">
 Generation of an entity precedes its invalidation. (This
-follows from other constraints if the entity is used, but <span class="delete">we state </span>it<span class="insert"> is stated</span>
-explicitly<span class="insert"> here</span> to cover the case of an entity that is generated and
-invalidated without being used.)</p>
-
-<div class="constraint" id="generation-precedes-invalidation"><div class="ruleTitle"><a class="internalDFN" href="#generation-precedes-invalidation">Constraint 38 (generation-precedes-invalidation)</a></div>
+follows from other constraints if the entity is used, but it is stated
+explicitly here to cover the case of an entity that is generated and
+invalidated without being used.)</span></p>
+
+<div class="constraint" id="generation-precedes-invalidation"><div class="ruleTitle"><a class="internalDFN" href="#generation-precedes-invalidation"><span class="insert">Constraint 38 (generation-precedes-invalidation)</span></a></div>
 <p>
- <span class="conditional">IF</span>
-<span class="name"><span class="delete">wasGeneratedBy(gen;e,_a1,_t1,_attrs1)</span><span class="insert">wasGeneratedBy(gen; e,_a1,_t1,_attrs1)</span></span> 
+ <span class="conditional"><span class="insert">IF</span></span>
+<span class="name"><span class="insert">wasGeneratedBy(gen; e,_a1,_t1,_attrs1)</span></span><span class="insert"> 
 and
-<span class="name"><span class="delete">wasInvalidatedBy(inv;e,_a2,_t2,_attrs2)</span><span class="insert">wasInvalidatedBy(inv; e,_a2,_t2,_attrs2)</span></span> 
+</span><span class="name"><span class="insert">wasInvalidatedBy(inv; e,_a2,_t2,_attrs2)</span></span> 
+<span class="conditional"><span class="insert">THEN</span></span>
+<span class="name"><span class="insert">gen</span></span> 
+<a title="precedes" href="#dfn-precedes" class="internalDFN"><span class="insert">precedes</span></a>
+<span class="name"><span class="insert">inv</span></span><span class="insert">. 
+</span></p>
+</div>
+
+
+
+
+<hr>
+
+<p id="generation-precedes-usage_text"><span class="insert"> 
+A usage and a generation for a given entity implies ordering of </span><a title="instantaneous event" href="#dfn-event" class="internalDFN"><span class="insert">events</span></a><span class="insert">, since the </span><a title="entity generation
+event" href="#dfn-generation-event" class="internalDFN"><span class="insert">generation event</span></a><span class="insert"> had to precede the </span><a title="entity usage event" href="#dfn-usage-event" class="internalDFN"><span class="insert">usage event</span></a><span class="insert">. This is
+illustrated by </span><a href="#ordering-entity"><span class="insert">Figure 4</span></a><span class="insert">(a) and  expressed by </span><a class="rule-ref" href="#generation-precedes-usage"><span><span class="insert">Constraint 39 (generation-precedes-usage)</span></span></a><span class="insert">.</span></p>
+
+<div class="constraint" id="generation-precedes-usage"><div class="ruleTitle"><a class="internalDFN" href="#generation-precedes-usage"><span class="insert">Constraint 39 (generation-precedes-usage)</span></a></div>
+<p>  <span class="conditional"><span class="insert">IF</span></span>
+<span class="name"><span class="insert">wasGeneratedBy(gen; e,_a1,_t1,_attrs1)</span></span><span class="insert"> 
+and
+</span><span class="name"><span class="insert">used(use; _a2,e,_t2,_attrs2)</span></span> 
+<span class="conditional"><span class="insert">THEN</span></span>
+<span class="name"><span class="insert">gen</span></span> 
+<a title="precedes" href="#dfn-precedes" class="internalDFN"><span class="insert">precedes</span></a>
+<span class="name"><span class="insert">use</span></span><span class="insert">.  
+</span></p>
+</div>
+
+
+<hr>
+
+<p id="usage-precedes-invalidation_text"><span class="insert">All usages of an entity precede its invalidation, which is captured by </span><a class="rule-ref" href="#usage-precedes-invalidation"><span><span class="insert">Constraint 40 (usage-precedes-invalidation)</span></span></a><span class="insert"> (without any explicit graphical representation).</span></p> 
+
+<div class="constraint" id="usage-precedes-invalidation"><div class="ruleTitle"><a class="internalDFN" href="#usage-precedes-invalidation"><span class="insert">Constraint 40 (usage-precedes-invalidation)</span></a></div>
+<p>
+<span class="conditional"><span class="insert">IF</span></span>
+<span class="name"><span class="insert">used(use; _a1,e,_t1,_attrs1)</span></span><span class="insert"> 
+and
+</span><span class="name"><span class="insert">wasInvalidatedBy(inv; e,_a2,_t2,_attrs2)</span></span> 
+<span class="conditional"><span class="insert">THEN</span></span>
+<span class="name"><span class="insert">use</span></span> 
+<a title="precedes" href="#dfn-precedes" class="internalDFN"><span class="insert">precedes</span></a>
+<span class="name"><span class="insert">inv</span></span><span class="insert">.</span></p>
+</div>
+
+<hr>
+
+
+<hr>
+
+<p id="generation-generation-ordering_text"><span class="insert">
+If an entity is generated by more than one activity, the events must all
+be simultaneous.  The following constraint requires that if there are two generation
+events that generate the same entity, then one </span><a href="#dfn-precedes" class="internalDFN"><span class="insert">precedes</span></a><span class="insert"> the
+other.  Using this constraint in both directions means that each event
+</span><a href="#dfn-precedes" class="internalDFN"><span class="insert">precedes</span></a><span class="insert"> the other.
+</span></p>
+<div class="constraint" id="generation-generation-ordering"><div class="ruleTitle"><a class="internalDFN" href="#generation-generation-ordering"><span class="insert">Constraint 41 (generation-generation-ordering)</span></a></div>
+ <p><span class="delete">A generation implies ordering of </span><span class="delete">events</span><span class="delete">, since the </span><span class="delete">generation event</span><span class="delete"> had to occur during the associated activity. This is
+illustrated by Subfigure </span><span class="delete">ordering-activity-fig</span><span class="delete"> (c) and  expressed by constraint </span><span class="delete">generation-within-activity</span><span class="delete">.</span> 
+
+
+   
+    
+  <span class="conditional">IF</span>
+<span class="name"><span class="delete">wasGeneratedBy(gen,a,e,-,-)</span><span class="insert">wasGeneratedBy(gen1; e,_a1,_t1,_attrs1)</span></span> 
+and
+<span class="name"><span class="delete">wasStartedBy(start,a,-,-)</span><span class="insert">wasGeneratedBy(gen2; a,_a2,_t2,_attrs2)</span></span> 
 <span class="conditional">THEN</span>
-<span class="name">gen</span> 
-<a title="precedes" href="#dfn-precedes" class="internalDFN"><span class="delete">strictly </span>precedes</a>
-<span class="name">inv</span>. 
+<span class="name"><span class="delete">start</span><span class="insert">gen1</span></span> 
+<a title="precedes" href="#dfn-precedes" class="internalDFN">precedes</a>
+<span class="name"><span class="delete">gen</span><span class="insert">gen2</span></span>.
+  
+  
+  <span class="delete">IF</span>
+<span class="delete">wasGeneratedBy(gen,a,e,-,-)</span><span class="delete"> 
+and
+</span><span class="delete">wasEndedBy(end,a,-,-)</span> 
+<span class="delete">THEN</span>
+<span class="delete">gen</span> 
+<span class="delete">precedes</span>
+<span class="delete">end</span><span class="delete">.
+  </span>
+  
+ 
+
+
+
+<span class="delete">Communication between two activities </span><span class="delete">a1</span><span class="delete"> and </span><span class="delete">a2</span><span class="delete"> also implies ordering of </span><span class="delete">events</span><span class="delete">, since some entity must have been generated by the former and used by the latter, which implies that the start event of  </span><span class="delete">a1</span><span class="delete">
+cannot follow the end event of  </span><span class="delete">a2</span><span class="delete">. This is
+illustrated by Subfigure </span><span class="delete">ordering-activity-fig</span><span class="delete"> (d) and  expressed by constraint </span><span class="delete">wasInformedBy-ordering</span><span class="delete">.</span></p>
+
+
+ <span class="delete">IF</span>
+<span class="delete">wasInformedBy(a2,a1)</span><span class="delete"> 
+and
+</span><span class="delete">wasStartedBy(start,a1,-,-)</span><span class="delete"> 
+and
+</span><span class="delete">wasEndedBy(end,a2,-,-)</span> 
+<span class="delete">THEN</span>
+<span class="delete">start</span> 
+<span class="delete">precedes</span>
+<span class="delete">end</span><span class="delete">.
+
+</span>
+</div>
+
+<hr>
+
+<p id="invalidation-invalidation-ordering_text"><span class="insert">
+If an entity is invalidated by more than one activity, the events must all
+be simultaneous.  The following constraint requires that if there are two invalidation
+events that invalidate the same entity, then one </span><a href="#dfn-precedes" class="internalDFN"><span class="insert">precedes</span></a><span class="insert"> the
+other.  Using this constraint in both directions means that each event
+</span><a href="#dfn-precedes" class="internalDFN"><span class="insert">precedes</span></a><span class="insert"> the other, that is, they are simultaneous.
+</span></p>
+<div class="constraint" id="invalidation-invalidation-ordering"><div class="ruleTitle"><a class="internalDFN" href="#invalidation-invalidation-ordering"><span class="insert">Constraint 42 (invalidation-invalidation-ordering)</span></a></div>
+ <p><span class="delete">Start</span>
+    <span class="conditional"><span class="insert">IF</span></span>
+<span class="name"><span class="insert">wasInvalidatedBy(inv1; a,_e2,_a1,_t1,_attrs1)</span></span><span class="insert"> 
+and
+</span><span class="name"><span class="insert">wasInvalidatedBy(inv2; a,_e2,_a2,_t2,_attrs2)</span></span> 
+<span class="conditional"><span class="insert">THEN</span></span>
+<span class="name"><span class="insert">inv1</span></span> 
+<a title="precedes" href="#dfn-precedes" class="internalDFN"><span class="insert">precedes</span></a>
+<span class="name"><span class="insert">inv2</span></span><span class="insert">.
+  </span></p>
+</div>
+
+
+
+<p id="derivation-usage-generation-ordering_text"><span class="insert">If there is a
+derivation relationship linking </span><span class="name"><span class="insert">e2</span></span><span class="insert"> and </span><span class="name"><span class="insert">e1</span></span><span class="insert">, then 
+this means that the entity </span><span class="name"><span class="insert">e1</span></span><span class="insert"> had some influence on the entity </span><span class="name"><span class="insert">e2</span></span><span class="insert">; for this to be possible, some event ordering must be satisfied.
+First, we consider derivations, where the activity and usage are known. In that case, the </span><a title="entity usage event" href="#dfn-usage-event" class="internalDFN"><span class="insert">usage</span></a> of <span class="name"><span class="delete">a2</span><span class="insert">e1</span></span><span class="insert"> has to precede the </span><a title="entity generation
+event" href="#dfn-generation-event" class="internalDFN"><span class="insert">generation</span></a><span class="insert"> of </span><span class="name"><span class="insert">e2</span></span><span class="insert">.
+This is
+illustrated</span> by <span class="delete">activity </span><span class="delete">a1</span><span class="delete"> also implies ordering of </span><span class="delete">events</span><span class="delete">, since  </span><span class="delete">a1</span><span class="delete"> must have been active before   </span><span class="delete">a2</span><span class="delete"> started. This is
+illustrated by Subfigure </span><span class="delete">ordering-activity-fig</span><span class="delete"> (e)</span><a href="#ordering-entity-fig"><span class="insert">Figure 4</span></a><span class="insert"> (b)</span> and  expressed by<span class="delete"> constraint </span><span class="delete">wasStartedByActivity-ordering</span>  <a class="rule-ref" href="#derivation-usage-generation-ordering"><span><span class="insert">Constraint 43 (derivation-usage-generation-ordering)</span></span></a>.</p>
+
+
+
+   <div class="constraint" id="derivation-usage-generation-ordering"><div class="ruleTitle"><a class="internalDFN" href="#derivation-usage-generation-ordering"><span class="insert">Constraint 43 (derivation-usage-generation-ordering)</span></a></div>
+  <p><span class="insert">
+  In this constraint, </span><span class="name"><span class="insert">_a</span></span><span class="insert">, </span><span class="name"><span class="insert">gen2</span></span><span class="insert">, </span><span class="name"><span class="insert">use1</span></span> <em class="rfc2119" title="must not"><span class="insert">must not</span></em><span class="insert"> be placeholders.</span></p>
+<p>
+      <span class="conditional">IF</span>
+<span class="name"><span class="delete">wasStartedByActivity(a2,a1)</span><span class="delete"> 
+and
+</span><span class="delete">wasStartedBy(start1,a1,-,-)</span><span class="delete"> 
+and
+</span><span class="delete">wasStartedBy(start2,a2,-,-)</span><span class="insert">wasDerivedFrom(_d; _e2,_e1,_a,gen2,use1,_attrs)</span></span> 
+<span class="conditional">THEN</span>
+<span class="name"><span class="delete">start1</span><span class="insert">use1</span></span> 
+<a title="precedes" href="#dfn-precedes" class="internalDFN">precedes</a>
+<span class="name"><span class="delete">start2</span><span class="insert">gen2</span></span>.
+
+  
 </p>
 </div>
 
-<p>
-
-
-</p><hr>
-
-<p id="generation-precedes-usage_text"> 
-A usage and a generation for a given entity implies ordering of <a title="instantaneous event" href="#dfn-event" class="internalDFN">events</a>, since the <a title="entity generation
-event" href="#dfn-generation-event" class="internalDFN">generation event</a> had to precede the <a title="entity usage event" href="#dfn-usage-event" class="internalDFN">usage event</a>. This is
-illustrated by <a href="#ordering-entity">Figure <span class="delete">3</span><span class="insert">4</span></a>(a) and  expressed by <a class="rule-ref" href="#generation-precedes-usage"><span>Constraint 39 (generation-precedes-usage)</span></a>.</p>
-
-<div class="constraint" id="generation-precedes-usage"><div class="ruleTitle"><a class="internalDFN" href="#generation-precedes-usage">Constraint 39 (generation-precedes-usage)</a></div>
-<p>  <span class="conditional">IF</span>
-<span class="name"><span class="delete">wasGeneratedBy(gen;e,_a1,_t1,_attrs1)</span><span class="insert">wasGeneratedBy(gen; e,_a1,_t1,_attrs1)</span></span> 
-and
-<span class="name"><span class="delete">used(use;_a2,e,_t2,_attrs2)</span><span class="insert">used(use; _a2,e,_t2,_attrs2)</span></span> 
-<span class="conditional">THEN</span>
-<span class="name">gen</span> 
-<a title="precedes" href="#dfn-precedes" class="internalDFN">precedes</a>
-<span class="name">use</span>.  
-</p>
-</div>
+
+
+
+<span class="delete">5.2.2 </span><span class="delete"> Entity constraints</span>
+
 
 <p>
-</p><hr>
-
-<p id="usage-precedes-invalidation_text">All usages of an entity precede its invalidation, which is captured by <a class="rule-ref" href="#usage-precedes-invalidation"><span>Constraint 40 (usage-precedes-invalidation)</span></a> (without any explicit graphical representation).</p> 
-
-<div class="constraint" id="usage-precedes-invalidation"><div class="ruleTitle"><a class="internalDFN" href="#usage-precedes-invalidation">Constraint 40 (usage-precedes-invalidation)</a></div>
-<p>
-<span class="conditional">IF</span>
-<span class="name"><span class="delete">used(use;_a1,e,_t1,_attrs1)</span><span class="insert">used(use; _a1,e,_t1,_attrs1)</span></span> 
-and
-<span class="name"><span class="delete">wasInvalidatedBy(inv;e,_a2,_t2,_attrs2)</span><span class="insert">wasInvalidatedBy(inv; e,_a2,_t2,_attrs2)</span></span> 
-<span class="conditional">THEN</span>
-<span class="name">use</span> 
-<a title="precedes" href="#dfn-precedes" class="internalDFN">precedes</a>
-<span class="name">inv</span>.</p>
-</div>
-
-<p>
-
-</p><hr>
-
-
-
-
-<p id="derivation-usage-generation-ordering_text">If there is a
-derivation relationship linking <span class="name">e2</span> and <span class="name">e1</span>, then 
-this means that the entity <span class="name">e1</span> had some influence on the entity <span class="name">e2</span>; for this to be possible, some event ordering must be satisfied.
-First, we consider derivations, where the activity and usage are known. In that case, the <a title="entity usage event" href="#dfn-usage-event" class="internalDFN">usage</a> of <span class="name">e1</span> has to precede the <a title="entity generation
-event" href="#dfn-generation-event" class="internalDFN">generation</a> of <span class="name">e2</span>.
-This is
-illustrated by <a href="#ordering-entity-fig">Figure <span class="delete">3</span><span class="insert">4</span></a> (b) and  expressed by  <a class="rule-ref" href="#derivation-usage-generation-ordering"><span>Constraint 41 (derivation-usage-generation-ordering)</span></a>.</p>
-
-
-<div class="constraint" id="derivation-usage-generation-ordering"><div class="ruleTitle"><a class="internalDFN" href="#derivation-usage-generation-ordering">Constraint 41 (derivation-usage-generation-ordering)</a></div>
-<p>
-      <span class="conditional">IF</span>
-<span class="name"><span class="delete">wasDerivedFrom(_d;_e2,_e1,_a,gen2,use1,_attrs)</span><span class="insert">wasDerivedFrom(_d; _e2,_e1,_a,gen2,use1,_attrs)</span></span> 
-<span class="conditional">THEN</span>
-<span class="name">use1</span> 
-<a title="precedes" href="#dfn-precedes" class="internalDFN"><span class="delete">strictly </span>precedes</a>
-<span class="name">gen2</span>.  
-</p>
-</div>
-<p>
-</p><hr>
-
-<p id="derivation-generation-generation-ordering_text">
-When the activity, generation or usage is unknown, a similar constraint exists, except that the constraint refers to its
+<span class="delete">As with activities, entities have lifetimes: they are generated, then
+can be used, revised, or other entities can be derived from them, and
+finally are invalidated.
+</span></p>
+
+
+  
+
+
+<span class="delete">Summary of </span><span class="delete">instantaneous event</span><span class="delete"> ordering constraints for entities</span>
+
+
+
+
+
+<hr>
+
+<span class="delete">Generation of an entity precedes</span><p id="derivation-generation-generation-ordering_text"><span class="insert">
+When the activity, generation or usage is unknown, a similar constraint exists, except that the constraint refers to</span> its<span class="delete"> invalidation. (This
+follows from other constraints if the entity is used, but we state it
+explicitly to cover the case of an entity that is generated and
+invalidated without being used.)</span><span class="insert">
 generation event, as
-illustrated by <a href="#ordering-entity-fig">Figure <span class="delete">3</span><span class="insert">4</span></a> (c) and  expressed by <a class="rule-ref" href="#derivation-generation-generation-ordering"><span>Constraint 42 (derivation-generation-generation-ordering)</span></a>.</p>
-
-<div class="constraint" id="derivation-generation-generation-ordering"><div class="ruleTitle"><a class="internalDFN" href="#derivation-generation-generation-ordering">Constraint 42 (derivation-generation-generation-ordering)</a></div>
+illustrated by </span><a href="#ordering-entity-fig"><span class="insert">Figure 4</span></a><span class="insert"> (c) and  expressed by </span><a class="rule-ref" href="#derivation-generation-generation-ordering"><span><span class="insert">Constraint 44 (derivation-generation-generation-ordering)</span></span></a><span class="insert">.</span></p>
+
+<div class="constraint" id="derivation-generation-generation-ordering"><div class="ruleTitle"><a class="internalDFN" href="#derivation-generation-generation-ordering"><span class="insert">Constraint 44 (derivation-generation-generation-ordering)</span></a></div>
+  <p><span class="insert">
+In this constraint, any </span><span class="name"><span class="insert">_a</span></span><span class="insert">, </span><span class="name"><span class="insert">_g</span></span><span class="insert">, </span><span class="name"><span class="insert">_u</span></span> <em class="rfc2119" title="may"><span class="insert">may</span></em><span class="insert"> be placeholders.</span></p>
 <p>
  <span class="conditional">IF</span>
-<span class="name"><span class="delete">wasDerivedFrom(_d;e2,e1,attrs)</span><span class="delete">
-  and
-</span><span class="delete">wasGeneratedBy(gen1;e1,_a1,_t1,_attrs1)</span><span class="delete">
-  and
-</span><span class="delete">wasGeneratedBy(gen2;e2,_a2,_t2,_attrs2)</span><span class="insert">wasDerivedFrom(_d; e2,e1,-,-,-,attrs)</span></span><span class="insert">
+<span class="name"><span class="delete">wasGeneratedBy(gen,e,_,_)</span><span class="delete"> 
+and
+</span><span class="delete">wasInvalidatedBy(inv,e,-,-)</span> 
+<span class="insert">wasDerivedFrom(_d; e2,e1,_a,_g,_u,attrs)</span></span><span class="insert">
   and
 </span><span class="name"><span class="insert">wasGeneratedBy(gen1; e1,_a1,_t1,_attrs1)</span></span><span class="insert">
   and
 </span><span class="name"><span class="insert">wasGeneratedBy(gen2; e2,_a2,_t2,_attrs2)</span></span>
 <span class="conditional">THEN</span>
-<span class="name">gen1</span> 
-<a href="#dfn-strictly-precedes" class="internalDFN">strictly precedes</a>
-<span class="name">gen2</span>.  
+<span class="name"><span class="delete">gen</span><span class="insert">gen1</span></span> 
+<a href="#dfn-strictly-precedes" class="internalDFN"><span class="insert">strictly </span>precedes</a>
+<span class="name"><span class="delete">inv</span><span class="delete">. 
+</span>
+
+
+<span class="delete"> A usage and a generation for a given entity implies ordering of </span><span class="delete">events</span><span class="delete">, since the </span><span class="delete">generation event</span><span class="delete"> had to precede the </span><span class="delete">usage event</span><span class="delete">. This is
+illustrated by Subfigure </span><span class="delete">ordering-entity-fig</span><span class="delete"> (a) and  expressed by constraint </span><span class="delete">generation-precedes-usage</span><span class="delete">.</span>
+
+
+  <span class="delete">IF</span>
+<span class="delete">wasGeneratedBy(gen,e,_,_)</span><span class="delete"> 
+and
+</span><span class="delete">used(use,_,e,-)</span> 
+<span class="delete">THEN</span>
+<span class="delete">gen</span> 
+<span class="delete">precedes</span>
+<span class="delete">use</span><span class="insert">gen2</span></span>.  
 </p>
   </div>
 
 <div class="remark">
-  <p><span class="delete">Note that</span><span class="insert">This constraint, similar to constraint 38, requires the derived
+  <p><span class="insert">This constraint requires the derived
     entity to be generated strictly following the generation of the
     original entity. This follows from the [</span><cite><a class="bibref" rel="biblioentry" href="#bib-PROV-DM"><span class="insert">PROV-DM</span></a></cite><span class="insert">] definition of
     derivation: </span><em><span class="insert">A derivation is a transformation of an entity into
     another, an update of an entity resulting in a new one, or the
     construction of a new entity based on a pre-existing entity</span></em><span class="insert">, thus
     the derived entity must be newer than the original entity.</span></p>
-  <p><span class="insert">The</span> event ordering is between generations of <span class="name">e1</span>
-and <span class="name">e2</span>, as opposed to derivation where usage is known,
-which implies ordering between the usage of <span class="name">e1</span> and
-generation of <span class="name">e2</span>.  </p>
-
-
+  <p><span class="insert">The event ordering is between generations of </span><span class="name"><span class="insert">e1</span></span><span class="insert">
+and </span><span class="name"><span class="insert">e2</span></span><span class="insert">, as opposed to derivation where usage is known,
+which implies ordering between the usage of </span><span class="name"><span class="insert">e1</span></span><span class="insert"> and
+generation of </span><span class="name"><span class="insert">e2</span></span><span class="insert">.  </span></p>
 </div>
+
 <hr>
 
-<p id="wasStartedBy-ordering_text">
-The entity that triggered the start of an activity must exist before the activity starts.
+<span class="delete">All usages</span><p id="wasStartedBy-ordering_text"><span class="insert">
+The entity that triggered the start</span> of an <span class="delete">entity precede its invalidation, which</span><span class="insert">activity must exist before the activity starts.
+This</span> is<span class="delete"> captured</span><span class="insert">
+illustrated</span> by <span class="delete">constraint </span><span class="delete">usage-precedes-invalidation</span><span class="delete"> (without any explicit graphical representation).</span> 
+
+
+    <span class="delete">IF</span>
+<span class="delete">used(use,_,e,-)</span><span class="delete"> 
+and
+</span><span class="delete">wasInvalidatedBy(inv,e,_,_)</span> 
+<span class="delete">THEN</span>
+<span class="delete">use</span> 
+<span class="delete">precedes</span>
+<span class="delete">inv</span><span class="delete">.  
+</span>
+
+
+
+
+
+
+
+
+
+
+<span class="delete">If there is a derivation between </span><span class="delete">e2</span><span class="delete"> and </span><span class="delete">e1</span><span class="delete">, then 
+this means that the entity </span><span class="delete">e1</span><span class="delete"> had some form of influence on the entity </span><span class="delete">e2</span><span class="delete">; for this to be possible, some event ordering must be satisfied.
+First, we consider derivations, where the activity and usage are known. In that case, the </span><span class="delete">usage</span><span class="delete"> of </span><span class="delete">e1</span><span class="delete"> has to precede the </span><span class="delete">generation</span><span class="delete"> of </span><span class="delete">e2</span><span class="delete">.
 This is
-illustrated by <a href="#ordering-entity-trigger">Figure <span class="delete">4</span><span class="insert">5</span></a>(a) and  expressed by <a class="rule-ref" href="#wasStartedBy-ordering"><span>Constraint 43 (wasStartedBy-ordering)</span></a>.</p>
-
-
-<div class="constraint" id="wasStartedBy-ordering"><div class="ruleTitle"><a class="internalDFN" href="#wasStartedBy-ordering">Constraint 43 (wasStartedBy-ordering)</a></div>
+illustrated by Subfigure </span><span class="delete">ordering-entity-fig</span><span class="delete"> (b)</span><a href="#ordering-entity-trigger"><span class="insert">Figure 5</span></a><span class="insert">(a)</span> and  expressed by <span class="delete">constraint </span><span class="delete">derivation-usage-generation-ordering</span><span class="delete">.</span>
+
+
+
+      <span class="delete">IF</span>
+<span class="delete">wasDerivedFrom(d,e2,e1,a,g2,u1,-)</span> 
+<span class="delete">THEN</span>
+<span class="delete">u1</span> 
+<span class="delete">precedes</span>
+<span class="delete">g2</span><span class="delete">.  
+
+</span>
+
+
+<span class="delete">When the usage is unknown, a similar constraint exists, except that the constraint refers to its
+generation event, as
+illustrated by Subfigure </span><span class="delete">ordering-entity-fig</span><span class="delete"> (c) and  expressed by constraint </span><span class="delete">derivation-generation-generation-ordering</span><span class="delete">.</span>
+
+
+ <span class="delete">IF</span>
+<span class="delete">wasDerivedFrom(e2,e1,attrs)</span><span class="delete">
+  and
+</span><span class="delete">wasGeneratedBy(gen1,e1,_,_)</span><span class="delete">
+  and
+</span><span class="delete">wasGeneratedBy(gen2,e2,_,_)</span>
+<span class="delete">THEN</span>
+<span class="delete">gen1</span> 
+<span class="delete">precedes</span>
+<span class="delete">gen2</span><span class="delete">.  
+  </span>
+
+<span class="delete">Note that event ordering is between generations of </span><span class="delete">e1</span><span class="delete">
+and </span><span class="delete">e2</span><span class="delete">, as opposed to derivation where usage is known,
+which implies ordering ordering between the usage of </span><span class="delete">e1</span><span class="delete"> and
+generation of </span><span class="delete">e2</span><span class="delete">.  </span>
+
+
+
+<span class="delete">The entity that triggered the start of an activity must exist before the activity starts.
+This is
+illustrated by Subfigure </span><span class="delete">ordering-entity-trigger-fig</span><span class="delete"> (a) and  expressed by constraint </span><span class="delete">wasStartedBy-ordering</span><a class="rule-ref" href="#wasStartedBy-ordering"><span><span class="insert">Constraint 45 (wasStartedBy-ordering)</span></span></a>.</p>
+
+
+<div class="constraint" id="wasStartedBy-ordering"><div class="ruleTitle"><a class="internalDFN" href="#wasStartedBy-ordering"><span class="insert">Constraint 45 (wasStartedBy-ordering)</span></a></div>
  <ol>
     <li>
     <span class="conditional">IF</span>
-<span class="name"><span class="delete">wasStartedBy(start;_a,e,_a1,_t1,_attrs1)</span><span class="insert">wasStartedBy(start; _a,e,_a1,_t1,_attrs1)</span></span> 
+<span class="name"><span class="delete">wasStartedBy(start,a,e,-)</span><span class="insert">wasGeneratedBy(gen; e,_a1,_t1,_attrs1)</span></span> 
 and
-<span class="name"><span class="delete">wasGeneratedBy(gen;e,_a2,_t2,_attrs2)</span><span class="insert">wasGeneratedBy(gen; e,_a2,_t2,_attrs2)</span></span> 
+<span class="name"><span class="delete">wasGeneratedBy(gen,e,-,-)</span><span class="insert">wasStartedBy(start; _a,e,_a2,_t2,_attrs2)</span></span> 
 <span class="conditional">THEN</span>
 <span class="name">gen</span> 
 <a title="precedes" href="#dfn-precedes" class="internalDFN">precedes</a>
 <span class="name">start</span>.
   </li><li>
     <span class="conditional">IF</span>
-<span class="name"><span class="delete">wasStartedBy(start;_a,e,_a1,_t1,_attrs1)</span><span class="insert">wasStartedBy(start; _a,e,_a1,_t1,_attrs1)</span></span> 
+<span class="name"><span class="delete">wasStartedBy(start,a,e,-)</span><span class="insert">wasStartedBy(start; _a,e,_a1,_t1,_attrs1)</span></span> 
 and
-<span class="name"><span class="delete">wasInvalidatedBy(inv;e,_a2,_t2,_attrs2)</span><span class="insert">wasInvalidatedBy(inv; e,_a3,_t3,_attrs3)</span></span> 
+<span class="name"><span class="delete">wasInvalidatedBy(inv,e,-,-)</span><span class="insert">wasInvalidatedBy(inv; e,_a2,_t2,_attrs2)</span></span> 
 <span class="conditional">THEN</span>
 <span class="name">start</span> 
 <a title="precedes" href="#dfn-precedes" class="internalDFN">precedes</a>
@@ -2896,36 +4710,41 @@
   </li>
   </ol>
 </div>
-<p>
-</p><hr>
-
-<p id="wasEndedBy-ordering_text"> Similarly, the entity that triggered
-the end of an activity must exist before the activity ends, as
-illustrated by
-<a href="#ordering-entity-trigger">Figure <span class="delete">4</span><span class="insert">5</span></a>(b).</p>
-
-
-<div class="constraint" id="wasEndedBy-ordering"><div class="ruleTitle"><a class="internalDFN" href="#wasEndedBy-ordering">Constraint 44 (wasEndedBy-ordering)</a></div>
+
+
+<hr>
+
+<p id="wasEndedBy-ordering_text"> Similarly,   the entity that triggered 
+the end of an activity must exist before the activity ends, as 
+illustrated by<span class="delete"> Subfigure </span><span class="delete">ordering-entity-trigger-fig</span> 
+<a href="#ordering-entity-trigger"><span class="insert">Figure 5</span></a>(b).</p> 
+
+
+
+
+
+<div class="constraint" id="wasEndedBy-ordering"><div class="ruleTitle"><a class="internalDFN" href="#wasEndedBy-ordering"><span class="insert">Constraint 46 (wasEndedBy-ordering)</span></a></div>
  <ol>
       <li>
     <span class="conditional">IF</span>
-<span class="name"><span class="delete">wasEndedBy(end;_a,e,_a1,_t1,_attrs1)</span><span class="insert">wasEndedBy(end; _a,e,_a1,_t1,_attrs1)</span></span> 
+<span class="name"><span class="delete">wasEndedBy(end,a,e,-)</span><span class="insert">wasGeneratedBy(gen; e,_a1,_t1,_attrs1)</span></span> 
 and
-<span class="name"><span class="delete">wasGeneratedBy(gen;e,_a2,_t2,_attrs2)</span><span class="insert">wasGeneratedBy(gen; e,_a2,_t2,_attrs2)</span></span> 
+<span class="delete">wasGeneratedBy(gen,e,-,-)</span>
+   <span class="name"><span class="insert">wasEndedBy(end; _a,e,_a2,_t2,_attrs2)</span></span> 
 <span class="conditional">THEN</span>
 <span class="name">gen</span> 
 <a title="precedes" href="#dfn-precedes" class="internalDFN">precedes</a>
 <span class="name">end</span>.
   </li><li>
     <span class="conditional">IF</span>
-<span class="name"><span class="delete">wasEndedBy(end;_a,e,_a1,_t1,_attrs1)</span><span class="insert">wasEndedBy(end; _a,e,_a1,_t1,_attrs1)</span></span> 
+<span class="name"><span class="delete">wasEndedBy(end,a,e,-)</span><span class="insert">wasEndedBy(end; _a,e,_a1,_t1,_attrs1)</span></span> 
 and
-<span class="name"><span class="delete">wasInvalidatedBy(inv;e,_a2,_t2,_attrs2)</span><span class="insert">wasInvalidatedBy(inv; e,_a3,_t3,_attrs3)</span></span> 
+<span class="name"><span class="delete">wasInvalidatedBy(inv,e,-,-)</span><span class="insert">wasInvalidatedBy(inv; e,_a2,_t2,_attrs2)</span></span> 
 <span class="conditional">THEN</span>
 <span class="name">end</span> 
-<a title="precedes" href="#dfn-precedes" class="internalDFN">precedes</a>
-<span class="name">inv</span>.
-  </li>
+<a title="precedes" href="#dfn-precedes" class="internalDFN"><span class="insert">precedes</span></a>
+<span class="name"><span class="insert">inv</span></span><span class="insert">.
+  </span></li>
   </ol>
 </div>
 
@@ -2933,43 +4752,52 @@
 <span class="figure" id="ordering-entity-trigger">
 <img src="images/constraints/ordering-entity-trigger.png" alt="ordering constraints for trigger entities">
 <br>
-<span class="figcaption" id="ordering-entity-trigger-fig">Figure <span class="delete">4</span><span class="insert">5</span><sup><a class="internalDFN" href="#ordering-entity-trigger-fig"><span class="diamond"> ◊:</span></a></sup> Summary of <a title="instantaneous event" href="#dfn-event" class="internalDFN">instantaneous event</a> ordering constraints for trigger entities</span>  
+<span class="figcaption" id="ordering-entity-trigger-fig"><span class="insert">Figure 5</span><sup><a class="internalDFN" href="#ordering-entity-trigger-fig"><span class="diamond"><span class="insert"> ◊:</span></span></a></sup><span class="insert"> Summary of </span><a title="instantaneous event" href="#dfn-event" class="internalDFN"><span class="insert">instantaneous event</span></a><span class="insert"> ordering constraints for trigger entities</span></span>  
 </span>
 </div>
 
 <hr>
-<p id="specialization-generation-ordering_text">
-If an entity <span class="delete">specalizes</span><span class="insert">is a specialization of</span> another, then <span class="delete">its generation</span><span class="insert">the more
-specific entity</span> must <span class="delete">follow the
-specialized entity's generation.</span><span class="insert">have been generated after the
-less specific entity was generated.</span>
-</p>
-<div class="constraint" id="specialization-generation-ordering"><div class="ruleTitle"><a class="internalDFN" href="#specialization-generation-ordering">Constraint 45 <span class="delete">(specialization-generation)</span><span class="insert">(specialization-generation-ordering)</span></a></div>
+<p id="specialization-generation-ordering_text"><span class="insert">
+If an entity is a specialization of another, then the more
+specific entity must have been generated after the
+less specific entity was generated.
+</span></p>
+<div class="constraint" id="specialization-generation-ordering"><div class="ruleTitle"><a class="internalDFN" href="#specialization-generation-ordering"><span class="insert">Constraint 47 (specialization-generation-ordering)</span></a></div>
   <p>
-<span class="conditional">IF</span> <span class="name">specializationOf(e2,e1)</span> and <span class="name"><span class="delete">wasGeneratedBy(gen1;e1,_a1,_t1,_attrs1)</span><span class="delete"> and
-  </span><span class="delete">wasGeneratedBy(gen2;e2,_a2,_t2,_attrs2)</span><span class="insert">wasGeneratedBy(gen1; e1,_a1,_t1,_attrs1)</span></span><span class="insert"> and
+<span class="conditional"><span class="insert">IF</span></span> <span class="name"><span class="insert">specializationOf(e2,e1)</span></span><span class="insert"> and </span><span class="name"><span class="insert">wasGeneratedBy(gen1; e1,_a1,_t1,_attrs1)</span></span><span class="insert"> and
   </span><span class="name"><span class="insert">wasGeneratedBy(gen2; e2,_a2,_t2,_attrs2)</span></span>
-  <span class="conditional">THEN</span> <span class="name">gen1</span> <a href="#dfn-precedes" class="internalDFN">precedes</a> <span class="name">gen2</span>.  
+  <span class="conditional"><span class="insert">THEN</span></span> <span class="name"><span class="insert">gen1</span></span> <a href="#dfn-precedes" class="internalDFN">precedes</a>
+<span class="delete">inv</span> <span class="name"><span class="insert">gen2</span></span>.
+  
+  
+  
 </p></div>
 
-<p>
+
+
+<span class="delete">Summary</span><p>
 
 </p><hr>
-<p id="specialization-invalidation-ordering_text">
-Similarly, if an entity <span class="delete">specalizes another, </span><span class="insert">is a specialization of another entity, and
-</span>then<span class="delete"> its</span><span class="insert">
-the</span> invalidation <span class="delete">must follow the
-specialized entity's invalidation.</span><span class="insert">event of the more specific entity precedes that of
-the less specific entity.</span>
-</p><div class="constraint" id="specialization-invalidation-ordering"><div class="ruleTitle"><a class="internalDFN" href="#specialization-invalidation-ordering">Constraint 46 <span class="delete">(specialization-invalidation)</span><span class="insert">(specialization-invalidation-ordering)</span></a></div>
+<p id="specialization-invalidation-ordering_text"><span class="insert">
+Similarly, if an entity is a specialization</span> of <span class="delete">instantaneous</span><span class="insert">another entity, and
+then
+the invalidation</span> event<span class="delete"> ordering constraints for trigger entities</span><span class="insert"> of the more specific entity precedes that of
+the less specific entity.
+</span></p><div class="constraint" id="specialization-invalidation-ordering"><div class="ruleTitle"><a class="internalDFN" href="#specialization-invalidation-ordering"><span class="insert">Constraint 48 (specialization-invalidation-ordering)</span></a></div>
+
+
   <p>
-<span class="conditional">IF</span> <span class="name"><span class="delete">specializationOf(e2,e1)</span><span class="delete"> and </span><span class="delete">wasInvalidatedBy(inv1;e1,_a1,_t1,_attrs1)</span><span class="delete"> and
-  </span><span class="delete">wasInvalidatedBy(inv2;e2,_a2,_t2,_attrs2)</span><span class="insert">specializationOf(e1,e2)</span></span><span class="insert"> and </span><span class="name"><span class="insert">wasInvalidatedBy(inv2; e2,_a2,_t2,_attrs2)</span></span><span class="insert"> and
-  </span><span class="name"><span class="insert">wasInvalidatedBy(inv1; e1,_a1,_t1,_attrs1)</span></span>
-  <span class="conditional">THEN</span> <span class="name"><span class="delete">inv2</span><span class="insert">inv1</span></span> <a href="#dfn-precedes" class="internalDFN">precedes</a> <span class="name"><span class="delete">inv1</span><span class="insert">inv2</span></span>.
-</p>
+<span class="conditional"><span class="insert">IF</span></span> <span class="name"><span class="insert">specializationOf(e1,e2)</span></span><span class="insert"> and
+ </span><span class="name"><span class="insert">wasInvalidatedBy(inv1; e1,_a1,_t1,_attrs1)</span></span><span class="insert"> and 
+ </span><span class="name"><span class="insert">wasInvalidatedBy(inv2; e2,_a2,_t2,_attrs2)</span></span>
+  <span class="conditional"><span class="insert">THEN</span></span> <span class="name"><span class="insert">inv1</span></span> <a href="#dfn-precedes" class="internalDFN"><span class="insert">precedes</span></a> <span class="name"><span class="insert">inv2</span></span><span class="insert">.
+</span></p>
   </div>
 
+
+
+
+
 </div>
 
 <div id="agent-constraints" class="section">
@@ -2987,14 +4815,17 @@
 </span><span class="insert">delegation.
   
 </span></p>
- <p>Further constraints associated with agents appear in <a href="#ordering-agents">Figure <span class="delete">5</span><span class="insert">6</span></a> and are discussed below.</p>
+ <p>Further constraints associated with agents appear in <a href="#ordering-agents">Figure <span class="delete">ordering-agents</span><span class="insert">6</span></a> and are discussed below.</p>
 
 <div style="text-align: center;">
+
 <span class="figure" id="ordering-agents-fig">
 <img src="images/constraints/ordering-agents.png" alt="ordering constraints for agents">
 <br>
-<span class="figcaption" id="ordering-agents">Figure <span class="delete">5</span><span class="insert">6</span><sup><a class="internalDFN" href="#ordering-agents"><span class="diamond"> ◊:</span></a></sup> Summary of <a title="instantaneous event" href="#dfn-event" class="internalDFN">instantaneous event</a> ordering
-  constraints for agents</span> 
+<span class="figcaption" id="ordering-agents"><span class="insert">Figure 6</span><sup><a class="internalDFN" href="#ordering-agents"><span class="diamond"><span class="insert"> ◊:</span></span></a></sup> Summary of <a title="instantaneous event" href="#dfn-event" class="internalDFN">instantaneous event</a> ordering 
+  constraints <span class="delete">(continued)</span>
+
+<span class="insert">for agents</span></span> 
 </span>
 </div>
 
@@ -3002,67 +4833,95 @@
 
 
 <p id="wasAssociatedWith-ordering_text">An activity that was 
-associated with an agent must have some overlap with the agent. <span class="delete">The </span><span class="insert">Ihe
-</span>agent <em class="rfc2119" title="must"><span class="insert">must</span></em><span class="insert"> have been generated (or started), or </span><em class="rfc2119" title="must"><span class="insert">must</span></em><span class="insert"> have become
+associated with an agent must have some overlap with the agent. The 
+agent <em class="rfc2119" title="must"><span class="insert">must</span></em><span class="insert"> have been generated (or started), or </span><em class="rfc2119" title="must"><span class="insert">must</span></em><span class="insert"> have become
 associated with the activity, after the activity start: so, the agent </span><em class="rfc2119" title="must"><span class="insert">must</span></em><span class="insert"> exist before the activity end. Likewise, the agent </span>may be <span class="delete">generated,</span><span class="insert">destructed (or ended),</span> or may <span class="delete">only become associated</span><span class="insert">terminate its association</span> with the activity, <span class="insert">before the activity end: hence, the agent invalidation (or end) is required to happen </span>after the activity <span class="delete">start: so, the agent</span><span class="insert">start.
 This</span> is <span class="delete">required to exist before the activity end. Likewise, the agent may be destructed, or may terminate its association with the activity, before the activity end: hence, the agent invalidation is required to happen after the activity start.
 This is
-</span>illustrated by <a href="#ordering-agents">Figure <span class="delete">5</span><span class="insert">6</span></a> (a) and  expressed by <a class="rule-ref" href="#wasAssociatedWith-ordering"><span>Constraint 47 (wasAssociatedWith-ordering)</span></a>.</p>
-
-
-
-
-
-
-<div class="constraint" id="wasAssociatedWith-ordering"><div class="ruleTitle"><a class="internalDFN" href="#wasAssociatedWith-ordering">Constraint 47 (wasAssociatedWith-ordering)</a></div>
+</span>illustrated by <span class="delete">Subfigure </span><a href="#ordering-agents"><span class="delete">ordering-agents</span><span class="insert">Figure 6</span></a> (a) and  expressed by <span class="delete">constraint </span><span class="delete">wasAssociatedWith-ordering</span><a class="rule-ref" href="#wasAssociatedWith-ordering"><span><span class="insert">Constraint 49 (wasAssociatedWith-ordering)</span></span></a>.</p>
+
+
+
+
+
+
+<div class="constraint" id="wasAssociatedWith-ordering">
+  <div class="ruleTitle"><a class="internalDFN" href="#wasAssociatedWith-ordering"><span class="insert">Constraint 49 (wasAssociatedWith-ordering)</span></a></div>
   <p><span class="insert">
 In the following inferences, </span><span class="name"><span class="insert">_pl</span></span> <em class="rfc2119" title="may"><span class="insert">may</span></em><span class="insert"> be
-  </span><span class="name"><span class="insert">-</span></span><span class="insert">.
+ a placeholder </span><span class="name"><span class="insert">-</span></span><span class="insert">.
   </span></p><ol>    <li>
     <span class="conditional">IF</span>
-<span class="name"><span class="delete">wasAssociatedWith(_assoc;a,ag,_pl,_attrs)</span><span class="insert">wasAssociatedWith(_assoc; a,ag,_pl,_attrs)</span></span> 
-and
-<span class="name"><span class="delete">wasStartedBy(start;a,_e1,_a1,_t1,_attrs1)</span><span class="insert">wasStartedBy(start; a,_e1,_a1,_t1,_attrs1)</span></span> 
+<span class="name"><span class="delete">wasAssociatedWith(a,ag)</span><span class="insert">wasAssociatedWith(_assoc; a,ag,_pl,_attrs)</span></span> 
 and
-<span class="name"><span class="delete">wasInvalidatedBy(inv;ag,_a2,_t2,_attrs2)</span><span class="insert">wasInvalidatedBy(inv; ag,_a2,_t2,_attrs2)</span></span> 
+<span class="name"><span class="delete">wasStartedBy(start,a,-,-)</span><span class="insert">wasStartedBy(start1; a,_e1,_a1,_t1,_attrs1)</span></span> 
+and
+<span class="name"><span class="delete">wasInvalidatedBy(inv,ag,-,-)</span><span class="insert">wasInvalidatedBy(inv2; ag,_a2,_t2,_attrs2)</span></span> 
 <span class="conditional">THEN</span>
-<span class="name">start</span> 
+<span class="name"><span class="delete">start</span><span class="insert">start1</span></span> 
 <a title="precedes" href="#dfn-precedes" class="internalDFN">precedes</a>
-<span class="name">inv</span>.
+<span class="name"><span class="delete">inv</span><span class="insert">inv2</span></span>.
   </li><li>
     <span class="conditional">IF</span>
-<span class="name"><span class="delete">wasAssociatedWith(_assoc;a,ag,_pl,_attrs)</span><span class="insert">wasAssociatedWith(_assoc; a,ag,_pl,_attrs)</span></span> 
-and
-<span class="name"><span class="delete">wasGeneratedBy(gen;ag,_a1,_t1,_attrs1)</span><span class="insert">wasGeneratedBy(gen; ag,_a3,_t3,_attrs3)</span></span> 
+<span class="name"><span class="delete">wasAssociatedWith(a,ag)</span><span class="insert">wasAssociatedWith(_assoc; a,ag,_pl,_attrs)</span></span> 
 and
-<span class="name"><span class="delete">wasEndedBy(end;a,_e2,_a2,_t2,_attrs2)</span><span class="insert">wasEndedBy(end; a,_e4,_a4,_t4,_attrs4)</span></span> 
+<span class="name"><span class="delete">wasGeneratedBy(gen,ag,-,-)</span><span class="insert">wasGeneratedBy(gen1; ag,_a1,_t1,_attrs1)</span></span> 
+and
+<span class="name"><span class="delete">wasEndedBy(end,a,-,-)</span><span class="insert">wasEndedBy(end2; a,_e2,_a2,_t2,_attrs2)</span></span> 
 <span class="conditional">THEN</span>
-<span class="name">gen</span> 
-<a title="precedes" href="#dfn-precedes" class="internalDFN"><span class="insert">precedes</span></a>
-<span class="name"><span class="insert">end</span></span><span class="insert">.
+<span class="name"><span class="delete">gen</span><span class="insert">gen1</span></span> 
+<a title="precedes" href="#dfn-precedes" class="internalDFN">precedes</a>
+<span class="name"><span class="delete">end</span><span class="delete">.
+  </span>
+  
+
+
+
+
+<span class="delete">An entity that was attributed to an agent must have some overlap
+with the agent. The agent is required to exist before the entity
+invalidation. Likewise, the entity generation must precede the agent destruction.
+This is
+illustrated by Subfigure </span><span class="delete">ordering-agents</span><span class="delete"> (b) and  expressed by constraint </span><span class="delete">wasAttributedTo-ordering</span><span class="delete">.</span>
+
+
+
+ 
+
+       
+    <span class="delete">IF</span>
+<span class="delete">wasAttributedTo(e,ag)</span><span class="delete"> 
+and
+</span><span class="delete">wasGeneratedBy(gen,e,-,-)</span><span class="delete"> 
+and
+</span><span class="delete">wasInvalidatedBy(inv,ag,-,-)</span> 
+<span class="delete">THEN</span>
+<span class="delete">gen</span> 
+<span class="delete">precedes</span>
+<span class="delete">inv</span><span class="insert">end2</span></span>.
+  </li><li>
+    <span class="conditional">IF</span>
+<span class="name"><span class="delete">wasAttributedTo(e,ag)</span><span class="insert">wasAssociatedWith(_assoc; a,ag,_pl,_attrs)</span></span> 
+and
+<span class="name"><span class="delete">wasGeneratedBy(gen,ag,-,-)</span><span class="insert">wasStartedBy(start1; a,_e1,_a1,_t1,_attrs1)</span></span> 
+and
+<span class="name"><span class="delete">wasInvalidatedBy(inv,e,-,-)</span><span class="insert">wasEndedBy(end2; ag,_e2,_a2,_t2,_attrs2)</span></span> 
+<span class="conditional">THEN</span>
+<span class="name"><span class="delete">gen</span><span class="insert">start1</span></span> 
+<a title="precedes" href="#dfn-precedes" class="internalDFN">precedes</a>
+<span class="name"><span class="delete">inv</span><span class="insert">end2</span></span><span class="insert">.
   </span></li><li>
     <span class="conditional"><span class="insert">IF</span></span>
 <span class="name"><span class="insert">wasAssociatedWith(_assoc; a,ag,_pl,_attrs)</span></span><span class="insert"> 
 and
-</span><span class="name"><span class="insert">wasStartedBy(start; a,_e5,_a5,_t5,_attrs5)</span></span><span class="insert"> 
+</span><span class="name"><span class="insert">wasStartedBy(start1; ag,_e1,_a1,_t1,_attrs1)</span></span><span class="insert"> 
 and
-</span><span class="name"><span class="insert">wasEndedBy(end1; ag,_e6,_a6,_t6,_attrs6)</span></span> 
-<span class="conditional"><span class="insert">THEN</span></span>
-<span class="name"><span class="insert">start</span></span> 
-<a title="precedes" href="#dfn-precedes" class="internalDFN"><span class="insert">precedes</span></a>
-<span class="name"><span class="insert">end1</span></span><span class="insert">.
-  </span></li><li>
-    <span class="conditional"><span class="insert">IF</span></span>
-<span class="name"><span class="insert">wasAssociatedWith(_assoc; a,ag,_pl,_attrs)</span></span><span class="insert"> 
-and
-</span><span class="name"><span class="insert">wasStartedBy(start1; ag,_e7,_a7,_t7,_attrs7)</span></span><span class="insert"> 
-and
-</span><span class="name"><span class="insert">wasEndedBy(end; a,_e8,_a8,_t8,_attrs8)</span></span> 
+</span><span class="name"><span class="insert">wasEndedBy(end2; a,_e2,_a2,_t2,_attrs2)</span></span> 
 <span class="conditional"><span class="insert">THEN</span></span>
 <span class="name"><span class="insert">start1</span></span> 
-<a title="precedes" href="#dfn-precedes" class="internalDFN">precedes</a>
-<span class="name">end</span>.
-  </li>
+<a title="precedes" href="#dfn-precedes" class="internalDFN"><span class="insert">precedes</span></a>
+<span class="name"><span class="insert">end2</span></span><span class="insert">.
+  </span></li>
   </ol>
 </div>
 
@@ -3071,60 +4930,36 @@
 
 </p><hr>
 
-<p id="wasAttributedTo-ordering_text">An entity that was attributed to an agent must have some overlap
-with the agent. The agent <span class="delete">is required to</span><em class="rfc2119" title="must"><span class="insert">must</span></em> exist before the entity
-invalidation. Likewise, the entity generation must precede the agent destruction.
+<p id="wasAttributedTo-ordering_text"><span class="insert">An agent to which an entity was attributed, </span><em class="rfc2119" title="must"><span class="insert">must</span></em><span class="insert"> exist before this entity was generated.
 This is
-illustrated by <a href="#ordering-agents">Figure <span class="delete">5</span><span class="insert">6</span></a> (b) and  expressed by  <a class="rule-ref" href="#wasAttributedTo-ordering"><span>Constraint 48 (wasAttributedTo-ordering)</span></a>.</p>
+illustrated by </span><a href="#ordering-agents"><span class="insert">Figure 6</span></a><span class="insert"> (b) and  expressed by  </span><a class="rule-ref" href="#wasAttributedTo-ordering"><span><span class="insert">Constraint 50 (wasAttributedTo-ordering)</span></span></a><span class="insert">.</span></p>
 
 
 
  
-<div class="constraint" id="wasAttributedTo-ordering"><div class="ruleTitle"><a class="internalDFN" href="#wasAttributedTo-ordering">Constraint 48 (wasAttributedTo-ordering)</a></div>
+<div class="constraint" id="wasAttributedTo-ordering"><div class="ruleTitle"><a class="internalDFN" href="#wasAttributedTo-ordering"><span class="insert">Constraint 50 (wasAttributedTo-ordering)</span></a></div>
       <ol> <li>
-    <span class="conditional">IF</span>
-<span class="name"><span class="delete">wasAttributedTo(_at;e,ag,_attrs)</span><span class="insert">wasAttributedTo(_at; e,ag,_attrs)</span></span> 
-and
-<span class="name"><span class="delete">wasGeneratedBy(gen;e,_a1,_t1,_attrs1)</span><span class="insert">wasGeneratedBy(gen; e,_a1,_t1,_attrs1)</span></span> 
+    <span class="conditional"><span class="insert">IF</span></span>
+<span class="name"><span class="insert">wasAttributedTo(_at; e,ag,_attrs)</span></span><span class="insert"> 
 and
-<span class="name"><span class="delete">wasInvalidatedBy(inv;ag,_a2,_t2,_attrs2)</span><span class="insert">wasInvalidatedBy(inv; ag,_a2,_t2,_attrs2)</span></span> 
-<span class="conditional">THEN</span>
-<span class="name">gen</span> 
-<a title="precedes" href="#dfn-precedes" class="internalDFN">precedes</a>
-<span class="name">inv</span>.
-  </li><li>
-    <span class="conditional">IF</span>
-<span class="name"><span class="delete">wasAttributedTo(_at;e,ag,_attrs)</span><span class="insert">wasAttributedTo(_at; e,ag,_attrs)</span></span> 
+</span><span class="name"><span class="insert">wasGeneratedBy(gen1; ag,_a1,_t1,_attrs1)</span></span><span class="insert"> 
 and
-<span class="name"><span class="delete">wasGeneratedBy(gen;ag,_a1,_t1,_attrs1)</span><span class="insert">wasGeneratedBy(gen; ag,_a3,_t3,_attrs3)</span></span> 
-and
-<span class="name"><span class="delete">wasInvalidatedBy(inv;e,_a2,_t2,_attrs2)</span><span class="insert">wasInvalidatedBy(inv; e,_a4,_t4,_attrs4)</span></span> 
-<span class="conditional">THEN</span>
-<span class="name">gen</span> 
+</span><span class="name"><span class="insert">wasGeneratedBy(gen2; e,_a2,_t2,_attrs2)</span></span> 
+<span class="conditional"><span class="insert">THEN</span></span>
+<span class="name"><span class="insert">gen1</span></span> 
 <a title="precedes" href="#dfn-precedes" class="internalDFN"><span class="insert">precedes</span></a>
-<span class="name"><span class="insert">inv</span></span><span class="insert">.
+<span class="name"><span class="insert">gen2</span></span><span class="insert">.
   </span></li><li>
     <span class="conditional"><span class="insert">IF</span></span>
 <span class="name"><span class="insert">wasAttributedTo(_at; e,ag,_attrs)</span></span><span class="insert"> 
 and
-</span><span class="name"><span class="insert">wasGeneratedBy(gen; e,_a5,_t5,_attrs5)</span></span><span class="insert"> 
+</span><span class="name"><span class="insert">wasStartedBy(start1; ag,_e1,_a1,_t1,_attrs1)</span></span><span class="insert"> 
 and
-</span><span class="name"><span class="insert">wasEndedBy(end; ag,_e6,_a6,_t6,_attrs6)</span></span> 
+</span><span class="name"><span class="insert">wasGeneratedBy(gen2; e,_a2,_t2,_attrs2)</span></span> 
 <span class="conditional"><span class="insert">THEN</span></span>
-<span class="name"><span class="insert">gen</span></span> 
+<span class="name"><span class="insert">start1</span></span> 
 <a title="precedes" href="#dfn-precedes" class="internalDFN"><span class="insert">precedes</span></a>
-<span class="name"><span class="insert">end</span></span><span class="insert">.
-  </span></li><li>
-    <span class="conditional"><span class="insert">IF</span></span>
-<span class="name"><span class="insert">wasAttributedTo(_at; e,ag,_attrs)</span></span><span class="insert"> 
-and
-</span><span class="name"><span class="insert">wasStartedBy(start; ag,_e7,_a7,_t7,_attrs7) </span></span><span class="insert"> 
-and
-</span><span class="name"><span class="insert">wasInvalidatedBy(inv; e,_a8,_t8,_attrs8)</span></span> 
-<span class="conditional"><span class="insert">THEN</span></span>
-<span class="name"><span class="insert">start</span></span> 
-<a title="precedes" href="#dfn-precedes" class="internalDFN">precedes</a>
-<span class="name">inv</span>.
+<span class="name"><span class="insert">gen2</span></span>.
   </li>
   </ol>
 </div>
@@ -3132,35 +4967,33 @@
 <p>
 </p><hr>
 
-<p id="actedOnBehalfOf-ordering_text">For delegation, two agents need to have some overlap in their lifetime.</p>
-
-
-<div class="constraint" id="actedOnBehalfOf-ordering"><div class="ruleTitle"><a class="internalDFN" href="#actedOnBehalfOf-ordering">Constraint 49 (actedOnBehalfOf-ordering)</a></div>
-  
+<p id="actedOnBehalfOf-ordering_text">For <span class="delete">responsibility,</span><span class="insert">delegation,</span> two agents need to have some overlap in their lifetime.</p>
+
+
+<div class="constraint" id="actedOnBehalfOf-ordering">
+  <div class="ruleTitle"><a class="internalDFN" href="#actedOnBehalfOf-ordering"><span class="insert">Constraint 51 (actedOnBehalfOf-ordering)</span></a></div>
  <ol> <li>
 	 <span class="conditional">IF</span>
-<span class="name"><span class="delete">actedOnBehalfOf(_del;ag2,ag1,_a,_attrs)</span><span class="insert">actedOnBehalfOf(_del; ag2,ag1,_a,_attrs)</span></span> 
-and
-<span class="name"><span class="delete">wasGeneratedBy(gen;ag1,_a1,_t1,_attrs1)</span><span class="insert">wasGeneratedBy(gen; ag1,_a1,_t1,_attrs1)</span></span> 
+<span class="name"><span class="delete">actedOnBehalfOf(ag2,ag1)</span><span class="insert">actedOnBehalfOf(_del; ag2,ag1,_a,_attrs)</span></span> 
 and
-<span class="name"><span class="delete">wasInvalidatedBy(inv;ag2,_a2,_t2,_attrs2)</span><span class="insert">wasInvalidatedBy(inv; ag2,_a2,_t2,_attrs2)</span></span> 
+<span class="name"><span class="delete">wasGeneratedBy(gen,ag1,-,-)</span><span class="insert">wasGeneratedBy(gen1; ag1,_a1,_t1,_attrs1)</span></span> 
+and
+<span class="name"><span class="delete">wasInvalidatedBy(inv,ag2,-,-)</span><span class="insert">wasInvalidatedBy(inv2; ag2,_a2,_t2,_attrs2)</span></span> 
 <span class="conditional">THEN</span>
-<span class="name">gen</span> 
+<span class="name"><span class="delete">gen</span><span class="insert">gen1</span></span> 
 <a title="precedes" href="#dfn-precedes" class="internalDFN">precedes</a>
-<span class="name">inv</span>.
-
-
+<span class="name"><span class="delete">inv</span><span class="insert">inv2</span></span>.
   </li><li>
 	 <span class="conditional"><span class="insert">IF</span></span>
 <span class="name"><span class="insert">actedOnBehalfOf(_del; ag2,ag1,_a,_attrs)</span></span><span class="insert"> 
 and
-</span><span class="name"><span class="insert">wasStartedBy(start; ag1,_e3,_a3,_t3,_attrs3)</span></span><span class="insert"> 
+</span><span class="name"><span class="insert">wasStartedBy(start1; ag1,_e1,_a1,_t1,_attrs1)</span></span><span class="insert"> 
 and
-</span><span class="name"><span class="insert">wasEndedBy(end; ag2,_e4,_a4,_t4,_attrs4)</span></span> 
+</span><span class="name"><span class="insert">wasEndedBy(end2; ag2,_e2,_a2,_t2,_attrs2)</span></span> 
 <span class="conditional"><span class="insert">THEN</span></span>
-<span class="name"><span class="insert">start</span></span> 
+<span class="name"><span class="insert">start1</span></span> 
 <a title="precedes" href="#dfn-precedes" class="internalDFN"><span class="insert">precedes</span></a>
-<span class="name"><span class="insert">end</span></span><span class="insert">.
+<span class="name"><span class="insert">end2</span></span><span class="insert">.
   </span></li>
   </ol>
 
@@ -3170,51 +5003,267 @@
 
 </div>  
 
-<div id="impossibility-constraints" class="section">
-<h3><span class="secno">5.3 </span>Impossibility constraints</h3>
-
-<p> Impossibility constraints require that certain patterns of
-statements never appear in <a href="#dfn-valid" class="internalDFN">valid</a> PROV instances.  Impossibility
-constraints have the following general form:
-</p>
-
-<div class="constraint-example" id="impossible-example"><div class="ruleTitle"><a class="internalDFN" href="#impossible-example">Constraint-example NNN (impossible-example)</a></div>
-  <p><span class="conditional">IF</span> <span class="name">hyp<sub>1</sub></span> and ... and  <span class="name">hyp<sub>n</sub></span> <span class="conditional">THEN</span> <span class="conditional">INVALID</span>.</p>
-  </div>
-
-<p> <span class="delete">To check</span><span class="insert">Checking</span> an impossibility constraint on instance <span class="math">I</span><span class="delete">, we check</span><span class="insert"> means  checking</span> whether there is
-any way of matching the pattern <span class="name">hyp<sub>1</sub></span>, ..., <span class="name">hyp<sub>n</sub></span>.  If there
-is, then checking the constraint on <span class="math">I</span> fails (which implies that
-<span class="math">I</span> is invalid).
-
-
   
 
 
 
-    
-</p>
-
-<span class="delete">Influence is required to
-  be </span><span class="delete">irreflexive</span><span class="delete">, that is, it is impossible for something to
-  influence itself.</span>
-
-        <span class="delete">Constraint 50 (impossible-influence-reflexive)</span>
-	   <span class="delete">IF</span> <span class="delete">wasInfluencedBy(e,e)</span> <span class="delete">THEN</span> <span class="delete">INVALID</span><span class="delete">.</span>
-    
-
-
-
-    
+<div id="type-constraints" class="section">
+<h3><span class="secno"><span class="insert">5.3 </span></span><span class="insert">Type Constraints</span></h3>
+
+<p id="typing_text"><span class="insert">The following rule  establishes types denoted by identifiers from their use within expressions. 
+The function </span><span class="name"><span class="insert">typeOf</span></span><span class="insert"> gives the set of types denoted by an identifier.
+That is,  </span><span class="name"><span class="insert">typeOf(e)</span></span><span class="insert"> returns the set of types associated with identifier  </span><span class="name"><span class="insert">e</span></span><span class="insert">. The function </span><span class="name"><span class="insert">typeOf</span></span><span class="insert"> is not a term of PROV, but a construct introduced to validate PROV statements. 
+</span></p>
+
+
+
+
+<p><span class="insert">
+ For any identifier  </span><span class="name"><span class="insert">id</span></span><span class="insert">,  </span><span class="name"><span class="insert">typeOf(id)</span></span><span class="insert">  is a subset of {</span><span class="name"><span class="insert">'entity'</span></span><span class="insert">, </span><span class="name"><span class="insert">'activity'</span></span><span class="insert">, </span><span class="name"><span class="insert">'agent'</span></span><span class="insert">, </span><span class="name"><span class="insert">'prov:Collection'</span></span><span class="insert">, </span><span class="name"><span class="insert">'prov:EmptyCollection'</span></span><span class="insert">}.
+For identifiers that do not have a type,  </span><span class="name"><span class="insert">typeOf</span></span><span class="insert"> gives the empty set.
+  Identifiers can have more than one type, because of subtyping
+ (e.g. </span><span class="name"><span class="insert">'prov:EmptyCollection'</span></span><span class="insert"> is a subtype of </span><span class="name"><span class="insert">'prov:Collection'</span></span><span class="insert">) or because certain types are not
+ disjoint (such as </span><span class="name"><span class="insert">'agent'</span></span><span class="insert"> and </span><span class="name"><span class="insert">'entity'</span></span><span class="insert">). The set of types
+ does not reflect all of the distinctions among objects, only those
+ relevant for checking validity.  In particular, subtypes such as </span><span class="name"><span class="insert">'plan'</span></span><span class="insert"> and </span><span class="name"><span class="insert">'bundle'</span></span><span class="insert"> are omitted, and statements such as </span><span class="name"><span class="insert">wasAssociatedWith</span></span><span class="insert"> and </span><span class="name"><span class="insert">mentionOf</span></span><span class="insert"> that have plan or bundle parameters only check that these parameters are entities.
+</span></p>
+
+<p><span class="insert">To check if a PROV instance satisfies type constraints, one obtains the types of identifiers by application of
+</span><a class="rule-ref" href="#typing"><span><span class="insert">Constraint 52 (typing)</span></span></a><span class="insert">
+and check that none of the impossibility constraints 
+</span><a class="rule-ref" href="#entity-activity-disjoint"><span><span class="insert">Constraint 57 (entity-activity-disjoint)</span></span></a><span class="insert"> and
+</span><a class="rule-ref" href="#membership-empty-collection"><span><span class="insert">Constraint 58 (membership-empty-collection)</span></span></a><span class="insert"> are
+  violated as a result.</span></p>
+
+
+<div class="constraint" id="typing"><div class="ruleTitle"><a class="internalDFN" href="#typing"><span class="insert">Constraint 52 (typing)</span></a></div>
+
+
+<ol>
+<li>
+<span class="conditional"><span class="insert">IF</span></span> 
+   <span class="name"><span class="insert">entity(e,attrs)</span></span>  
+<span class="conditional"><span class="insert">THEN</span></span> 
+<span class="name"><span class="insert">'entity' ∈ typeOf(e)</span></span><span class="insert">.
+</span></li><li>
+<span class="conditional"><span class="insert">IF</span></span> 
+   <span class="name"><span class="insert">agent(ag,attrs)</span></span>  
+<span class="conditional"><span class="insert">THEN</span></span> 
+<span class="name"><span class="insert">'agent' ∈ typeOf(ag)</span></span><span class="insert">.
+</span></li><li>
+<span class="conditional"><span class="insert">IF</span></span> 
+   <span class="name"><span class="insert">activity(a,attrs)</span></span>  
+<span class="conditional"><span class="insert">THEN</span></span> 
+<span class="name"><span class="insert">'activity' ∈ typeOf(a)</span></span><span class="insert">.
+
+
+</span></li><li>
+
+<span class="conditional"><span class="insert">IF</span></span> 
+   <span class="name"><span class="insert">used(u; a,e,t,attrs)</span></span>  
+<span class="conditional"><span class="insert">THEN</span></span> 
+<span class="name"><span class="insert">'activity' ∈ typeOf(a)</span></span><span class="insert"> AND
+</span><span class="name"><span class="insert">'entity' ∈ typeOf(e)</span></span><span class="insert">.
+
+</span></li><li>
+<span class="conditional"><span class="insert">IF</span></span> 
+   <span class="name"><span class="insert">wasGeneratedBy(gen; e,a,t,attrs)</span></span>  
+<span class="conditional"><span class="insert">THEN</span></span> 
+<span class="name"><span class="insert">'entity' ∈ typeOf(e)</span></span><span class="insert"> AND
+</span><span class="name"><span class="insert">'activity' ∈ typeOf(a)</span></span><span class="insert">.
+
+</span></li><li>
+
+<span class="conditional"><span class="insert">IF</span></span> 
+   <span class="name"><span class="insert">wasInformedBy(id; a2,a1,attrs)</span></span>  
+<span class="conditional"><span class="insert">THEN</span></span> 
+<span class="name"><span class="insert">'activity' ∈ typeOf(a2)</span></span><span class="insert"> AND
+</span><span class="name"><span class="insert">'activity' ∈ typeOf(a1)</span></span><span class="insert">.
+
+</span></li><li>
+
+<span class="conditional"><span class="insert">IF</span></span> 
+   <span class="name"><span class="insert">wasStartedBy(id; a2,e,a1,t,attrs)</span></span>  
+<span class="conditional"><span class="insert">THEN</span></span> 
+<span class="name"><span class="insert">'activity' ∈ typeOf(a2)</span></span><span class="insert"> AND
+</span><span class="name"><span class="insert">'entity' ∈ typeOf(e)</span></span><span class="insert"> AND
+</span><span class="name"><span class="insert">'activity' ∈ typeOf(a1)</span></span><span class="insert">.
+
+
+
+</span></li><li>
+
+
+<span class="conditional"><span class="insert">IF</span></span> 
+   <span class="name"><span class="insert">wasEndedBy(id; a2,e,a1,t,attrs)</span></span>  
+<span class="conditional"><span class="insert">THEN</span></span> 
+<span class="name"><span class="insert">'activity' ∈ typeOf(a2)</span></span><span class="insert"> AND
+</span><span class="name"><span class="insert">'entity' ∈ typeOf(e)</span></span><span class="insert"> AND
+</span><span class="name"><span class="insert">'activity' ∈ typeOf(a1)</span></span><span class="insert">.
+
+
+
+</span></li><li>
+<span class="conditional"><span class="insert">IF</span></span> 
+   <span class="name"><span class="insert">wasInvalidatedBy(id; e,a,t,attrs)</span></span>  
+<span class="conditional"><span class="insert">THEN</span></span> 
+<span class="name"><span class="insert">'entity' ∈ typeOf(e)</span></span><span class="insert"> AND
+</span><span class="name"><span class="insert">'activity' ∈ typeOf(a)</span></span><span class="insert">.
+
+
+
+
+</span></li><li>
+<span class="conditional"><span class="insert">IF</span></span> 
+   <span class="name"><span class="insert">wasDerivedFrom(id;  e2, e1, a, g2, u1, attrs)</span></span>  
+<span class="conditional"><span class="insert">THEN</span></span> 
+<span class="name"><span class="insert">'entity' ∈ typeOf(e2)</span></span><span class="insert"> AND
+</span><span class="name"><span class="insert">'entity' ∈ typeOf(e1)</span></span><span class="insert"> AND
+</span><span class="name"><span class="insert">'activity' ∈ typeOf(a)</span></span><span class="insert">.
+   In this constraint, </span><span class="name"><span class="insert">a</span></span><span class="insert">, </span><span class="name"><span class="insert">g2</span></span><span class="insert">, and </span><span class="name"><span class="insert">u1</span></span> <em class="rfc2119" title="must not"><span class="insert">must not</span></em><span class="insert"> be placeholders.
+
+</span></li><li>
+<span class="conditional"><span class="insert">IF</span></span> 
+   <span class="name"><span class="insert">wasDerivedFrom(id;  e2, e1, -, -, -, attrs)</span></span>  
+<span class="conditional"><span class="insert">THEN</span></span> 
+<span class="name"><span class="insert">'entity' ∈ typeOf(e2)</span></span><span class="insert"> AND
+</span><span class="name"><span class="insert">'entity' ∈ typeOf(e1)</span></span><span class="insert">.
+
+</span></li><li>
+<span class="conditional"><span class="insert">IF</span></span> 
+   <span class="name"><span class="insert">wasAttributedTo(id; e,ag,attr)</span></span>  
+<span class="conditional"><span class="insert">THEN</span></span> 
+<span class="name"><span class="insert">'entity' ∈ typeOf(e)</span></span><span class="insert"> AND
+</span><span class="name"><span class="insert">'agent' ∈ typeOf(ag)</span></span><span class="insert">.
+
+
+</span></li><li>
+<span class="conditional"><span class="insert">IF</span></span> 
+   <span class="name"><span class="insert">wasAssociatedWith(id; a,ag,pl,attrs)</span></span>  
+<span class="conditional"><span class="insert">THEN</span></span> 
+<span class="name"><span class="insert">'activity' ∈ typeOf(a)</span></span><span class="insert"> AND
+</span><span class="name"><span class="insert">'agent' ∈ typeOf(ag)</span></span><span class="insert"> AND
+</span><span class="name"><span class="insert">'entity' ∈ typeOf(pl)</span></span><span class="insert">.  In this
+constraint, </span><span class="name"><span class="insert">pl</span></span> <em class="rfc2119" title="must not"><span class="insert">must not</span></em><span class="insert"> be a placeholder.
+
+</span></li><li>
+<span class="conditional"><span class="insert">IF</span></span> 
+   <span class="name"><span class="insert">wasAssociatedWith(id; a,ag,-,attrs)</span></span>  
+<span class="conditional"><span class="insert">THEN</span></span> 
+<span class="name"><span class="insert">'activity' ∈ typeOf(a)</span></span><span class="insert"> AND
+</span><span class="name"><span class="insert">'agent' ∈ typeOf(ag)</span></span><span class="insert">.
+
+
+
+
+</span></li><li>
+<span class="conditional"><span class="insert">IF</span></span> 
+   <span class="name"><span class="insert">actedOnBehalfOf(id; ag2,ag1,a,attrs)</span></span>  
+<span class="conditional"><span class="insert">THEN</span></span> 
+<span class="name"><span class="insert">'agent' ∈ typeOf(ag2)</span></span><span class="insert"> AND
+</span><span class="name"><span class="insert">'agent' ∈ typeOf(ag1)</span></span><span class="insert"> AND
+</span><span class="name"><span class="insert">'activity' ∈ typeOf(a)</span></span><span class="insert">.
+
+
+
+
+</span></li><li>
+<span class="conditional"><span class="insert">IF</span></span> 
+   <span class="name"><span class="insert">alternateOf(e2, e1)</span></span>  
+<span class="conditional"><span class="insert">THEN</span></span> 
+<span class="name"><span class="insert">'entity' ∈ typeOf(e2)</span></span><span class="insert"> AND
+</span><span class="name"><span class="insert">'entity' ∈ typeOf(e1)</span></span><span class="insert">.
+
+
+</span></li><li>
+<span class="conditional"><span class="insert">IF</span></span> 
+   <span class="name"><span class="insert">specializationOf(e2, e1)</span></span>  
+<span class="conditional"><span class="insert">THEN</span></span> 
+<span class="name"><span class="insert">'entity' ∈ typeOf(e2)</span></span><span class="insert"> AND
+</span><span class="name"><span class="insert">'entity' ∈ typeOf(e1)</span></span><span class="insert">.
+
+
+</span></li><li>
+<span class="conditional"><span class="insert">IF</span></span> 
+   <span class="name"><span class="insert">mentionOf(e2,e1,b)</span></span>  
+<span class="conditional"><span class="insert">THEN</span></span> 
+<span class="name"><span class="insert">'entity' ∈ typeOf(e2)</span></span><span class="insert"> AND
+</span><span class="name"><span class="insert">'entity' ∈ typeOf(e1)</span></span><span class="insert"> AND
+</span><span class="name"><span class="insert">'entity' ∈ typeOf(b)</span></span><span class="insert">.
+
+
+</span></li><li>
+
+<span class="conditional"><span class="insert">IF</span></span> 
+   <span class="name"><span class="insert">hadMember(c,e)</span></span>  
+<span class="conditional"><span class="insert">THEN</span></span> 
+<span class="name"><span class="insert">'prov:Collection' ∈ typeOf(c)</span></span><span class="insert"> AND
+</span><span class="name"><span class="insert">'entity' ∈ typeOf(c)</span></span><span class="insert"> AND
+</span><span class="name"><span class="insert">'entity' ∈ typeOf(e)</span></span><span class="insert">.
+
+
+</span></li><li>
+
+<span class="conditional"><span class="insert">IF</span></span> 
+   <span class="name"><span class="insert">entity(c,[prov:type='prov:EmptyCollection'])</span></span>  
+<span class="conditional"><span class="insert">THEN</span></span> 
+<span class="name"><span class="insert">'entity' ∈ typeOf(c)</span></span><span class="insert">  AND
+</span><span class="name"><span class="insert">'prov:Collection' ∈ typeOf(c)</span></span><span class="insert">AND
+</span><span class="name"><span class="insert">'prov:EmptyCollection' ∈ typeOf(c)</span></span><span class="insert">.
+
+</span></li></ol>
+</div>
+
+</div> 
+
+<div id="impossibility-constraints" class="section">
+<h3><span class="secno"><span class="insert">5.4 </span></span><span class="insert">Impossibility constraints</span></h3>
+
+<p><span class="insert"> Impossibility constraints require that certain patterns of
+statements never appear in </span><a href="#dfn-valid" class="internalDFN"><span class="insert">valid</span></a><span class="insert"> PROV instances.  Impossibility
+constraints have the following general form:
+</span></p>
+
+<div class="constraint-example" id="impossible-example"><div class="ruleTitle"><a class="internalDFN" href="#impossible-example"><span class="insert">Constraint-example NNN (impossible-example)</span></a></div>
+  <p><span class="conditional"><span class="insert">IF</span></span> <span class="name"><span class="insert">hyp</span><sub><span class="insert">1</span></sub></span><span class="insert"> and ... and  </span><span class="name"><span class="insert">hyp</span><sub><span class="insert">n</span></sub></span> <span class="conditional"><span class="insert">THEN</span></span> <span class="conditional"><span class="insert">INVALID</span></span><span class="insert">.</span></p>
+  </div>
+
+<p><span class="insert"> Checking an impossibility constraint on instance </span><span class="math"><span class="insert">I</span></span><span class="insert"> means  checking whether there is
+any way of matching the pattern </span><span class="name"><span class="insert">hyp</span><sub><span class="insert">1</span></sub></span><span class="insert">, ..., </span><span class="name"><span class="insert">hyp</span><sub><span class="insert">n</span></sub></span><span class="insert">.  If there
+is, then checking the constraint on </span><span class="math"><span class="insert">I</span></span><span class="insert"> fails (which implies that
+</span><span class="math"><span class="insert">I</span></span><span class="insert"> is invalid).
+
+
+</span></p><hr>
+
+<p id="impossible-unspecified-derivation-generation-use_text"><span class="insert">
+A derivation with unspecified activity </span><span class="name"><span class="insert">wasDerivedFrom(id;e1,e2,-,g,u,attrs)</span></span><span class="insert"> represents a derivation that
+    takes one or more steps, whose activity, generation and use events
+    are unspecified.  It is forbidden to specify a generation or use
+    event without specifying the activity.</span></p>
+
+        <div class="constraint" id="impossible-unspecified-derivation-generation-use"><div class="ruleTitle"><a class="internalDFN" href="#impossible-unspecified-derivation-generation-use"><span class="insert">Constraint 53 (impossible-unspecified-derivation-generation-use)</span></a></div>
+<p><span class="insert"> In the following rules, </span><span class="name"><span class="insert">g</span></span><span class="insert"> and </span><span class="name"><span class="insert">u</span></span> <em class="rfc2119" title="must not"><span class="insert">must not</span></em><span class="insert"> be </span><span class="name"><span class="insert">-</span></span><span class="insert">.</span></p>
+	  <ol>
+  <li> <span class="conditional"><span class="insert">IF</span></span>
+	    <span class="name"><span class="insert">wasDerivedFrom(_id;_e2,_e1,-,g,-,attrs)</span></span>
+	    <span class="conditional"><span class="insert">THEN</span></span> <span class="conditional"><span class="insert">INVALID</span></span><span class="insert">.</span></li>  <li> <span class="conditional"><span class="insert">IF</span></span>
+	    <span class="name"><span class="insert">wasDerivedFrom(_id;_e2,_e1,-,-,u,attrs)</span></span>
+	    <span class="conditional"><span class="insert">THEN</span></span> <span class="conditional"><span class="insert">INVALID</span></span><span class="insert">.</span></li>
+	      <li> <span class="conditional"><span class="insert">IF</span></span>
+	    <span class="name"><span class="insert">wasDerivedFrom(_id;_e2,_e1,-,g,u,attrs)</span></span>
+	    <span class="conditional"><span class="insert">THEN</span></span> <span class="conditional"><span class="insert">INVALID</span></span><span class="insert">.</span></li>
+	    </ol>
+    </div>   
 <hr>
 
-<p id="impossible-specialization-reflexive_text">As noted previously, specialization is a
-    <a href="#dfn-strict-partial-order" class="internalDFN">strict partial order</a>: it is <a href="#dfn-irreflexive" class="internalDFN">irreflexive</a> and
-    <a href="#dfn-transitive" class="internalDFN">transitive</a>.</p>
-
-        <div class="constraint" id="impossible-specialization-reflexive"><div class="ruleTitle"><a class="internalDFN" href="#impossible-specialization-reflexive">Constraint <span class="delete">51</span><span class="insert">50</span> (impossible-specialization-reflexive)</a></div>
-
-	  <p> <span class="conditional">IF</span> <span class="name">specializationOf(e,e)</span> <span class="conditional">THEN</span> <span class="conditional">INVALID</span>.</p>
+<p id="impossible-specialization-reflexive_text"><span class="insert">As noted previously, specialization is a
+    </span><a href="#dfn-strict-partial-order" class="internalDFN"><span class="insert">strict partial order</span></a><span class="insert">: it is </span><a href="#dfn-irreflexive" class="internalDFN"><span class="insert">irreflexive</span></a><span class="insert"> and
+    </span><a href="#dfn-transitive" class="internalDFN"><span class="insert">transitive</span></a><span class="insert">.</span></p>
+
+        <div class="constraint" id="impossible-specialization-reflexive"><div class="ruleTitle"><a class="internalDFN" href="#impossible-specialization-reflexive"><span class="insert">Constraint 54 (impossible-specialization-reflexive)</span></a></div>
+
+	  <p> <span class="conditional"><span class="insert">IF</span></span> <span class="name"><span class="insert">specializationOf(e,e)</span></span> <span class="conditional"><span class="insert">THEN</span></span> <span class="conditional"><span class="insert">INVALID</span></span><span class="insert">.</span></p>
     </div>
 
 
@@ -3224,625 +5273,1272 @@
   <hr>
 
 
-   <p id="impossible-property-overlap_text"> Furthermore,  identifiers
+   <p id="impossible-property-overlap_text"><span class="insert"> Furthermore,  identifiers
    of basic relationships are disjoint.
-  </p>
-  <div class="constraint" id="impossible-property-overlap"><div class="ruleTitle"><a class="internalDFN" href="#impossible-property-overlap">Constraint <span class="delete">52</span><span class="insert">51</span> (impossible-property-overlap)</a></div>
-  <p>
-For each <span class="name">r</span> and <span class="name">s</span>
+  </span></p>
+  <div class="constraint" id="impossible-property-overlap"><div class="ruleTitle"><a class="internalDFN" href="#impossible-property-overlap"><span class="insert">Constraint 55 (impossible-property-overlap)</span></a></div>
+  <p><span class="insert">
+For each </span><span class="name"><span class="insert">r</span></span><span class="insert"> and </span><span class="name"><span class="insert">s</span></span><span class="insert">
    in { 
-<span class="name">used</span>,
-<span class="name">wasGeneratedBy</span>,
-<span class="name">wasInvalidatedBy</span>,
-<span class="name">wasStartedBy</span>,
-<span class="name">wasEndedBy</span>,
-<span class="name">wasInformedBy</span>,
-<span class="name">wasAttributedTo</span>,
-<span class="name">wasAssociatedWith</span>,
-<span class="name">actedOnBehalfOf</span>} such that <span class="name">r</span> and <span class="name">s</span>
-   are different <span class="delete">relations,</span><span class="insert">relation names,</span> the
+</span><span class="name"><span class="insert">used</span></span><span class="insert">,
+</span><span class="name"><span class="insert">wasGeneratedBy</span></span><span class="insert">,
+</span><span class="name"><span class="insert">wasInvalidatedBy</span></span><span class="insert">,
+</span><span class="name"><span class="insert">wasStartedBy</span></span><span class="insert">,
+</span><span class="name"><span class="insert">wasEndedBy</span></span><span class="insert">,
+</span><span class="name"><span class="insert">wasInformedBy</span></span><span class="insert">,
+</span><span class="name"><span class="insert">wasAttributedTo</span></span><span class="insert">,
+</span><span class="name"><span class="insert">wasAssociatedWith</span></span><span class="insert">,
+</span><span class="name"><span class="insert">actedOnBehalfOf</span></span><span class="insert">} such that </span><span class="name"><span class="insert">r</span></span><span class="insert"> and </span><span class="name"><span class="insert">s</span></span><span class="insert">
+   are different relation names, the
   following constraint holds:
-</p>
+</span></p>
     <p>
-    <span class="conditional">IF</span> <span class="name"><span class="delete">r(id;a</span><span class="insert">r(id; a</span><sub>1</sub>,...,a<sub>n</sub>)</span> and <span class="name"><span class="delete">s(id;b</span><span class="insert">s(id; b</span><sub>1</sub>,...,b<sub>n</sub>)</span> <span class="conditional">THEN INVALID</span>.
-  </p>
+    <span class="conditional"><span class="insert">IF</span></span> <span class="name"><span class="insert">r(id; a</span><sub><span class="insert">1</span></sub><span class="insert">,...,a</span><sub><span class="insert">n</span></sub><span class="insert">)</span></span><span class="insert"> and </span><span class="name"><span class="insert">s(id; b</span><sub><span class="insert">1</span></sub><span class="insert">,...,b</span><sub><span class="insert">n</span></sub><span class="insert">)</span></span> <span class="conditional"><span class="insert">THEN INVALID</span></span><span class="insert">.
+  </span></p>
   </div>
 
   <div class="remark">
-    <p>Since <span class="name">wasInfluencedBy</span> is a superproperty of many other
+    <p><span class="insert">Since </span><span class="name"><span class="insert">wasInfluencedBy</span></span><span class="insert"> is a superproperty of many other
     properties, it is excluded from the set of properties whose
-    identifiers are required to be pairwise disjoint.<span class="insert">  The following
+    identifiers are required to be pairwise disjoint.  The following
     example illustrates this observation:
     </span></p><pre><span class="insert">wasInfluencedBy(id;e2,e1)
 wasDerivedFrom(id;e2,e1)
-</span></pre><span class="insert">
-    This satisfies the disjointness constraint.
-    </span><p></p>
+</span></pre>
+<p><span class="insert">    This satisfies the disjointness constraint.
+    </span></p>
     <p><span class="insert">There is, however, no
     constraint requiring that every influence relationship is
     accompanied by a more specific relationship having the same
     identifier.  The following valid example illustrates this observation:
     </span></p><pre><span class="insert">wasInfluencedBy(id; e2,e1)
-</span></pre><span class="insert">
-    This is valid; there is no inferrable information about what kind
+</span></pre>
+<p><span class="insert">    This is valid; there is no inferrable information about what kind
     of influence relates </span><span class="name"><span class="insert">e2</span></span><span class="insert"> and </span><span class="name"><span class="insert">e1</span></span><span class="insert">, other than its identity.
-    </span><p></p>
+    </span></p>
   </div>
 
-   <p id="impossible-object-property-overlap_text"> Identifiers of entities,
+   <p id="impossible-object-property-overlap_text"><span class="insert"> Identifiers of entities,
   agents and activities cannot also be identifiers of properties.
-  </p>
-  <div class="constraint" id="impossible-object-property-overlap"><div class="ruleTitle"><a class="internalDFN" href="#impossible-object-property-overlap">Constraint <span class="delete">53</span><span class="insert">52</span> (impossible-object-property-overlap)</a></div>
-  <p>
-For each <span class="name"><span class="delete">r</span><span class="insert">p</span></span> in <span class="insert">{</span><span class="name">entity</span>, <span class="name">activity</span>
-   or <span class="name">agent</span><span class="insert">}</span> and for each  <span class="name"><span class="delete">s</span><span class="insert">r</span></span> in { 
-<span class="name">used</span>,
-<span class="name">wasGeneratedBy</span>,
-<span class="name">wasInvalidatedBy</span>,
-<span class="name">wasInfluencedBy</span>,
-<span class="name">wasStartedBy</span>,
-<span class="name">wasEndedBy</span>,
-<span class="name">wasInformedBy</span>,
-<span class="name">wasDerivedFrom</span>,
-<span class="name">wasAttributedTo</span>,
-<span class="name">wasAssociatedWith</span>,
-<span class="name">actedOnBehalfOf</span>}, the following
-  impossibility constraint holds:</p>
-
-<p>    <span class="conditional">IF</span> <span class="name"><span class="delete">r(id,a</span><span class="insert">p(id,a</span><sub>1</sub>,...,a<sub>n</sub>)</span> and
-  <span class="name"><span class="delete">s(id;b</span><span class="insert">r(id; b</span><sub>1</sub>,...,b<sub>n</sub>)</span> <span class="conditional">THEN INVALID</span>.
-  </p>
+  </span></p>
+  <div class="constraint" id="impossible-object-property-overlap"><div class="ruleTitle"><a class="internalDFN" href="#impossible-object-property-overlap"><span class="insert">Constraint 56 (impossible-object-property-overlap)</span></a></div>
+  <p><span class="insert">
+For each </span><span class="name"><span class="insert">p</span></span><span class="insert"> in {</span><span class="name"><span class="insert">entity</span></span><span class="insert">, </span><span class="name"><span class="insert">activity</span></span><span class="insert">
+   or </span><span class="name"><span class="insert">agent</span></span><span class="insert">} and for each  </span><span class="name"><span class="insert">r</span></span><span class="insert"> in { 
+</span><span class="name"><span class="insert">used</span></span><span class="insert">,
+</span><span class="name"><span class="insert">wasGeneratedBy</span></span><span class="insert">,
+</span><span class="name"><span class="insert">wasInvalidatedBy</span></span><span class="insert">,
+</span><span class="name"><span class="insert">wasInfluencedBy</span></span><span class="insert">,
+</span><span class="name"><span class="insert">wasStartedBy</span></span><span class="insert">,
+</span><span class="name"><span class="insert">wasEndedBy</span></span><span class="insert">,
+</span><span class="name"><span class="insert">wasInformedBy</span></span><span class="insert">,
+</span><span class="name"><span class="insert">wasDerivedFrom</span></span><span class="insert">,
+</span><span class="name"><span class="insert">wasAttributedTo</span></span><span class="insert">,
+</span><span class="name"><span class="insert">wasAssociatedWith</span></span><span class="insert">,
+</span><span class="name"><span class="insert">actedOnBehalfOf</span></span><span class="insert">}, the following
+  impossibility constraint holds:</span></p>
+
+<p>    <span class="conditional"><span class="insert">IF</span></span> <span class="name"><span class="insert">p(id,a</span><sub><span class="insert">1</span></sub><span class="insert">,...,a</span><sub><span class="insert">n</span></sub><span class="insert">)</span></span><span class="insert"> and
+  </span><span class="name"><span class="insert">r(id; b</span><sub><span class="insert">1</span></sub><span class="insert">,...,b</span><sub><span class="insert">n</span></sub><span class="insert">)</span></span> <span class="conditional"><span class="insert">THEN INVALID</span></span><span class="insert">.
+  </span></p>
   </div>
 
   
 
-</div> 
-
-<div id="type-constraints" class="section">
-<h3><span class="secno">5.4 </span>Type Constraints</h3>
-
-<p id="typing_text">The following rule  establishes types denoted by identifiers from their use within expressions. 
-<span class="delete">For this, the</span><span class="insert">The</span> function <span class="name">typeOf</span> gives the set of types denoted by an identifier.
-<span class="delete">For example,</span><span class="insert">That is,</span>  <span class="name">typeOf(e)</span> returns the set of types associated with identifier  <span class="name">e</span>. The function <span class="name">typeOf</span> is not a term of PROV, but a construct introduced to validate PROV statements. 
-</p>
-
-
-
-
-<p>
- For any identifier  <span class="name">id</span>,  <span class="name">typeOf(id)</span>  is a subset of {<span class="name">'entity'</span>, <span class="name">'activity'</span>, <span class="name">'agent'</span>, <span class="name">'prov:Collection'</span>, <span class="name">'prov:EmptyCollection'</span>}.
-For identifiers that do not have a type,  <span class="name">typeOf</span> gives the empty set.<span class="insert">
-  Identifiers can have more than one type, because of subtyping
- (e.g. </span><span class="name"><span class="insert">'prov:EmptyCollection'</span></span><span class="insert"> is a subtype of </span><span class="name"><span class="insert">'prov:Collection'</span></span><span class="insert">) or because certain types are not
- disjoint (such as </span><span class="name"><span class="insert">'agent'</span></span><span class="insert"> and </span><span class="name"><span class="insert">'entity'</span></span><span class="insert">). The set of types
- does not reflect all of the distinctions among objects, only those
- relevant for checking validity.  In particular, subtypes such as
- </span><span class="name"><span class="insert">'plan'</span></span><span class="insert"> are omitted.</span>
-</p>
-
-<p>To check if a PROV instance satisfies type constraints, one obtains the types of identifiers by application of
-<a class="rule-ref" href="#typing"><span>Constraint <span class="delete">54</span><span class="insert">53</span> (typing)</span></a>
-and check <span class="delete">no</span><span class="insert">that none of the</span> impossibility <span class="delete">results from rules
-</span><span class="insert">constraints 
-</span><a class="rule-ref" href="#entity-activity-disjoint"><span>Constraint <span class="delete">55</span><span class="insert">54</span> (entity-activity-disjoint)</span></a> and
-<a class="rule-ref" href="#membership-empty-collection"><span>Constraint <span class="delete">56</span><span class="insert">55</span> (membership-empty-collection)</span></a><span class="delete">.</span><span class="insert"> are
-  violated as a result.</span></p>
-
-
-<div class="constraint" id="typing"><div class="ruleTitle"><a class="internalDFN" href="#typing">Constraint <span class="delete">54</span><span class="insert">53</span> (typing)</a></div>
-
-
-<ol>
-<li>
-<span class="conditional">IF</span> 
-   <span class="name"><span class="delete">wasGeneratedBy(gen;e,a,t,attrs)</span><span class="insert">wasGeneratedBy(gen; e,a,t,attrs)</span></span>  
-<span class="conditional">THEN</span> 
-<span class="name">'entity' ∈ typeOf(e)</span> AND
-<span class="name">'activity' ∈ typeOf(a)</span>.
-
-
-</li><li>
-<span class="conditional">IF</span> 
-   <span class="name">entity(e,attrs)</span>  
-<span class="conditional">THEN</span> 
-<span class="name">'entity' ∈ typeOf(e)</span>.
-</li><li>
-<span class="conditional">IF</span> 
-   <span class="name">agent(ag,attrs)</span>  
-<span class="conditional">THEN</span> 
-<span class="name">'agent' ∈ typeOf(ag)</span>.
-</li><li>
-<span class="conditional">IF</span> 
-   <span class="name">activity(a,attrs)</span>  
-<span class="conditional">THEN</span> 
-<span class="name">'activity' ∈ typeOf(a)</span>.
-
-
-</li><li>
-
-<span class="conditional">IF</span> 
-   <span class="name"><span class="delete">used(u;a,e,t,attrs)</span><span class="insert">used(u; a,e,t,attrs)</span></span>  
-<span class="conditional">THEN</span> 
-<span class="name">'activity' ∈ typeOf(a)</span> AND
-<span class="name">'entity' ∈ typeOf(e)</span>.
-
-
-</li><li>
-
-<span class="conditional">IF</span> 
-   <span class="name"><span class="delete">wasInformedBy(id;a2,a1,attrs)</span><span class="insert">wasInformedBy(id; a2,a1,attrs)</span></span>  
-<span class="conditional">THEN</span> 
-<span class="name">'activity' ∈ typeOf(a2)</span> AND
-<span class="name">'activity' ∈ typeOf(a1)</span>.
-
-</li><li>
-
-<span class="conditional">IF</span> 
-   <span class="name"><span class="delete">wasStartedBy(id;a2,e,a1,t,attrs)</span><span class="insert">wasStartedBy(id; a2,e,a1,t,attrs)</span></span>  
-<span class="conditional">THEN</span> 
-<span class="name">'activity' ∈ typeOf(a2)</span> AND
-<span class="name">'entity' ∈ typeOf(e)</span> AND
-<span class="name">'activity' ∈ typeOf(a1)</span>.
-
-
-
-</li><li>
-
-
-<span class="conditional">IF</span> 
-   <span class="name"><span class="delete">wasEndedBy(id;a2,e,a1,t,attrs)</span><span class="insert">wasEndedBy(id; a2,e,a1,t,attrs)</span></span>  
-<span class="conditional">THEN</span> 
-<span class="name">'activity' ∈ typeOf(a2)</span> AND
-<span class="name">'entity' ∈ typeOf(e)</span> AND
-<span class="name">'activity' ∈ typeOf(a1)</span>.
-
-
-
-</li><li>
-<span class="conditional">IF</span> 
-   <span class="name"><span class="delete">wasInvalidatedBy(id;e,a,t,attrs)</span><span class="insert">wasInvalidatedBy(id; e,a,t,attrs)</span></span>  
-<span class="conditional">THEN</span> 
-<span class="name">'entity' ∈ typeOf(e)</span> AND
-<span class="name">'activity' ∈ typeOf(a)</span>.
-
-
-
-
-</li><li>
-<span class="conditional">IF</span> 
-   <span class="name">wasDerivedFrom(id;   e2, e1, a, g2, u1, attrs)</span>  
-<span class="conditional">THEN</span> 
-<span class="name">'entity' ∈ typeOf(e2)</span> AND
-<span class="name">'entity' ∈ typeOf(e1)</span> AND
-<span class="name">'activity' ∈ typeOf(a)</span><span class="insert">.
-
-</span></li><li>
-<span class="conditional"><span class="insert">IF</span></span> 
-   <span class="name"><span class="insert">wasDerivedFrom(id;  e2, e1, -, -, -, attrs)</span></span>  
-<span class="conditional"><span class="insert">THEN</span></span> 
-<span class="name"><span class="insert">'entity' ∈ typeOf(e2)</span></span><span class="insert"> AND
-</span><span class="name"><span class="insert">'entity' ∈ typeOf(e1)</span></span><span class="insert"> AND
-</span><span class="name"><span class="insert">'activity' ∈ typeOf(a)</span></span><span class="insert">.
-
-</span></li><li>
-<span class="conditional"><span class="insert">IF</span></span> 
-   <span class="name"><span class="insert">wasAttributedTo(id; e,ag,attr)</span></span>  
-<span class="conditional"><span class="insert">THEN</span></span> 
-<span class="name"><span class="insert">'entity' ∈ typeOf(e)</span></span><span class="insert"> AND
-</span><span class="name"><span class="insert">'agent' ∈ typeOf(ag)</span></span>.
-
-
-</li><li>
-<span class="conditional">IF</span> 
-   <span class="name"><span class="delete">wasAttributedTo(id;e,ag,attr)</span><span class="insert">wasAssociatedWith(id; a,ag,pl,attrs)</span></span>  
-<span class="conditional">THEN</span> 
-<span class="name"><span class="insert">'activity' ∈ typeOf(a)</span></span><span class="insert"> AND
-</span><span class="name"><span class="insert">'agent' ∈ typeOf(ag)</span></span><span class="insert"> AND
-</span><span class="name">'entity' ∈ <span class="delete">typeOf(e)</span><span class="delete"> AND
-</span><span class="delete">'agent' ∈ typeOf(ag)</span><span class="insert">typeOf(pl)</span></span>.
-
-
-
-
-</li><li>
-<span class="conditional">IF</span> 
-   <span class="name"><span class="delete">wasAssociatedWith(id;a,ag,pl,attrs)</span><span class="insert">wasAssociatedWith(id; a,ag,-,attrs)</span></span>  
-<span class="conditional">THEN</span> 
-<span class="name">'activity' ∈ typeOf(a)</span> AND
-<span class="name">'agent' ∈ typeOf(ag)<span class="delete"> AND
-</span><span class="delete">'entity' ∈ typeOf(pl)</span></span>.
-
-
-
-
-</li><li>
-<span class="conditional">IF</span> 
-   <span class="name"><span class="delete">actedOnBehalfOf(id;ag2,ag1,a,attrs)</span><span class="insert">actedOnBehalfOf(id; ag2,ag1,a,attrs)</span></span>  
-<span class="conditional">THEN</span> 
-<span class="name">'agent' ∈ typeOf(ag2)</span> AND
-<span class="name">'agent' ∈ typeOf(ag1)</span> AND
-<span class="name">'activity' ∈ typeOf(a)</span>.
-
-
-
-
-</li><li>
-<span class="conditional">IF</span> 
-   <span class="name">alternateOf(e2, e1)</span>  
-<span class="conditional">THEN</span> 
-<span class="name">'entity' ∈ typeOf(e2)</span> AND
-<span class="name">'entity' ∈ typeOf(e1)</span>.
-
-
-</li><li>
-<span class="conditional">IF</span> 
-   <span class="name">specializationOf(e2, e1)</span>  
-<span class="conditional">THEN</span> 
-<span class="name">'entity' ∈ typeOf(e2)</span> AND
-<span class="name">'entity' ∈ typeOf(e1)</span>.
-
-
-</li><li>
-<span class="conditional">IF</span> 
-   <span class="name">mentionOf(e2,e1,b)</span>  
-<span class="conditional">THEN</span> 
-<span class="name">'entity' ∈ typeOf(e2)</span> AND
-<span class="name">'entity' ∈ typeOf(e1)</span> AND
-<span class="name">'entity' ∈ typeOf(b)</span>.
-
-
-</li><li>
-
-<span class="conditional">IF</span> 
-   <span class="name">hadMember(c,e)</span>  
-<span class="conditional">THEN</span> 
-<span class="name">'prov:Collection' ∈ typeOf(c)</span> AND
-<span class="name">'entity' ∈ typeOf(c)</span> AND
-<span class="name">'entity' ∈ typeOf(e)</span>.
-
-
-</li><li>
-
-<span class="conditional">IF</span> 
-   <span class="name">entity(c,[prov:type='prov:EmptyCollection'])</span>  
-<span class="conditional">THEN</span> 
-<span class="name">'entity' ∈ typeOf(c)</span>  AND
-<span class="name"><span class="insert">'prov:Collection' ∈ typeOf(c)</span></span><span class="insert">AND
-</span><span class="name">'prov:EmptyCollection' ∈ typeOf(c)</span>.
-
-</li></ol>
-</div>
-
 
    <hr>
-   <p id="entity-activity-disjoint_text">   The set of entities and activities are disjoint, expressed by 
+   <p id="entity-activity-disjoint_text"><span class="insert">   The set of entities and activities are disjoint, expressed by 
   the following constraint:
-  </p>
-  <div class="constraint" id="entity-activity-disjoint"><div class="ruleTitle"><a class="internalDFN" href="#entity-activity-disjoint">Constraint <span class="delete">55</span><span class="insert">54</span> (entity-activity-disjoint)</a></div>
+  </span></p>
+  <div class="constraint" id="entity-activity-disjoint"><div class="ruleTitle"><a class="internalDFN" href="#entity-activity-disjoint"><span class="insert">Constraint 57 (entity-activity-disjoint)</span></a></div>
 
     
 <p>
- <span class="conditional">IF</span>
-<span class="name">'entity' ∈ typeOf(id)</span>  AND
-<span class="name">'activity' ∈ typeOf(id)</span>
-<span class="conditional">THEN</span> <span class="conditional">INVALID</span>.</p>
+ <span class="conditional"><span class="insert">IF</span></span>
+<span class="name"><span class="insert">'entity' ∈ typeOf(id)</span></span><span class="insert">  AND
+</span><span class="name"><span class="insert">'activity' ∈ typeOf(id)</span></span>
+<span class="conditional"><span class="insert">THEN</span></span> <span class="conditional"><span class="insert">INVALID</span></span><span class="insert">.</span></p>
  </div>
-	<div class="remark">
-	<span class="delete">Note that there</span><span class="insert">There</span> is no disjointness between entities and agents. This is because one might want to make statements about the provenance of an agent, by making it an entity. 
-	<span class="delete">Therefore, users </span><span class="insert">For example, one can assert both </span><span class="name"><span class="insert">entity(a1)</span></span><span class="insert"> and </span><span class="name"><span class="insert">agent(a1)</span></span><span class="insert"> in a valid PROV instance.
+	<div class="remark"><span class="insert">
+	There is no disjointness between entities and agents. This is because one might want to make statements about the provenance of an agent, by making it an entity. 
+	For example, one can assert both </span><span class="name"><span class="insert">entity(a1)</span></span><span class="insert"> and </span><span class="name"><span class="insert">agent(a1)</span></span><span class="insert"> in a valid PROV instance.
 	  Similarly, there is no disjointness between activities and
  agents, and one can assert both </span><span class="name"><span class="insert">activity(a1)</span></span><span class="insert"> and </span><span class="name"><span class="insert">agent(a1)</span></span><span class="insert"> in a valid PROV instance. 
- However, one should keep in mind that some specific types of agents </span>may<span class="delete"> assert</span><span class="insert"> not be suitable as activities. 
- For example, asserting statements such as </span><span class="name"><span class="insert">agent(Bob, [type=prov:Person])</span></span><span class="insert"> and </span><span class="name"><span class="insert">activity(Bob)</span></span><span class="insert"> is discouraged. In these cases, disjointness can be ensured by explicitly asserting the agent as</span> both <span class="delete">entity(a1)</span><span class="delete"> and </span><span class="delete">agent(a1)</span><span class="delete"> in a valid PROV instance. 
-
-  </span><span class="insert">agent and entity, and applying </span><a class="rule-ref" href="#entity-activity-disjoint"><span><span class="insert">Constraint 54 (entity-activity-disjoint)</span></span></a><span class="insert">.
+ However, one should keep in mind that some specific types of agents may not be suitable as activities. 
+ For example, asserting statements such as </span><span class="name"><span class="insert">agent(Bob, [type=prov:Person])</span></span><span class="insert"> and </span><span class="name"><span class="insert">activity(Bob)</span></span><span class="insert"> is discouraged. In these cases, disjointness can be ensured by explicitly asserting the agent as both agent and entity, and applying </span><a class="rule-ref" href="#entity-activity-disjoint"><span><span class="insert">Constraint 57 (entity-activity-disjoint)</span></span></a><span class="insert">.
   </span></div>
 
 
    <hr>
-   <p id="membership-empty-collection_text"> An empty collection cannot contain any member, expressed by
+   <p id="membership-empty-collection_text"><span class="insert"> An empty collection cannot contain any member, expressed by
   the following constraint:
-  </p>
-  <div class="constraint" id="membership-empty-collection"><div class="ruleTitle"><a class="internalDFN" href="#membership-empty-collection">Constraint <span class="delete">56</span><span class="insert">55</span> (membership-empty-collection)</a></div>
-<p> <span class="conditional">IF</span> 
- <span class="name">hasMember(c,e)</span> and
-<span class="name">'prov:EmptyCollection' ∈ typeOf(c)</span>
-<span class="conditional">THEN</span> <span class="conditional">INVALID</span>.</p>
+  </span></p>
+  <div class="constraint" id="membership-empty-collection"><div class="ruleTitle"><a class="internalDFN" href="#membership-empty-collection"><span class="insert">Constraint 58 (membership-empty-collection)</span></a></div>
+<p> <span class="conditional"><span class="insert">IF</span></span> 
+ <span class="name"><span class="insert">hasMember(c,e)</span></span><span class="insert"> and
+</span><span class="name"><span class="insert">'prov:EmptyCollection' ∈ typeOf(c)</span></span>
+<span class="conditional"><span class="insert">THEN</span></span> <span class="conditional"><span class="insert">INVALID</span></span><span class="insert">.</span></p>
   </div>
 
 
-</div>
+ 
+</div> 
 
 
 </div> 
 
   <div id="normalization-validity-equivalence" class="section">
-<h2><span class="secno">6. </span>Normalization, Validity, and Equivalence</h2>
-
-
-  <p>We define the notions of <a title="normal form" href="#dfn-normal-form" class="internalDFN">normalization</a>, <a title="valid" href="#dfn-valid" class="internalDFN">validity</a> and
-<a title="equivalence">equivalence</a> of PROV instances.  We first define these concepts
-for PROV instances that consist of a single, unnamed <a>bundle</a> of
-statements, called the <dfn id="dfn-toplevel-bundle">toplevel bundle</dfn>.</p>
-
-
-
-
-
+<h2><span class="secno">6. </span><span class="delete">Collection Constraints</span><span class="insert">Normalization, Validity, and Equivalence</span></h2>
+<span class="delete">
+  Work on collections and on</span>
+
+
+  <p><span class="insert">We define the notions of </span><a title="normal form" href="#dfn-normal-form" class="internalDFN"><span class="insert">normalization</span></a><span class="insert">, </span><a title="valid" href="#dfn-valid" class="internalDFN"><span class="insert">validity</span></a><span class="insert"> and
+</span><a title="equivalence"><span class="insert">equivalence</span></a><span class="insert"> of PROV documents and instances.  We first define</span> these <span class="delete">constraints is deferred until after
+  the next working draft, so this section may not be stable.
+  </span>
+  
+<span class="delete">Membership is a convenience notation, since it can be expressed in terms of an insertion into some collection. The membership definition is formalized by constraint </span><span class="delete">membership-as-insertion</span><span class="delete">.</span><span class="insert">concepts
+for PROV instances and then extend them to PROV documents.</span></p>
+
+
+ <span class="delete">memberOf(c, {(k1, v1), ...})</span><span class="delete"> holds
+</span><span class="delete">IF AND ONLY IF</span><span class="delete"> there exists</span><div id="instance" class="section">
+  <h3><span class="secno"><span class="insert">6.1 </span></span><span class="insert">Instances</span></h3>
+  
 <div class="remark"><span class="insert">
-
   Implementations should decide up front what reasoning about
-  coreference should be applied, and rewrite the instance (by
-  replacing coreferent identifiers with a single common identifier) to
+  co-reference should be applied, and rewrite the instance (by
+  replacing co-referent identifiers with</span> a <span class="delete">collection </span><span class="delete">c0</span><span class="delete">, such</span><span class="insert">single common identifier) to
   make this explicit, before doing validation, equivalence checking,
   or normalization.
-  All of the following definitions assume that the application has
+  All of the following definitions assume</span> that
+<span class="delete">derivedByInsertionFrom(c, c0, {(k1, v1), ...})</span><span class="delete">.
+</span><span class="insert"> the application has
   already determined which URIs in the PROV instance are co-referent
   (e.g. </span><span class="name"><span class="insert">owl:sameAs</span></span><span class="insert"> as a result of OWL
   reasoning).
   </span></div>
 
-<p> We define the <dfn id="dfn-normal-form">normal form</dfn> of a PROV instance as the set
-of provenance statements resulting from <span class="delete">merging to resolve</span><span class="insert">applying</span> all
-<span class="insert"> definitions,
-  inferences, and </span>uniqueness <span class="delete">constraints in the instance and applying all possible
-inference rules to this set. </span><span class="insert">constraints.</span></p>
+<p><span class="insert"> We define the </span><dfn id="dfn-normal-form"><span class="insert">normal form</span></dfn><span class="insert"> of a PROV instance as the set
+of provenance statements resulting from applying all definitions,
+  inferences, and uniqueness constraints.</span></p>
 
 
 
   <ol>
-    <li>
-    Apply all definitions to <span class="math">I</span> by replacing each defined statement by its
+    <li><span class="insert">
+    Apply all definitions to </span><span class="math"><span class="insert">I</span></span><span class="insert"> by replacing each defined statement by its
     definition (possibly introducing fresh existential variables in
-    the process), yielding an instance <span class="math">I<sub>1</sub></span>.
-    </li>
-  <li>
-    Apply all inferences to <span class="math">I<sub>1</sub></span> by adding the conclusion of each inference
-    whose hypotheses are satisfied and whose entire <span class="delete">conclusions do</span><span class="insert">conclusion does</span> not
+    the process), yielding an instance </span><span class="math"><span class="insert">I</span><sub><span class="insert">1</span></sub></span><span class="insert">.
+    </span></li>
+  <li><span class="insert">
+    Apply all inferences to </span><span class="math"><span class="insert">I</span><sub><span class="insert">1</span></sub></span><span class="insert"> by adding the conclusion of each inference
+    whose hypotheses are satisfied and whose entire conclusion does not
     already hold (again, possibly introducing fresh existential
-    variables), yielding an instance <span class="math">I<sub>2</sub></span>.
-    </li>
-  <li>
-    Apply all uniqueness constraints to <span class="math">I<sub>2</sub></span> by merging terms or statements
+    variables), yielding an instance </span><span class="math"><span class="insert">I</span><sub><span class="insert">2</span></sub></span><span class="insert">.
+    </span></li>
+  <li><span class="insert">
+    Apply all uniqueness constraints to </span><span class="math"><span class="insert">I</span><sub><span class="insert">2</span></sub></span><span class="insert"> by merging terms or statements
     and applying the resulting substitution to the instance, yielding
-    an instance <span class="math">I<sub>3</sub></span>.  If some uniqueness constraint cannot be
+    an instance </span><span class="math"><span class="insert">I</span><sub><span class="insert">3</span></sub></span><span class="insert">.  If some uniqueness constraint cannot be
     applied, then normalization fails.
-    </li>
-    <li>If no definitions, inferences, or uniqueness constraints can be applied to instance <span class="math">I<sub>3</sub></span>, then <span class="math">I<sub>3</sub></span> is the
-    normal form of <span class="math">I</span>.</li>
-    <li>Otherwise, the normal form of <span class="math">I</span> is the same as the normal form
-    of <span class="math">I<sub>3</sub></span> (that is, proceed by recursively normalizing <span class="math">I<sub>3</sub></span>).
- </li></ol>
+    </span></li>
+    <li><span class="insert">If no definitions, inferences, or uniqueness constraints can be applied to instance </span><span class="math"><span class="insert">I</span><sub><span class="insert">3</span></sub></span><span class="insert">, then </span><span class="math"><span class="insert">I</span><sub><span class="insert">3</span></sub></span><span class="insert"> is the
+    normal form of </span><span class="math"><span class="insert">I</span></span><span class="insert">.</span></li>
+    <li><span class="insert">Otherwise, the normal form of </span><span class="math"><span class="insert">I</span></span><span class="insert"> is the same as the normal form
+    of </span><span class="math"><span class="insert">I</span><sub><span class="insert">3</span></sub></span><span class="insert"> (that is, proceed by recursively normalizing </span><span class="math"><span class="insert">I</span><sub><span class="insert">3</span></sub></span><span class="insert">).
+ </span></li></ol>
  
-<p>Because of the potential interaction among <span class="insert">definitions, </span>inferences,<span class="delete"> definitions</span> and
+<p><span class="insert">Because of the potential interaction among definitions, inferences, and
   constraints, the above algorithm is recursive.  Nevertheless,
-  all of our constraints fall into a class of <a>tuple-generating
-  dependencies</a> and <a>equality-generating dependencies</a> that
-  satisfy a termination condition called <a>weak acyclicity</a> that
+  all of our constraints fall into a class of </span><a><span class="insert">tuple-generating
+  dependencies</span></a><span class="insert"> and </span><a><span class="insert">equality-generating dependencies</span></a><span class="insert"> that
+  satisfy a termination condition called </span><a><span class="insert">weak acyclicity</span></a><span class="insert"> that
   has been studied in the context of relational databases
-  [<cite><a class="bibref" rel="biblioentry" href="#bib-DBCONSTRAINTS">DBCONSTRAINTS</a></cite>].  Therefore, the above algorithm terminates, independently
+  [</span><cite><a class="bibref" rel="biblioentry" href="#bib-DBCONSTRAINTS"><span class="insert">DBCONSTRAINTS</span></a></cite><span class="insert">].  Therefore, the above algorithm terminates, independently
   of the order in which inferences and constraints are applied.
-  <a href="#termination">Appendix C</a> gives a proof that normalization terminates and produces
+  </span><a href="#termination"><span class="insert">Appendix C</span></a><span class="insert"> gives a proof that normalization terminates and produces
   a unique (up to isomorphism) normal form.
-</p>
+</span></p>
   
  <p>
- A PROV instance is <dfn id="dfn-valid">valid</dfn>
+ A <span class="delete">collection may</span><span class="insert">PROV instance is </span><dfn id="dfn-valid"><span class="insert">valid</span></dfn><span class="insert">
 if its normal form exists and satisfies all of
   the validity constraints; this implies that the instance satisfies
-  all of the <span class="insert">definitions, </span>inferences,<span class="delete"> definitions</span> and constraints.  
-  The following algorithm can be used to test
-  validity:</p>
+  all of the definitions, inferences, and constraints.  
+  The following algorithm can</span> be <span class="insert">used to test
+  validity:</span></p>
 
 <ol>
-  <li>Normalize the <span class="delete">instance,</span><span class="insert">instance #</span><i><span class="insert">#,</span> obtaining normalized instance <span class="math">I'</span>.  If
-  normalization fails, then <span class="math">I</span> is not <a href="#dfn-valid" class="internalDFN">valid</a>.
-  </i></li><i>
-  <li>Apply all event ordering constraints to <span class="math">I'</span> to build a graph <span class="math">G</span> whose nodes
+  <li><span class="insert">Normalize the instance </span><span class="math"><span class="insert">I</span></span><span class="insert">, obtaining normalized instance </span><span class="math"><span class="insert">I'</span></span><span class="insert">.  If
+  normalization fails, then </span><span class="math"><span class="insert">I</span></span><span class="insert"> is not </span><a href="#dfn-valid" class="internalDFN"><span class="insert">valid</span></a><span class="insert">.
+  </span></li>
+  <li><span class="insert">Apply all event ordering constraints to </span><span class="math"><span class="insert">I'</span></span><span class="insert"> to build a graph </span><span class="math"><span class="insert">G</span></span><span class="insert"> whose nodes
   are event identifiers and edges
   are labeled by "precedes" 
-  and "strictly precedes" relationships among events induced by the constraints.</li>
-  <li> Determine whether there is a cycle in <span class="math">G</span> that contains a
-  "strictly precedes" edge.  If so, then <span class="math">I</span> is not <a href="#dfn-valid" class="internalDFN">valid</a>.  
-  </li>
-  <li>
-  <span class="insert">Apply the type constraints </span><a href="#type-constraints"><span class="insert">(section
+  and "strictly precedes" relationships among events induced by the constraints.</span></li>
+  <li><span class="insert"> Determine whether there is a cycle in </span><span class="math"><span class="insert">G</span></span><span class="insert"> that contains a
+  "strictly precedes" edge.  If so, then </span><span class="math"><span class="insert">I</span></span><span class="insert"> is not </span><a href="#dfn-valid" class="internalDFN"><span class="insert">valid</span></a><span class="insert">.  
+  </span></li>
+  <li><span class="insert">Apply the type constraints </span><a href="#type-constraints"><span class="insert">(section
   5.3)</span></a><span class="insert"> to determine whether there are any violations of
-  disjointness.  </span>If <span class="delete">no
-  such cycle exists, and</span><span class="insert">so, then </span><span class="math"><span class="insert">I</span></span><span class="insert"> is not </span><a href="#dfn-valid" class="internalDFN"><span class="insert">valid</span></a><span class="insert">.  
+  disjointness.  If so, then </span><span class="math"><span class="insert">I</span></span><span class="insert"> is not </span><a href="#dfn-valid" class="internalDFN"><span class="insert">valid</span></a><span class="insert">.  
   </span></li><li><span class="insert">
-  Check that</span> none of the impossibility constraints <a href="#impossibility-constraints">(section <span class="delete">5.3)</span><span class="insert">5.4)</span></a>  <span class="delete">and type constraints </span><span class="delete">(section 5.4)</span> are
-  <span class="insert">violated.  If any are </span>violated, then <span class="math">I</span> is<span class="insert">
-  not</span> <a href="#dfn-valid" class="internalDFN">valid</a>.
-  <span class="insert">  Otherwise, #</span><i><span class="insert"># is </span><a href="#dfn-valid" class="internalDFN"><span class="insert">valid</span></a>
-  </i></li>
-  <i>
-  </i></i></ol><i><i>
-
-<p>A normal form of a PROV instance <span class="delete">may</span><span class="insert">does</span> not exist when a uniqueness constraint fails due to merging failure. </p>
-
-
-  <p>Two PROV instances are <dfn id="dfn-equivalent">equivalent</dfn> if they have <span class="delete">the
-</span>isomorphic normal forms (that is, after applying all possible inference
+  Check that none of the impossibility constraints </span><a href="#impossibility-constraints"><span class="insert">(section 5.4)</span></a><span class="insert">  are
+  violated.  If any are violated, then </span><span class="math"><span class="insert">I</span></span><span class="insert"> is
+  not </span><a href="#dfn-valid" class="internalDFN"><span class="insert">valid</span></a><span class="insert">.  Otherwise, </span><span class="math"><span class="insert">I</span></span><span class="insert"> is </span><a href="#dfn-valid" class="internalDFN"><span class="insert">valid</span></a>
+  </li>
+  </ol>
+
+<p><span class="insert">A normal form of a PROV instance does not exist when a uniqueness constraint fails due to merging failure. </span></p>
+
+
+  <p><span class="insert">Two PROV instances are </span><dfn id="dfn-equivalent"><span class="insert">equivalent</span></dfn><span class="insert"> if they have isomorphic normal forms (that is, after applying all possible inference
 rules, the two instances produce the same set of PROV statements,
 up to reordering of statements and attributes within attribute lists,
   and renaming of existential variables).
-Equivalence has the following characteristics: </p>
+Equivalence has the following characteristics: </span></p>
 
 <ul>
-  <li>
+  <li><span class="insert">
   The order of provenance statements is irrelevant to the meaning of
   a PROV instance.  That is, a
-  PROV instance is equivalent to any other instance obtained by<span class="delete">
-  permuting</span><span class="insert">
-reordering</span> its statements.
-  </li>
-  <li>The order of attribute-value pairs in attribute lists is
+  PROV instance is equivalent to any other instance </span>obtained by<span class="delete"> insertion</span><span class="insert">
+reordering its statements.
+  </span></li>
+  <li><span class="insert">The order of attribute-value pairs in attribute lists is
   irrelevant to the meaning of a PROV statement.  That is, a PROV
   statement carrying attributes is equivalent to any other statement
-  obtained by <span class="delete">permuting</span><span class="insert">reordering</span> attribute-value<span class="insert"> pairs and eliminating
-  duplicate</span> pairs.
-  </li>
-  <li>The particular choices of names of existential variables are irrelevant to the meaning
-  of an instance; that is, the names can be <span class="delete">permuted</span><span class="insert">renamed</span> without changing
-  the <span class="delete">meaning.</span><span class="insert">meaning, as long as different names are always replaced with
-  different names.</span>  (Replacing two different names with equal <span class="delete">names</span><span class="insert">names,
+  obtained by reordering attribute-value pairs and eliminating
+  duplicate pairs.
+  </span></li>
+  <li><span class="insert">The particular choices of names of existential variables are irrelevant to the meaning
+  of an instance; that is, the names can be renamed without changing
+  the meaning, as long as different names are always replaced with
+  different names.  (Replacing two different names with equal names,
   however, can
-  change the meaning, so</span> does<span class="delete">
-  change the meaning.)</span><span class="insert"> not preserve equivalence.)</span></li>
-  <li>
-  Applying inference rules, definitions, and uniqueness constraints preserves equivalence.  That is, a <a>PROV
-  instance</a> is equivalent to the instance obtained by applying any
-  inference rule or definition, or by <a href="#dfn-merging" class="internalDFN">merging</a> two statements to
+  change the meaning, so does not preserve equivalence.)</span></li>
+  <li><span class="insert">
+  Applying inference rules, definitions, and uniqueness constraints preserves equivalence.  That is, a </span><a><span class="insert">PROV
+  instance</span></a><span class="insert"> is equivalent to the instance obtained by applying any
+  inference rule</span> or <span class="delete">removal,</span><span class="insert">definition,</span> or <span class="delete">said</span><span class="insert">by </span><a href="#dfn-merging" class="internalDFN"><span class="insert">merging</span></a><span class="insert"> two statements</span> to<span class="delete"> satisfy the membership relation.
+To provide an interpretation</span><span class="insert">
   enforce a uniqueness constraint.
-  </li>
-  <li>Equivalence is <a href="#dfn-reflexive" class="internalDFN">reflexive</a>, <a href="#dfn-symmetric" class="internalDFN">symmetric</a>, and <a href="#dfn-transitive" class="internalDFN">transitive</a>.</li>
+  </span></li>
+  <li><span class="insert">Equivalence is </span><a href="#dfn-reflexive" class="internalDFN"><span class="insert">reflexive</span></a><span class="insert">, </span><a href="#dfn-symmetric" class="internalDFN"><span class="insert">symmetric</span></a><span class="insert">, and </span><a href="#dfn-transitive" class="internalDFN"><span class="insert">transitive</span></a><span class="insert">.</span></li>
 </ul>
 
-<p> An application that processes PROV data <em class="rfc2119" title="should">should</em> handle
+<p><span class="insert"> An application that processes PROV data </span><em class="rfc2119" title="should"><span class="insert">should</span></em><span class="insert"> handle
 equivalent instances in the same way. (Common exceptions to this rule
 include, for example, pretty-printers that seek to preserve the
-original order of statements in a file and avoid expanding
-inferences.)  </p>
-
-
+original order</span> of <span class="delete">collections, PROV-DM 
+ restricts one collection to be involved</span><span class="insert">statements</span> in a <span class="delete">single derivation by insertion or removal, or to one membership relation.
+PROV-DM does not provide an interpretation for statements that consist of two (or more) insertion, removal, membership relations that result in the same collection.</span><span class="insert">file and avoid expanding
+inferences.)  </span></p>
+
+
+
+<span class="delete">The following constraint ensures unique derivation.</span>
+
+
+<span class="delete"> The following constraint is unclear.</span>
+<span class="delete">
+A collection </span><span class="delete">must not</span><span class="delete"> be derived through multiple insertions, removal,
+  or membership relations. 
+</span>
+
+</div>
+
+<span class="delete">
+Consider the following statements about three collections.
+  </span><span class="delete">entity(c1, [prov:type="prov:Collection"  %% xsd:QName])
+entity(c2, [prov:type="prov:Collection"  %% xsd:QName])
+entity(c3, [prov:type="prov:Collection"  %% xsd:QName])
+
+
+derivedByInsertionFrom(c3, c1, {("k1", e1), ("k2", e2)})
+derivedByInsertionFrom(c3, c2, {("k3", e3)})
+</span>
+<span class="delete">There is no interpretation for such statements since </span><span class="delete">c3</span><span class="delete"> is derived multiple times by insertion.</span>
+
+
+
+
+<span class="delete">As a particular case, collection </span><span class="delete">c</span><span class="delete"> is derived multiple times from the same </span><span class="delete">c1</span><span class="delete">. </span>
+<span class="delete">derivedByInsertionFrom(id1, c, c1, {("k1", e1), ("k2", e2)})
+derivedByInsertionFrom(id2, c, c1, {("k3", e3), ("k4", e4)})
+</span>
+<span class="delete">The interpretation of such statements is also unspecified. </span>
+<span class="delete">To describe the insertion of the 4 key-entity pairs, one would instead write:</span>
+<span class="delete">derivedByInsertionFrom(id1, c, c1, {("k1", e1), ("k2", e2), ("k3", e3), ("k4", e4)})
+</span>  
+<span class="delete">
+
+The same is true for any combination of insertions, removals, and membership relations:
+</span>
+<span class="delete">The following statements</span>
+<span class="delete">derivedByInsertionFrom(c, c1, {("k1", e1)})
+derivedByRemovalFrom(c, c2, {"k2"})
+</span><span class="delete">
+have no interpretation.
+Nor have the following:
+</span><span class="delete">derivedByInsertionFrom(c, c1, {("k1", e1)})
+memberOf(c, {"k2"}).
+</span>
+
+
+
+
+
+<span class="delete">6.1 </span><span class="delete">Collection branching</span><span class="delete">
+
+It is allowed to have multiple derivations from a single root collection, as long as the resulting entities are distinct, as shown in the following example.
+
+</span>
+<span class="delete">entity(c0, [prov:type="prov:EmptyCollection" %% xsd:QName])    // c0 is an empty collection
+entity(c1, [prov:type="prov:Collection" %% xsd:QName])
+entity(c2, [prov:type="prov:Collection" %% xsd:QName])
+entity(c3, [prov:type="prov:Collection" %% xsd:QName])
+entity(e1)
+entity(e2)
+entity(e3)
+
+derivedByInsertionFrom(c1, c0, {("k1", e1)})      
+derivedByInsertionFrom(c2, c0, {("k2", e2)})       
+derivedByInsertionFrom(c3, c1, {("k3", e3)})       
+</span><span class="delete">
+From this set of statements, we conclude:
+</span><span class="delete">  c1 = { ("k1", e1) }
+  c2 = { ("k2", e2) }
+  c3 = { ("k1", e1), ("k3", e3)}
+</span>
+
+
+
+
+  
+
+
+
+  
 <div id="bundle-constraints" class="section">
-<h3><span class="delete">6.1 </span>Bundles</h3>
-
-
-<p>The definitions, inferences, and constraints, and
-the resulting notions of normalization, validity and equivalence,
-assume a PROV instance <span class="delete">with</span><span class="insert">that consists of</span> exactly one <a>bundle</a>, the <a href="#dfn-toplevel-bundle" class="internalDFN">toplevel
-bundle</a>, <span class="delete">consisting</span><span class="insert">containing all PROV statements in the top level</span> of <span class="delete">all PROV statements in the toplevel of the
-instance</span><span class="insert">the
-bundle</span> (that is, not enclosed in a named <a>bundle</a>).  In this section, we describe how to deal with PROV
-instances consisting of multiple<span class="insert"> named</span> bundles.  Briefly, each bundle is
+<h3><span class="secno">6.2 </span><span class="delete">Collections and Weaker Derivation Relation</span><span class="insert">Bundles and Documents</span></h3>
+
+
+
+
+<p>The <span class="delete">state</span><span class="insert">definitions, inferences, and constraints, and
+the resulting notions</span> of <span class="insert">normalization, validity and equivalence,
+assume </span>a <span class="delete">collection</span><span class="insert">PROV document that consists only of a </span><a><span class="insert">toplevel
+instance</span></a><span class="insert">, containing all PROV statements in the top level of the
+document (that is, not enclosed in a named </span><a><span class="insert">bundle</span></a><span class="insert">).  In this
+section, we describe how to deal with general PROV
+documents, possibly including multiple named bundles.  Briefly, each bundle</span> is<span class="delete"> only known to the extent that a chain
+</span><span class="insert">
 handled independently; there is no interaction between bundles from
-the perspective of applying definitions, inferences, or constraints,
-computing normal forms, or checking validity or equivalence.</p>
-
-<p> We model a general PROV instance, containing <span class="name">n</span> named bundles
-<span class="name">b<sub>1</sub>...b<sub>n</sub></span>, as a tuple
-<span class="name">(B<sub>0</sub>,[b<sub>1</sub>=B<sub>1</sub>,...,b<sub>n</sub>=B<sub>n</sub>])</span>
-where <span class="name">B<sub>0</sub></span> is the set of
-statements of the <a href="#dfn-toplevel-bundle" class="internalDFN">toplevel bundle</a>, and for each <span class="name">i</span>, <span class="name">B<sub>i</sub></span> is the set of
-statements of bundle <span class="name">b<sub>i</sub></span>.  <span class="insert">Names </span><span class="name"><span class="insert">b</span><sub><span class="insert">1</span></sub><span class="insert">...b</span><sub><span class="insert">n</span></sub></span><span class="insert"> are assumed to be distinct.  </span>This notation is shorthand for the
-following PROV-N syntax:</p>
-<pre>B<sub>0</sub>
-bundle b<sub>1</sub>
-  B<sub>1</sub>
+the perspective </span>of <span class="delete">derivations starting from an empty collection can be found. Since a
+set of statements regarding a collection's evolution may be
+incomplete, so is the reconstructed state obtained by querying those
+statements. In general, all statements reflect partial knowledge regarding a sequence of data transformation events. In the particular case of collection evolution, in which some of the state changes may have been missed, the more generic  derivation relation should be used to signal that some updates may have occurred, which cannot be expressed as insertions</span><span class="insert">applying definitions, inferences,</span> or <span class="delete">removals. The following  example illustrates this.</span>
+
+
+ 
+ <span class="delete">
+In the example, the state of </span><span class="delete">c2</span><span class="delete"> is only partially known because the collection is constructed from partially known other collections.
+ </span><span class="delete">entity(c0, [prov:type="prov:EmptyCollection" %% xsd:QName])    // c0 is an empty collection
+entity(c1, [prov:type="prov:Collection" %% xsd:QName])    
+entity(c2, [prov:type="prov:Collection" %% xsd:QName])    
+entity(c3, [prov:type="prov:Collection" %% xsd:QName])    
+entity(e1)
+entity(e2)
+
+derivedByInsertionFrom(c1, c0, {("k1", e1)})       
+wasDerivedFrom(c2, c1)                       
+derivedByInsertionFrom(c3, c2, {("k2", e2)})       
+ </span><span class="delete">
+From this set of statements, we conclude:
+</span>
+    <span class="delete">c1 = { ("k1", e1) }</span>
+    <span class="delete">c2</span><span class="delete"> is somehow derived from </span><span class="delete">c1</span><span class="delete">, but the precise sequence of updates is unknown
+</span>    <span class="delete">c3</span><span class="delete">  includes  </span><span class="delete">("k2", e2)</span><span class="delete"> but the earlier "gap" leaves uncertainty regarding  </span><span class="delete">("k1", e1)</span><span class="delete">  (it may have been removed)</span><span class="insert">constraints,
+computing normal forms,</span> or <span class="delete">any other pair that may have been added as part of the derivation activities.
+</span>
+ 
+
+
+
+
+<span class="delete">
+  Do the insertion/removal derivation steps imply wasDerivedFrom,
+  wasVersionOf, alternateOf?
+  </span>
+ 
+ 
+
+
+<span class="delete">7. </span><span class="delete">Account Constraints</span>
+
+<span class="delete">
+Work on accounts has been deferred until after the next working draft,
+so this section is very unstable
+</span>
+
+<span class="delete">PROV-DM allows for multiple descriptions of entities (and in general any identifiable object) to be expressed. </span>
+
+
+<span class="delete">Let us consider two statements about the same entity, which we have taken from two different contexts. A working draft published by the </span><span class="delete">w3:Consortium</span><span class="delete">:</span>
+<span class="delete">entity(tr:WD-prov-dm-20111215, [ prov:type="pr:RecsWD" %% xsd:QName ])
+</span><span class="delete">
+The second version of a document edited by some authors:
+</span><span class="delete">entity(tr:WD-prov-dm-20111215, [ prov:type="document", ex:version="2" ])
+</span>
+<span class="delete">Both statements are about the same entity identified  by
+</span><span class="delete">tr:WD-prov-dm-20111215</span><span class="delete">, but they contain different attributes, describing the situation</span><span class="insert">checking validity</span> or <span class="delete">partial state of the these entities according to the context in which they occur.
+</span>
+
+
+
+
+<span class="delete">Two different statements about the same entity cannot co-exist in PROV instance
+ as formalized in </span><span class="delete">entity-unique</span><span class="delete">.</span>
+
+
+
+
+
+<span class="delete">In some cases, there may be a requirement  for two different
+  statements concerning the same entity to be included in the same account. To satisfy the constraint </span><span class="delete">entity-unique</span><span class="delete">, we can adopt a different identifier for one of them, and relate the two statements with the </span><span class="delete">alternateOf</span><span class="delete"> relation. </span>
+
+
+<span class="delete">We now reconsider the same two statements of a same entity, but we change the identifier for one of them:</span>
+<span class="delete">entity(tr:WD-prov-dm-20111215, [ prov:type="pr:RecsWD" %% xsd:QName ])
+entity(ex:alternate-20111215, [ prov:type="document", ex:version="2" ])
+alternateOf(tr:WD-prov-dm-20111215,ex:alternate-20111215)
+</span>
+
+
+
+<span class="delete">
+  Since we are not specifying ways to take the union of two accounts,
+  we may drop this discussion
+  </span>
+<span class="delete"> Taking the union of two accounts is another account, 
+formed by the union of the statements they respectively contain.  We note that the resulting union may or may not invalidate some constraints:
+</span>
+<span class="delete"> Two entity statements with the same identifier but different sets of attributes exist in each PROV instance may invalidate </span><span class="delete">entity-unique</span><span class="delete"> in the union, unless some form of statement merging or renaming (as per </span><span class="delete">Example</span><span class="delete">) occurs.
+</span><span class="delete"> Structurally well-formed
+accounts are not
+closed under union because the
+constraint </span><span class="delete">generation-uniqueness</span><span class="delete"> may no
+longer be satisfied in the resulting union.  </span>
+
+<span class="delete">How to reconcile such accounts is beyond the scope of this specification.</span>
+
+
+<span class="delete">
+  Material transplanted from old structural well-formedness constraints section.
+  
+  This example isn't very clear, since the sub-workflow-ness isn't
+  represented in the data.  According to what was written above, we
+  should conclude that a0 and a2 are equal!
+  </span>
+
+<span class="delete">
+In the following statements, a workflow execution  </span><span class="delete">a0</span><span class="delete"> consists of two sub-workflow executions  </span><span class="delete">a1</span><span class="delete"> and </span><span class="delete">a2</span><span class="delete">.
+Sub-workflow execution </span><span class="delete">a2</span><span class="delete"> generates entity </span><span class="delete">e</span><span class="delete">, so does </span><span class="delete">a0</span><span class="delete">.</span>
+<span class="delete">activity(a0, [prov:type="workflow execution"])
+activity(a1, [prov:type="workflow execution"])
+activity(a2, [prov:type="workflow execution"])
+wasInformedBy(a2,a1)
+
+wasGeneratedBy(e,a0)
+wasGeneratedBy(e,a2)
+</span>
+<span class="delete">So, we have two different </span><span class="delete">generations</span><span class="delete"> for entity </span><span class="delete">e</span><span class="delete">.  Such an example is permitted in PROV-DM if the two activities denoted by </span><span class="delete">a0</span><span class="delete"> and </span><span class="delete">a2</span><span class="delete"> are a single thing happening  in the world
+but described from different perspectives.</span>
+
+
+<span class="delete">While this example is permitted in PROV-DM, it does not make the inter-relation between activities explicit, and  it mixes statements expressed from different perspectives together. 
+While this may acceptable in some specific applications, it becomes challenging for inter-operability. Indeed, PROV-DM does not offer any relation describing the structure of activities.
+  Such instances are said not to be structurally well-formed.</span><span class="insert">equivalence.</span></p>
+
+<p><span class="delete">Structurally well-formed provenance can</span><span class="insert"> We model a general PROV document, containing </span><span class="name"><span class="insert">n</span></span><span class="insert"> named bundles
+</span><span class="name"><span class="insert">b</span><sub><span class="insert">1</span></sub><span class="insert">...b</span><sub><span class="insert">n</span></sub></span><span class="insert">, as a tuple
+</span><span class="name"><span class="insert">(B</span><sub><span class="insert">0</span></sub><span class="insert">,[b</span><sub><span class="insert">1</span></sub><span class="insert">=B</span><sub><span class="insert">1</span></sub><span class="insert">,...,b</span><sub><span class="insert">n</span></sub><span class="insert">=B</span><sub><span class="insert">n</span></sub><span class="insert">])</span></span><span class="insert">
+where </span><span class="name"><span class="insert">B</span><sub><span class="insert">0</span></sub></span><span class="insert"> is the set of
+statements of the </span><a><span class="insert">toplevel instance</span></a><span class="insert">, and for each </span><span class="name"><span class="insert">i</span></span><span class="insert">, </span><span class="name"><span class="insert">B</span><sub><span class="insert">i</span></sub></span><span class="insert"> is the set of
+statements of bundle </span><span class="name"><span class="insert">b</span><sub><span class="insert">i</span></sub></span><span class="insert">.  Names </span><span class="name"><span class="insert">b</span><sub><span class="insert">1</span></sub><span class="insert">...b</span><sub><span class="insert">n</span></sub></span><span class="insert"> are assumed to</span> be <span class="delete">obtained by partitioning the generations into different accounts. </span><span class="insert">distinct.  </span>This <span class="delete">makes it clear that these generations provide alternative
+descriptions of the same real-world generation event, rather than describing two distinct generation events</span><span class="insert">notation is shorthand</span> for the<span class="delete"> same entity. When accounts are used, the example can be encoded as follows.</span><span class="insert">
+following PROV-N syntax:</span></p>
+
+
+
+<span class="delete">
+The same example is now revisited, with the following statements that are structurally well-formed. Two accounts are introduced, and there is a single generation for entity </span><span class="delete">e</span><span class="delete"> per account.</span>
+<pre><span class="insert">B</span><sub><span class="insert">0</span></sub><span class="insert">
+bundle b</span><sub><span class="insert">1</span></sub><span class="insert">
+  B</span><sub><span class="insert">1</span></sub><span class="insert">
 endBundle
 ...
-bundle b<sub>n</sub>
-  B<sub>n</sub>
+bundle b</span><sub><span class="insert">n</span></sub><span class="insert">
+  B</span><sub><span class="insert">n</span></sub><span class="insert">
 endBundle
-</pre>
-
-<p> The <a href="#dfn-normal-form" class="internalDFN">normal form</a> of a general PROV instance
-<span class="name">(B<sub>0</sub>,[b<sub>1</sub>=B<sub>1</sub>,...,[b<sub>n</sub>=B<sub>n</sub>])</span> is <span class="name">(B'<sub>0</sub>,[b<sub>1</sub>=B'<sub>1</sub>,...,b<sub>n</sub>=B'<sub>n</sub>])</span>
-where <span class="name">B'<sub>i</sub></span> is the normal
-form of <span class="name">B<sub>i</sub></span> for each <span class="name">i</span> between 0 and <span class="name">n</span>.  </p>
-
-<p>A general PROV instance is <a href="#dfn-valid" class="internalDFN">valid</a> if each of the bundles <span class="name">B<sub>0</sub></span>,
-..., <span class="name">B<sub>n</sub></span> are valid and none of the bundle identifiers <span class="name">b<sub>i</sub></span> are repeated.</p>
-
-<p>Two (valid) general PROV instances <span class="name">(B<sub>0</sub>,[b<sub>1</sub>=B<sub>1</sub>,...,b<sub>n</sub>=B<sub>n</sub>])</span> and
-<span class="name">(B'<sub>0</sub>,[b<sub>1</sub>'=B'<sub>1</sub>,...,b'<sub>m</sub>=B'<sub>m</sub>])</span> are <a href="#dfn-equivalent" class="internalDFN">equivalent</a> if <span class="name">B<sub>0</sub></span> is
-equivalent to <span class="name">B'<sub>0</sub></span> and <span class="name">n = m</span> and
-there exists a permutation <span class="name">P : {1..n} -&gt; {1..n}</span> such that for each <span class="name">i</span>, <span class="name">b<sub>i</sub> =
-b'<sub>P(i)</sub></span> and <span class="name">B<sub>i</sub></span> is equivalent to <span class="name">B'<sub>P(i)</sub></span>.
-</p>
-
-</div> 
-
-
-</i></i></div><i><i> 
-
-
-
-
-
-
-
-
-
-
-<div class="appendix section"> 
-      <span class="delete">A. </span><h2 id="acknowledgements">Acknowledgements</h2> 
-      <p> 
+</span></pre>
+
+<p><span class="delete">In</span><span class="insert"> The </span><a href="#dfn-normal-form" class="internalDFN"><span class="insert">normal form</span></a><span class="insert"> of</span> a <span class="delete">first account, entitled "summary", we find:</span>
+<span class="delete">activity(a0,t1,t2,[prov:type="workflow execution"])
+wasGeneratedBy(e,a0,-)
+</span>
+<span class="delete">In a second account, entitled "detail", we find:</span>
+<span class="delete">activity(a1,t1,t3,[prov:type="workflow execution"])
+activity(a2,t3,t2,[prov:type="workflow execution"])
+wasInformedBy(a2,a1)
+wasGeneratedBy(e,a2,-)
+</span>
+
+
+
+ 
+<span class="delete">Structurally well-formed provenance satisfies some constraints, which force the structure</span><span class="insert">PROV document
+</span><span class="name"><span class="insert">(B</span><sub><span class="insert">0</span></sub><span class="insert">,[b</span><sub><span class="insert">1</span></sub><span class="insert">=B</span><sub><span class="insert">1</span></sub><span class="insert">,...,[b</span><sub><span class="insert">n</span></sub><span class="insert">=B</span><sub><span class="insert">n</span></sub><span class="insert">])</span></span><span class="insert"> is </span><span class="name"><span class="insert">(B'</span><sub><span class="insert">0</span></sub><span class="insert">,[b</span><sub><span class="insert">1</span></sub><span class="insert">=B'</span><sub><span class="insert">1</span></sub><span class="insert">,...,b</span><sub><span class="insert">n</span></sub><span class="insert">=B'</span><sub><span class="insert">n</span></sub><span class="insert">])</span></span><span class="insert">
+where </span><span class="name"><span class="insert">B'</span><sub><span class="insert">i</span></sub></span><span class="insert"> is the normal
+form</span> of <span class="delete">statements to be exposed by means of accounts. With these constraints satisfied, further
+inferences can be made about structurally well-formed statements.
+The uniqueness of generations in accounts is formulated as follows.
+</span>
+
+
+
+  
+ 
+
+
+
+
+
+
+
+
+  
+<span class="delete">8. </span><span class="delete">Rationale</span><span class="name"><span class="insert">B</span><sub><span class="insert">i</span></sub></span> for <span class="delete">inferences and constraints</span><span class="delete">This section is non-normative.</span>
+
+<span class="delete"> This section collects all of the explanatory
+  material that I was not certain how to interpret as an unambiguous
+  inference or constraint.  Some of these observations may need to be folded
+  into the explanatory text in respective sections (for example for
+  events, 
+  accounts or collections).
+
+  Editing is also needed to decrease redundancy.
+  </span>
+
+     
+<span class="delete">8.1 </span><span class="delete">Entities and Attributes</span>
+
+<span class="delete">When we talk about things in the world in natural language and even when we assign identifiers, we are often imprecise in ways that make it difficult to clearly and unambiguously report
+provenance: a resource with a URL may be understood as referring to a report available at that URL, the version of the report available there today, the report independent of where it is
+hosted over time, etc.
+However, to write precise descriptions of the provenance of things
+that change over time, we need ways of disambiguating which versions
+of things we are talking about.  
+</span>
+
+<span class="delete">
+To describe the provenance of things that can change over
+time, PROV-DM uses the concept of </span><span class="delete">entities</span><span class="delete"> with fixed
+attributes.  From a provenance viewpoint, it is important to identify
+a partial state of something, i.e. something with some aspects that
+have been fixed, so that it becomes possible to express its provenance
+(i.e. what caused the thing with these specific aspects).  An entity
+encompasses a part of a thing's history during which some of the
+attributes are fixed.  An entity can thus be thought of as a part of a
+thing with some associated partial state.
+Attributes in PROV-DM are used to fix certain aspects of entities.</span>
+
+
+<span class="delete">
+An </span><span class="delete">entity</span><span class="delete"> is a thing one wants to provide provenance for
+and whose situation in the world is described by some fixed
+attributes. An entity has a </span><span class="delete">characterization interval</span><span class="delete">,
+or </span><span class="delete">lifetime</span><span class="delete">,
+defined as the period
+</span><span class="insert">each </span><span class="name"><span class="insert">i</span></span> between <span class="delete">its </span><span class="delete">generation event</span><span class="delete">
+and its </span><span class="delete">invalidation event</span><span class="insert">0 and </span><span class="name"><span class="insert">n</span></span>.<span class="delete">
+An entity's attributes are established when the entity is
+created and describe the entity's situation and (partial) state
+during an entity's lifetime.</span>
+
+<span class="delete">
+A different entity (perhaps representing a different user or
+system perspective) may fix other aspects of the same thing, and its provenance
+may be different.  Different entities that are aspects of the same
+thing are called </span><span class="delete">alternate</span><span class="delete">, and the PROV-DM relations of
+specialization and alternate can be used to link such entities.</span>
+
+
+
+
+
+
+<span class="delete">
+Different users may take different perspectives on a resource with
+a URL. A provenance record might use one (or more)  different
+  entities to talk about different perspectives, such as:
+</span>
+<span class="delete">a report available at a URL: fixes the nature of the thing, i.e. a document, and its location; </span>
+<span class="delete">the version of the report available there today: fixes its version number, contents, and its date;</span>
+<span class="delete">the report independent of where it is hosted and of its content over time: fixes the nature of the thing as a conceptual artifact.</span><span class="delete">
+The provenance of these three entities may differ, and may be along the following lines: 
+</span>
+<span class="delete">the provenance of a report available at a URL may include: the act of publishing it and making it available at a given location, possibly under some license and access control;</span>
+<span class="delete">the provenance of the version of the report available there today may include: the authorship of the specific content, and reference to imported content;</span>
+<span class="delete">the provenance of the report independent of where it is hosted over time may include: the motivation for writing the report, the overall methodology for producing it, and the broad team
+involved in it.</span>
+
+<span class="delete">We do not assume that any entity is a better or worse description of
+reality than any other.  That is, we do not assume an absolute ground truth with
+respect to which we can judge correctness or completeness of
+descriptions.  In fact, it is possible to describe the processing that occurred for the report to be commissioned, for
+individual versions to be created, for those versions to be published at the given URL, etc., each via a different entity with attribute-value pairs that fix some aspects of the report appropriately.</span>
+
+
+
+<span class="delete">Besides entities, a variety of other PROV-DM objects have
+attributes, including activity, generation, usage, start, end,
+communication, attribution, association, responsibility, and
+derivation. Each object has an associated duration interval (which may
+be a single time point), and attribute-value pairs for a given object
+are expected to be descriptions that hold for the object's duration.
+</span>
+<span class="delete">
+However, the attributes of entities have special meaning because they
+are considered to be fixed aspects
+of underlying, changing things.  This motivates constraints on
+</span><span class="delete">alternateOf</span><span class="delete"> and </span><span class="delete">specializationOf</span><span class="delete"> relating the attribute values of
+different entities.
+</span>
+<span class="delete">
+  TODO:
+Constraints on alternateOf/specializationOf for this?
+  </span>
+
+  <span class="delete">
+TODO: Further discussion of entities moved from the old "Definitional
+    constraints" section.  Should merge with the surrounding
+    discussion to avoid repetition.
+    </span>
+<span class="delete">
+An </span><span class="delete">entity</span><span class="delete"> is a thing one wants to provide provenance for
+and whose situation in the world is described by some attribute-value
+pairs. An entity's attribute-value pairs are established as part of
+the entity statement and their values remain unchanged for the
+lifetime of the entity. An entity's attribute-value pairs are expected
+to describe the entity's situation and (partial) state  during an
+entity's </span><span class="delete">characterization interval</span><span class="delete">.</span>
+
+<span class="delete">If an entity's situation or state changes, this may result in its statement being invalid, because one or more attribute-value pairs no longer hold.  In that case, from the PROV viewpoint, there exists a new entity, which needs to be given a distinct identifier, and associated with the attribute-value pairs that reflect its new situation or state.</span><span class="delete">
+
+
+
+Further considerations:
+</span>
+<span class="delete">In order to describe the provenance of something during an  interval over which
+  relevant attributes of the thing are not fixed, it is required to
+  create multiple entities, each with its own identifier, </span><span class="delete">characterization interval</span><span class="delete">, and
+  fixed attributes, and express 
+  dependencies between the various entities using events.
+  For example, if we want to describe the provenance of several
+  versions of a document, involving attributes such as authorship that
+  change over time, we need different entities for the versions linked
+  by appropriate generation, usage, revision, and invalidation events.
+</span>
+
+<span class="delete">There is no assumption that the set of attributes is complete, nor
+that the attributes are independent or orthogonal of each other.</span>
+<span class="delete">There is no assumption that the attributes of an entity uniquely
+identify it.  Two different entities that are aspects of different
+things can have the same attributes.</span>
+<span class="delete">A </span><span class="delete">characterization interval</span><span class="delete"> may collapse into a single instant.</span>
+
+  
+
+
+
+<span class="delete">8.2 </span><span class="delete">Activities</span>
+
+<span class="delete">
+  TODO: Further discussion of activities moved from old "Definitional
+  constraints and inferences" section.  Edit to avoid repeating information.
+</span>
+  
+
+<span class="delete">An activity is delimited by its </span><span class="delete">start</span><span class="delete"> and its </span><span class="delete">end</span><span class="delete"> events; hence, it occurs over
+an interval delimited by two </span><span class="delete">instantaneous
+events</span><span class="delete">. However, an activity record need not mention start or end time information, because they may not be known.
+An activity's attribute-value pairs are expected to describe the activity's situation during its interval, i.e. an interval between two instantaneous events, namely its </span><span class="delete">start</span><span class="delete"> event and its </span><span class="delete">end</span><span class="delete"> event.
+</span>
+
+
+<span class="delete">Further considerations:</span>
+
+<span class="delete">An activity is not an entity.
+Indeed,  an entity exists in full at
+any point in its lifetime, persists during this
+interval, and preserves the characteristics that makes it
+identifiable.  In contrast, an activity is something that occurs, happens,
+unfolds, or develops through time, but is typically not identifiable by
+the characteristics it exhibits at any point during its duration. 
+This distinction is similar to the distinction between 
+'continuant' and 'occurrent' in logic [</span><span class="delete">Logic</span><span class="delete">].</span>
+
+
+
+
+
+
+
+     
+<span class="delete">8.3 </span><span class="delete">Description, Assertion, and Inference</span>
+
+<span class="delete">
+PROV-DM is a provenance data model designed to express </span><span class="delete">descriptions</span><span class="delete"> of the world. 
+</span>
+
+<span class="delete">
+A file at some point during its lifecycle, which includes multiple edits by multiple people, can be described by its type, its location in the file system, a creator, and content.  
+</span>
+
+
+<span class="delete">The data model is designed to capture activities that happened in the past, as opposed to activities
+that may or will happen. 
+However, this distinction is not formally enforced.
+Therefore, PROV-DM descriptions are intended to be interpreted as what
+has happened, as opposed to what may or will happen.</span>
+
+
+
+<span class="delete"> 
+This specification does not prescribe the means by which descriptions can be arrived at; for example, descriptions can be composed on the basis of observations, reasoning, or any other means. 
+</span>
+
+
+<span class="delete">
+Sometimes, inferences about the world can be made from descriptions
+conformant to the PROV-DM data model. This
+specification defines some such inferences, allowing new descriptions
+to be inferred from existing ones. Hence, descriptions of the world
+can result either from direct assertion or from inference 
+by application of inference rules defined by this specification.
+</span>
+
+
+
+
+
+
+
+
+     
+<span class="delete">8.4 </span><span class="delete">Events and Time</span>
+
+  
+
+
+<span class="delete">Time is critical in the context of provenance, since it can help corroborate provenance claims. For instance, if an entity is claimed to be obtained by transforming another, then the
+latter must have existed before the former. If it is not the case, then there is something wrong with such a provenance claim. </span>
+
+<span class="delete"> Although time is critical, we should also recognize that
+provenance can be used in many different contexts within individual
+systems and across the Web. Different systems may use different clocks
+which may not be precisely synchronized, so when provenance records
+are combined by different systems, we may not be able to align the
+times involved to a single global timeline.  Hence, PROV-DM is
+designed to minimize assumptions about time.  </span>
+
+
+
+<span class="delete">Hence, to talk about the constraints on valid PROV-DM data, we
+refer to </span><span class="delete">instantaneous events</span><span class="delete"> that correspond to interactions
+between activities and entities.  
+The term "event" is commonly used in process algebra with a similar meaning. For instance, in CSP [</span><span class="delete">CSP</span><span class="delete">], events represent communications or interactions; they are assumed to be atomic and
+instantaneous.</span>
+
+
+
+
+
+
+<span class="delete">8.4.1 </span><span class="delete">Event Ordering</span>
+
+
+
+<span class="delete">
+ The following paragraphs are unclear and need to be revised, to
+ address review concerns: if
+ we aren't saying anything about how events and time relate, and time
+ is the only concrete information about event ordering in PROV-DM,
+ then how can implementations check that event ordering constraints
+ are satisfied?
+  </span>  
+<span class="delete"> How the </span><span class="delete">precedes</span><span class="delete"> partial order is implemented in practice is beyond the scope
+of this specification.  This specification only assumes that
+each </span><span class="delete">instantaneous event</span><span class="delete"> can be mapped to an instant in some form of
+timeline. The actual mapping is not in scope of this
+specification. Likewise, whether this timeline is formed of a single
+global timeline or whether it consists of multiple Lamport-style
+clocks is also beyond this specification.  The </span><span class="delete">follows</span><span class="delete"> and
+</span><span class="delete">precedes</span><span class="delete"> orderings of events should be consistent with the
+ordering of their associated times
+over these timelines.
+</span>
+
+
+<span class="delete">This specification defines </span><span class="delete">event ordering constraints</span><span class="delete">
+between  </span><span class="delete">instantaneous events</span><span class="delete"> associated with 
+provenance descriptions.  PROV-DM data </span><span class="delete">must</span><span class="delete"> satisfy such constraints.</span>  </p>
+
+<p><span class="delete">PROV-DM also allows for time observations to be inserted in
+specific statements, for</span><span class="insert">A PROV document is </span><a href="#dfn-valid" class="internalDFN"><span class="insert">valid</span></a><span class="insert"> if</span> each <span class="delete">recognized </span><span class="delete">instantaneous event</span><span class="delete"> introduced in this
+specification.  The presence </span>of <span class="delete">a time observation for a given </span><span class="delete">instantaneous event</span><span class="delete"> fixes the mapping</span><span class="insert">the bundles </span><span class="name"><span class="insert">B</span><sub><span class="insert">0</span></sub></span><span class="insert">,
+..., </span><span class="name"><span class="insert">B</span><sub><span class="insert">n</span></sub></span><span class="insert"> are valid and none</span> of <span class="delete">this </span><span class="delete">instantaneous event</span><span class="delete"> to the timeline. It can also
+help with the verification of associated ordering constraints (though,
+again, this verification is outside the scope of this specification).
+</span>
+
+
+
+
+
+
+<span class="delete">8.4.2 </span><span class="delete">Types of Events</span>
+<span class="delete">Five kinds of </span><span class="delete">instantaneous events</span><span class="insert">the bundle identifiers </span><span class="name"><span class="insert">b</span><sub><span class="insert">i</span></sub></span> are <span class="delete">used
+for the PROV-DM data model. The </span><span class="delete">activity start</span><span class="delete"> and
+</span><span class="delete">activity end</span><span class="delete"> events delimit the beginning and the end
+of activities, respectively. The </span><span class="delete">entity usage</span><span class="delete">,
+</span><span class="delete">entity generation</span><span class="delete">, and </span><span class="delete">entity
+invalidation</span><span class="delete"> events apply to entities, and the generation and
+invalidation events delimit the </span><span class="delete">characterization interval</span><span class="delete"> of
+an entity. More specifically:
+
+</span><span class="insert">repeated.</span></p>
+
+<p><span class="delete">An </span><span class="delete">activity start event</span><span class="insert">Two (valid) PROV documents </span><span class="name"><span class="insert">(B</span><sub><span class="insert">0</span></sub><span class="insert">,[b</span><sub><span class="insert">1</span></sub><span class="insert">=B</span><sub><span class="insert">1</span></sub><span class="insert">,...,b</span><sub><span class="insert">n</span></sub><span class="insert">=B</span><sub><span class="insert">n</span></sub><span class="insert">])</span></span><span class="insert"> and
+</span><span class="name"><span class="insert">(B'</span><sub><span class="insert">0</span></sub><span class="insert">,[b</span><sub><span class="insert">1</span></sub><span class="insert">'=B'</span><sub><span class="insert">1</span></sub><span class="insert">,...,b'</span><sub><span class="insert">m</span></sub><span class="insert">=B'</span><sub><span class="insert">m</span></sub><span class="insert">])</span></span><span class="insert"> are </span><a href="#dfn-equivalent" class="internalDFN"><span class="insert">equivalent</span></a><span class="insert"> if </span><span class="name"><span class="insert">B</span><sub><span class="insert">0</span></sub></span> is<span class="delete"> the </span><span class="delete">instantaneous event</span><span class="insert">
+equivalent to </span><span class="name"><span class="insert">B'</span><sub><span class="insert">0</span></sub></span><span class="insert"> and </span><span class="name"><span class="insert">n = m</span></span><span class="insert"> and
+there exists a permutation </span><span class="name"><span class="insert">P : {1..n} -&gt; {1..n}</span></span><span class="insert"> such</span> that <span class="delete">marks the instant an activity starts.</span>
+
+<span class="delete">An </span><span class="delete">activity end event</span><span class="insert">for each </span><span class="name"><span class="insert">i</span></span><span class="insert">, </span><span class="name"><span class="insert">b</span><sub><span class="insert">i</span></sub><span class="insert"> =
+b'</span><sub><span class="insert">P(i)</span></sub></span><span class="insert"> and </span><span class="name"><span class="insert">B</span><sub><span class="insert">i</span></sub></span> is <span class="delete">the </span><span class="delete">instantaneous event</span><span class="delete"> that marks the instant an activity ends.</span>
+
+<span class="delete">An </span><span class="delete">entity usage event</span><span class="delete"> is the </span><span class="delete">instantaneous event</span><span class="delete"> that marks the first instant of
+an entity's consumption timespan by an activity.  Before this instant
+the entity had not begun</span><span class="insert">equivalent</span> to <span class="delete">be used by the activity.</span>
+
+<span class="delete">An </span><span class="delete">entity generation event</span><span class="delete"> is the </span><span class="delete">instantaneous event</span><span class="delete"> that marks the  final instant of an entity's creation timespan, after which
+it is available for use.  The entity did not exist before this event.</span>
+
+<span class="delete">An </span><span class="delete">entity invalidation event</span><span class="delete">
+is the </span><span class="delete">instantaneous event</span><span class="delete"> that
+marks the  initial instant of the destruction, invalidation, or
+cessation of an entity, after which the entity is  no longer available
+for use.  The entity no longer exists after this event.</span><span class="name"><span class="insert">B'</span><sub><span class="insert">P(i)</span></sub></span><span class="insert">.
+</span></p>
+
+</div>
+
+
+ 
+
+
+</div>
+
+
+    
+      <span class="delete">8.5 </span><span class="delete">Account</span>
+
+<span class="delete">
+  Some of this discussion may belong in the account constraint section
+  as motivation, or as formal constraints/inferences.  In particular,
+  the </span><span class="delete">must</span><span class="delete">, </span><span class="delete">may</span><span class="delete">, </span><span class="delete">should</span><span class="delete"> statements should be clarified and put into
+  the normative section.
+  </span>
+
+<span class="delete">It is common for multiple provenance records to co-exist. For
+instance, when emailing a file, there could be a provenance record
+kept by the mail client, and another by the mail server. Such
+provenance records may provide different explanations about something
+happening in the world, because they are created by different parties
+or observed by different witnesses. A given party could also create
+multiple provenance records about an execution, to capture different
+levels of details, targeted at different end-users: the programmer of
+an experiment may be interested in a detailed log of execution, while
+the scientists may focus more on the scientific-level description.
+Given that multiple provenance records can co-exist, it is important
+to have details about their origin, who they are attributed to, how
+they were generated, etc.  In other words, an important requirement is
+to be able to express the provenance of provenance. </span>
+
+<span class="delete">
+  See ISSUE-343.  
+  </span>
+
+  <span class="delete">
+An </span><span class="delete">account</span><span class="delete"> is an entity that contains an instance, or set
+  of PROV statements.
+</span><span class="delete">  PROV-DM does not provide an actual mechanism for creating accounts, i.e. for bundling up provenance descriptions and naming them.  Accounts </span><span class="delete">must</span><span class="delete"> satisfy some properties:
+</span>
+<span class="delete">An account is a bundle of provenance descriptions whose content </span><span class="delete">may</span><span class="delete"> change over time.</span>
+<span class="delete">If an account's  set of statements changes over time, it </span><span class="delete">should</span><span class="delete"> increase monotonically with time. </span>
+<span class="delete">A given description of e.g. an entity in a given account, in terms of its identifier and attribute-value pairs, does not change over time. </span>
+
+
+<span class="delete">
+The last point is important. It indicates that within an account:
+</span>
+<span class="delete">It is always possible to add new provenance statements, e.g. stating that a given entity was used by an activity, or derived from another.  This is very much an open world assumption.
+</span><span class="delete">It is not permitted to add new attributes to a given entity (a
+  form of closed world assumption from the attributes point of view),
+  though it is always permitted to create a new statement describing
+  an entity, which is a "copy" of the original statement extended with novel attributes  (cf Example </span><span class="delete">merge-with-rename</span><span class="delete">).
+</span>
+
+
+<span class="delete">
+There is no construct in PROV-DM to create such bundles of
+statements. Instead, it is assumed that some mechanism, outside
+PROV-DM can create them.  However, from a provenance viewpoint, such
+accounts are things whose provenance we may want to describe. In order to be able to do so, we need to see accounts as entities, whose origin can be described using PROV-DM vocabulary. Thus, PROV-DM introduces the reserved type </span><span class="delete">Account</span><span class="delete">.
+</span>
+
+    
+
+
+
+
+
+
+
+ 
+      <span class="delete">A. </span><span class="delete">Acknowledgements</span> 
+      <span class="delete"> 
         WG membership to be listed here.
-      </p> 
-    </div> 
-
-<div class="glossary section"> 
-      <span class="delete">B. </span><h2 id="glossary">Glossary</h2>
+      </span> 
+     
+
+ 
+
+
+
+
+
+
+
+
+
+
+
+<div class="glossary section" id="glossary"> 
+      <h2><span class="secno"><span class="delete">B.</span><span class="insert">7.</span> </span>Glossary</h2> 
+      
 
       <ul> 
-       <li> <dfn id="dfn-antisymmetric">antisymmetric</dfn>: A relation <span class="math">R</span> over <span class="math">X</span> is <a href="#dfn-antisymmetric" class="internalDFN">antisymmetric</a> if
-      for any elements <span class="math">x</span>, <span class="math">y</span> of <span class="math">X</span>, if <span class="math">x R y</span> and <span class="math">y R x</span> then <span class="math">x = y</span>.</li>
-       <li> <dfn id="dfn-asymmetric">asymmetric</dfn>: A relation <span class="math">R</span> over <span class="math">X</span> is <a href="#dfn-asymmetric" class="internalDFN">asymmetric</a> if
-      <span class="math">x R y</span> and <span class="math">y R x</span> do not hold for any elements <span class="math">x</span>, <span class="math">y</span> of <span class="math">X</span>.</li>
-        <li><dfn id="dfn-equivalence-relation"><span class="insert">equivalence relation</span></dfn><span class="insert">: An equivalence relation is a relation
-      that is </span><a href="#dfn-reflexive" class="internalDFN"><span class="insert">reflexive</span></a><span class="insert">, </span><a href="#dfn-symmetric" class="internalDFN"><span class="insert">symmetric</span></a><span class="insert">, and
+       <li> <span class="delete">anti-symmetric</span><dfn id="dfn-antisymmetric"><span class="insert">antisymmetric</span></dfn>: A relation <span class="math">R</span> over <span class="math">X</span> is <span class="delete">anti-symmetric</span><a href="#dfn-antisymmetric" class="internalDFN"><span class="insert">antisymmetric</span></a> if
+      for any elements <span class="delete">x, </span><span class="math"><span class="insert">x</span></span><span class="insert">, </span><span class="math">y</span> of <span class="delete">X,</span><span class="math"><span class="insert">X</span></span><span class="insert">,</span> if <span class="math">x R y<span class="delete"> and </span></span><span class="insert"> and </span><span class="math">y R x</span> then <span class="math">x = <span class="delete">y.</span><span class="insert">y</span></span><span class="insert">.</span></li>
+       <li> <dfn id="dfn-asymmetric"><span class="insert">asymmetric</span></dfn><span class="insert">: A relation </span><span class="math"><span class="insert">R</span></span><span class="insert"> over </span><span class="math"><span class="insert">X</span></span><span class="insert"> is </span><a href="#dfn-asymmetric" class="internalDFN"><span class="insert">asymmetric</span></a><span class="insert"> if</span>
+      <span class="delete">Alternatively,</span><span class="math"><span class="insert">x R y</span></span><span class="insert"> and </span><span class="math"><span class="insert">y R x</span></span><span class="insert"> do not hold</span> for <span class="insert">any elements </span><span class="math"><span class="insert">x</span></span><span class="insert">, </span><span class="math"><span class="insert">y</span></span><span class="insert"> of </span><span class="math"><span class="insert">X</span></span><span class="insert">.</span></li>
+        <li><dfn id="dfn-equivalence-relation"><span class="insert">equivalence relation</span></dfn><span class="insert">: An equivalence relation is </span>a <span class="delete">strict partial order anti-symmetry usually</span><span class="insert">relation</span>
+      <span class="delete">means </span>that <span class="insert">is </span><a href="#dfn-reflexive" class="internalDFN"><span class="insert">reflexive</span></a><span class="insert">, </span><a href="#dfn-symmetric" class="internalDFN"><span class="insert">symmetric</span></a><span class="insert">, and
        </span><a href="#dfn-transitive" class="internalDFN"><span class="insert">transitive</span></a><span class="insert">.</span></li>
-       <li> <dfn id="dfn-irreflexive">irreflexive</dfn>: A relation <span class="math">R</span> over <span class="math">X</span> is <a href="#dfn-irreflexive" class="internalDFN">irreflexive</a> if
-      for <span class="math">x R x</span> does not hold for any element <span class="math">x</span> of <span class="math">X</span>.</li>
+       <li> <dfn id="dfn-irreflexive"><span class="insert">irreflexive</span></dfn><span class="insert">: A relation </span><span class="math"><span class="insert">R</span></span><span class="insert"> over </span><span class="math"><span class="insert">X</span></span><span class="insert"> is </span><a href="#dfn-irreflexive" class="internalDFN"><span class="insert">irreflexive</span></a><span class="insert"> if
+      </span>for <span class="math"><span class="insert">x R x</span></span><span class="insert"> does not hold for </span>any <span class="delete">elements x, y</span><span class="insert">element </span><span class="math"><span class="insert">x</span></span> of <span class="delete">X, it is impossible that
+      both x R
+      y and y R x hold.</span><span class="math"><span class="insert">X</span></span><span class="insert">.</span></li>
         <li> <dfn id="dfn-reflexive">reflexive</dfn>: A relation <span class="math">R</span> over <span class="math">X</span> is <a href="#dfn-reflexive" class="internalDFN">reflexive</a> if
-      for any element <span class="math">x</span> of <span class="math">X</span>, we have <span class="math">x R x</span>.</li>
-      <li><dfn id="dfn-partial-order">partial order</dfn>: A partial order is a relation
-      that is <a href="#dfn-reflexive" class="internalDFN">reflexive</a>, <a href="#dfn-antisymmetric" class="internalDFN">antisymmetric</a>, and <a href="#dfn-transitive" class="internalDFN">transitive</a>.</li>
-      <li><dfn id="dfn-preorder">preorder</dfn>: A preorder is a relation that is
-      <a href="#dfn-reflexive" class="internalDFN">reflexive</a> and <a href="#dfn-transitive" class="internalDFN">transitive</a>.  (It is not necessarily antisymmetric,
-      meaning there can be cycles of distinct elements <span class="math">x<sub>1</sub> R x<sub>2</sub> R ... R
-      x<sub>n</sub> R x<sub>1</sub>.</span></li>
-    <li><dfn id="dfn-strict-partial-order">strict partial order</dfn>: A strict partial order is a
-      relation that is <a href="#dfn-irreflexive" class="internalDFN">irreflexive</a>, <a href="#dfn-asymmetric" class="internalDFN">asymmetric</a> and <a href="#dfn-transitive" class="internalDFN">transitive</a>.</li>
-      <li><dfn id="dfn-strict-preorder">strict preorder</dfn>: A strict preorder is a relation
-      that is <a href="#dfn-irreflexive" class="internalDFN">irreflexive</a> and <a href="#dfn-transitive" class="internalDFN">transitive</a>.</li>
+      for any element <span class="math">x</span> of <span class="delete">X,</span><span class="math"><span class="insert">X</span></span><span class="insert">,</span> we have <span class="math">x R <span class="delete">x.</span><span class="insert">x</span></span><span class="insert">.</span></li>
+      <li><dfn id="dfn-partial-order"><span class="insert">partial order</span></dfn><span class="insert">: A partial order is a relation
+      that is </span><a href="#dfn-reflexive" class="internalDFN"><span class="insert">reflexive</span></a><span class="insert">, </span><a href="#dfn-antisymmetric" class="internalDFN"><span class="insert">antisymmetric</span></a><span class="insert">, and </span><a href="#dfn-transitive" class="internalDFN"><span class="insert">transitive</span></a><span class="insert">.</span></li>
+      <li><dfn id="dfn-preorder"><span class="insert">preorder</span></dfn><span class="insert">: A preorder is a relation that is
+      </span><a href="#dfn-reflexive" class="internalDFN"><span class="insert">reflexive</span></a><span class="insert"> and </span><a href="#dfn-transitive" class="internalDFN"><span class="insert">transitive</span></a><span class="insert">.  (It is not necessarily antisymmetric,
+      meaning there can be cycles of distinct elements </span><span class="math"><span class="insert">x</span><sub><span class="insert">1</span></sub><span class="insert"> R x</span><sub><span class="insert">2</span></sub><span class="insert"> R ... R
+      x</span><sub><span class="insert">n</span></sub><span class="insert"> R x</span><sub><span class="insert">1</span></sub><span class="insert">.</span></span></li>
+    <li><dfn id="dfn-strict-partial-order"><span class="insert">strict partial order</span></dfn><span class="insert">: A strict partial order is a
+      relation that is </span><a href="#dfn-irreflexive" class="internalDFN"><span class="insert">irreflexive</span></a><span class="insert">, </span><a href="#dfn-asymmetric" class="internalDFN"><span class="insert">asymmetric</span></a><span class="insert"> and </span><a href="#dfn-transitive" class="internalDFN"><span class="insert">transitive</span></a><span class="insert">.</span></li>
+      <li><dfn id="dfn-strict-preorder"><span class="insert">strict preorder</span></dfn><span class="insert">: A strict preorder is a relation
+      that is </span><a href="#dfn-irreflexive" class="internalDFN"><span class="insert">irreflexive</span></a><span class="insert"> and </span><a href="#dfn-transitive" class="internalDFN"><span class="insert">transitive</span></a><span class="insert">.</span></li>
        <li> <dfn id="dfn-symmetric">symmetric</dfn>: A relation <span class="math">R</span> over <span class="math">X</span> is <a href="#dfn-symmetric" class="internalDFN">symmetric</a> if
-      for any elements <span class="math">x</span>, <span class="math">y</span> of <span class="math">X</span>, if <span class="math">x R y</span> then <span class="math">y R x</span>.</li>
+      for any elements <span class="delete">x, </span><span class="math"><span class="insert">x</span></span><span class="insert">, </span><span class="math">y</span> of <span class="delete">X,</span><span class="math"><span class="insert">X</span></span><span class="insert">,</span> if <span class="math">x R y</span> then <span class="math">y R <span class="delete">x.</span><span class="insert">x</span></span><span class="insert">.</span></li>
         <li> <dfn id="dfn-transitive">transitive</dfn>: A relation <span class="math">R</span> over <span class="math">X</span> is <a href="#dfn-transitive" class="internalDFN">transitive</a> if
-      for any elements <span class="math">x</span>, <span class="math">y</span>, <span class="math">z</span> of <span class="math">X</span>, if <span class="math">x R y</span> and <span class="math">y R z</span> then <span class="math">x R z</span>.</li>
+      for any elements <span class="delete">x, y, </span><span class="math"><span class="insert">x</span></span><span class="insert">, </span><span class="math"><span class="insert">y</span></span><span class="insert">, </span><span class="math">z</span> of <span class="delete">X,</span><span class="math"><span class="insert">X</span></span><span class="insert">,</span> if <span class="math">x R y<span class="delete"> and </span></span><span class="insert"> and </span><span class="math">y R z</span> then <span class="math">x R <span class="delete">z.</span><span class="insert">z</span></span><span class="insert">.</span></li>
      
      
       </ul> 
     </div> 
 
 
-      <div class="appendix informative section" id="termination">
-      <h2><span class="delete">C. </span>Termination of normalization</h2><p><em><span class="insert">This section is non-normative.</span></em></p>
-<div class="note">TODO: give proof that normalization terminates and
-      produces unique normal forms.
-  </div>
-</div>
+ 
+
+
+
+
+
+
+
+
+
+
+
+
+
 
 
  
 
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-</i></i><div id="references" class="appendix section"><h2><span class="secno"><span class="delete">D.</span><span class="insert">A.</span> </span>References</h2><div id="normative-references" class="section"><h3><span class="secno"><span class="delete">D.1</span><span class="insert">A.1</span> </span>Normative references</h3><dl class="bibliography"><dt id="bib-PROV-DM"><span class="insert">[PROV-DM]</span></dt><dd><span class="insert">Luc Moreau and Paolo Missier (eds.) Khalid Belhajjame, Reza B'Far, James Cheney, Stephen Cresswell, Yolanda Gil, Paul Groth, Graham Klyne, Jim McCusker, Simon Miles, James Myers, Satya Sahoo, and Curt Tilmes </span><a href="http://www.w3.org/TR/prov-dm/"><cite><span class="insert">PROV-DM: The PROV Data Model</span></cite></a><span class="insert">. 2012, Working Draft. URL: </span><a href="http://www.w3.org/TR/prov-dm/"><span class="insert">http://www.w3.org/TR/prov-dm/</span></a>
-</dd><dt id="bib-PROV-N">[PROV-N]</dt><dd>Luc Moreau and Paolo Missier (eds.), James Cheney, Stian Soiland-Reyes <a href="http://www.w3.org/TR/prov-n/"><cite>PROV-N: The Provenance Notation</cite></a>. 2011, Working Draft. URL: <a href="http://www.w3.org/TR/prov-n/">http://www.w3.org/TR/prov-n/</a>
+      <div class="appendix informative section" id="termination">
+      <h2><span class="secno"><span class="insert">A. </span></span><span class="insert">Termination of normalization</span></h2><p><em><span class="insert">This section is non-normative.</span></em></p>
+
+      <p><span class="insert">
+      We will show that normalization terminates, that is, that
+      applying definitions, inferences and uniqueness/key constraints
+      eventually either fails (due to constraint violation) or
+      terminates with a normal form.
+      </span></p>
+      <p><span class="insert">
+      First, since the inferences and constraints never introduce new
+      defined statements, for the purpose of termination we always expand
+      the definitions first and then consider only normalization of
+      instances in which there are no remaining defined statements.
+      </span></p>
+      <p><span class="insert">We will prove termination for the simple case where there are no
+      attributes.  For the general case, we will show that any
+      nontermination arising from an instance that does involve
+      attributes would also arise from one with no attributes.
+      </span></p>
+
+      <p><b><span class="insert">Termination for instances without attributes.</span></b><span class="insert">  For
+      these instances, uniqueness and key constraints can be
+      As shown in [</span><cite><a class="bibref" rel="biblioentry" href="#bib-DBCONSTRAINTS"><span class="insert">DBCONSTRAINTS</span></a></cite><span class="insert">], termination of normalization can be
+      shown by checking that the inference rules are </span><em><span class="insert">weakly
+      acyclic</span></em><span class="insert">.  In addition, weak acyclicity can be checked
+      in a modular fashion for our system, because there are only a few possible
+      cycles among statements.  The following table summarizes seven
+      </span><em><span class="insert">stages</span></em><span class="insert"> of the inference rules; because there are no
+      cycles among stages, it is sufficient to check weak acyclicity
+      of each stage independently.
+      </span></p>
+      
+      <table border="1">
+	<tbody><tr>
+	  <th><span class="insert">Stage #</span></th>
+	  <th><span class="insert">Inference</span></th>
+	  <th><span class="insert">Hypotheses</span></th>
+	  <th><span class="insert">Conclusions</span></th>
+	</tr>
+	<tr>
+	  <td><span class="insert">1</span></td>
+	  <td><span class="insert">19, 20, 21, 22</span></td>
+	  <td class="name"><span class="insert">specializationOf, mentionOf</span></td>
+	  <td class="name"><span class="insert">specializationOf, entity</span></td>
+	</tr>
+	<tr>
+	  <td><span class="insert">2</span></td>
+	  <td><span class="insert">7, 8, 13, 14</span></td>
+	  <td class="name"><span class="insert">entity, activity, wasAttributedTo, actedOnBehalfOf</span></td>
+	  <td class="name"><span class="insert">wasInvalidatedBy, wasStartedBy, wasEndedBy</span></td>
+	</tr>	
+	<tr>
+	  <td><span class="insert">3</span></td>
+	  <td><span class="insert">9, 10</span></td>
+	  <td class="name"><span class="insert">wasStartedBy, wasEndedBy</span></td>
+	  <td class="name"><span class="insert">wasGeneratedBy</span></td>
+	</tr>	
+	<tr>
+	  <td><span class="insert">4</span></td>
+	  <td><span class="insert">11, 12</span></td>
+	  <td class="name"><span class="insert">wasDerivedFrom</span></td>
+	  <td class="name"><span class="insert">wasGeneratedBy, used, alternateOf</span></td>
+	</tr>	
+	<tr>
+	  <td><span class="insert">5</span></td>
+	  <td><span class="insert">16, 17, 18</span></td>
+	  <td class="name"><span class="insert">alternateOf, entity</span></td>
+	  <td class="name"><span class="insert">alternateOf</span></td>
+	</tr>	
+	<tr>
+	  <td><span class="insert">6</span></td>
+	  <td><span class="insert">5, 6</span></td>
+	  <td class="name"><span class="insert">wasInformedBy, generated, used</span></td>
+	  <td class="name"><span class="insert">wasInformedBy, generated, used</span></td>
+	</tr>
+	<tr>
+	  <td><span class="insert">7</span></td>
+	  <td><span class="insert">15</span></td>
+	  <td><span class="insert">many</span></td>
+	  <td class="name"><span class="insert">wasInfluencedBy</span></td>
+	</tr>	
+
+     </tbody></table>
+      <p><span class="insert">
+      For each stage, we show that the stage is weakly acyclic.
+     </span></p><ul><li><span class="insert">Stages 1 and 5 have no rules with existential quantifiers,
+      so they are weakly acyclic.
+       </span></li>
+       <li><span class="insert">Stages 2, 3, 4, and 7 have no cycles among the formulas
+      involved, so they are weakly acyclic.
+       </span></li>
+       <li><span class="insert">For stage 6, we check weak acyclicity using the algorithm
+      in       [</span><cite><a class="bibref" rel="biblioentry" href="#bib-DBCONSTRAINTS"><span class="insert">DBCONSTRAINTS</span></a></cite><span class="insert">], namely:
+       </span><ul><li><span class="insert"> Given a formula </span><span class="math"><span class="insert">φ(x</span><sub><span class="insert">1</span></sub><span class="insert">,...,x</span><sub><span class="insert">n</span></sub><span class="insert">) ⇒
+      ∃y</span><sub><span class="insert">1</span></sub><span class="insert">,...,y</span><sub><span class="insert">m</span></sub><span class="insert">. ψ(x</span><sub><span class="insert">1</span></sub><span class="insert">,...,x</span><sub><span class="insert">n</span></sub><span class="insert">,y</span><sub><span class="insert">1</span></sub><span class="insert">,...,y</span><sub><span class="insert">m</span></sub><span class="insert">)</span></span></li>
+      <li><span class="insert">For every </span><span class="math"><span class="insert">x</span></span><span class="insert"> that occurs in  </span><span class="math"><span class="insert">ψ</span></span><span class="insert">, and for every
+      occurrence of </span><span class="math"><span class="insert">x</span></span><span class="insert"> in </span><span class="math"><span class="insert">φ</span></span><span class="insert"> in position </span><span class="math"><span class="insert">r.i</span></span><span class="insert">:
+      </span><ol><li><span class="insert">For every occurrence of </span><span class="math"><span class="insert">x</span></span><span class="insert"> in position </span><span class="math"><span class="insert">s.j</span></span><span class="insert">, add
+      an edge from </span><span class="math"><span class="insert">r.i</span></span><span class="insert"> to </span><span class="math"><span class="insert">s.j</span></span><span class="insert"> (if it does
+      not already exist).  </span></li>
+    <li><span class="insert">In addition, for every existentially quantified variable </span><span class="math"><span class="insert">y</span></span><span class="insert">
+      and for every occurrence of </span><span class="math"><span class="insert">y</span></span><span class="insert"> in </span><span class="math"><span class="insert">ψ</span></span><span class="insert"> in position
+      </span><span class="math"><span class="insert">t.k</span></span><span class="insert">, add a special edge from </span><span class="math"><span class="insert">r.i</span></span><span class="insert"> to </span><span class="math"><span class="insert">t.k</span></span><span class="insert"> (if it does
+      not already exist).
+      </span></li>
+      </ol>
+      </li>
+      </ul><span class="insert">
+      Weak
+      acyclicity means that there is no cycle involving a special
+      edge in the resulting graph.  For the two inferences in stage 6,
+      the following dependency graph witnesses weak
+      acyclicity.  The nodes </span><span class="name"><span class="insert">wasGeneratedBy.i</span></span><span class="insert">,
+      </span><span class="name"><span class="insert">wasInformedBy.i</span></span><span class="insert">, and </span><span class="name"><span class="insert">used.i</span></span><span class="insert"> denote the </span><span class="math"><span class="insert">i</span></span><span class="insert">th arguments
+      of the corresponding predicates.  The solid edges are ordinary
+      edges, and the dashed edges are </span><em><span class="insert">special</span></em><span class="insert"> edges.  
+       </span></li>
+       </ul>
+
+       
+       <img src="weak-acyclic-6.svg" alt="Graph illustrating weak
+       acyclicity of stage 6">
+       
+      <p><b><span class="insert">Termination for instances with attributes.</span></b><span class="insert">
+       We can translate an instance with attributes to an alternative,
+       purely relational language by introducing a relation
+       </span><span class="name"><span class="insert">attribute(id,a,v)</span></span><span class="insert"> and replacing every statement of the form
+       </span><span class="name"><span class="insert">r(id;a1,...,a</span><sub><span class="insert">n</span></sub><span class="insert">,[(k</span><sub><span class="insert">1</span></sub><span class="insert">,v</span><sub><span class="insert">1</span></sub><span class="insert">),...,(k</span><sub><span class="insert">m</span></sub><span class="insert">,v</span><sub><span class="insert">m</span></sub><span class="insert">)])</span></span><span class="insert"> with
+       </span><span class="name"><span class="insert">r(id;a1,...,a</span><sub><span class="insert">n</span></sub><span class="insert">),attribute(id,k</span><sub><span class="insert">1</span></sub><span class="insert">,v</span><sub><span class="insert">1</span></sub><span class="insert">),...,attribute(id,k</span><sub><span class="insert">m</span></sub><span class="insert">,v</span><sub><span class="insert">m</span></sub><span class="insert">)</span></span><span class="insert">,
+       and similarly for </span><span class="name"><span class="insert">entity</span></span><span class="insert">, </span><span class="name"><span class="insert">activity</span></span><span class="insert"> and </span><span class="name"><span class="insert">agent</span></span><span class="insert">
+       attributes.  The inference rules can also be translated so as
+       to work on these instances, and a similar argument to
+       the above shows that inference is terminating on instances with
+       explicit attributes.  Any infinite
+       sequence of normalization steps on the original instance would
+       lead to an infinite sequence of translated normalization steps
+       on instances with explicit attributes.
+       </span></p>
+</div>
+
+<div class="appendix section" id="acknowledgements"> 
+      <h2><span class="secno"><span class="insert">B. </span></span><span class="insert">Acknowledgements</span></h2> 
+      <p><span class="insert"> 
+
+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 (</span><acronym title="World Wide Web Consortium"><span class="insert">W3C</span></acronym><span class="insert">/</span><acronym title="European Research Consortium for Informatics and Mathematics"><span class="insert">ERCIM</span></acronym><span class="insert">), Paul Groth, Tim Lebo, Simon Miles, Stian Soiland-Reyes,  for their thorough reviews.
+      </span></p> 
+
+<p><span class="insert">
+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 (</span><acronym title="World Wide Web Consortium"><span class="insert">W3C</span></acronym><span class="insert">/</span><acronym title="Massachusetts Institute of Technology"><span class="insert">MIT</span></acronym><span class="insert">),
+Jörn Hees (German Research Center for Artificial Intelligence (DFKI) Gmbh),
+Ivan Herman, (</span><acronym title="World Wide Web Consortium"><span class="insert">W3C</span></acronym><span class="insert">/</span><acronym title="European Research Consortium for Informatics and Mathematics"><span class="insert">ERCIM</span></acronym><span class="insert">),
+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).
+</span></p>
+    </div> 
+
+ 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div id="references" class="appendix section"><h2><span class="secno">C. </span>References</h2><div id="normative-references" class="section"><h3><span class="secno">C.1 </span>Normative references</h3><dl class="bibliography"><dt id="bib-IRI"><span class="insert">[IRI]</span></dt><dd><span class="insert">M. Duerst, M. Suignard. </span><a href="http://www.ietf.org/rfc/rfc3987.txt"><cite><span class="insert">Internationalized Resource Identifiers (IRI).</span></cite></a><span class="insert"> January 2005. Internet RFC 3987. URL: </span><a href="http://www.ietf.org/rfc/rfc3986.txt"><span class="insert">http://www.ietf.org/rfc/rfc3987.txt</span></a> 
+</dd><dt id="bib-PROV-DM"><span class="insert">[PROV-DM]</span></dt><dd><span class="insert">Luc Moreau and Paolo Missier (eds.) Khalid Belhajjame, Reza B'Far, James Cheney, Stephen Cresswell, Yolanda Gil, Paul Groth, Graham Klyne, Jim McCusker, Simon Miles, James Myers, Satya Sahoo, and Curt Tilmes </span><a href="http://www.w3.org/TR/prov-dm/"><cite><span class="insert">PROV-DM: The PROV Data Model</span></cite></a><span class="insert">. 2012, Working Draft. URL: </span><a href="http://www.w3.org/TR/prov-dm/"><span class="insert">http://www.w3.org/TR/prov-dm/</span></a>
+</dd><dt id="bib-PROV-N"><span class="insert">[PROV-N]</span></dt><dd><span class="insert">Luc Moreau and Paolo Missier (eds.), James Cheney, Stian Soiland-Reyes </span><a href="http://www.w3.org/TR/prov-n/"><cite><span class="insert">PROV-N: The Provenance Notation</span></cite></a><span class="insert">. 2011, Working Draft. URL: </span><a href="http://www.w3.org/TR/prov-n/"><span class="insert">http://www.w3.org/TR/prov-n/</span></a>
 </dd><dt id="bib-RDF"><span class="insert">[RDF]</span></dt><dd><span class="insert">Graham Klyne and Jeremy J. Carroll (eds.) </span><a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/"><cite><span class="insert">Resource Description Framework (RDF): Concepts and Abstract Syntax</span></cite></a><span class="insert">. 2004, W3C Recommendation. URL: </span><a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210//"><span class="insert">http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/</span></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"><span class="delete">D.2</span><span class="insert">A.2</span> </span>Informative references</h3><dl class="bibliography"><dt id="bib-CHR">[CHR]</dt><dd>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>
-</dd><dt id="bib-CLOCK">[CLOCK]</dt><dd>Lamport, L. <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.
-</dd><dt id="bib-DBCONSTRAINTS">[DBCONSTRAINTS]</dt><dd> Ronald Fagin, Phokion G. Kolaitis, Renée J. Miller, and 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>
+</dd></dl></div><div id="informative-references" class="section"><h3><span class="secno">C.2 </span>Informative references</h3><dl class="bibliography"><dt id="bib-CHR"><span class="insert">[CHR]</span></dt><dd><span class="insert">Thom Frühwirth </span><a href="http://constraint-handling-rules.org/"><cite><span class="insert">Constraint        Handling Rules</span></cite></a><span class="insert">. Cambridge University Press  URL: </span><a href="http://constraint-handling-rules.org/"><span class="insert">http://constraint-handling-rules.org/</span></a>
+</dd><dt id="bib-CLOCK">[CLOCK]</dt><dd>Lamport, L. <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><span class="delete">.Communications</span><span class="insert">. Communications</span> 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.
+</dd><span class="delete">[CSP]</span><dt id="bib-DBCONSTRAINTS"><span class="insert">[DBCONSTRAINTS]</span></dt><dd><span class="delete">Hoare, C. A. R. </span><span class="insert"> Ronald Fagin, Phokion G. Kolaitis, Renée J. Miller, and Lucian Popa  </span><a href="http://dx.doi.org/10.1016/j.tcs.2004.10.033"><cite><span class="delete">Communicating Sequential Processes</span><span class="insert">Data        exchange: Semantics and query answering</span></cite></a><span class="delete">.Prentice-Hall. 1985URL: </span><span class="delete">http://www.usingcsp.com/cspbook.pdf</span><span class="insert">.  Theoretical computer science 336(1):89-124   Elsevier  URL: </span><a href="http://dx.doi.org/10.1016/j.tcs.2004.10.033"><span class="insert">http://dx.doi.org/10.1016/j.tcs.2004.10.033</span></a>
 </dd><dt id="bib-Logic">[Logic]</dt><dd>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>
-</dd><span class="delete">[PROV-DM]</span><dt id="bib-PROV-O"><span class="insert">[PROV-O]</span></dt><dd><span class="delete">Luc Moreau and Paolo Missier</span><span class="insert">Timothy Lebo, Satya Sahoo and Deborah McGuinness</span> (eds.) Khalid Belhajjame, <span class="delete">Reza B'Far, </span>James Cheney, <span class="delete">Stephen Cresswell, Yolanda Gil, Paul Groth, Graham Klyne, Jim McCusker, Simon Miles, James Myers, Satya Sahoo, and Curt Tilmes </span><span class="insert">David Corsar, Daniel Garijo, Stian Soiland-Reyes, and Stephan Zednik </span><a href="http://www.w3.org/TR/prov-o/"><cite><span class="delete">PROV-DM: The PROV Data</span><span class="insert">Provenance Formal</span> Model</cite></a>. <span class="delete">2012,</span><span class="insert">2011,</span> Working Draft. URL: <span class="delete">http://www.w3.org/TR/prov-dm/</span><a href="http://www.w3.org/TR/prov-o/"><span class="insert">http://www.w3.org/TR/prov-o/</span></a>
+</dd><span class="delete">[PROV-DM]</span><dt id="bib-PROV-O"><span class="insert">[PROV-O]</span></dt><dd><span class="delete">Luc Moreau and Paolo Missier</span><span class="insert">Timothy Lebo, Satya Sahoo and Deborah McGuinness</span> (eds.) Khalid Belhajjame, <span class="delete">Reza B'Far, Stephen Cresswell, Yolanda Gil, Paul Groth, Graham Klyne, Jim McCusker, Simon Miles, </span>James <span class="delete">Myers, Satya Sahoo, and Curt Tilmes</span><span class="insert">Cheney, David Corsar, Daniel Garijo, Stian Soiland-Reyes, and Stephan Zednik </span><a href="http://www.w3.org/TR/prov-o/"><cite><span class="delete">PROV-DM: The PROV Data</span><span class="insert">Provenance Formal</span> Model</cite></a>. <span class="delete">2012,</span><span class="insert">2011,</span> Working Draft. URL: <span class="delete">http://www.w3.org/TR/prov-dm/</span><a href="http://www.w3.org/TR/prov-o/"><span class="insert">http://www.w3.org/TR/prov-o/</span></a>
 </dd><dt id="bib-PROV-SEM">[PROV-SEM]</dt><dd>James Cheney <a href="http://www.w3.org/2011/prov/wiki/FormalSemanticsStrawman"><cite>Formal Semantics Strawman</cite></a>. 2011, Work in progress. URL: <a href="http://www.w3.org/2011/prov/wiki/FormalSemanticsStrawman">http://www.w3.org/2011/prov/wiki/FormalSemanticsStrawman</a>
-</dd><span class="delete">[RDF]</span><span class="delete">Graham Klyne and Jeremy J. Carroll (eds.) </span><span class="delete">Resource Description Framework (RDF): Concepts and Abstract Syntax</span><span class="delete">. 2004, W3C Recommendation. URL: </span><span class="delete">http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/</span>
-</dl></div></div></body></html>
-
+</dd></dl></div></div></body></html>
+
--- a/model/diff/Makefile	Thu Sep 06 10:29:40 2012 +0100
+++ b/model/diff/Makefile	Thu Sep 06 10:34:15 2012 +0100
@@ -19,4 +19,4 @@
 
 c.diff:
 #	htmldiff ../releases/ED-prov-constraints-20120723/prov-constraints.html prov-constraints.html > ../diff-c.html
-	htmldiff ../releases/WD-prov-constraints-20120503/prov-constraints.html prov-constraints.html > ../diff-c.html
+	htmldiff ../releases/WD-prov-constraints-20120503/Overview.html ../releases/WD-prov-constraints-20120911/Overview.html > ../diff-c.html