Gerrit; this is a known limitation for the current set of OWL 2 RL
profile rules, and we plan to fix for 3.6.
In the meanwhile, I'd suggest you take a look at the much more
expressive SPARQL property paths. Let's take a great grandfather
example where you may express this using property chain axioms as:
ex:hasGreatGrandFather
owl:propertyChainAxiom
(ex:parent ex:parent ex:father) .
Using SPARQL property paths you need to specify precisely the same
information needed in a property chain axiom:
CONSTRUCT {?me :hasGreatGrandFather ?ggfather}
{ ?me ex:parent/ex:parent/ex:father ?ggfather .
}
Property chain axioms stops there, but you can go much further with
SPARQL. For example, suppose you're trying to link some other
resource to ancestors - like citizenship - and this is modeled in a
couple of ways - :citizenship or :legalCountry. You can specify the
following:
CONSTRUCT {?me :ancestorCitizenship ?ggparentCitizenship}
{ ?me ex:parent/ex:parent/ex:parent/( ex:citizenship |
ex:legalCountry) ?ggparentCitizenship .
}
This is a very common modeling pattern, particularly when merging data
from multiple sources, and it just can't be expressed conveniently in
OWL.
The expressiveness of property paths is much richer that these simple
examples - see
http://www.w3.org/TR/sparql11-property-paths/. It
provides for inverse links, transitivity, alternative paths and
multiple paths in addition to the harcoded path sequence in property
chains. In fact the above can be expressed as:
?me ex:parent{3}/(ex:citizenship | ex:legalCountry) ?
ggparentCitizenship .
...and you could get the citizenship for all grandparent and
greatgrandparents with:
?me :parent{2,3}/(ex:citizenship | ex:legalCountry) ?
ggparentCitizenship .
So there's quite a bit more you can specify with property paths, with
the tradeoff that the expressions are in rules rather than the data,
which is sometimes an advantage.
-- Scott