我正在尝试使用SWRL规则捕获冲突。我了解到SWRL确实支持空头规则(结果)。但Protege不允许定义这样的规则。 我想要实现的一个虚拟例子是
:coverageId
意味着一个人不可能通过hasSon和hasDaughter属性与同一个人链接。如果不可能保护,请指导我如何实现这一目标。
答案 0 :(得分:0)
规则主体可以是空的,但它并不意味着矛盾,就像你的意图一样;它被解释为不适用的规则。规格为here。
如果我理解你的意图正确,那么你可以通过创建两个类来实现:为hasSon
定义一个确切的基数限制为0,为hasDaughter
定义一个确切的基数限制为0,然后将这些类分别指定为hasDaughter
和hasSon
的范围。
这样说明A hasSon B
和A hasDaughter B
会导致不一致。