2017-02-07 7 views
0

가정의 라이트 스위치에 대한 온톨로지 모델을 만들고 싶다고합시다. 각 라이트 스위치에는 hasID와 hasLocation의 두 가지 속성이 있습니다. 어떤 방법으로이를 수행하는 것이 가장 올바른 방법입니까?Proege를 사용하는 온톨로지 디자인

  • 클래스 LightSwitch을 만드는
  • hasID 데이터 등록
  • 객체 속성 hasLocation
  • LightSwitch-01와 같은 일부 개인 LightSwitch 02

OR

  • 클래스 만들기 LightSwitch
  • ,515,
  • 서브 KitchenLightSwitch, LivingroomLightSwitch, 등
  • hasID 데이터 등록
  • 객체 속성 hasLocation
  • LightSwitch-01와 같은 일부 개인 권리가 LightSwitch 02

답변

0

온톨로지 설계 없다 또는 일반적으로 잘못된 것입니다 (물론 누군가 설계 과정에서 실수를하는 상황이 있습니다).

"이것이 유일한 해결책"과 같은 것은 없습니다. 시나리오, 경험 및 온톨로지로 무엇을하고 싶은지에 따라 항상 다른 해결책이 있습니다.

두 가지 방법으로 문제를 해결할 수 있습니다 (나는 두 번째 팬을 선호하기 때문에 클래스의 팬 임). 귀하의 예제에서 유일한 차이점은 첫 번째 경우 모든 lightswitch 인스턴스가 "LightSwitch"유형이고 두 번째 인스턴스는 인스턴스 위치 유형 (예 : KitchenLightSwitch) 인 것입니다.

그러나 "hasLocation"객체 속성을 사용하는 경우 "LightSwitch"에 대한 하위 클래스가 실제로 필요하지 않습니다.

인스턴스가 "Switch1, Switch2, ..."인 "Lightswitch"클래스를 만들고 인스턴스가있는 클래스 룸 (Kitchen, Livingroom 등)을 만듭니다. 마지막 단계에서 관계를 연결합니다 : Switch1 hasLocation Kitchen.

또 다른 가능성은 Room과 하위 클래스 인 LivingRoom, KitchenRoom 등을 만드는 것입니다. 각 하위 클래스에는 인스턴스 "kitchenroom, livingroom, etc."이 있습니다.

하지만 실제로는 여러분에게 달려 있습니다. 두 가지 해결책 모두에 아무런 문제가 없음을 알았습니다. 그러나 더 많은 정보를 제공하거나 컨텍스트가 더 복잡하면 어쩌면 솔루션 A 또는 솔루션 B 중 하나를 선호 할 수도 있지만이 예제에서 요구하는 바를 정확히 따르면 두 솔루션 모두 옳습니다.