- From: Markus Lanthaler <markus.lanthaler@gmx.net>
- Date: Sun, 17 Jan 2016 19:41:33 +0100
- To: <public-hydra@w3.org>
On 14 Jan 2016 at 23:55, Ruben Verborgh wrote:
>>>>> 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.
>>
>> Well, you couldn't have combinations with ORs etc. but you can surely
have
>> other variables which don't act as filters. But you are right, it's not
very
>> flexible. As already said, I'm more than happy to change either the value
of
>> hydra:filter or move hydra:filter from the IriTemplateMapping out to the
>> ViewTemplate
>
> That would be necessary I think.
> Perhaps hydra:filter can disappear in its entirety for now.
> It would be interesting if the view could somehow indicate
> what parameters should be filled out to obtain it.
I think we can't get rid of hydra:filter (or a similar property) if we want
features to stay composable. If we move it out of IriTemplateMapping to
ViewTemplate the example I posted previously could perhaps be modified to
look as follows instead:
{
"@id": /collection",
"@type": "Collection",
"view": {
"@type": "ViewTemplate",
"template": "/collection{?n}",
"filter": {
"operator": "AND",
"property": [ "name" ]
},
"mapping": {
"variable": "n"
"property": "name"
}
}
}
>>>> {
>>>> "@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.
>>
>> Really? So http://api.example.com/an-issue/comments?page=3 would be a
>> collection with no members?
>
> Certainly not :-)
> It might just be that the representation does not list membership
explicitly.
>
> But yes, that would not be too handy for clients just looking at the
collection.
> Another way is to add membership to the view,
> as it can be implied/inferred that they must necessarily also be members
of the collection
> (the other way round is not guaranteed).
Right... it would mean, however, that we would need to change pagination
again.
--
Markus Lanthaler
@markuslanthaler
Received on Sunday, 17 January 2016 18:42:03 UTC