- From: Wasin Passornpakorn <pp.wasin@gmail.com>
- Date: Tue, 6 Oct 2015 08:16:41 +0700
- To: Ruben Verborgh <ruben.verborgh@ugent.be>
- Cc: public-hydra@w3.org
On Tue, Oct 6, 2015 at 3:19 AM, Ruben Verborgh <ruben.verborgh@ugent.be> wrote:
>> From what i understand, hydra:search is used in more general case.
>
> What I remember is that hydra:filter is a subproperty of hydra:search.
> But _not_ in the sense that it changes the domain.
> Rather, hydra:search has a looser semantic coupling:
> it doesn't define _how_ the API uses the value to search data.
> On the other hand, hydra:filter has the specific semantics
> that it only returns data elements where the components match exactly.
>
>> It can attach to any resource.
>
> Both hydra:search and hydra:filter attach to a collection [1].
>
>> On the other hand, hydra:filter is used only on hydra:Collection [1].
>
> Same holds for hydra:search.
Oh you're right.
Sorry for my misunderstanding.
And thank you for your explanation.
>> So, just use hydra:search. It is still OK, i think.
>
> Is okay (because hydra:filter would be a subproperty of it);
> but then I wonder what the difference is with TPF?
>
Firstly, let me clarify that i don't want to change TPF.
I just want to adopt TPF into hydra:Collection.
So if there are anything incorrect against current specification of
TPF, please correct me.
The different between my API and the TPF example [1] is the selector.
My API is design to query only member of hydra:Collection.
Therefore, the triples that only have rdfs:label will not return in
the response.
The triples that will return in the response must
- it has rdfs:label and
- it is member of current collection.
To make your understand, what I think:
I will show the implementation of TPF server by SPARQL query.
######1) The TPF example (triple pattern)#####
CONSTRUCT { ?s rdfs:label ?label }
WHERE {
?s rdfs:label ?label .
}
######2) My API (graph pattern)##########
CONSTRUCT { ?member rdfs:label ?label }
WHERE {
<http://example.org/collection> hydra:member ?member .
?member rdfs:label ?label .
}
>From what I understand, LDF [2] want to support this type of selector
( (2) My API graph pattern).
However, I cannot find any example about how to achieve this through
hydra vocabulary.
Therefore, I decide to use hydra:filter to fix this sentence in the
server implementation:
<http://example.org/collection> hydra:member ?member .
Then the client only assign the property of member, that is rdfs:label.
The server will have assumption that hydra:filter or hydra:search in
the hydra:Collection is used only to filter the members of collection.
Not the collection itself or another triples that is not the member of
collection.
[1] http://www.hydra-cg.com/spec/latest/triple-pattern-fragments/
[2] http://www.hydra-cg.com/spec/latest/linked-data-fragments/
Best,
Wasin
Received on Tuesday, 6 October 2015 01:17:13 UTC