owl:inverseOf
I will use this issue to explain various nuances of owl:inverseOf
- http://richard.cyganiak.de/blog/2006/06/an-rdf-design-pattern-inverse-property-labels/
https://github.com/mnot/I-D/issues/39#issuecomment-89789736
In examples which I added I use only single instance of rdf:Property - vf:member
- https://github.com/valueflows/agent/blob/master/examples/hackers4peace.jsonld#L13-L15
- https://github.com/valueflows/agent/blob/master/examples/elf-pavlik.jsonld#L14-L17
As I understand @ahdinosaur currently uses in holodex two different properties hdx:hasMember and hdx:isMemberOf. To formalize that they have exactly the same semantics, but only reverse position of rdf:subject and rdf:object in rdf:Statement, one can use owl:inverseOf
I see need to explore those two ways of approaching the issue. As I see it now it may not make major difference when one traverses the graph, but it may complicate querying it by matching graph patterns!
With defining only one property on vocabulary level, both individual and group will have a single way to describe member relations
With defining both directions on vocabulary level, we end up in situation where individual and group can describe their relation in 3 different ways!
- Please notice that last diagram (using only hasMember) differs from the very first one (member) only by naming of the property/predicate.
- While from given individual perspective of given group perspective it may make more sense to use hasMember or isMemberOf in statements. When we describe something from 3rd person perspective, we can choose directions very arbitrary.
TODO explain difference when used with Collections