RE: How to avoid that collections "break" relationships (ISSUE-41)

On Monday, June 02, 2014 10:18 AM, Ruben Verborgh wrote:
> Hi Markus,
> 
> As you've asked for my feedback on this issue before,
> below are my thoughts on the wiki page (for which I thank you again).

Thank you very much for this detailed review.


> LINK TO THE COLLECTION VIA A GENERIC PROPERTY

[...]

> hydra:hasCollection with "property" and "subject" seems better;
> it allows clients to derive that (all?) "allice :knows" triples will be
there.
> However, "hasCollection" is unnecessary in that case,
> because "subject" already gives the needed information.

That's true. But I think it still makes a lot of sense to include this
forward link, i.e., /alice --[hasCollection]--> Collection instead of just
having the indirect reverse link /alice <--[subject]--(bnode)<--[manages]--
Collection.

It's simply much more straightforward to find it that way, especially if you
don't use a triple store.


> Hence, the following is sufficient (1):
>     </alice/friends> :manages [
>         :subject </alice>;
>         :property schema:knows;
>     ].
> (where "manages" might not be the best term).
> However, do we need the extra "manages" indirection?
> Can't we just add the properties directly to </alice/friends>?
> Benefit of "manages": on thing could manage multiple other things.

Exactly. I think that's the main reason. Furthermore, I think it makes it
clearer to what "subject" etc. mean in this context.

   /alice/friends a Collection ;
     :subject /alice

looks a bit strange to me.


> In that regards, the "hasRelationShipIndirection" works too (2):
>     </alice> :hasRelationshipIndirection </alice/friends>.
>     </alice/friends> :property schema:knows.
> 
> The benefit of option (1) is that it is subject-centered.
> It says "this is a document with these properties",
> which seems easier to reuse in other contexts than a chain (2).
> On the other hand, (2) will show up if you enumerate all properties of
</alice>.
> (But hey, we can equally enumerate all properties where </alice> is
object.)

Doesn't the original proposal (hasCollection + manages) give you the best of
both?


Thanks again,
Markus


--
Markus Lanthaler
@markuslanthaler

Received on Tuesday, 3 June 2014 18:40:05 UTC