invalidation proposal
authorLuc Moreau <l.moreau@ecs.soton.ac.uk>
Wed, 04 Apr 2012 12:07:20 +0100
changeset 2245 599683d24f29
parent 2244 31fd8c77c47b
child 2246 0afc41cfc687
invalidation proposal
model/working-copy/wd5-prov-invalidation.html
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/model/working-copy/wd5-prov-invalidation.html	Wed Apr 04 12:07:20 2012 +0100
@@ -0,0 +1,390 @@
+<!DOCTYPE html>
+
+<html><head> 
+    <title>PROV-DM PROPOSAL on Entity Invalidation</title> 
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
+    <!-- 
+      === NOTA BENE ===
+      For the three scripts below, if your spec resides on dev.w3 you can check them
+      out in the same tree and use relative links so that they'll work offline,
+     -->
+<!-- PM -->
+    <style type="text/css">
+      .note { font-size:small; margin-left:50px }
+     </style>
+
+    <script src="http://dev.w3.org/2009/dap/ReSpec.js/js/respec.js" class="remove"></script> 
+    <script src="http://www.w3.org/2007/OWL/toggles.js" class="remove"></script> 
+    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" class="remove"></script>
+
+    <script src="../glossary.js" class="remove"></script>
+
+    <script class="remove">
+      function updateGlossaryRefs() {
+        $('.glossary-ref').each(function(index) {
+          var ref=$(this).attr('ref');
+          var span=$(this).attr('withspan')
+          $('#'+ref+'.glossary').contents().clone().appendTo($(this));
+          $(this).attr('prov:hadOriginalSource',glossary_hg);
+          if (span) {
+            $(this).children('dfn').replaceWith(function(){return $('<span>').addClass('dfn').append($(this).contents())});
+          }
+        });
+      }
+      $(document).ready(function(){
+        // if glossary is in a string:
+        $('#glossary_div').html(glossary_string)
+        updateGlossaryRefs();
+      });
+
+    </script>
+
+    <script class="remove"> 
+      var addExtraReferences = function() {
+          for (var k in extraReferences)
+              berjon.biblio[k] = extraReferences[k];
+      };
+      var extraReferences = {
+        "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>",
+        "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-O":
+          "Satya Sahoo and Deborah McGuinness (eds.) Khalid Belhajjame, James Cheney, Daniel Garijo, Timothy Lebo, 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-DM":
+          "Luc Moreau and Paolo Missier (eds.) ... "+
+          "<a href=\"http://www.w3.org/TR/prov-dm/\"><cite>PART 1: PROV-DM ...</cite></a>. "+
+          "2011, Working Draft. "+
+          "URL: <a href=\"http://www.w3.org/TR/prov-dm/\">http://www.w3.org/TR/prov-dm/</a>",
+
+
+        "PROV-DM-CONSTRAINTS":
+          "Luc Moreau and Paolo Missier (eds.) ... "+
+          "<a href=\"http://www.w3.org/TR/prov-dm-constraints/\"><cite>PROV-DM Constraints</cite></a>. "+
+          "2011, Working Draft. "+
+          "URL: <a href=\"http://www.w3.org/TR/prov-dm-constraints/\">http://www.w3.org/TR/prov-dm-constraints/</a>",
+
+        "PROV-ASN":
+          "Luc Moreau and Paolo Missier (eds.) ... "+
+          "<a href=\"http://www.w3.org/TR/prov-asn/\"><cite>PROV-ASN ....</cite></a>. "+
+          "2011, Working Draft. "+
+          "URL: <a href=\"http://www.w3.org/TR/prov-asn/\">http://www.w3.org/TR/prov-asn/</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>",
+      };
+      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-dm",
+ 
+          // if your specification has a subtitle that goes below the main
+          // formal title, define it here
+          subtitle   :  "Draft proposal (to be incorporated in Editor's Draft when approved)",
+
+ 
+          // if you wish the publication date to be other than today, set this
+          // publishDate:  "2011-10-18",
+ 
+          // if the specification's copyright date is a range of years, specify
+          // the start date here:
+          // copyrightStart: "2005"
+ 
+          // if there is a previously published draft, uncomment this and set its YYYY-MM-DD date
+          // and its maturity status
+          previousPublishDate:  "2012-02-02",
+          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-dm.html",
+ 
+          // if this is a LCWD, uncomment and set the end of its review period
+          // lcEnd: "2009-08-05",
+ 
+          // 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: "Luc Moreau", url: "http://www.ecs.soton.ac.uk/~lavm/",
+                company: "University of Southampton" },
+              { name: "Paolo Missier", url: "http://www.cs.ncl.ac.uk/people/Paolo.Missier",
+                company: "Newcastle University" },
+          ],
+ 
+          // authors, add as many as you like. 
+          // This is optional, uncomment if you have authors as well as editors.
+          // only "name" is required. Same format as editors.
+ 
+          authors:  [
+              { name: "Khalid Belhajjame", url: "http://semanticweb.org/wiki/Khalid_Belhajjame",
+                company: "University of Manchester" },
+              { name: "Stephen Cresswell",
+                company: "legislation.gov.uk"},
+              { name: "Yolanda Gil",
+                company: "Invited Expert", url:"http://www.isi.edu/~gil/"},
+              { name: "Reza B'Far",
+                company: "Oracle Corporation" },
+              { name: "Paul Groth", url: "http://www.few.vu.nl/~pgroth/",
+                company: "VU University of Amsterdam" },
+              { name: "Graham Klyne",
+                company: "University of Oxford" },
+              { name: "Jim McCusker", url: "http://tw.rpi.edu/web/person/JamesMcCusker",
+                company: "Rensselaer Polytechnic Institute" },
+              { name: "Simon Miles", 
+                company: "Invited Expert", url:"http://www.inf.kcl.ac.uk/staff/simonm/" },
+              { name: "James Myers", url:"http://www.rpi.edu/research/ccni/",
+                company: "Rensselaer Polytechnic Institute"},
+              { name: "Satya Sahoo", url:"http://cci.case.edu/cci/index.php/Satya_Sahoo",
+                company: "Case Western Reserve 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-wg",
+          
+          // 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],
+      };
+    </script> 
+  </head> 
+  <body> 
+
+    <section id="abstract">
+    </section> 
+
+<section id="sotd">
+<div class="note">PROPOSALS TO VOTE ON</div>
+</section>
+
+
+<section id="Proposal: On Entity Invalidation">
+<h4>Proposal: On Entity Invalidation: new Section 4.1.7</h4>
+
+<h4>4.1.7: Invalidation</h4>
+
+<p>
+Activities have a start and an end. Entities also have a duration. Generation marks the beginning of an entity. The end of an entity can occur for different reasons.
+<ul>
+<li> an entity was destroyed: e.g. a painting was destroyed by fire; a Web page is taken out of site;
+<li> an entity was consumed: e.g. Bob ate all his soup, Alice ran out of gas when driving to work;
+<li> an entity expires: e.g. a "buy one beer, get one free" offer is valid during happy hour (7-8pm);
+<li> an entity is time limited: e.g. a the BBC news Web site on April 3rd, 2012;
+<li> an entity attribute is changing: e.g. the traffic light changed from green to red.
+</ul>
+In the first two cases, the entity has physically disappeared after its termination: there is no more soup, or painting.  In the last two cases, there may be an "offer voucher" that still exists, but it is no longer valid; likewise, on April 4th, the BBC new Web site still exists but it is not the same entity as BBC news Web site on April 3rd; or the traffic light became red and therefore is regarded as a different entity to the green light.
+</p>
+
+<p>
+<dfn id="concept-invalidation">Invalidation</dfn>
+is the start of the destruction, cessation, or expiry of an existing entity by an activity.
+The entity is no longer available for use after invalidation. Any generation or usage of an entity precedes its invalidation. 
+</p>
+
+
+<p>
+<div class="attributes" id="attributes-invalidation"><dfn title="dfn-Invalidation">Invalidation</dfn><span class="withAsn">, written <span class="pnExpression">wasInvalidatedBy(id,e,a,t,attrs)</span> in PROV-ASN,</span> has the following components:</p>
+<ul>
+<li><span class='attribute'>id</span>:  an OPTIONAL identifier for a invalidation;</li> 
+<li><span class='attribute'>entity</span>:  an identifier for the invalidated entity; </li>
+<li><span class='attribute'>activity</span>:  an OPTIONAL identifier for the activity that invalidated the entity;</li>
+
+<li><span class='attribute'>time</span>: an OPTIONAL "invalidation time", the time at which the entity began to be invalidated;</li>
+
+<li><span class='attribute'>attributes</span>:  an OPTIONAL set of attribute-value pairs that describes the modalities of invalidation of this entity by this activity.</li>
+</ul></div>
+<p>While each of the components <span class='attribute'>activity</span>, <span class='attribute'>time</span>, and  <span class='attribute'>attributes</span> is OPTIONAL, at least one of them MUST be present.</p>
+
+
+
+<div class="anexample" id="anexample-invalidation1">
+<p>
+Picasso's painting"The Painter" is known to have been destroyed in a <a href="http://en.wikipedia.org/wiki/Lost_artworks#20th_century">plane accident</a>.
+
+<pre class="codeexample">
+entity(ex:The-Painter)
+agent(ex:Picasso)
+wasAttributedTo(ex:The-Painter, ex:Picasso)
+activity(ex:crash)
+wasInvalidatedBy(ex:The-Painter, ex:crash, 1998-09-02, [ex:circumstances="plane accident"])
+</pre>
+</div>
+
+<div class="anexample" id="anexample-invalidation2">
+<p>
+The BBC news home page on 2012-04-03 <span class="name">ex:bbcNews2012-04-03</span>
+contains a reference to a given news item
+ <a href="http://www.bbc.co.uk/news/uk-17595024">bbc:news/uk-17595024</a>,
+but the BBC news home page on the next day does not.
+<pre class="codeexample">
+entity(ex:bbcNews2012-04-03)
+memberOf(ex:bbcNews2012-04-03,{("item1", bbc:news/uk-17595024)})
+wasGeneratedBy  (ex:bbcNews2012-04-03,-,2012-04-03T00:00:01)
+wasInvalidatedBy(ex:bbcNews2012-04-03,-,2012-04-03T23:59:59)
+</pre>
+We refer to example (<a href="#anexample-specialization">anexample-specialization</a> for further descriptions of the BBC Web site, and to Section <a>Membership</a> for a description of the relation <a>memberOf</a>).
+</div>
+
+
+<div class="anexample" id="anexample-invalidation3">
+<p>
+In this example, the  "buy one beer, get one free" offer expired at the end of the happy hour.</p>
+<pre class="codeexample">
+entity(buy_one_beer_get_one_free_offer_during_happy_hour)
+wasAttributedTo(proprietor)
+wasInvalidatedBy(buy_one_beer_get_one_free_offer_during_happy_hour,
+                 -,2012-03-10T18:00:00)
+</pre>
+<p>Alternatively, in the following example, Bob redeemed the offer 45 minutes before it expired.</p>
+<pre class="codeexample">
+entity(buy_one_beer_get_one_free_offer_during_happy_hour)
+wasAttributedTo(proprietor)
+activity(redeemOffer)
+wasAssociatedWith(redeemOffer,bob)
+used(buy_one_beer_get_one_free_offer_during_happy_hour,
+     redeemOffer, 2012-03-10T17:15:00)
+wasInvalidatedBy(buy_one_beer_get_one_free_offer_during_happy_hour,
+                 redeemOffer, 2012-03-10T17:15:00)
+</pre>
+</div>
+
+<!--
+<div class="anexample">
+<p>
+In the following example, invalidation is caused by a new version of an entity being made available. Let us consider the resource <a href="http://www.w3.org/TR/prov-dm/">tr:prov-dm</a> when it was the first working draft (attribute <span class="name">ex:version=1</span>). 
+This resource was no longer the first working draft, as soon as the second working draft was published.
+Hence, <a href="http://www.w3.org/TR/prov-dm/">tr:prov-dm</a> was invalidated by <span class="name">ex:act2</span>,
+when it published <span class="name">tr:WD-prov-dm-20111215</span>.</p>
+<pre class="codeexample">
+entity(tr:prov-dm,[prov:type="working draft", ex:version="1"])
+wasInvalidatedBy(tr:prov-dm,ex:act2,2011-12-15T16:00:00)
+activity(ex:act2,,,[prov:type="publish"])
+wasGeneratedBy(tr:WD-prov-dm-20111215, ex:act2,2011-12-15T16:00:00)
+</pre>
+</div>
+
+
+
+<div class="anexample">
+<p>
+In the following example, invalidation is caused by the disappearance of an entity. Let us consider the proceedings of the 2002 Chicago provenance workshop. They used to be hosted at <span class="name">http://people.cs.uchicago.edu/~yongzh/position_papers.html</span>, and were lost as a researcher left the hosting institution.  The proceedings were restored at <a href="http://www.ipaw.info/chicago02/position_papers.html"><span class="name">ipaw:2002</span></a>.
+<pre class="codeexample">
+entity(chicago:wkshp2002,[prov:type="workshop talks"])
+wasInvalidatedBy(chicago:wkshp2002,2010-08-21T00:00:00)
+
+entity(ipaw:wkshp2002,[prov:type="workshop talks"])
+activity(ex:restore,[prov:type="Restore"])
+wasGeneratedBy(ipaw:wkshp2002,ex:restore,2012-03-09T0:00:00)
+wasDerivedFrom(ipaw:wkshp2002,chicago:wkshp2002)
+</pre>
+</div>
+-->
+
+</section>
+
+<!--
+<section id="Proposal 2: On Entity Time">
+<h4>Proposal 2: On Entity Time</h4>
+
+<p>
+<b>Context:</b>
+Activities have convenient time information, with startTime and endTime attributes. This is convenience notation that avoids having to declare start/end event, and associated time.  No such convenience notation exisst for entities. 
+</p>
+
+<p id="proposal2"><b>PROPOSED</b>: to  introduce convenience time attribute to entities (similarly to activities).</p>
+
+
+
+<p><em>The text would include the following.</em></p>
+
+<p>Revised definition of entity, with optional time information. Name 'invalidation' (TBC).</p>
+
+
+
+<div class="attributes" id="attributes-entity">An entity<span class="withAsn">, written <span class="pnExpression" id="pn-entity">entity(id, gt, dt, [ attr1=val1, ...])</span> in PROV-ASN, </span> contains:</p>
+<ul>
+<li><span class='attribute'>id</span>: an identifier for an entity; </li>
+<li><span class='attribute'>generationTime</span>: an OPTIONAL time for the generation time of the entity;</li>
+<li><span class='attribute'>invalidationTime</span>: an OPTIONAL time for the invalidation time of the entity;</li>
+
+<li><span class='attribute'>attributes</span>: an OPTIONAL set of attribute-value pairs representing this entity's situation in the world.</li>
+</ul></div>
+
+</section>
+
+<hr>
+
+
+
+-->
+
+<!--
+<p id="proposal1"><b>PROPOSED</b>: to introduce a prov-dm concept that marks the end of an entity lifetime. Its name remains to be determined. </p>
+
+<p><em>Suggested names:</em>
+<ul>
+<li> invalidation, <li>expiration, <li>final usage, <li>destruction
+<li> lostFormBy
+</ul>
+
+<p>For now, INVALIDATION is used as <em>placeholder name</em></p>
+-->
+
+<div id="glossary_div" class="remove">
+<!-- glossary loaded from glossary.js will be hooked up here,
+     class remove, will remove this element from the final output.
+-->
+</div>
+
+
+
+ </body>
+</html>