Please find the modifications (removal of hydra:Resource) of the several rdfs:range, rdfs:domain and rdfs:subClassOf definitions that should fix imposed resource dereferencability .
More details
This should address issue #216 as the core issue was that several places in hydra imposed fact that resources are dereferencable, which in many cases was untrue (not to mention the fact that having i.e. an HTTP based URL doesn't mean it can be freely dereferenced).
There are still a few places where hydra:Resource is left:
both hydra:Link and hydra:TemplatedLink are still hydra:Resource. Removing it from hydra:Link could break hydra:apiDocumentation as it actually should be dereferencable. Also links defined by API should connect callable resources.
the hydra:operation has still domain of hydra:Resource. Operations should be invokable on a callable resource.
both hydra:Collection and hydra:PartialCollectionView are still sub-classes of hydra:Resource. These are API artificial wrappers over some resource sets and should be callable.
all hydra links like hydra:first/hydra:last/hydra:next/hydra:prev have still hydra:Resource as both their domains and ranges. Otherwise the described interlinked set of resources would cease to be, well, interlinked.
both hydra:search and hydra:freetextQuery have still hydra:Resource as it's domain. If a client came that far to have that link, it probably means that the resource is already callable.
Feel free to participate in the review as this is a major modification that should improve hydra's applicability to other than RDF areas.
Summary
Please find the modifications (removal of
hydra:Resource
) of the severalrdfs:range
,rdfs:domain
andrdfs:subClassOf
definitions that should fix imposed resource dereferencability .More details
This should address issue #216 as the core issue was that several places in hydra imposed fact that resources are dereferencable, which in many cases was untrue (not to mention the fact that having i.e. an HTTP based URL doesn't mean it can be freely dereferenced).
There are still a few places where
hydra:Resource
is left:hydra:Link
andhydra:TemplatedLink
are stillhydra:Resource
. Removing it fromhydra:Link
could break hydra:apiDocumentation as it actually should be dereferencable. Also links defined by API should connect callable resources.hydra:operation
has still domain ofhydra:Resource
. Operations should be invokable on a callable resource.hydra:Collection
andhydra:PartialCollectionView
are still sub-classes ofhydra:Resource
. These are API artificial wrappers over some resource sets and should be callable.hydra:first
/hydra:last
/hydra:next
/hydra:prev
have stillhydra:Resource
as both their domains and ranges. Otherwise the described interlinked set of resources would cease to be, well, interlinked.hydra:search
andhydra:freetextQuery
have stillhydra:Resource
as it's domain. If a client came that far to have that link, it probably means that the resource is already callable.Feel free to participate in the review as this is a major modification that should improve hydra's applicability to other than RDF areas.