- From: Markus Lanthaler <markus.lanthaler@gmx.net>
- Date: Mon, 17 Mar 2014 21:02:36 +0100
- To: <public-hydra@w3.org>
On Saturday, March 15, 2014 1:21 AM, Gregg Kellogg wrote:
>
> JSON-LD has the ability to define terms which, when used as properties,
> cause a reverse relationship to be asserted. For example:
>
> {
> "@context": {
> ...,
> "isMemberOf": {"@reverse": "member", "@type": "@id", "@container":
> "@set"}
> }
> }
>
> N3 has a similar is xxx of construct, and RDFa has @rev, which all do
> similar things. The value of these constructs is that it prevents the
> anti-pattern of creating inverse versions of each property. For
> example, if I had a sports team with several members, I might describe
> it as follows:
>
> :49ers a schema:SportsTeam
> schema:member :ColinKaepernick, :FrankGore, ...
>
> When describing each team member, I'd like to use the same predicate to
> describe the reverse relationship
>
> :ColinKaepernick a schema:Person;
> is schema:member of :49ers .
>
> However, SupportedProperty requires that I define a property for each
> of these, particularly when it describes a Link or has operations. It
> might be nice to be able to define a SupportedProperty to be reversed,
> such as the following:
>
> [ a hydra:SupportedProperty;
> hydra:property schema:member;
> hydra:readonly true;
> hydra:writeonly false;
> hydra:reversed true
> ]
>
> Or, perhaps use something like hydra:reversedProperty. That way, if
> schema:Person was a hydra:Class, it could describe properties that
> appear in the lexical form within that entity.
Really good point. I agree, this is something we should really address. I'm
leaning towards hydra:reverse(d)Property instead of having "just" a flag.
I've created ISSUE-40 to track this:
https://github.com/HydraCG/Specifications/issues/40
In most cases, you would probably want to "overwrite" the properties' label
and description which has been tracked as ISSUE-1:
https://github.com/HydraCG/Specifications/issues/1
> This would also be a
> good use of LDF, where an associated pattern would have the predicate
> and object values specified and wild-card the subject.
In the case of LDF I don't think you really need reverse properties but
that's a question that Ruben should answer.
--
Markus Lanthaler
@markuslanthaler
Received on Monday, 17 March 2014 20:03:08 UTC