Re-cast sort criteria as rdf:List compatible with syntactic sugar for those
authorJohn Arwe
Wed, 06 Aug 2014 10:48:25 -0400
changeset 742 197199f27d16
parent 741 23fdc671c3f2
child 743 b16960e10e33
Re-cast sort criteria as rdf:List compatible with syntactic sugar for those
ldp-paging.html
ldp-paging.ttl
--- a/ldp-paging.html	Tue Aug 05 14:48:16 2014 -0400
+++ b/ldp-paging.html	Wed Aug 06 10:48:25 2014 -0400
@@ -10,7 +10,7 @@
 	
 	DONE: Missing link header for equivalent of ldp:pageOf? Need to verify.  Also we have ldp-paging:pageOf in samples
 			but it doesn't exist in rules or vocabulary doc, oversight?
-	TODO: Sandro 7/29: loosen up restrictions on target of pageSortCriteria link
+	DONE: Sandro 7/29: loosen up restrictions on target of pageSequence link
 	TODO: Once companion documents (best practices, primer) have URLs, link to them.  Search on "companion".
 	TODO: Mine Jim des Riv May 21 email for more content
 	TODO: Example 11 is missing ldp:contains, true?  Omit due to GET on page resource, should make it more clear.
@@ -1612,10 +1612,10 @@
 		paginated. If the server respects ordering when constructing
 		pages, clients needing a globally sorted set of members
 		can reduce the effort required to merge pages.
-		In cases where ordering is important, an <a>LDP Paging server</a> exposes all the
-		members on a page with the proper sort order with relation to all 
-		members on the next and previous pages.
-		<em>This says nothing about the ordering of members within any 
+		In cases where ordering is important, an <a>LDP Paging server</a> ensures that all the
+		members on any single page have the proper sort order with relation to all 
+		members on any next and previous pages.
+		<em>This says nothing about the ordering of members <strong>within</strong> any 
 		<a title="In-sequence page resource">single page</a>.</em>
 		When the sort is ascending, all the members on a current page have a 
 		sort order no lower than all members on the previous page and 
@@ -1626,7 +1626,8 @@
 		Since more than one value may be used to sort members, 
 		the LDPC specification allows servers to assert the ordered list
 		of sort criteria used to sort the members, using the 
-		<code>ldp:pageSortCriteria</code> HTTP link relation.
+		<code>ldp:pageSequence</code> HTTP link relation and its
+		<code>ldp:pageSortCriteria</code> predicate.
 		Each member of the ordered list exposes one <code>ldp:pageSortCriterion</code>, 
 		consisting of a <code>ldp:pageSortOrder</code>, 
 		<code>ldp:pageSortPredicate</code>, and 
@@ -1687,8 +1688,9 @@
    o:marketValue 100.00 .
 </pre>
 	<p>
-		The client knows that LDP Paging was not used to form the response, because the HTTP status code is <code>200 OK</code>
-		and there is no <code>Link: &lt;http://www.w3.org/ns/ldp#Page&gt;; rel="type"</code> response header.
+		The client knows that LDP Paging was not used to form the response, because the HTTP status code is <code>200 OK</code>;
+		the absence of a <code>Link: &lt;http://www.w3.org/ns/ldp#Page&gt;; rel="type"</code> response header provides redundant
+		confirmation of this.
 		Since paging was not used, the server provides no information related to page sorting;
 		providing page sorting information would have no value to the client, it would only waste resources.
 	</p>
@@ -1707,7 +1709,7 @@
       &lt;http://www.w3.org/ns/ldp#Page&gt;; rel="type"
 Link: &lt;http://example.org/netWorth/nw1/assetContainer/?p=2&gt;; rel='next'
 Link: &lt;http://example.org/netWorth/nw1/assetContainer/&gt;; rel='canonical'; etag="v1"
-Link: &lt;http://example.org/netWorth/nw1/assetContainer/pageSortOrder/&gt;; rel='http://www.w3.org/ns/ldp#pageSortCriteria'
+Link: &lt;http://example.org/netWorth/nw1/assetContainer/sortedSequence/&gt;; rel='http://www.w3.org/ns/ldp#pageSequence'
 Allow: GET,OPTIONS,HEAD
 
 # The following is the ordered representation of
@@ -1735,15 +1737,12 @@
    o:marketValue 100.00 .
    
 # The remainder of the content describes the sort order.
-# Note that the new base URI here matches the target URI of the pageSortCriteria Link header above.
+# Note that the new base URI here matches the target URI of the pageSequence Link header above.
 
-@base &lt;http://example.org/netWorth/nw1/assetContainer/pageSortOrder/&gt; .
+@base &lt;http://example.org/netWorth/nw1/assetContainer/sortedSequence/&gt; .
 @prefix rdf: &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;.
 <!-- (#Sort-o.marketValue-Ascending) does not work, because the subject uri would be a blank node -->
-&lt;&gt; 
-   a rdf:List;
-   rdf:first &lt;#Sort-o.marketValue-Ascending&gt; ; 
-   rdf:rest rdf:nil .
+&lt;&gt; ldp:pageSortCriteria  ( &lt;#Sort-o.marketValue-Ascending&gt; ).
 
 &lt;#Sort-o.marketValue-Ascending&gt;
    a ldp:pageSortCriterion;
@@ -1756,8 +1755,11 @@
 	</p>
 	<ul>
 	<li>
-		A <code>Link rel='http://www.w3.org/ns/ldp#pageSortCriteria'</code> response header has been
-		added, allowing the client to know what sort criteria the server used.
+		A <code>Link rel='http://www.w3.org/ns/ldp#pageSequence'</code> response header has been
+		added, allowing the client to where to find information about the page sequence;
+		its content includes a <code>ldp:pageSortCriteria</code> triple, 
+		allowing the client to know what sort criteria the server used when allocating members
+		to pages.
 	</li>
 	<li>
 		The server also chose to include assertions about the sort criteria in the content for the
@@ -1769,7 +1771,7 @@
 		the assertions match what the client would obtain by retrieving them itself.
 	</li>
 	<li>
-		The contents of the page sort criteria resource
+		The contents of the sort criteria resource
 		asserts that the <code>o:marketValue</code> predicate will be used 
 		to assign sets of members to pages in ascending order.  
 		The server is telling the client that the values of <code>o:marketValue</code> of all assets
@@ -1792,7 +1794,7 @@
       &lt;http://www.w3.org/ns/ldp#Page&gt;; rel="type"
 Link: &lt;http://example.org/netWorth/nw1/assetContainer/?pageSortOrder&gt;; rel='prev'
 Link: &lt;http://example.org/netWorth/nw1/assetContainer/&gt;; rel='canonical'; etag="v1"
-Link: &lt;http://example.org/netWorth/nw1/assetContainer/pageSortOrder/&gt;; rel='http://www.w3.org/ns/ldp#pageSortCriteria'
+Link: &lt;http://example.org/netWorth/nw1/assetContainer/sortedSequence/&gt;; rel='http://www.w3.org/ns/ldp#pageSequence'
 Allow: GET,OPTIONS,HEAD
 
 # The following is the ordered representation of
@@ -1813,13 +1815,13 @@
 	
 	<ul>
 	<li>
-		The same <code>Link rel='http://www.w3.org/ns/ldp#pageSortCriteria'</code> response header is present,
-		allowing the client to know what sort criteria the server used.
+		The same <code>Link rel='http://www.w3.org/ns/ldp#pageSequence'</code> response header is present,
+		allowing the client to know what page sequence, and hence what sort criteria, the server used.
 	</li>
 	<li>
 		The server chose not to include assertions about the sort criteria in the content for the
 		second page.  Since LDP Paging <a href="#ldpc-sort-consistent">requires that the page sequence is sorted consistently</a>,
-		any client that already retrieved the first page has already seen the page sorting criteria.  If a client is given
+		any client that already retrieved the first page has already seen the sorting criteria.  If a client is given
 		the URI of an <a>in-sequence page resource</a> through means other than following links, it always has the option 
 		to retrieve the sort criteria.
 	</li>
@@ -1878,13 +1880,19 @@
 		<a title="LDP Paging server">LDP Paging servers</a> <a href="#ldpc-sort-criteria-consistent">communicating order</a> MUST 
 		specify the order using a <code>HTTP Link</code> header
 		whose context URI is the page URI, 
-		whose link relation is <code>http://www.w3.org/ns/ldp#pageSortCriteria</code>, 
-		and whose target IRI identifies a page sort criteria resource compliant with this section's requirements on its content.
+		whose link relation is <code>http://www.w3.org/ns/ldp#pageSequence</code>, 
+		and whose target IRI identifies a LDP-RS whose content includes the 
+		sort criteria.
+		The resource identified by the <code>Link</code> header's target IRI MUST contain a triple
+		whose subject is the <code>Link</code> header's target IRI, 
+		whose predicate is <code>ldp:pageSortCriteria</code> 
+		and whose object is a
+		page sort criteria resource compliant with this section's requirements on its content.
 	</h2></section><!-- Was 5.3.2 / #ldpc-5_3_2 -->
 	
 	<section id="ldpc-sort-criteria-content"><h2 class="normal">
 		<a title="LDP Paging server">LDP Paging servers</a> <a href="#ldpc-sort-criteria-consistent">communicating order</a> MUST 
-		expose page sort criteria resources that are LDP-RSs, each consisting of a <code>rdf:List</code> of
+		expose page sort criteria resources that describe the allocation of members to pages; each resource consists of a <code>rdf:List</code> of
 		<code>ldp:pageSortCriterion</code> resources.  
 		The first list entry provides the primary
 		sorting criterion, any second entry provides a secondary criterion used to order members considered
@@ -2123,6 +2131,8 @@
 <!-- <blockquote><em><a href="http://www.w3.org/TR/2013/WD-ldp-paging-20140930/">Candidate Recommendation Draft</a></em></blockquote> wah -->
 <!-- <blockquote><em><a href="http://www.w3.org/TR/2013/WD-ldp-paging-20140730/">Last Call Draft</a></em></blockquote> -->
 <ul>
+	<li>2014-08-05 - Re-cast sort criteria as rdf:List compatible with syntactic sugar for those (JA) </li>
+	<li>2014-08-05 - Fuss SOTD for Arnaud (JA) </li>
 	<li>2014-08-04 - Fuss with SortValueAscending value for Sandro (JA) </li>
 	<li>2014-08-04 - Incorporating resolutions from today's WG meeting (JA) </li>
 	<li>2014-07-30 - Rewording based on SS's 7/17 email comments (JA) </li>
--- a/ldp-paging.ttl	Tue Aug 05 14:48:16 2014 -0400
+++ b/ldp-paging.ttl	Wed Aug 06 10:48:25 2014 -0400
@@ -82,4 +82,12 @@
 	rdfs:comment "URI signifying that the resource is an in-sequence page resource, as defined by LDP Paging.  Typically used on Link rel='type' response headers.";
 	vs:term_status "unstable";
 	rdfs:isDefinedBy :;
-	rdfs:label "Page".
\ No newline at end of file
+	rdfs:label "Page".	
+
+:pageSequence
+	a rdfs:Class;
+	rdfs:comment "Link to a page sequence resource, as defined by LDP Paging.  Typically used to communicate the sorting criteria used to allocate LDPC members to pages.";
+	vs:term_status "unstable";
+	rdfs:isDefinedBy :;
+	rdfs:label "Page".
+	
\ No newline at end of file