- From: Ruben Verborgh <ruben.verborgh@ugent.be>
- Date: Thu, 14 Jan 2016 22:47:48 +0100
- To: Markus Lanthaler <markus.lanthaler@gmx.net>, Pierre-Antoine Champin <pierre-antoine.champin@liris.cnrs.fr>
- Cc: public-hydra@w3.org
Also grouping multiple mails: > Could you precisely define what is a "member"? I'd simply say: a resource that is part of a collection. > - a member of a collection is a resource linked to it by the hydra:member property => agree > - a member of a collection is a resource whose representation is included in the collection's representation => not necessarily > 1/ it contradicts your implication that views are collections (indeed, a page has no member according to this definitions, as the items are not linked to the page) It's not because the link is not listed in a representation, that it does not exist. > 2/ it contradicts the TPF specification, in which hydra:member i not used (in fact, the word "member" is never used once in this spec ;-) Idem. (TPF has the complication that the items we filter on are triples; we filter on the "reified versions", but return the triples themselves.) >> Okay, but what is the meaning then of: >> - hydra:filter? >> - a boolean as value of hydra:filter? >> I just don't understand how to interpret this. > > Interpret it as "this parameter acts as a filter, multiple filters are > combined with AND". The "AND" interpretation is not possible, because the hydra:filter property is attached to individual mappings. The AND-ness should be decided on the level of all mappings. (in other words: you cannot AND a single mapping, you need at least two). Plus, I'm still not in favor of this boolean. Just "this acts as a filter" is not too interesting. > I'm fine with those (modulo some minor wordsmithing to avoid that views are > collections, Pierre-Antoine's tweaks fix that). Curious to see the definition that describes exactly what separates a view from a collection :-) (That's what I'm after in this whole thread.) >> I'm okay with following Markus' new proposal, >> but I additionally suggest making view a subclass of collection >> (unless somebody can make a definition that allows distinguishing either). > > That would probably mean that we would need to change pagination again to > have a uniform design (it would also mean that views only work for > collections, but we can avoid that by just making PartialCollectionView a > subclass of collection). +1 to making PartialCollectionView a subclass of collection (and while we're at it, the name is hideous; just View or CollectionView will do) > { > "@context": "http://www.w3.org/ns/hydra/context.jsonld", > "@id": "http://api.example.com/an-issue/comments", > "@type": "Collection", > "totalItems": "4980", > "member": [ > ... a subset of the members of the Collection ... > ], > "view": { > "@id": "http://api.example.com/an-issue/comments?page=3", > "@type": "PartialCollectionView", > "first": "/an-issue/comments?page=1", > "previous": "/an-issue/comments?page=2", > "next": "/an-issue/comments?page=4", > "last": "/an-issue/comments?page=498" > } > } > > So the members are associated to the collection, not the view. How would you > envision that to work look like when PartialCollectionView is a subclass of > Collection? Exactly the same. > Where would you put the first/previous/next/last links? Same place. > Where the totalItems count (of both the page and the entire collection)? I'd put 4980 where it is; and 100 (assuming this as the page size) on the view. Best, Ruben
Received on Thursday, 14 January 2016 21:48:20 UTC