2016-02-05 20 views
0

我試圖使用SWRL規則捕獲衝突。我瞭解到SWRL確實支持空頭的規則(因此)。但是,Protege不允許定義這樣的規則。 什麼,我想實現一個虛擬的例子是如何使用Protege swrl選項卡將規則頭保留爲空

Person(?x)^hasSon(?x,?y)^hasDaughter(?x,?y)-> 

含義,這是不可能的,一個人可以用同一個人的兩個及哈森性能hasDaughter鏈接。如果無法保護,請指導我如何實現這一點。

回答

0

規則主體可以是空的,但它並不意味着矛盾,就像你的意圖一樣;它被解釋爲不適用的規則。規格是here

如果我理解正確的話你的意圖,你可以通過創建兩個類實現後什麼:定義0 hasSon一個確切的基數限制和0 hasDaughter一個確切的基數限制,然後將這些類爲hasDaughter範圍和hasSon

這種方式,指出A hasSon BA hasDaughter B會導致不一致。

+0

感謝您的反饋。我說的是頭(因此)是空的(而不是你提到的身體)。你共享的鏈接指出:「一個空的先行詞被認爲是平凡的(真),而一個空的結果被認爲是平凡的而不是(假的)。」在這裏,如果「平凡不守」,我推斷如果後件是空的,並且我想要的是相同的,則先行詞中的公理的聯合(如我的例子中所給出的)不能結合在一起。但是,查詢的是,SWRL選項卡不支持此功能(使結果爲空),這對我很困惑 –

+0

Swrl規則在執行過程中向本體添加公理。沒有後果的規則永遠不會有任何效果,因此沒有效用。 – Ignazio

相關問題