证明某些东西不能用描述逻辑来表达是很困难的。有几种方法可以做到这一点。例如,考虑可以表达所有 SROIQ 的 FOL 片段,将涵盖您的案例的 FOL 片段添加到其中,并研究结果逻辑的复杂性。如果复杂度严格高于 SROIQ,那么显然 SROIQ 不足以表达你想要的。您还可以研究模型的形状。例如,在 ALC 中,总是存在任何一致 KB 的有限模型。如果通过添加新结构可以证明必须有无限的模型,那么您就无法在 ALC 中表达您的结构。等等。
回到你的具体案例,所有红色汽车都比所有蓝色汽车都好(这个说法值得商榷!)。你不能证明它不能用 SROIQ 表达,因为它可以!这种结构(称为概念产品,因为它对应于两类的 carthesian 产品,即red
在您的情况下)由 Rudolph、Krötzsch 和 Hitzler于blue
2008 年发表的题为“所有大象比所有老鼠都大”的研究论文解决了这一问题。这篇论文证明了概念产品可以用 OWL 2 DL 来表达,并解释了它是如何实现的。
这在 OWL 中按如下方式完成,以 Turtle 语法序列化(:r1
并且:r2
必须是新的角色名称,不在其他任何地方使用,并且:x
必须是新的个人名称,不在其他地方使用):
: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
] .