Knowing a and c does not entail b. That can be easily ilustarted with the classical example, definition of uncle:
:hasUncle
rdf:type owl:ObjectProperty ;
owl:propertyChainAxiom (
:hasParent
:hasBrother
) .
Then if :David :hasParent :Mary
and :Mary :hasBrother :John
, a DL reasoner would indeed infer that :David :hasUncle :John
. But if we assert that :David :hasUncle :John
and :David :hasParent :Mary
, that is not sufficient to infer that :Mary :hasBrother :John
. And indeed John can be a brother of another parent of Mary.
Please note that the definition statement says that the property chain is subProperty of :hasUncle
and not equivalent property. So, even if you assert :hasParent
as functional, the reasoner would still not infer b from a and c. However, OWL2 does not allow to have equivalent combination of object properties.
The property chains should be applied with care. For example, in S1 º S2 º S3 º ... º Sn ⊑ R, R can only be on the first or last place of the left side of the expression. Otherwise it won't be decidable. This is one of the restrictions to Regular RBoxes. And property chains, or more formally "General Role Inclusion" can only be decidable if applied to Regular RBoxes.