One of the key aids that helped me to understand Hydra is its diagram, which provides a good overview of how Hydra's vocabulary terms are related. However, what I find confusing is that some of the relations depicted in the diagram aren't present in Hydra's description in RDF. In particular, I'm missing rdfs:domain (or schema:domainIncludes) axioms, which would help me (and, presumably, other developers with semantic web background) to orient in the vocabulary. Having rdfs:domain explicitly set for properties would help to recognize which classes are the properties compatible with; even if this is to be treated with open world assumption as just a hint.
I've scanned through the RDF description of the Hydra Core Vocabulary and found the following properties, which could be enriched with rdfs:domain or schema:domainIncludes, which would likely be a better fit in this case. For each property I tried to guess, mostly using the Hydra's vocabulary diagram, what are its compatible classes.
hydra:apiDocumentation - I assume that any hydra:Resource is compatible with this property.
Is this a more or less correct understanding? I think having these relationships explicitly documented in the vocabulary (and not only in the vocabulary's diagram) would make its intended uses clearer.
_Proposed by Jindřich Mynarz:_
One of the key aids that helped me to understand Hydra is its diagram, which provides a good overview of how Hydra's vocabulary terms are related. However, what I find confusing is that some of the relations depicted in the diagram aren't present in Hydra's description in RDF. In particular, I'm missing
rdfs:domain
(orschema:domainIncludes
) axioms, which would help me (and, presumably, other developers with semantic web background) to orient in the vocabulary. Havingrdfs:domain
explicitly set for properties would help to recognize which classes are the properties compatible with; even if this is to be treated with open world assumption as just a hint.I've scanned through the RDF description of the Hydra Core Vocabulary and found the following properties, which could be enriched with
rdfs:domain
orschema:domainIncludes
, which would likely be a better fit in this case. For each property I tried to guess, mostly using the Hydra's vocabulary diagram, what are its compatible classes.hydra:apiDocumentation
- I assume that anyhydra:Resource
is compatible with this property.hydra:description
-hydra:description schema:domainIncludes hydra:ApiDocumentation, hydra:StatusCodeDescription .
hydra:freetextQuery
-hydra:Resource
?hydra:property
-schema:domainIncludes hydra:SupportedProperty, hydra:IriTemplateMapping .
hydra:required
-schema:domainIncludes hydra:SupportedProperty, hydra:IriTemplateMapping .
hydra:search
-hydra:Resource
?hydra:statusCodes
-schema:domainIncludes hydra:ApiDocumentation, hydra:Operation .
hydra:supportedOperation
-schema:domainIncludes hydra:Class, hydra:Link .
hydra:title
-schema:domainIncludes hydra:ApiDocumentation, hydra:StatusCodeDescription .
Is this a more or less correct understanding? I think having these relationships explicitly documented in the vocabulary (and not only in the vocabulary's diagram) would make its intended uses clearer.