RE: How to avoid that collections "break" relationships

On Monday, March 31, 2014 5:29 PM, Ruben Verborgh wrote:
>    </people/markus> foaf:knows [ hydra:memberOf
> </people/markus/friends> ].
> 
>     means "Markus knows somebody who is a member of collection X".
> 
> Check that collection X to find out if Markus knows more of them.

That second sentence is where this approach loses its appeal for me. IMO, it
doesn't really suggest to go and check "collection X to find out if Markus
knows more of them". Of course, you can always do, but why should you. A
person, and that's all we know about that blank node, might be a member of
multiple collections. Why should I go and inspect exactly this one to find
Markus' friends?


> I'm not saying there will be more in there. just saying that you could
> check it.
> Handy for a hypermedia client. Works in practice, doesn't break the
> model.
> 
> If you want more semantics, just add them:
>     </people/markus/friends> :isACollectionOf [
>         :hasPredicate foaf:knows;
>         :hasSubject </people/Markus
>     ]
> But that is _not_ needed to achieve my 1 and 2.

I would be interested to hear your opinion on the thought I posted
yesterday:

  {
    "@id": "/markus",
    "hasRelationshipIndirection": {
      "property": "schema:knows",
      "resource": "/markus/friends"
    }
  }

It could also be tweaked into something like

  {
    "@id": "/markus",
    "hasRelationshipIndirector": {
      "schema:knows": "/markus/friends"
    }
  }

so that it works nicely with property paths.



--
Markus Lanthaler
@markuslanthaler

Received on Monday, 31 March 2014 18:26:43 UTC