--- a/paq/prov-aq.html Sun Apr 07 18:48:21 2013 +0100
+++ b/paq/prov-aq.html Mon Apr 08 10:30:37 2013 +0100
@@ -239,12 +239,16 @@
<li> <a href="http://www.w3.org/TR/2013/WD-prov-links-20130312/">PROV-LINKS</a> (To be published as Note) introduces a mechanism to link across bundles [[PROV-LINKS]].</li>
</ul>
+<h4>??? Working Draft</h4>
<!--
-<h4>Third Public Working Draft</h4>
<p>
This is the third public working. This revision introduces a new definition of a provenance pingback service as well as making various clarifications about the definition of service descriptions and how they are retrieved.
</p>
-->
+ <p class="TODO">
+ Add/update document status when staged for publication
+ </p>
+
</section>
@@ -281,7 +285,9 @@
<section>
<h2>Concepts</h2>
-
+ <p>
+ This document uses the term URI for web resource identifiers, as this is the term used in many of the currently ratified specifications that this document builds upon. In many situations, a URI may also be an IRI [[RFC3987]], which is a generalisation of a URI allowing a wider range of Unicode characters. Every absolute URI is an IRI, but not every IRI is an URI. When IRIs are used in situations that require a URI, they must first be converted according to the mapping defined in section 3.1 of [[RFC3987]]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names.
+ </p>
<p>In defining the specification below, we make use of the following concepts.</p>
<dl>
<dt><a href="#dfn-resource"><dfn>Resource</dfn></a></dt>
@@ -337,12 +343,6 @@
</dd>
-->
</dl>
- <p class="TODO">
- The pingback definition is new. Review is encouraged.
- </p>
- <p>
- This document uses the term URI for web resource identifiers, as this is the term used in many of the currently ratified specifications that this document builds upon. In many situations, a URI may also be an IRI [[RFC3987]], which is a generalisation of a URI allowing a wider range of Unicode characters. Every absolute URI is an IRI, but not every IRI is an URI. When IRIs are used in situations that require a URI, they must first be converted according to the mapping defined in section 3.1 of [[RFC3987]]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names.
- </p>
</section>
@@ -354,7 +354,7 @@
</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 retain their intended meaning 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).
+ 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">target-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. Target-URIs may use any URI scheme, and are not required to be dereferencable.
@@ -482,7 +482,7 @@
<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#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).
+ 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>has_provenance</code> link relation type for referencing a provenance record may be used thus:
@@ -531,20 +531,17 @@
Link: <<cite>service-URI</cite>>;
rel="http://www.w3.org/ns/prov#has_query_service";
anchor="<cite>target-URI</cite>"
- </pre>
+</pre>
<p>
The <code>has_query_service</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>has_query_service</code> link header fields, and these MAY appear in an HTTP response together with <code>has_provenance</code> link header fields.
- </p>
<pre class="example code">
C: GET http://example.com/resource123/ HTTP/1.1
C: Accept: text/html
S: HTTP/1.1 200 OK
S: Content-type: text/html
- S: Link: <http://example.com/resource123/provenance/>;
+ S: Link: <http://example.com/resource123/provenance-query/>;
rel="http://www.w3.org/ns/prov#has_query_service";
anchor="http://example.com/resource123/"
S:
@@ -552,6 +549,9 @@
S: :
S: </html>
</pre>
+ <p>
+ There MAY be multiple <code>has_query_service</code> link header fields, and these MAY appear in an HTTP response together with <code>has_provenance</code> link header fields.
+ </p>
</section>
<section>
@@ -590,7 +590,7 @@
S: </html>
</pre>
<p>
- This example indicates a provenance record at <code>http://example.com/resource123/provenance/</code>, which uses <code>http://example.com/resource123/20130226/content.html</code> as the target-URI for the requested resource. If the <code>anchor=</code> parameter were to be omitted from the <code>Link:</code> header, the indicated target-URI would be <code>http://example.com/resource123/content.html</code>.
+ This example indicates a provenance record at <code>http://example.com/resource123/provenance/</code>, which uses <code>http://example.com/resource123/20130226/content.html</code> as the target-URI for the requested resource. If the <code>anchor=</code> parameter were to be omitted from the <code>Link</code> header field, the indicated target-URI would be <code>http://example.com/resource123/content.html</code>.
</p>
</section>
@@ -627,7 +627,7 @@
</p>
<p class="note">
- The mechanisms used with HTTP and HTML/RDF are slightly inconsistent in their approach to specifying <code><cite>target-URI</cite></code> values. In HTTP <code>Link:</code> headers, an optional <code>anchor=</code> parameter may be supplied for each such header. In HTML and RDF, separate <code>#has_anchor</code> relations are defined. It was felt that avoiding reinvention of existing mechanisms was more important than being completely consistent. If anchors are processed as described in <a href="#interpreting-provenance-records" class="sectionRef"></a> (3rd paragraph), observable behaviour across all approaches should be consistent.
+ The mechanisms used with HTTP and HTML/RDF are slightly inconsistent in their approach to specifying <code><cite>target-URI</cite></code> values. In HTTP <code>Link</code> header fields, an optional <code>anchor=</code> parameter may be supplied for each such header. In HTML and RDF, separate <code>#has_anchor</code> relations are defined. It was felt that avoiding reinvention of existing mechanisms was more important than being completely consistent. If anchors are processed as described in <a href="#interpreting-provenance-records" class="sectionRef"></a> (3rd paragraph), observable behaviour across all approaches should be consistent.
</p>
<section>
@@ -660,7 +660,8 @@
<section>
<h2>Resource represented as RDF</h2>
<p>
- If a resource is represented as RDF (in any of its recognized syntaxes, including RDFa), it may contain references to its own provenance using additional RDF statements. For this purpose the link relations introduced above (<a href="#locating-provenance-records" class="sectionRef"></a>) may be used as RDF properties: <code>prov:has_provenance</code>, <code>prov:has_anchor</code>, and <code>prov:has_query_service</code>, where the <code>prov:</code> prefix here indicates the PROV namespace URI <code>http://www.w3.org/ns/prov#</code>.
+ If a resource is represented as RDF (in any of its recognized syntaxes, including RDFa), it may contain references to its own provenance using additional RDF statements.
+ For this purpose, the link relations introduced above (<a href="#locating-provenance-records" class="sectionRef"></a>) may be used as RDF properties: <code>prov:has_provenance</code>, <code>prov:has_anchor</code>, and <code>prov:has_query_service</code>, where the <code>prov:</code> prefix here indicates the PROV namespace URI <code>http://www.w3.org/ns/prov#</code>.
</p>
<p>
The RDF property <code>prov:has_provenance</code> is a relation between two resources, where the object of the property is a <a class="internalDFN">provenance-URI</a> that denotes a provenance record about the subject resource. Multiple <code>prov:has_provenance</code> assertions may be made about a subject resource.
@@ -779,9 +780,11 @@
<p>
We see here that the <code><cite>service-URI</cite></code> identifies a resource of type <code>prov:ServiceDescription</code>, which collects descriptions of one or more provenance query mechanisms. Each associated mechanism is indicated by a <code>prov:describesService</code> statement.
</p>
+ <!--
<p class="note">
We expect the presentation of service descriptions to be considered by the W3C Linked Data Platform group (<a href="http://www.w3.org/2012/ldp/" class="externalRef">www.w3.org/2012/ldp/</a>); at the time of writing, there is no consensus (cf. message at <a href="http://lists.w3.org/Archives/Public/public-ldp/2012Nov/0036.html" class="externalRef">lists.w3.org/Archives/Public/public-ldp/2012Nov/0036.html</a> and responses). As and when such consensus emerges, we recommend that provenance query service implementers consider adopting it, or at least consider making their implementations compatible with it.
</p>
+ -->
<section>
<h2>Direct HTTP query service description</h2>
@@ -1060,7 +1063,7 @@
S: 204 No Content
</pre>
<p>
- Here, the pingback client has supplied a query service URI, but did not submit any provenance-URIs and the URI list is therefore empty. The <code>Link:</code> header indicates that the resource <code>http://acme.example.org/super-widget/provenance</code> contains provenance information relating to <code>http://acme.example.org/super-widget</code> (that being the URI of the resource for which the pingback URI was provided).
+ Here, the pingback client has supplied a query service URI, but did not submit any provenance-URIs and the URI list is therefore empty. The <code>Link</code> header field indicates that the resource <code>http://acme.example.org/super-widget/provenance</code> contains provenance information relating to <code>http://acme.example.org/super-widget</code> (that being the URI of the resource for which the pingback URI was provided).
</p>
<!-- also in Stian's proposal