2
你好我設計的本體論中,我需要定義一個數據屬性「SSN」名爲「人」類。現在我想的一個限制是獨特的。這不是兩個「Person」實例應該具有相同的SSN。 我的問題:如何在Protege中定義這種限制?OWL本體設計門生
http://www.co-ode.org/resources/reference/manchester_syntax/
定義了一些限制,但我覺得沒有我的情況適合。
你好我設計的本體論中,我需要定義一個數據屬性「SSN」名爲「人」類。現在我想的一個限制是獨特的。這不是兩個「Person」實例應該具有相同的SSN。 我的問題:如何在Protege中定義這種限制?OWL本體設計門生
http://www.co-ode.org/resources/reference/manchester_syntax/
定義了一些限制,但我覺得沒有我的情況適合。
你只需要定義SSN財產inverse-functional。反函數屬性意味着無論您看到給定的範圍值,都知道主題資源必須相同。所以,如果p
是反函數,你必須:
R0 p N .
R1 p N .
那麼你就可以推斷R0
和R1
必須表示同一個人。如果你知道,通過其他公理,R0
和R1
實際上是不同的,那麼推理者會報告你的模型是不一致的。這與您在open-world知識庫中進行的一致性檢查相近。
如果需要,您可以輕鬆地使用不同的個體('DifferentFrom')公理斷言'R0'和'R1'不同。 – loopasam 2013-04-08 17:11:39
在我的情況下,SSN是一個數據屬性,而不是對象屬性。反函數只對對象屬性有效。 – 2013-04-08 18:34:20
您可以使用urn:x-ssn:12345678等URI方案爲每個SSN創建一個個人,並將實際的SSN作爲使用'skos:notation'的屬性。這將帶來其他潛在的好處:例如,您可以附加顯示特定SSN在出生日期和(如果知道)該人死亡日期的有效性。甚至可能有SSN的官方URI方案。 – 2013-04-08 23:36:11