--- a/model/diff-c.html Wed Oct 31 14:49:29 2012 +0000
+++ b/model/diff-c.html Wed Oct 31 14:52:07 2012 +0000
@@ -1,17 +1,21 @@
-
<!DOCTYPE html>
-<html><head><style type="text/css"><!--
+<html lang="en" dir="ltr">
+<head><style type="text/css"><!--
.insert { background-color: #aaffaa }
.delete { background-color: #ff8888; text-decoration: line-through }
.tagInsert { background-color: #007700; color: #ffffff }
.tagDelete { background-color: #770000; color: #ffffff }
---></style>
+--></style><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Constraints of the Provenance Data Model</title>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+
+
+
+
+
<style type="text/css">
@@ -25,7 +29,7 @@
- <span class="delete">
+ <style type="text/css">
/*****************************************************************
* ReSpec CSS
* Robin Berjon (robin at berjon dot com)
@@ -34,10 +38,8 @@
/* --- INLINES --- */
-em.rfc2119 {</span>
-
- <script src="http://dev.w3.org/2009/dap/ReSpec.js/js/respec.js" class="remove"></script>
- <span class="delete">text-transform: lowercase;
+em.rfc2119 {
+ text-transform: lowercase;
font-variant: small-caps;
font-style: normal;
color: #900;
@@ -493,6 +495,9 @@
pre.sh_sourceCode .sh_attribute { color: #006400; }
+
+
+</style><style type="text/css">
/* --- EDITORIAL NOTES --- */
.pending {
padding: 1em;
@@ -1011,417 +1016,26 @@
border-color: gray;
}
-</span><script src="http://www.w3.org/2007/OWL/toggles.js" class="remove"></script>
- <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" class="remove"></script>
-
- <script class="remove">
-
- function 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();
-
-
-
- });
-</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":
- "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.",
- "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, 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>",
- "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>",
- "PROV-SEM":
- "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>",
-
- "PROV-PRIMER":
- "Yolanda Gil and Simon Miles (eds.) Khalid Belhajjame, Helena Deus, Daniel Garijo, Graham Klyne, Paolo Missier, Stian Soiland-Reyes, and Stephan Zednik "+
- "<a href=\"http://www.w3.org/TR/prov-primer/\"><cite>Prov Model Primer</cite></a>. "+
- "2011, Working Draft. "+
- "URL: <a href=\"http://www.w3.org/TR/prov-primer/\">http://www.w3.org/TR/prov-primer/</a>",
-
-
- "PROV-DM":
- "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 "+
- "<a href=\"http://www.w3.org/TR/prov-dm/\"><cite>PROV-DM: The PROV Data Model</cite></a>. "+
- "2012, Working Draft. "+
- "URL: <a href=\"http://www.w3.org/TR/prov-dm/\">http://www.w3.org/TR/prov-dm/</a>",
-
- "PROV-N":
- "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>",
-
- "PROV-O":
- "Timothy Lebo, Satya Sahoo and Deborah McGuinness (eds.) Khalid Belhajjame, James Cheney, David Corsar, Daniel Garijo, Stian Soiland-Reyes, and Stephan Zednik "+
- "<a href=\"http://www.w3.org/TR/prov-o/\"><cite>Provenance Formal Model</cite></a>. "+
- "2011, Working Draft. "+
- "URL: <a href=\"http://www.w3.org/TR/prov-o/\">http://www.w3.org/TR/prov-o/</a>",
-
- "PROV-AQ":
- "Graham Klyne and Paul Groth (eds.) Luc Moreau, Olaf Hartig, Yogesh Simmhan, James Meyers, Timothy Lebo, Khalid Belhajjame, and Simon Miles "+
- "<a href=\"http://www.w3.org/TR/prov-aq/\"><cite>Provenance Access and Query</cite></a>. "+
- "2011, Working Draft. "+
- "URL: <a href=\"http://www.w3.org/TR/prov-aq/\">http://www.w3.org/TR/prov-aq/</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-constraints",
-
- // 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
- // FPWD publishDate: "2012-05-03",
- // LC publishDate: "2012-09-11",
-
- // 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
- previousPublishDate: "2012-05-03",
- previousMaturity: "WD",
-
- // if there a publicly available Editor's Draft, this is the link
- edDraftURI: "http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html",
-
- // if this is a LCWD, uncomment and set the end of its review period
- // lcEnd: "2009-08-05",
- lcEnd: "2012-10-10",
-
- // 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" },
- { name: "Paolo Missier", url: "http://www.cs.ncl.ac.uk/people/Paolo.Missier",
- company: "Newcastle University" },
- { name: "Luc Moreau", url: "http://www.ecs.soton.ac.uk/~lavm/",
- company: "University of Southampton" },
- ],
-
- // 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: ,
- authors: [
- { name: "Tom De Nies", url: "http://users.ugent.be/~tdenies/",
- company: "IBBT - Ghent University" },
- ],
-
- // 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],
-
- postProcess: [updateFigures, removeDataAttributes],
- };
- </script>
- </head>
- <body>
-
- <section id="abstract">
-<p><span class="delete">Constraints of the </span>
-Provenance <span class="delete">Data Model</span><span class="insert">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 </span>W3C<span class="delete"> Working Draft 11 September 2012</span><span class="delete">This version:</span><span class="delete">http://www.w3.org/TR/2012/WD-prov-constraints-20120911/</span><span class="delete">Latest published version:</span><span class="delete">http://www.w3.org/TR/prov-constraints/</span><span class="delete">Latest editor's draft:</span><span class="delete">http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html</span><span class="delete">Previous version:</span><span class="delete">http://www.w3.org/TR/2012/WD-prov-constraints-20120503/</span><span class="delete"> (</span><span class="delete">color-coded diffs</span><span class="delete">)</span><span class="delete">Editors:</span><span class="delete">James Cheney</span><span class="delete">, University of Edinburgh</span>
-<span class="delete">Paolo Missier</span><span class="delete">, Newcastle University</span>
-<span class="delete">Luc Moreau</span><span class="delete">, University of Southampton</span>
-<span class="delete">Author:</span><span class="delete">Tom De Nies</span><span class="delete">, IBBT - Ghent University</span>
-<span class="delete">Copyright</span><span class="delete"> © 2012-2012 </span><span class="delete">W3C</span><span class="delete">®</span><span class="delete"> (</span><span class="delete">MIT</span><span class="delete">, </span><span class="delete">ERCIM</span><span class="delete">, </span><span class="delete">Keio</span><span class="delete">), All Rights Reserved. </span><span class="delete">W3C</span> <span class="delete">liability</span><span class="delete">, </span><span class="delete">trademark</span><span class="delete"> and </span><span class="delete">document use</span><span class="delete"> rules apply.</span>
-
- <span class="delete">Abstract</span>
-<span class="delete">
+</style><link href="./prov-constraints_files/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="./prov-constraints_files/w3c_home" alt="W3C"></a></p><h1 class="title" id="title">Constraints of the Provenance Data Model</h1><h2 id="subtitle"><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/diff-c.html"><span class="insert">Changes</span></a><span class="insert"> since Last Call Working Draft (LC)</span></h2><h2 id="w3c-editor-s-draft-31-october-2012"><acronym title="World Wide Web Consortium">W3C</acronym> <span class="delete">Working</span><span class="insert">Editor's</span> Draft <span class="delete">11 September</span><span class="insert">31 October</span> 2012</h2><dl><dt>This version:</dt><dd><span class="delete">http://www.w3.org/TR/2012/WD-prov-constraints-20120911/</span><a href="./prov-constraints_files/prov-constraints.html"><span class="insert">http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html</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="./prov-constraints_files/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><span class="delete"> (</span><span class="delete">color-coded diffs</span><span class="delete">)</span></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>
+</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 </span><span class="delete">W3C</span> provenance (PROV) family of specifications.
+basis for the <acronym title="World Wide Web Consortium">W3C</acronym> provenance (PROV) family of specifications.
</p>
<p> This document defines a subset of PROV instances called
-<i><a>valid</a></i> PROV <span class="delete">instances.
+<i><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-valid" class="internalDFN">valid</a></i> PROV <span class="delete">instances.
</span><span class="insert">instances, by analogy with notions of
validity for other Web standards.
</span>The intent of validation is ensure that a PROV instance represents a<span class="insert">
@@ -1432,30 +1046,24 @@
<a>constraints</a>. These definitions, inferences, and constraints
provide a measure of consistency checking for provenance and reasoning
over provenance. They can also be used to <a title="normal
-form">normalize</a> PROV instances to forms that can easily be
+form" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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>equivalent</a>. Validity and equivalence are also defined for PROV
+<a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-equivalent" class="internalDFN">equivalent</a>. Validity and equivalence are also defined for PROV
bundles (that is, named instances) and documents (that is, a toplevel
instance together with zero or more bundles).</p>
-<span class="delete">Status of This Document</span><span class="delete">This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current </span><span class="delete">W3C</span><span class="delete"> publications and the latest revision of this technical report can be found in the </span><span class="delete">W3C</span><span class="delete"> technical reports index</span><span class="delete"> at http://www.w3.org/TR/.</span>
-</section>
-
-<section id="sotd">
-<h4>Last Call</h4>
+</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 <span class="delete">[</span><span class="delete">PROV-DM</span><span class="delete">]:
-</span><span class="insert">[[!PROV-DM]]:
-</span><a class="rule-text" href="#mention-specialization-inference"><span><span class="delete">Inference 22 (mention-specialization-inference)</span><span class="delete"> and
-</span><span class="insert">TBD</span></span></a><span class="insert"> and
-</span><a class="rule-text" href="#unique-mention"><span><span class="delete">Constraint 31 (unique-mention)</span><span class="insert">TBD</span></span></a>.
+<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="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#bib-PROV-DM">PROV-DM</a></cite>]:
+<a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#mention-specialization-inference_text"><span>Inference 22 (mention-specialization-inference)</span></a> and
+<a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#unique-mention_text"><span>Constraint 31 (unique-mention)</span></a>.
These might be removed from PROV-CONSTRAINTS.</p>
-<h4>PROV Family of Specifications</h4>
+<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>
@@ -1466,7 +1074,7 @@
<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>
</ul>
-<h4>How to read the PROV Family of Specifications</h4>
+<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
@@ -1480,79 +1088,74 @@
<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>
-<li><span class="insert">[[PROV-SEM]] provides a mathematical semantics and a collection of
+<li><span class="insert">[</span><cite><a class="bibref" rel="biblioentry" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#bib-PROV-SEM"><span class="insert">PROV-SEM</span></a></cite><span class="insert">] provides a mathematical semantics and a collection of
axioms that provide a (non-normative, but equivalent) declarative specification, aimed
at readers with a mathematical logic or formal background. This can
serve as a starting point for alternative implementations. </span></li>
</ul>
-<span class="delete">This document was published by the </span><span class="delete">Provenance Working Group</span><span class="delete"> as a Last Call Working Draft. This document is intended to become a </span><span class="delete">W3C</span><span class="delete"> Recommendation. If you wish to make comments regarding this document, please send them to </span><span class="delete">public-prov-comments@w3.org</span><span class="delete"> (</span><span class="delete">subscribe</span><span class="delete">, </span><span class="delete">archives</span><span class="delete">). The Last Call period ends 10 October 2012. All feedback is welcome.</span><span class="delete">Publication as a Working Draft does not imply endorsement by the </span><span class="delete">W3C</span><span class="delete"> 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.</span><span class="delete">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><span class="delete">This document was produced by a group operating under the </span><span class="delete">5 February 2004 </span><span class="delete">W3C</span><span class="delete"> Patent Policy</span><span class="delete">. </span><span class="delete">W3C</span><span class="delete"> maintains a </span><span class="delete">public list of any patent disclosures</span><span class="delete"> 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 </span><span class="delete">Essential Claim(s)</span><span class="delete"> must disclose the information in accordance with </span><span class="delete">section 6 of the </span><span class="delete">W3C</span><span class="delete"> Patent Policy</span><span class="delete">.</span><span class="delete">Table of Contents</span><span class="delete">1. </span><span class="delete">Introduction</span>
-<span class="delete">1.1 </span><span class="delete">Conventions</span><span class="delete">1.2 </span><span class="delete">Purpose of this document</span><span class="delete">1.3 </span><span class="delete">Structure of this document</span><span class="delete">1.4 </span><span class="delete"> Audience </span><span class="delete">2. </span><span class="delete">Rationale</span><span class="delete">2.1 </span><span class="delete">Entities, Activities and Agents</span><span class="delete">2.2 </span><span class="delete">Events</span><span class="delete">2.3 </span><span class="delete">Types</span><span class="delete">2.4 </span><span class="delete">Validation Process Overview</span><span class="delete">2.5 </span><span class="delete">Summary of inferences and constraints</span><span class="delete">3. </span><span class="delete">Compliance with this document</span><span class="delete">4. </span><span class="delete">Definitions and Inferences</span><span class="delete">4.1 </span><span class="delete">Optional Identifiers and Attributes</span><span class="delete">4.2 </span><span class="delete">Entities and Activities</span><span class="delete">4.3 </span><span class="delete">Derivations</span><span class="delete">4.4 </span><span class="delete">Agents</span><span class="delete">4.5 </span><span class="delete">Alternate and Specialized Entities</span><span class="delete">5. </span><span class="delete">Constraints</span><span class="delete">5.1 </span><span class="delete">Uniqueness Constraints</span><span class="delete">5.2 </span><span class="delete">Event Ordering Constraints</span><span class="delete">5.2.1 </span><span class="delete">Activity constraints</span><span class="delete">5.2.2 </span><span class="delete"> Entity constraints</span><span class="delete">5.2.3 </span><span class="delete"> Agent constraints</span><span class="delete">5.3 </span><span class="delete">Type Constraints</span><span class="delete">5.4 </span><span class="delete">Impossibility constraints</span><span class="delete">6. </span><span class="delete">Normalization, Validity, and Equivalence</span><span class="delete">6.1 </span><span class="delete">Instances</span><span class="delete">6.2 </span><span class="delete">Bundles and Documents</span><span class="delete">7. </span><span class="delete">Glossary</span><span class="delete">A. </span><span class="delete">Termination of normalization</span><span class="delete">B. </span><span class="delete">Acknowledgements</span><span class="delete">C. </span><span class="delete">References</span><span class="delete">C.1 </span><span class="delete">Normative references</span><span class="delete">C.2 </span><span class="delete">Informative references</span>
-
-
-
-
-
-
- </section>
-
-
-
-
- <section id="introduction">
- <h2><span class="delete">1. </span>Introduction<br>
+<p>This document was published by the <a href="http://www.w3.org/2011/prov/">Provenance Working Group</a> as <span class="delete">a Last Call Working</span><span class="insert">an Editor's</span> Draft.<span class="delete"> This document is intended to become a </span><span class="delete">W3C</span><span class="delete"> Recommendation.</span> 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>).<span class="delete"> The Last Call period ends 10 October 2012.</span> All feedback is welcome.</p><p>Publication as <span class="delete">a Working</span><span class="insert">an Editor's</span> 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.<span class="delete">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="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#introduction" class="tocxref"><span class="secno">1. </span>Introduction<br>
+</a><ul class="toc"><li class="tocline"><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#conventions" class="tocxref"><span class="secno">1.1 </span>Conventions</a></li><li class="tocline"><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#purpose" class="tocxref"><span class="secno">1.2 </span>Purpose of this document</a></li><li class="tocline"><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#structure-of-this-document" class="tocxref"><span class="secno">1.3 </span>Structure of this document</a></li><li class="tocline"><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#audience" class="tocxref"><span class="secno">1.4 </span> Audience </a></li></ul></li><li class="tocline"><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#rationale" class="tocxref"><span class="secno">2. </span>Rationale</a><ul class="toc"><li class="tocline"><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#entities--activities-and-agents" class="tocxref"><span class="secno">2.1 </span>Entities, Activities and Agents</a></li><li class="tocline"><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#events" class="tocxref"><span class="secno">2.2 </span>Events</a></li><li class="tocline"><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#typing-section" class="tocxref"><span class="secno">2.3 </span>Types</a></li><li class="tocline"><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#validation-process-overview-1" class="tocxref"><span class="secno">2.4 </span>Validation Process Overview</a></li><li class="tocline"><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#summary-of-inferences-and-constraints" class="tocxref"><span class="secno">2.5 </span>Summary of inferences and constraints</a></li></ul></li><li class="tocline"><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#compliance" class="tocxref"><span class="secno">3. </span>Compliance with this document</a></li><li class="tocline"><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#inferences" class="tocxref"><span class="secno">4. </span>Definitions and Inferences</a><ul class="toc"><li class="tocline"><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#optional-identifiers-and-attributes" class="tocxref"><span class="secno">4.1 </span>Optional Identifiers and Attributes</a></li><li class="tocline"><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#entities-and-activities" class="tocxref"><span class="secno">4.2 </span>Entities and Activities</a></li><li class="tocline"><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#derivations" class="tocxref"><span class="secno">4.3 </span>Derivations</a></li><li class="tocline"><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#agents" class="tocxref"><span class="secno">4.4 </span>Agents</a></li><li class="tocline"><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#constraints" class="tocxref"><span class="secno">5. </span>Constraints</a><ul class="toc"><li class="tocline"><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#uniqueness-constraints" class="tocxref"><span class="secno">5.1 </span>Uniqueness Constraints</a></li><li class="tocline"><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#event-ordering-constraints" class="tocxref"><span class="secno">5.2 </span>Event Ordering Constraints</a><ul class="toc"><li class="tocline"><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#activity-constraints" class="tocxref"><span class="secno">5.2.1 </span>Activity constraints</a></li><li class="tocline"><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#entity-constraints" class="tocxref"><span class="secno">5.2.2 </span> Entity constraints</a></li><li class="tocline"><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#agent-constraints" class="tocxref"><span class="secno">5.2.3 </span> Agent constraints</a></li></ul></li><li class="tocline"><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#type-constraints" class="tocxref"><span class="secno">5.3 </span>Type Constraints</a></li><li class="tocline"><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#impossibility-constraints" class="tocxref"><span class="secno">5.4 </span>Impossibility constraints</a></li></ul></li><li class="tocline"><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#normalization-validity-equivalence" class="tocxref"><span class="secno">6. </span>Normalization, Validity, and Equivalence</a><ul class="toc"><li class="tocline"><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#instance" class="tocxref"><span class="secno">6.1 </span>Instances</a></li><li class="tocline"><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#bundle-constraints" class="tocxref"><span class="secno">6.2 </span>Bundles and Documents</a></li></ul></li><li class="tocline"><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#glossary" class="tocxref"><span class="secno">7. </span>Glossary</a></li><li class="tocline"><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#termination" class="tocxref"><span class="secno">A. </span>Termination of normalization</a></li><li class="tocline"><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#changes-since-last-version" class="tocxref"><span class="secno">B. </span><span class="delete">Acknowledgements</span><span class="insert">Changes since last version</span></a></li><li class="tocline"><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#acknowledgements" class="tocxref"><span class="secno">C. </span><span class="insert">Acknowledgements</span></a></li><li class="tocline"><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#references" class="tocxref"><span class="secno"><span class="insert">D. </span></span>References</a><ul class="toc"><li class="tocline"><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#normative-references" class="tocxref"><span class="secno"><span class="delete">C.1</span><span class="insert">D.1</span> </span>Normative references</a></li><li class="tocline"><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#informative-references" class="tocxref"><span class="secno"><span class="delete">C.2</span><span class="insert">D.2</span> </span>Informative references</a></li></ul></li></ul></div>
+
+
+
+
+
+
+ <div id="introduction" class="section">
+ <h2><span class="secno">1. </span>Introduction<br>
</h2>
<p>
Provenance is a record that describes the people, institutions, entities, and activities involved in producing, influencing, or delivering a piece of data or a thing.
This document complements
- the PROV-DM specification <span class="delete">[</span><span class="delete">PROV-DM</span><span class="delete">]</span><span class="insert">[[PROV-DM]]</span> that defines a data model for
+ the PROV-DM specification [<cite><a class="bibref" rel="biblioentry" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#bib-PROV-DM">PROV-DM</a></cite>] that defines a data model for
provenance on the Web. </p>
- <section id="conventions">
-<h3><span class="delete">1.1 </span>Conventions</h3>
-
-
-
-<p>The key words <span class="delete">"</span><span class="delete">must</span><span class="delete">", "</span><span class="delete">must not</span><span class="delete">", "</span><span class="delete">required</span><span class="delete">", "</span><span class="delete">shall</span><span class="delete">", "</span><span class="delete">shall</span><span class="insert">"MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL</span>
- <span class="delete">not</span><span class="delete">", "</span><span class="delete">should</span><span class="delete">", "</span><span class="delete">should not</span><span class="delete">", "</span><span class="delete">recommended</span><span class="delete">",</span><span class="insert">NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED",</span> <span class="delete">"</span><span class="delete">may</span><span class="delete">",</span><span class="insert">"MAY",</span> and
- <span class="delete">"</span><span class="delete">optional</span><span class="delete">"</span><span class="insert">"OPTIONAL"</span> in this document are to be interpreted as described in
- <span class="delete">[</span><span class="delete">RFC2119</span><span class="delete">].</span><span class="insert">[[!RFC2119]].</span></p>
+ <div id="conventions" class="section">
+<h3><span class="secno">1.1 </span>Conventions</h3>
+
+
+
+<p>The key words "<em class="rfc2119" title="must">must</em>", "<em class="rfc2119" title="must not">must not</em>", "<em class="rfc2119" title="required">required</em>", "<em class="rfc2119" title="shall">shall</em>", "<em class="rfc2119" title="shall
+ not">shall
+ not</em>", "<em class="rfc2119" title="should">should</em>", "<em class="rfc2119" title="should not">should not</em>", "<em class="rfc2119" title="recommended">recommended</em>", "<em class="rfc2119" title="may">may</em>", and
+ "<em class="rfc2119" title="optional">optional</em>" in this document are to be interpreted as described in
+ [<cite><a class="bibref" rel="biblioentry" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#bib-RFC2119">RFC2119</a></cite>].</p>
<p>In this document, logical formulas contain variables written as
lower-case identifiers. Some of these variables are written
- beginning with the underscore character <span
- class="name">_</span>, by convention, to indicate that they
+ 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>
-</section>
-
-
-<section id="purpose">
-
-<h3><span class="delete">1.2 </span>Purpose of this document</h3>
+</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 representations such as PROV-N and PROV-O.
-A PROV <dfn>document</dfn> is a set of PROV statements,
+A PROV <dfn id="dfn-document">document</dfn> is a set of PROV statements,
together with zero or more <a>bundles</a>, 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 in RDF, etc.
-A PROV <dfn>instance</dfn> is a set of PROV statements.
+A PROV <dfn id="dfn-instance">instance</dfn> is a set of PROV statements.
The
-PROV-DM specification <span class="delete">[</span><span class="delete">PROV-DM</span><span class="delete">]</span><span class="insert">[[PROV-DM]]</span> imposes minimal requirements upon
-PROV instances. A <a>valid</a> PROV instance corresponds to a
+PROV-DM specification [<cite><a class="bibref" rel="biblioentry" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#bib-PROV-DM">PROV-DM</a></cite>] imposes minimal requirements upon
+PROV instances. A <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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. <span class="delete">By default, </span>PROV instances need not
-be <a>valid</a>.
+be <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-valid" class="internalDFN">valid</a>.
</p>
<p><span class="insert">
-The term </span><a><span class="insert">valid</span></a><span class="insert"> is chosen by analogy with
-notions of validity in other W3C specifications. Unfortunately, this
+The term </span><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-valid" class="internalDFN"><span class="insert">valid</span></a><span class="insert"> is chosen by analogy with
+notions of validity in other </span><acronym title="World Wide Web Consortium"><span class="insert">W3C</span></acronym><span class="insert"> specifications. Unfortunately, this
terminology is incompatible with the usual meaning of "validity" in logic;
our notion of validity of a PROV instance/document is closer to
logical "consistency".
@@ -1560,24 +1163,24 @@
<p> This document specifies <em>definitions</em> of some
provenance statements in terms of others, <em>inferences</em> over PROV instances
-that applications <span class="delete">may</span><span class="insert">MAY</span> employ, and also defines a class of
-<a>valid</a> PROV instances by specifying <em>constraints</em> that
-<a>valid</a> PROV instances must satisfy. There are four kinds of
+that applications <em class="rfc2119" title="may">may</em> employ, and also defines a class of
+<a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-valid" class="internalDFN">valid</a> PROV instances by specifying <em>constraints</em> that
+<a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-valid" class="internalDFN">valid</a> PROV instances must satisfy. There are four kinds of
constraints: <em>uniqueness constraints</em>, <em>event ordering
constraints</em>, <em>impossibility constraints</em>, and <em>type
constraints</em>.
Further discussion
of the semantics of PROV statements, which justifies the definitions, inferences
and constraints, <span class="insert">and relates the procedural specification approach
-taken here to a declarative specification, </span>can be found in the formal semantics <span class="delete">[</span><span class="delete">PROV-SEM</span><span class="delete">].</span><span class="insert">[[PROV-SEM]].</span>
+taken here to a declarative specification, </span>can be found in the formal semantics [<cite><a class="bibref" rel="biblioentry" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#bib-PROV-SEM">PROV-SEM</a></cite>].
</p>
<p>We define validity and equivalence in terms of a
-concept called <a title="normal form">normalization</a>. Definitions, inferences,
+concept called <a title="normal form" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-normal-form" class="internalDFN">normalization</a>. Definitions, inferences,
and uniqueness constraints can be applied to <a title="normal
-form">normalize</a> PROV instances, and event ordering, typing, and
+form" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-normal-form" class="internalDFN">normalize</a> PROV instances, and event ordering, typing, and
impossibility constraints can be checked on the normal form to determine
-<a title="valid">validity</a>. Equivalence of two PROV
+<a title="valid" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-valid" class="internalDFN">validity</a>. Equivalence of two PROV
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 <span class="delete">documents.</span><span class="insert">instances.</span>
@@ -1585,23 +1188,23 @@
<p>
This <span class="delete">document outlines</span><span class="insert">specification defines
validity and equivalence procedurally, via</span> an algorithm <span class="delete">for validity checking </span>based on
-<a title="normal form">normalization</a>. Applications <span class="delete">may</span><span class="insert">MAY</span> implement
+<a title="normal form" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-normal-form" class="internalDFN">normalization</a>. Applications <em class="rfc2119" title="may">may</em> implement
validity and equivalence checking using normalization, as <span class="delete">suggested
here, or</span><span class="insert">outlined
-here. Applications MAY also implement validation and equivalence
+here. Applications </span><em class="rfc2119" title="may"><span class="insert">may</span></em><span class="insert"> also implement validation and equivalence
checking</span> in
any other way as long as the same instances or documents are considered valid or
equivalent, respectively.
</p>
-<p> Checking validity or equivalence are <span class="delete">recommended</span><span class="delete">,</span><span class="insert">RECOMMENDED,</span> but not required, for
+<p> Checking validity or equivalence are <em class="rfc2119" title="recommended">recommended</em>, but not required, for
applications compliant with PROV.<span class="delete"> This specification defines how
validity and equivalence are to be checked, if an application elects
to support them at all.</span>
-Applications producing provenance <span class="delete">should</span><span class="insert">SHOULD</span> ensure that it is
-<a>valid</a>, and similarly applications consuming provenance <span class="delete">may</span><span class="insert">MAY</span> reject provenance that is not <a>valid</a>. Applications
+Applications producing provenance <em class="rfc2119" title="should">should</em> ensure that it is
+<a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-valid" class="internalDFN">valid</a>, and similarly applications consuming provenance <em class="rfc2119" title="may">may</em> reject provenance that is not <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-valid" class="internalDFN">valid</a>. Applications
which are determining whether PROV instances or documents convey the same
-information <span class="delete">should</span><span class="insert">SHOULD</span> check equivalence as specified here, and <span class="delete">should</span><span class="insert">SHOULD</span>
+information <em class="rfc2119" title="should">should</em> check equivalence as specified here, and <em class="rfc2119" title="should">should</em>
treat equivalent instances or documents in the same way.<span class="insert"> This is a
guideline only, because meaning of "in the same way" is
application-specific. For example, applications that manipulate the syntax of
@@ -1609,75 +1212,68 @@
or digital signing, have good reasons to treat syntactically
different, but equivalent, documents differently.</span>
</p>
-
-
-<span class="delete">1.3 </span></section>
-<section>
-<h4>Structure of this document</h4>
-
-<p><a href="#rationale">Section 2</a> gives a brief rationale
+</div>
+<div id="structure-of-this-document" class="section">
+<h3><span class="secno">1.3 </span>Structure of this document</h3>
+
+<p><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#rationale">Section 2</a> gives a brief rationale
for the definitions, inferences and constraints.
</p>
<p>
-<a
- href="#compliance">Section 3</a> summarizes the
+<a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#compliance">Section 3</a> 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 definitions and inferences. Definitions allow replacing shorthand notation in <span class="delete">[</span><span class="delete">PROV-N</span><span class="delete">]</span><span class="insert">[[!PROV-N]]</span>
+<p> <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#inferences">Section 4</a> presents definitions and inferences. Definitions allow replacing shorthand notation in [<cite><a class="bibref" rel="biblioentry" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#bib-PROV-N">PROV-N</a></cite>]
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 four kinds of constraints,
+<p><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#constraints">Section 5</a> presents four kinds of constraints,
<em>uniqueness</em> constraints that prescribe that certain statements
must be unique within PROV <a>instances</a>,
<em>event ordering</em> constraints that require that the records in a
-PROV <a>instance</a> are consistent with a sensible ordering of events
+PROV <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-instance" class="internalDFN">instance</a> are consistent with a sensible ordering of events
relating the activities, entities and agents involved,
<em>impossibility</em> constraints that forbid certain patterns of
statements in valid PROV instances, and <em>type</em> constraints that
classify the types of identifiers in valid PROV instances.
</p>
-<p><a href="#normalization-validity-equivalence">Section 6</a> defines the notions
+<p><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#normalization-validity-equivalence">Section 6</a> defines the notions
of <a>validity</a>, <a>equivalence</a> and <a>normalization</a>.
</p>
-
-</section>
-<section id="audience">
-<h3><span class="delete">1.4 </span> Audience </h3>
-
-<p> The audience for this document is the same as for <span class="delete">[</span><span class="delete">PROV-DM</span><span class="delete">]:</span><span class="insert">[[PROV-DM]]:</span> developers
+</div>
+<div id="audience" class="section">
+<h3><span class="secno">1.4 </span> Audience </h3>
+
+<p> The audience for this document is the same as for [<cite><a class="bibref" rel="biblioentry" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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 <span class="delete">should</span><span class="insert">SHOULD</span>
+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.
</p>
-<p>This document assumes familiarity with <span class="delete">[</span><span class="delete">PROV-DM</span><span class="delete">]</span><span class="insert">[[PROV-DM]]</span> and employs the
-<span class="delete">[</span><span class="delete">PROV-N</span><span class="delete">]</span><span class="insert">[[PROV-N]]</span> notation.
+<p>This document assumes familiarity with [<cite><a class="bibref" rel="biblioentry" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#bib-PROV-DM">PROV-DM</a></cite>] and employs the
+[<cite><a class="bibref" rel="biblioentry" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#bib-PROV-N">PROV-N</a></cite>] notation.
</p>
-
-</section>
-</section>
-
-
-<span class="delete">2. </span><section id='rationale' class="informative">
-<h3>Rationale<span class="delete">This section is non-normative.</span></h3>
+</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> 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.</p>
-
-<span class="delete">2.1 </span><section>
-<h4>Entities, Activities and Agents</h4>
+<div id="entities--activities-and-agents" class="section">
+<h3><span class="secno">2.1 </span>Entities, Activities and Agents</h3>
<p>
One of the central challenges in representing provenance information
is how to deal with change. Real-world objects, information objects
@@ -1693,8 +1289,8 @@
and whose situation in the world is described by some fixed
attributes. An entity has a <dfn id="lifetime">lifetime</dfn>,
defined as the period
-between its <a title="entity generation event">generation event</a>
-and its <a title="entity invalidation event">invalidation event</a>.
+between its <a title="entity generation event" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-generation-event" class="internalDFN">generation event</a>
+and its <a title="entity invalidation event" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-invalidation-event" class="internalDFN">invalidation event</a>.
An entity's attributes are established when the entity is
created and (partially) describe the entity's situation and state
during the entirety of the entity's lifetime.</p>
@@ -1725,8 +1321,8 @@
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>lifetime</a>, and fixed attributes, and express dependencies between
- the various entities using <i><a title="instantaneous event">events</a></i>. For example, in order to
+ identifier, <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#lifetime" class="internalDFN">lifetime</a>, and fixed attributes, and express dependencies between
+ the various entities using <i><a title="instantaneous event" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-event" class="internalDFN">events</a></i>. For example, in order to
describe the provenance of several versions of a document, involving
attributes such as authorship that change over time, one can use
different entities for the versions linked by appropriate
@@ -1743,9 +1339,9 @@
use of identifiers.</p>
<p>An <a>activity</a>'s lifetime is delimited by its <a title="activity start
-event">start</a> and its <a title="activity end event">end</a>
+event" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-start-event" class="internalDFN">start</a> and its <a title="activity end event" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-end-event" class="internalDFN">end</a>
events. It occurs over
-an interval delimited by two <a title="instantaneous event">instantaneous
+an interval delimited by two <a title="instantaneous event" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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 lifetime.
</p>
@@ -1758,14 +1354,12 @@
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 class="delete">[</span><span class="delete">Logic</span><span class="delete">].</span><span class="insert">[[Logic]].</span></p>
-
-
-
-
-<span class="delete">2.2 </span></section>
-<section>
-<h4>Events</h4>
+'occurrent' in logic [<cite><a class="bibref" rel="biblioentry" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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
in many different contexts within individual systems and across the
@@ -1776,55 +1370,51 @@
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">event</a>s), that mark
+<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="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-event" class="internalDFN">event</a>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 <span class="delete">[</span><span class="delete">PROV-SEM</span><span class="delete">].</span><span class="insert">[[PROV-SEM]].</span>
+for explaining its other concepts and its semantics [<cite><a class="bibref" rel="biblioentry" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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
self-consistent.
-<p>Five kinds of <a title="instantaneous event">instantaneous
+</p><p>Five kinds of <a title="instantaneous event" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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 generation</strong>, <strong>entity usage</strong>, and <strong>entity
invalidation</strong> events apply to entities, and the generation and
-invalidation events delimit the <a>lifetime</a> of an entity. More
+invalidation events delimit the <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#lifetime" class="internalDFN">lifetime</a> of an entity. More
precisely:
</p>
-<p>An <dfn id="dfn-start-event">activity start event</dfn> is the <a title="instantaneous event">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">instantaneous event</a> that marks the instant an activity ends.</p>
-
-<p>An <dfn id="dfn-generation-event">entity generation event</dfn> is the <a title="instantaneous event">instantaneous event</a> that marks the final instant of an entity's creation timespan, after which
+<p>An <dfn id="dfn-start-event">activity start event</dfn> is the <a title="instantaneous event" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-event" class="internalDFN">instantaneous event</a> that marks the instant an activity ends.</p>
+
+<p>An <dfn id="dfn-generation-event">entity generation event</dfn> is the <a title="instantaneous event" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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>
-<p>An <dfn id="dfn-usage-event">entity usage event</dfn> is the <a
-title="instantaneous event">instantaneous event</a> that marks the first instant of
+<p>An <dfn id="dfn-usage-event">entity usage event</dfn> is the <a title="instantaneous event" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-event" class="internalDFN">instantaneous event</a> that marks the first instant of
an entity's consumption timespan by an activity. The described usage
had not started before this instant, although the activity could
potentially have used the same entity at a different time.</p>
<p>An <dfn id="dfn-invalidation-event">entity invalidation event</dfn>
-is the <a title="instantaneous event">instantaneous event</a> that
+is the <a title="instantaneous event" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-event" class="internalDFN">instantaneous event</a> 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>
-</section>
-
-
-<span class="delete">2.3 </span><section id="typing-section">
-<h2>Types</h2>
+</div>
+
+<div id="typing-section" class="section">
+<h3><span class="secno">2.3 </span>Types</h3>
<p> As set out in other specifications, the identifiers used in PROV
documents have associated type information. An identifier can have
@@ -1836,15 +1426,15 @@
(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 <a href="#type-constraints">disjointness and typing constraints</a> that
+This specification includes <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#type-constraints">disjointness and typing constraints</a> that
check these requirements. Here, we
-summarize the type constraints in <a href="#typing-table">Table 1</a>.
+summarize the type constraints in <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#typing-table">Table 1</a>.
</p>
<div id="typing-table-fig">
- <table id="typing-table" border=1 class="thinborder" style="margin-left: auto; margin-right: auto; border-color: black;">
+ <table id="typing-table" border="1" class="thinborder" style="margin-left: auto; margin-right: auto; border-color: black;">
<caption id="typing-table-caption">Table 1: Summary of Typing Constraints</caption>
- <tr>
+ <tbody><tr>
<th>In relation...</th>
<th>identifier</th>
<th>has type(s)...</th>
@@ -1852,31 +1442,31 @@
<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; " >
+ <tr style="text-align: center; ">
<td class="name">entity(e,attrs)</td>
<td class="name" style="text-align: center; ">e</td>
<td class="name">'entity'</td>
</tr>
- <tr style="text-align: center; " >
+ <tr style="text-align: center; ">
<td class="name">activity(a,t1,t2,attrs)</td>
<td class="name">a</td>
<td class="name">'activity'</td>
</tr>
- <tr style="text-align: center; " >
+ <tr style="text-align: center; ">
<td class="name">agent(ag,attrs)</td>
<td class="name">ag</td>
<td class="name">'agent'</td>
</tr>
- <tr style="text-align: center; " >
+ <tr style="text-align: center; ">
<td rowspan="2" class="name">used(id; a,e,t,attrs)</td>
<td class="name">e</td>
<td class="name">'entity'</td>
</tr>
- <tr style="text-align: center; " >
+ <tr style="text-align: center; ">
<td class="name">a</td>
<td class="name">'activity'</td>
</tr>
- <tr style="text-align: center; " >
+ <tr style="text-align: center; ">
<td rowspan="2" class="name">wasGeneratedBy(id; e,a,t,attrs)</td>
<td class="name">e</td>
<td class="name">'entity'</td>
@@ -1895,7 +1485,7 @@
<td class="name">'activity'</td>
</tr>
<tr style="text-align: center; ">
- <td rowspan=3 class="name">wasStartedBy(id; a2,e,a1,t,attrs)</td>
+ <td rowspan="3" class="name">wasStartedBy(id; a2,e,a1,t,attrs)</td>
<td class="name">a2</td>
<td class="name">'activity'</td>
</tr>
@@ -1965,7 +1555,7 @@
<td class="name">'entity'</td>
</tr>
<tr style="text-align: center; ">
- <td rowspan="3" class="name">actedOnBehalfOf(id; ag2,ag1,a,attrs)</td>
+ <td rowspan="3" class="name">actedOnBehalfOf(id; ag2,ag1,a,attrs)</td>
<td class="name">ag2</td>
<td class="name">'agent'</td>
</tr>
@@ -1978,7 +1568,7 @@
<td class="name">'activity'</td>
</tr>
<tr style="text-align: center; ">
- <td rowspan="2" class="name">alternateOf(e1,e2)</td>
+ <td rowspan="2" class="name">alternateOf(e1,e2)</td>
<td class="name">e1</td>
<td class="name">'entity'</td>
</tr>
@@ -1987,7 +1577,7 @@
<td class="name">'entity'</td>
</tr>
<tr style="text-align: center; ">
- <td rowspan="2" class="name">specializationOf(e1,e2)</td>
+ <td rowspan="2" class="name">specializationOf(e1,e2)</td>
<td class="name">e1</td>
<td class="name">'entity'</td>
</tr>
@@ -1996,7 +1586,7 @@
<td class="name">'entity'</td>
</tr>
<tr style="text-align: center; ">
- <td rowspan="3" class="name">mentionOf(e1,e2,b)</td>
+ <td rowspan="3" class="name">mentionOf(e1,e2,b)</td>
<td class="name">e1</td>
<td class="name">'entity'</td>
</tr>
@@ -2011,7 +1601,7 @@
<tr style="text-align: center; ">
<td rowspan="2" class="name">hadMember(c,e)</td>
<td class="name">c</td>
- <td class="name">'entity'<br /> 'prov:Collection'</td>
+ <td class="name">'entity'<br> 'prov:Collection'</td>
</tr>
<tr style="text-align: center; ">
<td class="name">e</td>
@@ -2020,23 +1610,21 @@
<tr style="text-align: center; ">
<td class="name">entity(c,[prov:type='prov:EmptyCollection,...])</td>
<td class="name">c</td>
- <td class="name">'entity'<br /> 'prov:Collection' <br /> 'prov:EmptyCollection'</td>
+ <td class="name">'entity'<br> 'prov:Collection' <br> 'prov:EmptyCollection'</td>
</tr>
- </table>
+ </tbody></table>
</div>
-
-
-<span class="delete">2.4 </span></section>
-<section>
-<h4>Validation Process Overview</h4>
+</div>
+<div id="validation-process-overview-1" class="section">
+<h3><span class="secno">2.4 </span>Validation Process Overview</h3>
<p>
This section collects common concepts and operations that are used
throughout the specification, and relates them to background
- terminology and ideas from logic <span class="delete">[</span><span class="delete">Logic</span><span class="delete">],</span><span class="insert">[[Logic]],</span> constraint programming
- <span class="delete">[</span><span class="delete">CHR</span><span class="delete">],</span><span class="insert">[[CHR]],</span> and database constraints <span class="delete">[</span><span class="delete">DBCONSTRAINTS</span><span class="delete">].</span><span class="insert">[[DBCONSTRAINTS]].</span> This section
+ terminology and ideas from logic [<cite><a class="bibref" rel="biblioentry" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#bib-Logic">Logic</a></cite>], constraint programming
+ [<cite><a class="bibref" rel="biblioentry" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#bib-CHR">CHR</a></cite>], and database constraints [<cite><a class="bibref" rel="biblioentry" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#bib-DBCONSTRAINTS">DBCONSTRAINTS</a></cite>]. 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
@@ -2057,21 +1645,21 @@
implementers, while a procedural approach immediately demonstrates
implementability and provides an adequate (polynomial-time) default implementation. In
this section we relate the declarative meaning of formulas to their
-procedural meaning. [[PROV-SEM]] will provide an alternative,
+procedural meaning. [</span><cite><a class="bibref" rel="biblioentry" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#bib-PROV-SEM"><span class="insert">PROV-SEM</span></a></cite><span class="insert">] will provide an alternative,
declarative characterization of validity and equivalence which could
be used as a starting point for other implementation strategies. </span></p>
- <h4>Constants, Variables and Placeholders</h4>
+ <h4 id="constants--variables-and-placeholders">Constants, Variables and Placeholders</h4>
<p>
PROV statements involve identifiers, literals,
- placeholders, and attribute lists. Identifiers are, according to PROV-N, expressed as <a href="http://www.w3.org/TR/prov-n/#prod-QUALIFIED_NAME">qualified names</a> which can be mapped to URIs <span class="delete">[</span><span class="delete">IRI</span><span class="delete">].</span><span class="insert">[[!IRI]].</span>
+ placeholders, and attribute lists. Identifiers are, according to PROV-N, expressed as <a href="http://www.w3.org/TR/prov-n/#prod-QUALIFIED_NAME">qualified names</a> which can be mapped to URIs [<cite><a class="bibref" rel="biblioentry" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#bib-IRI">IRI</a></cite>].
However, in order to specify
constraints over PROV instances, we also need <em>variables</em>
that represent unknown identifiers, literals, or placeholders.
These variables are similar to those in first-order
- logic <span class="delete">[</span><span class="delete">Logic</span><span class="delete">].</span><span class="insert">[[Logic]].</span> A variable is a symbol that can be replaced by
+ logic [<cite><a class="bibref" rel="biblioentry" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#bib-Logic">Logic</a></cite>]. 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.
@@ -2100,7 +1688,7 @@
</p>
- <h4>Substitution</h4>
+ <h4 id="substitution">Substitution</h4>
<p>A <em>substitution</em> 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 class="math">[x<sub>1</sub> = t<sub>1</sub>,...,x<sub>n</sub>=t<sub>n</sub>]</span>. A substitution
@@ -2111,8 +1699,7 @@
If the term is a variable <span class="math">x<sub>i</sub></span>, one of the variables in the
domain of <span class="math">S</span>, then <span class="math">S(x<sub>i</sub>) = t<sub>i</sub></span>.
</li>
- <li>If the term is a constant identifier or literal <span
- class="math">c</span>, then <span class="math">S(c) = c</span>.
+ <li>If the term is a constant identifier or literal <span class="math">c</span>, then <span class="math">S(c) = c</span>.
</li>
</ol>
<p>
@@ -2128,11 +1715,11 @@
- <h4>Formulas</h4>
+ <h4 id="formulas">Formulas</h4>
<p>
For the purpose of constraint checking, we view PROV statements
(possibly involving existential variables) as
- <dfn>formulas</dfn>. An instance is analogous to a "theory" in
+ <dfn id="dfn-formulas">formulas</dfn>. 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.
@@ -2155,7 +1742,7 @@
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 class="delete">[</span><span class="delete">Logic</span><span class="delete">].</span><span class="insert">[[Logic]].</span></p>
+ background on logical formulas, see a logic textbook such as [<cite><a class="bibref" rel="biblioentry" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#bib-Logic">Logic</a></cite>].</p>
<ul>
<li>
A definition of the form <span class="name">A</span> <span class="conditional">IF AND ONLY IF</span> there
@@ -2175,7 +1762,7 @@
</ul>
- <h4>Satisfying definitions, inferences, and constraints</h4>
+ <h4 id="satisfying-definitions--inferences--and-constraints">Satisfying definitions, inferences, and constraints</h4>
<p>
In logic, a formula's meaning is defined by saying when it is
<em>satisfied</em>. We can view
@@ -2213,9 +1800,9 @@
False</span> holds. This is logically equivalent to <span class="math">∄
x<sub>1</sub>...x<sub>n</sub>. A<sub>1</sub> ∧ ... ∧ A<sub>l</sub></span>, that is, there exists no
substitution for <span class="math">x<sub>1</sub>...x<sub>n</sub></span> making <span class="math">A<sub>1</sub> ∧ ... ∧ A<sub>l</sub></span> true.
-</ol>
-
-<h4><span class="insert">Unification and </span>Merging</h4>
+</li></ol>
+
+<h4 id="unification-and-merging"><span class="insert">Unification and </span>Merging</h4>
<p><em><span class="delete">Merging</span><span class="insert">Unification</span></em> is an operation that takes two terms and compares them to
<span class="delete">see if</span><span class="insert">determine whether</span> they<span class="delete"> are equal, or</span> can be made equal by substituting an
@@ -2241,7 +1828,7 @@
- <h4>Applying definitions, inferences, and constraints</h4>
+ <h4 id="applying-definitions--inferences--and-constraints">Applying definitions, inferences, and constraints</h4>
<p>Formulas can also be interpreted as having computational
content. That is, if an instance does not satisfy a formula, we can
often <em>apply</em> the formula to the instance to produce another
@@ -2254,22 +1841,19 @@
x<sub>1</sub>,....,x<sub>n</sub>. A ⇔ ∃
y<sub>1</sub>...y<sub>m</sub> . B<sub>1</sub> ∧ ... ∧
B<sub>k</sub></span>
- can be applied by searching for any occurrences of <span
- class="math">A</span> in the instance and adding <span class="math"> B<sub>1</sub>, ..., B<sub>k</sub></span>, generating fresh existential
+ can be applied by searching for any occurrences of <span class="math">A</span> in the instance and adding <span class="math"> B<sub>1</sub>, ..., B<sub>k</sub></span>, generating fresh existential
variables <span class="math">y<sub>1</sub>,...,y<sub>m</sub></span>, and conversely, whenever there is an
occurrence of <span class="math"> B<sub>1</sub>, ..., B<sub>k</sub></span>, adding
<span class="math">A</span>.
In our setting, the defined formulas <span class="math">A</span> are never used in other
formulas, so it is sufficient to replace all occurrences of
- <span class="math">A</span> with their definitions. The formula <span
- class="math">A</span> is then redundant, and can be
+ <span class="math">A</span> with their definitions. The formula <span class="math">A</span> is then redundant, and can be
removed from the instance.
</li>
<li>An inference of the form <span class="math">∀
x<sub>1</sub>,....,x<sub>n</sub>. A<sub>1</sub> ∧ ... ∧
A<sub>p</sub> ⇒ ∃ y<sub>1</sub>...y<sub>m</sub> . B<sub>1</sub> ∧
- ... ∧ B<sub>k</sub></span> can be applied by searching for any occurrences of <span
- class="math"> A<sub>1</sub> ∧ ... ∧
+ ... ∧ B<sub>k</sub></span> can be applied by searching for any occurrences of <span class="math"> A<sub>1</sub> ∧ ... ∧
A<sub>p</sub></span> in the instance and, for each such match,
for which the entire conclusion does not already hold (for some <span class="math">y<sub>1</sub>,...,y<sub>m</sub></span>),
adding <span class="math">B<sub>1</sub> ∧
@@ -2302,8 +1886,8 @@
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 <em>chasing</em> <span class="delete">[</span><span class="delete">DBCONSTRAINTS</span><span class="delete">]</span><span class="insert">[[DBCONSTRAINTS]]</span> or <em>saturation</em>
- <span class="delete">[</span><span class="delete">CHR</span><span class="delete">].</span><span class="insert">[[CHR]].</span> We call this process <em>normalization</em>.
+ called <em>chasing</em> [<cite><a class="bibref" rel="biblioentry" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#bib-DBCONSTRAINTS">DBCONSTRAINTS</a></cite>] or <em>saturation</em>
+ [<cite><a class="bibref" rel="biblioentry" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#bib-CHR">CHR</a></cite>]. We call this process <em>normalization</em>.
</p>
<p><span class="insert">
Although this specification outlines one particular way of
@@ -2311,13 +1895,13 @@
normalization, implementations can use any other equivalent
algorithm. The logical formulas corresponding to the definitions,
inferences, and constraints outlined above (and further elaborated
- in [[PROV-SEM]]) provides an equivalent specification, and any
+ in [</span><cite><a class="bibref" rel="biblioentry" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#bib-PROV-SEM"><span class="insert">PROV-SEM</span></a></cite><span class="insert">]) provides an equivalent specification, and any
implementation that correctly checks validity and equivalence (whether it performs normalization or not) complies
- with this specification.
- </span></p>
+ with this specification.</span>
+ </p>
- <h4>Termination</h4>
+ <h4 id="termination-1">Termination</h4>
<p>
In general, applying sets of logical formulas of the above
definition, inference, and constraint forms is not guaranteed to
@@ -2331,8 +1915,8 @@
guaranteed because the definitions, inferences and uniqueness/key
constraints correspond to a <em>weakly acyclic</em> set of
tuple-generating and equality-generating dependencies, in the
- terminology of <span class="delete">[</span><span class="delete">DBCONSTRAINTS</span><span class="delete">].</span><span class="insert">[[DBCONSTRAINTS]].</span> The termination of the remaining
- ordering, typing, and impossibility constraints is easy to show. <a href="#termination">Appendix
+ terminology of [<cite><a class="bibref" rel="biblioentry" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#bib-DBCONSTRAINTS">DBCONSTRAINTS</a></cite>]. The termination of the remaining
+ ordering, typing, and impossibility constraints is easy to show. <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#termination">Appendix
C</a> gives a proof that the definitions, inferences, and uniqueness
and key constraints are weakly acyclic and therefore terminating.
</p>
@@ -2341,9 +1925,7 @@
termination. This specification draws a distinction between knowing
that an identifier has type <span class="name">'entity'</span>, <span class="name">'activity'</span>, or <span class="name">'agent'</span>, and having
an explicit <span class="name">entity(id)</span>, <span class="name">activity(id)</span>, or <span class="name">agent(id)</span> statement in the instance.
- For example, focusing on entity statements, we can infer <span
- class="name">'entity' ∈ typeOf(id)</span> if <span
- class="name">entity(id)</span> holds in the instance. In contrast, if we only know
+ For example, focusing on entity statements, we can infer <span class="name">'entity' ∈ typeOf(id)</span> if <span class="name">entity(id)</span> holds in the instance. In contrast, if we only know
that <span class="name">'entity' ∈ typeOf(id)</span>, this does not imply that <span class="name">entity(id)</span>
holds.
</p>
@@ -2352,12 +1934,10 @@
ensure termination of the inferences, because we allow inferring
that a declared <span class="name">entity(id,attrs)</span> has a generation
and invalidation event, using
- <a class="rule-text"
- href="#entity-generation-invalidation-inference"><span><span class="delete">Inference 7 (entity-generation-invalidation-inference)</span><span class="insert">TBD</span></span></a>.
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#entity-generation-invalidation-inference_text"><span>Inference 7 (entity-generation-invalidation-inference)</span></a>.
Likewise, for activities, we allow inferring that a declared <span class="name">activity(id,t1,t2,attrs)</span> has a generation
and invalidation event, using
- <a class="rule-text"
- href="#activity-start-end-inference"><span><span class="delete">Inference 8 (activity-start-end-inference)</span><span class="insert">TBD</span></span></a>. These
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#activity-start-end-inference_text"><span>Inference 8 (activity-start-end-inference)</span></a>. 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
@@ -2376,17 +1956,15 @@
<div style="text-align: center;">
-
-<figure>
-<img src="images/constraints/prov-c.graffle.svg/overview.svg" alt="validation process overview" />
+<span class="figure">
+<img src="./prov-constraints_files/overview.svg" alt="validation process overview">
<br>
-<span class="delete">Figure 1</span><span class="delete"> ◊:</span> <figcaption id="validation-process-overview">Overview of the Validation Process
-</figcaption>
-</figure>
+<span class="figcaption" id="validation-process-overview">Figure 1<sup><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#validation-process-overview"><span class="diamond"> ◊:</span></a></sup> Overview of the Validation Process</span>
+</span>
</div>
- <h4>Checking ordering, typing, and impossibility constraints</h4>
+ <h4 id="checking-ordering--typing--and-impossibility-constraints">Checking ordering, typing, and impossibility constraints</h4>
<p>
The ordering, typing, and impossibility constraints are checked
rather than applied. This means that they do not generate new
@@ -2440,7 +2018,7 @@
A normalized instance that <span class="delete">satisfies</span><span class="insert">passes</span> all of the <span class="delete">checked constraints
</span><span class="insert">ordering, typing,
and impossibility constraint checks
- </span>is called <a>valid</a>. Validity can be, but is not required to be,
+ </span>is called <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-valid" class="internalDFN">valid</a>. 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.
@@ -2453,7 +2031,7 @@
- <h4>Equivalence and Isomorphism</h4>
+ <h4 id="equivalence-and-isomorphism">Equivalence and Isomorphism</h4>
<p> 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
@@ -2494,8 +2072,8 @@
that:
</span></p>
<ul>
- <li><span class="insert">instance equivalence is </span><a><span class="insert">reflexive</span></a><span class="insert">, </span><a><span class="insert">symmetric</span></a><span class="insert"> and
- </span><a><span class="insert">transitive</span></a><span class="insert"> on all instances</span></li>
+ <li><span class="insert">instance equivalence is </span><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-reflexive" class="internalDFN"><span class="insert">reflexive</span></a><span class="insert">, </span><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-symmetric" class="internalDFN"><span class="insert">symmetric</span></a><span class="insert"> and
+ </span><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-transitive" class="internalDFN"><span class="insert">transitive</span></a><span class="insert"> on all instances</span></li>
<li><span class="insert"> no valid instance is equivalent to an invalid instance.</span></li>
</ul>
<p><span class="insert">
@@ -2509,7 +2087,7 @@
<li><span class="insert">every pair of invalid instances are equivalent</span></li>
</ol>
-<h4>From Instances to Bundles and Documents</h4>
+<h4 id="from-instances-to-bundles-and-documents">From Instances to Bundles and Documents</h4>
<p>PROV documents can contain multiple instances: a <a>toplevel
instance</a><span class="delete"> consisting of the set of statements not appearing within a bundle,</span><span class="insert">,</span> and
@@ -2534,11 +2112,10 @@
property than requiring that there be a single isomorphism that works
for all of the corresponding instances.
</p>
-</section>
-
-
-<span class="delete">2.5 </span><section>
-<h4>Summary of inferences and constraints</h4>
+</div>
+
+<div id="summary-of-inferences-and-constraints" class="section">
+<h3><span class="secno">2.5 </span>Summary of inferences and constraints</h3>
<p><a href="">Table 2</a> summarizes the inferences, and
constraints specified in this document, broken down by component and
@@ -2548,131 +2125,131 @@
<div class="note">Table: work in progress; these entries might change when the document is updated.</div>
<div id="prov-constraints-fig" style="text-align: left;">
-<table class="thinborder" style="margin-left: auto; margin-right: auto; border-color: black;">
+<table class="thinborder" style="margin-left: auto; margin-right: auto; border-color: black;">
<caption id="prov-constraints">Table 2: Summary of inferences and constraints for PROV Types and Relations</caption>
-<tr><td><a><b>Type or Relation Name</b></a></td><td><b>
+<tbody><tr><td><a><b>Type or Relation Name</b></a></td><td><b>
Inferences and Constraints</b></td><td><b>Component</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"><span><span class="delete">Inference 7 (entity-generation-invalidation-inference)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#specialization-attributes-inference"><span><span class="delete">Inference 21 (specialization-attributes-inference)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#key-object"><span><span class="delete">Constraint 23 (key-object)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#impossible-object-property-overlap"><span><span class="delete">Constraint 56 (impossible-object-property-overlap)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#entity-activity-disjoint"><span><span class="delete">Constraint 57 (entity-activity-disjoint)</span><span class="insert">TBD</span></span></a><br>
+ <td><a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#entity-generation-invalidation-inference_text"><span>Inference 7 (entity-generation-invalidation-inference)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#specialization-attributes-inference_text"><span>Inference 21 (specialization-attributes-inference)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#key-object_text"><span>Constraint 23 (key-object)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#impossible-object-property-overlap_text"><span>Constraint 56 (impossible-object-property-overlap)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#entity-activity-disjoint_text"><span>Constraint 57 (entity-activity-disjoint)</span></a><br>
</td>
<td rowspan="8" style="text-align: center; "><a href="http://www.w3.org/TR/prov-dm/#component1" title="Component 1: Entities/Activities">1</a></td>
</tr>
<tr class="component1-color">
<td class="essential"><a>Activity</a></td>
- <td><a class="rule-text" href="#activity-start-end-inference"><span><span class="delete">Inference 8 (activity-start-end-inference)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#key-object"><span><span class="delete">Constraint 23 (key-object)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#unique-startTime"><span><span class="delete">Constraint 29 (unique-startTime)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#unique-endTime"><span><span class="delete">Constraint 30 (unique-endTime)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#impossible-object-property-overlap"><span><span class="delete">Constraint 56 (impossible-object-property-overlap)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#entity-activity-disjoint"><span><span class="delete">Constraint 57 (entity-activity-disjoint)</span><span class="insert">TBD</span></span></a><br>
+ <td><a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#activity-start-end-inference_text"><span>Inference 8 (activity-start-end-inference)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#key-object_text"><span>Constraint 23 (key-object)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#unique-startTime_text"><span>Constraint 29 (unique-startTime)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#unique-endTime_text"><span>Constraint 30 (unique-endTime)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#impossible-object-property-overlap_text"><span>Constraint 56 (impossible-object-property-overlap)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#entity-activity-disjoint_text"><span>Constraint 57 (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"><span><span class="delete">Inference 6 (generation-use-communication-inference)</span><span class="insert">TBD</span></span></a><br>
-
- <a class="rule-text" href="#influence-inference"><span><span class="delete">Inference 15 (influence-inference)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#key-properties"><span><span class="delete">Constraint 24 (key-properties)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#unique-generation"><span><span class="delete">Constraint 25 (unique-generation)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#generation-within-activity"><span><span class="delete">Constraint 36 (generation-within-activity)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#generation-precedes-invalidation"><span><span class="delete">Constraint 38 (generation-precedes-invalidation)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#generation-precedes-usage"><span><span class="delete">Constraint 39 (generation-precedes-usage)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#generation-generation-ordering"><span><span class="delete">Constraint 41 (generation-generation-ordering)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#derivation-usage-generation-ordering"><span><span class="delete">Constraint 43 (derivation-usage-generation-ordering)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#derivation-generation-generation-ordering"><span><span class="delete">Constraint 44 (derivation-generation-generation-ordering)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#wasStartedBy-ordering"><span><span class="delete">Constraint 45 (wasStartedBy-ordering)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#wasEndedBy-ordering"><span><span class="delete">Constraint 46 (wasEndedBy-ordering)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#specialization-generation-ordering"><span><span class="delete">Constraint 47 (specialization-generation-ordering)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#wasAssociatedWith-ordering"><span><span class="delete">Constraint 49 (wasAssociatedWith-ordering)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#wasAttributedTo-ordering"><span><span class="delete">Constraint 50 (wasAttributedTo-ordering)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#actedOnBehalfOf-ordering"><span><span class="delete">Constraint 51 (actedOnBehalfOf-ordering)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#impossible-property-overlap"><span><span class="delete">Constraint 55 (impossible-property-overlap)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#typing"><span><span class="delete">Constraint 52 (typing)</span><span class="insert">TBD</span></span></a><br>
+ <td><a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#generation-use-communication-inference_text"><span>Inference 6 (generation-use-communication-inference)</span></a><br>
+
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#influence-inference_text"><span>Inference 15 (influence-inference)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#key-properties_text"><span>Constraint 24 (key-properties)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#unique-generation_text"><span>Constraint 25 (unique-generation)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#generation-within-activity_text"><span>Constraint 36 (generation-within-activity)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#generation-precedes-invalidation_text"><span>Constraint 38 (generation-precedes-invalidation)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#generation-precedes-usage_text"><span>Constraint 39 (generation-precedes-usage)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#generation-generation-ordering_text"><span>Constraint 41 (generation-generation-ordering)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#derivation-usage-generation-ordering_text"><span>Constraint 43 (derivation-usage-generation-ordering)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#derivation-generation-generation-ordering_text"><span>Constraint 44 (derivation-generation-generation-ordering)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#wasStartedBy-ordering_text"><span>Constraint 45 (wasStartedBy-ordering)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#wasEndedBy-ordering_text"><span>Constraint 46 (wasEndedBy-ordering)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#specialization-generation-ordering_text"><span>Constraint 47 (specialization-generation-ordering)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#wasAssociatedWith-ordering_text"><span>Constraint 49 (wasAssociatedWith-ordering)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#wasAttributedTo-ordering_text"><span>Constraint 50 (wasAttributedTo-ordering)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#actedOnBehalfOf-ordering_text"><span>Constraint 51 (actedOnBehalfOf-ordering)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#impossible-property-overlap_text"><span>Constraint 55 (impossible-property-overlap)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#typing_text"><span>Constraint 52 (typing)</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"><span><span class="delete">Inference 6 (generation-use-communication-inference)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#influence-inference"><span><span class="delete">Inference 15 (influence-inference)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#key-properties"><span><span class="delete">Constraint 24 (key-properties)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#usage-within-activity"><span><span class="delete">Constraint 35 (usage-within-activity)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#generation-precedes-usage"><span><span class="delete">Constraint 39 (generation-precedes-usage)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#usage-precedes-invalidation"><span><span class="delete">Constraint 40 (usage-precedes-invalidation)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#derivation-usage-generation-ordering"><span><span class="delete">Constraint 43 (derivation-usage-generation-ordering)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#impossible-property-overlap"><span><span class="delete">Constraint 55 (impossible-property-overlap)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#typing"><span><span class="delete">Constraint 52 (typing)</span><span class="insert">TBD</span></span></a><br>
+ <td><a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#generation-use-communication-inference_text"><span>Inference 6 (generation-use-communication-inference)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#influence-inference_text"><span>Inference 15 (influence-inference)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#key-properties_text"><span>Constraint 24 (key-properties)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#usage-within-activity_text"><span>Constraint 35 (usage-within-activity)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#generation-precedes-usage_text"><span>Constraint 39 (generation-precedes-usage)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#usage-precedes-invalidation_text"><span>Constraint 40 (usage-precedes-invalidation)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#derivation-usage-generation-ordering_text"><span>Constraint 43 (derivation-usage-generation-ordering)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#impossible-property-overlap_text"><span>Constraint 55 (impossible-property-overlap)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#typing_text"><span>Constraint 52 (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"><span><span class="delete">Inference 5 (communication-generation-use-inference)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#influence-inference"><span><span class="delete">Inference 15 (influence-inference)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#key-properties"><span><span class="delete">Constraint 24 (key-properties)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#wasInformedBy-ordering"><span><span class="delete">Constraint 37 (wasInformedBy-ordering)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#impossible-property-overlap"><span><span class="delete">Constraint 55 (impossible-property-overlap)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#typing"><span><span class="delete">Constraint 52 (typing)</span><span class="insert">TBD</span></span></a><br>
+ <td><a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#communication-generation-use-inference_text"><span>Inference 5 (communication-generation-use-inference)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#influence-inference_text"><span>Inference 15 (influence-inference)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#key-properties_text"><span>Constraint 24 (key-properties)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#wasInformedBy-ordering_text"><span>Constraint 37 (wasInformedBy-ordering)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#impossible-property-overlap_text"><span>Constraint 55 (impossible-property-overlap)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#typing_text"><span>Constraint 52 (typing)</span></a><br>
</td>
</tr>
<tr class="component1-color">
<td class="essential"><a>Start</a></td>
- <td><a class="rule-text" href="#wasStartedBy-inference"><span><span class="delete">Inference 9 (wasStartedBy-inference)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#influence-inference"><span><span class="delete">Inference 15 (influence-inference)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#key-properties"><span><span class="delete">Constraint 24 (key-properties)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#unique-wasStartedBy"><span><span class="delete">Constraint 27 (unique-wasStartedBy)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#unique-startTime"><span><span class="delete">Constraint 29 (unique-startTime)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#start-precedes-end"><span><span class="delete">Constraint 32 (start-precedes-end)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#usage-within-activity"><span><span class="delete">Constraint 35 (usage-within-activity)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#generation-within-activity"><span><span class="delete">Constraint 36 (generation-within-activity)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#wasInformedBy-ordering"><span><span class="delete">Constraint 37 (wasInformedBy-ordering)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#start-start-ordering"><span><span class="delete">Constraint 33 (start-start-ordering)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#wasStartedBy-ordering"><span><span class="delete">Constraint 45 (wasStartedBy-ordering)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#wasAssociatedWith-ordering"><span><span class="delete">Constraint 49 (wasAssociatedWith-ordering)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#impossible-property-overlap"><span><span class="delete">Constraint 55 (impossible-property-overlap)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#typing"><span><span class="delete">Constraint 52 (typing)</span><span class="insert">TBD</span></span></a><br>
+ <td><a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#wasStartedBy-inference_text"><span>Inference 9 (wasStartedBy-inference)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#influence-inference_text"><span>Inference 15 (influence-inference)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#key-properties_text"><span>Constraint 24 (key-properties)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#unique-wasStartedBy_text"><span>Constraint 27 (unique-wasStartedBy)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#unique-startTime_text"><span>Constraint 29 (unique-startTime)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#start-precedes-end_text"><span>Constraint 32 (start-precedes-end)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#usage-within-activity_text"><span>Constraint 35 (usage-within-activity)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#generation-within-activity_text"><span>Constraint 36 (generation-within-activity)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#wasInformedBy-ordering_text"><span>Constraint 37 (wasInformedBy-ordering)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#start-start-ordering_text"><span>Constraint 33 (start-start-ordering)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#wasStartedBy-ordering_text"><span>Constraint 45 (wasStartedBy-ordering)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#wasAssociatedWith-ordering_text"><span>Constraint 49 (wasAssociatedWith-ordering)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#impossible-property-overlap_text"><span>Constraint 55 (impossible-property-overlap)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#typing_text"><span>Constraint 52 (typing)</span></a><br>
</td>
</tr>
<tr class="component1-color">
<td class="essential"><a>End</a></td>
- <td><a class="rule-text" href="#wasEndedBy-inference"><span><span class="delete">Inference 10 (wasEndedBy-inference)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#influence-inference"><span><span class="delete">Inference 15 (influence-inference)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#key-properties"><span><span class="delete">Constraint 24 (key-properties)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#unique-wasEndedBy"><span><span class="delete">Constraint 28 (unique-wasEndedBy)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#unique-endTime"><span><span class="delete">Constraint 30 (unique-endTime)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#start-precedes-end"><span><span class="delete">Constraint 32 (start-precedes-end)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#usage-within-activity"><span><span class="delete">Constraint 35 (usage-within-activity)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#generation-within-activity"><span><span class="delete">Constraint 36 (generation-within-activity)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#wasInformedBy-ordering"><span><span class="delete">Constraint 37 (wasInformedBy-ordering)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#end-end-ordering"><span><span class="delete">Constraint 34 (end-end-ordering)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#wasEndedBy-ordering"><span><span class="delete">Constraint 46 (wasEndedBy-ordering)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#wasAssociatedWith-ordering"><span><span class="delete">Constraint 49 (wasAssociatedWith-ordering)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#impossible-property-overlap"><span><span class="delete">Constraint 55 (impossible-property-overlap)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#typing"><span><span class="delete">Constraint 52 (typing)</span><span class="insert">TBD</span></span></a><br>
+ <td><a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#wasEndedBy-inference_text"><span>Inference 10 (wasEndedBy-inference)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#influence-inference_text"><span>Inference 15 (influence-inference)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#key-properties_text"><span>Constraint 24 (key-properties)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#unique-wasEndedBy_text"><span>Constraint 28 (unique-wasEndedBy)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#unique-endTime_text"><span>Constraint 30 (unique-endTime)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#start-precedes-end_text"><span>Constraint 32 (start-precedes-end)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#usage-within-activity_text"><span>Constraint 35 (usage-within-activity)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#generation-within-activity_text"><span>Constraint 36 (generation-within-activity)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#wasInformedBy-ordering_text"><span>Constraint 37 (wasInformedBy-ordering)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#end-end-ordering_text"><span>Constraint 34 (end-end-ordering)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#wasEndedBy-ordering_text"><span>Constraint 46 (wasEndedBy-ordering)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#wasAssociatedWith-ordering_text"><span>Constraint 49 (wasAssociatedWith-ordering)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#impossible-property-overlap_text"><span>Constraint 55 (impossible-property-overlap)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#typing_text"><span>Constraint 52 (typing)</span></a><br>
</td>
</tr>
<tr class="component1-color">
<td class="essential"><a>Invalidation</a></td>
- <td><a class="rule-text" href="#influence-inference"><span><span class="delete">Inference 15 (influence-inference)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#key-properties"><span><span class="delete">Constraint 24 (key-properties)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#unique-invalidation"><span><span class="delete">Constraint 26 (unique-invalidation)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#generation-precedes-invalidation"><span><span class="delete">Constraint 38 (generation-precedes-invalidation)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#usage-precedes-invalidation"><span><span class="delete">Constraint 40 (usage-precedes-invalidation)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#invalidation-invalidation-ordering"><span><span class="delete">Constraint 42 (invalidation-invalidation-ordering)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#wasStartedBy-ordering"><span><span class="delete">Constraint 45 (wasStartedBy-ordering)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#wasEndedBy-ordering"><span><span class="delete">Constraint 46 (wasEndedBy-ordering)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#specialization-invalidation-ordering"><span><span class="delete">Constraint 48 (specialization-invalidation-ordering)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#wasAssociatedWith-ordering"><span><span class="delete">Constraint 49 (wasAssociatedWith-ordering)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#wasAttributedTo-ordering"><span><span class="delete">Constraint 50 (wasAttributedTo-ordering)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#actedOnBehalfOf-ordering"><span><span class="delete">Constraint 51 (actedOnBehalfOf-ordering)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#impossible-property-overlap"><span><span class="delete">Constraint 55 (impossible-property-overlap)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#typing"><span><span class="delete">Constraint 52 (typing)</span><span class="insert">TBD</span></span></a><br>
+ <td><a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#influence-inference_text"><span>Inference 15 (influence-inference)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#key-properties_text"><span>Constraint 24 (key-properties)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#unique-invalidation_text"><span>Constraint 26 (unique-invalidation)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#generation-precedes-invalidation_text"><span>Constraint 38 (generation-precedes-invalidation)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#usage-precedes-invalidation_text"><span>Constraint 40 (usage-precedes-invalidation)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#invalidation-invalidation-ordering_text"><span>Constraint 42 (invalidation-invalidation-ordering)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#wasStartedBy-ordering_text"><span>Constraint 45 (wasStartedBy-ordering)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#wasEndedBy-ordering_text"><span>Constraint 46 (wasEndedBy-ordering)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#specialization-invalidation-ordering_text"><span>Constraint 48 (specialization-invalidation-ordering)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#wasAssociatedWith-ordering_text"><span>Constraint 49 (wasAssociatedWith-ordering)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#wasAttributedTo-ordering_text"><span>Constraint 50 (wasAttributedTo-ordering)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#actedOnBehalfOf-ordering_text"><span>Constraint 51 (actedOnBehalfOf-ordering)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#impossible-property-overlap_text"><span>Constraint 55 (impossible-property-overlap)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#typing_text"><span>Constraint 52 (typing)</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>
@@ -2680,20 +2257,20 @@
<tr class="component2-color">
<td class="essential"><a>Derivation</a></td>
- <td><a class="rule-text" href="#derivation-generation-use-inference"><span><span class="delete">Inference 11 (derivation-generation-use-inference)</span><span class="insert">TBD</span></span></a><br>
-
-
- <a class="rule-text" href="#influence-inference"><span><span class="delete">Inference 15 (influence-inference)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#key-properties"><span><span class="delete">Constraint 24 (key-properties)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#derivation-usage-generation-ordering"><span><span class="delete">Constraint 43 (derivation-usage-generation-ordering)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#derivation-generation-generation-ordering"><span><span class="delete">Constraint 44 (derivation-generation-generation-ordering)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#typing"><span><span class="delete">Constraint 52 (typing)</span><span class="insert">TBD</span></span></a><br>
+ <td><a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#derivation-generation-use-inference_text"><span>Inference 11 (derivation-generation-use-inference)</span></a><br>
+
+
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#influence-inference_text"><span>Inference 15 (influence-inference)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#key-properties_text"><span>Constraint 24 (key-properties)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#derivation-usage-generation-ordering_text"><span>Constraint 43 (derivation-usage-generation-ordering)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#derivation-generation-generation-ordering_text"><span>Constraint 44 (derivation-generation-generation-ordering)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#typing_text"><span>Constraint 52 (typing)</span></a><br>
</td>
- <td rowspan="5" style="text-align: center; "><a href="http://www.w3.org/TR/prov-dm/#component2" title="Component 2: Derivations">2</a></td>
+ <td rowspan="5" style="text-align: center; "><a href="http://www.w3.org/TR/prov-dm/#component2" title="Component 2: Derivations">2</a></td>
</tr>
<tr class="component2-color">
<td class="provType"><a>Revision</a></td>
- <td><a class="rule-text" href="#revision-is-alternate-inference"><span><span class="delete">Inference 12 (revision-is-alternate-inference)</span><span class="insert">TBD</span></span></a><br></td>
+ <td><a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#revision-is-alternate-inference_text"><span>Inference 12 (revision-is-alternate-inference)</span></a><br></td>
</tr>
<tr class="component2-color">
<td class="provType"><a>Quotation</a></td>
@@ -2710,88 +2287,86 @@
<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"><span><span class="delete">Constraint 23 (key-object)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#impossible-object-property-overlap"><span><span class="delete">Constraint 56 (impossible-object-property-overlap)</span><span class="insert">TBD</span></span></a><br>
+ <td class="essential"><a>Agent</a></td>
+ <td><a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#key-object_text"><span>Constraint 23 (key-object)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#impossible-object-property-overlap_text"><span>Constraint 56 (impossible-object-property-overlap)</span></a><br>
</td>
- <td rowspan="5" style="text-align: center; "><a href="http://www.w3.org/TR/prov-dm/#component3" title="Component 3: Agents/Responsibility">3</a></td>
+ <td rowspan="5" style="text-align: center; "><a href="http://www.w3.org/TR/prov-dm/#component3" title="Component 3: Agents/Responsibility">3</a></td>
</tr>
<tr class="component3-color">
<td class="essential"><a>Attribution</a></td>
- <td><a class="rule-text" href="#attribution-inference"><span><span class="delete">Inference 13 (attribution-inference)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#influence-inference"><span><span class="delete">Inference 15 (influence-inference)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#key-properties"><span><span class="delete">Constraint 24 (key-properties)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#wasAttributedTo-ordering"><span><span class="delete">Constraint 50 (wasAttributedTo-ordering)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#impossible-property-overlap"><span><span class="delete">Constraint 55 (impossible-property-overlap)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#typing"><span><span class="delete">Constraint 52 (typing)</span><span class="insert">TBD</span></span></a><br>
+ <td><a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#attribution-inference_text"><span>Inference 13 (attribution-inference)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#influence-inference_text"><span>Inference 15 (influence-inference)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#key-properties_text"><span>Constraint 24 (key-properties)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#wasAttributedTo-ordering_text"><span>Constraint 50 (wasAttributedTo-ordering)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#impossible-property-overlap_text"><span>Constraint 55 (impossible-property-overlap)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#typing_text"><span>Constraint 52 (typing)</span></a><br>
</td>
</tr>
<tr class="component3-color">
<td class="essential"><a>Association</a></td>
- <td><a class="rule-text" href="#influence-inference"><span><span class="delete">Inference 15 (influence-inference)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#key-properties"><span><span class="delete">Constraint 24 (key-properties)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#wasAssociatedWith-ordering"><span><span class="delete">Constraint 49 (wasAssociatedWith-ordering)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#impossible-property-overlap"><span><span class="delete">Constraint 55 (impossible-property-overlap)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#typing"><span><span class="delete">Constraint 52 (typing)</span><span class="insert">TBD</span></span></a><br>
+ <td><a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#influence-inference_text"><span>Inference 15 (influence-inference)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#key-properties_text"><span>Constraint 24 (key-properties)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#wasAssociatedWith-ordering_text"><span>Constraint 49 (wasAssociatedWith-ordering)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#impossible-property-overlap_text"><span>Constraint 55 (impossible-property-overlap)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#typing_text"><span>Constraint 52 (typing)</span></a><br>
</td>
</tr>
<tr class="component3-color">
<td class="essential"><a>Delegation</a></td>
- <td><a class="rule-text" href="#delegation-inference"><span><span class="delete">Inference 14 (delegation-inference)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#influence-inference"><span><span class="delete">Inference 15 (influence-inference)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#key-properties"><span><span class="delete">Constraint 24 (key-properties)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#actedOnBehalfOf-ordering"><span><span class="delete">Constraint 51 (actedOnBehalfOf-ordering)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#impossible-property-overlap"><span><span class="delete">Constraint 55 (impossible-property-overlap)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#typing"><span><span class="delete">Constraint 52 (typing)</span><span class="insert">TBD</span></span></a><br>
+ <td><a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#delegation-inference_text"><span>Inference 14 (delegation-inference)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#influence-inference_text"><span>Inference 15 (influence-inference)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#key-properties_text"><span>Constraint 24 (key-properties)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#actedOnBehalfOf-ordering_text"><span>Constraint 51 (actedOnBehalfOf-ordering)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#impossible-property-overlap_text"><span>Constraint 55 (impossible-property-overlap)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#typing_text"><span>Constraint 52 (typing)</span></a><br>
</td>
</tr>
<tr class="component3-color">
<td class="essential"><a>Influence</a></td>
- <td><a class="rule-text" href="#influence-inference"><span><span class="delete">Inference 15 (influence-inference)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#key-properties"><span><span class="delete">Constraint 24 (key-properties)</span><span class="insert">TBD</span></span></a><br>
+ <td><a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#influence-inference_text"><span>Inference 15 (influence-inference)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#key-properties_text"><span>Constraint 24 (key-properties)</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>No specific constraints; see <span class="delete">section 6.2 Bundles and Documents</span><a href="#bundle-constraints"
-class="sectionRef"></a></td>
- <td rowspan="2" style="text-align: center; "><a href="http://www.w3.org/TR/prov-dm/#component4" title="Component 4: Bundles">4</a></td>
+ <td>No specific constraints; see <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#bundle-constraints" class="sectionRef">section 6.2 Bundles and Documents</a></td>
+ <td rowspan="2" style="text-align: center; "><a href="http://www.w3.org/TR/prov-dm/#component4" title="Component 4: Bundles">4</a></td>
</tr>
<tr class="component4-color">
<td class="provType"><a title="bundle">Bundle type</a></td>
- <td> No specific constraints; see <span class="delete">section 6.2 Bundles and Documents</span><a href="#bundle-constraints"
-class="sectionRef"></a>
+ <td> No specific constraints; see <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#bundle-constraints" class="sectionRef">section 6.2 Bundles and Documents</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"><span><span class="delete">Inference 16 (alternate-reflexive)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#alternate-transitive"><span><span class="delete">Inference 17 (alternate-transitive)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#alternate-symmetric"><span><span class="delete">Inference 18 (alternate-symmetric)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#typing"><span><span class="delete">Constraint 52 (typing)</span><span class="insert">TBD</span></span></a><br>
+ <td><a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#alternate-reflexive_text"><span>Inference 16 (alternate-reflexive)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#alternate-transitive_text"><span>Inference 17 (alternate-transitive)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#alternate-symmetric_text"><span>Inference 18 (alternate-symmetric)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#typing_text"><span>Constraint 52 (typing)</span></a><br>
</td>
- <td rowspan="3" style="text-align: center; "><a href="http://www.w3.org/TR/prov-dm/#component5" title="Component 5: Alternate Entities">5</a></td>
+ <td rowspan="3" style="text-align: center; "><a href="http://www.w3.org/TR/prov-dm/#component5" title="Component 5: Alternate Entities">5</a></td>
</tr>
<tr class="component5-color">
<td><a>Specialization</a></td>
- <td><a class="rule-text" href="#specialization-transitive"><span><span class="delete">Inference 19 (specialization-transitive)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#specialization-alternate-inference"><span><span class="delete">Inference 20 (specialization-alternate-inference)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#specialization-attributes-inference"><span><span class="delete">Inference 21 (specialization-attributes-inference)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#specialization-generation-ordering"><span><span class="delete">Constraint 47 (specialization-generation-ordering)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#specialization-invalidation-ordering"><span><span class="delete">Constraint 48 (specialization-invalidation-ordering)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#impossible-specialization-reflexive"><span><span class="delete">Constraint 54 (impossible-specialization-reflexive)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#typing"><span><span class="delete">Constraint 52 (typing)</span><span class="insert">TBD</span></span></a><br>
+ <td><a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#specialization-transitive_text"><span>Inference 19 (specialization-transitive)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#specialization-alternate-inference_text"><span>Inference 20 (specialization-alternate-inference)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#specialization-attributes-inference_text"><span>Inference 21 (specialization-attributes-inference)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#specialization-generation-ordering_text"><span>Constraint 47 (specialization-generation-ordering)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#specialization-invalidation-ordering_text"><span>Constraint 48 (specialization-invalidation-ordering)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#impossible-specialization-reflexive_text"><span>Constraint 54 (impossible-specialization-reflexive)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#typing_text"><span>Constraint 52 (typing)</span></a><br>
</td>
</tr>
<tr class="component5-color">
<td><a>Mention</a></td>
- <td><a class="rule-text" href="#mention-specialization-inference"><span><span class="delete">Inference 22 (mention-specialization-inference)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#unique-mention"><span><span class="delete">Constraint 31 (unique-mention)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#typing"><span><span class="delete">Constraint 52 (typing)</span><span class="insert">TBD</span></span></a><br>
+ <td><a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#mention-specialization-inference_text"><span>Inference 22 (mention-specialization-inference)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#unique-mention_text"><span>Constraint 31 (unique-mention)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#typing_text"><span>Constraint 52 (typing)</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>
@@ -2799,53 +2374,48 @@
<tr class="component6-color">
<td><a>Collection</a></td>
<td> No specific constraints </td>
- <td rowspan="2" style="text-align: center; "><a href="http://www.w3.org/TR/prov-dm/#component6" title="Component 6: Collections">6</a></td>
+ <td rowspan="2" style="text-align: center; "><a href="http://www.w3.org/TR/prov-dm/#component6" title="Component 6: Collections">6</a></td>
</tr>
<tr class="component6-color">
<td><a>Membership</a></td>
- <td> <a class="rule-text" href="#membership-empty-collection"><span><span class="delete">Constraint 58 (membership-empty-collection)</span><span class="insert">TBD</span></span></a><br>
- <a class="rule-text" href="#typing"><span><span class="delete">Constraint 52 (typing)</span><span class="insert">TBD</span></span></a><br>
+ <td> <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#membership-empty-collection_text"><span>Constraint 58 (membership-empty-collection)</span></a><br>
+ <a class="rule-text" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#typing_text"><span>Constraint 52 (typing)</span></a><br>
</td>
</tr>
-</table>
+</tbody></table>
</div>
-</section>
-
-</section>
-
-<section id="compliance">
-<h2><span class="delete">3. </span>Compliance with this document</h2>
+</div>
+
+</div>
+
+<div id="compliance" class="section">
+<h2><span class="secno">3. </span>Compliance with this document</h2>
<p>
For the purpose of compliance, the normative sections of this document
- are <span class="delete">section 3. Compliance with this document</span><a href="#compliance"
-class="sectionRef"></a>, <span class="delete">section 4. Definitions and Inferences</span><a href="#inferences"
-class="sectionRef"></a>, <span class="delete">section 5. Constraints</span><a href="#constraints"
-class="sectionRef"></a>, and <span class="delete">section 6. Normalization, Validity, and Equivalence</span><a href="#normalization-validity-equivalence"
-class="sectionRef"></a>.
+ are <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#compliance" class="sectionRef">section 3. Compliance with this document</a>, <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#inferences" class="sectionRef">section 4. Definitions and Inferences</a>, <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#constraints" class="sectionRef">section 5. Constraints</a>, and <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#normalization-validity-equivalence" class="sectionRef">section 6. Normalization, Validity, and Equivalence</a>.
To be compliant:
- <ol><li>When processing provenance, an
- application <span class="delete">may</span><span class="insert">MAY</span> apply the inferences and definitions in <span class="delete">section 4. Definitions and Inferences</span><a
- href="#inferences" class='sectionRef'></a>.</li>
- <li>If determining whether a PROV instance or document is <a>valid</a>, an
- application <span class="delete">must</span><span class="delete"> check that</span><span class="insert">MUST determine whether</span> all of the
- constraints of <a href="#constraints" class="sectionRef"><span class="delete">section 5. Constraints</span></a> are
+ </p><ol><li>When processing provenance, an
+ application <em class="rfc2119" title="may">may</em> apply the inferences and definitions in <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#inferences" class="sectionRef">section 4. Definitions and Inferences</a>.</li>
+ <li>If determining whether a PROV instance or document is <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-valid" class="internalDFN">valid</a>, an
+ application <em class="rfc2119" title="must">must</em> <span class="delete">check that</span><span class="insert">determine whether</span> all of the
+ constraints of <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#constraints" class="sectionRef">section 5. Constraints</a> are
satisfied on<span class="delete"> the </span><span class="insert">
- the </span><a>normal form</a> of the instance or document. </li>
+ the </span><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-normal-form" class="internalDFN">normal form</a> of the instance or document. </li>
<li> If producing provenance meant for other applications to
- use, the application <span class="delete">should</span><span class="insert">SHOULD</span> produce <a>valid</a> provenance, as specified in <a href="#normalization-validity-equivalence" class="sectionRef"><span class="delete">section 6. Normalization, Validity, and Equivalence</span></a>. </li>
+ use, the application <em class="rfc2119" title="should">should</em> produce <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-valid" class="internalDFN">valid</a> provenance, as specified in <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#normalization-validity-equivalence" class="sectionRef">section 6. Normalization, Validity, and Equivalence</a>. </li>
<li>If determining whether two PROV instances or documents are
- <a>equivalent</a>, an application <span class="delete">must</span><span class="insert">MUST</span> determine whether their
- normal forms are equal, as specified in <a href="#normalization-validity-equivalence" class="sectionRef"><span class="delete">section 6. Normalization, Validity, and Equivalence</span></a>.
- </ol>
+ <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#normalization-validity-equivalence" class="sectionRef">section 6. Normalization, Validity, and Equivalence</a>.
+ </li></ol>
<p><span class="delete">Compliant </span><span class="insert">This specification defines validity and equivalence procedurally
via reduction to normal forms. If checking validity or equivalence, the
- results MUST be the same as would be obtained by computing normal
+ results </span><em class="rfc2119" title="must"><span class="insert">must</span></em><span class="insert"> be the same as would be obtained by computing normal
forms as defined in this specification. Applications that explicitly compute
normal forms, following the implementation strategy suggested by
this specification, are by definition compliant. However,
@@ -2859,8 +2429,7 @@
<p>
All figures are for illustration purposes
only. Information in tables is normative if it appears in a
- normative section; specifically, <a
- href="#expandable-parameters-fig">Table 3</a> is normative. Text in appendices and
+ normative section; specifically, <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#expandable-parameters-fig">Table 3</a> is normative. 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
@@ -2869,18 +2438,17 @@
-</section>
+</div>
-<section id="inferences">
-<h2><span class="delete">4. </span>Definitions and Inferences</h2>
+<div id="inferences" class="section">
+<h2><span class="secno">4. </span>Definitions and Inferences</h2>
<p>
-This section describes <a title="definition">definitions</a> and <a title="inference">inferences</a> that <span class="delete">may</span><span class="insert">MAY</span> be used on
- provenance data, and preserve <a>equivalence</a> on <a>valid</a>
-PROV instances (as detailed in <a href="#normalization-validity-equivalence" class="sectionRef"><span class="delete">section 6. Normalization, Validity, and Equivalence</span></a>).
-A <dfn
- id="definition">definition</dfn> is a rule that can be applied to
+This section describes <a title="definition" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#definition" class="internalDFN">definitions</a> and <a title="inference" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#inference" class="internalDFN">inferences</a> that <em class="rfc2119" title="may">may</em> be used on
+ provenance data, and preserve <a>equivalence</a> on <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-valid" class="internalDFN">valid</a>
+PROV instances (as detailed in <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#normalization-validity-equivalence" class="sectionRef">section 6. Normalization, Validity, and Equivalence</a>).
+A <dfn id="definition">definition</dfn> is a rule that can be applied to
PROV instances to replace defined expressions with definitions. An <dfn id="inference">inference</dfn> is a rule that can be applied
to PROV instances to add new PROV statements. A definition states that a
provenance statement is equivalent to some other statements, whereas
@@ -2891,13 +2459,10 @@
<p> Definitions have the following general form:</p>
-<span class="delete">Definition-example NNN (definition-example)</span><div class='definition-example' id='definition-example'>
+<div class="definition-example" id="definition-example"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#definition-example">Definition-example NNN (definition-example)</a></div>
<p>
- <span class="name">defined_stmt</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">defining_stmt<sub>1</sub></span> and ... and <span class="name">defining_stmt<sub>n</sub></span>.</p>
+ <span class="name">defined_stmt</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">defining_stmt<sub>1</sub></span> and ... and <span class="name">defining_stmt<sub>n</sub></span>.</p>
</div>
<p>
@@ -2907,8 +2472,7 @@
provenance statement <span class="name">defined_stmt</span>
can be found in a PROV instance, then we can remove it and add all of the statements
<span class="name">defining_stmt<sub>1</sub></span> ... <span class="name">defining_stmt<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 existential variables. In
+ identifiers <span class="name">a<sub>1</sub></span>,...,<span class="name">a<sub>m</sub></span> for existential variables. In
other words, it is safe to replace
a defined statement with
its definition.
@@ -2924,41 +2488,43 @@
</span></div>
<p> Inferences have the following general form:</p>
-<span class="delete">Inference-example NNN (inference-example)</span><div class='inference-example' id='inference-example'>
+<div class="inference-example" id="inference-example"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#inference-example">Inference-example NNN (inference-example)</a></div>
<p>
- <span class='conditional'>IF</span> <span class="name">hyp<sub>1</sub></span> and ... and
-<span class="name">hyp<sub>k</sub></span> <span class='conditional'>THEN</span>
- there exists <span class="name">a<sub>1</sub></span> and ... and <span
- class="name">a<sub>m</sub></span> such that <span
- class="name">concl<sub>1</sub></span> and ... and <span class="name">concl<sub>n</sub></span>.</p>
+ <span class="conditional">IF</span> <span class="name">hyp<sub>1</sub></span> and ... and
+<span class="name">hyp<sub>k</sub></span> <span class="conditional">THEN</span>
+ there exists <span class="name">a<sub>1</sub></span> and ... and <span class="name">a<sub>m</sub></span> such that <span class="name">concl<sub>1</sub></span> and ... and <span class="name">concl<sub>n</sub></span>.</p>
</div>
<p> Inferences can be applied to PROV instances. Applying an inference to an instance means that if all of the provenance statements matching
<span class="name">hyp<sub>1</sub></span>... <span class="name">hyp<sub>k</sub></span>
can be found in the instance, then we check whether the conclusion
- <span class="name">concl<sub>1</sub></span> ... <span
- class="name">concl<sub>n</sub></span> is satisfied for some values
+ <span class="name">concl<sub>1</sub></span> ... <span class="name">concl<sub>n</sub></span> is satisfied for some 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
- generating fresh identifiers <span class="name">a<sub>1</sub></span>,...,<span
- class="name">a<sub>m</sub></span> for the existential variables. These fresh
+ generating fresh identifiers <span class="name">a<sub>1</sub></span>,...,<span class="name">a<sub>m</sub></span> 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
variables in logic, to "labeled nulls" in database theory
- <span class="delete">[</span><span class="delete">DBCONSTRAINTS</span><span class="delete">], or</span><span class="insert">[[DBCONSTRAINTS]].
+ [<cite><a class="bibref" rel="biblioentry" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#bib-DBCONSTRAINTS">DBCONSTRAINTS</a></cite><span class="delete">], or</span><span class="insert">].
- In general, omitted optional parameters</span> to<span class="delete"> blank nodes in [</span><span class="delete">RDF</span><span class="delete">]. In general, omitted optional parameters to
- [</span><span class="delete">PROV-N</span><span class="delete">]</span><span class="insert">
- [[PROV-N]]</span> statements, or explicit <span class="name">-</span>
+ In general, omitted optional parameters</span> to<span class="delete"> blank nodes in </span>
+ [<cite><span class="delete">RDF</span><a class="bibref" rel="biblioentry" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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 unknown values. There are a few exceptions to
- this general rule, which are specified in <a class="rule-ref"
- href="#optional-placeholders"><span><span class="delete">Definition 4 (optional-placeholders)</span><span class="insert">TBD</span></span></a>.</p>
-
-<p> Definitions and inferences can be viewed as logical formulas;
- similar formalisms are often used in rule-based reasoning <span class="delete">[</span><span class="delete">CHR</span><span class="delete">]</span><span class="insert">[[CHR]]</span>
- and in databases <span class="delete">[</span><span class="delete">DBCONSTRAINTS</span><span class="delete">].</span><span class="insert">[[DBCONSTRAINTS]].</span> In particular, the identifiers
+ this general rule, which are specified in </span><a class="rule-ref" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#optional-placeholders"><span><span class="insert">Definition 4 (optional-placeholders)</span></span></a><span class="insert">.</span></p>
+
+<p><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="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#bib-CHR"><span class="insert">CHR</span></a></cite><span class="insert">]
+ and in databases [</span><cite><a class="bibref" rel="biblioentry" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#bib-DBCONSTRAINTS"><span class="insert">DBCONSTRAINTS</span></a></cite>]. In <span class="delete">general, 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. There are a few exceptions to
+ this general rule, which are specified in </span><span class="delete">Definition 4 (optional-placeholders)</span><span class="delete">.</span>
+
+<span class="delete"> Definitions and inferences can be viewed as logical formulas;
+ similar formalisms are often used in rule-based reasoning [</span><span class="delete">CHR</span><span class="delete">]
+ and in databases [</span><span class="delete">DBCONSTRAINTS</span><span class="delete">]. In </span>particular, the identifiers
<span class="name">a<sub>1</sub></span> ... <span class="name">a<sub>n</sub></span>
should be viewed as existentially quantified variables, meaning that
through subsequent reasoning steps they may turn out to be equal to
@@ -2968,8 +2534,7 @@
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>.
+ inferences. This issue is discussed in more detail under <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#uniqueness-constraints">Uniqueness Constraints</a>.
</p>
<p>In a [definition|inference], term symbols such as <span class="name">id</span>,
@@ -2981,39 +2546,37 @@
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.
</p>
-
- <span class="delete">4.1 </span><section>
- <h4>Optional Identifiers and Attributes</h4>
+<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
link between two or more related objects. Identifiers can sometimes
- be omitted in <span class="delete">[</span><span class="delete">PROV-O</span><span class="delete">]</span><span class="insert">[[PROV-O]]</span> notation. For the purpose of inference and
+ be omitted in [<cite><a class="bibref" rel="biblioentry" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#bib-PROV-O">PROV-O</a></cite>] notation. For the purpose of inference and
validity checking, we generate special identifiers called
- <dfn>existential variables</dfn> denoting the unknown values.
+ <dfn id="dfn-existential-variables">existential variables</dfn> denoting the unknown values.
</p>
<p>
-Existential variables can be <a title="substitution">substituted</a>
+Existential variables can be <a title="substitution" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-substitution" class="internalDFN">substituted</a>
with other terms. Specifically, a
- <dfn>substitution</dfn> is a function from a set of existential
+ <dfn id="dfn-substitution">substitution</dfn> is a function from a set of existential
variables to identifiers, literals, the placeholder <span class="name">-</span>,
- or other <a>existential variables</a>. A substitution <span class="math">S</span> can be
+ or other <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-existential-variables" class="internalDFN">existential variables</a>. A substitution <span class="math">S</span> can be
applied to an instance <span class="math">I</span> by replacing all occurrences of existential
variables <span class="math">x</span> in the instance with <span class="math">S(x)</span>.
</p>
<p>
-<a class="rule-ref" href="#optional-identifiers"><span><span class="delete">Definition 1 (optional-identifiers)</span><span class="insert">TBD</span></span></a>,
-<a class="rule-ref" href="#optional-attributes"><span><span class="delete">Definition 2 (optional-attributes)</span><span class="insert">TBD</span></span></a>, and
-<a class="rule-ref" href="#definition-short-forms"><span><span class="delete">Definition 3 (definition-short-forms)</span><span class="insert">TBD</span></span></a>,
+<a class="rule-ref" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#optional-identifiers"><span>Definition 1 (optional-identifiers)</span></a>,
+<a class="rule-ref" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#optional-attributes"><span>Definition 2 (optional-attributes)</span></a>, and
+<a class="rule-ref" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#definition-short-forms"><span>Definition 3 (definition-short-forms)</span></a>,
explain how to expand the compact forms of PROV-N notation into a
- normal form. <a class="rule-ref"
- href="#optional-placeholders"><span><span class="delete">Definition 4 (optional-placeholders)</span><span class="insert">TBD</span></span></a> indicates when
- other optional parameters can be replaced by <a>existential
+ normal form. <a class="rule-ref" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#optional-placeholders"><span>Definition 4 (optional-placeholders)</span></a> indicates when
+ other optional parameters can be replaced by <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-existential-variables" class="internalDFN">existential
variables</a>.
</p>
- <div class="definition" id="optional-identifiers"><span class="delete">Definition 1 (optional-identifiers)</span>
+ <div class="definition" id="optional-identifiers"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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>,
@@ -3028,29 +2591,25 @@
<span class="name">actedOnBehalfOf</span>}, the following
definitional rules hold:</p>
<ol> <li>
- <span class="name">r(a<sub>1</sub>,...,a<sub>n</sub>) </span> <span class="conditional">IF AND ONLY IF</span>
- there exists <span class="name">id</span> such that <span
- class="name">r(id; a<sub>1</sub>,...,a<sub>n</sub>)</span>.</li>
- <li> <span class="name">r(-; a<sub>1</sub>,...,a<sub>n</sub>) </span> <span class="conditional">IF AND ONLY IF</span>
- there exists <span class="name">id</span> such that <span
- class="name">r(id; a<sub>1</sub>,...,a<sub>n</sub>)</span>.</li>
+ <span class="name">r(a<sub>1</sub>,...,a<sub>n</sub>) </span> <span class="conditional">IF AND ONLY IF</span>
+ there exists <span class="name">id</span> such that <span class="name">r(id; a<sub>1</sub>,...,a<sub>n</sub>)</span>.</li>
+ <li> <span class="name">r(-; a<sub>1</sub>,...,a<sub>n</sub>) </span> <span class="conditional">IF AND ONLY IF</span>
+ there exists <span class="name">id</span> such that <span class="name">r(id; a<sub>1</sub>,...,a<sub>n</sub>)</span>.</li>
</ol>
</div>
<p>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"><span class="delete">Definition 2 (optional-attributes)</span>
+ <div class="definition" id="optional-attributes"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#optional-attributes">Definition 2 (optional-attributes)</a></div>
<ol>
<li>
- For each <span class="name">p</span> in {<span
- class="name">entity</span>, <span class="name">activity</span>,
+ For each <span class="name">p</span> in {<span class="name">entity</span>, <span class="name">activity</span>,
<span class="name">agent</span>}, if <span class="name">a<sub>n</sub></span> is not an attribute
list parameter then the following definitional rule holds:
<p><span class="name">p(a<sub>1</sub>,...,a<sub>n</sub>)</span>
- <span class="conditional">IF AND ONLY IF</span> <span
- class="name">p(a<sub>1</sub>,...,a<sub>n</sub>,[])</span>.
- </li>
+ <span class="conditional">IF AND ONLY IF</span> <span class="name">p(a<sub>1</sub>,...,a<sub>n</sub>,[])</span>.
+ </p></li>
<li>
For each <span class="name">r</span> in {
<span class="name">used</span>,
@@ -3067,13 +2626,12 @@
attribute list parameter then the following definition holds:
<p> <span class="name">r(id; a<sub>1</sub>,...,a<sub>n</sub>)</span>
- <span class="conditional">IF AND ONLY IF</span> <span
- class="name">r(id; a<sub>1</sub>,...,a<sub>n</sub>,[])</span>.</li></ol>
+ <span class="conditional">IF AND ONLY IF</span> <span class="name">r(id; a<sub>1</sub>,...,a<sub>n</sub>,[])</span>.</p></li></ol>
</div>
<div class="remark">
- <p>Definitions <a class="rule-ref" href="#optional-identifiers"><span><span class="delete">Definition 1 (optional-identifiers)</span><span class="insert">TBD</span></span></a> and <a class="rule-ref" href="#optional-attributes"><span><span class="delete">Definition 2 (optional-attributes)</span><span class="insert">TBD</span></span></a>.
+ <p>Definitions <a class="rule-ref" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#optional-identifiers"><span>Definition 1 (optional-identifiers)</span></a> and <a class="rule-ref" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#optional-attributes"><span>Definition 2 (optional-attributes)</span></a>.
do not apply to <span class="name">alternateOf</span>, <span class="name">specializationOf</span>, and <span class="name">mentionOf</span>, which do not have identifiers and attributes.
</p>
</div>
@@ -3084,10 +2642,10 @@
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"><span class="delete">Definition 3 (definition-short-forms)</span>
+<div class="definition" id="definition-short-forms"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#definition-short-forms">Definition 3 (definition-short-forms)</a></div>
<p>
- <ol>
+ </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">wasGeneratedBy(id; e,attrs)</span> <span class="conditional">IF AND ONLY IF</span> <span class="name">wasGeneratedBy(id; e,-,-,attrs)</span>.
@@ -3117,45 +2675,39 @@
attribution, influence, alternate, specialization, or mention
relations, because these
have no optional parameters aside from the identifier and attributes,
- which are expanded by the rules in <a class="rule-ref" href="#optional-identifiers"><span><span class="delete">Definition 1 (optional-identifiers)</span><span class="insert">TBD</span></span></a> and <a class="rule-ref" href="#optional-attributes"><span><span class="delete">Definition 2 (optional-attributes)</span><span class="insert">TBD</span></span></a>. </p>
+ which are expanded by the rules in <a class="rule-ref" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#optional-identifiers"><span>Definition 1 (optional-identifiers)</span></a> and <a class="rule-ref" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#optional-attributes"><span>Definition 2 (optional-attributes)</span></a>. </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. Optional parameters are defined in <span class="delete">[</span><span class="delete">PROV-DM</span><span class="delete">]</span><span class="insert">[[PROV-DM]]</span> and in <span class="delete">[</span><span class="delete">PROV-N</span><span class="delete">]</span><span class="insert">[[PROV-N]]</span> for each type of PROV statement.
+<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. Optional parameters are defined in [<cite><a class="bibref" rel="biblioentry" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#bib-PROV-DM">PROV-DM</a></cite>] and in [<cite><a class="bibref" rel="biblioentry" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#bib-PROV-N">PROV-N</a></cite>] for each type of PROV statement.
Thus,
before proceeding to apply other definitions or inferences, most
occurrences of <span class="name">-</span> are to be replaced
by fresh existential variables, distinct from any others occurring in
the instance.
- The only exceptions to this general rule, where <span
- class="name">-</span> are to be left
+ The only exceptions to this general rule, where <span class="name">-</span> are to be left
in place, are the <a href="http://www.w3.org/TR/prov-dm/#derivation.activity">activity</a>, <a href="http://www.w3.org/TR/prov-dm/#derivation.generation">generation</a>, and <a href="http://www.w3.org/TR/prov-dm/#derivation.usage">usage</a> parameters in <span class="name">wasDerivedFrom</span> and
- the <a
- href="http://www.w3.org/TR/prov-dm/#association.plan">plan</a>
+ the <a href="http://www.w3.org/TR/prov-dm/#association.plan">plan</a>
parameter in <span class="name">wasAssociatedWith</span>. This is
further explained in remarks below.
</p>
<p>The treatment of optional parameters is specified formally using
- the auxiliary concept of <dfn>expandable parameter</dfn>. An
+ the auxiliary concept of <dfn id="dfn-expandable-parameter">expandable parameter</dfn>. An
expandable parameter is one that can be omitted using the
placeholder <span class="name">-</span>, and if so, it is
to be replaced by a fresh existential identifier.
- <a href="#expandable-parameters-fig">Table 3</a> defines the <a>expandable
- parameter</a>s of the properties of PROV, needed in <a class="rule-ref"
-href="#optional-placeholders"><span><span class="delete">Definition 4 (optional-placeholders)</span><span class="insert">TBD</span></span></a>. For emphasis, the four optional parameters
- that are not <a title="expandable parameter">expandable</a> are
- also listed. Parameters that cannot have value <span
-class="name">-</span>, and identifiers that are
- expanded by <a class="rule-ref"
- href="#optional-identifiers"><span><span class="delete">Definition 1 (optional-identifiers)</span><span class="insert">TBD</span></span></a>, are not listed.</p>
+ <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#expandable-parameters-fig">Table 3</a> defines the <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-expandable-parameter" class="internalDFN">expandable
+ parameter</a>s of the properties of PROV, needed in <a class="rule-ref" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#optional-placeholders"><span>Definition 4 (optional-placeholders)</span></a>. For emphasis, the four optional parameters
+ that are not <a title="expandable parameter" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-expandable-parameter" class="internalDFN">expandable</a> are
+ also listed. Parameters that cannot have value <span class="name">-</span>, and identifiers that are
+ expanded by <a class="rule-ref" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#optional-identifiers"><span>Definition 1 (optional-identifiers)</span></a>, are not listed.</p>
<div id="expandable-parameters-fig">
<table id="expandable-parameters_table" border="1" class="thinborder" style="margin-left: auto; margin-right: auto; border-color: black;">
<caption id="expandable-parameters">Table 3: Expandable and
Non-Expandable Parameters</caption>
-<tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td></tr>
+<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>
@@ -3166,7 +2718,7 @@
<td class="name">e,t</td>
<td></td>
</tr>
- <tr >
+ <tr>
<td class="name">wasGeneratedBy(id; e,a,t,attrs)</td>
<td class="name">a,t</td>
<td></td>
@@ -3210,13 +2762,11 @@
<td></td>
</tr>
- </table>
+ </tbody></table>
</div>
-<p> <a class="rule-ref"
- href="#optional-placeholders"><span><span class="delete">Definition 4 (optional-placeholders)</span><span class="insert">TBD</span></span></a> states how parameters are to be expanded,
- using the expandable parameters defined in <a
- href="#expandable-parameters-fig">Table 3</a>. The last two parts, 4 and 5,
+<p> <a class="rule-ref" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#optional-placeholders"><span>Definition 4 (optional-placeholders)</span></a> states how parameters are to be expanded,
+ using the expandable parameters defined in <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#expandable-parameters-fig">Table 3</a>. The last two parts, 4 and 5,
indicate how to handle expansion of parameters for
<span class="name">wasDerivedFrom</span> expansion, which is only allowed for the
generation and use parameters when the activity is specified.
@@ -3226,18 +2776,17 @@
The rationale for this is that when a is provided, then there have to be two events, namely <span class="name">u</span> and <span class="name">g</span>, which account for the usage of <span class="name">e1</span> and the generation of <span class="name">e2</span>, respectively, by <span class="name">a</span>. Conversely, if <span class="name">a</span> 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 <span class="delete">acitivity,</span><span class="insert">activity,</span> would therefore not be justified. </p>
-<p> A later constraint, <a class="rule-ref"
- href="#impossible-unspecified-derivation-generation-use"><span><span class="delete">Constraint 53 (impossible-unspecified-derivation-generation-use)</span><span class="insert">TBD</span></span></a>,
+<p> A later constraint, <a class="rule-ref" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#impossible-unspecified-derivation-generation-use"><span>Constraint 53 (impossible-unspecified-derivation-generation-use)</span></a>,
forbids specifying generation and use parameters when the activity
is unspecified.</p>
- <div class="definition" id="optional-placeholders"><span class="delete">Definition 4 (optional-placeholders)</span>
+ <div class="definition" id="optional-placeholders"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#optional-placeholders">Definition 4 (optional-placeholders)</a></div>
<ol><li>
- <span class="name">activity(id,-,t2,attrs)</span> <span class="conditional">IF AND ONLY
- IF</span> there exists <span class="name">t1</span> such that <span class="name">activity(id,t1,t2,attrs)</span>. Here, <span class="name">t2</span> <span class="delete">may</span><span class="insert">MAY</span> be a placeholder.
+ <span class="name">activity(id,-,t2,attrs)</span> <span class="conditional">IF AND ONLY
+ IF</span> there exists <span class="name">t1</span> such that <span class="name">activity(id,t1,t2,attrs)</span>. Here, <span class="name">t2</span> <em class="rfc2119" title="may">may</em> be a placeholder.
</li>
-<li> <span class="name">activity(id,t1,-,attrs)</span> <span class="conditional">IF AND ONLY
- IF</span> there exists <span class="name">t2</span> such that <span class="name">activity(id,t1,t2,attrs)</span>. Here, <span class="name">t1</span> <span class="delete">must not</span><span class="insert">MUST NOT</span> be a placeholder.
+<li> <span class="name">activity(id,t1,-,attrs)</span> <span class="conditional">IF AND ONLY
+ IF</span> there exists <span class="name">t2</span> such that <span class="name">activity(id,t1,t2,attrs)</span>. Here, <span class="name">t1</span> <em class="rfc2119" title="must not">must not</em> be a placeholder.
</li>
<li>For each <span class="name">r</span> in {
@@ -3253,119 +2802,101 @@
<span class="name">actedOnBehalfOf</span>
}, if the <span class="name">i</span>th parameter
- of <span class="name">r</span> is an <a>expandable parameter</a>
+ of <span class="name">r</span> is an <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-expandable-parameter" class="internalDFN">expandable parameter</a>
of <span class="name">r</span>
- as specified in <a href="#expandable-parameters-fig">Table 3</a>
+ as specified in <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#expandable-parameters-fig">Table 3</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>.
- </li>
+ </p></li>
<li>If <span class="name">a</span> is not the placeholder <span class="name">-</span>, and <span class="name">u</span> is any term, then the following definition holds:
<p> <span class="name">wasDerivedFrom(id;e2,e1,a,-,u,attrs)</span> <span class="conditional">IF AND ONLY IF</span> there exists <span class="name">g</span>
- such that <span class="name">wasDerivedFrom(id; e2,e1,a,g,u,attrs)</span>.</li>
+ such that <span class="name">wasDerivedFrom(id; e2,e1,a,g,u,attrs)</span>.</p></li>
<li>If <span class="name">a</span> is not the placeholder <span class="name">-</span>, and <span class="name">g</span> is any term,
then the following definition holds:
<p> <span class="name">wasDerivedFrom(id;e2,e1,a,g,-,attrs)</span> <span class="conditional">IF AND ONLY IF</span> there exists <span class="name">u</span>
- such that <span class="name">wasDerivedFrom(id; e2,e1,a,g,u,attrs)</span>.</li></ol>
+ such that <span class="name">wasDerivedFrom(id; e2,e1,a,g,u,attrs)</span>.</p></li></ol>
</div>
<div class="remark">
<p>In an association of the form
<span class="name">wasAssociatedWith(id; a,ag,-,attr)</span>, 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">wasAssociatedWith(id; a,ag,p,attr)</span> where a
+ it is not identified. Thus, it is not equivalent to <span class="name">wasAssociatedWith(id; a,ag,p,attr)</span> where a
plan <span class="name">p</span> is given.</p>
</div>
<div class="remark">
-<p> A derivation <span
- class="name">wasDerivedFrom(id; e2,e1,a,gen,use,attrs)</span> that
- specifies an activity explicitly indicates that this activity achieved the derivation, with a usage <span
- class="name">use</span> of entity <span
- class="name">e1</span>, and a generation <span
- class="name">gen</span> of entity <span
- class="name">e2</span>.
+<p> A derivation <span class="name">wasDerivedFrom(id; e2,e1,a,gen,use,attrs)</span> that
+ specifies an activity explicitly indicates that this activity achieved the derivation, with a usage <span class="name">use</span> of entity <span class="name">e1</span>, and a generation <span class="name">gen</span> of entity <span class="name">e2</span>.
It differs from a derivation of the form
- <span
- class="name">wasDerivedFrom(id; e2,e1,-,-,-,attrs)</span> with
+ <span class="name">wasDerivedFrom(id; e2,e1,-,-,-,attrs)</span> with
missing activity, generation, and usage. In the latter form, it is not specified
if one or more activities are involved in the derivation. </p>
<p>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.</p>
</div>
-</section>
+</div>
-<section>
- <h3><span class="delete">4.2 </span>Entities and Activities</h3>
+<div id="entities-and-activities" class="section">
+ <h3><span class="secno">4.2 </span>Entities and Activities</h3>
-<p id="communication-generation-use-inference_text">Communication between activities <a
- title="definition">implies</a> the existence of an underlying
+<p id="communication-generation-use-inference_text">Communication between activities <a title="definition" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#definition" class="internalDFN">implies</a> the existence of an underlying
entity generated by one activity and used by the other, and vice versa.</p>
-<span class="delete">Inference 5 (communication-generation-use-inference)</span><div class='inference' id='communication-generation-use-inference'>
+<div class="inference" id="communication-generation-use-inference"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#communication-generation-use-inference">Inference 5 (communication-generation-use-inference)</a></div>
<p>
<span class="conditional">IF</span>
<span class="name">wasInformedBy(_id; a2,a1,_attrs)</span>
-<span class='conditional'>THEN</span>
- there exist <span class="name">e</span>, <span
- class="name">_gen</span>, <span class="name">_t1</span>, <span
- class="name">_use</span>, and <span class="name">_t2</span>,
+<span class="conditional">THEN</span>
+ there exist <span class="name">e</span>, <span class="name">_gen</span>, <span class="name">_t1</span>, <span class="name">_use</span>, and <span class="name">_t2</span>,
such that <span class="name">wasGeneratedBy(_gen; e,a1,_t1,[])</span> and <span class="name">used(_use; a2,e,_t2,[])</span> hold.</p>
</div>
<p id="generation-use-communication-inference_text">
- <span class="delete">Inference 6 (generation-use-communication-inference)</span><div class='inference' id='generation-use-communication-inference'>
+ </p><div class="inference" id="generation-use-communication-inference"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#generation-use-communication-inference">Inference 6 (generation-use-communication-inference)</a></div>
<p>
<span class="conditional">IF</span> <span class="name">wasGeneratedBy(_gen; e,a1,_t1,_attrs1)</span>
and <span class="name">used(_id2; a2,e,_t2,_attrs2)</span> hold
- <span class='conditional'>THEN</span>
- there exists <span
- class="name">_id</span>
+ <span class="conditional">THEN</span>
+ there exists <span class="name">_id</span>
such that <span class="name">wasInformedBy(_id; a2,a1,[])</span>
</p></div>
<div class="remark">
<p>The relationship <span class="name">wasInformedBy</span> is not
-<a>transitive</a>. Indeed, consider the following statements.</p>
-<pre class="codeexample">
-wasInformedBy(a2,a1)
+<a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-transitive" class="internalDFN">transitive</a>. 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 statements alone. 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">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
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> started. So in this example (with no other
- information) 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 2</a>.</p>
+<span class="name">a3</span> completes before <span class="name">a1</span> started. So in this example (with no other
+ information) 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="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#counterexample-wasInformedBy">Figure 2</a>.</p>
<div style="text-align: center;">
-
-<figure>
-<img src="images/constraints/informedByNonTransitive.png" alt="non transitivity of wasInformedBy" />
+<span class="figure">
+<img src="./prov-constraints_files/informedByNonTransitive.png" alt="non transitivity of wasInformedBy">
<br>
-<span class="delete">Figure 2</span><span class="delete"> ◊:</span> <figcaption id="counterexample-wasInformedBy">Counter-example for transitivity of wasInformedBy
-</figcaption>
-</figure>
+<span class="figcaption" id="counterexample-wasInformedBy">Figure 2<sup><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#counterexample-wasInformedBy"><span class="diamond"> ◊:</span></a></sup> Counter-example for transitivity of wasInformedBy</span>
+</span>
</div>
</div>
-<hr />
+<hr>
@@ -3373,19 +2904,16 @@
From an entity statement, we can infer the existence of
generation and invalidation events.
</p>
-<span class="delete">Inference 7 (entity-generation-invalidation-inference)</span><div class='inference' id='entity-generation-invalidation-inference'>
+<div class="inference" id="entity-generation-invalidation-inference"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#entity-generation-invalidation-inference">Inference 7 (entity-generation-invalidation-inference)</a></div>
<p>
-<span class='conditional'>IF</span> <span
- class="name">entity(e,_attrs)</span> <span
- class="conditional">THEN</span> there exist
+<span class="conditional">IF</span> <span class="name">entity(e,_attrs)</span> <span class="conditional">THEN</span> there exist
<span class="name">_gen</span>, <span class="name">_a1</span>, <span class="name">_t1</span>,
<span class="name">_inv</span>, <span class="name">_a2</span>, and <span class="name">_t2</span> such that
- <span
- class="name">wasGeneratedBy(_gen; e,_a1,_t1,[])</span> and <span class="name">wasInvalidatedBy(_inv; e,_a2,_t2,[])</span>.
-</div>
-
-
-<hr />
+ <span class="name">wasGeneratedBy(_gen; e,_a1,_t1,[])</span> and <span class="name">wasInvalidatedBy(_inv; e,_a2,_t2,[])</span>.
+</p></div>
+
+
+<hr>
<p id="activity-start-end-inference_text">
@@ -3393,79 +2921,63 @@
start and end events whose times match the start and end times of
the activity, respectively.
</p>
-<span class="delete">Inference 8 (activity-start-end-inference)</span><div class='inference' id='activity-start-end-inference'>
+<div class="inference" id="activity-start-end-inference"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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">_start</span>, <span class="name">_e1</span>, <span
- class="name">_a1</span>, <span class="name">_end</span>, <span
- class="name">_a2</span>,
+<span class="conditional">IF</span> <span class="name">activity(a,t1,t2,_attrs)</span> <span class="conditional">THEN</span> there exist <span class="name">_start</span>, <span class="name">_e1</span>, <span class="name">_a1</span>, <span class="name">_end</span>, <span class="name">_a2</span>,
and <span class="name">_e2</span> such that
- <span
- class="name">wasStartedBy(_start; a,_e1,_a1,t1,[])</span> and <span class="name">wasEndedBy(_end; a,_e2,_a2,t2,[])</span>.
-</div>
-
-
-<hr />
+ <span class="name">wasStartedBy(_start; a,_e1,_a1,t1,[])</span> and <span class="name">wasEndedBy(_end; a,_e2,_a2,t2,[])</span>.
+</p></div>
+
+
+<hr>
-<p id='wasStartedBy-inference_text'>The start of an activity <span
-class="name">a</span> triggered by entity <span class="name">e1</span>
+<p id="wasStartedBy-inference_text">The start of an activity <span class="name">a</span> triggered by entity <span class="name">e1</span>
implies that
-<span class="name">e1</span> was generated by the starting activity <span
-class="name">a1</span>.</p>
-
-<span class="delete">Inference 9 (wasStartedBy-inference)</span><div class='inference' id='wasStartedBy-inference'>
-<p><span class='conditional'>IF</span>
+<span class="name">e1</span> was generated by the starting activity <span class="name">a1</span>.</p>
+
+<div class="inference" id="wasStartedBy-inference"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#wasStartedBy-inference">Inference 9 (wasStartedBy-inference)</a></div>
+<p><span class="conditional">IF</span>
<span class="name">wasStartedBy(_id; a,e1,a1,_t,_attrs)</span>,
-<span class='conditional'>THEN</span> there exist <span
- class="name">_gen</span> and <span class="name">_t1</span>
+<span class="conditional">THEN</span> there exist <span class="name">_gen</span> and <span class="name">_t1</span>
such that
<span class="name">wasGeneratedBy(_gen; e1,a1,_t1,[])</span>.</p>
</div>
<p>
-<hr>
-
-<p id='wasEndedBy-inference_text'>Likewise,
+</p><hr>
+
+<p id="wasEndedBy-inference_text">Likewise,
the ending of activity <span class="name">a</span> by triggering entity <span class="name">e1</span> implies that
-<span class="name">e1</span> was generated by the ending activity <span
-class="name">a1</span>.
+<span class="name">e1</span> was generated by the ending activity <span class="name">a1</span>.
</p>
-<span class="delete">Inference 10 (wasEndedBy-inference)</span><div class='inference' id='wasEndedBy-inference'>
-<p><span class='conditional'>IF</span>
+<div class="inference" id="wasEndedBy-inference"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#wasEndedBy-inference">Inference 10 (wasEndedBy-inference)</a></div>
+<p><span class="conditional">IF</span>
<span class="name">wasEndedBy(_id; a,e1,a1,_t,_attrs)</span>,
-<span class='conditional'>THEN</span> there exist <span
- class="name">_gen</span> and <span class="name">_t1</span> such that
+<span class="conditional">THEN</span> there exist <span class="name">_gen</span> and <span class="name">_t1</span> such that
<span class="name">wasGeneratedBy(_gen; e1,a1,_t1,[])</span>.</p>
</div>
-</section>
-
- <section>
-<h3><span class="delete">4.3 </span>Derivations</h3>
+</div>
+
+ <div id="derivations" class="section">
+<h3><span class="secno">4.3 </span>Derivations</h3>
<hr>
-<p id='derivation-generation-use-inference_text'>Derivations with explicit
+<p id="derivation-generation-use-inference_text">Derivations with explicit
activity, generation, and usage admit the following inference: </p>
-<span class="delete">Inference 11 (derivation-generation-use-inference)</span><div class='inference' id='derivation-generation-use-inference'>
+<div class="inference" id="derivation-generation-use-inference"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#derivation-generation-use-inference">Inference 11 (derivation-generation-use-inference)</a></div>
<p> In this inference, none of <span class="name">a</span>, <span class="name">gen2</span> or <span class="name">use1</span> can be
placeholders <span class="name">-</span>.
- <p>
-<span class='conditional'>IF</span> <span
- class="name">wasDerivedFrom(_id; e2,e1,a,gen2,use1,_attrs)</span>,
- <span class='conditional'>THEN</span> there exists <span
- class="name">_t1</span> and <span
- class="name">_t2</span> such that <span
-class="name">used(use1; a,e1,_t1,[])</span> and <span
-class="name">wasGeneratedBy(gen2; e2,a,_t2,[])</span>.
+ </p><p>
+<span class="conditional">IF</span> <span class="name">wasDerivedFrom(_id; e2,e1,a,gen2,use1,_attrs)</span>,
+ <span class="conditional">THEN</span> there exists <span class="name">_t1</span> and <span class="name">_t2</span> such that <span class="name">used(use1; a,e1,_t1,[])</span> and <span class="name">wasGeneratedBy(gen2; e2,a,_t2,[])</span>.
</p>
</div>
<p>
@@ -3473,16 +2985,14 @@
-<hr />
+</p><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>
-<span class="delete">Inference 12 (revision-is-alternate-inference)</span><div class='inference' id='revision-is-alternate-inference'>
- <p>In this inference, any of <span class="name">_a</span>, <span class="name">_g</span> or <span class="name">_u</span> <span class="delete">may</span><span class="insert">MAY</span> be placeholders.</p>
+<div class="inference" id="revision-is-alternate-inference"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#revision-is-alternate-inference">Inference 12 (revision-is-alternate-inference)</a></div>
+ <p>In this inference, any of <span class="name">_a</span>, <span class="name">_g</span> or <span class="name">_u</span> <em class="rfc2119" title="may">may</em> be placeholders.</p>
<p>
- <span class='conditional'>IF</span> <span
- class="name">wasDerivedFrom(_id; e2,e1,_a,_g,_u,[prov:type='prov:Revision'])</span>, <span class='conditional'>THEN</span> <span
- class="name">alternateOf(e2,e1)</span>.
+ <span class="conditional">IF</span> <span class="name">wasDerivedFrom(_id; e2,e1,_a,_g,_u,[prov:type='prov:Revision'])</span>, <span class="conditional">THEN</span> <span class="name">alternateOf(e2,e1)</span>.
</p>
</div>
@@ -3494,24 +3004,24 @@
There is no inference stating that <span class="name">wasDerivedFrom</span> is
transitive.
</div>
-</section>
-
-
-<section >
-<h3><span class="delete">4.4 </span>Agents</h3>
-
-<p id='attribution-inference_text'> Attribution is the ascribing of an entity to an agent. An
+</div>
+
+
+<div id="agents" class="section">
+<h3><span class="secno">4.4 </span>Agents</h3>
+
+<p id="attribution-inference_text"> Attribution is the ascribing of an entity to an agent. An
entity can only be ascribed to an agent if the agent 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>
-<span class="delete">Inference 13 (attribution-inference)</span><div class='inference' id='attribution-inference'>
+<div class="inference" id="attribution-inference"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#attribution-inference">Inference 13 (attribution-inference)</a></div>
<p>
-<span class='conditional'>IF</span>
+<span class="conditional">IF</span>
<span class="name">wasAttributedTo(_att; e,ag,_attrs)</span>
-<span class='conditional'>THEN</span> there exist
+<span class="conditional">THEN</span> there exist
<span class="name">a</span>,
<span class="name">_t</span>,
<span class="name">_gen</span>,
@@ -3529,25 +3039,21 @@
merged </span><span class="insert"> unified
</span>with a constant identifier, another existential variable, or a
placeholder <span class="name">-</span>, as explained
- in the definition of <span class="delete">merging</span><a><span class="insert">unification</span></a>.
+ in the definition of <span class="delete">merging</span><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-unification" class="internalDFN"><span class="insert">unification</span></a>.
</div>
-
-<hr />
-<p id='delegation-inference_text'> Delegation relates agents where one agent acts on behalf of
+<hr>
+<p id="delegation-inference_text"> Delegation 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>
-<span class="delete">Inference 14 (delegation-inference)</span><div class='inference' id='delegation-inference'>
+<div class="inference" id="delegation-inference"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#delegation-inference">Inference 14 (delegation-inference)</a></div>
<p>
-<span class='conditional'>IF</span>
+<span class="conditional">IF</span>
<span class="name">actedOnBehalfOf(_id; ag1, 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">wasAssociatedWith(_id1; a, ag1, _pl1, [])</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">wasAssociatedWith(_id1; a, ag1, _pl1, [])</span>
and <span class="name">wasAssociatedWith(_id2; a, ag2, _pl2,
[])</span>.
</p>
@@ -3563,19 +3069,19 @@
<span class="name">_pl1</span> and <span class="name">_pl2</span>
can be replaced with constant identifiers, existential variables, or
placeholders <span class="name">-</span> independently, as explained
- in the definition of <span class="delete">merging</span><a><span class="insert">unification</span></a>.
+ in the definition of <span class="delete">merging</span><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-unification" class="internalDFN"><span class="insert">unification</span></a>.
</div>
-<hr />
+<hr>
<p id="influence-inference_text">
The <span class="name">wasInfluencedBy</span> 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"><span class="delete">Inference 15 (influence-inference)</span>
+<div class="inference" id="influence-inference"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#influence-inference">Inference 15 (influence-inference)</a></div>
<p>
- <ol>
+ </p><ol>
<li>
<span class="conditional">IF</span> <span class="name">wasGeneratedBy(id; e,a,_t,attrs)</span> <span class="conditional">THEN</span> <span class="name">wasInfluencedBy(id; e, a, attrs)</span>.
</li>
@@ -3595,21 +3101,15 @@
<span class="conditional">IF</span> <span class="name">wasInvalidatedBy(id; e,a,_t,attrs)</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">wasDerivedFrom(id; e2, e1, a, g, u, attrs)</span> <span
- class="conditional">THEN</span> <span
- class="name">wasInfluencedBy(id; e2, e1, attrs)</span>. Here,
- <span class="name">a</span>, <span class="name">g</span>, <span class="name">u</span> <span class="delete">may</span><span class="insert">MAY</span> be placeholders <span class="name">-</span>.
+ <span class="conditional">IF</span> <span class="name">wasDerivedFrom(id; e2, e1, a, g, u, attrs)</span> <span class="conditional">THEN</span> <span class="name">wasInfluencedBy(id; e2, e1, attrs)</span>. Here,
+ <span class="name">a</span>, <span class="name">g</span>, <span class="name">u</span> <em class="rfc2119" title="may">may</em> be placeholders <span class="name">-</span>.
</li>
<li>
<span class="conditional">IF</span> <span class="name">wasAttributedTo(id; e,ag,attrs)</span> <span class="conditional">THEN</span> <span class="name">wasInfluencedBy(id; e, ag, attrs)</span>.
</li>
<li>
- <span class="conditional">IF</span> <span
- class="name">wasAssociatedWith(id; a,ag,_pl,attrs)</span> <span
- class="conditional">THEN</span> <span
- class="name">wasInfluencedBy(id; a, ag, attrs)</span>. Here,
- <span class="name">_pl</span> <span class="delete">may</span><span class="insert">MAY</span> be a placeholder <span class="name">-</span>.
+ <span class="conditional">IF</span> <span class="name">wasAssociatedWith(id; a,ag,_pl,attrs)</span> <span class="conditional">THEN</span> <span class="name">wasInfluencedBy(id; a, ag, attrs)</span>. Here,
+ <span class="name">_pl</span> <em class="rfc2119" title="may">may</em> be a placeholder <span class="name">-</span>.
</li>
<li>
<span class="conditional">IF</span> <span class="name">actedOnBehalfOf(id; ag2,ag1,_a,attrs)</span> <span class="conditional">THEN</span> <span class="name">wasInfluencedBy(id; ag2, ag1, attrs)</span>.
@@ -3623,98 +3123,96 @@
specific relationship.
</div>
-</section>
-
-
-
- <section>
-<h3><span class="delete">4.5 </span>Alternate and Specialized Entities</h3>
+</div>
+
+
+
+ <div id="alternate-and-specialized-entities" class="section">
+<h3><span class="secno">4.5 </span>Alternate and Specialized Entities</h3>
<hr>
- <p id="alternate-reflexive_text">The relation <span
- class='name'>alternateOf</span> is an <a>equivalence relation</a>: that is,
- it is <a>reflexive</a>,
- <a>transitive</a> and <a>symmetric</a>. As a consequence, the
+ <p id="alternate-reflexive_text">The relation <span class="name">alternateOf</span> is an <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-equivalence-relation" class="internalDFN">equivalence relation</a>: that is,
+ it is <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-reflexive" class="internalDFN">reflexive</a>,
+ <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-transitive" class="internalDFN">transitive</a> and <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-symmetric" class="internalDFN">symmetric</a>. As a consequence, the
following inferences can be applied:</p>
-<span class="delete">Inference 16 (alternate-reflexive)</span><div class='inference' id="alternate-reflexive">
+<div class="inference" id="alternate-reflexive"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#alternate-reflexive">Inference 16 (alternate-reflexive)</a></div>
<p>
-<span class='conditional'>IF</span> <span class='name'>entity(e)</span> <span class='conditional'>THEN</span>
-<span class='name'>alternateOf(e,e)</span>.
+<span class="conditional">IF</span> <span class="name">entity(e)</span> <span class="conditional">THEN</span>
+<span class="name">alternateOf(e,e)</span>.
</p>
</div>
<p>
-<hr>
+</p><hr>
<p id="alternate-transitive_text">
- <span class="delete">Inference 17 (alternate-transitive)</span><div class='inference' id="alternate-transitive">
+ </p><div class="inference" id="alternate-transitive"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#alternate-transitive">Inference 17 (alternate-transitive)</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>
- </div>
-
-<p>
-
-<hr>
- <p id="alternate-symmetric_text">
-
- <span class="delete">Inference 18 (alternate-symmetric)</span><div class='inference' id="alternate-symmetric">
-<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">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>
</div>
<p>
-
-<hr>
+</p><hr>
+ <p id="alternate-symmetric_text">
+
+ </p><div class="inference" id="alternate-symmetric"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#alternate-symmetric">Inference 18 (alternate-symmetric)</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>
+ </div>
+
+<p>
+
+
+</p><hr>
<p id="specialization-transitive_text">
Similarly, specialization is a
- <a>strict partial order</a>: it is <a>irreflexive</a> and
- <a>transitive</a>. Irreflexivity is handled later as <a class="rule-ref"
-href="#impossible-specialization-reflexive"><span><span class="delete">Constraint 54 (impossible-specialization-reflexive)</span><span class="insert">TBD</span></span></a>
+ <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-strict-partial-order" class="internalDFN">strict partial order</a>: it is <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-irreflexive" class="internalDFN">irreflexive</a> and
+ <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-transitive" class="internalDFN">transitive</a>. Irreflexivity is handled later as <a class="rule-ref" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#impossible-specialization-reflexive"><span>Constraint 54 (impossible-specialization-reflexive)</span></a>
</p>
- <span class="delete">Inference 19 (specialization-transitive)</span><div class='inference' id="specialization-transitive">
+ <div class="inference" id="specialization-transitive"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#specialization-transitive">Inference 19 (specialization-transitive)</a></div>
<p>
-<span class='conditional'>IF</span> <span class='name'>specializationOf(e1,e2)</span>
+<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="name">specializationOf(e2,e3)</span> <span class="conditional">THEN</span> <span class="name">specializationOf(e1,e3)</span>.</p>
</div>
<p>
-<hr>
+</p><hr>
<p id="specialization-alternate-inference_text">If one entity specializes another, then they are also
alternates:</p>
- <span class="delete">Inference 20 (specialization-alternate-inference)</span><div class='inference' id="specialization-alternate-inference">
+ <div class="inference" id="specialization-alternate-inference"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#specialization-alternate-inference">Inference 20 (specialization-alternate-inference)</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>
+<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 />
+<hr>
<p id="specialization-attributes-inference_text">
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"><span class="delete">Inference 21 (specialization-attributes-inference)</span>
+<div class="inference" id="specialization-attributes-inference"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#specialization-attributes-inference">Inference 21 (specialization-attributes-inference)</a></div>
<p>
-<span class='conditional'>IF</span> <span class='name'>entity(e1, attrs)</span> and <span class='name'>specializationOf(e2,e1)</span>, <span class='conditional'>THEN </span>
- <span class='name'>entity(e2, attrs)</span>.</p>
+<span class="conditional">IF</span> <span class="name">entity(e1, attrs)</span> and <span class="name">specializationOf(e2,e1)</span>, <span class="conditional">THEN </span>
+ <span class="name">entity(e2, attrs)</span>.</p>
</div>
- <hr />
+ <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>
@@ -3723,24 +3221,24 @@
<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">Inference 22 (mention-specialization-inference)</span><div class='inference' id="mention-specialization-inference">
+ <div class="inference" id="mention-specialization-inference"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#mention-specialization-inference">Inference 22 (mention-specialization-inference)</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>
+<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>
-</section>
-
-
-
-
-
-</section>
-
-
-
-<section id="constraints">
-<h2><span class="delete">5. </span>Constraints</h2>
+</div>
+
+
+
+
+
+</div>
+
+
+
+<div id="constraints" class="section">
+<h2><span class="secno">5. </span>Constraints</h2>
@@ -3748,7 +3246,7 @@
<p>
This section defines a collection of constraints on PROV instances.
There are three kinds of constraints:
- <ul><li><em>uniqueness constraints</em> that say that a <a>PROV
+ </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
given identifier. For
example, if we describe the same generation event twice, then the
@@ -3757,13 +3255,13 @@
<li> <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>preorder</a> that corresponds to a sensible
+ PROV instance into a <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-preorder" class="internalDFN">preorder</a> that corresponds to a sensible
"history" (for example, an entity should not be generated after it
is used); and
</li>
<li><em>impossibility constraints</em>, which forbid certain
- patterns of statements in <a>valid</a> PROV instances.
- </ul>
+ patterns of statements in <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-valid" class="internalDFN">valid</a> PROV instances.
+ </li></ul>
<p>As in a [definition|inference], term symbols such as <span class="name">id</span>,
<span class="name">start</span>, <span class="name">end</span>, <span class="name">e</span>,
@@ -3774,12 +3272,11 @@
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.
</p>
- <section
- id="uniqueness-constraints">
+ <div id="uniqueness-constraints" class="section">
- <h3><span class="delete">5.1 </span>Uniqueness Constraints</h3>
+ <h3><span class="secno">5.1 </span>Uniqueness Constraints</h3>
@@ -3789,29 +3286,25 @@
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>merging</a> pairs of statements subject to
+ enforced through <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-merging" class="internalDFN">merging</a> pairs of statements subject to
equalities. For example, suppose we have two activity statements
- <span class="name">activity(a,2011-11-16T16:00:00,_t1,[a=1])</span> and <span
- class="name">activity(a,_t2,2011-11-16T18:00:00,[b=2])</span>, with existential variables <span class="name">_t1</span> and <span class="name">_t2</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> <span class="delete">Merging</span><dfn><span class="insert">Unification</span></dfn> is an operation that can be applied
+ <span class="name">activity(a,2011-11-16T16:00:00,_t1,[a=1])</span> and <span class="name">activity(a,_t2,2011-11-16T18:00:00,[b=2])</span>, with existential variables <span class="name">_t1</span> and <span class="name">_t2</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> <span class="delete">Merging</span><dfn id="dfn-unification"><span class="insert">Unification</span></dfn> is an operation that can be applied
to a pair of <span class="delete">terms, or a pair of attribute lists.</span><span class="insert">terms.</span>
- The result of <span class="delete">merging</span><span class="insert">unification</span> is either a <dfn><span class="insert">unifier</span></dfn><span class="insert">, that is,
+ The result of <span class="delete">merging</span><span class="insert">unification</span> is either a <dfn id="dfn-unifier"><span class="insert">unifier</span></dfn><span class="insert">, that is,
a </span>substitution <span class="delete">(mapping</span><span class="math"><span class="insert">S</span></span><span class="insert"> such that </span><span class="math"><span class="insert">S(t)</span>
<span class="delete">existentially quantified variables to terms)</span><span class="insert">= S(t')</span></span><span class="insert">,</span> or failure, indicating
that <span class="delete">the merge
- cannot be performed. Merging</span><span class="insert">there is no </span><a><span class="insert">unifier</span></a><span class="insert">. Unification</span> of pairs of <span class="delete">terms, attribute lists,
+ cannot be performed. Merging</span><span class="insert">there is no </span><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-unifier" class="internalDFN"><span class="insert">unifier</span></a><span class="insert">. Unification</span> of pairs of <span class="delete">terms, attribute lists,
or statements</span><span class="insert">terms</span> is defined as follows.</p>
<ul>
- <li> If <span class="name">t</span> and <span
- class="name">t'</span> are constant identifiers or values
+ <li> If <span class="name">t</span> and <span class="name">t'</span> are constant identifiers or values
(including the placeholder <span class="name">-</span>), then
<span class="insert">
- there are two cases. If </span><span class="name"><span class="insert">t = t'</span></span><span class="insert"> then </span>their <a><span class="delete">merge</span><span class="delete"> exists only if they are equal,</span><span class="insert">unifier</span></a><span class="insert"> is the
+ there are two cases. If </span><span class="name"><span class="insert">t = t'</span></span><span class="insert"> then </span>their <span class="delete">merge</span><span class="delete"> exists only if they are equal,</span><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-unifier" class="internalDFN"><span class="insert">unifier</span></a><span class="insert"> is the
empty substitution,</span> otherwise <span class="delete">merging</span><span class="insert">unification</span>
fails. </li>
<li> If <span class="name">x</span> is an existential variable
@@ -3819,15 +3312,15 @@
<span class="name">t'</span> is any term (identifier, constant,
placeholder <span class="name">-</span>, or
existential variable), then their
- <a><span class="delete">merge</span><span class="delete"> is </span><span class="delete">t'</span><span class="delete">, and the resulting substitution</span><span class="insert">unifier</span></a> is
+ <span class="delete">merge</span><span class="delete"> is </span><span class="delete">t'</span><span class="delete">, and the resulting substitution</span><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-unifier" class="internalDFN"><span class="insert">unifier</span></a> is
<span class="name">[x=t']</span>. In the special case where
- <span class="name">t'=x</span>, the<span class="delete"> merge</span> <a><span class="insert">unifier</span></a> is
+ <span class="name">t'=x</span>, the<span class="delete"> merge</span> <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-unifier" class="internalDFN"><span class="insert">unifier</span></a> is
<span class="delete">x</span><span class="delete"> and the resulting substitution is empty.</span><span class="insert"> the empty substitution.</span></li>
<li> If <span class="name">t</span> is any term (identifier, constant,
placeholder <span class="name">-</span>, or
existential variable) and
<span class="name">x'</span> is an existential variable, then their
- <span class="delete">merge</span><a><span class="insert">unifier</span></a> is the same as the <span class="delete">merge</span><a><span class="insert">unifier</span></a> of <span class="name">x</span>
+ <span class="delete">merge</span><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-unifier" class="internalDFN"><span class="insert">unifier</span></a> is the same as the <span class="delete">merge</span><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-unifier" class="internalDFN"><span class="insert">unifier</span></a> of <span class="name">x</span>
and <span class="name">t</span>.</li>
<span class="delete"> The </span><span class="delete">merge</span><span class="delete"> of two attribute lists </span><span class="delete">attrs1</span><span class="delete"> and </span><span class="delete">attrs2</span>
@@ -3851,7 +3344,7 @@
<p>
A typical uniqueness constraint is as follows:
</p>
- <div class="constraint-example" id="uniqueness-example"><span class="delete">Constraint-example NNN (uniqueness-example)</span>
+ <div class="constraint-example" id="uniqueness-example"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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>
</div>
@@ -3865,45 +3358,34 @@
<li>If <span class="delete">merging</span><span class="insert">unification</span> fails, then the constraint
is unsatisfiable, so application of the constraint to <span class="math">I</span>
fails. If this failure occurs during <a>normalization</a> prior to
-validation, then <span class="math">I</span> is invalid, as explained in <a href="#normalization-validity-equivalence">Section 6</a>.
+validation, then <span class="math">I</span> is invalid, as explained in <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#normalization-validity-equivalence">Section 6</a>.
</li>
<li>If <span class="delete">merging</span><span class="insert">unification</span> 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">S(I)</span>.</li>
</ol>
-<p> <em><dfn>Key constraints</dfn></em> are uniqueness constraints
+<p> <em><dfn id="dfn-key-constraints">Key constraints</dfn></em> are uniqueness constraints
that specify that a particular key field of a relation uniquely
determines the other parameters. Key constraints are written as follows:
</p>
- <span class="delete">Constraint-example NNN (key-example)</span><div
- class="constraint-example" id="key-example">
- <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>; a<sub>1</sub>,...,a<sub>n</sub>)</span>. </p></div>
+ <div class="constraint-example" id="key-example"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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>; a<sub>1</sub>,...,a<sub>n</sub>)</span>. </p></div>
<p> Because of the presence of attributes, key constraints do not
reduce directly to uniqueness constraints. Instead, we enforce key
- constraints <span class="delete">as follows.</span><span class="insert">using the following </span><dfn><span class="insert">merging</span></dfn><span class="insert"> process.</span> </p>
+ constraints <span class="delete">as follows.</span><span class="insert">using the following </span><dfn id="dfn-merging"><span class="insert">merging</span></dfn><span class="insert"> process.</span> </p>
<ol>
- <li> Suppose <span
- class="name">r(a<sub>0</sub>; a<sub>1</sub>,...a<sub>n</sub>,attrs1)</span> and <span
- class="name">r(b<sub>0</sub>; b<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 <span class="delete">merge</span><span class="insert">unify</span> 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> Suppose <span class="name">r(a<sub>0</sub>; a<sub>1</sub>,...a<sub>n</sub>,attrs1)</span> and <span class="name">r(b<sub>0</sub>; b<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 <span class="delete">merge</span><span class="insert">unify</span> 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 <span class="delete">merging</span><span class="insert">unification</span> fails, then the constraint is unsatisfiable, so
application of the key constraint to <span class="math">I</span> fails.
</li>
- <li>If <span class="delete">merging</span><span class="insert">unification</span> succeeds with substitution <span class="math">S</span>, then we remove <span
- class="name">r(a<sub>0</sub>; a<sub>1</sub>,...a<sub>n</sub>,attrs1)</span> and <span
- class="name">r(b<sub>0</sub>; b<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>); S(a<sub>1</sub>),...S(a<sub>n</sub>),attrs1 <span class="delete">∪</span><span class="insert">∪</span>
- attrs2)}</span> <span class="delete">∪</span><span class="insert">∪</span> <span class="math">S(I')</span>.
- </ol>
+ <li>If <span class="delete">merging</span><span class="insert">unification</span> succeeds with substitution <span class="math">S</span>, then we remove <span class="name">r(a<sub>0</sub>; a<sub>1</sub>,...a<sub>n</sub>,attrs1)</span> and <span class="name">r(b<sub>0</sub>; b<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>); S(a<sub>1</sub>),...S(a<sub>n</sub>),attrs1 ∪
+ attrs2)}</span> ∪ <span class="math">S(I')</span>.
+ </li></ol>
@@ -3925,15 +3407,15 @@
<p>
-<hr>
-
- <p id='key-object_text'>The various identified objects of PROV <span class="delete">must</span><span class="insert">MUST</span> have
+</p><hr>
+
+ <p id="key-object_text">The various identified objects of PROV <em class="rfc2119" title="must">must</em> have
unique statements describing them within a valid PROV instance.
This is enforced through
the following key constraints:
</p>
- <span class="delete">Constraint 23 (key-object)</span><div class='constraint' id='key-object'>
-<p><ol>
+ <div class="constraint" id="key-object"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#key-object">Constraint 23 (key-object)</a></div>
+<p></p><ol>
<li>The identifier field <span class="name"><span class="delete">e</span><span class="insert">id</span></span> is a <span class="conditional">KEY</span> for
the <span class="name"><span class="delete">entity(e,attrs)</span><span class="insert">entity(id,attrs)</span></span> statement.
</li>
@@ -3946,15 +3428,15 @@
</ol>
</div>
- <hr />
- <p id='key-properties_text'> Likewise, the statements
+ <hr>
+ <p id="key-properties_text"> Likewise, the statements
in a valid PROV instance must provide consistent information about
each identified object or relationship. The following key
constraints require that all of the information about each identified
statement can be merged into a single, consistent statement:
</p>
- <span class="delete">Constraint 24 (key-properties)</span><div class='constraint' id='key-properties'>
-<p><ol>
+ <div class="constraint" id="key-properties"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#key-properties">Constraint 24 (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">wasGeneratedBy(id; e,a,t,attrs)</span> statement.
</li>
@@ -4000,36 +3482,32 @@
<hr>
-<div id='unique-generation_text'>
+<div id="unique-generation_text">
<p> Entities may have multiple generation or invalidation events
(either or both may, however, be left implicit). An entity can be
generated by more than one activity, with one generation event per
- each entity-activity pair. These events must be simultaneous, as required by <a
- class="rule-ref"
- href="#generation-generation-ordering"><span><span class="delete">Constraint 41 (generation-generation-ordering)</span><span class="delete">
- and </span><span class="insert">generation-generation-ordering</span></span></a><span class="insert">
- and </span><a
- class="rule-ref" href="#invalidation-invalidation-ordering"><span><span class="delete">Constraint 42 (invalidation-invalidation-ordering)</span><span class="insert">invalidation-invalidation-ordering</span></span></a>.
+ each entity-activity pair. These events must be simultaneous, as required by <a class="rule-ref" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#generation-generation-ordering"><span>Constraint 41 (generation-generation-ordering)</span></a>
+ and <a class="rule-ref" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#invalidation-invalidation-ordering"><span>Constraint 42 (invalidation-invalidation-ordering)</span></a>.
</p>
</div>
-<span class="delete">Constraint 25 (unique-generation)</span><div class='constraint' id='unique-generation'>
+<div class="constraint" id="unique-generation"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#unique-generation">Constraint 25 (unique-generation)</a></div>
<p>
-<span class='conditional'>IF</span> <span class="name">wasGeneratedBy(gen1; e,a,_t1,_attrs1)</span> and <span class="name">wasGeneratedBy(gen2; e,a,_t2,_attrs2)</span>,
-<span class='conditional'>THEN</span> <span class="name">gen1</span> = <span class="name">gen2</span>.</p>
+<span class="conditional">IF</span> <span class="name">wasGeneratedBy(gen1; e,a,_t1,_attrs1)</span> and <span class="name">wasGeneratedBy(gen2; e,a,_t2,_attrs2)</span>,
+<span class="conditional">THEN</span> <span class="name">gen1</span> = <span class="name">gen2</span>.</p>
</div>
<p>
-<hr>
-<p id='unique-invalidation_text'>
-
-<span class="delete">Constraint 26 (unique-invalidation)</span><div class='constraint' id='unique-invalidation'>
+</p><hr>
+<p id="unique-invalidation_text">
+
+</p><div class="constraint" id="unique-invalidation"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#unique-invalidation">Constraint 26 (unique-invalidation)</a></div>
<p>
-<span class='conditional'>IF</span> <span class="name">wasInvalidatedBy(inv1; e,a,_t1,_attrs1)</span> and <span class="name">wasInvalidatedBy(inv2; e,a,_t2,_attrs2)</span>,
-<span class='conditional'>THEN</span> <span class="name">inv1</span> = <span class="name">inv2</span>.</p>
+<span class="conditional">IF</span> <span class="name">wasInvalidatedBy(inv1; e,a,_t1,_attrs1)</span> and <span class="name">wasInvalidatedBy(inv2; e,a,_t2,_attrs2)</span>,
+<span class="conditional">THEN</span> <span class="name">inv1</span> = <span class="name">inv2</span>.</p>
</div>
@@ -4039,14 +3517,12 @@
apply the constraints by merging, it is possible for a valid PROV instance
to contain multiple statements about the same generation or
invalidation event, for example:</p>
- <pre>
-wasGeneratedBy(id1; e,a,-,[prov:location="Paris"])
+ <pre>wasGeneratedBy(id1; e,a,-,[prov:location="Paris"])
wasGeneratedBy(-; e,a,-,[color="Red"])
</pre>
<p> When the uniqueness and key constraints are applied, the instance is
- <a title="normal form">normalized</a> to the following form:</p>
- <pre>
-wasGeneratedBy(id1; e,a,_t,[prov:location="Paris",color="Red"])
+ <a title="normal form" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-normal-form" class="internalDFN">normalized</a> to the following form:</p>
+ <pre>wasGeneratedBy(id1; e,a,_t,[prov:location="Paris",color="Red"])
</pre>
<p>
where <span class="name">_t</span> is a new existential variable.
@@ -4054,9 +3530,8 @@
</div>
-
-<hr />
-<p id='unique-wasStartedBy_text'>
+<hr>
+<p id="unique-wasStartedBy_text">
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,
@@ -4064,66 +3539,51 @@
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 <a
- class="rule-ref"
-href="#start-start-ordering"><span><span class="delete">Constraint 33 (start-start-ordering)</span><span class="delete">
-and </span><span class="insert">start-start-ordering</span></span></a><span class="insert">
-and </span><a
- class="rule-ref" href="#end-end-ordering"><span><span class="delete">Constraint 34 (end-end-ordering)</span><span class="insert">end-end-ordering</span></span></a>.
+be simultaneous, as specified in <a class="rule-ref" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#start-start-ordering"><span>Constraint 33 (start-start-ordering)</span></a>
+and <a class="rule-ref" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#end-end-ordering"><span>Constraint 34 (end-end-ordering)</span></a>.
</p>
-<span class="delete">Constraint 27 (unique-wasStartedBy)</span><div class='constraint' id='unique-wasStartedBy'>
+<div class="constraint" id="unique-wasStartedBy"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#unique-wasStartedBy">Constraint 27 (unique-wasStartedBy)</a></div>
<p>
-<span class='conditional'>IF</span> <span
- class="name">wasStartedBy(start1; a,_e1,a0,_t1,_attrs1)</span> and <span
- class="name">wasStartedBy(start2; a,_e2,a0,_t2,_attrs2)</span>, <span
- class='conditional'>THEN</span> <span class="name">start1</span> = <span
- class="name">start2</span>.</p>
+<span class="conditional">IF</span> <span class="name">wasStartedBy(start1; a,_e1,a0,_t1,_attrs1)</span> and <span class="name">wasStartedBy(start2; a,_e2,a0,_t2,_attrs2)</span>, <span class="conditional">THEN</span> <span class="name">start1</span> = <span class="name">start2</span>.</p>
</div>
-<p id='unique-wasEndedBy_text'>
-
-<span class="delete">Constraint 28 (unique-wasEndedBy)</span><div class='constraint' id='unique-wasEndedBy'>
+<p id="unique-wasEndedBy_text">
+
+</p><div class="constraint" id="unique-wasEndedBy"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#unique-wasEndedBy">Constraint 28 (unique-wasEndedBy)</a></div>
<p>
-<span class='conditional'>IF</span> <span
- class="name">wasEndedBy(end1; a,_e1,a0,_t1,_attrs1)</span> and <span
- class="name">wasEndedBy(end2; a,_e2,a0,_t2,_attrs2)</span>, <span
- class='conditional'>THEN</span> <span class="name">end1</span> = <span
- class="name">end2</span>.</p>
+<span class="conditional">IF</span> <span class="name">wasEndedBy(end1; a,_e1,a0,_t1,_attrs1)</span> and <span class="name">wasEndedBy(end2; a,_e2,a0,_t2,_attrs2)</span>, <span class="conditional">THEN</span> <span class="name">end1</span> = <span class="name">end2</span>.</p>
</div>
-<hr />
-
-
-
-
-
- <p id='unique-startTime_text'>An <a>activity start event</a> is the <a title="instantaneous event">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 <span class="delete">must</span><span class="insert">MUST</span> be the same, as expressed by the following constraint.</span>
+<hr>
+
+
+
+
+
+ <p id="unique-startTime_text">An <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-start-event" class="internalDFN">activity start event</a> is the <a title="instantaneous event" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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>
-<span class="delete">Constraint 29 (unique-startTime)</span><div class='constraint' id='unique-startTime'>
+<div class="constraint" id="unique-startTime"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#unique-startTime">Constraint 29 (unique-startTime)</a></div>
<p>
-<span class='conditional'>IF</span> <span class="name">activity(a2,t1,_t2,_attrs)</span> and <span class="name">wasStartedBy(_start; a2,_e,_a1,t,_attrs)</span>, <span class='conditional'>THEN</span> <span class="name">t1</span>=<span class="name">t</span>.</p>
+<span class="conditional">IF</span> <span class="name">activity(a2,t1,_t2,_attrs)</span> and <span class="name">wasStartedBy(_start; a2,_e,_a1,t,_attrs)</span>, <span class="conditional">THEN</span> <span class="name">t1</span>=<span class="name">t</span>.</p>
</div>
<hr>
-<p id='unique-endTime_text'>An <a>activity end event</a> is the <a title="instantaneous event">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 <span class="delete">must</span><span class="insert">MUST</span> be the same, as expressed by the following constraint.</span>
+<p id="unique-endTime_text">An <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-end-event" class="internalDFN">activity end event</a> is the <a title="instantaneous event" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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>
-<span class="delete">Constraint 30 (unique-endTime)</span><div class='constraint' id='unique-endTime'>
+<div class="constraint" id="unique-endTime"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#unique-endTime">Constraint 30 (unique-endTime)</a></div>
<p>
-<span class='conditional'>IF</span> <span
- class="name">activity(a2,_t1,t2,_attrs)</span> and <span
- class="name">wasEndedBy(_end; a2,_e,_a1,t,_attrs1)</span>, <span
- class='conditional'>THEN</span> <span class="name">t2</span> = <span class="name">t</span>.</p>
+<span class="conditional">IF</span> <span class="name">activity(a2,_t1,t2,_attrs)</span> and <span class="name">wasEndedBy(_end; a2,_e,_a1,t,_attrs1)</span>, <span class="conditional">THEN</span> <span class="name">t2</span> = <span class="name">t</span>.</p>
</div>
<p>
-<hr />
+</p><hr>
<div class="note">
@@ -4131,111 +3591,102 @@
</div>
-<div id='unique-mention_text'>
+<div id="unique-mention_text">
<p>An entity can be the subject of at most one mention relation.</p>
</div>
-<span class="delete">Constraint 31 (unique-mention)</span><div class='constraint' id='unique-mention'>
+<div class="constraint" id="unique-mention"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#unique-mention">Constraint 31 (unique-mention)</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">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>
</div>
-</section>
-
-<section id="event-ordering-constraints">
-<h3><span class="delete">5.2 </span>Event Ordering Constraints</h3>
+</div>
+
+<div id="event-ordering-constraints" class="section">
+<h3><span class="secno">5.2 </span>Event Ordering Constraints</h3>
<p>Given that provenance consists of a description of past entities
-and activities, <a>valid</a> provenance instances <span class="delete">must</span><span class="insert">MUST</span>
+and activities, <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-valid" class="internalDFN">valid</a> provenance instances <em class="rfc2119" title="must">must</em>
satisfy <em>ordering constraints</em> between instantaneous events, which are introduced in
this section. For instance, an entity can only be used after it was
generated; in other words, an entity's <a title="entity generation
-event">generation event</a> precedes any of this
-entity's <a title="entity usage event">usage events</a>. Should this
+event" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-generation-event" class="internalDFN">generation event</a> precedes any of this
+entity's <a title="entity usage event" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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
-the <dfn>temporal interpretation</dfn> of provenance instances as a
+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
-<span class="delete">[</span><span class="delete">CLOCK</span><span class="delete">],</span><span class="insert">[[CLOCK]],</span> PROV relies on a notion of relative ordering of <a title="instantaneous event">instantaneous events</a>,
-without using physical clocks. This specification assumes that a <a>preorder</a> exists between <a title="instantaneous event">instantaneous events</a>.
+[<cite><a class="bibref" rel="biblioentry" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#bib-CLOCK">CLOCK</a></cite>], PROV relies on a notion of relative ordering of <a title="instantaneous event" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-event" class="internalDFN">instantaneous events</a>,
+without using physical clocks. This specification assumes that a <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-preorder" class="internalDFN">preorder</a> exists between <a title="instantaneous event" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-event" class="internalDFN">instantaneous events</a>.
</p>
-<p>Specifically, <dfn id="dfn-precedes">precedes</dfn> is a <a>preorder</a>
-between <a title="instantaneous event">instantaneous events</a>. A
+<p>Specifically, <dfn id="dfn-precedes">precedes</dfn> is a <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-preorder" class="internalDFN">preorder</a>
+between <a title="instantaneous event" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-event" class="internalDFN">instantaneous events</a>. A
constraint of the form
-<span class="name">e1</span> precedes <span
-class="name">e2</span> means that <span class="name">e1</span>
+<span class="name">e1</span> precedes <span class="name">e2</span> means that <span class="name">e1</span>
happened at the same time as or before <span class="name">e2</span>.
For symmetry, <dfn id="dfn-follows">follows</dfn> is defined as the
-inverse of <a title="precedes">precedes</a>; that is, a constraint of
+inverse of <a title="precedes" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a>; that is, a constraint of
the form
<span class="name">e1</span> follows <span class="name">e2</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>preorder</a>s, meaning that they are <a>reflexive</a> and
-<a>transitive</a>. Moreover, we sometimes consider <em>strict</em> forms of these
-orders: we say <span class="name">e1</span> <dfn>strictly precedes</dfn> <span
-class="name">e2</span> to indicate that <span class="name">e1</span>
+<a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-preorder" class="internalDFN">preorder</a>s, meaning that they are <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-reflexive" class="internalDFN">reflexive</a> and
+<a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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>, but not at the same time. This is a
-<a>transitive</a><span class="insert">, </span><a><span class="insert">irreflexive</span></a> relation. </p>
+<a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-transitive" class="internalDFN">transitive</a><span class="insert">, </span><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-irreflexive" class="internalDFN"><span class="insert">irreflexive</span></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">instantaneous events</a> introduced in
+specific provenance statements, for each of the five kinds of <a title="instantaneous event" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-event" class="internalDFN">instantaneous events</a> introduced in
this specification. 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 <span class="delete">may</span><span class="insert">MAY</span> flag time values
+implies event ordering, or vice versa. However, an application <em class="rfc2119" title="may">may</em> flag time values
that appear inconsistent with the event ordering as possible
-inconsistencies. When generating provenance, an application <span class="delete">should</span><span class="insert">SHOULD</span>
+inconsistencies. When generating provenance, an application <em class="rfc2119" title="should">should</em>
use a consistent <span class="delete">imeline</span><span class="insert">timeline</span> for related PROV statements within an
instance.</p>
<p> A typical ordering constraint is as follows.</p>
- <span class="delete">Constraint-example NNN (ordering-example)</span><div
- class="constraint-example" id="ordering-example">
- <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>precedes</a>/<a>strictly precedes</a> <span
- class="name">evt2</span>. </p></div>
+ <div class="constraint-example" id="ordering-example"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a>/<a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-strictly-precedes" class="internalDFN">strictly precedes</a> <span class="name">evt2</span>. </p></div>
<p>
- The conclusion of an ordering constraint is either <a>precedes</a>
- or <a>strictly precedes</a>. One way to check
+ The conclusion of an ordering constraint is either <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a>
+ or <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-strictly-precedes" class="internalDFN">strictly precedes</a>. One way to check
ordering constraints is to
- generate all <a>precedes</a> and <a title="precedes">strictly
+ generate all <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a> and <a title="precedes" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">strictly
precedes</a>
- relationships arising from the ordering constraints to form a directed graph, with edges marked <a>precedes</a> or
- <a>strictly precedes</a>, and check that there is no cycle
- containing a <a>strictly precedes</a> edge.
+ relationships arising from the ordering constraints to form a directed graph, with edges marked <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a> or
+ <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-strictly-precedes" class="internalDFN">strictly precedes</a>, and check that there is no cycle
+ containing a <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-strictly-precedes" class="internalDFN">strictly precedes</a> edge.
</p>
-
-<span class="delete">5.2.1 </span><section>
-<h3>Activity constraints</h3>
+<div id="activity-constraints" class="section">
+<h4><span class="secno">5.2.1 </span>Activity constraints</h4>
<p>
This section specifies ordering constraints from the perspective of
-the <a>lifetime</a> of an activity. An activity starts, then during
+the <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#lifetime" class="internalDFN">lifetime</a> of an activity. An activity starts, then during
its lifetime can use, generate or invalidate entities, communicate
with, start, or end
other
@@ -4245,47 +3696,45 @@
start and endpoints of its lifetime.
</p>
-<p><a href="#ordering-activity">Figure 3</a> summarizes the ordering
+<p><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#ordering-activity">Figure 3</a> 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">instantaneous events</a> are represented by vertical
+activities. The five kinds of <a title="instantaneous event" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-event" class="internalDFN">instantaneous events</a> 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">instantaneous event</a> vertical dotted lines represents that the event denoted by the left
+constraints are represented by triangles: an occurrence of a triangle between two <a title="instantaneous event" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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"> 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. </ul>
+ 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>
</div>
<div style="text-align: center;">
-
-<figure id="ordering-activity">
-<img src="images/constraints/ordering-activity.png" alt="constraints between events" />
+<span class="figure" id="ordering-activity">
+<img src="./prov-constraints_files/ordering-activity.png" alt="constraints between events">
<br>
-<span class="delete">Figure 3</span><span class="delete"> ◊:</span> <figcaption id="ordering-activity-fig">Summary of <a title="instantaneous event">instantaneous event</a> ordering constraints for activities</figcaption>
-</figure>
+<span class="figcaption" id="ordering-activity-fig">Figure 3<sup><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#ordering-activity-fig"><span class="diamond"> ◊:</span></a></sup> Summary of <a title="instantaneous event" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-event" class="internalDFN">instantaneous event</a> ordering constraints for activities</span>
+</span>
</div>
-<hr />
-
-<p id='start-precedes-end_text'>
-The existence of an activity implies that the <a>activity start
-event</a> always <a>precedes</a> the corresponding <a>activity end
+<hr>
+
+<p id="start-precedes-end_text">
+The existence of an activity implies that the <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-start-event" class="internalDFN">activity start
+event</a> always <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a> the corresponding <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-end-event" class="internalDFN">activity end
event</a>. This is illustrated by
-<a href="#ordering-activity">Figure 3</a>
-(a) and expressed by <a class="rule-ref"
-href="#start-precedes-end"><span><span class="delete">Constraint 32 (start-precedes-end)</span><span class="insert">TBD</span></span></a>.</p>
-
-<span class="delete">Constraint 32 (start-precedes-end)</span><div class='constraint' id='start-precedes-end'>
+<a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#ordering-activity">Figure 3</a>
+(a) and expressed by <a class="rule-ref" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#start-precedes-end"><span>Constraint 32 (start-precedes-end)</span></a>.</p>
+
+<div class="constraint" id="start-precedes-end"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#start-precedes-end">Constraint 32 (start-precedes-end)</a></div>
<p>
<span class="conditional">IF</span>
<span class="name">wasStartedBy(start; a,_e1,_a1,_t1,_attrs1)</span>
@@ -4293,22 +3742,22 @@
<span class="name">wasEndedBy(end; a,_e2,_a2,_t2,_attrs2)</span>
<span class="conditional">THEN</span>
<span class="name">start</span>
-<a title="precedes">precedes</a>
+<a title="precedes" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a>
<span class="name">end</span>.
</p>
</div>
<p>
-<hr />
-
-<p id='start-start-ordering_text'>
+</p><hr>
+
+<p id="start-start-ordering_text">
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 <a>precedes</a> the
+events that start the same activity, then one <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a> the
other. Using this constraint in both directions means that each event
-<a>precedes</a> the other.
+<a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a> the other.
</p>
-<span class="delete">Constraint 33 (start-start-ordering)</span><div class='constraint' id='start-start-ordering'>
+<div class="constraint" id="start-start-ordering"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#start-start-ordering">Constraint 33 (start-start-ordering)</a></div>
<p>
<span class="conditional">IF</span>
<span class="name">wasStartedBy(start1; a,_e1,_a1,_t1,_attrs1)</span>
@@ -4316,21 +3765,21 @@
<span class="name">wasStartedBy(start2; a,_e2,_a2,_t2,_attrs2)</span>
<span class="conditional">THEN</span>
<span class="name">start1</span>
-<a title="precedes">precedes</a>
+<a title="precedes" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a>
<span class="name">start2</span>.
</p>
</div>
-<hr />
-
-<p id='end-end-ordering_text'>
+<hr>
+
+<p id="end-end-ordering_text">
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 <a>precedes</a> the
+events that end the same activity, then one <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a> the
other. Using this constraint in both directions means that each event
-<a>precedes</a> the other, that is, they are simultaneous.
+<a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a> the other, that is, they are simultaneous.
</p>
-<span class="delete">Constraint 34 (end-end-ordering)</span><div class='constraint' id='end-end-ordering'>
+<div class="constraint" id="end-end-ordering"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#end-end-ordering">Constraint 34 (end-end-ordering)</a></div>
<p>
<span class="conditional">IF</span>
<span class="name">wasEndedBy(end1; a,_e1,_a1,_t1,_attrs1)</span>
@@ -4338,17 +3787,17 @@
<span class="name">wasEndedBy(end2; a,_e2,_a2,_t2,_attrs2)</span>
<span class="conditional">THEN</span>
<span class="name">end1</span>
-<a title="precedes">precedes</a>
+<a title="precedes" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a>
<span class="name">end2</span>.
</p>
</div>
-<hr />
-
-<p id='usage-within-activity_text'>A usage implies ordering of <a title="instantaneous event">events</a>, since the <a title="entity usage event">usage event</a> had to occur during the associated activity. This is
-illustrated by <a href="#ordering-activity">Figure 3</a> (b) and expressed by <a class="rule-ref" href="#usage-within-activity"><span><span class="delete">Constraint 35 (usage-within-activity)</span><span class="insert">TBD</span></span></a>.</p>
-
-<span class="delete">Constraint 35 (usage-within-activity)</span><div class='constraint' id='usage-within-activity'>
+<hr>
+
+<p id="usage-within-activity_text">A usage implies ordering of <a title="instantaneous event" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-event" class="internalDFN">events</a>, since the <a title="entity usage event" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-usage-event" class="internalDFN">usage event</a> had to occur during the associated activity. This is
+illustrated by <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#ordering-activity">Figure 3</a> (b) and expressed by <a class="rule-ref" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#usage-within-activity">Constraint 35 (usage-within-activity)</a></div>
<ol>
<li>
<span class="conditional">IF</span>
@@ -4357,7 +3806,7 @@
<span class="name">used(use; a,_e2,_t2,_attrs2)</span>
<span class="conditional">THEN</span>
<span class="name">start</span>
-<a title="precedes">precedes</a>
+<a title="precedes" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a>
<span class="name">use</span>.
</li>
<li>
@@ -4367,7 +3816,7 @@
<span class="name">wasEndedBy(end; a,_e2,_a2,_t2,_attrs2)</span>
<span class="conditional">THEN</span>
<span class="name">use</span>
-<a title="precedes">precedes</a>
+<a title="precedes" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a>
<span class="name">end</span>.
</li>
</ol>
@@ -4375,13 +3824,13 @@
<p>
-<hr />
-
-
-<p id='generation-within-activity_text'>A generation implies ordering of <a title="instantaneous event">events</a>, since the <a title="entity generation event">generation event</a> had to occur during the associated activity. This is
-illustrated by <a href="#ordering-activity">Figure 3</a> (c) and expressed by <a class="rule-ref" href="#generation-within-activity"><span><span class="delete">Constraint 36 (generation-within-activity)</span><span class="insert">TBD</span></span></a>.</p>
-
-<span class="delete">Constraint 36 (generation-within-activity)</span><div class='constraint' id='generation-within-activity'>
+</p><hr>
+
+
+<p id="generation-within-activity_text">A generation implies ordering of <a title="instantaneous event" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-event" class="internalDFN">events</a>, since the <a title="entity generation event" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-generation-event" class="internalDFN">generation event</a> had to occur during the associated activity. This is
+illustrated by <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#ordering-activity">Figure 3</a> (c) and expressed by <a class="rule-ref" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#generation-within-activity">Constraint 36 (generation-within-activity)</a></div>
<ol>
<li>
<span class="conditional">IF</span>
@@ -4390,7 +3839,7 @@
<span class="name">wasGeneratedBy(gen; _e2,a,_t2,_attrs2)</span>
<span class="conditional">THEN</span>
<span class="name">start</span>
-<a title="precedes">precedes</a>
+<a title="precedes" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a>
<span class="name">gen</span>.
</li>
<li>
@@ -4400,7 +3849,7 @@
<span class="name">wasEndedBy(end; a,_e1,_a1,_t1,_attrs1)</span>
<span class="conditional">THEN</span>
<span class="name">gen</span>
-<a title="precedes">precedes</a>
+<a title="precedes" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a>
<span class="name">end</span>.
</li>
</ol>
@@ -4408,21 +3857,19 @@
<p>
-
-<hr />
-<p id='wasInformedBy-ordering_text'>
+</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">events</a>, since some entity must
+of <a title="instantaneous event" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-event" class="internalDFN">events</a>, 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
illustrated by
-<a href="#ordering-activity">Figure 3</a>
-(d) and expressed by <a class="rule-ref"
-href="#wasInformedBy-ordering"><span><span class="delete">Constraint 37 (wasInformedBy-ordering)</span><span class="insert">TBD</span></span></a>.</p>
-
-<span class="delete">Constraint 37 (wasInformedBy-ordering)</span><div class='constraint' id='wasInformedBy-ordering'>
+<a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#ordering-activity">Figure 3</a>
+(d) and expressed by <a class="rule-ref" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#wasInformedBy-ordering"><span>Constraint 37 (wasInformedBy-ordering)</span></a>.</p>
+
+<div class="constraint" id="wasInformedBy-ordering"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#wasInformedBy-ordering">Constraint 37 (wasInformedBy-ordering)</a></div>
<p>
<span class="conditional">IF</span>
<span class="name">wasInformedBy(_id; a2,a1,_attrs)</span>
@@ -4432,7 +3879,7 @@
<span class="name">wasEndedBy(end; a2,_e2,_a2',_t2,_attrs2)</span>
<span class="conditional">THEN</span>
<span class="name">start</span>
-<a title="precedes">precedes</a>
+<a title="precedes" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a>
<span class="name">end</span>.
</p>
</div>
@@ -4440,11 +3887,10 @@
-</section>
-
-
-<span class="delete">5.2.2 </span><section>
-<h3> Entity constraints</h3>
+</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>
@@ -4453,31 +3899,30 @@
As with activities, entities have lifetimes: they are generated, then
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 <a href="#ordering-entity">Figure 4</a> and
-<a href="#ordering-entity-trigger">Figure 5</a>.
+illustrated graphically in <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#ordering-entity">Figure 4</a> and
+<a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#ordering-entity-trigger">Figure 5</a>.
</p>
<div style="text-align: center;">
-
-<figure id="ordering-entity">
-<img src="images/constraints/ordering-entity.png" alt="ordering constraints for entities" />
+<span class="figure" id="ordering-entity">
+<img src="./prov-constraints_files/ordering-entity.png" alt="ordering constraints for entities">
<br>
-<span class="delete">Figure 4</span><span class="delete"> ◊:</span> <figcaption id="ordering-entity-fig">Summary of <a title="instantaneous event">instantaneous event</a> ordering constraints for entities</figcaption></figure>
+<span class="figcaption" id="ordering-entity-fig">Figure 4<sup><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#ordering-entity-fig"><span class="diamond"> ◊:</span></a></sup> Summary of <a title="instantaneous event" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-event" class="internalDFN">instantaneous event</a> ordering constraints for entities</span></span>
</div>
<p>
-<hr />
-
-<p id='generation-precedes-invalidation_text'>
+</p><hr>
+
+<p id="generation-precedes-invalidation_text">
Generation of an entity precedes its invalidation. (This
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.)</p>
-<span class="delete">Constraint 38 (generation-precedes-invalidation)</span><div class='constraint' id='generation-precedes-invalidation'>
+<div class="constraint" id="generation-precedes-invalidation"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#generation-precedes-invalidation">Constraint 38 (generation-precedes-invalidation)</a></div>
<p>
<span class="conditional">IF</span>
<span class="name">wasGeneratedBy(gen; e,_a1,_t1,_attrs1)</span>
@@ -4485,7 +3930,7 @@
<span class="name">wasInvalidatedBy(inv; e,_a2,_t2,_attrs2)</span>
<span class="conditional">THEN</span>
<span class="name">gen</span>
-<a title="precedes">precedes</a>
+<a title="precedes" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a>
<span class="name">inv</span>.
</p>
</div>
@@ -4493,31 +3938,31 @@
-<hr />
-
-<p id='generation-precedes-usage_text'>
-A usage and a generation for a given entity implies ordering of <a title="instantaneous event">events</a>, since the <a title="entity generation
-event">generation event</a> had to precede the <a title="entity usage event">usage event</a>. This is
-illustrated by <a href="#ordering-entity">Figure 4</a>(a) and expressed by <a class="rule-ref" href="#generation-precedes-usage"><span><span class="delete">Constraint 39 (generation-precedes-usage)</span><span class="insert">TBD</span></span></a>.</p>
-
-<span class="delete">Constraint 39 (generation-precedes-usage)</span><div class='constraint' id='generation-precedes-usage'>
+<hr>
+
+<p id="generation-precedes-usage_text">
+A usage and a generation for a given entity implies ordering of <a title="instantaneous event" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-event" class="internalDFN">events</a>, since the <a title="entity generation
+event" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-generation-event" class="internalDFN">generation event</a> had to precede the <a title="entity usage event" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-usage-event" class="internalDFN">usage event</a>. This is
+illustrated by <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#ordering-entity">Figure 4</a>(a) and expressed by <a class="rule-ref" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#generation-precedes-usage">Constraint 39 (generation-precedes-usage)</a></div>
<p> <span class="conditional">IF</span>
<span class="name">wasGeneratedBy(gen; e,_a1,_t1,_attrs1)</span>
and
<span class="name">used(use; _a2,e,_t2,_attrs2)</span>
<span class="conditional">THEN</span>
<span class="name">gen</span>
-<a title="precedes">precedes</a>
+<a title="precedes" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a>
<span class="name">use</span>.
</p>
</div>
-<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><span class="delete">Constraint 40 (usage-precedes-invalidation)</span><span class="insert">TBD</span></span></a> (without any explicit graphical representation).</p>
-
-<span class="delete">Constraint 40 (usage-precedes-invalidation)</span><div class='constraint' id='usage-precedes-invalidation'>
+<hr>
+
+<p id="usage-precedes-invalidation_text">All usages of an entity precede its invalidation, which is captured by <a class="rule-ref" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#usage-precedes-invalidation">Constraint 40 (usage-precedes-invalidation)</a></div>
<p>
<span class="conditional">IF</span>
<span class="name">used(use; _a1,e,_t1,_attrs1)</span>
@@ -4525,23 +3970,23 @@
<span class="name">wasInvalidatedBy(inv; e,_a2,_t2,_attrs2)</span>
<span class="conditional">THEN</span>
<span class="name">use</span>
-<a title="precedes">precedes</a>
+<a title="precedes" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a>
<span class="name">inv</span>.</p>
</div>
-<hr />
-
-
-<hr />
-
-<p id='generation-generation-ordering_text'>
+<hr>
+
+
+<hr>
+
+<p id="generation-generation-ordering_text">
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 <a>precedes</a> the
+events that generate the same entity, then one <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a> the
other. Using this constraint in both directions means that each event
-<a>precedes</a> the other.
+<a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a> the other.
</p>
-<span class="delete">Constraint 41 (generation-generation-ordering)</span><div class='constraint' id='generation-generation-ordering'>
+<div class="constraint" id="generation-generation-ordering"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#generation-generation-ordering">Constraint 41 (generation-generation-ordering)</a></div>
<p>
<span class="conditional">IF</span>
<span class="name">wasGeneratedBy(gen1; e,_a1,_t1,_attrs1)</span>
@@ -4549,21 +3994,21 @@
<span class="name">wasGeneratedBy(gen2; e,_a2,_t2,_attrs2)</span>
<span class="conditional">THEN</span>
<span class="name">gen1</span>
-<a title="precedes">precedes</a>
+<a title="precedes" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a>
<span class="name">gen2</span>.
</p>
</div>
-<hr />
-
-<p id='invalidation-invalidation-ordering_text'>
+<hr>
+
+<p id="invalidation-invalidation-ordering_text">
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 <a>precedes</a> the
+events that invalidate the same entity, then one <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a> the
other. Using this constraint in both directions means that each event
-<a>precedes</a> the other, that is, they are simultaneous.
+<a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a> the other, that is, they are simultaneous.
</p>
-<span class="delete">Constraint 42 (invalidation-invalidation-ordering)</span><div class='constraint' id='invalidation-invalidation-ordering'>
+<div class="constraint" id="invalidation-invalidation-ordering"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#invalidation-invalidation-ordering">Constraint 42 (invalidation-invalidation-ordering)</a></div>
<p>
<span class="conditional">IF</span>
<span class="name">wasInvalidatedBy(inv1; e,_a1,_t1,_attrs1)</span>
@@ -4571,49 +4016,45 @@
<span class="name">wasInvalidatedBy(inv2; e,_a2,_t2,_attrs2)</span>
<span class="conditional">THEN</span>
<span class="name">inv1</span>
-<a title="precedes">precedes</a>
+<a title="precedes" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a>
<span class="name">inv2</span>.
</p>
</div>
-<p id='derivation-usage-generation-ordering_text'>If there is a
+<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">usage</a> of <span class="name">e1</span> has to precede the <a title="entity generation
-event">generation</a> of <span class="name">e2</span>.
+First, we consider derivations, where the activity and usage are known. In that case, the <a title="entity usage event" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-usage-event" class="internalDFN">usage</a> of <span class="name">e1</span> has to precede the <a title="entity generation
+event" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-generation-event" class="internalDFN">generation</a> of <span class="name">e2</span>.
This is
-illustrated by <a href="#ordering-entity-fig">Figure 4</a> (b) and expressed by <a
-class="rule-ref" href="#derivation-usage-generation-ordering"><span><span class="delete">Constraint 43 (derivation-usage-generation-ordering)</span><span class="insert">TBD</span></span></a>.</p>
-
-
-<span class="delete">Constraint 43 (derivation-usage-generation-ordering)</span><div class='constraint' id='derivation-usage-generation-ordering'>
+illustrated by <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#ordering-entity-fig">Figure 4</a> (b) and expressed by <a class="rule-ref" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#derivation-usage-generation-ordering"><span>Constraint 43 (derivation-usage-generation-ordering)</span></a>.</p>
+
+
+<div class="constraint" id="derivation-usage-generation-ordering"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#derivation-usage-generation-ordering">Constraint 43 (derivation-usage-generation-ordering)</a></div>
<p>
- In this constraint, <span class="name">_a</span>, <span class="name">gen2</span>, <span class="name">use1</span> <span class="delete">must not</span><span class="insert">MUST NOT</span> be placeholders.</p>
+ In this constraint, <span class="name">_a</span>, <span class="name">gen2</span>, <span class="name">use1</span> <em class="rfc2119" title="must not">must not</em> be placeholders.</p>
<p>
<span class="conditional">IF</span>
<span class="name">wasDerivedFrom(_d; _e2,_e1,_a,gen2,use1,_attrs)</span>
<span class="conditional">THEN</span>
<span class="name">use1</span>
-<a title="precedes">precedes</a>
+<a title="precedes" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a>
<span class="name">gen2</span>.
</p>
</div>
<p>
-<hr />
-
-<p id='derivation-generation-generation-ordering_text'>
+</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
generation event, as
-illustrated by <a href="#ordering-entity-fig">Figure 4</a> (c) and expressed by <a
-class="rule-ref" href="#derivation-generation-generation-ordering"><span><span class="delete">Constraint 44 (derivation-generation-generation-ordering)</span><span class="insert">TBD</span></span></a>.</p>
-
-<span class="delete">Constraint 44 (derivation-generation-generation-ordering)</span><div class='constraint'
- id='derivation-generation-generation-ordering'>
+illustrated by <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#ordering-entity-fig">Figure 4</a> (c) and expressed by <a class="rule-ref" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#derivation-generation-generation-ordering"><span>Constraint 44 (derivation-generation-generation-ordering)</span></a>.</p>
+
+<div class="constraint" id="derivation-generation-generation-ordering"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#derivation-generation-generation-ordering">Constraint 44 (derivation-generation-generation-ordering)</a></div>
<p>
-In this constraint, any <span class="name">_a</span>, <span
- class="name">_g</span>, <span class="name">_u</span> <span class="delete">may</span><span class="insert">MAY</span> be placeholders.</p>
+In this constraint, any <span class="name">_a</span>, <span class="name">_g</span>, <span class="name">_u</span> <em class="rfc2119" title="may">may</em> be placeholders.</p>
<p>
<span class="conditional">IF</span>
<span class="name">wasDerivedFrom(_d; e2,e1,_a,_g,_u,attrs)</span>
@@ -4623,7 +4064,7 @@
<span class="name">wasGeneratedBy(gen2; e2,_a2,_t2,_attrs2)</span>
<span class="conditional">THEN</span>
<span class="name">gen1</span>
-<a>strictly precedes</a>
+<a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-strictly-precedes" class="internalDFN">strictly precedes</a>
<span class="name">gen2</span>.
</p>
</div>
@@ -4631,7 +4072,7 @@
<div class="remark">
<p>This constraint requires the derived
entity to be generated strictly following the generation of the
- original entity. This follows from the <span class="delete">[</span><span class="delete">PROV-DM</span><span class="delete">]</span><span class="insert">[[PROV-DM]]</span> definition of
+ original entity. This follows from the [<cite><a class="bibref" rel="biblioentry" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#bib-PROV-DM">PROV-DM</a></cite>] definition of
derivation: <em>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</em>, thus
@@ -4642,15 +4083,15 @@
generation of <span class="name">e2</span>. </p>
</div>
-<hr />
-
-<p id='wasStartedBy-ordering_text'>
+<hr>
+
+<p id="wasStartedBy-ordering_text">
The entity that triggered the start of an activity must exist before the activity starts.
This is
-illustrated by <a href="#ordering-entity-trigger">Figure 5</a>(a) and expressed by <a class="rule-ref" href="#wasStartedBy-ordering"><span><span class="delete">Constraint 45 (wasStartedBy-ordering)</span><span class="insert">TBD</span></span></a>.</p>
-
-
-<span class="delete">Constraint 45 (wasStartedBy-ordering)</span><div class='constraint' id='wasStartedBy-ordering'>
+illustrated by <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#ordering-entity-trigger">Figure 5</a>(a) and expressed by <a class="rule-ref" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#wasStartedBy-ordering"><span>Constraint 45 (wasStartedBy-ordering)</span></a>.</p>
+
+
+<div class="constraint" id="wasStartedBy-ordering"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#wasStartedBy-ordering">Constraint 45 (wasStartedBy-ordering)</a></div>
<ol>
<li>
<span class="conditional">IF</span>
@@ -4659,7 +4100,7 @@
<span class="name">wasStartedBy(start; _a,e,_a2,_t2,_attrs2)</span>
<span class="conditional">THEN</span>
<span class="name">gen</span>
-<a title="precedes">precedes</a>
+<a title="precedes" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a>
<span class="name">start</span>.
</li><li>
<span class="conditional">IF</span>
@@ -4668,21 +4109,21 @@
<span class="name">wasInvalidatedBy(inv; e,_a2,_t2,_attrs2)</span>
<span class="conditional">THEN</span>
<span class="name">start</span>
-<a title="precedes">precedes</a>
+<a title="precedes" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a>
<span class="name">inv</span>.
</li>
</ol>
</div>
-<hr />
-
-<p id='wasEndedBy-ordering_text'> Similarly, the entity that triggered
+<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 5</a>(b).</p>
-
-
-<span class="delete">Constraint 46 (wasEndedBy-ordering)</span><div class='constraint' id='wasEndedBy-ordering'>
+<a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#ordering-entity-trigger">Figure 5</a>(b).</p>
+
+
+<div class="constraint" id="wasEndedBy-ordering"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#wasEndedBy-ordering">Constraint 46 (wasEndedBy-ordering)</a></div>
<ol>
<li>
<span class="conditional">IF</span>
@@ -4691,7 +4132,7 @@
<span class="name">wasEndedBy(end; _a,e,_a2,_t2,_attrs2)</span>
<span class="conditional">THEN</span>
<span class="name">gen</span>
-<a title="precedes">precedes</a>
+<a title="precedes" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a>
<span class="name">end</span>.
</li><li>
<span class="conditional">IF</span>
@@ -4700,59 +4141,54 @@
<span class="name">wasInvalidatedBy(inv; e,_a2,_t2,_attrs2)</span>
<span class="conditional">THEN</span>
<span class="name">end</span>
-<a title="precedes">precedes</a>
+<a title="precedes" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a>
<span class="name">inv</span>.
</li>
</ol>
</div>
<div style="text-align: center; ">
-
-<figure id="ordering-entity-trigger">
-<img src="images/constraints/ordering-entity-trigger.png" alt="ordering constraints for trigger entities" />
+<span class="figure" id="ordering-entity-trigger">
+<img src="./prov-constraints_files/ordering-entity-trigger.png" alt="ordering constraints for trigger entities">
<br>
-<span class="delete">Figure 5</span><span class="delete"> ◊:</span> <figcaption id="ordering-entity-trigger-fig">Summary of <a title="instantaneous event">instantaneous event</a> ordering constraints for trigger entities</figcaption>
-</figure>
+<span class="figcaption" id="ordering-entity-trigger-fig">Figure 5<sup><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#ordering-entity-trigger-fig"><span class="diamond"> ◊:</span></a></sup> Summary of <a title="instantaneous event" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-event" class="internalDFN">instantaneous event</a> ordering constraints for trigger entities</span>
+</span>
</div>
-<hr />
+<hr>
<p id="specialization-generation-ordering_text">
If an entity is a specialization of another, then the more
specific entity must have been generated after the
less specific entity was generated.
</p>
-<div class="constraint" id="specialization-generation-ordering"><span class="delete">Constraint 47 (specialization-generation-ordering)</span>
+<div class="constraint" id="specialization-generation-ordering"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#specialization-generation-ordering">Constraint 47 (specialization-generation-ordering)</a></div>
<p>
-<span class="conditional">IF</span> <span
- class="name">specializationOf(e2,e1)</span> and <span
- class="name">wasGeneratedBy(gen1; e1,_a1,_t1,_attrs1)</span> and
+<span class="conditional">IF</span> <span class="name">specializationOf(e2,e1)</span> and <span class="name">wasGeneratedBy(gen1; e1,_a1,_t1,_attrs1)</span> and
<span class="name">wasGeneratedBy(gen2; e2,_a2,_t2,_attrs2)</span>
- <span class="conditional">THEN</span> <span class="name">gen1</span> <a>precedes</a> <span class="name">gen2</span>.
-</div>
+ <span class="conditional">THEN</span> <span class="name">gen1</span> <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a> <span class="name">gen2</span>.
+</p></div>
<p>
-<hr />
+</p><hr>
<p id="specialization-invalidation-ordering_text">
Similarly, if an entity is a specialization of another entity, and
then
the invalidation event of the more specific entity precedes that of
the less specific entity.
-</p><div class="constraint" id="specialization-invalidation-ordering"><span class="delete">Constraint 48 (specialization-invalidation-ordering)</span>
+</p><div class="constraint" id="specialization-invalidation-ordering"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#specialization-invalidation-ordering">Constraint 48 (specialization-invalidation-ordering)</a></div>
<p>
-<span class="conditional">IF</span> <span
- class="name">specializationOf(e1,e2)</span> and
+<span class="conditional">IF</span> <span class="name">specializationOf(e1,e2)</span> and
<span class="name">wasInvalidatedBy(inv1; e1,_a1,_t1,_attrs1)</span> and
- <span class="name">wasInvalidatedBy(inv2; e2,_a2,_t2,_attrs2)</span>
- <span class="conditional">THEN</span> <span class="name">inv1</span> <a>precedes</a> <span class="name">inv2</span>.
+ <span class="name">wasInvalidatedBy(inv2; e2,_a2,_t2,_attrs2)</span>
+ <span class="conditional">THEN</span> <span class="name">inv1</span> <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a> <span class="name">inv2</span>.
</p>
</div>
-</section>
-
-
-<span class="delete">5.2.3 </span><section>
-<h3> Agent constraints</h3>
+</div>
+
+<div id="agent-constraints" class="section">
+<h4><span class="secno">5.2.3 </span> Agent constraints</h4>
<p> Like entities and activities, agents have lifetimes that follow a
familiar pattern. An agent that is also an entity can be generated
@@ -4761,36 +4197,33 @@
such as starting or ending other activities, association with an
activity, attribution, or delegation.
-</p> <p>Further constraints associated with agents appear in <a
- href="#ordering-agents">Figure 6</a> and are discussed below.</p>
+</p> <p>Further constraints associated with agents appear in <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#ordering-agents">Figure 6</a> and are discussed below.</p>
<div style="text-align: center;">
-
-<figure id="ordering-agents-fig">
-<img src="images/constraints/ordering-agents.png" alt="ordering constraints for agents" />
+<span class="figure" id="ordering-agents-fig">
+<img src="./prov-constraints_files/ordering-agents.png" alt="ordering constraints for agents">
<br>
-<span class="delete">Figure 6</span><span class="delete"> ◊:</span> <figcaption id="ordering-agents">Summary of <a
- title="instantaneous event">instantaneous event</a> ordering
- constraints for agents</figcaption>
-</figure>
+<span class="figcaption" id="ordering-agents">Figure 6<sup><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#ordering-agents"><span class="diamond"> ◊:</span></a></sup> Summary of <a title="instantaneous event" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-event" class="internalDFN">instantaneous event</a> ordering
+ constraints for agents</span>
+</span>
</div>
-<hr />
-
-
-<p id='wasAssociatedWith-ordering_text'>An activity that was
+<hr>
+
+
+<p id="wasAssociatedWith-ordering_text">An activity that was
associated with an agent must have some overlap with the agent. The
-agent <span class="delete">must</span><span class="insert">MUST</span> have been generated (or started), or <span class="delete">must</span><span class="insert">MUST</span> have become
-associated with the activity, after the activity start: so, the agent <span class="delete">must</span><span class="insert">MUST</span> exist before the activity end. Likewise, the agent may be destructed (or ended), or may terminate its association with the activity, before the activity end: hence, the agent invalidation (or end) is required to happen after the activity start.
-This is illustrated by <a href="#ordering-agents">Figure 6</a> (a) and expressed by <a class="rule-ref" href="#wasAssociatedWith-ordering"><span><span class="delete">Constraint 49 (wasAssociatedWith-ordering)</span><span class="insert">TBD</span></span></a>.</p>
-
-
-
-<span class="delete">Constraint 49 (wasAssociatedWith-ordering)</span><div class='constraint' id='wasAssociatedWith-ordering'>
+agent <em class="rfc2119" title="must">must</em> have been generated (or started), or <em class="rfc2119" title="must">must</em> have become
+associated with the activity, after the activity start: so, the agent <em class="rfc2119" title="must">must</em> exist before the activity end. Likewise, the agent may be destructed (or ended), or may terminate its association with the activity, before the activity end: hence, the agent invalidation (or end) is required to happen after the activity start.
+This is illustrated by <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#ordering-agents">Figure 6</a> (a) and expressed by <a class="rule-ref" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#wasAssociatedWith-ordering"><span>Constraint 49 (wasAssociatedWith-ordering)</span></a>.</p>
+
+
+
+<div class="constraint" id="wasAssociatedWith-ordering"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#wasAssociatedWith-ordering">Constraint 49 (wasAssociatedWith-ordering)</a></div>
<p>
-In the following inferences, <span class="name">_pl</span> <span class="delete">may</span><span class="insert">MAY</span> be
+In the following inferences, <span class="name">_pl</span> <em class="rfc2119" title="may">may</em> be
a placeholder <span class="name">-</span>.
- <ol> <li>
+ </p><ol> <li>
<span class="conditional">IF</span>
<span class="name">wasAssociatedWith(_assoc; a,ag,_pl,_attrs)</span>
and
@@ -4799,7 +4232,7 @@
<span class="name">wasInvalidatedBy(inv2; ag,_a2,_t2,_attrs2)</span>
<span class="conditional">THEN</span>
<span class="name">start1</span>
-<a title="precedes">precedes</a>
+<a title="precedes" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a>
<span class="name">inv2</span>.
</li><li>
<span class="conditional">IF</span>
@@ -4810,7 +4243,7 @@
<span class="name">wasEndedBy(end2; a,_e2,_a2,_t2,_attrs2)</span>
<span class="conditional">THEN</span>
<span class="name">gen1</span>
-<a title="precedes">precedes</a>
+<a title="precedes" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a>
<span class="name">end2</span>.
</li><li>
<span class="conditional">IF</span>
@@ -4821,7 +4254,7 @@
<span class="name">wasEndedBy(end2; ag,_e2,_a2,_t2,_attrs2)</span>
<span class="conditional">THEN</span>
<span class="name">start1</span>
-<a title="precedes">precedes</a>
+<a title="precedes" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a>
<span class="name">end2</span>.
</li><li>
<span class="conditional">IF</span>
@@ -4832,7 +4265,7 @@
<span class="name">wasEndedBy(end2; a,_e2,_a2,_t2,_attrs2)</span>
<span class="conditional">THEN</span>
<span class="name">start1</span>
-<a title="precedes">precedes</a>
+<a title="precedes" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a>
<span class="name">end2</span>.
</li>
</ol>
@@ -4841,16 +4274,16 @@
<p>
-<hr />
-
-<p id='wasAttributedTo-ordering_text'>An agent to which an entity was attributed, <span class="delete">must</span><span class="insert">MUST</span> exist before this entity was generated.
+</p><hr>
+
+<p id="wasAttributedTo-ordering_text">An agent to which an entity was attributed, <em class="rfc2119" title="must">must</em> exist before this entity was generated.
This is
-illustrated by <a href="#ordering-agents">Figure 6</a> (b) and expressed by <a class="rule-ref" href="#wasAttributedTo-ordering"><span><span class="delete">Constraint 50 (wasAttributedTo-ordering)</span><span class="insert">TBD</span></span></a>.</p>
+illustrated by <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#ordering-agents">Figure 6</a> (b) and expressed by <a class="rule-ref" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#wasAttributedTo-ordering"><span>Constraint 50 (wasAttributedTo-ordering)</span></a>.</p>
-<span class="delete">Constraint 50 (wasAttributedTo-ordering)</span><div class='constraint' id='wasAttributedTo-ordering'>
+<div class="constraint" id="wasAttributedTo-ordering"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#wasAttributedTo-ordering">Constraint 50 (wasAttributedTo-ordering)</a></div>
<ol> <li>
<span class="conditional">IF</span>
<span class="name">wasAttributedTo(_at; e,ag,_attrs)</span>
@@ -4860,7 +4293,7 @@
<span class="name">wasGeneratedBy(gen2; e,_a2,_t2,_attrs2)</span>
<span class="conditional">THEN</span>
<span class="name">gen1</span>
-<a title="precedes">precedes</a>
+<a title="precedes" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a>
<span class="name">gen2</span>.
</li><li>
<span class="conditional">IF</span>
@@ -4871,19 +4304,19 @@
<span class="name">wasGeneratedBy(gen2; e,_a2,_t2,_attrs2)</span>
<span class="conditional">THEN</span>
<span class="name">start1</span>
-<a title="precedes">precedes</a>
+<a title="precedes" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a>
<span class="name">gen2</span>.
</li>
</ol>
</div>
<p>
-<hr />
-
-<p id='actedOnBehalfOf-ordering_text'>For delegation, <span class="delete">two agents need</span><span class="insert">the responsible agent has</span> to <span class="insert">precede or </span>have some overlap <span class="delete">in their lifetime.</span><span class="insert">with the subordinate agent.</span></p>
-
-
-<span class="delete">Constraint 51 (actedOnBehalfOf-ordering)</span><div class='constraint' id='actedOnBehalfOf-ordering'>
+</p><hr>
+
+<p id="actedOnBehalfOf-ordering_text">For delegation, <span class="delete">two agents need</span><span class="insert">the responsible agent has</span> to <span class="insert">precede or </span>have some overlap <span class="delete">in their lifetime.</span><span class="insert">with the subordinate agent.</span></p>
+
+
+<div class="constraint" id="actedOnBehalfOf-ordering"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#actedOnBehalfOf-ordering">Constraint 51 (actedOnBehalfOf-ordering)</a></div>
<ol> <li>
<span class="conditional">IF</span>
<span class="name">actedOnBehalfOf(_del; ag2,ag1,_a,_attrs)</span>
@@ -4893,7 +4326,7 @@
<span class="name">wasInvalidatedBy(inv2; ag2,_a2,_t2,_attrs2)</span>
<span class="conditional">THEN</span>
<span class="name">gen1</span>
-<a title="precedes">precedes</a>
+<a title="precedes" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a>
<span class="name">inv2</span>.
</li><li>
<span class="conditional">IF</span>
@@ -4904,24 +4337,23 @@
<span class="name">wasEndedBy(end2; ag2,_e2,_a2,_t2,_attrs2)</span>
<span class="conditional">THEN</span>
<span class="name">start1</span>
-<a title="precedes">precedes</a>
+<a title="precedes" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-precedes" class="internalDFN">precedes</a>
<span class="name">end2</span>.
</li>
</ol>
</div>
-</section>
-
-</section>
-
-
-
-
-<span class="delete">5.3 </span><section id="type-constraints">
-<h2>Type Constraints</h2>
-
-<p id='typing_text'>The following rule establishes types denoted by identifiers from their use within expressions.
+</div>
+
+</div>
+
+
+
+<div id="type-constraints" class="section">
+<h3><span class="secno">5.3 </span>Type Constraints</h3>
+
+<p id="typing_text">The following rule establishes types denoted by identifiers from their use within expressions.
The function <span class="name">typeOf</span> gives the set of types denoted by an identifier.
That is, <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>
@@ -4931,226 +4363,221 @@
<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.
+For identifiers that do not have a type, <span class="name">typeOf</span> gives the empty set.
Identifiers can have more than one type, because of subtyping
- (e.g. <span class="name">'prov:EmptyCollection'</span> is a subtype of <span
- class="name">'prov:Collection'</span>) or because certain types are not
+ (e.g. <span class="name">'prov:EmptyCollection'</span> is a subtype of <span class="name">'prov:Collection'</span>) or because certain types are not
disjoint (such as <span class="name">'agent'</span> and <span class="name">'entity'</span>). 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 class="name">'plan'</span> and <span class="name">'bundle'</span> are omitted, and statements such as <span class="name">wasAssociatedWith</span> and <span class="name">mentionOf</span> that have plan or bundle parameters only check that these parameters are entities.
</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><span class="delete">Constraint 52 (typing)</span><span class="insert">TBD</span></span></a>
+<a class="rule-ref" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#typing"><span>Constraint 52 (typing)</span></a>
and check that none of the impossibility constraints
-<a class="rule-ref" href="#entity-activity-disjoint"><span><span class="delete">Constraint 57 (entity-activity-disjoint)</span><span class="delete"> and
-</span><span class="insert">TBD</span></span></a><span class="insert"> and
-</span><a class="rule-ref"
- href="#membership-empty-collection"><span><span class="delete">Constraint 58 (membership-empty-collection)</span><span class="insert">TBD</span></span></a> are
+<a class="rule-ref" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#entity-activity-disjoint"><span>Constraint 57 (entity-activity-disjoint)</span></a> and
+<a class="rule-ref" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#membership-empty-collection"><span>Constraint 58 (membership-empty-collection)</span></a> are
violated as a result.</p>
-<span class="delete">Constraint 52 (typing)</span><div class='constraint' id='typing'>
+<div class="constraint" id="typing"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#typing">Constraint 52 (typing)</a></div>
<ol>
<li>
-<span class='conditional'>IF</span>
- <span class='name'>entity(e,attrs)</span>
-<span class='conditional'>THEN</span>
-<span class="name">'entity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(e)</span>.
-<li>
-<span class='conditional'>IF</span>
- <span class='name'>agent(ag,attrs)</span>
-<span class='conditional'>THEN</span>
-<span class="name">'agent' <span class="delete">∈</span><span class="insert">∈</span> typeOf(ag)</span>.
-<li>
-<span class='conditional'>IF</span>
- <span class='name'>activity(a,attrs)</span>
-<span class='conditional'>THEN</span>
-<span class="name">'activity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(a)</span>.
-
-
-<li>
-
-<span class='conditional'>IF</span>
- <span class='name'>used(u; a,e,t,attrs)</span>
-<span class='conditional'>THEN</span>
-<span class="name">'activity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(a)</span> AND
-<span class="name">'entity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(e)</span>.
-
-<li>
-<span class='conditional'>IF</span>
- <span class='name'>wasGeneratedBy(gen; e,a,t,attrs)</span>
-<span class='conditional'>THEN</span>
-<span class="name">'entity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(e)</span> AND
-<span class="name">'activity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(a)</span>.
-
-<li>
-
-<span class='conditional'>IF</span>
- <span class='name'>wasInformedBy(id; a2,a1,attrs)</span>
-<span class='conditional'>THEN</span>
-<span class="name">'activity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(a2)</span> AND
-<span class="name">'activity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(a1)</span>.
-
-<li>
-
-<span class='conditional'>IF</span>
- <span class='name'>wasStartedBy(id; a2,e,a1,t,attrs)</span>
-<span class='conditional'>THEN</span>
-<span class="name">'activity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(a2)</span> AND
-<span class="name">'entity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(e)</span> AND
-<span class="name">'activity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(a1)</span>.
-
-
-
-<li>
-
-
-<span class='conditional'>IF</span>
- <span class='name'>wasEndedBy(id; a2,e,a1,t,attrs)</span>
-<span class='conditional'>THEN</span>
-<span class="name">'activity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(a2)</span> AND
-<span class="name">'entity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(e)</span> AND
-<span class="name">'activity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(a1)</span>.
-
-
-
-<li>
-<span class='conditional'>IF</span>
- <span class='name'>wasInvalidatedBy(id; e,a,t,attrs)</span>
-<span class='conditional'>THEN</span>
-<span class="name">'entity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(e)</span> AND
-<span class="name">'activity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(a)</span>.
-
-
-
-
-<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' <span class="delete">∈</span><span class="insert">∈</span> typeOf(e2)</span> AND
-<span class="name">'entity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(e1)</span> AND
-<span class="name">'activity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(a)</span>.
- In this constraint, <span class="name">a</span>, <span class="name">g2</span>, and <span class="name">u1</span> <span class="delete">must not</span><span class="insert">MUST NOT</span> be placeholders.
-
-<li>
-<span class='conditional'>IF</span>
- <span class='name'>wasDerivedFrom(id; e2, e1, -, -, -, attrs)</span>
-<span class='conditional'>THEN</span>
-<span class="name">'entity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(e2)</span> AND
-<span class="name">'entity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(e1)</span>.
-
-<li>
-<span class='conditional'>IF</span>
- <span class='name'>wasAttributedTo(id; e,ag,attr)</span>
-<span class='conditional'>THEN</span>
-<span class="name">'entity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(e)</span> AND
-<span class="name">'agent' <span class="delete">∈</span><span class="insert">∈</span> typeOf(ag)</span>.
-
-
-<li>
-<span class='conditional'>IF</span>
- <span class='name'>wasAssociatedWith(id; a,ag,pl,attrs)</span>
-<span class='conditional'>THEN</span>
-<span class="name">'activity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(a)</span> AND
-<span class="name">'agent' <span class="delete">∈</span><span class="insert">∈</span> typeOf(ag)</span> AND
-<span class="name">'entity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(pl)</span>. In this
-constraint, <span class="name">pl</span> <span class="delete">must not</span><span class="insert">MUST NOT</span> be a placeholder.
-
-<li>
-<span class='conditional'>IF</span>
- <span class='name'>wasAssociatedWith(id; a,ag,-,attrs)</span>
-<span class='conditional'>THEN</span>
-<span class="name">'activity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(a)</span> AND
-<span class="name">'agent' <span class="delete">∈</span><span class="insert">∈</span> typeOf(ag)</span>.
-
-
-
-
-<li>
-<span class='conditional'>IF</span>
- <span class='name'>actedOnBehalfOf(id; ag2,ag1,a,attrs)</span>
-<span class='conditional'>THEN</span>
-<span class="name">'agent' <span class="delete">∈</span><span class="insert">∈</span> typeOf(ag2)</span> AND
-<span class="name">'agent' <span class="delete">∈</span><span class="insert">∈</span> typeOf(ag1)</span> AND
-<span class="name">'activity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(a)</span>.
-
-
-
-
-<li>
-<span class='conditional'>IF</span>
- <span class='name'>alternateOf(e2, e1)</span>
-<span class='conditional'>THEN</span>
-<span class="name">'entity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(e2)</span> AND
-<span class="name">'entity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(e1)</span>.
-
-
-<li>
-<span class='conditional'>IF</span>
- <span class='name'>specializationOf(e2, e1)</span>
-<span class='conditional'>THEN</span>
-<span class="name">'entity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(e2)</span> AND
-<span class="name">'entity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(e1)</span>.
-
-
-<li>
-<span class='conditional'>IF</span>
- <span class='name'>mentionOf(e2,e1,b)</span>
-<span class='conditional'>THEN</span>
-<span class="name">'entity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(e2)</span> AND
-<span class="name">'entity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(e1)</span> AND
-<span class="name">'entity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(b)</span>.
-
-
-<li>
-
-<span class='conditional'>IF</span>
- <span class='name'>hadMember(c,e)</span>
-<span class='conditional'>THEN</span>
-<span class="name">'prov:Collection' <span class="delete">∈</span><span class="insert">∈</span> typeOf(c)</span> AND
-<span class="name">'entity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(c)</span> AND
-<span class="name">'entity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(e)</span>.
-
-
-<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' <span class="delete">∈</span><span class="insert">∈</span> typeOf(c)</span> AND
-<span class="name">'prov:Collection' <span class="delete">∈</span><span class="insert">∈</span> typeOf(c)</span>AND
-<span class="name">'prov:EmptyCollection' <span class="delete">∈</span><span class="insert">∈</span> typeOf(c)</span>.
-
-</ol>
+<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">used(u; a,e,t,attrs)</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">wasGeneratedBy(gen; e,a,t,attrs)</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">wasInformedBy(id; a2,a1,attrs)</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">wasStartedBy(id; a2,e,a1,t,attrs)</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">wasEndedBy(id; a2,e,a1,t,attrs)</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">wasInvalidatedBy(id; e,a,t,attrs)</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>.
+ In this constraint, <span class="name">a</span>, <span class="name">g2</span>, and <span class="name">u1</span> <em class="rfc2119" title="must not">must not</em> be placeholders.
+
+</li><li>
+<span class="conditional">IF</span>
+ <span class="name">wasDerivedFrom(id; e2, e1, -, -, -, attrs)</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">wasAttributedTo(id; e,ag,attr)</span>
+<span class="conditional">THEN</span>
+<span class="name">'entity' ∈ typeOf(e)</span> AND
+<span class="name">'agent' ∈ typeOf(ag)</span>.
+
+
+</li><li>
+<span class="conditional">IF</span>
+ <span class="name">wasAssociatedWith(id; a,ag,pl,attrs)</span>
+<span class="conditional">THEN</span>
+<span class="name">'activity' ∈ typeOf(a)</span> AND
+<span class="name">'agent' ∈ typeOf(ag)</span> AND
+<span class="name">'entity' ∈ typeOf(pl)</span>. In this
+constraint, <span class="name">pl</span> <em class="rfc2119" title="must not">must not</em> be a placeholder.
+
+</li><li>
+<span class="conditional">IF</span>
+ <span class="name">wasAssociatedWith(id; a,ag,-,attrs)</span>
+<span class="conditional">THEN</span>
+<span class="name">'activity' ∈ typeOf(a)</span> AND
+<span class="name">'agent' ∈ typeOf(ag)</span>.
+
+
+
+
+</li><li>
+<span class="conditional">IF</span>
+ <span class="name">actedOnBehalfOf(id; ag2,ag1,a,attrs)</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">'prov:Collection' ∈ typeOf(c)</span>AND
+<span class="name">'prov:EmptyCollection' ∈ typeOf(c)</span>.
+
+</li></ol>
</div>
-</section>
-
-<section id="impossibility-constraints">
-<h3><span class="delete">5.4 </span>Impossibility constraints</h3>
+</div>
+
+<div id="impossibility-constraints" class="section">
+<h3><span class="secno">5.4 </span>Impossibility constraints</h3>
<p> Impossibility constraints require that certain patterns of
-statements never appear in <a>valid</a> PROV instances. Impossibility
+statements never appear in <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-valid" class="internalDFN">valid</a> PROV instances. Impossibility
constraints have the following general form:
</p>
-<div class="constraint-example" id="impossible-example"><span class="delete">Constraint-example NNN (impossible-example)</span>
+<div class="constraint-example" id="impossible-example"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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> Checking an impossibility constraint on instance <span
- class="math">I</span> means checking whether there is
+<p> Checking an impossibility constraint on instance <span class="math">I</span> means checking 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).
-<hr />
+</p><hr>
<p id="impossible-unspecified-derivation-generation-use_text">
A derivation with unspecified activity <span class="name">wasDerivedFrom(id;e1,e2,-,g,u,attrs)</span> represents a derivation that
@@ -5158,29 +4585,26 @@
are unspecified. It is forbidden to specify a generation or use
event without specifying the activity.</p>
- <span class="delete">Constraint 53 (impossible-unspecified-derivation-generation-use)</span><div class='constraint' id="impossible-unspecified-derivation-generation-use">
-<p> In the following rules, <span class="name">g</span> and <span class="name">u</span> <span class="delete">must not</span><span class="insert">MUST NOT</span> be <span class="name">-</span>.</p>
+ <div class="constraint" id="impossible-unspecified-derivation-generation-use"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#impossible-unspecified-derivation-generation-use">Constraint 53 (impossible-unspecified-derivation-generation-use)</a></div>
+<p> In the following rules, <span class="name">g</span> and <span class="name">u</span> <em class="rfc2119" title="must not">must not</em> be <span class="name">-</span>.</p>
<ol>
<li> <span class="conditional">IF</span>
<span class="name">wasDerivedFrom(_id;_e2,_e1,-,g,-,attrs)</span>
- <span class="conditional">THEN</span> <span
- class="conditional">INVALID</span>.</li> <li> <span class="conditional">IF</span>
+ <span class="conditional">THEN</span> <span class="conditional">INVALID</span>.</li> <li> <span class="conditional">IF</span>
<span class="name">wasDerivedFrom(_id;_e2,_e1,-,-,u,attrs)</span>
- <span class="conditional">THEN</span> <span
- class="conditional">INVALID</span>.</li>
+ <span class="conditional">THEN</span> <span class="conditional">INVALID</span>.</li>
<li> <span class="conditional">IF</span>
<span class="name">wasDerivedFrom(_id;_e2,_e1,-,g,u,attrs)</span>
- <span class="conditional">THEN</span> <span
- class="conditional">INVALID</span>.</li>
+ <span class="conditional">THEN</span> <span class="conditional">INVALID</span>.</li>
</ol>
</div>
-<hr />
+<hr>
<p id="impossible-specialization-reflexive_text">As noted previously, specialization is a
- <a>strict partial order</a>: it is <a>irreflexive</a> and
- <a>transitive</a>.</p>
-
- <span class="delete">Constraint 54 (impossible-specialization-reflexive)</span><div class='constraint' id="impossible-specialization-reflexive">
+ <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-strict-partial-order" class="internalDFN">strict partial order</a>: it is <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-irreflexive" class="internalDFN">irreflexive</a> and
+ <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-transitive" class="internalDFN">transitive</a>.</p>
+
+ <div class="constraint" id="impossible-specialization-reflexive"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#impossible-specialization-reflexive">Constraint 54 (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>
</div>
@@ -5189,13 +4613,13 @@
- <hr />
-
-
- <p id='impossible-property-overlap_text'> Furthermore, identifiers
+ <hr>
+
+
+ <p id="impossible-property-overlap_text"> Furthermore, identifiers
of basic relationships are disjoint.
</p>
- <span class="delete">Constraint 55 (impossible-property-overlap)</span><div class='constraint' id='impossible-property-overlap'>
+ <div class="constraint" id="impossible-property-overlap"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#impossible-property-overlap">Constraint 55 (impossible-property-overlap)</a></div>
<p>
For each <span class="name">r</span> and <span class="name">s</span>
in {
@@ -5221,8 +4645,7 @@
properties, it is excluded from the set of properties whose
identifiers are required to be pairwise disjoint. The following
example illustrates this observation:
- <pre>
-wasInfluencedBy(id;e2,e1)
+ </p><pre>wasInfluencedBy(id;e2,e1)
wasDerivedFrom(id;e2,e1)
</pre>
<p> This satisfies the disjointness constraint.
@@ -5231,18 +4654,17 @@
constraint requiring that every influence relationship is
accompanied by a more specific relationship having the same
identifier. The following valid example illustrates this observation:
- <pre>
-wasInfluencedBy(id; e2,e1)
+ </p><pre>wasInfluencedBy(id; e2,e1)
</pre>
<p> This is valid; there is no inferrable information about what kind
of influence relates <span class="name">e2</span> and <span class="name">e1</span>, other than its identity.
</p>
</div>
- <p id='impossible-object-property-overlap_text'> Identifiers of entities,
+ <p id="impossible-object-property-overlap_text"> Identifiers of entities,
agents and activities cannot also be identifiers of properties.
</p>
- <span class="delete">Constraint 56 (impossible-object-property-overlap)</span><div class='constraint' id='impossible-object-property-overlap'>
+ <div class="constraint" id="impossible-object-property-overlap"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#impossible-object-property-overlap">Constraint 56 (impossible-object-property-overlap)</a></div>
<p>
For each <span class="name">p</span> in {<span class="name">entity</span>, <span class="name">activity</span>
or <span class="name">agent</span>} and for each <span class="name">r</span> in {
@@ -5267,65 +4689,57 @@
- <hr />
- <p id='entity-activity-disjoint_text'> The set of entities and activities are disjoint, expressed by
+ <hr>
+ <p id="entity-activity-disjoint_text"> The set of entities and activities are disjoint, expressed by
the following constraint:
</p>
- <span class="delete">Constraint 57 (entity-activity-disjoint)</span><div class='constraint' id='entity-activity-disjoint'>
+ <div class="constraint" id="entity-activity-disjoint"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#entity-activity-disjoint">Constraint 57 (entity-activity-disjoint)</a></div>
<p>
<span class="conditional">IF</span>
-<span class="name">'entity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(id)</span> AND
-<span class="name">'activity' <span class="delete">∈</span><span class="insert">∈</span> typeOf(id)</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>
</div>
<div class="remark">
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
- class="name">entity(a1)</span> and <span
- class="name">agent(a1)</span> in a valid PROV instance.
+ For example, one can assert both <span class="name">entity(a1)</span> and <span class="name">agent(a1)</span> in a valid PROV instance.
Similarly, there is no disjointness between activities and
- agents, and one can assert both <span
- class="name">activity(a1)</span> and <span
- class="name">agent(a1)</span> in a valid PROV instance.
+ agents, and one can assert both <span class="name">activity(a1)</span> and <span class="name">agent(a1)</span> in a valid PROV instance.
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
- class="name">agent(Bob, [type=prov:Person])</span> and <span
- class="name">activity(Bob)</span> is discouraged. In these cases, disjointness can be ensured by explicitly asserting the agent as both agent and entity, and applying <a class="rule-ref" href="#entity-activity-disjoint"><span><span class="delete">Constraint 57 (entity-activity-disjoint)</span><span class="insert">TBD</span></span></a>.
+ For example, asserting statements such as <span class="name">agent(Bob, [type=prov:Person])</span> and <span class="name">activity(Bob)</span> is discouraged. In these cases, disjointness can be ensured by explicitly asserting the agent as both agent and entity, and applying <a class="rule-ref" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#entity-activity-disjoint"><span>Constraint 57 (entity-activity-disjoint)</span></a>.
</div>
- <hr />
- <p id='membership-empty-collection_text'> An empty collection cannot contain any member, expressed by
+ <hr>
+ <p id="membership-empty-collection_text"> An empty collection cannot contain any member, expressed by
the following constraint:
</p>
- <span class="delete">Constraint 58 (membership-empty-collection)</span><div class='constraint' id='membership-empty-collection'>
+ <div class="constraint" id="membership-empty-collection"><div class="ruleTitle"><a class="internalDFN" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#membership-empty-collection">Constraint 58 (membership-empty-collection)</a></div>
<p> <span class="conditional">IF</span>
<span class="name">hasMember(c,e)</span> and
-<span class="name">'prov:EmptyCollection' <span class="delete">∈</span><span class="insert">∈</span> typeOf(c)</span>
+<span class="name">'prov:EmptyCollection' ∈ typeOf(c)</span>
<span class="conditional">THEN</span> <span class="conditional">INVALID</span>.</p>
</div>
-</section>
-
-
-</section>
-
- <section id="normalization-validity-equivalence">
-<h2><span class="delete">6. </span>Normalization, Validity, and Equivalence</h2>
-
-
- <p>We define the notions of <a title="normal form">normalization</a>, <a
-title="valid">validity</a> and
+</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="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-normal-form" class="internalDFN">normalization</a>, <a title="valid" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-valid" class="internalDFN">validity</a> and
<a title="equivalence">equivalence</a> of PROV documents and instances. We first define these concepts
for PROV instances and then extend them to PROV documents.</p>
-
- <span class="delete">6.1 </span><section id="instance">
- <h2>Instances</h2>
+<div id="instance" class="section">
+ <h3><span class="secno">6.1 </span>Instances</h3>
<div class="remark">
Implementations should decide up front what reasoning about
@@ -5339,7 +4753,7 @@
reasoning).
</div>
-<p> We define the <dfn>normal form</dfn> of a PROV instance as the set
+<p> We define the <dfn id="dfn-normal-form">normal form</dfn> of a PROV instance as the set
of provenance statements resulting from applying all definitions,
inferences, and uniqueness constraints.</p>
@@ -5358,8 +4772,7 @@
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 <span class="insert">unifying terms or </span>merging<span class="delete"> terms or</span> statements
+ Apply all uniqueness constraints to <span class="math">I<sub>2</sub></span> by <span class="insert">unifying terms or </span>merging<span class="delete"> terms or</span> 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
applied, then normalization fails.
@@ -5368,7 +4781,7 @@
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>).
- </ol>
+ </li></ol>
<p>Because of the potential interaction among definitions, inferences, and
constraints, the above algorithm is recursive. Nevertheless,
@@ -5376,9 +4789,9 @@
dependencies</a> and <a>equality-generating dependencies</a> that
satisfy a termination condition called <a>weak acyclicity</a> that
has been studied in the context of relational databases
- <span class="delete">[</span><span class="delete">DBCONSTRAINTS</span><span class="delete">].</span><span class="insert">[[DBCONSTRAINTS]].</span> Therefore, the above algorithm terminates, independently
+ [<cite><a class="bibref" rel="biblioentry" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#bib-DBCONSTRAINTS">DBCONSTRAINTS</a></cite>]. 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
+ <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#termination">Appendix C</a> gives a proof that normalization terminates and produces
a unique (up to isomorphism) normal form.
</p>
@@ -5393,22 +4806,22 @@
<ol>
<li>Normalize the instance <span class="math">I</span>, obtaining normalized instance <span class="math">I'</span>. If
- normalization fails, then <span class="math">I</span> is not <a>valid</a>.
+ normalization fails, then <span class="math">I</span> is not <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-valid" class="internalDFN">valid</a>.
</li>
<li>Apply all event ordering constraints to <span class="math">I'</span> to build a graph <span class="math">G</span> 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>valid</a>.
+ "strictly precedes" edge. If so, then <span class="math">I</span> is not <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-valid" class="internalDFN">valid</a>.
</li>
- <li>Apply the type constraints <a href="#type-constraints">(section
+ <li>Apply the type constraints <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#type-constraints">(section
5.3)</a> to determine whether there are any violations of
- disjointness. If so, then <span class="math">I</span> is not <a>valid</a>.
- <li>
- Check that none of the impossibility constraints <a href="#impossibility-constraints">(section 5.4)</a> are
+ disjointness. If so, then <span class="math">I</span> is not <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-valid" class="internalDFN">valid</a>.
+ </li><li>
+ Check that none of the impossibility constraints <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#impossibility-constraints">(section 5.4)</a> are
violated. If any are violated, then <span class="math">I</span> is
- not <a>valid</a>. Otherwise, <span class="math">I</span> is <a>valid</a><span class="insert">.</span>
+ not <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-valid" class="internalDFN">valid</a>. Otherwise, <span class="math">I</span> is <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-valid" class="internalDFN">valid</a><span class="insert">.</span>
</li>
</ol>
@@ -5416,13 +4829,13 @@
constraint fails due to<span class="insert"> unification or</span> merging failure. </p>
- <p>Two PROV instances <span class="math"><span class="insert">I</span></span><span class="insert"> and </span><span class="math"><span class="insert">I'</span></span> are <dfn><span class="insert">isomorphic</span></dfn><span class="insert"> if
+ <p>Two PROV instances <span class="math"><span class="insert">I</span></span><span class="insert"> and </span><span class="math"><span class="insert">I'</span></span><span class="insert"> are </span><dfn id="dfn-isomorphic"><span class="insert">isomorphic</span></dfn><span class="insert"> if
there exists an invertible substitution </span><span class="math"><span class="insert">S</span></span><span class="insert"> that maps each
variable of </span><span class="math"><span class="insert">I</span></span><span class="insert"> to a distinct variable of </span><span class="math"><span class="insert">I'</span></span><span class="insert"> and such that
</span><span class="math"><span class="insert">S(I) = I'</span></span><span class="insert">.</span></p>
-<p><span class="insert"> Two </span><a><span class="insert">valid</span></a><span class="insert"> PROV instances are </span><dfn>equivalent</dfn> if they
- have <a>isomorphic</a> normal <span class="delete">forms (that</span><span class="insert">forms. That</span> is, after applying all possible inference
+<p><span class="insert"> Two </span><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-valid" class="internalDFN"><span class="insert">valid</span></a><span class="insert"> PROV instances </span>are <dfn id="dfn-equivalent">equivalent</dfn> if they
+ have <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-isomorphic" class="internalDFN">isomorphic</a> normal <span class="delete">forms (that</span><span class="insert">forms. That</span> 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 <span class="delete">variables).
@@ -5430,11 +4843,11 @@
</span></p>
<p>Equivalence <span class="insert">can also be checked over pairs of PROV instances that
are not necessarily valid, subject to the following rules:
- </span><ul>
+ </span></p><ul>
<li><span class="insert">If both are valid, then equivalence is
defined above.</span></li>
<li><span class="insert">If both are invalid, then equivalence can be
- implemented in any way provided it is </span><a><span class="insert">reflexive</span></a><span class="insert">, </span><a><span class="insert">symmetric</span></a><span class="insert">, and </span><a><span class="insert">transitive</span></a><span class="insert">.
+ implemented in any way provided it is </span><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-reflexive" class="internalDFN"><span class="insert">reflexive</span></a><span class="insert">, </span><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-symmetric" class="internalDFN"><span class="insert">symmetric</span></a><span class="insert">, and </span><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-transitive" class="internalDFN"><span class="insert">transitive</span></a><span class="insert">.
</span></li>
<li><span class="insert">If one instance is valid and the other is invalid, then the two
instances are not equivalent.</span></li>
@@ -5464,15 +4877,15 @@
<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 title="unification"><span class="insert">unifying</span></a><span class="insert"> two terms or </span><a>merging</a> two statements to
+ inference rule or definition, or by <a title="unification" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-unification" class="internalDFN"><span class="insert">unifying</span></a><span class="insert"> two terms or </span><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-merging" class="internalDFN">merging</a> two statements to
enforce a uniqueness constraint.
</li>
- <li>Equivalence is <a>reflexive</a>, <a>symmetric</a>, and
- <a>transitive</a>.<span class="insert"> (This is because a valid instance has a unique
- normal form up to isomorphism [[DBCONSTRAINTS]]). </span></li>
+ <li>Equivalence is <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-reflexive" class="internalDFN">reflexive</a>, <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-symmetric" class="internalDFN">symmetric</a>, and
+ <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-transitive" class="internalDFN">transitive</a>.<span class="insert"> (This is because a valid instance has a unique
+ normal form up to isomorphism [</span><cite><a class="bibref" rel="biblioentry" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#bib-DBCONSTRAINTS"><span class="insert">DBCONSTRAINTS</span></a></cite><span class="insert">]). </span></li>
</ul>
-<p> An application that processes PROV data <span class="delete">should</span><span class="insert">SHOULD</span> handle
+<p> An application that processes PROV data <em class="rfc2119" title="should">should</em> handle
equivalent instances in the same way.<span class="delete"> (Common</span><span class="insert"> This guideline is necessarily
imprecise because "in the same way" is application-specific.
Common</span> exceptions to this <span class="delete">rule</span><span class="insert">guideline</span>
@@ -5481,11 +4894,10 @@
provenance, where the</span> order <span class="insert">and syntactic form </span>of statements <span class="delete">in a file and avoid expanding
inferences.)</span><span class="insert">matters.</span> </p>
-</section>
-
-
-<span class="delete">6.2 </span><section id="bundle-constraints">
-<h2>Bundles and Documents</h2>
+</div>
+
+<div id="bundle-constraints" class="section">
+<h3><span class="secno">6.2 </span>Bundles and Documents</h3>
<p>The definitions, inferences, and constraints, and
@@ -5501,8 +4913,7 @@
<p> We model a general PROV document, 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>
+<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>toplevel instance</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>. Names <span class="name">b<sub>1</sub>...b<sub>n</sub></span> are assumed to be distinct. This notation is shorthand for the
@@ -5522,74 +4933,73 @@
-<p> The <a>normal form</a> of a PROV document
+<p> The <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-normal-form" class="internalDFN">normal form</a> of a PROV document
<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 PROV document is <a>valid</a> if each of the bundles <span class="name">B<sub>0</sub></span>,
+<p>A PROV document is <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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) PROV documents <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>equivalent</a> if <span class="name">B<sub>0</sub></span> is
+<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="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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} <span class="delete">-></span><span class="insert">-></span> {1..n}</span> such that for each <span class="name">i</span>, <span class="name">b<sub>i</sub> =
+there exists a permutation <span class="name">P : {1..n} -> {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>
-</section>
-
-
-</section>
-
-
-
-
-
-
-
-
-
-
-
-<section class="glossary">
- <h2><span class="delete">7. </span>Glossary</h2>
+</div>
+
+
+</div>
+
+
+
+
+
+
+
+
+
+
+
+<div class="glossary section" id="glossary">
+ <h2><span class="secno">7. </span>Glossary</h2>
<ul>
- <li> <dfn>antisymmetric</dfn>: A relation <span class="math">R</span> over <span class="math">X</span> is <a>antisymmetric</a> if
+ <li> <dfn id="dfn-antisymmetric">antisymmetric</dfn>: A relation <span class="math">R</span> over <span class="math">X</span> is <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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>asymmetric</dfn>: A relation <span class="math">R</span> over <span class="math">X</span> is <a>asymmetric</a> if
+ <li> <dfn id="dfn-asymmetric">asymmetric</dfn>: A relation <span class="math">R</span> over <span class="math">X</span> is <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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>equivalence relation</dfn>: An equivalence relation is a relation
- that is <a>reflexive</a>, <a>symmetric</a>, and
- <a>transitive</a>.</li>
- <li> <dfn>irreflexive</dfn>: A relation <span class="math">R</span> over <span class="math">X</span> is <a>irreflexive</a> if
+ <li><dfn id="dfn-equivalence-relation">equivalence relation</dfn>: An equivalence relation is a relation
+ that is <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-reflexive" class="internalDFN">reflexive</a>, <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-symmetric" class="internalDFN">symmetric</a>, and
+ <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-transitive" class="internalDFN">transitive</a>.</li>
+ <li> <dfn id="dfn-irreflexive">irreflexive</dfn>: A relation <span class="math">R</span> over <span class="math">X</span> is <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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>reflexive</dfn>: A relation <span class="math">R</span> over <span class="math">X</span> is <a>reflexive</a> if
+ <li> <dfn id="dfn-reflexive">reflexive</dfn>: A relation <span class="math">R</span> over <span class="math">X</span> is <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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>partial order</dfn>: A partial order is a relation
- that is <a>reflexive</a>, <a>antisymmetric</a>, and <a>transitive</a>.</li>
- <li><dfn>preorder</dfn>: A preorder is a relation that is
- <a>reflexive</a> and <a>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
+ <li><dfn id="dfn-partial-order">partial order</dfn>: A partial order is a relation
+ that is <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-reflexive" class="internalDFN">reflexive</a>, <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-antisymmetric" class="internalDFN">antisymmetric</a>, and <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-transitive" class="internalDFN">transitive</a>.</li>
+ <li><dfn id="dfn-preorder">preorder</dfn>: A preorder is a relation that is
+ <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-reflexive" class="internalDFN">reflexive</a> and <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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>strict partial order</dfn>: A strict partial order is a
- relation that is <a>irreflexive</a>, <a>asymmetric</a> and <a>transitive</a>.</li>
- <li><dfn>strict preorder</dfn>: A strict preorder is a relation
- that is <a>irreflexive</a> and <a>transitive</a>.</li>
- <li> <dfn>symmetric</dfn>: A relation <span class="math">R</span> over <span class="math">X</span> is <a>symmetric</a> if
+ <li><dfn id="dfn-strict-partial-order">strict partial order</dfn>: A strict partial order is a
+ relation that is <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-irreflexive" class="internalDFN">irreflexive</a>, <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-asymmetric" class="internalDFN">asymmetric</a> and <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-irreflexive" class="internalDFN">irreflexive</a> and <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#dfn-transitive" class="internalDFN">transitive</a>.</li>
+ <li> <dfn id="dfn-symmetric">symmetric</dfn>: A relation <span class="math">R</span> over <span class="math">X</span> is <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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>
- <li> <dfn>transitive</dfn>: A relation <span class="math">R</span> over <span class="math">X</span> is <a>transitive</a> if
+ <li> <dfn id="dfn-transitive">transitive</dfn>: A relation <span class="math">R</span> over <span class="math">X</span> is <a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#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>
</ul>
- </section>
-
-
- <section class="appendix informative" id="termination">
- <h2><span class="delete">A. </span>Termination of normalization</h2><span class="delete">This section is non-normative.</span>
+ </div>
+
+
+ <div class="appendix informative section" id="termination">
+ <h2><span class="secno">A. </span>Termination of normalization</h2><p><em>This section is non-normative.</em></p>
<p>
We will show that normalization terminates, that is, that
@@ -5611,7 +5021,7 @@
<p><b>Termination for instances without attributes.</b> For
these instances, uniqueness and key constraints can be
- As shown in <span class="delete">[</span><span class="delete">DBCONSTRAINTS</span><span class="delete">],</span><span class="insert">[[DBCONSTRAINTS]],</span> termination of normalization can be
+ As shown in [<cite><a class="bibref" rel="biblioentry" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#bib-DBCONSTRAINTS">DBCONSTRAINTS</a></cite>], termination of normalization can be
shown by checking that the inference rules are <em>weakly
acyclic</em>. In addition, weak acyclicity can be checked
in a modular fashion for our system, because there are only a few possible
@@ -5622,7 +5032,7 @@
</p>
<table border="1">
- <tr>
+ <tbody><tr>
<th>Stage #</th>
<th>Inference</th>
<th>Hypotheses</th>
@@ -5671,17 +5081,17 @@
<td class="name">wasInfluencedBy</td>
</tr>
- </table>
+ </tbody></table>
<p>
For each stage, we show that the stage is weakly acyclic.
- <ul><li>Stages 1 and 5 have no rules with existential quantifiers,
+ </p><ul><li>Stages 1 and 5 have no rules with existential quantifiers,
so they are weakly acyclic.
</li>
<li>Stages 2, 3, 4, and 7 have no cycles among the formulas
involved, so they are weakly acyclic.
</li>
<li>For stage 6, we check weak acyclicity using the algorithm
- in <span class="delete">[</span><span class="delete">DBCONSTRAINTS</span><span class="delete">],</span><span class="insert">[[DBCONSTRAINTS]],</span> namely:
+ in [<cite><a class="bibref" rel="biblioentry" href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#bib-DBCONSTRAINTS">DBCONSTRAINTS</a></cite>], namely:
<ul><li> Given a formula <span class="math">φ(x<sub>1</sub>,...,x<sub>n</sub>) ⇒
∃y<sub>1</sub>,...,y<sub>m</sub>. ψ(x<sub>1</sub>,...,x<sub>n</sub>,y<sub>1</sub>,...,y<sub>m</sub>)</span></li>
<li>For every <span class="math">x</span> that occurs in <span class="math">ψ</span>, and for every
@@ -5702,16 +5112,15 @@
edge in the resulting graph. For the two inferences in stage 6,
the following dependency graph witnesses weak
acyclicity. The nodes <span class="name">wasGeneratedBy.i</span>,
- <span class="name">wasInformedBy.i</span>, and <span
- class="name">used.i</span> denote the <span class="math">i</span>th arguments
+ <span class="name">wasInformedBy.i</span>, and <span class="name">used.i</span> denote the <span class="math">i</span>th arguments
of the corresponding predicates. The solid edges are ordinary
edges, and the dashed edges are <em>special</em> edges.
</li>
</ul>
- <img src="images/constraints/weak-acyclic-6.svg" alt="Graph illustrating weak
- acyclicity of stage 6"/>
+ <img src="./prov-constraints_files/weak-acyclic-6.svg" alt="Graph illustrating weak
+ acyclicity of stage 6">
<p><b>Termination for instances with attributes.</b>
We can translate an instance with attributes to an alternative,
@@ -5728,10 +5137,10 @@
lead to an infinite sequence of translated normalization steps
on instances with explicit attributes.
</p>
-</section>
-
-<section class="appendix">
- <h2><span class="delete">B. </span><span class="insert">Changes since last version</span></h2>
+</div>
+
+<div class="appendix section" id="changes-since-last-version">
+ <h2><span class="secno"><span class="insert">B. </span></span><span class="insert">Changes since last version</span></h2>
<ul>
<li><span class="insert">Abstract: clarified that term "validity" is analogous to other
@@ -5759,8 +5168,8 @@
<li><span class="insert">Sec. 4. Avoided reference to RDF, minor clarifications to
discussion of existential variables. </span></li>
<li><span class="insert">Sec. 4.1. Spelling correction.</span></li>
- <li><span class="insert">Sec. 4.4. Merging -> unification</span></li>
- <li><span class="insert">Sec. 5. Merging -> unification terminology change. Added
+ <li><span class="insert">Sec. 4.4. Merging -> unification</span></li>
+ <li><span class="insert">Sec. 5. Merging -> unification terminology change. Added
declarative definition of unification. Clarified
procedural definition. Removed definition of merging of attribute
lists. Updated descriptions of uniqueness and key constraint application.</span></li>
@@ -5769,7 +5178,7 @@
<li><span class="insert">Sec. 5.2. Spelling</span></li>
<li><span class="insert">Sec. 5.2, just before constraint 51: updated text to accurately
describe constraint.</span></li>
- <li><span class="insert">Sec. 6. Merging -> unification. Updated definition of validity
+ <li><span class="insert">Sec. 6. Merging -> unification. Updated definition of validity
to avoid referring to "satisfies". Explicitly defined isomorphism
of instances. Broadened the definition of equivalence so that it is
allowed to test arbitrary instances for equivalence. Reinforce the
@@ -5779,13 +5188,13 @@
<li><span class="insert">Made PROV-DM and PROV-N into normative references.</span></li>
</ul>
-</section>
+</div>
-<section class="appendix">
- <h2>Acknowledgements</h2>
+<div class="appendix section" id="acknowledgements">
+ <h2><span class="secno"><span class="delete">B.</span><span class="insert">C.</span> </span>Acknowledgements</h2>
<p>
-This document has been produced by the PROV Working Group, and its contents reflect extensive discussion within the Working Group as a whole. The editors extend special thanks to Ivan Herman <span class="delete">(</span><span class="delete">W3C</span><span class="delete">/</span><span class="delete">ERCIM</span><span class="delete">),</span><span class="insert">(W3C/ERCIM),</span> Paul Groth, Tim Lebo, Simon Miles, Stian Soiland-Reyes, for their thorough reviews.
+This document has been produced by the PROV Working Group, and its contents reflect extensive discussion within the Working Group as a whole. The editors extend special thanks to Ivan Herman (<acronym title="World Wide Web Consortium">W3C</acronym>/<acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym>), Paul Groth, Tim Lebo, Simon Miles, Stian Soiland-Reyes, for their thorough reviews.
</p>
<p>
@@ -5812,9 +5221,9 @@
Paul Groth (Vrije Universiteit),
Olaf Hartig (Invited expert),
David Hau (National Cancer Institute, NCI),
-Sandro Hawke <span class="delete">(</span><span class="delete">W3C</span><span class="delete">/</span><span class="delete">MIT</span><span class="delete">),</span><span class="insert">(W3C/MIT),</span>
+Sandro Hawke (<acronym title="World Wide Web Consortium">W3C</acronym>/<acronym title="Massachusetts Institute of Technology">MIT</acronym>),
Jörn Hees (German Research Center for Artificial Intelligence (DFKI) Gmbh),
-Ivan Herman, <span class="delete">(</span><span class="delete">W3C</span><span class="delete">/</span><span class="delete">ERCIM</span><span class="delete">),</span><span class="insert">(W3C/ERCIM),</span>
+Ivan Herman, (<acronym title="World Wide Web Consortium">W3C</acronym>/<acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym>),
Ralph Hodgson (TopQuadrant),
Hook Hua (Invited expert),
Trung Dong Huynh (University of Southampton),
@@ -5849,7 +5258,7 @@
Jun Zhao (University of Oxford),
Yuting Zhao (University of Aberdeen, Computing Science).
</p>
-
+ </div>
@@ -5874,44 +5283,45 @@
-<span class="delete">C. </span><span class="delete">References</span><span class="delete">C.1 </span><span class="delete">Normative references</span><span class="delete">[IRI]</span><span class="delete">M. Duerst, M. Suignard. </span><span class="delete">Internationalized Resource Identifiers (IRI).</span><span class="delete"> January 2005. Internet RFC 3987. URL: </span><span class="delete">http://www.ietf.org/rfc/rfc3987.txt</span>
-<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>
-<span class="delete">[RFC2119]</span><span class="delete">S. Bradner. </span><span class="delete">Key words for use in RFCs to Indicate Requirement Levels.</span><span class="delete"> March 1997. Internet RFC 2119. URL: </span><span class="delete">http://www.ietf.org/rfc/rfc2119.txt</span>
-<span class="delete">C.2 </span><span class="delete">Informative references</span><span class="delete">[CHR]</span><span class="delete">Thom Frühwirth </span><span class="delete">Constraint Handling Rules</span><span class="delete">. Cambridge University Press URL: </span><span class="delete">http://constraint-handling-rules.org/</span>
-<span class="delete">[CLOCK]</span><span class="delete">Lamport, L. </span><span class="delete">Time, clocks, and the ordering of events in a distributed system</span><span class="delete">. Communications of the ACM 21 (7): 558–565. 1978. URL: </span><span class="delete">http://research.microsoft.com/users/lamport/pubs/time-clocks.pdf</span><span class="delete"> DOI: doi:10.1145/359545.359563.
-</span><span class="delete">[DBCONSTRAINTS]</span><span class="delete"> Ronald Fagin, Phokion G. Kolaitis, Renée J. Miller, and Lucian Popa </span><span class="delete">Data exchange: Semantics and query answering</span><span class="delete">. Theoretical computer science 336(1):89-124 Elsevier URL: </span><span class="delete">http://dx.doi.org/10.1016/j.tcs.2004.10.033</span>
-<span class="delete">[Logic]</span><span class="delete">W. E. Johnson</span><span class="delete">Logic: Part III</span><span class="delete">.1924. URL: </span><span class="delete">http://www.ditext.com/johnson/intro-3.html</span>
-<span class="delete">[PROV-DM]</span><span class="delete">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><span class="delete">PROV-DM: The PROV Data Model</span><span class="delete">. 2012, Working Draft. URL: </span><span class="delete">http://www.w3.org/TR/prov-dm/</span>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div id="references" class="appendix section"><h2><span class="secno"><span class="delete">C.</span><span class="insert">D.</span> </span>References</h2><div id="normative-references" class="section"><h3><span class="secno"><span class="delete">C.1</span><span class="insert">D.1</span> </span>Normative references</h3><dl class="bibliography"><dt id="bib-IRI">[IRI]</dt><dd>M. Duerst, M. Suignard. <a href="http://www.ietf.org/rfc/rfc3987.txt"><cite>Internationalized Resource Identifiers (IRI).</cite></a> January 2005. Internet RFC 3987. URL: <a href="http://www.ietf.org/rfc/rfc3986.txt">http://www.ietf.org/rfc/rfc3987.txt</a>
+</dd><span class="delete">[RDF]</span><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, </span>Graham <span class="delete">Klyne and Jeremy J. Carroll (eds.) </span><span class="insert">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="delete">Resource Description Framework (RDF): Concepts and Abstract Syntax</span><span class="insert">PROV-DM: The PROV Data Model</span></cite></a>. <span class="delete">2004, W3C Recommendation.</span><span class="insert">2012, Working Draft.</span> URL: <span class="delete">http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/</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-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">C.2</span><span class="insert">D.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><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><span class="delete">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><span class="delete">PROV-DM: The PROV Data Model</span><span class="delete">. 2012, Working Draft. URL: </span><span class="delete">http://www.w3.org/TR/prov-dm/</span>
<span class="delete">[PROV-N]</span><span class="delete">Luc Moreau and Paolo Missier (eds.), James Cheney, Stian Soiland-Reyes </span><span class="delete">PROV-N: The Provenance Notation</span><span class="delete">. 2011, Working Draft. URL: </span><span class="delete">http://www.w3.org/TR/prov-n/</span>
-<span class="delete">[PROV-O]</span><span class="delete">Timothy Lebo, Satya Sahoo and Deborah McGuinness (eds.) Khalid Belhajjame, James Cheney, David Corsar, Daniel Garijo, Stian Soiland-Reyes, and Stephan Zednik </span><span class="delete">Provenance Formal Model</span><span class="delete">. 2011, Working Draft. URL: </span><span class="delete">http://www.w3.org/TR/prov-o/</span>
-<span class="delete">[PROV-SEM]</span><span class="delete">James Cheney </span><span class="delete">Formal Semantics Strawman</span><span class="delete">. 2011, Work in progress. URL: </span><span class="delete">http://www.w3.org/2011/prov/wiki/FormalSemanticsStrawman</span>
-</section>
-
- </body></html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+<dt id="bib-PROV-O">[PROV-O]</dt><dd>Timothy Lebo, Satya Sahoo and Deborah McGuinness (eds.) Khalid Belhajjame, James Cheney, David Corsar, Daniel Garijo, Stian Soiland-Reyes, and Stephan Zednik <a href="http://www.w3.org/TR/prov-o/"><cite>Provenance Formal Model</cite></a>. 2011, Working Draft. URL: <a href="http://www.w3.org/TR/prov-o/">http://www.w3.org/TR/prov-o/</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></dl></div></div></body></html>
+