Edirtorial updates in response to Luc's comments; updated CSS for external link
authorGraham Klyne
Tue, 26 Feb 2013 13:34:27 +0000
changeset 5749 1a0bded232fb
parent 5748 52d0f60610aa
child 5750 c103d31270a7
Edirtorial updates in response to Luc's comments; updated CSS for external link
paq/css/prov-aq.css
paq/prov-aq.html
--- a/paq/css/prov-aq.css	Tue Feb 26 11:26:54 2013 +0000
+++ b/paq/css/prov-aq.css	Tue Feb 26 13:34:27 2013 +0000
@@ -186,9 +186,13 @@
     font-family: monospace;
 }
 
-/* External link. CSS and image data copied from wikimedia.org.  Thanks! */
+/* External link. CSS and image data copied from wikimedia.org.  Thanks! 
 a.externalRef {
 background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAVklEQVR4Xn3PgQkAMQhDUXfqTu7kTtkpd5RA8AInfArtQ2iRXFWT2QedAfttj2FsPIOE1eCOlEuoWWjgzYaB/IkeGOrxXhqB+uA9Bfcm0lAZuh+YIeAD+cAqSz4kCMUAAAAASUVORK5CYII=) center right no-repeat;
 background:url(images/external-link-ltr-icon.png) center right no-repeat!ie;padding-right:13px
 }
+*/
 
+a.externalRef:after {
+content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAVklEQVR4Xn3PgQkAMQhDUXfqTu7kTtkpd5RA8AInfArtQ2iRXFWT2QedAfttj2FsPIOE1eCOlEuoWWjgzYaB/IkeGOrxXhqB+uA9Bfcm0lAZuh+YIeAD+cAqSz4kCMUAAAAASUVORK5CYII=);
+}
--- a/paq/prov-aq.html	Tue Feb 26 11:26:54 2013 +0000
+++ b/paq/prov-aq.html	Tue Feb 26 13:34:27 2013 +0000
@@ -285,7 +285,7 @@
             </dd>
             <dt><a href="#dfn-entity-uri"><dfn>Entity-URI</dfn></a></dt>
             <dd>
-              a URI denoting a <a class="internalDFN">resource</a> (including any <a class="internalDFN">constrained resource</a>), which identifies that resource for the purpose of finding and expressing its provenance.
+              a URI denoting a <a class="internalDFN">resource</a> (including any <a class="internalDFN">constrained resource</a>), which identifies that resource for the purpose of expressing its provenance.
             </dd>
             </dt><a href="#dfn-provenance-record"><dfn>Provenance record</dfn></a></dt>
             <dd>
@@ -313,7 +313,7 @@
             </dd>
             <dt><a href="#dfn-locating"><dfn>Locating</dfn></a> provenance records</dt>
             <dd>
-              given the identity of a resource, discovery of a URI at which some <a class="internalDFN">provenance record</a> about that resource may be retrieved.
+              given the identity of a resource, discovery of a <a class="internalDFN">provenance-URI</a> or a <a class="internalDFN">service-URI</a> that may be used to obtain a <a class="internalDFN">provenance record</a> about that resource.
             </dd>
             <dt>provenance <a href="#dfn-provider"><dfn>provider</dfn></a></dt>
             <dd>
@@ -342,7 +342,12 @@
       <section>
         <h2 id="provenance-entities-resources">Provenance and resources</h2>
         <p>
-          Fundamentally, a <a class="internalDFN">provenance record</a> is <em>about</em> <a class="internalDFN">resource</a>s.  In general, resources may vary over time and context.  E.g., a resource describing the weather in London changes from day-to-day, or a listing of restaurants near you will vary depending on your location.  Provenance records, to be useful, must be persistent and must not themselves be dependent on context.  Yet we may still want to make provenance assertions about dynamic or context-dependent resources (e.g. a weather forecast for London on a particular day may have been derived from a particular set of Meteorological Office data).
+          Fundamentally, a <a class="internalDFN">provenance record</a> is <em>about</em> <a class="internalDFN">resource</a>s.
+          In general, resources may vary over time and context.  E.g., a resource describing the weather in London changes from day-to-day, or a listing of restaurants near you will vary depending on your location.
+        </p>
+        <p>
+          Provenance records a history of the entities, activities, and people involved in producing an artifact, and may be collected from several sources at different times.  In order to create a meaningful history, the individual provenance records used must remain valid and correct when interpreted in a context other than that in which they were collected.
+          Yet we may still want to make provenance assertions about dynamic or context-dependent resources (e.g. a weather forecast for London on a particular day may have been derived from a particular set of Meteorological Office data).
         </p>
         <p>
           Provenance records for dynamic and context-dependent resources are possible through a notion of constrained resources.  A <a class="internalDFN">constrained resource</a> is simply a resource (in the sense defined by [[WEBARCH]], <a href="http://www.w3.org/TR/webarch/#id-resources" class="externalRef">section 2.2</a>) that is a specialization or instance of some other resource.  For example, a W3C specification typically undergoes several public revisions before it is finalized.  A URI that refers to the "current" revision might be thought of as denoting the specification throughout its lifetime.  Each individual revision would also have its own <a class="internalDFN">entity-URI</a> denoting the specification at that particular stage in its development.  Using these, we can make provenance assertions that a particular revision was published on a particular date, and was last modified by a particular editor.  Entity-URIs may use any URI scheme, and are not required to be dereferencable.
@@ -438,7 +443,7 @@
         When publishing provenance, corresponding <a class="internalDFN">provenance-URI</a>s or <a class="internalDFN">service-URI</a>s should be discoverable using one or more of the mechanisms described in <a href="#locating-provenance-records" class="sectionRef"></a>.
       </p>
       <p class="note">
-        Provenance may be presented as a <a href="/TR/prov-dm/#component4" class="externalRef">bundle</a>, which is "<cite>a named set of provenance descriptions, and is itself an entity, so allowing provenance of provenance to be expressed</cite>" [[PROV-DM]].  A provenance description at a dereferencable provenance-URI may be treated as a bundle, and this is a good way to make provenance easily accessible. But there are other possible implementations of a bundle, such as a named graph in an RDF dataset [[RDF-CONCEPTS11]], for which the bundle URI may not be directly dereferencable.
+        Provenance may be presented as a <a href="http://www.w3.org/TR/prov-dm/#component4" class="externalRef">bundle</a>, which is "<cite>a named set of provenance descriptions, and is itself an entity, so allowing provenance of provenance to be expressed</cite>" [[PROV-DM]].  A provenance description at a dereferencable provenance-URI may be treated as a bundle, and this is a good way to make provenance easily accessible. But there are other possible implementations of a bundle, such as a named graph in an RDF dataset [[RDF-CONCEPTS11]], for which the bundle URI may not be directly dereferencable.
         <br/><br/>
         When a bundle is published as part of an RDF Dataset, to access it would require accessing the RDF Dataset and then extracting the identified graph component; this in turn would require knowing a URI or some other way to retrieve the RDF dataset.  This specification does not describe a specific mechanism for extracting components from a document containing multiple graphs.
         <br/><br/>
@@ -452,12 +457,10 @@
     <section>
       <h2>Locating provenance records</h2>
       <p>
-        When a <a class="internalDFN">provenance record</a> can be accessed using direct web retrieval, one needs to know its <a class="internalDFN">provenance-URI</a> to dereference.  If this is known in advance, there is nothing more to specify.  If a provenance-URI is not known then a mechanism to discover one must be based on information that is available to the would-be accessor. Likewise, provenance may be exposed by a query service, in which case, the <a class="internalDFN">service-URI</a> needs to be known.
-      </p>
-      <p>Provenance records may be offered by several providers other than that of the original resource publisher, each with different concerns, and presenting provenance at different locations.  It is possible that these different providers may present contradictory provenance.
+        A <a class="internalDFN">provenance record</a> can be accessed using direct web retrieval, given its <a class="internalDFN">provenance-URI</a>.  If this is known in advance, there is nothing more to specify.  If a provenance-URI is not known then a mechanism to discover one must be based on information that is available to the would-be accessor. Likewise, provenance may be exposed by a query service, in which case, the corresponding <a class="internalDFN">service-URI</a> must be discovered.
       </p>
       <p>
-        Three mechanisms are defined for a <a class="internalDFN">provider</a> to indicate to a <a class="internalDFN">consumer</a> information about a <a class="internalDFN">provenance-URI</a> or <a class="internalDFN">service-URI</a> along with an <a class="internalDFN">entity-URI</a>:
+        Three mechanisms are defined for a provenance <a class="internalDFN">consumer</a> to find information about a <a class="internalDFN">provenance-URI</a> or <a class="internalDFN">service-URI</a>, along with an <a class="internalDFN">entity-URI</a>:
       </p>
         <ol>
           <li>The consumer knows the resource URI <em>and</em> the resource is accessible using HTTP</li>
@@ -467,11 +470,13 @@
        <p>
         These particular cases are selected as corresponding to current primary web protocol and data formats.  Similar approaches may be defined for other protocols or resource formats.
       </p>
+      <p>Provenance records may be offered by several <a class="internalDFN">provider</a>s other than that of the original resource publisher, each with different concerns, and presenting provenance at different locations.  It is possible that these different providers may present contradictory provenance.
+      </p>
 
       <section>
         <h2>Resource accessed by HTTP</h2>
         <p>
-          For a resource accessible using HTTP, a provenance record may be indicated using an HTTP <code>Link</code> header field, as defined by <a href="http://tools.ietf.org/html/rfc5988" class="externalRef">Web Linking (RFC 5988)</a> [[LINK-REL]].  The <code>Link</code> header field is included in the HTTP response to a GET or HEAD operation (other HTTP operations are not excluded, but are not considered here).
+          For a resource accessible using HTTP, a provenance record may be indicated using an HTTP <code>Link</code> header field, as defined by <a href="http://tools.ietf.org/html/rfc5988#section-5" class="externalRef">Web Linking (RFC 5988)</a> [[LINK-REL]].  The <code>Link</code> header field is included in the HTTP response to a GET or HEAD operation (other HTTP operations are not excluded, but are not considered here).
         </p>
         <p>
           A <code>hasProvenance</code> link relation type for referencing a provenance record may be used thus:
@@ -488,7 +493,7 @@
           This specification does not define the meaning of these links returned with other HTTP response codes: future revisions may define interpretations for these.
         </p>
         <p>
-          An HTTP response MAY include multiple <code>hasProvenance</code> link header fields, indicating a number of different provenance resources that are known to the responding server, each referencing a provenance record about the accessed resource.
+          An HTTP response MAY include multiple <code>hasProvenance</code> link header fields, indicating a number of different provenance resources (and anchors) that are known to the responding server, each referencing a provenance record about the accessed resource.
         </p>
         <p>
           The presence of a <code>hasProvenance</code> link in an HTTP response does not preclude the possibility that other providers may offer provenance records about the same resource.  In such cases, discovery of the additional provenance records must use other means (e.g. see <a href="#provenance-query-services" class="sectionRef"></a>).
@@ -523,14 +528,14 @@
             The resource provider may indicate that provenance records about the resource are provided by a <a class="internalDFN">provenance query service</a>. This is done through the use of a <code>hasQueryService</code> link relation type following the same pattern as above:
           </p>
           <pre class="pattern">
-Link: &lt;<cite>provenance-service-URI</cite>&gt;;
+Link: &lt;<cite>service-URI</cite>&gt;;
   rel="http://www.w3.org/ns/prov#hasQueryService";
   anchor="<cite>entity-URI</cite>"</pre>
           <p>
             The <code>hasQueryService</code> link identifies the <a class="internalDFN">service-URI</a>.  Dereferencing this URI yields a service description that provides further information to enable a client to submit a query to retrieve a <a class="internalDFN">provenance record</a> for a <a class="internalDFN">resource</a>; see <a href="#provenance-query-services" class="sectionRef"></a> for more details.
           </p>
           <p>
-          There may be multiple <code>hasQueryService</code> link header fields, and these MAY appear in an HTTP response together with <code>hasProvenance</code> link header fields (though, in simple cases, we anticipate that <code>hasProvenance</code> and <code>hasQueryService</code> link relations will not be used together).
+          There may be multiple <code>hasQueryService</code> link header fields, and these MAY appear in an HTTP response together with <code>hasProvenance</code> link header fields.
           </p>
           <pre class="example code">
   C: GET /resource/ HTTP/1.1
@@ -840,10 +845,10 @@
         <h2>Direct HTTP query service invocation</h2>
         <p>This protocol typically combines the <a class="internalDFN">entity-URI</a> with the <a class="internalDFN">service-URI</a> to formulate an HTTP GET request, according to the following convention:
           <pre class="pattern">
-  GET /provenance/service?<b>target</b>=http://www.example.com/entity HTTP/1.1
+  GET /provenance/service?<b>target</b>=http://www.example.com/entity123 HTTP/1.1
   Host: example.com</pre>
         </p>
-        <p>The embedded entity-URI (<code>http://www.example.com/entity</code>) identifies the resource for which provenance is to be returned. Any server that implements this protocol and receives a request URI in this form SHOULD return a provenance record for the resource-URI embedded in the query component, where that URI is the result of percent-decoding the value associated with the provenance-resource key. The embedded URI MUST be an absolute URI and the server MUST respond with a 400 Bad Request if it is not.  If the supplied resource-URI includes a fragment identifier, the '#' MUST be %-encoded as <code>%23</code> when constructing the provenance-URI value; similarly, any '&amp;' character in the resource-URI must be %-encoded as <code>%26</code> [[RFC3986]].
+        <p>The embedded entity-URI (<code>http://www.example.com/entity123</code>) identifies the resource for which provenance is to be returned. Any server that implements this protocol and receives a request URI in this form SHOULD return a provenance record for the resource-URI embedded in the query component, where that URI is the result of percent-decoding the value associated with the provenance-resource key. The embedded URI MUST be an absolute URI and the server MUST respond with a 400 Bad Request if it is not.  If the supplied resource-URI includes a fragment identifier, the '#' MUST be %-encoded as <code>%23</code> when constructing the provenance-URI value; similarly, any '&amp;' character in the resource-URI must be %-encoded as <code>%26</code> [[RFC3986]].
         </p>
         <p>
           If the provenance described by the request does not exist in the server, a <code>404 Not Found</code> response code SHOULD be returned.
@@ -1008,7 +1013,7 @@
           <tr style="vertical-align: top;">
             <td><code>DirectQueryService</code></td>
             <td>Type for a direct HTTP query service description. Mainly for use in RDF provenance query service descriptions, to distinguish direct HTTP query service descriptions from other query service descriptions.</td>
-            <td><a href="#direct-http-query-service" class="sectionRef"></a></td>
+            <td><a href="#direct-http-query-service-description" class="sectionRef"></a></td>
           </tr>
           <tr style="vertical-align: top;">
             <td><code>hasAnchor</code></td>
@@ -1029,7 +1034,7 @@
           <tr style="vertical-align: top;">
             <td><code>provenanceUriTemplate</code></td>
             <td>Indicates a URI template string for constructing provenance-URIs</td>
-            <td><a href="#direct-http-query-service" class="sectionRef"></a></td>
+            <td><a href="#direct-http-query-service-description" class="sectionRef"></a></td>
           </tr>
           <tr style="vertical-align: top;">
             <td><code>provPingback</code></td>