- From: ☮ elf Pavlik ☮ <perpetual-tripper@wwelves.org>
- Date: Wed, 01 Oct 2014 13:56:03 +0200
- To: public-hydra@w3.org
On 04/25/2014 07:29 PM, Markus Lanthaler wrote: > On Friday, April 25, 2014 6:34 PM, Ruben Verborgh wrote: >>> 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). > > Yeah. I agree. Let me convert this to JSON-LD because I think that will be > easier for a lot of people on this list to understand and evaluate. Here's > Gregg's Turtle converted 1:1, the first page is the "central" resource: > > { > "@id": "/collection", > "@type": "Page(dCollection)", > "member": [ "1", "2", "..." ], > "nextPage": /collection?page=2", > "pageOf": { > "@id": "/collection#dataset", > "@type": "Collection", > "totalItems": 243, > "itemsPerPage": 10, > "firstPage": "/collection", > "lastPage": "/collection?page=24" > } > } > > This has the advantage that the representations of all pages would look more > or less the same. The downside is, that you would have to link to > /collection#dataset instead of just /collection. So it would be > > { > "@id": "markus", > "knows": "/friend-collection#dataset" > } > > An alternative serialization could put the collection itself at the center > (please note that I changed the resource identifiers): > > { > "@id": "/collection", > "@type": "Collection", > "totalItems": 243, > "itemsPerPage": 10, > "firstPage": { > "@id": "/collection#page", > "@type": "Page(dCollection)", > "member": [ "1", "2", "..." ], > "nextPage": /collection?page=2", > "pageOf": "/collection" > }, > "lastPage": "/collection?page=24" > } > > The disadvantage here is that while it looks nice for the first page, it > kind of breaks down for all other pages. how about: * PagedCollection SHOULD embed it's first Page { "@id": "/collection", "@type": "PagedCollection", "totalItems": 243, "itemsPerPage": 10, "firstPage": { "@id": "/collection?page=1", "@type": "Page", "member": [ "1", "2", "..." ], "nextPage": /collection?page=2", "pageOf": "/collection" }, "lastPage": "/collection?page=24" } * Page SHOULD embed PagedCollection it belongs to { "@id": "/collection?page=1", "@type": "Page", "member": [ "1", "2", "..." ], "nextPage": /collection?page=2", "pageOf": { "@id": "/collection", "@type": "PagedCollection", "totalItems": 243, "firstPage": "/collection?page=2", "lastPage": "/collection?page=24" "itemsPerPage": 10 } } using PagedCollection (subclasOf: Collection) for fristPage and itemsPerPage BTW I missed this conversation and created duplicate in http://lists.w3.org/Archives/Public/public-hydra/2014Oct/0000.html I also in intuitive way distinguished Collection from its pages in my first draft for Social WG comparison: https://www.w3.org/wiki/index.php?title=Socialwg/Collection_Comparison&oldid=77016
Received on Wednesday, 1 October 2014 11:58:20 UTC