2014-10-30 51 views
1

我希望這個問題不是微不足道的,我花了相當多的時間尋找答案。 我在OWL中創建一個本體,我一直試圖強制一個特定的約束到一個類的描述中,但是不能用OWL提供的工具來實現,並且在類的描述中使用了空節點作爲存在變量。 Protege5不喜歡它。 我想模擬空間和運動從一個空間到另一個空間的類,特別是我想模擬一個運動,其中的目標與起始空間具有相同的空間。 在邏輯我形容我InternalMovement類爲:強化身份的類定義中的空白節點

InternalMovement = forall ?x exist ?y (Movement(?x)^space(?x,?y)^direction(?x,?y)) 

在OWL變量不存在和執行整個類的描述空白節點的身份似乎並不可能。我訴諸空白節點,因爲它們應該被視爲存在變量,我希望使用空白節點ID會做到這一點。我錯了,我不知道如何建模這個簡單的類。 海龜片段是這樣的:

​​

我會想到的是,以下的個人將被列爲InternalMovement,但顯然事實並非如此。

:internalmovement rdf:type :Movement , 
    :space :room1 ; 
    :direction :room1 . 

:room1 rdf:type :Space. 

任何人都可以幫助我嗎? 謝謝

+0

我不太明白你的僞定義:??????'InternalMovement = FORALL X存在Y(運動(X)^空間(X,Y)^方向(x,? Y))'。類表達式應該基本上是一個一元謂詞。例如,「Man(?x)= Male(?x)&Person(?x)'。你的意思是'InternalMovement(?x)= Movement(?x)&exists?y(space(?x,?y)^ direction(?x,?y))'其中Movement是一個類,空間和方向是屬性?不幸的是,OWL沒有屬性交集;如果是這樣,你可以說'存在?(空間&方向)(?x,?y)'。 – 2014-10-30 19:20:10

+0

Hi @JoshuaTaylor,是的,我想用fol公式來表達OWL類的定義。不幸的是我都生鏽了。但那正是我想描述的。 – GCorrendo 2014-10-31 10:24:17

回答

1

這聽起來像你想要的是定義一個類,通過指定它具有相同的值爲兩個特定的屬性。如果OWL支持財產路口(一些描述邏輯做),那麼你可以寫

InternalMovement ≡ ∃(空間⊓方向)

不幸的是,OWL沒有這個。但是,您可以定義屬於空間目標的子屬性並使用該屬性。那就是:

spaceAndDirection⊑ space
spaceAndDirection⊑目標
InternalMovement ≡ ∃ spaceAndDirection

這意味着,如果x是一個InternalMovement,則存在AY使得spaceAndDirection(X,Y),然後從子屬性公理,我們可以推斷空間(X,Y )和方向(x,y)。

這將照顧你想要的一些,但不是全部。如果你只知道一些運動x有一些y作爲空間和方向,你仍然不能推斷spaceAndDirection(x,y),所以你不能推斷x是一個InternalMovement。

如果添加基數公理運動有且只有一個空間,只有一個方向,那麼你就可以保證,如果x具有Ÿ作爲其空間和方向,然後如果它具有spaceAndDirection值,則該值必須是y。

如果您還添加InternalMovement具有(至少或完全)一個spaceAndDirection值的(最小或確切)基數公理,則如果x是InternalModement,則可以從以下任意兩個中推導出第三個:

  1. 空間(X,Y)
    • 由於x是InternalMovement,它必須有一個spaceAndDirection值。稱它z。然後spaceAndDirection(x,z)。那麼,由於spaceAndDirection是空間和方向的子屬性,我們也有空間(x,z)和方向(x,z)。由於x是運動,它只有一個空間值,所以y = z。然後我們也有方向(x,y)和spaceAndDirection(x,y)。
  2. 方向(X,Y)
    • 類似於以上。
  3. spaceAndDirection(X,Y)
    • 由於spaceAndDirection是空間和方向的子屬性,我們立即有空間(X,Y)和方向(X,Y)。
+0

謝謝。比工作一個治療!我只需要使這個模式對於屬性鏈足夠靈活,以便我可以將其用於常規類定義。謝謝:) – GCorrendo 2014-10-31 10:25:32

+0

順便說一下,我試圖把公理強制空間和方向的基數爲1,但是這並沒有強制推論,如果空間和方向是相同的,那麼運動的實例就有空間和方向y 。 – GCorrendo 2014-10-31 11:50:09

+0

@ gc3是的,我說得有點太快。 *如果*事物具有相同的空間和方向,那麼*如果*它也具有spaceAndDirection值,則spaceAndDirection值必須相同。這個東西可能只有* no * spaceAndDirection的值。 – 2014-10-31 12:24:52