有没有办法根据多个断言的 DataProperties 推断两个实例的等价性

Is there a way to infer equivalence of two instances based on multiple asserted DataProperties

假设您有一个 ontology 如下所述:

ex:Stick a owl:Class;

ex:hasWidth a owl:DataTypeProperty;
ex:hasHeight a owl:DataTypeProperty;

ex:Instance1 a ex:Stick;
    ex:hasWidth "1";
    ex:hasHeight "20".

ex:Instance2 a ex:Stick;
    ex:hasWidth "1";
    ex:hasHeight "20".

ex:Instance3 a ex:Stick;
    ex:hasWidth "2";
    ex:hasHeight "20".

ex:Instance4 a ex:Stick;
    ex:hasWidth "1";
    ex:hasHeight "30".

现在我正在寻找一种方法来推断其他人的 ex:Instance1 owl:SameAs ex:Instance2 和 none 是等价的,但似乎我无法访问个人的价值观以将其与其他人进行比较。

我试过使用 owl:HasKey 函数,但这一次只能采用一个 dataTypeProperty,而不是多个 DataProperties 的组合。当您为 hasWidth 和 hasHeight 添加 owl:HasKey 语句时,在 ex:Instance3 和 ex:Instance4 与 ex:Instance1 和 [= 组合的情况下,您的 ontology 将变得不一致23=].

I have tried using the owl:hasKey function but this can only take one DatatypeProperty at a time and not the combination of multiple data properties.

在 Protégé 中,使用逗号:

曼彻斯特语法:

Class: Stick
    HasKey: hasHeight, hasWidth

乌龟语法:

:Stick a owl:Class ;
       owl:hasKey ( :hasHeight :hasWidth ) .

更多信息:9.5 Keys


使用 SWRL:

hasHeight(?x, ?h) ^ hasHeight(?y, ?h) ^ hasWidth(?x, ?w) ^ hasWidth(?y, ?w) -> sameAs(?x, ?y)