2014-10-29 165 views
1

我創建了一個簡單的OWL本體中Protege描述人與人之間的關係:這個DL查詢爲什麼不返回預期結果?

  • :人,男人,女人
    • 人是超一流的男人和女人
    • 男人和女人不相交
  • 對象屬性:hasChild
    • 及其杜曼和範圍是Person
  • 個人:一個(MAN),B(MAN),C(MAN)--- X (女性)中,y(女性)中,z(女性)
  • 斷言
    • 一個hasChild X
    • 一個hasChildŸ
    • ÇhasChild一個

現在我要查詢其子女唯一的女兒所有的人。我在DL查詢標籤中寫了這個查詢:

Person and hasChild only Woman 

但是它沒有返回實例!或者對只有兩個孩子的人的簡單查詢

Person and hasChild exactly 2 

這兩個查詢都沒有返回任何實例,任何人都可以告訴我有什麼問題嗎?

謝謝

回答

4

DL有一個開放世界假設(OWA)。這意味着在本體中捕獲的知識是不完整的。另一種選擇是封閉世界假設(CWA),它用於數據庫。在CWA中,沒有宣佈的一切都不存在。

根據OWA的說法,我們從上面的本體論知道,a和c有一些孩子。我們不知道a是否有多個孩子,因爲x和y可以是相同的(爲了避免這種情況,應該使用不同的個人()公理)。我們不知道這些是否是唯一的孩子:在開放的世界中,任何人都可以擁有其他在本體中被省略的任何性別的孩子。這就是爲什麼這些查詢的答案是空集。

最簡單的方法獲得預期的答案os到關閉的知識。如果本體將包含一個公理

a instanceOf (hasChild only {x,y})

那麼將成爲第一個查詢的答案。如果,此外,公理

DifferentIndividuals(x,y)

將增加,那麼第二個查詢將返回。 Protege允許人們輕鬆製作第二種公理。

+0

嗨德米特里。我衷心感謝您的有益答案!謝謝 – 2014-10-29 20:25:44

相關問題