- From: Tomasz Pluskiewicz <tomasz@t-code.pl>
- Date: Wed, 14 Jan 2015 09:18:01 +0000
- To: public-hydra@w3.org
January 14 2015 9:43 AM, "Ruben Verborgh" <ruben.verborgh@ugent.be> wrote:
>> Right, but the goal is not to find out whether they are dereferenceable or
>> not but whether it is worth (from the publishers POV) to follow them.
>
> That's not how they are defined and used in the Hydra Core Vocabulary.
>
>> It's like putting URLs in the content (text) of an HTML document vs. marking
>> them up as links.
>
> I disagree.
> With Linked Data, URLs in RDF are links, cfr. what Kingsley said:
>
>> You could write a regex that finds all URLs in text,
>> includes all namespace declaration etc. and follows them. Or you just follow
>> things that have been marked as being hyperlinks and thus intended to be
>> followed.
>
But again, as Kingsley said, it's the predicate that informs the client that a URL could be dereferenced. Even if it's just a hint. Think <link />, <a href="" /> and Link: header. What if the server returns a resource like
{
"@context": {
"author": "dcterms:author"
},
"author": { "@id": "http://example/person/Tom" }
}
There is no indication that http://example/person/Tom is or isn't dereferencable. Does that mean that client should not try? Or assume that it's not dereferencable? The only solid way is to declare the dcterms:author relation as a Link.
> Users want to be able to follow any URL.
> If a URL is not made “clickable”, it's nearly always omission of the publisher.
> Then we default to copy/paste, but still dereference.
>
>>> Indeed, every resource that is _not_ labeled with hydra:Resource,
>>> but still dereferences, is by definition a hydra:Resource.
>>
>> I can see how you come to that conclusion based on its current definition
>> but that wasn't the intention.
>
> Yeah. To me, an indication that we really need something else.
Agreed. And I think that the conclusion is logical indeed in light of open world assumption. The problem is that the semantics of hydra:Resource. You cannot infer that a resource is hydra:Resource by using a reasoner for example. This may sound weird that I bring it up but I think that the word semantics is used is a different meaning than it usually is when talking about the Semantic Web.
>
>>
>> When we discuss these things, we always operate in the context of a specific
>> Web API.
>
> I hope not :-) Cooler things are possible if we don't.
>
>> the absence of
>> hydra:Resource should be seen as a very strong signal that it isn't worth
>> dereferencing a URI.
>
This implies that every single resource that I want clients to dereference should be marked as hydra:Resource. It seems like a lot of redundant triples. Aren't most resources (in an API especially) dereferencable. It will be at least more practical to have a facility to mark them otherwise if required, as Ruben has suggested below and earlier.
And again I don't think we should be considering predicate and class URIs.
> That interpretation is not possible under the RDF model.
> We have a lot of freedom, but we cannot bend the model.
>
>>
>> OK, so, in your opinion. How could we address that purpose then?
>
> <resourceA> hydra:dereferenceable true.
> <resourceB> hydra:dereferenceable false.
>
> This mechanism allows for both interpretations, without bending the model.
>
> Even though I still doubt the usefulness of marking dereferenceability as such,
> if it is necessary for some reason, this seems a more appropriate way.
>
> Note that what you _actually_ want to express is closer to
> <serverX> :says :statementY.
> GRAPH statementY {
> <clientY> :shouldDereference <resourceA>.
> <clientY> :shouldNotDereference <resourceB>.
> }
> but nobody, including myself, will want to take things this far :-)
> I just added this to show how much of a mismatch we currently have.
>
> Best,
>
> Ruben
Received on Wednesday, 14 January 2015 09:18:56 UTC