如何推断出否定对象 属性 断言?
How do I get a Negative Object Property Assertion inferred?
我在 ontology 工作,我有以下 swrl 规则:
User(?u) ^ Project(?p) ^ isRelatedTo(?u, ?p) ^ isMemberOf(?u, ?p) -> verifiedAssociation(?u, ?p)
而且我想知道否定对象 属性 断言何时发生(当 verifiedAssociation 不正确时)。
我在 Protégé 上找到了选项卡 属性 断言,但我希望(由推理者)推断出这一点。而且我不知道如何创建规则来实现这一点。
有人可以帮我吗?
无法通过规则实现该推理。原因是你需要的是能够说
User(?u) ^ Project(?p) ^ isNotRelatedTo(?u, ?p) ^ isNotMemberOf(?u, ?p)
-> unverifiedAssociation(?u, ?p)
但你需要说 ?u
与 any ?p
无关,不仅是特定的 ?p。这超出了规则的范围,也超出了 OWL/DLs 的范围,因为它需要一种封闭世界推理而不是开放世界推理的形式。
为了达到你想要的结果,你需要以某种方式关闭你的世界。因此,您的用户要么已分配给项目,要么尚未分配。让我们介绍一下与Project
不相交的NoProject
class。然后添加规则
User(?u) ^ NoProject(?p)
-> unverifiedAssociation(?u, ?p)
其中 unverifiedAssociation
与 verifiedAssociation
不相交。
您可能还想查看 具有“空”对象的个人 属性
堆栈溢出问题。
更新
SWRL 不支持根据 SWRL FAQ 的否定。唯一的方法是定义不相交的对象属性的对偶。即,
ObjectProperty: isMemberOf
ObjectProperty: isNotMemberOf
DisjointWith: isMemberOf
对 VerifiedAssociation
和 NotVerifiedAssociation
执行类似操作。然后你以肯定的形式定义你的规则:
User(?u) ^ Project(?p) ^ isRelatedTo(?u, ?p) ^ isNotMemberOf(?u, ?p)
-> NotVerifiedAssociation(?u, ?p)
我在 ontology 工作,我有以下 swrl 规则:
User(?u) ^ Project(?p) ^ isRelatedTo(?u, ?p) ^ isMemberOf(?u, ?p) -> verifiedAssociation(?u, ?p)
而且我想知道否定对象 属性 断言何时发生(当 verifiedAssociation 不正确时)。
我在 Protégé 上找到了选项卡 属性 断言,但我希望(由推理者)推断出这一点。而且我不知道如何创建规则来实现这一点。
有人可以帮我吗?
无法通过规则实现该推理。原因是你需要的是能够说
User(?u) ^ Project(?p) ^ isNotRelatedTo(?u, ?p) ^ isNotMemberOf(?u, ?p)
-> unverifiedAssociation(?u, ?p)
但你需要说 ?u
与 any ?p
无关,不仅是特定的 ?p。这超出了规则的范围,也超出了 OWL/DLs 的范围,因为它需要一种封闭世界推理而不是开放世界推理的形式。
为了达到你想要的结果,你需要以某种方式关闭你的世界。因此,您的用户要么已分配给项目,要么尚未分配。让我们介绍一下与Project
不相交的NoProject
class。然后添加规则
User(?u) ^ NoProject(?p)
-> unverifiedAssociation(?u, ?p)
其中 unverifiedAssociation
与 verifiedAssociation
不相交。
您可能还想查看 具有“空”对象的个人 属性 堆栈溢出问题。
更新
SWRL 不支持根据 SWRL FAQ 的否定。唯一的方法是定义不相交的对象属性的对偶。即,
ObjectProperty: isMemberOf
ObjectProperty: isNotMemberOf
DisjointWith: isMemberOf
对 VerifiedAssociation
和 NotVerifiedAssociation
执行类似操作。然后你以肯定的形式定义你的规则:
User(?u) ^ Project(?p) ^ isRelatedTo(?u, ?p) ^ isNotMemberOf(?u, ?p)
-> NotVerifiedAssociation(?u, ?p)