2016-02-15 86 views
1

假設我有類:製作OWL數據和對象屬性相同屬性的子屬性

> Element 
> ElementProperty 

隨着elementProperty存在的子類:

> AtomicNumber 
> AtomicMass 

還要考慮以下對象的屬性和其域和範圍:

> hasElementProperty 
    Domain:Element 
    Range:ElementProperty 

其中hasElementProperty具有以下子屬性:

> hasAtomicNumber 
    Domain:Element 
    Range:AtomicNumber 
> hasAtomicMass 
    Domain:Element 
    Range:AtomicMass 

所以當我說:Lithium :hasAtomicNumber :3這樣的三重:Lithium :hasElementProperty :3會推斷,這裏:3AtomicNumber類的一個實例。

好吧,現在考慮一下我有數據屬性hasElementName的情況,我也想要它,這樣當我有三重:Lithium :hasElementName "Lithium"三重:Lithium :hasElementProperty "Lithium"被推斷。這是不可能的,因爲我現在設置它的方式是hasElementName是數據屬性,因此不能是對象屬性hasElementProperty的子屬性。 我已經嘗試過使用Literal Reification(見Literal Reification)成功,但我覺得可能有更好的方法來做到這一點,因爲文字化的目的是讓人們可以使用文字作爲對象,這不是我需要做的。 任何想法將不勝感激。

感謝

+0

爲什麼你想/需要這個通用的「hasElementProperty」屬性與? –

+0

這個設置只是爲了描述問題。 –

回答

3

這是不可能的OWL 2 DL,僅在OWL 2 FULL - 這意味着推理和工具可能會抱怨你的本體,或者你可能會得到意想不到的效果。

如果在您的應用程序中收集同一屬性下的所有值是必要的,我會繼續使用文字實例 - 似乎是實現所需結果的最簡單方法。