[oslc-core] Pagination
Martin Nally
nally at us.ibm.com
Tue Mar 22 15:44:11 EDT 2011
Good point, Frank. I think there are 3 cases:
Obviously, if the list nodes are blank nodes, then they are not
independent resources - they are just part of the state of the
changelog. This is simple, but the chagelog is now large and it can't be
paginated.
If the list nodes are resources, but they have URLs of the form
<changeLogURL>#<list node fragment id>, then the list nodes are now real
resources with URLs, but there is a standard relationship between the
changelog and the list nodes based on the W3C definition of fragment
identifiers. Fragment identifiers have always been a bit problematic,
but the meaning of the relationship is something like "the
representation of the list nodes will be inside the representation of
the change log", which is a rather odd sort of relationship, but an
important one. Now the changeLog is still large (since its
representation includes the representation of all the list nodes, by
definition), but it can be paginated using the standard OSLC pagination
mechanism.
If the list nodes are resources, but they have URLs of the form
<changeLogURL>/<list node id>, then the list nodes are now real
resources with URLs, and there is absolutely zero relationship implied
by standard web theory between the changelog and the list nodes, or
between the list nodes themselves. The relationship between them is the
same as the relationship between martin, martingale and martini - they
share the same first 6 letters of the name that is all. In this design
you would expect the changelog resource to be small - the representation
of the changeLog should reflect the state of changeLog (by theory of the
WWW), and by adopting this pattern, we have specifically chosen to
exclude the listNodes from the state of the changeLog itself. In this
design, we can still invent new resources that include information on
[the state of] multiple list nodes but these resources are not the
changelog, and are not the list nodes, and are not the standard "pages"
defined by the OSLC pagination specification either - they are something
entirely new and different.
When I brought this up, I was advocating design 2 because it exploits what
we already have, but given how complex the ensuing discussion has become,
I'm getting discouraged. Maybe the discussion has had value in clarifying
some of the ideas in OSLC paging. Design #1 can't be paginated, and #3 is
something brand new (and subtle), so I think the options are to use #2 or
stick with Frank's original design, which was simple and understandable
although it was new.
Best regards, Martin
Martin Nally, IBM Fellow
CTO and VP, IBM Rational
tel: +1 (714)472-2690
Frank Budinsky <frankb at ca.ibm.com> wrote on 03/22/2011 02:27:15 PM:
> [image removed]
>
> Re: [oslc-core] Pagination
>
> Frank Budinsky
>
> to:
>
> Martin Nally
>
> 03/22/2011 02:27 PM
>
> Cc:
>
> oslc-core, oslc-core-bounces
>
>
> > Pagination solves the problem that a resource
> > is large and I don't want to get it all in one response.
>
> What makes pagination of the (latest proposed) ChangeLog different,
> is that the "resource is NOT large", it's actually quite small,
> although it includes a reference to another resource, which happens
> to be the start of linked list of resources, which collectively
> represent the ChangeLog. The ChangeLog data graph, not the resource,
> is what's large.
>
> Normally, and consistent with Martin's definition, paging has been
> used to break up the contents of a single resource, and in fact,
> it's most useful when that content is a large number of values of a
> single multi-valued property, like rdfs:members in the queryBase case.
>
> Once the thing being paged spans multiple resources, it almost
> doesn't seem to fit the same model. Now, instead of "resource
> paging", we're talking about "data graph paging", and in our case,
> more specifically, "linked-list data graph paging". Maybe, as Dave
> suggested, the OSLC core spec needs to describe the places where
> paging can/should be expected?
>
> Frank.
>
More information about the Oslc-Core
mailing list