Re: Few concepts

Hi Ruben

>But that's not what your RDF above says.
>It says that the operation return _:someResource.
Well, not really. I used blank node. Maybe this syntax gives the idea better 
(I've dropped a hydra:Operation):

my:restOperation hydra:expects [a hydra:Resource; imaginary:ofClass 
schema:Action . ] .

It really says that the operation expects something that is a resource of 
type schema:Action. This is how RDF spec treats blanks - something that is 
unnamed.

>Even if you define "hydra:expects" very liberally,
>we'll still run into problems (as the "imaginary" shows).
>_:someResource is not a resource but a prototype for a resource.
I don't agree - prototype would look like the genuine one, but with some 
fakes here and there. Here is a anonymous resource with few pointers on how 
it should look like.
>Actually, don't we just need SHACL here?
As I wrote, I don't want to impose on using anything specific, but I 
mentioned SHACL and it may be an option here. I think it defines general 
constrains that can be applied on the shape, thus I might be a candidate.

>Pages are certainly not details; we need to get this straight.
True, but specific links like first or last page are. I prefer to tell 
client on how to craft a link to a page (give him a fishing rod) rather than 
to tell him every single possibility hoping any of them will be of use to 
him (give him fish instead).

>The fact that Hydra is modelled with OWL/RDFS does not mean in any way 
>clients would need a reasoner.
>Nearly every RDF document anybody ever used had properties in there that 
>were modelled with OWL,
>yet few clients actually had reasoning support. I mean, even rdf:type is 
>modelled that way.
That's why I also stated that we probably won't be able to completetly be 
out of this scope.

>> Example: hydra:property has a range of rdf:Property and this class can 
>> have in it's range an owl:Restriction - this is the shortest path to 
>> problems.
>No.
O yes. Consider this:
my:restOperation hydra:expects [
    owl:onProperty bar:serves;
    owl:allValuesFrom [ owl:intersectionOf (alcohols:Wine [owl:onProperty 
bar:hasColor; owl:hasValue bar:Red]) ]
]
What kind of machinery on the client side would be required to find out that 
the operation expects an instance of a red wine service?
I think Marcus' statement on what Hydra client MUST understand would be a 
good solution.

Thank for valuable feedback. I enjoy this!

Best

Karol 

Received on Friday, 9 October 2015 18:09:24 UTC