Re: Client MUST advertise ability to support LDP Paging

On 07/18/2014 04:39 PM, McFall, Gregory wrote:
> The Editor's Draft contains the following paragraph:
>
>     6.2.17 LDP Paging servers must not initiate paging unless the
>     client has indicated it understands paging. The only standard
>     means defined by LDP paging for a client to signal a server that
>     the client understands paging is via the client preference defined
>     for this purpose; other implementation-specific means could also
>     be used.
>
>     Non-normative note: LDP Paging servers could choose to make any
>     resource available only as a paged resource. One consequence of
>     the prohibition on initiating paging when interacting with
>     non-paging-aware clients is: if such a server receives a request
>     for a paged-only resource, and the request does not signal that
>     the client is paging-aware, then the server has to reject the
>     request, most likely with a 4xx status code. This avoids the
>     situation where a non-paging-aware client blindly follows a 303
>     redirect, retrieves that resource (which the server, but not the
>     client, knows to contain only the first page of the paged
>     resource's state), and upon receiving the 200 OK status code
>     concludes that it now has the entire representation of the paged
>     resource's state (instead of only having a representation of the
>     subset assigned to the first page).
>
> The rationale provided in the non-normative note indicates that the 
> conformance rule exists so that clients won't mistakenly assume that 
> they have received the complete state of a resource.  But RDF is based 
> on the open world assumption, so clients can never assume that they 
> have the complete state of a resource.

The thing that's open world about RDF is that it doesn't include the 
Closed World Assumption that some system do.  CWA says that anything 
that's not stated as a fact is assumed to be false.

RDF doesn't do that, but that doesn't make it okay for a web server 
offering the representation of an RDF Source to omit some of the 
triples.    True, if it were to do so, RDF systems would not conclude 
false things, but they still would behave incorrectly in many cases.

For example, if the RDF Source was a company directory being retrieved 
by a phone book webapp, and the server suddenly decided to do paging, 
maybe because the company hired its 1001's employee, it would be a real 
problem if some employees just didn't show up.  What if the client were 
the payroll system or the door-lock system?  :-)

>
> It seems to me that it may be worse to reject the request entirely 
> with a 4xx status code.  The average web developer uses paging all the 
> time without these kinds of strictures.  I worry that this conformance 
> rule will be a barrier to adoption of LDP Paging by those who want to 
> build systems that appeal not only to the semantic web community, but 
> also the wider community of web developers.
>

I just re-read that part of the spec this evening, and (despite what I 
said above) I share your misgivings.   I'm inclined to soften the MUST 
NOT initiate paging (without a sign from the client) to SHOULD NOT 
initiate paging.  So if you're either going to page or give a 4xx, then 
it's okay to page.   To handle the clients treating 303 as if it were a 
307, perhaps we can make a loud statement that's a bad idea.   
Unfortunately, we can't say they MUST NOT do that, since the clients who 
do that aren't LDP Paging Clients, so it's out of scope for this spec to 
say anything about them.

> Regards,
> Greg McFall

Thanks for the feedback!

       -- Sandro

Received on Monday, 21 July 2014 03:13:44 UTC