- From: Karol Szczepański <karol.szczepanski@gmail.com>
- Date: Fri, 9 Oct 2015 20:09:20 +0200
- To: "Ruben Verborgh" <ruben.verborgh@ugent.be>
- Cc: <public-hydra@w3.org>
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