使用Proege进行本体设计

时间:2017-02-07 22:49:44

标签: ontology protege

假设我们想为家中的Light Switches制作一个本体模型。每个Light Switch都有两个属性hasID和hasLocation。 哪种方式是最正确的方法。

  • 制作LightSwitch课程
  • 数据属性hasID
  • 对象属性hasLocation
  • 某些人喜欢LightSwitch-01,LightSwitch-02

OR

  • 制作LightSwitch课程
  • 子类KitchenLightSwitch,LivingroomLightSwitch等
  • 数据属性hasID
  • 对象属性hasLocation
  • 某些人喜欢LightSwitch-01,LightSwitch-02

1 个答案:

答案 0 :(得分:0)

在本体设计中,一般没有对错(当然,有些人在设计过程中会犯错误。)

没有“这是唯一的解决方案”这样的事情。根据您的场景,经验以及您希望对本体进行的操作,始终存在不同的解决方案。

在你的情况下,你可以用两种方法解决你的问题(我更喜欢第二种方法,因为我喜欢上课)。我看到的示例中唯一的区别是,在第一个示例中,所有lightswitch实例都是“LightSwitch”类型,而在第二个示例中,实例属于theire位置类型(例如KitchenLightSwitch)。

但是,如果您使用的是对象属性“hasLocation”,则实际上并不需要“LightSwitch”的子类。

使用实例“Switch1,Switch2,...”创建一个“Lightswitch”类,并创建一个带有实例的类Room(Kitchen,Livingroom等)。 在最后一步中,您将关联关联:Switch1 hasLocation Kitchen。

另一种可能性是创建Room Room和子类LivingRoom,KitchenRoom等。每个子类都有一个实例“kitchenroom,livingroom等”。

但实际上,由你决定。我认为你的两个解决方案都没有错。但是,如果您提供更多信息或者您的上下文会更复杂......也许人们可能更喜欢解决方案A或解决方案B,但对于您要求的确切示例,两种解决方案都是正确的。