- From: Gregg Kellogg <gregg@greggkellogg.net>
- Date: Fri, 14 Mar 2014 17:21:23 -0700
- To: public-hydra@w3.org
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. 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. Gregg Kellogg gregg@greggkellogg.net
Received on Saturday, 15 March 2014 00:21:54 UTC