Reversed predicates as SupportedProperties

I think this has come up before is how to avoid the anti-pattern of defining an inverse property for each property. For example, schema:Organization has a schema:subOrganization property, but no subOrganizationOf property. In RDFa and JSON-LD this can be dealt with syntactically, for example:

{
  "@context": {
    "@vocab": "http://schema.org",
    "subOrganizationOf": {"@reverse": "subOrganization"}
  },
  "@id": "/giants",
  "@type": "SportsTeam",
  "subOrganizationOf": "/MLBNationalLeagueWest"
}

How can I define this as a supported property in Hydra? Perhaps something like the following:

:SportsTeam a hydra:Class;
  hydra:supportedProperty [
    a hydra:InverseProperty
    hydra:property schema:subOrganization
  ] .

hydra:InverseProperty could then be defined to describe the relationship of hydra:property to be reversed, although this might not hang together if reasoning is involved. Perhaps we also need a hydra:inverseProperty predicate. Thoughts?

Gregg Kellogg
gregg@greggkellogg.net

Received on Saturday, 12 April 2014 22:03:24 UTC