Proving that something cannot be expressed in a description logic is difficult. There are several ways to do it. For instance, consider the fragment of FOL that can express all of SROIQ, add to it the fragment of FOL that covers your case, and study the complexity of the resulting logic. If the complexity is strictly higher than the one of SROIQ, then clearly SROIQ is insufficient to express what you want. You could also study the shapes of the models. For instance, in ALC, there are always finite models of any consistent KB. If by adding new constructs you can show that there must be infinite models, then you can't express your constructs in ALC. Etc.
Back to your specific case where all red cars are better than all blue cars (a statement that is highly debatable!). You con't prove that it cannot be expressed in SROIQ because it can! This kind of constructs (called concept-product because it corresponds to a carthesian product of two classes, namely red
and blue
in your case) is addressed by a 2008 research paper titled All elephants are bigger than all mice by Rudolph, Krötzsch, and Hitzler. The paper proves that concept-products can be expressed in OWL 2 DL and explains how it can be done in general.
This is done as follows in OWL, serialised in the Turtle syntax (:r1
and :r2
must be fresh role names, not used anywhere else, and :x
must be a fresh individual name, not used elsewhere):
:r1 a owl:ObjectProperty .
:r2 a owl:ObjectProperty .
:x a owl:Thing .
:better a owl:ObjectProperty;
owl:propertyChainAxiom (:r1 :r2) .
:Red a owl:Class;
rdfs:subClassOf [
a owl:Restriction;
owl:onProperty :r1;
owl:hasValue :x
] .
:Blue a owl:Class;
rdfs:subClassOf [
a owl:Restriction;
owl:onProperty [owl:inverseOf :r2];
owl:hasValue :x
] .