- From: Dietrich Schulten <ds@escalon.de>
- Date: Fri, 27 Feb 2015 07:26:42 +0100
- To: public-hydra@w3.org
Hi, I wanted to share an observation. With our Collection type we have created an interesting thing, if you look at it the following way. If I were to invent a LinkRelation type (only hypothetically, I am not proposing to add such a type), it might look like this: { "@context": { "@vocab": "http://www.w3.org/ns/hydra/core#", "foaf": "http://xmlns.com/foaf/0.1/" }, "@id": "/alice", "linkRelations": [ { "@type": "LinkRelation", "@id": "/alice/friends", "rel": "foaf:knows", } ] } I took the freedom to flatten the manages block and the result was the following. You can map every single item from the LinkRelation above to the Collection below. { "@context": { "@vocab": "http://www.w3.org/ns/hydra/core#", "foaf": "http://xmlns.com/foaf/0.1/" }, "@id": "/alice", "collection": [ { "@type": "Collection", "@id": "/alice/friends", "managesProperty": "foaf:knows", "managesSubject": "/alice", } ] } So a hydra:Collection can be seen as a two-faced link relation. When used on the origin object it is an rfc-5988 link relation (walks and quacks like a duck, see above). When used as the target object of the relation, it becomes a container where you can say more things about the :Collection. We have in fact answered a criticism Mark Nottingham brought up about json-ld back in 2011, when he said that json-ld "also fails to provide a mapping from 5988; where do I put the link relation type?". Turns out he was right when a link to a remote collection is needed. Seen that way I think I can make peace with our collection design :) What was the reason why we introduced a manages block, rather than flattening it to managesProperty, managesSubject, managesObject? Best regards, Dietrich [1] https://www.mnot.net/blog/2011/11/25/linking_in_json
Received on Friday, 27 February 2015 06:33:09 UTC