Remove speculative non-specification text to be covered in FAQ (ISSUES 426, 598)
--- a/paq/prov-aq.html Tue Nov 20 11:36:30 2012 +0000
+++ b/paq/prov-aq.html Tue Nov 20 12:22:17 2012 +0000
@@ -578,19 +578,6 @@
</pre>
</section>
- <section>
- <h2>Arbitrary data</h2>
- <p>
- If a resource is represented using a data format other than HTML or RDF, and no URI for the resource is known, provenance discovery becomes trickier to achieve. This specification does not define a specific mechanism for such arbitrary resources, but this section discusses some of the options that might be considered.
- </p>
- <p>
- For formats which have provision for including metadata within the file (e.g. JPEG images, PDF documents, etc.), use the format-specific metadata to include a <a class="internalDFN">target-URI</a>, <a class="internalDFN">provenance-URI</a> and/or <a class="internalDFN">service-URI</a>. Format-specific metadata provision might also be used to include <a class="internalDFN">provenance information</a> directly in the resource.
- </p>
- <p>
- Use a generic packaging format that can combine an arbitrary data file with a separate metadata file in a known format such as RDF.
- </p>
- </section>
-
</section>
<!-- == Sect 4 =================================================================================== -->
@@ -681,126 +668,8 @@
</section>
</section>
-
-<!-- == Sect 5 =================================================================================== -->
-
- <section>
- <h2>Best practice</h2>
-
- <p class="TODO">
- @@TODO: remove this section; cover in FAQ
- </p>
-
- <section id="querying-provenance-information">
- <h2>Using SPARQL for provenance queries</h2>
- <p>
- Simply identifying and retrieving provenance information as a resource on the Web may not always meet the requirements of a particular application or service, e.g.:</p>
- <ul>
- <li>the resource for which provenance information is required is not identified by a known URI</li>
- <li>the provenance information for a resource is not directly identified by a known URI</li>
- <li>a requirement to access provenance information for a number of distinct but related resources in a single atomic operation</li>
- <li><i>etc.</i></li>
- </ul>
- <p>
- A provenance query service provides an alternative way to access provenance information and/or provenance-URIs. An application will need a URI for the provenance query service, and some relevant information about the resource whose provenance is to be accessed.
- </p>
- <p>
- The details of a provenance query service is an implementation choice, but for interoperability between different providers and users we recommend use of SPARQL [[RDF-SPARQL-PROTOCOL]] [[RDF-SPARQL-QUERY]].
- The query service URI would then be the URI of a <a href="http://www.w3.org/TR/rdf-sparql-protocol/#conformant-sparql-protocol-service" class="externalRef">SPARQL protocol service</a>
-(often referred to as a "SPARQL endpoint").
- The following subsections provide examples for what are considered to be some plausible common scenarios for using SPARQL, and are not intended to cover all possibilities.
- </p>
- <p>
- A SPARQL protocol service description may be published using the <cite>SPARQL 1.1 Service Description</cite> vocabulary [[SPARQL-SD]].
- </p>
- <p>
- The following subsections illustrate use cases for querying a SPARQL-based provenance query service.
- </p>
- <section>
- <h2>Find a provenance-URI given a target-URI</h2>
- <p>
- If the requester has a <a class="internalDFN">target-URI</a>, a simple SPARQL query may be used to return the corresponding <a class="internalDFN">provenance-URI</a>. E.g., if the original resource has a target-URI <code>http://example.org/resource</code>:</p>
- <pre class="example code">
- @prefix prov: <http://www.w3.org/ns/prov#>
- SELECT ?provenance_uri WHERE
- {
- <http://example.org/resource> prov:hasProvenance ?provenance_uri
- }
- </pre>
-
- </section>
- <section>
- <h2>Find Provenance-URI given identifying information about a resource</h2>
- <p>
- If the requester has identifying information that is not the URI of the original resource, then they will need to construct a more elaborate query to locate a resource description and obtain its provenance-URI(s). The nature of identifying information that can be used in this way will depend upon the third party service used, further definition of which is out of scope for this specification. For example, a query for a document identified by a DOI, say <code>1234.5678</code>, using the PRISM vocabulary [[PRISM]] might look like this:</p>
- <pre class="example code">
- @prefix prov: <http://www.w3.org/ns/prov#>
- @prefix prism: <http://prismstandard.org/namespaces/basic/2.0/>
- SELECT ?provenance_uri WHERE
- {
- [ prism:doi "1234.5678" ] prov:hasProvenance ?provenance_uri
- }
- </pre>
-
- </section>
-
- <section>
- <h2>Obtain provenance information directly given a target-URI</h2>
- <p>
- This scenario retrieves provenance information directly given the URI of a resource, and may be useful where the provenance information has not been assigned a specific URI, or when the calling application is interested only in specific elements of provenance information.
- </p>
- <p>
- If the original resource has a URI <code>http://example.org/resource</code>, a SPARQL query for provenance information might look like this: </p>
- <pre class="example code">
- @prefix prov: <http://www.w3.org/ns/prov#>
- SELECT ?generationStartTime WHERE {
- <http://example.org/resource> prov:wasGeneratedBy ?activity .
- ?activity prov:startedAtTime ?generationStartTime .
- }
- </pre>
-
- <p>
- This query extracts a "generation start time" for an artifact by following links to the start time of the activity which generated it.
- </p>
- </section>
-
- </section>
-
- <!-- == Sect 5.2 ===================================================================================== -->
-
- <section id="incremental-provenance-retrieval">
- <h2>Incremental Provenance Retrieval</h2>
- <p><a class="internalDFN">Provenance information</a> may be large. While this specification does not define how to implement scalable provenance systems, it does allow for publishers to make available provenance in an incremental fashion. We now discuss two possibilities for incremental provenance retrieval.
- </p>
-
- <section>
- <h2>Via Web Retrieval</h2>
- <p>Publishers are not required to publish all the provenance information associated with a given resource at a particular <a class="internalDFN">provenance-URI</a>. The amount of provenance information exposed is application dependent. However, it is possible to incrementally retrieve (i.e. walk the provenance graph) by progressively looking up provenance information using HTTP. The pattern is as follows:</p>
- <ol>
- <li>For a given resource (<code>resource-URI</code>) retrieve it's associated <code>provenance-URI-1</code> and its associated <code>target-URI-1</code> using a returned HTTP <code>Link:</code> header field (<a href="#resource-accessed-by-http" class="sectionRef"></a>)</li>
- <li>Dereference <code>provenance-URI-1</code></li>
- <li>Navigate the provenance information</li>
- <li>When reaching a dead-end during navigation, that is on encountering a reference to a resource (<code>target-URI-2</code>) with no provided provenance information, find its provenance-URI and continue from Step 2. (Note: an HTTP HEAD request for <code>target-URI-2</code> may be used to obtain the <code>Link:</code> headers without retrieving the resource representation.)</li>
- </ol>
-
- <p>To reduce the overhead of multiple HTTP requests, a provenance information publishers are encouraged to link entities to their associated provenance information using the <code>prov:hasProvenance</code> predicate. Thus, the same pattern above applies, except instead of having to retrieve a new <code>Link</code> header field, one can immediately access the resource's associated provenance.
- </p>
- <p>The same approach can be adopted when using the <a class="internalDFN">provenance service</a> API (<a href="#provenance-services" class="sectionRef"></a>). However, instead of performing an HTTP HEAD or GET against a resource one queries the provenance service using the given <a class="internalDFN">target-URI</a>.
- </p>
- </section>
-
- <section>
- <h2>Via SPARQL Queries</h2>
- <p>Provenance information may be made available using a SPARQL endpoint (<a href="#querying-provenance-information" class="sectionRef"></a>) [[RDF-SPARQL-PROTOCOL]] [[RDF-SPARQL-QUERY]]. Using SPARQL queries, provenance can be selectively retrieved using combinations of filters and or path queries.
- </p>
- </section>
-
- </section>
-
- </section>
-
-<!-- ==== Section 6 ===================================================================================== -->
+<!-- ==== Section 5 ===================================================================================== -->
<section>
<h2>Security considerations</h2>