2017-02-07 15 views
0

假設我們要爲家中的燈開關製作一個本體模型。每個燈開關都有兩個屬性hasID和hasLocation。 哪種方式是最正確的方法。使用Proege的本體設計

  • 使一類的LightSwitch
  • 一個數據屬性hasID
  • 對象屬性hasLocation
  • 一些個人喜歡的LightSwitch-01,LightSwitch的-02

OR

  • 製作一個LightSwitch類
  • 子類KitchenLightSwitch,LivingroomLightSwitch,等
  • 一個數據屬性hasID
  • 對象屬性hasLocation
  • 一些個人喜歡的LightSwitch-01,LightSwitch的-02

回答

0

在本體設計沒有正確或一般錯誤(當然,有些情況下某人在設計過程中會犯錯誤)。

沒有像「這是唯一的解決方案」這樣的事情。根據您的場景,經驗以及您想要對本體進行的操作,總會有不同的解決方案。

在你的情況下,你可以用兩種方法解決你的問題(我更喜歡第二個問題,因爲我是類的粉絲)。我看到的示例中唯一的區別在於,第一個lightswitch實例的類型是「LightSwitch」,第二個實例是位置類型的實例(例如KitchenLightSwitch)。

但是,如果您使用的是對象屬性「hasLocation」,那麼您確實不需要「LightSwitch」的子類。

用實例「Switch1,Switch2,...」創建一個類「Lightswitch」,並創建一個具有實例(Kitchen,Livingroom等)的Class Room。 在最後一步中,您關聯了一個關係:Switch1 hasLocation Kitchen。

另一種可能性是創建類房間和子類LivingRoom,KitchenRoom等。每個子類都有一個實例「廚房,客廳等」。

但真的,它取決於你。我看到你的兩個解決方案都沒有錯。但是,如果您要提供更多信息,或者您的上下文會更復雜..也許可以選擇解決方案A或解決方案B,但對於您要求的這個示例,兩種解決方案都是正確的。