Punning(which was introduced in OWL 2 DL)允许一个人给一个Class和一个Object Property赋予相同的名字(IRI)(见Association Example)。
我可以使用这种元建模方式在关系上附加属性吗?
例如,关系drives
连接Person
和Vehicle
。我想指定驱动velocity
的{{1}},此属性属于Vehicle
。 Punning允许我通过指定类和名为drives
的对象属性来将drives
建模为关联类。我猜这将允许我以某种方式拥有与它们相关的数据属性的对象属性。
我想知道这是否是正确的解决方法。我错过了什么吗?
答案 0 :(得分:3)
Punning(在OWL 2 DL中引入)允许人们提供相同的内容 名称(IRI)到类和对象属性(请参阅关联 实施例)。我可以使用这种元建模方式在a上附加属性 关系?
据我所知,你可以为类和属性使用相同的IRI,但我认为它不会真正帮助你进行那种你正在寻找的元建模。
例如,关系驱动器连接Person和Vehicle。我想要 指定车辆行驶的速度,以及此 财产属于驱动器。 Punning允许我将驱动器建模为 通过指定类和对象属性来关联类 命名驱动器。我猜这会让我有对象 以某种方式具有与之关联的数据属性的属性。
具有相同的IRI表示一个类和一个属性在这里没有真正的帮助。听起来你想要的是一种具体的关系。你想用以下的方式表示:
person42 drives driving74
driving74 hasVehicle vehicle89
driving74 hasVelocity 88.8
这是最典型的做法。如果您真的想要,可以使用驱动器来命名一个类,并且可以使 driving74 成为该类的实例,这可能会向用户建议之间存在某种联系他们。也就是说,您可以将您的架构设为:
drives a owl:Class
hasVehicle rdfs:domain drives
hasVehicle rdfs:range Vehicle
hasVelocity rdfs:domain drives
hasVelocity rdfs:range Velocity
drives a owl:ObjectProperty
drives rdfs:domain Person
drives rdfs:range drives
你可以做到这一点,也许这会让连接对某些用户更加明显,不过在我的意见中,它并没有真正有用,而且可能会让事情变得更加混乱。