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 fromy
toz
corresponds 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'c
viab
in the axiom with direct properties and theb
viac
in the axiom with inverse property. So you have to knowc
to 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.