我實際上正在嘗試創建一個RDFS模型,並想知道是否有辦法聲明一個類來擁有一個實例。這可能在RDFS中設計一個單例嗎?
設計的方案是針對一種圖形,我想將單個節點設計爲「root」。我應該使用子類還是屬性?我知道OWL提供了更多的語義詞彙,但我打算保持「基本」。
我實際上正在嘗試創建一個RDFS模型,並想知道是否有辦法聲明一個類來擁有一個實例。這可能在RDFS中設計一個單例嗎?
設計的方案是針對一種圖形,我想將單個節點設計爲「root」。我應該使用子類還是屬性?我知道OWL提供了更多的語義詞彙,但我打算保持「基本」。
不,你不能在RDFS中這樣做。我也不確定這是否有用。只需定義你的類並聲明單一資源具有該類作爲它的類型。聲稱沒有其他類型的資源有什麼好處?
我的印象是,閱讀你的「用例」,你寧願喜歡功能性的屬性:hasRoot
,這樣一個東西只能有一個根。作爲cygri說,這不能在純RDFS完成,但OWL的一個簡單的片段是足夠了:
:hasRoot a owl:FunctionalProperty .
然後,對於給定的實體x
,只能有一個單一的實體y
使得關係x :hasRoot y
成立。然後,如果你有以下數據:
:x :hasRoot :y .
:x :hasRoot :z .
可以得出這樣的結論:
:y owl:sameAs :z .
然而,在大多數情況下,不需要這種推理,什麼cygri建議是充分的,更簡單,只要您的應用程序確保定義了單個根即可。
我確實沒有看到任何好處,但我很好奇...... – Vinze 2012-08-15 21:34:10