Imagine that given the following two relations:
a(x,y)
b(y,z)
we could derive that:
c(x,z)
then this can be explicitly expressed in Protégé by adding a SuperProperty Of (Chain) for the c property like this:
a o b SubPropertyOf c
With that expressed, imagine that we only know:
a(x,y)
c(x,z)
how can we explicitly express that we therefore also know:
b(y,z)
and this would again be with a SuperProperty Of (Chain), but for the b property?
I first thought to try:
a o inverse(c) SubPropertyOf b
This Protégé didn't like, saying there was a circle. Now I'm just very confused.
The correct expression for the
b(y,z)would beinverse(a) o c SubPropertyOf b, as you want to express that the property path fromytozcorresponds tob. If you have only this axiom this should give you necessary inference. However, you could not use it together with the first axiom,a o b SubPropertyOf c. In this case, you 'define'cviabin the axiom with direct properties and thebviacin the axiom with inverse property. So you have to knowcto definec. This kind of loops are disallowed in OWL 2 DL, that's why Protege tells you about cyclical definitions. All in all, you can only have one of these axioms, but not both of them at the same time.