- From: Tomasz Pluskiewicz <tomasz@t-code.pl>
- Date: Tue, 16 Feb 2016 09:18:55 +0000
- To: "Pierre-Antoine Champin" <pierre-antoine.champin@liris.cnrs.fr>, "Maxim Kolchin" <kolchinmax@gmail.com>
- Cc: "Karol SzczepaĆski" <karol.szczepanski@gmail.com>, "Hydra" <public-hydra@w3.org>
Hi Pierre-Antoine I'll reply partially here and share more thoughts in reply to Ruben Thanks, Tom February 15 2016 12:03 PM, "Pierre-Antoine Champin" <pierre-antoine.champin@liris.cnrs.fr> wrote: > Hi all, I've been following this thread and did only find time to reply now, so here are a few > thoughts; > > 1/ about relating filters to properties: I disagree with Thomasz that it is tying the filter > definition to the implementation. The JSON-LD *representation* of a resource states that this > resource has some properties, regardless of how the state of that resource is internally > represented (RDF, XML, JSON, SQL...). The properties related to filters are those abstract > properties in the representation, not the internal ones. Okay actually you are right. But we must remember that resources are representations nonetheless. > 2/ in a similar line of thought, I am not sure there is a need to distinguish direct mappings and > indirect mappings. Even if the representation of a person only exposes the schema:birthDate > property, it is not semantically incorrect to assume that this person also has a foaf:age (even if > implicit). If a client "understands" the notions of schema:birthDate and foaf:age, then it should > also "understand" the relations between the two, and having a filter on the implicit property > foaf:age should not be much different, for that client, than on the explicit property > schema:birthDate. > > The same goes for Thomasz's example of the article length; any article may be understood to have an > implicit ns:length property, and constraining this property with a maxLength variable is the same > as constraining items with a maxPrice variable. > But AFAICT mapped properties are meant to be looked up in SupportedProperties of a hydra:Class. With you line of though I'm getting the impression of requiring out-of-band information: implicit properties or properties implicitly derived from other properties. > 3/ we have been focusing on the object (value) of the properties (and how they should be compared > to the variables in the templated link), but not on the subjects of those properties. I see > distinct cases in the examples we have been working on: > 3.1/ views on collections usually consider that *members* of the collections to be the subjects of > the filtering properties; That is usually true, but view's parameters don't necessarily have to be filters. hydra:page is exactly such example. > 3.2/ Thomasz's views on non-collection resources consider the queries resource itself to be the > subject; This will not always be true. > 3.3/ the language=en parameter is tricky, as it is not an RDF property of anything, but rather an > attribute of the litterals contained in the requested view; > 3.4/ the hydra:page parameter mentionned by Karol is also tricky, as it applies to the page > resource (rather than to the requested resource or its members). > Bottom line is template parameters don't always have to map to any part of the representation itself but be required by the server for other reason. Another example: an image, which can be compressed on demand: { "@id": "/some/image", "@type": "schema:ImageObject", "schema:contentUrl": { "template": "/some/image/bytes/{compressRatio}" } } The compressRatio is arguably not a property of the resource itself but rather a parameter for the server defining how the representation is produced.
Received on Tuesday, 16 February 2016 09:19:31 UTC