Re: relate a Collection and a PagedCollection

On Apr 25, 2014, at 5:24 AM, Ruben Verborgh <ruben.verborgh@ugent.be> wrote:

> Hi Gregg,
> 
> Of course not criticizing your opinion, but could I ask for some clarifications?
> 
>> Just looking at it from a pragmatics perspective, when I retrieve a collection, I want that to include the first page of members, at least.
> 
> Agree.
> 
>> So, that resource should include everything I need to know about the collection: the number of items in the collection
> 
> Okay. So this is a property of the collection.
> What subject do you use to describe it?
> 
>> This could allow the meta-collection properties to be recorded under a separate subject from that resource, or not.
> 
> Note that I was originally not talking about meta-collection properties, but collection properties.
> As in: "collection itemcount 2034" and "page itemcount 100".

To illustrate, we might return something like the following:

</collection> a hydra:PagedCollection;
  hydra:member <1>, <2>, ...;
  hydra:nextPage </collection?page=2>;
  hydra:pageOf </collection#dataset> .
<collection#dataset> a hydra:Collection;
  hydra:totalItems 243;
  hydra:itemsPerPage 10;
  hydra:firstPage </collection>;
  hydra:lastPage </collection?page=24> .

I think this is pretty close to what you originally proposed. This does allow for a certain amount of semantic purity, but practically doesn't do more for me than just collapsing the dataset properties down to the PagedCollection (or CollectionPage, if you prefer).

>> If it is, and we're trying to adhere to the principles of Linked Data, then that subject should have an IRI, which could be a fragment identifier relative to the first page. Practically speaking, this seems a little upside down
> 
> Yes, but why would we need to choose a fragment identifier relative to the first page?

You did this yourself in your original example. If you're going to return both the page data and the collection data in the resource for the first page, it makes sense that they are closely related. I don't see giving the collection it's own separate non-frag URL,

>> do take Markus' assertion that a page of a collection can be likened to a specific rdf:List, but that really just says that all pages are collections
> 
> And this is where I see a contradiction:
> if each page is a collection (which is an idea I like),
> what does hydra:totalItems then mean?
> 
> hydra:totalItems for a collection means the number of items in the collection.
> So hydra:totalItems for a page should give me 100 then (items per page),
> not 2034 (the number of items in the whole collection)?
> 
> This is where to modeling breaks for me.

Getting totalItems for a given page doesn't seem to useful, as they're pretty easily counted once the page has been parsed.

>> IMO, it would be simpler if we just side-step this whole thing and just reference the first page and simply describe properties on that page resource and not introduce another subject for its own sake.
> 
> So what would a PageCollection be to you?
> A Page, a Collection, both, or a hybrid?

I think a Hybrid is okay, but I could go with having a Collection/CollectionPage as I illustrated above.

Gregg

> Best,
> 
> Ruben

Received on Friday, 25 April 2014 16:26:41 UTC