- From: Markus Lanthaler <markus.lanthaler@gmx.net>
- Date: Fri, 27 Nov 2015 21:35:47 +0100
- To: <public-hydra@w3.org>
On 26 Nov 2015 at 22:25, Karol SzczepaĆski wrote: > On 26 Nov 2015 at 16:30, Markus Lanthaler wrote: >> An alternative would be to allow to attach totalItems to >> PartialCollectionView in case it differs from the underlying collection: >> { >> "@id": "/users", >> "@type": "Collection", >> "member": [ ...10 Bob items... ], >> "totalItems": 10000, >> "view": >> "@id": "/users?name=Bob&p=1", >> "@type": "PartialCollectionView", >> "totalItems": 50, >> "first": "/users?name=Bob&p=1", >> "next": "/users?name=Bob&p=2", >> "last": "/users?name=Bob&p=5" >> } >> } >> ... which looks much simpler but may be conceptually ambiguous. > > This ambiguoity comes from a collection and it's view representation, not > the opposite. I don't understand the above sentence. > Finally we'll need totalItems for both as attaching it only > the collection and still having a view is somehow unnatural. Why? If you just paginate a collection, the two would be equal. > I'm not sure where is the problem here. There is nothing against a > server to return this to GET /users?name=Bob&p=1: > > { > "@id": "/users", > "@type": "Collection", > "member": [ ...10 Bob items... ], > "totalItems": 50, > "view": { > "@id": "/users?name=Bob&p=1", > "@type": "PartialCollectionView", > "first": "/users?name=Bob&p=1", > "next": "/users?name=Bob&p=2", > "last": "/users?name=Bob&p=5" > } > } > > while for GET /users it would return just return this: > > { > "@id": "/users", > "@type": "Collection", > "member": [ ...all items... ], > "totalItems": 10000 > } The problem is that the server would lie. In the first response it says that /users has 50 items and in the second it says it has 10,000. >>>> To help think about it, let's imagine we subclass Collection and use >>>> something like FilteredCollection which could then include some custom >>>> predicates like "appliedFilter": {"name": "Bob"}, and the link to the >>>> unfiltered collection which should be unambiguous. >> >> How would a FilteredCollection differ from a PartialCollectionView? > > I think this is is due to a "unlucky" PartialCollectionView name. > PartialCollectionView is a view already, but it's name suggests it's only > for pages. Did you mean "it's only for collections"? We are discussing collections here. > I think I suggested something more generic like PartialView - > this would avoid such situations. You didn't AFAICT :-) >>> Your idea seems sound. I'd have to defer that to other on this list for >>> detailed discussion. My thought is that the "appliedFilter" is >>> essentially an instance of a IriTemplate with variables filled in. I >>> would model it with the IriTemplate in mind. > > We somehow start to have this discussion in several places (Ruben's > hydra:filter not to look to far). Maybe it's worth of starting a > separate discussion on whether we want anything other than paging in the > core or not and if we want, how should we approach filtering or in > general view crafting? Yeah, the discussion is split between a few threads. We also have https://www.w3.org/community/hydra/wiki/Client-initiated_pagination -- Markus Lanthaler @markuslanthaler
Received on Friday, 27 November 2015 20:36:17 UTC