--- 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(" ◊:")))).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">∀ id,a<sub>2</sub>,a<sub>1</sub>,attrs. wasInformedBy(id,a<sub>2</sub>,a<sub>1</sub>,attrs) ⟹ ∃ e,gen,t<sub>1</sub>,use,t<sub>2</sub>. wasGeneratedBy(gen,e,a<sub>1</sub>,t<sub>1</sub>,[]) ∧ used(use,a<sub>2</sub>,e,t<sub>2</sub>,[])</span></div>
+<div class="inference" id="generation-use-communication-inference"><span class="math">∀ gen,a<sub>1</sub>,t<sub>1</sub>,attrs<sub>1</sub>,id<sub>2</sub>,a<sub>2</sub>,t<sub>2</sub>,attrs<sub>2</sub>. wasGeneratedBy(gen,e,a<sub>1</sub>,t<sub>1</sub>,attrs<sub>1</sub>) ∧ used(id<sub>2</sub>,a<sub>2</sub>,e,t<sub>2</sub>,attrs<sub>2</sub>) ⟹ ∃ id. wasInformedBy(id,a<sub>2</sub>,a<sub>1</sub>,[])</span></div>
+<div class="inference" id="entity-generation-invalidation-inference"><span class="math">∀ gen,e,a<sub>1</sub>,t<sub>1</sub>,attrs<sub>1</sub>,id<sub>2</sub>,a<sub>2</sub>,t<sub>2</sub>,attrs<sub>2</sub>. wasGeneratedBy(gen,e,a<sub>1</sub>,t<sub>1</sub>,attrs<sub>1</sub>) ∧ used(id<sub>2</sub>,a<sub>2</sub>,e,t<sub>2</sub>,attrs<sub>2</sub>) ⟹ ∃ id. wasInformedBy(id,a<sub>2</sub>,a<sub>1</sub>,[])</span></div>
+<div class="inference" id="activity-start-end-inference"><span class="math">∀ a,t<sub>1</sub>,t<sub>2</sub>,attrs. activity(a,t<sub>1</sub>,t<sub>2</sub>,attrs) ⟹ ∃ start,e<sub>1</sub>,a<sub>1</sub>,end,a<sub>2</sub>,e<sub>2</sub>. wasStartedBy(start,a,e<sub>1</sub>,a<sub>1</sub>,t<sub>1</sub>,[]) ∧ wasEndedBy(end,a,e<sub>2</sub>,a<sub>2</sub>,t<sub>2</sub>,[])</span></div>
+<div class="inference" id="wasStartedBy-inference"><span class="math">∀ id,a,e<sub>1</sub>,a<sub>1</sub>,t,attrs. wasStartedBy(id,a,e<sub>1</sub>,a<sub>1</sub>,t,attrs) ⟹ ∃ gen,t<sub>1</sub>. wasGeneratedBy(gen,e<sub>1</sub>,a<sub>1</sub>,t<sub>1</sub>,[])</span></div>
+<div class="inference" id="wasEndedBy-inference"><span class="math">∀ id,a,e<sub>1</sub>,a<sub>1</sub>,t,attrs. wasEndedBy(id,a,e<sub>1</sub>,a<sub>1</sub>,t,attrs) ⟹ ∃ gen,t<sub>1</sub>. wasGeneratedBy(gen,e<sub>1</sub>,a<sub>1</sub>,t<sub>1</sub>,[])</span></div>
+<div class="inference" id="derivation-generation-use-inference">In this inference, none of <em>a</em>, <em>gen<sub>2</sub></em> or <em>use_1</em> can be placeholders -.<span class="math">∀ id,e<sub>2</sub>,e<sub>1</sub>,a,gen<sub>2</sub>,use<sub>1</sub>,attrs. wasDerivedFrom(id,e<sub>2</sub>,e<sub>1</sub>,a,gen<sub>2</sub>,use<sub>1</sub>,attrs) ⟹ ∃ s,t<sub>1</sub>,t<sub>2</sub>. used(use<sub>1</sub>,a,e<sub>1</sub>,t<sub>1</sub>,[]) ∧ wasGeneratedBy(gen<sub>2</sub>,e<sub>2</sub>,a,t<sub>2</sub>,[])</span></div>
+<div class="inference" id="revision-is-alternate-inference">In this inference, any of <em>a</em>, <em>g</em> or <em>u</em> may be placeholders.<span class="math">∀ id,e<sub>1</sub>,e<sub>2</sub>,a,g,u. wasDerivedFrom(id,e<sub>2</sub>,e<sub>1</sub>,a,g,u,.(prov:type = prov:Revision,[])) ⟹ alternateOf(e<sub>2</sub>,e<sub>1</sub>)</span></div>
+<div class="inference" id="attribution-inference"><span class="math">∀ att,e,ag,attrs. wasAttributedTo(att,e,ag,attrs) ⟹ ∃ a,t,gen,assoc,pl. wasGeneratedBy(gen,e,a,t,[]) ∧ wasAssociatedWith(assoc,a,ag,pl,[])</span></div>
+<div class="inference" id="delegation-inference"><span class="math">∀ id,ag<sub>1</sub>,ag<sub>2</sub>,a,attrs. actedOnBehalfOf(id,ag<sub>1</sub>,ag<sub>2</sub>,a,attrs) ⟹ ∃ id<sub>1</sub>,pl<sub>1</sub>,id<sub>2</sub>,pl<sub>2</sub>. wasAssociatedWith(id<sub>1</sub>,a,ag<sub>1</sub>,pl<sub>1</sub>,[]) ∧ wasAssociatedWith(id<sub>2</sub>,a,ag<sub>2</sub>,pl<sub>2</sub>,[])</span></div>
+<div class="inference" id="influence-inference"><ol><li><span class="math">∀ id,e,a,t,attrs. wasGeneratedBy(id,e,a,t,attrs) ⟹ wasInfluencedBy(id,e,a,attrs)</span></li><li><span class="math">∀ id,a,e,t,attrs. used(id,a,e,t,attrs) ⟹ wasInfluencedBy(id,a,e,attrs)</span></li><li><span class="math">∀ id,a<sub>2</sub>,a<sub>1</sub>,attrs. wasInformedBy(id,a<sub>2</sub>,a<sub>1</sub>,attrs) ⟹ wasInfluencedBy(id,a<sub>2</sub>,a<sub>1</sub>,attrs)</span></li><li><span class="math">∀ id,a<sub>2</sub>,e,a<sub>1</sub>,t,attrs. wasStartedBy(id,a<sub>2</sub>,e,a<sub>1</sub>,t,attrs) ⟹ wasInfluencedBy(id,a<sub>2</sub>,e,attrs)</span></li><li><span class="math">∀ id,a<sub>2</sub>,e,a<sub>1</sub>,t,attrs. wasEndedBy(id,a<sub>2</sub>,e,a<sub>1</sub>,t,attrs) ⟹ wasInfluencedBy(id,a<sub>2</sub>,e,attrs)</span></li><li><span class="math">∀ id,e,a,t,attrs. wasInvalidatedBy(id,e,a,t,attrs) ⟹ wasInfluencedBy(id,e,a,attrs)</span></li><li><span class="math">∀ id,e<sub>2</sub>,e<sub>1</sub>,a,g,u,attrs. wasDerivedFrom(id,e<sub>2</sub>,e<sub>1</sub>,a,g,u,attrs) ⟹ wasInfluencedBy(id,e<sub>2</sub>,e<sub>1</sub>,attrs)</span></li><li>In this rule, <em>a</em>, <em>g</em>, <em>u</em> may be placeholders -.<span class="math">∀ id,e,ag,attrs. wasAttributedTo(id,e,ag,attrs) ⟹ wasInfluencedBy(id,e,ag,attrs)</span></li><li>In this rule, <em>pl</em> may be a placeholder -.<span class="math">∀ id,a,ag,pl,attrs. wasAssociatedWith(id,a,ag,pl,attrs) ⟹ wasInfluencedBy(id,a,ag,attrs)</span></li><li><span class="math">∀ id,ag<sub>2</sub>,ag<sub>1</sub>,a,attrs. actedOnBehalfOf(id,ag<sub>2</sub>,ag<sub>1</sub>,a,attrs) ⟹ wasInfluencedBy(id,ag<sub>2</sub>,ag<sub>1</sub>,attrs)</span></li></ol></div>
+<div class="inference" id="alternate-reflexive"><span class="math">∀ e. entity(e) ⟹ alternateOf(e,e)</span></div>
+<div class="inference" id="alternate-transitive"><span class="math">∀ e<sub>1</sub>,e<sub>2</sub>,e<sub>3</sub>. alternateOf(e<sub>1</sub>,e<sub>2</sub>) ∧ alternateOf(e<sub>2</sub>,e<sub>3</sub>) ⟹ alternateOf(e<sub>1</sub>,e<sub>3</sub>)</span></div>
+<div class="inference" id="alternate-symmetric"><span class="math">∀ e<sub>1</sub>,e<sub>2</sub>. alternateOf(e<sub>1</sub>,e<sub>2</sub>) ⟹ alternateOf(e<sub>2</sub>,e<sub>1</sub>)</span></div>
+<div class="inference" id="specialization-transitive"><span class="math">∀ e<sub>1</sub>,e<sub>2</sub>,e<sub>3</sub>. specializationOf(e<sub>1</sub>,e<sub>2</sub>) ∧ specializationOf(e<sub>2</sub>,e<sub>3</sub>) ⟹ specializationOf(e<sub>1</sub>,e<sub>3</sub>)</span></div>
+<div class="inference" id="specialization-alternate-inference"><span class="math">∀ e<sub>1</sub>,e<sub>2</sub>. specializationOf(e<sub>1</sub>,e<sub>2</sub>) ⟹ alternateOf(e<sub>1</sub>,e<sub>2</sub>)</span></div>
+<div class="inference" id="specialization-attributes-inference"><span class="math">∀ e<sub>1</sub>,attrs,e<sub>2</sub>. entity(e<sub>1</sub>,attrs) ∧ specializationOf(e<sub>2</sub>,e<sub>1</sub>) ⟹ entity(e<sub>2</sub>,attrs)</span></div>
+<div class="constraint" id="membership-empty-collection"><span class="math">∀ c,e. hasMember(c,e) ∧ prov:EmptyCollection \in typeOf(c) ⟹ False</span></div>
</section>
@@ -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
+ -->