Re: What is the correct media-type for a Hydra specification?

Hi Erik,

Am 19.04.2015 um 00:41 schrieb Erik Wilde:
> hello dietrich.
> 
> On 2015-04-18 11:03, Dietrich Schulten wrote:
>> A server which supports RDF-based resources can express possible restful
>> interactions in at least three ways (I know of):
>> - LDP (mainly for CRUD-style interaction)
>> - Schema.org actions
>> - Hydra
>> As a client, how can I request an interaction style I support? As a
>> server, how can I avoid to lump all representations into my responses to
>> make sure every RDF client understands me?
> 
> thanks, that's exactly the point i am trying to make. if the media type
> only signals the metamodel (and maybe the serialization of it, but
> that's a different issue), but the represented domain model is hidden
> from the uniform interface, you lose the ability to talk about it.
> that's unfortunate, and the main reason why REST asks for resources to
> be self-describing. and that means in terms of domain models in the
> uniform interface, so that interactions can be built around exposing
> those, and acting on them.

Although, we need to consider well what it means to say

Accept: application/ld+json; profile="<a hydra identifier>".

Clearly this should not preclude usage of other vocabularies. If the
profile identifier is the hydra prefix, it would be easy to mistake the
profile as an expectation to use that vocab and not use others. I want
to say: use hydra constructs for interaction and collection
descriptions, for everything else do what you want.

I found that schema.org just recently designed their own all-purpose
ordered collection type (http://schema.org/ItemList). And they have
schema:potentialAction, which is designed quite differently from
hydra:operation. That is exactly the sort of thing I would like to make
negotiable: do I want hydra:operation or schema:potentialAction or LDP
OPTIONS to describe interactions, and do I want hydra:Collection or
schema:ItemList or ldp:DirectContainer/BasicContainer/IndirectContainer
for containers?

Following the issue which lead to the ld+json media-type profile
parameter [1], the json-ld authors wanted to make it possible to
negotiate ld+json structures which basically express the same thing, but
in different structures.

What I see happening in the future is that people invent private json-ld
profiles to differentiate this. We can prevent this for hydra, at least,
by defining an official media-type profile value.

If so, which profile value would express that collections and
interactions should be expressed in terms of hydra?
Maybe "http://www.w3.org/ns/hydra/core#Resource"?

To those of us who frown upon hydra:Resource, SCNR ;)

Best regards,
Dietrich

PS: the fact that container types proliferate is not a good sign IMO. I
wonder why this is so and if it can or should be prevented. But that is
a different issue.


[1] https://github.com/json-ld/json-ld.org/issues/164

Received on Sunday, 19 April 2015 09:00:01 UTC