- From: Markus Lanthaler <markus.lanthaler@gmx.net>
- Date: Wed, 18 Jun 2014 23:47:17 +0200
- To: <public-hydra@w3.org>
On 18 Jun 2014 at 18:15, Jindřich Mynarz wrote:
> On Wed, Jun 18, 2014 at 2:21 PM, Markus Lanthaler wrote:
>> That's a good question. The "main entity" that is returned is a collection but the thing the
>> client is probably interested in are the instances of :Class. I'd say the best thing would be to
>> be more explicit, i.e., expressing that it returns a Collection of :Class instances. This would
>> be quite trivial to describe with OWL (property restriction on member).
>
> If you hint to use OWL in this case, do you mean something like the following?
Yes. I'm modifying your examples directly to show you what I had in mind:
@prefix hydra: <http://www.w3.org/ns/hydra/core#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
</operation/1>
a hydra:Operation ;
hydra:returns
[
rdfs:subClassOf
hydra:Collection,
[
a owl:Restriction ;
owl:onProperty hydra:member ;
owl:allValuesFrom </some/Class>
]
] .
or, in JSON-LD:
{
"@context" : {
"@vocab": "http://www.w3.org/ns/hydra/core#",
"subClassOf": { "@id": http://www.w3.org/2000/01/rdf-schema#subClassOf", "@type": "@vocab" },
"owl": "http://www.w3.org/2002/07/owl#",
"onProperty": { "@type" : "@vocab" },
"allValuesFrom": { "@type" : "@id" }
},
"@id": "/operation/1",
"@type": "Operation"
"returns": {
"subClassOf": [
"Collection",
{
"@type": "owl:Restriction",
"onProperty": "member",
"allValuesFrom": "/some/Class"
}
]
}
}
> I think there may be some minor issues with this design.
>
> Wouldn't this design lead to proliferation of "collection classes" for
> many popular classes? I can imagine that if this was recommended
> practice, then we could see several classes of collections of
> schema:Person or schema:Product etc.
I don't think so because those classes don't need to have a name (or identifier if you prefer). As you see above, you would just
> The description is in OWL (albeit in a simple subset) and there might
> be few clients and developers, who create these clients, that read
> OWL. If the main goal is to support a machine-readable API
> description, which is also readable to most web developers, and
> reasoning support isn't required, then OWL might not be the best way
> how to achieve this goal.
Fully agreed. If this feature turns out to be important, we can introduce a shortcut or something directly into Hydra.
> This design doesn't help solving the ISSUE #41 (a.k.a. collections
> breaking relationships), which I think is very much related, so a
> solution to this issue should be aligned with the solution to ISSUE #41.
I think it's a mostly unrelated issue.
--
Markus Lanthaler
@markuslanthaler
Received on Wednesday, 18 June 2014 21:47:47 UTC