- From: László Lajos Jánszky <laszlo.janszky@gmail.com>
- Date: Sat, 14 Feb 2015 22:34:53 +0100
- To: Markus Lanthaler <markus.lanthaler@gmx.net>
- Cc: "public-hydra@w3.org" <public-hydra@w3.org>
- Message-ID: <CA+=RcCow9gyKndi6m0dPfh4brx8p7BekXLnAKi5HP2Akv0u6HA@mail.gmail.com>
Just to make sure, this is what we are talking about (at least I am): 2015-02-14 10:07 GMT+01:00 László Lajos Jánszky <laszlo.janszky@gmail.com>: > I think the minimum information we need to distinguish a Page from the > whole Collection is a memberOf property or it's inverse: member. (So > if the Collection contains another Collection as member, then it can > assume that this member is a page.) Now if we have nested collections, > then we have hard time to distinguish the items from the pages. That's > why we have to define a Page class, which should be a Collection > subclass. My approach would look like something like this in your > terms: > > { > "@id": "http://api.example.com/an-issue/comments?whatever=3", > "@type": "Page", > "first": "/an-issue/comments", > "previous": "/an-issue/comments?whatever=2", > "next": "/an-issue/comments?whatever=4", > "last": "/an-issue/comments?whatever=498", > "member": [ > { > "memberOf": [ > { > "@id": "http://api.example.com/an-issue/comments" > }, > { > "@id": > "http://api.example.com/an-issue/comments?whatever=3", > } > ], > ... > }, > ... > ], > "size": 20, > "memberOf": { > "@id": "http://api.example.com/an-issue/comments", > "@type": "Collection", > "size": 10000 > } > } > > (Note that I have almost zero experience with JSON-LD and RDF vocabs. :D) > > > > 2015-02-12 23:41 GMT+01:00 Markus Lanthaler <markus.lanthaler@gmx.net>: > > It seems, there's quite some pushback to separate paginated collections > into collections and pages. My feeling is that even getting rid of the > PagedCollection type seems to be the preferred approach at the moment. This > would mean that there's always a sequence of collections but if there's > just one, there's obviously no need to link to others. > > > > Let me try to gauge the preferences by making an alternative design > proposal: > > - remove the type PagedCollection > > - rename itemsPerPage to numberItems > > - drop the "Page" suffix from firstPage, nextPage, previousPage, > lastPage > > > > I'm a bit worried about dropping the "Page" suffix, but wanted to bring > it up nevertheless. > > > > With this new design, a paginated collection would look like this: > > > > { > > "@id": "http://api.example.com/an-issue/comments?whatever=3", > > "@type": "Collection", > > "first": "/an-issue/comments", > > "previous": "/an-issue/comments?whatever=2", > > "next": "/an-issue/comments?whatever=4", > > "last": "/an-issue/comments?whatever=498", > > "member": [ ...] > > } > > > > What we lose by this is the ability to distinguish whether a single > "page" or the complete collection was referenced. It would always be the > complete collection. A client is thus expected to (potentially) retrieve > the entire collection to find the information it was looking for. AFAICT, > this shouldn't be a problem in practice as our collection design doesn't > allow any inferences; all the relationships have to be defined explicitly. > > > > Ruben, I would be especially interested in hearing your opinion since > you created ISSUE-42 [1] and mentioned that by implementing the LDF server > it occurred to you that the current design is confusing. Do you see any > practical issues with such a design? > > > > > > -- > > Markus Lanthaler > > @markuslanthaler > > > > > > >
Attachments
- image/png attachment: hydracoll.png
Received on Saturday, 14 February 2015 21:35:21 UTC