- From: Markus Lanthaler <markus.lanthaler@gmx.net>
- Date: Sun, 22 Jun 2014 22:01:11 +0200
- To: <public-hydra@w3.org>
On 17 Jun 2014 at 12:19, Jindřich Mynarz wrote: > I was thinking a bit more about relating hydra:Classes to > hydra:IriTemplates. It seems to me that the intended way how to do > that is by using hydra:TemplatedLink to mint a property (like > hydra:search is defined). Consider the following example: You still have search in mind, right? In my response below, I assume you want to tell a client that the API supports schema:Person and how to find a specific person. > :simple-search-api a hydra:ApiDocumentation ; > hydra:supportedClass schema:Person . > > schema:Person a hydra:Class ; > :simple-search-person :simple-search-person-template . > > :simple-search-person a hydra:TemplatedLink ; > # Additional possible assertions: > # rdfs:domain hydra:Class ; > # rdfs:range hydra:IriTemplate ; > # rdfs:subPropertyOf hydra:search ; That should be enough IMO. You don't really need to describe an operation if all you do is to connect two resources. > hydra:supportedOperation :simple-search-person-operation . > :simple-search-person-operation a hydra:Operation ; > hydra:method "GET" ; > hydra:returns schema:Person . # or instead hydra:Collection (of > schema:Persons)? > > :simple-search-person-template a hydra:IriTemplate ; > hydra:template "/person{?name}" ; > hydra:mapping [ > a hydra:IriTemplateMapping ; > hydra:variable "name" ; > hydra:property schema:name ; > hydra:required true > ] . > > However, this example looks a bit convoluted and the > :simple-search-person-operation seems to be underspecified. I also Yeah, to be useful, the operation would need to be typed. Something like a FindInstanceOperation... > thought about relating the hydra:IriTemplate to hydra:Class via > hydra:supportedProperty mechanism. In this way, hydra:property of the > hydra:SupportedProperty would link to a hydra:TemplatedLink, as in the > following example: > > schema:Person a hydra:Class ; > hydra:supportedProperty [ > a hydra:SupportedProperty ; > hydra:property :simple-search-person > ] . > :simple-search-person a hydra:TemplatedLink . > > If I approach describing the relation in this way, I don't know how to > relate a hydra:IriTemplate to the :simple-search-person templated > link. Yeah, because you would need to do that on each instance. "supportedProperty" describes what properties instances of that class support respectively what properties are required when used in "expects". -- Markus Lanthaler @markuslanthaler
Received on Sunday, 22 June 2014 20:01:42 UTC