1

是否可以使用 swrl 规则进行事实一致性检查?

如果我们有:

parent(?x,?y) ∧ brother(?y,?z) ⇒ uncle(?x,?z)

新的事实由此产生。

但相反,我拥有的是一组事实(一些一致的事实并非如此)。

:p1 parent :c1 .
:p2 brother :p1 .

:p1 uncle :c1 .    # inconsistent
:p1 uncle :p1 .    # inconsistent
:p2 uncle :c1 .    # consistent.

可以使用 swrl 或替代技术来突出我的事实表中的这些不一致吗?

parent(?x,?y) ∧ brother(?y,?z) <-> uncle(?x,?z)

谢谢

4

1 回答 1

1

期望的结果可以通过声明是不uncleOf自反的并且与parentOf不相交来实现的uncleOf

ObjectProperty: childOf
    Characteristics: Irreflexive

ObjectProperty: parentOf
    Characteristics: Irreflexive

ObjectProperty: brotherOf

ObjectProperty: uncleOf
    Characteristics: Irreflexive

ObjectProperty: owl:topObjectProperty

Individual: c1

Individual: p1
    Facts:  
     parentOf  c1,
     uncleOf  c1

Individual: p2
    Facts:  
     brotherOf  p1

DisjointProperties: 
    childOf,parentOf,brotherOf,uncleOf
Rule: 
    brotherOf(?x, ?y), parentOf(?y, ?z) - uncleOf(?x, ?z)
于 2018-07-10T05:05:06.733 回答