猫头鹰swrl用于事实一致性检查的规​​则,当且仅当

时间:2018-07-09 14:16:53

标签: owl swrl data-consistency

是否可以使用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)

谢谢

1 个答案:

答案 0 :(得分:1)

可以通过声明uncleOf不自反并且parentOfuncleOf不相交来实现预期的结果。

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)