* fixed prov-sem
authorJames Cheney <jcheney@inf.ed.ac.uk>
Mon, 17 Dec 2012 18:45:15 +0000
changeset 5374 400289722546
parent 5373 b936f389b3b5
child 5376 2477121ed7de
* fixed prov-sem
semantics/prov-sem.html
--- a/semantics/prov-sem.html	Mon Dec 17 16:38:35 2012 +0000
+++ b/semantics/prov-sem.html	Mon Dec 17 18:45:15 2012 +0000
@@ -1,9 +1,15 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html>
+
 <html><head> 
     <title>Semantics of the Provenance Data Model</title> 
-    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></meta> 
-    
-
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
+    /> 
+    <!-- 
+      === NOTA BENE ===
+      For the three scripts below, if your spec resides on dev.w3 you can check them
+      out in the same tree and use relative links so that they'll work offline,
+     -->
+<!-- PM -->
     <style type="text/css">
       .note { font-size:small; margin-left:50px }
 
@@ -530,11 +536,12 @@
      </style>
 
     <script src="http://dev.w3.org/2009/dap/ReSpec.js/js/respec.js" class="remove"></script>  
-
+<!--    <script src="http://www.w3.org/Tools/respec/respec-w3c-common" class="remove" async></script> -->
 
     <script src="http://www.w3.org/2007/OWL/toggles.js" class="remove"></script> 
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" class="remove"></script>
-    <script type="text/javascript" class="remove" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML">
+    <script type="text/javascript" class="remove"
+            src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML">
     </script>
 <script type="text/x-mathjax-config" class="remove">
 MathJax.Hub.Config({
@@ -546,12 +553,355 @@
  });
 </script>
   <script class="remove"> 
-//
+//<!--
+
+
+
+      function updateRules() {
+        var count=1;
+        $('.constraint,.definition,.inference').each(function(index) {
+
+          var myid=$(this).attr('id');
+          var mycount=count++;
+
+          if (myid==undefined) {
+            myid='rule_' + mycount;
+            $(this).attr('id',myid);
+          }
+
+          var myClass=$(this).attr('class');
+
+          var myTitle=capitaliseFirstLetter(myClass) + ' ' + mycount + ' (' + myid + ')';
+          
+          $(this).attr('data-count', mycount)
+                 .attr('data-title',myTitle).prepend($('<div>').addClass('ruleTitle')
+                                                          .append($('<a>').addClass('internalDFN').attr('href','#'+myid).append(myTitle)));
+
+          //console.log( "rule for " + myid + " " + mycount);
+
+        });
+		   
+        $('.constraint-example,.definition-example,.inference-example').each(function(index) {
+
+          var myid=$(this).attr('id');
+          var mycount='NNN';
+
+          if (myid==undefined) {
+            myid='rule_' + mycount;
+            $(this).attr('id',myid);
+          }
+
+          var myClass=$(this).attr('class');
+
+          var myTitle=capitaliseFirstLetter(myClass) + ' ' + mycount + ' (' + myid + ')';
+          
+          $(this).attr('data-count', mycount)
+                 .attr('data-title',myTitle).prepend($('<div>').addClass('ruleTitle')
+                                                          .append($('<a>').addClass('internalDFN').attr('href','#'+myid).append(myTitle)));
+
+          //console.log( "rule for " + myid + " " + mycount);
+
+        });
+      }
+
+          function capitaliseFirstLetter(string)
+          {
+          return string.charAt(0).toUpperCase() + string.slice(1);
+          }
+
+
+      function updateRulesRefs() {
+        $('.rule-ref').each(function(index) {
+
+          myhref=$(this).attr('href');
+
+          //console.log( "example ref for " + myhref);
+
+          mytitle=$(myhref).attr('data-title');
+
+          console.log( "rule ref for " + myhref + " " + mytitle);
+
+          $(this).children('span').replaceWith(function(){return $('<span>').append(mytitle)});
+
+        });
+
+        $('.rule-text').each(function(index) {
+
+          myhref=$(this).attr('href');
+          $(this).attr('href', myhref + '_text');
+
+          //console.log( "example ref for " + myhref);
+
+          mytitle=$(myhref).attr('data-title');
+
+          console.log( "rule ref for " + myhref + " " + mytitle);
+
+          $(this).children('span').replaceWith(function(){return $('<span>').append(mytitle)});
+
+        });
+      }
+      function updateExamples() {
+        var count=1;
+        $('.anexample').each(function(index) {
+
+          var myid=$(this).attr('id');
+          var mycount=count++;
+
+          if (myid==undefined) {
+            myid='example_' + mycount;
+            $(this).attr('id',myid);
+          }
+
+          
+          $(this).attr('data-count', mycount).prepend($('<div>').addClass('anexampleTitle')
+                                                          .append($('<a>').addClass('internalDFN').attr('href','#'+myid).append("Example " + mycount)));
+
+          //console.log( "example for " + myid + " " + mycount);
+
+        });
+      }
+
+
+      function updateExamplesRefs() {
+        $('.anexample-ref').each(function(index) {
+
+          myhref=$(this).attr('href');
+
+              //console.log( "example ref for " + myhref);
+
+          mycount=$(myhref).attr('data-count');
+
+              //console.log( "example ref for " + myhref + " " + mycount);
+
+          $(this).children('span').replaceWith(function(){return $('<span>').append("Example " + mycount)});
+
+        });
+      };
+
+
+        // function to replace figcaption since not allowed by prov rules, and not transformed by respec.js
+      function updateFigCaptions() {
+	var figureCount=1;
+
+        $('figcaption').each(function(index) {
+
+          var myid=$(this).attr('id');
+          var mycount=figureCount++;
+
+          $(this).replaceWith(function(){return $('<span>').addClass('figcaption').attr('data-count', mycount).attr('id',myid).append("Figure " + mycount)
+.append($('<sup>').append($('<a>').addClass('internalDFN').attr('href','#'+myid).append($('<span>').addClass('diamond').append(" &#9674;:")))).append(" ")
+.append($(this).contents())});
+        });
+      }
+
+        // function to replace figure since not allowed by prov rules, and not transformed by respec.js
+      function updateFigures() {
+        $('figure').each(function(index) {
+
+          var myid=$(this).attr('id');
+          var mystyle=$(this).attr('style');
+
+             console.log( "figure " + myid + " " + $(this).contents());
+
+          $(this).replaceWith(function(){
+                                          var aNewElement=$('<span>').addClass('figure').append($(this).contents());
+                                          if (myid) {
+                                            aNewElement.attr('id',myid)
+                                          }                                          
+                                          if (mystyle) {
+                                            aNewElement.attr('style',mystyle)
+                                          }                                          
+                                          return aNewElement });
+
+
+
+        //          $(this).replaceWith(function(){return $('<span>').addClass('figure').attr('id',myid).attr('style',mystyle).append($(this).contents())});
+             console.log( "figure " + myid);
+        });
+      }
+
+
+      function removeDataAttributes() {
+
+
+        $('.anexample').each(function(index) {
+          $(this).removeAttr('data-count');
+        });
+
+        $('caption').each(function(index) {
+          $(this).removeAttr('data-count');
+        });
+
+        $('.figcaption').each(function(index) {
+          $(this).removeAttr('data-count');
+        });
+
+        $('.definition').each(function(index) {
+          $(this).removeAttr('data-count');
+          $(this).removeAttr('data-title');
+        });
+
+        $('.inference').each(function(index) {
+          $(this).removeAttr('data-count');
+          $(this).removeAttr('data-title');
+        });
+
+        $('.constraint').each(function(index) {
+          $(this).removeAttr('data-count');
+          $(this).removeAttr('data-title');
+        });
+
+        $('.inference-example').each(function(index) {
+          $(this).removeAttr('data-count');
+          $(this).removeAttr('data-title');
+        });
+
+        $('.constraint-example').each(function(index) {
+          $(this).removeAttr('data-count');
+          $(this).removeAttr('data-title');
+        });
+
+        $('.definition-example').each(function(index) {
+          $(this).removeAttr('data-count');
+          $(this).removeAttr('data-title');
+        });
+}				    
+
+      $(document).ready(function(){
+        updateRules();
+        updateRulesRefs();
+        updateFigCaptions();
+	if (typeof String.prototype.startsWith != 'function') {
+            String.prototype.startsWith = function (str) {
+					    return this.indexOf(str) == 0;
+					  };
+        }
+	if (typeof String.prototype.contains != 'function') {
+            String.prototype.contains  = function (str) {
+					    return this.indexOf(str) >= 0;
+					  };
+        }
+
+
+
+      });
+//-->
 </script>
     <script src="../model/provbib.js" class="remove"></script>
 
     <script class="remove"> 
-//
+//<!--
+
+      var addExtraReferences = function() {
+          for (var k in extraReferences)
+              berjon.biblio[k] = extraReferences[k];
+      };
+
+      var extraReferences = {
+        "CHR":
+         "Thom Frühwirth. "+
+         "<a        href=\"http://constraint-handling-rules.org/\"><cite>Constraint        Handling Rules</cite></a>."+
+         " Cambridge University Press "+
+         " URL: <a href=\"http://constraint-handling-rules.org/\">http://constraint-handling-rules.org/</a>",
+        "CLOCK":
+         "L. Lamport. "+
+         "<a href=\"http://research.microsoft.com/users/lamport/pubs/time-clocks.pdf\"><cite>Time, clocks, and the ordering of events in a distributed system</cite></a>."+
+         " Communications of the ACM 21 (7): 558–565. 1978. "+
+         "URL: <a href=\"http://research.microsoft.com/users/lamport/pubs/time-clocks.pdf\">http://research.microsoft.com/users/lamport/pubs/time-clocks.pdf</a> " +
+         "DOI: doi:10.1145/359545.359563.",
+        "CSP":
+         "Hoare, C. A. R. "+
+         "<a href=\"http://www.usingcsp.com/cspbook.pdf\"><cite>Communicating Sequential Processes</cite></a>."+
+         "Prentice-Hall. 1985"+
+         "URL: <a href=\"http://www.usingcsp.com/cspbook.pdf\">http://www.usingcsp.com/cspbook.pdf</a>",
+        "DBCONSTRAINTS":
+         " Ronald Fagin; Phokion G. Kolaitis; Renée J. Miller; Lucian Popa. "+
+         " <a href=\"http://dx.doi.org/10.1016/j.tcs.2004.10.033\"><cite>Data        exchange: Semantics and query answering</cite></a>.  Theoretical computer science 336(1):89-124 "+
+         "  Elsevier "+
+         " URL: <a href=\"http://dx.doi.org/10.1016/j.tcs.2004.10.033\">http://dx.doi.org/10.1016/j.tcs.2004.10.033</a>",
+	    "Logic":
+          "W. E. Johnson. "+
+          "<a href=\"http://www.ditext.com/johnson/intro-3.html\"><cite>Logic: Part III</cite></a>."+
+          "1924. "+
+          "URL: <a href=\"http://www.ditext.com/johnson/intro-3.html\">http://www.ditext.com/johnson/intro-3.html</a>",
+
+         "RDF":
+          "Graham Klyne and Jeremy J. Carroll (eds.) "+
+          "<a href=\"http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/\"><cite>Resource Description Framework (RDF): Concepts and Abstract Syntax</cite></a>. "+
+          "2004, W3C Recommendation. "+
+          "URL: <a href=\"http://www.w3.org/TR/2004/REC-rdf-concepts-20040210//\">http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/</a>",
+};
+      var respecConfig = {
+          // specification status (e.g. WD, LCWD, NOTE, etc.). If in doubt use ED.
+          specStatus:           "ED",
+          
+          // the specification's short name, as in http://www.w3.org/TR/short-name/
+          shortName:            "prov-sem",
+ 
+          // if your specification has a subtitle that goes below the main
+          // formal title, define it here
+          //subtitle : "<a href=\"diff-c.html\">Changes</a> since Last Call Working Draft  (LC)",
+
+
+
+          // if you wish the publication date to be other than today, set this
+         // publishDate:  "",
+
+          // if the specification's copyright date is a range of years, specify
+          // the start date here:
+          copyrightStart: "2012",
+ 
+          // if there is a previously published draft, uncomment this and set its YYYY-MM-DD date
+          // and its maturity status
+          
+          // if there a publicly available Editor's Draft, this is the link
+          edDraftURI:           "http://dvcs.w3.org/hg/prov/raw-file/default/semantics/prov-sem.html",
+
+
+
+ 
+          // if this is a LCWD, uncomment and set the end of its review period
+
+          // if you want to have extra CSS, append them to this list
+          // it is recommended that the respec.css stylesheet be kept
+          //extraCSS:             ["http://dev.w3.org/2009/dap/ReSpec.js/css/respec.css", "./extra.css"],
+ 
+          // editors, add as many as you like
+          // only "name" is required
+          editors:  [
+              { name: "James Cheney", url:
+          "http://homepages.inf.ed.ac.uk/jcheney", company:
+          "University of Edinburgh" },
+         ],
+ 
+          // authors, add as many as you like. 
+          // This is optional, uncomment if you have authors as well as editors.
+          // only "name" is required. Same format as editors.
+ 
+//authors:  [] ,
+         
+          // name of the WG
+          wg:           "Provenance Working Group",
+          
+          // URI of the public WG page
+          wgURI:        "http://www.w3.org/2011/prov/",
+          
+          // name (with the @w3c.org) of the public mailing to which comments are due
+          wgPublicList: "public-prov-comments",
+          
+          // URI of the patent status for this WG, for Rec-track documents
+          // !!!! IMPORTANT !!!!
+          // This is important for Rec-track documents, do not copy a patent URI from a random
+          // document unless you know what you're doing. If in doubt ask your friendly neighbourhood
+          // Team Contact.
+          wgPatentURI:  "http://www.w3.org/2004/01/pp-impl/46974/status",
+
+          // Add extraReferences to bibliography database
+          preProcess: [addExtraReferences, addProvReferences],
+
+          postProcess: [updateFigures, removeDataAttributes, checkLinksToW3CReports],
+      };
+//-->
     </script> 
   </head> 
   <body> 
@@ -580,7 +930,8 @@
 <li> <a href="http://www.w3.org/TR/2012/CR-prov-o-20121211/">PROV-O</a> (Recommendation), the PROV ontology, an OWL2 ontology allowing the mapping of PROV to RDF [[!PROV-O]];</li>
 <li> <a href="http://www.w3.org/TR/2012/CR-prov-dm-20121211/">PROV-DM</a> (Recommendation), the PROV data model for provenance [[!PROV-DM]];</li>
 <li> <a href="http://www.w3.org/TR/2012/CR-prov-n-20121211/">PROV-N</a> (Recommendation), a notation for provenance aimed at human consumption [[!PROV-N]];</li>
-<li> <a href="http://www.w3.org/TR/2012/CR-prov-constraints-20121211/">PROV-CONSTRAINTS</a>
+<li> <a
+href="http://www.w3.org/TR/2012/CR-prov-constraints-20121211/">PROV-CONSTRAINTS</a>
 (Recommendation), a set of constraints applying to the PROV data model;</li>
 <li> <a href="http://www.w3.org/TR/2012/WD-prov-aq-20120619/">PROV-AQ</a> (Note), the mechanisms for accessing and querying provenance [[PROV-AQ]]; </li>
 <li> <a href="http://www.w3.org/TR/2012/WD-prov-xml-20121211/">PROV-XML</a> (Note),  an XML schema for the PROV data model [[PROV-XML]].</li>
@@ -623,7 +974,8 @@
 
 <p>In this document, logical formulas contain variables written as
     lower-case identifiers.  Some of these variables are written
-    beginning with the underscore character <span class="name">_</span>, by convention, to indicate that they
+    beginning with the underscore character <span
+    class="name">_</span>, by convention, to indicate that they
     appear only once in the formula.  Such variables are
     provided merely as an aid to the reader.  </p>
 
@@ -675,46 +1027,28 @@
 </section>
 
 
-<section id="test2">
-<h2> BlahTeXML text </h2>
-
-<div xmlns:b="http://gva.noekeon.org/blahtexml">
-  <span><math xmlns="http://www.w3.org/1998/Math/MathML"></math></span>
-  <span><math xmlns="http://www.w3.org/1998/Math/MathML"></math></span>
-  <span><math xmlns="http://www.w3.org/1998/Math/MathML"></math></span>
-  <span><math xmlns="http://www.w3.org/1998/Math/MathML"></math></span>
-  <span><math xmlns="http://www.w3.org/1998/Math/MathML"></math></span>
-  <span><math xmlns="http://www.w3.org/1998/Math/MathML"></math></span>
-  <span><math xmlns="http://www.w3.org/1998/Math/MathML"></math></span>
-  <span><math xmlns="http://www.w3.org/1998/Math/MathML"><mo lspace="0" rspace="0">∀</mo><mi>i</mi><mspace width="0"></mspace><mi>d</mi><mo lspace="0" rspace="0.167em">,</mo><msub><mi>a</mi><mn>2</mn></msub><mo lspace="0" rspace="0.167em">,</mo><msub><mi>a</mi><mn>1</mn></msub><mo lspace="0" rspace="0.167em">,</mo><mi>a</mi><mspace width="0"></mspace><mi>t</mi><mspace width="0"></mspace><mi>t</mi><mspace width="0"></mspace><mi>r</mi><mspace width="0"></mspace><mi>s</mi><mo lspace="0" rspace="0.333em">.</mo><mi>w</mi><mspace width="0"></mspace><mi>a</mi><mspace width="0"></mspace><mi>s</mi><mspace width="0"></mspace><mi>I</mi><mspace width="0"></mspace><mi>n</mi><mspace width="0"></mspace><mi>f</mi><mspace width="0"></mspace><mi>o</mi><mspace width="0"></mspace><mi>r</mi><mspace width="0"></mspace><mi>m</mi><mspace width="0"></mspace><mi>e</mi><mspace width="0"></mspace><mi>d</mi><mspace width="0"></mspace><mi>B</mi><mspace width="0"></mspace><mi>y</mi><mo lspace="0" rspace="0" stretchy="false">(</mo><mi>i</mi><mspace width="0"></mspace><mi>d</mi><mo lspace="0" rspace="0.167em">,</mo><msub><mi>a</mi><mn>2</mn></msub><mo lspace="0" rspace="0.167em">,</mo><msub><mi>a</mi><mn>1</mn></msub><mo lspace="0" rspace="0.167em">,</mo><mi>a</mi><mspace width="0"></mspace><mi>t</mi><mspace width="0"></mspace><mi>t</mi><mspace width="0"></mspace><mi>r</mi><mspace width="0"></mspace><mi>s</mi><mo lspace="0" rspace="0.278em" stretchy="false">)</mo><mo lspace="0" rspace="0.278em">⇒</mo><mo lspace="0" rspace="0">∃</mo><mi>e</mi><mo lspace="0" rspace="0.167em">,</mo><mi>g</mi><mspace width="0"></mspace><mi>e</mi><mspace width="0"></mspace><mi>n</mi><mo lspace="0" rspace="0.167em">,</mo><msub><mi>t</mi><mn>1</mn></msub><mo lspace="0" rspace="0.167em">,</mo><mi>u</mi><mspace width="0"></mspace><mi>s</mi><mspace width="0"></mspace><mi>e</mi><mo lspace="0" rspace="0.167em">,</mo><msub><mi>t</mi><mn>2</mn></msub><mo lspace="0" rspace="0.333em">.</mo><mi>w</mi><mspace width="0"></mspace><mi>a</mi><mspace width="0"></mspace><mi>s</mi><mspace width="0"></mspace><mi>G</mi><mspace width="0"></mspace><mi>e</mi><mspace width="0"></mspace><mi>n</mi><mspace width="0"></mspace><mi>e</mi><mspace width="0"></mspace><mi>r</mi><mspace width="0"></mspace><mi>a</mi><mspace width="0"></mspace><mi>t</mi><mspace width="0"></mspace><mi>e</mi><mspace width="0"></mspace><mi>d</mi><mspace width="0"></mspace><mi>B</mi><mspace width="0"></mspace><mi>y</mi><mo lspace="0" rspace="0" stretchy="false">(</mo><mi>g</mi><mspace width="0"></mspace><mi>e</mi><mspace width="0"></mspace><mi>n</mi><mo lspace="0" rspace="0.167em">,</mo><mi>e</mi><mo lspace="0" rspace="0.167em">,</mo><msub><mi>a</mi><mn>1</mn></msub><mo lspace="0" rspace="0.167em">,</mo><msub><mi>t</mi><mn>1</mn></msub><mo lspace="0" rspace="0.167em">,</mo><mo lspace="0" rspace="0" stretchy="false">[</mo><mo lspace="0" rspace="0" stretchy="false">]</mo><mo lspace="0" rspace="0.222em" stretchy="false">)</mo><mo lspace="0" rspace="0.222em">∧</mo><mi>u</mi><mspace width="0"></mspace><mi>s</mi><mspace width="0"></mspace><mi>e</mi><mspace width="0"></mspace><mi>d</mi><mo lspace="0" rspace="0" stretchy="false">(</mo><mi>u</mi><mspace width="0"></mspace><mi>s</mi><mspace width="0"></mspace><mi>e</mi><mo lspace="0" rspace="0.167em">,</mo><msub><mi>a</mi><mn>2</mn></msub><mo lspace="0" rspace="0.167em">,</mo><mi>e</mi><mo lspace="0" rspace="0.167em">,</mo><msub><mi>t</mi><mn>2</mn></msub><mo lspace="0" rspace="0.167em">,</mo><mo lspace="0" rspace="0" stretchy="false">[</mo><mo lspace="0" rspace="0" stretchy="false">]</mo><mo lspace="0" rspace="0" stretchy="false">)</mo></math></span>
-  <span><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><mstyle displaystyle="true"><mi>exp</mi><mo lspace="0" rspace="0" stretchy="false">(</mo><mo lspace="0" rspace="0">-</mo><mi>γ</mi><mspace width="0"></mspace><mi>x</mi><mo lspace="0" rspace="0" stretchy="false">)</mo></mstyle></math></span>
-  When <span><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>a</mi><mo lspace="0.278em" rspace="0.278em">≠</mo><mn>0</mn></math></span>, there are two solutions to <span><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>a</mi><mspace width="0"></mspace><msup><mi>x</mi><mn>2</mn></msup><mo lspace="0.222em" rspace="0.222em">+</mo><mi>b</mi><mspace width="0"></mspace><mi>x</mi><mo lspace="0.222em" rspace="0.222em">+</mo><mi>c</mi><mo lspace="0.278em" rspace="0.278em">=</mo><mn>0</mn></math></span> and they are
-<span><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><mstyle displaystyle="true"><mi>x</mi><mo lspace="0.278em" rspace="0.278em">=</mo><mfrac><mrow><mo lspace="0" rspace="0">-</mo><mi>b</mi><mo lspace="0.222em" rspace="0.222em">±</mo><msqrt><msup><mi>b</mi><mn>2</mn></msup><mo lspace="0.222em" rspace="0.222em">-</mo><mn>4</mn><mi>a</mi><mspace width="0"></mspace><mi>c</mi></msqrt></mrow><mrow><mn>2</mn><mi>a</mi></mrow></mfrac></mstyle></math></span>.
-</div>
-
-</section>
 
 <section id="inferences">
 <h2>Inferences</h2>
 
-<div class="inference" id="communication-generation-use-inference"><span class="math">∀ id,a<sub>2</sub>,a<sub>1</sub>,attrs. wasInformedBy(id,a<sub>2</sub>,a<sub>1</sub>,attrs) ⟹ ∃ e,gen,t<sub>1</sub>,use,t<sub>2</sub>. wasGeneratedBy(gen,e,a<sub>1</sub>,t<sub>1</sub>,[]) ∧ used(use,a<sub>2</sub>,e,t<sub>2</sub>,[])</span></div>
-<div class="inference" id="generation-use-communication-inference"><span class="math">∀ gen,a<sub>1</sub>,t<sub>1</sub>,attrs<sub>1</sub>,id<sub>2</sub>,a<sub>2</sub>,t<sub>2</sub>,attrs<sub>2</sub>. wasGeneratedBy(gen,e,a<sub>1</sub>,t<sub>1</sub>,attrs<sub>1</sub>) ∧ used(id<sub>2</sub>,a<sub>2</sub>,e,t<sub>2</sub>,attrs<sub>2</sub>) ⟹ ∃ id. wasInformedBy(id,a<sub>2</sub>,a<sub>1</sub>,[])</span></div>
-<div class="inference" id="entity-generation-invalidation-inference"><span class="math">∀ gen,e,a<sub>1</sub>,t<sub>1</sub>,attrs<sub>1</sub>,id<sub>2</sub>,a<sub>2</sub>,t<sub>2</sub>,attrs<sub>2</sub>. wasGeneratedBy(gen,e,a<sub>1</sub>,t<sub>1</sub>,attrs<sub>1</sub>) ∧ used(id<sub>2</sub>,a<sub>2</sub>,e,t<sub>2</sub>,attrs<sub>2</sub>) ⟹ ∃ id. wasInformedBy(id,a<sub>2</sub>,a<sub>1</sub>,[])</span></div>
-<div class="inference" id="activity-start-end-inference"><span class="math">∀ a,t<sub>1</sub>,t<sub>2</sub>,attrs. activity(a,t<sub>1</sub>,t<sub>2</sub>,attrs) ⟹ ∃ start,e<sub>1</sub>,a<sub>1</sub>,end,a<sub>2</sub>,e<sub>2</sub>. wasStartedBy(start,a,e<sub>1</sub>,a<sub>1</sub>,t<sub>1</sub>,[]) ∧ wasEndedBy(end,a,e<sub>2</sub>,a<sub>2</sub>,t<sub>2</sub>,[])</span></div>
-<div class="inference" id="wasStartedBy-inference"><span class="math">∀ id,a,e<sub>1</sub>,a<sub>1</sub>,t,attrs. wasStartedBy(id,a,e<sub>1</sub>,a<sub>1</sub>,t,attrs) ⟹ ∃ gen,t<sub>1</sub>. wasGeneratedBy(gen,e<sub>1</sub>,a<sub>1</sub>,t<sub>1</sub>,[])</span></div>
-<div class="inference" id="wasEndedBy-inference"><span class="math">∀ id,a,e<sub>1</sub>,a<sub>1</sub>,t,attrs. wasEndedBy(id,a,e<sub>1</sub>,a<sub>1</sub>,t,attrs) ⟹ ∃ gen,t<sub>1</sub>. wasGeneratedBy(gen,e<sub>1</sub>,a<sub>1</sub>,t<sub>1</sub>,[])</span></div>
-<div class="inference" id="derivation-generation-use-inference">In this inference, none of <em>a</em>, <em>gen<sub>2</sub></em> or <em>use_1</em> can be placeholders -.<span class="math">∀ id,e<sub>2</sub>,e<sub>1</sub>,a,gen<sub>2</sub>,use<sub>1</sub>,attrs. wasDerivedFrom(id,e<sub>2</sub>,e<sub>1</sub>,a,gen<sub>2</sub>,use<sub>1</sub>,attrs) ⟹ ∃ s,t<sub>1</sub>,t<sub>2</sub>. used(use<sub>1</sub>,a,e<sub>1</sub>,t<sub>1</sub>,[]) ∧ wasGeneratedBy(gen<sub>2</sub>,e<sub>2</sub>,a,t<sub>2</sub>,[])</span></div>
-<div class="inference" id="revision-is-alternate-inference">In this inference, any of <em>a</em>, <em>g</em> or <em>u</em> may be placeholders.<span class="math">∀ id,e<sub>1</sub>,e<sub>2</sub>,a,g,u. wasDerivedFrom(id,e<sub>2</sub>,e<sub>1</sub>,a,g,u,.(prov:type = prov:Revision,[])) ⟹ alternateOf(e<sub>2</sub>,e<sub>1</sub>)</span></div>
-<div class="inference" id="attribution-inference"><span class="math">∀ att,e,ag,attrs. wasAttributedTo(att,e,ag,attrs) ⟹ ∃ a,t,gen,assoc,pl. wasGeneratedBy(gen,e,a,t,[]) ∧ wasAssociatedWith(assoc,a,ag,pl,[])</span></div>
-<div class="inference" id="delegation-inference"><span class="math">∀ id,ag<sub>1</sub>,ag<sub>2</sub>,a,attrs. actedOnBehalfOf(id,ag<sub>1</sub>,ag<sub>2</sub>,a,attrs) ⟹ ∃ id<sub>1</sub>,pl<sub>1</sub>,id<sub>2</sub>,pl<sub>2</sub>. wasAssociatedWith(id<sub>1</sub>,a,ag<sub>1</sub>,pl<sub>1</sub>,[]) ∧ wasAssociatedWith(id<sub>2</sub>,a,ag<sub>2</sub>,pl<sub>2</sub>,[])</span></div>
-<div class="inference" id="influence-inference"><ol><li><span class="math">∀ id,e,a,t,attrs. wasGeneratedBy(id,e,a,t,attrs) ⟹ wasInfluencedBy(id,e,a,attrs)</span></li><li><span class="math">∀ id,a,e,t,attrs. used(id,a,e,t,attrs) ⟹ wasInfluencedBy(id,a,e,attrs)</span></li><li><span class="math">∀ id,a<sub>2</sub>,a<sub>1</sub>,attrs. wasInformedBy(id,a<sub>2</sub>,a<sub>1</sub>,attrs) ⟹ wasInfluencedBy(id,a<sub>2</sub>,a<sub>1</sub>,attrs)</span></li><li><span class="math">∀ id,a<sub>2</sub>,e,a<sub>1</sub>,t,attrs. wasStartedBy(id,a<sub>2</sub>,e,a<sub>1</sub>,t,attrs) ⟹ wasInfluencedBy(id,a<sub>2</sub>,e,attrs)</span></li><li><span class="math">∀ id,a<sub>2</sub>,e,a<sub>1</sub>,t,attrs. wasEndedBy(id,a<sub>2</sub>,e,a<sub>1</sub>,t,attrs) ⟹ wasInfluencedBy(id,a<sub>2</sub>,e,attrs)</span></li><li><span class="math">∀ id,e,a,t,attrs. wasInvalidatedBy(id,e,a,t,attrs) ⟹ wasInfluencedBy(id,e,a,attrs)</span></li><li><span class="math">∀ id,e<sub>2</sub>,e<sub>1</sub>,a,g,u,attrs. wasDerivedFrom(id,e<sub>2</sub>,e<sub>1</sub>,a,g,u,attrs) ⟹ wasInfluencedBy(id,e<sub>2</sub>,e<sub>1</sub>,attrs)</span></li><li>In this rule, <em>a</em>, <em>g</em>, <em>u</em> may be placeholders -.<span class="math">∀ id,e,ag,attrs. wasAttributedTo(id,e,ag,attrs) ⟹ wasInfluencedBy(id,e,ag,attrs)</span></li><li>In this rule, <em>pl</em> may be a placeholder -.<span class="math">∀ id,a,ag,pl,attrs. wasAssociatedWith(id,a,ag,pl,attrs) ⟹ wasInfluencedBy(id,a,ag,attrs)</span></li><li><span class="math">∀ id,ag<sub>2</sub>,ag<sub>1</sub>,a,attrs. actedOnBehalfOf(id,ag<sub>2</sub>,ag<sub>1</sub>,a,attrs) ⟹ wasInfluencedBy(id,ag<sub>2</sub>,ag<sub>1</sub>,attrs)</span></li></ol></div>
-<div class="inference" id="alternate-reflexive"><span class="math">∀ e. entity(e) ⟹ alternateOf(e,e)</span></div>
-<div class="inference" id="alternate-transitive"><span class="math">∀ e<sub>1</sub>,e<sub>2</sub>,e<sub>3</sub>. alternateOf(e<sub>1</sub>,e<sub>2</sub>) ∧ alternateOf(e<sub>2</sub>,e<sub>3</sub>) ⟹ alternateOf(e<sub>1</sub>,e<sub>3</sub>)</span></div>
-<div class="inference" id="alternate-symmetric"><span class="math">∀ e<sub>1</sub>,e<sub>2</sub>. alternateOf(e<sub>1</sub>,e<sub>2</sub>) ⟹ alternateOf(e<sub>2</sub>,e<sub>1</sub>)</span></div>
-<div class="inference" id="specialization-transitive"><span class="math">∀ e<sub>1</sub>,e<sub>2</sub>,e<sub>3</sub>. specializationOf(e<sub>1</sub>,e<sub>2</sub>) ∧ specializationOf(e<sub>2</sub>,e<sub>3</sub>) ⟹ specializationOf(e<sub>1</sub>,e<sub>3</sub>)</span></div>
-<div class="inference" id="specialization-alternate-inference"><span class="math">∀ e<sub>1</sub>,e<sub>2</sub>. specializationOf(e<sub>1</sub>,e<sub>2</sub>) ⟹ alternateOf(e<sub>1</sub>,e<sub>2</sub>)</span></div>
-<div class="inference" id="specialization-attributes-inference"><span class="math">∀ e<sub>1</sub>,attrs,e<sub>2</sub>. entity(e<sub>1</sub>,attrs) ∧ specializationOf(e<sub>2</sub>,e<sub>1</sub>) ⟹ entity(e<sub>2</sub>,attrs)</span></div>
-<div class="constraint" id="membership-empty-collection"><span class="math">∀ c,e. hasMember(c,e) ∧ prov:EmptyCollection \in typeOf(c) ⟹ False</span></div>
+<div class="inference" id="communication-generation-use-inference"><span class="math">&#8704; id,a<sub>2</sub>,a<sub>1</sub>,attrs. wasInformedBy(id,a<sub>2</sub>,a<sub>1</sub>,attrs) &#10233; &#8707; e,gen,t<sub>1</sub>,use,t<sub>2</sub>. wasGeneratedBy(gen,e,a<sub>1</sub>,t<sub>1</sub>,[]) &#8743; used(use,a<sub>2</sub>,e,t<sub>2</sub>,[])</span></div>
+<div class="inference" id="generation-use-communication-inference"><span class="math">&#8704; gen,a<sub>1</sub>,t<sub>1</sub>,attrs<sub>1</sub>,id<sub>2</sub>,a<sub>2</sub>,t<sub>2</sub>,attrs<sub>2</sub>. wasGeneratedBy(gen,e,a<sub>1</sub>,t<sub>1</sub>,attrs<sub>1</sub>) &#8743; used(id<sub>2</sub>,a<sub>2</sub>,e,t<sub>2</sub>,attrs<sub>2</sub>) &#10233; &#8707; id. wasInformedBy(id,a<sub>2</sub>,a<sub>1</sub>,[])</span></div>
+<div class="inference" id="entity-generation-invalidation-inference"><span class="math">&#8704; gen,e,a<sub>1</sub>,t<sub>1</sub>,attrs<sub>1</sub>,id<sub>2</sub>,a<sub>2</sub>,t<sub>2</sub>,attrs<sub>2</sub>. wasGeneratedBy(gen,e,a<sub>1</sub>,t<sub>1</sub>,attrs<sub>1</sub>) &#8743; used(id<sub>2</sub>,a<sub>2</sub>,e,t<sub>2</sub>,attrs<sub>2</sub>) &#10233; &#8707; id. wasInformedBy(id,a<sub>2</sub>,a<sub>1</sub>,[])</span></div>
+<div class="inference" id="activity-start-end-inference"><span class="math">&#8704; a,t<sub>1</sub>,t<sub>2</sub>,attrs. activity(a,t<sub>1</sub>,t<sub>2</sub>,attrs) &#10233; &#8707; start,e<sub>1</sub>,a<sub>1</sub>,end,a<sub>2</sub>,e<sub>2</sub>. wasStartedBy(start,a,e<sub>1</sub>,a<sub>1</sub>,t<sub>1</sub>,[]) &#8743; wasEndedBy(end,a,e<sub>2</sub>,a<sub>2</sub>,t<sub>2</sub>,[])</span></div>
+<div class="inference" id="wasStartedBy-inference"><span class="math">&#8704; id,a,e<sub>1</sub>,a<sub>1</sub>,t,attrs. wasStartedBy(id,a,e<sub>1</sub>,a<sub>1</sub>,t,attrs) &#10233; &#8707; gen,t<sub>1</sub>. wasGeneratedBy(gen,e<sub>1</sub>,a<sub>1</sub>,t<sub>1</sub>,[])</span></div>
+<div class="inference" id="wasEndedBy-inference"><span class="math">&#8704; id,a,e<sub>1</sub>,a<sub>1</sub>,t,attrs. wasEndedBy(id,a,e<sub>1</sub>,a<sub>1</sub>,t,attrs) &#10233; &#8707; gen,t<sub>1</sub>. wasGeneratedBy(gen,e<sub>1</sub>,a<sub>1</sub>,t<sub>1</sub>,[])</span></div>
+<div class="inference" id="derivation-generation-use-inference">In this inference, none of <em>a</em>, <em>gen<sub>2</sub></em> or <em>use_1</em> can be placeholders -.<span class="math">&#8704; id,e<sub>2</sub>,e<sub>1</sub>,a,gen<sub>2</sub>,use<sub>1</sub>,attrs. wasDerivedFrom(id,e<sub>2</sub>,e<sub>1</sub>,a,gen<sub>2</sub>,use<sub>1</sub>,attrs) &#10233; &#8707; s,t<sub>1</sub>,t<sub>2</sub>. used(use<sub>1</sub>,a,e<sub>1</sub>,t<sub>1</sub>,[]) &#8743; wasGeneratedBy(gen<sub>2</sub>,e<sub>2</sub>,a,t<sub>2</sub>,[])</span></div>
+<div class="inference" id="revision-is-alternate-inference">In this inference, any of <em>a</em>, <em>g</em> or <em>u</em> may be placeholders.<span class="math">&#8704; id,e<sub>1</sub>,e<sub>2</sub>,a,g,u. wasDerivedFrom(id,e<sub>2</sub>,e<sub>1</sub>,a,g,u,.(prov:type = prov:Revision,[])) &#10233; alternateOf(e<sub>2</sub>,e<sub>1</sub>)</span></div>
+<div class="inference" id="attribution-inference"><span class="math">&#8704; att,e,ag,attrs. wasAttributedTo(att,e,ag,attrs) &#10233; &#8707; a,t,gen,assoc,pl. wasGeneratedBy(gen,e,a,t,[]) &#8743; wasAssociatedWith(assoc,a,ag,pl,[])</span></div>
+<div class="inference" id="delegation-inference"><span class="math">&#8704; id,ag<sub>1</sub>,ag<sub>2</sub>,a,attrs. actedOnBehalfOf(id,ag<sub>1</sub>,ag<sub>2</sub>,a,attrs) &#10233; &#8707; id<sub>1</sub>,pl<sub>1</sub>,id<sub>2</sub>,pl<sub>2</sub>. wasAssociatedWith(id<sub>1</sub>,a,ag<sub>1</sub>,pl<sub>1</sub>,[]) &#8743; wasAssociatedWith(id<sub>2</sub>,a,ag<sub>2</sub>,pl<sub>2</sub>,[])</span></div>
+<div class="inference" id="influence-inference"><ol><li><span class="math">&#8704; id,e,a,t,attrs. wasGeneratedBy(id,e,a,t,attrs) &#10233; wasInfluencedBy(id,e,a,attrs)</span></li><li><span class="math">&#8704; id,a,e,t,attrs. used(id,a,e,t,attrs) &#10233; wasInfluencedBy(id,a,e,attrs)</span></li><li><span class="math">&#8704; id,a<sub>2</sub>,a<sub>1</sub>,attrs. wasInformedBy(id,a<sub>2</sub>,a<sub>1</sub>,attrs) &#10233; wasInfluencedBy(id,a<sub>2</sub>,a<sub>1</sub>,attrs)</span></li><li><span class="math">&#8704; id,a<sub>2</sub>,e,a<sub>1</sub>,t,attrs. wasStartedBy(id,a<sub>2</sub>,e,a<sub>1</sub>,t,attrs) &#10233; wasInfluencedBy(id,a<sub>2</sub>,e,attrs)</span></li><li><span class="math">&#8704; id,a<sub>2</sub>,e,a<sub>1</sub>,t,attrs. wasEndedBy(id,a<sub>2</sub>,e,a<sub>1</sub>,t,attrs) &#10233; wasInfluencedBy(id,a<sub>2</sub>,e,attrs)</span></li><li><span class="math">&#8704; id,e,a,t,attrs. wasInvalidatedBy(id,e,a,t,attrs) &#10233; wasInfluencedBy(id,e,a,attrs)</span></li><li><span class="math">&#8704; id,e<sub>2</sub>,e<sub>1</sub>,a,g,u,attrs. wasDerivedFrom(id,e<sub>2</sub>,e<sub>1</sub>,a,g,u,attrs) &#10233; wasInfluencedBy(id,e<sub>2</sub>,e<sub>1</sub>,attrs)</span></li><li>In this rule, <em>a</em>, <em>g</em>, <em>u</em> may be placeholders -.<span class="math">&#8704; id,e,ag,attrs. wasAttributedTo(id,e,ag,attrs) &#10233; wasInfluencedBy(id,e,ag,attrs)</span></li><li>In this rule, <em>pl</em> may be a placeholder -.<span class="math">&#8704; id,a,ag,pl,attrs. wasAssociatedWith(id,a,ag,pl,attrs) &#10233; wasInfluencedBy(id,a,ag,attrs)</span></li><li><span class="math">&#8704; id,ag<sub>2</sub>,ag<sub>1</sub>,a,attrs. actedOnBehalfOf(id,ag<sub>2</sub>,ag<sub>1</sub>,a,attrs) &#10233; wasInfluencedBy(id,ag<sub>2</sub>,ag<sub>1</sub>,attrs)</span></li></ol></div>
+<div class="inference" id="alternate-reflexive"><span class="math">&#8704; e. entity(e) &#10233; alternateOf(e,e)</span></div>
+<div class="inference" id="alternate-transitive"><span class="math">&#8704; e<sub>1</sub>,e<sub>2</sub>,e<sub>3</sub>. alternateOf(e<sub>1</sub>,e<sub>2</sub>) &#8743; alternateOf(e<sub>2</sub>,e<sub>3</sub>) &#10233; alternateOf(e<sub>1</sub>,e<sub>3</sub>)</span></div>
+<div class="inference" id="alternate-symmetric"><span class="math">&#8704; e<sub>1</sub>,e<sub>2</sub>. alternateOf(e<sub>1</sub>,e<sub>2</sub>) &#10233; alternateOf(e<sub>2</sub>,e<sub>1</sub>)</span></div>
+<div class="inference" id="specialization-transitive"><span class="math">&#8704; e<sub>1</sub>,e<sub>2</sub>,e<sub>3</sub>. specializationOf(e<sub>1</sub>,e<sub>2</sub>) &#8743; specializationOf(e<sub>2</sub>,e<sub>3</sub>) &#10233; specializationOf(e<sub>1</sub>,e<sub>3</sub>)</span></div>
+<div class="inference" id="specialization-alternate-inference"><span class="math">&#8704; e<sub>1</sub>,e<sub>2</sub>. specializationOf(e<sub>1</sub>,e<sub>2</sub>) &#10233; alternateOf(e<sub>1</sub>,e<sub>2</sub>)</span></div>
+<div class="inference" id="specialization-attributes-inference"><span class="math">&#8704; e<sub>1</sub>,attrs,e<sub>2</sub>. entity(e<sub>1</sub>,attrs) &#8743; specializationOf(e<sub>2</sub>,e<sub>1</sub>) &#10233; entity(e<sub>2</sub>,attrs)</span></div>
+<div class="constraint" id="membership-empty-collection"><span class="math">&#8704; c,e. hasMember(c,e) &#8743; prov:EmptyCollection \in typeOf(c) &#10233; False</span></div>
 
 </section>
 
@@ -788,4 +1122,69 @@
 </p>
     </section> 
 
- </body></html>
\ No newline at end of file
+ </body></html>
+
+<!--  LocalWords:  px DM RL RDF AQ SEM SOTD Definitional wasInformedBy attrs ag
+ -->
+<!--  LocalWords:  wasGeneratedBy wasStartedBy gAttr sAttr wasAttributedTo attr
+ -->
+<!--  LocalWords:  wasAssociatedWith dAttrs gAttrs wasDerivedFrom uAttrs eAttrs
+ -->
+<!--  LocalWords:  wasRevisionOf specializationOf wasQuotedFrom Traceability WD
+ -->
+<!--  LocalWords:  tracedTo aAttr actedOnBehalfOf rAttr traceability TODO xsd
+ -->
+<!--  LocalWords:  alternateOf wasEndedBy Lamport's timeline subfigure memberOf
+ -->
+<!--  LocalWords:  wasStartedByAgent wasAttributedWith derivedByInsertionFrom
+ -->
+<!--  LocalWords:  QName derivedByRemovalFrom EmptyCollection wasVersionOf dm
+ -->
+<!--  LocalWords:  RecsWD formedness workflow ness operability CSP versa hyp YY
+ -->
+<!--  LocalWords:  disambiguating lifecycle conformant minimalistic Lamport fo
+ -->
+<!--  LocalWords:  reflexivity antisymmetry timelines timespan WG concl inv TBD
+ -->
+<!--  LocalWords:  continuant occurrent modalities toyota womanInRedDress provn
+ -->
+<!--  LocalWords:  customerInChairAt manWithGlasses customerInChair irreflexive
+ -->
+<!--  LocalWords:  wasStartedByActivity antisymmetric wasInvalidatedBy stmt CHR
+ -->
+<!--  LocalWords:  DBCONSTRAINTS formalisms URIs wasInfluencedBy definitional
+ -->
+<!--  LocalWords:  wasInvalidated th  nontermination  implementability att evt
+ -->
+<!--  LocalWords:  Irreflexivity mentionOf preorder equalities unsatisfiable De
+ -->
+<!--  LocalWords:  Lebo subfigures pre del irreflexivity superproperty typeOf
+ -->
+<!--  LocalWords:  disjointness inferrable subtyping subtype subtypes hadMember
+ -->
+<!--  LocalWords:  hasMember toplevel sameAs tuple acyclicity isomorphism IRI
+ -->
+<!--  LocalWords:  endBundle typeof equational acyclic invertible procedurally
+ -->
+<!--  LocalWords:  implementers multi unifier ERCIM Groth Stian Soiland Ilkay
+ -->
+<!--  LocalWords:  Altintas Reza B'Far Belhajjame Informatics Coppens IBBT Nies
+ -->
+<!--  LocalWords:  Corsar Cresswell Deus DERI Galway satisfiable namespace Kai
+ -->
+<!--  LocalWords:  endDocument Dobson Doerr Hellas Eckert EVAIN EBU UER Frew de
+ -->
+<!--  LocalWords:  Irini Fundulaki Garijo Universidad Politécnica Vrije Hartig
+ -->
+<!--  LocalWords:  Universiteit Hau NCI Sandro Hawke Jörn Hees DFKI Gmbh Hua da
+ -->
+<!--  LocalWords:  Hodgson TopQuadrant Trung Huynh Klyne Revelytix Rensselaer
+ -->
+<!--  LocalWords:  McCusker McGuinness Paolo Missier Luc Moreau Vinh Edoardo
+ -->
+<!--  LocalWords:  Pignotti Paulo Pinheiro Geospatial Retter Runnegar Satya
+ -->
+<!--  LocalWords:  Sahoo Schaengold Schutzer FSTC Yogesh Simmhan Theodoridou
+ -->
+<!--  LocalWords:  Thibodeau OpenLink Tilmes Zednik Zhao Yuting
+ -->