2017-02-07 1 views
0

家庭内のライトスイッチのオントロジーモデルを作りたいとしましょう。各ライトスイッチにはhasIDとhasLocationという2つのプロパティがあります。 これを行うにはどの方法が最も正しい方法ですか。Proegeを使ったオントロジーデザイン

  • クラスLightSwitchのを作る
  • hasIDデータプロパティ
  • オブジェクトプロパティhasLocation
  • LightSwitchの-01のようないくつかの個体、LightSwitchの-02

OR

  • クラスを作るLightSwitch
  • サブクラスKitchenLightSwitch、LivingroomLightSwitch、等
  • データプロパティhasID
  • オブジェクトプロパティhasLocation
  • LightSwitchの-01のようないくつかの個体、LightSwitchの-02

答えて

0

オントロジー設計では権利がありません一般的に間違っている(もちろん、誰かが設計プロセスで間違いを犯す状況もある)。

「これは唯一の解決策です」のようなものはありません。あなたのシナリオ、経験、そしてあなたがオントロジで何をしたいのかに基づいて、常に異なる解決策があります。

あなたの場合、両方の方法で問題を解決することができます(私はクラスのファンなので、2番目の方法を好むでしょう)。私が見ているあなたの例の唯一の違いは、最初のライトスイッチインスタンスはすべて「LightSwitch」タイプであり、2番目のインスタンスはインスタンスタイプ(例えばKitchenLightSwitch)であるということです。

しかし、オブジェクトプロパティ "hasLocation"を使用している場合は、実際には "LightSwitch"のサブクラスは必要ありません。

インスタンス "Switch1、Switch2、..."で "Lightswitch"クラスを作成し、インスタンス(Kitchen、Livingroomなど)でクラスルームを作成します。 最後のステップで、関係を関連付けます。Switch1 hasLocation Kitchen。

もう1つの可能性は、クラスRoomとサブクラスLivingRoom、KitchenRoomなどを作成することです。サブクラスのそれぞれは、インスタンス「kitchenroom、livingroomなど」を持ちます

しかし、実際には、あなた次第です。あなたの両方の解決策に間違いはありません。しかし、より多くの情報を提供したり、コンテキストがより複雑になったりする場合は、解決策Aまたは解決策Bのどちらかを選ぶこともできます。しかし、この例では、両方の解決策が正しいといえます。

関連する問題