【发布时间】:2018-05-19 12:29:26
【问题描述】:
我有一个关于如何在 SWRQL 中定义两个不同个体的问题。这是一个例子。 如果 B 是 A 的儿子; 如果 C 是 A 的儿子; 那么B和C是兄弟。 这是 SWRL 规则: isSunOf(?BB, ?AA) ^ isSunOf(?CC, ?AA) -> isBrotherOf(?BB, ?CC)
我在推理结果中发现,B是B自己的兄弟。如何避免这个问题?
谢谢! 此致, 杨
【问题讨论】:
我有一个关于如何在 SWRQL 中定义两个不同个体的问题。这是一个例子。 如果 B 是 A 的儿子; 如果 C 是 A 的儿子; 那么B和C是兄弟。 这是 SWRL 规则: isSunOf(?BB, ?AA) ^ isSunOf(?CC, ?AA) -> isBrotherOf(?BB, ?CC)
我在推理结果中发现,B是B自己的兄弟。如何避免这个问题?
谢谢! 此致, 杨
【问题讨论】:
使用differentFrom(?a, ?b) 即:
isSonOf(?a, ?c) ^ isSonOf(?b, ?c) ^ differentFrom(?a, ?b) -> isBrotherOf(?a, ?b)
【讨论】:
owl:differentFrom时才有效,因为OWL中没有唯一名称假设,否则规则将不匹配