RE: relate a Collection and a PagedCollection

Hi,

Before jumping onto the new thread (thanks Ruben for taking the lead), I'll
try to answer a couple of questions in this thread.

On Tuesday, April 15, 2014 7:37 PM, Ruben Verborgh wrote:
> I'll show you my specific use case: I'm adding page support to Linked Data
> Fragments.
> I want to say that <http://data.linkeddatafragments.org/dbpedia>
> is the first page of the dataset
> <http://data.linkeddatafragments.org/dbpedia#dataset>.
> 
> I have been working on this for some time,
> and I can't help but wonder whether PagedCollection is really the correct
> term/concept.

The reason why it is called PagedCollection and not CollectionPage is that I
see a PagedCollection as the sum of all the pages it consists of. This is
somehow similar to RDF lists which consist of a number of blank nodes with
rdf:first/rdf:next properties. Thus, I also didn't see any need to make it
possible to link from a Collection to a (Collection)Page. Does this make any
sense to you?

> Maybe the following could be easier:
>     <dataset> hydra:firstPage <page1>.
>     <dataset> hydra:lastPage <page34>.
>     <page1> hydra:nextPage <page2>.
>     <page2> hydra:previousPage <page1>.
>     <page1> hydra:pageOf <dataset>.
> So there is one collection; each of them has pages.
> Note the relations firstPage and lastPage would be between a collection
and
> a page;

Well... this certainly looks tidy but do you really need an "entry point"
which just links to the first and last page but doesn't give you any
members?


> To complicate matters, I had originally this idea:
> the entire dataset is <http://data.linkeddatafragments.org/dbpedia>;
> but the representation at this URL only contains the triples in the first
page.
> 
> In other words, the representations of
> - http://data.linkeddatafragments.org/dbpedia
> and
> - http://data.linkeddatafragments.org/dbpedia?page=1
> would be the same, even though the first identifies the entire dataset
> and the second only identifies the first page.

That's how a PagedCollection is supposed to be used in general.


> nextPage and previousPage are between pages (not a collection and a page).
> This would make the Hydra properties equivalent to the IANA rels first,
last,
> next, prev.

Well, the current design is also consistent with the IANA link relations
AFAICT. In fact, I think the current design is even more consistent with how
the IANA link relations are typically used (e.g. in Atom). I just checked
and found RFC5005: Feed Paging and Archiving [1]. It uses those relations
exactly the same way as Hydra currently does and calls such feeds Paged
Feeds.
 

> Currently, the above would have to be expressed as:
>     <page2> hydra:firstPage <page1>.
>     <page2> hydra:lastPage <page34>.
>     <page1> hydra:nextPage <page2>.
>     <page2> hydra:previousPage <page1>.
> Note how I cannot relate the dataset to its pages.

... because the "dataset" is the union of all pages.. at least if you want
it to be the same thing. I'd probably separate them. Something like

   /the-data-set triplesCollection /the-(paged)collection

Cheers,
Markus


[1] https://tools.ietf.org/html/rfc5005


--
Markus Lanthaler
@markuslanthaler

Received on Thursday, 17 April 2014 21:56:28 UTC