以以下语句为例:
@base <http://ex.org/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
<hasPart> a owl:ObjectProperty .
<compatibleWith> a owl:ObjectProperty .
<main> owl:differentFrom <part> .
<main> <hasPart> <part> .
我可以通过添加这两个语句之一来推断
<part>
是 compatibleWith
<main>
<compatibleWith> owl:propertyChainAxiom( [owl:inverseOf <hasPart>] ) .
或
<compatibleWith> owl:inverseOf <hasPart> .
在我看来,这两种说法对于人类来说在语义上是否有所不同,因为兼容性并不是真正拥有一部分的反面。 第一个宁愿声明如果存在 hasPart 关系,则另一个方向上也存在 CompatibleWith 关系。
但是,我想知道对于 OWL 推理机来说,除了添加空白节点和 propertyChainAxiom 语句之外,这两个语句是否基本上等效。
还有其他的想法我可以(也许不想)用一种说法来推理,但不能用另一种说法来推理吗?
例如,差异变得明显:
<compatibleWith> a owl:SymmetricProperty .
已添加。
使用
<compatibleWith> a owl:SymmetricProperty .
<compatibleWith> owl:inverseOf <hasPart> .
这里也给出了相反的原因:
<part> <hasPart> <main> .
如果某些部分不同,跟进
<hasPart> a owl:InverseFunctionalProperty
甚至可能会导致错误。
<compatibleWith> a owl:SymmetricProperty .
<compatibleWith> owl:propertyChainAxiom( [owl:inverseOf <hasPart>] ) .
并不认为
<part> <hasPart> <main> .
在这里产生了至关重要的影响。