Closed julesjacobsen closed 2 years ago
Hi @julesjacobsen. The original motivation for adding additional relationships was to support some of the role chaining axioms like this one:
isBiologicalParent o isBiologicalSibling o isBiologicalChild SubPropertyOf: isCousin
Initially, we only had relationships going in one direction (i.e., from children to parents) but in this case we need to traverse back down, so we added relationships in the other direction (isBiologicalChild in this case). Some of the existing examples of family history ontologies also have the inverse relationships, e.g., hasBiologicalChild, so we added those too.
However, I agree that having the inverse relationships might complicate things and I don't think we need them for the axioms. I am happy to get rid of the inverse relationships and keep only the isXXXOf ones (and also happy to add the Of suffix).
Thoughts @buske? Is this ok?
You can replace all instances of an inverse of R in a property chain with an object property expression (inverseOf R)
e.g.
isBiologicalParent o isBiologicalSibling o inverse(isBiologicalParent) SubPropertyOf: isCousin
But I think we may be mixing up ontology and data modeling here. The ontology should be as expressive as possible and can name inverses. The mechanism for subsetting this for a data exchange format would be different. E.g. in linkml we would use a semantic enum
aside: isROLE
is an odd naming pattern and leaves direction ambiguous. I recommend:
And reserving isROLE for unary predicates (UPDATE I see this is covered in #13)
Having said that, I don't think this is good practice:
it's up to you but it's much more standard to indicate synonyms with an annotation property rather than having two URIs for the same concept
Thanks @cmungall. I agree with your recommendations and will update the ontology following the naming conventions you suggested.
@ametke @buske Currently the ontology has a bunch of inverse relationships namely
is
<->has
. Is there a good reason for this? Allowing this level of flexibility seems to be asking for trouble. For example the father - child relationship has these terms:This will allow the same father - child relationship to be expressed in six (!!!) different ways:
Only allowing one direction using an
is_X_of
relationship will massively simplify and standardise the way people can express these relationships. For example, only allowing these concepts for parent child relationship:Would only allow people to say this of Bart and Homer:
or more precisely
I still maintain it would be better to have an 'of' suffix to these 'is' terms as mentioned in issue #13