2

双关语(在 OWL 2 DL 中引入)允许为类和对象属性赋予相同的名称 (IRI)(参见关联示例)。

我可以使用这种元建模方式在关系上附加属性吗?

例如,关系drives连接PersonVehicle。我想指定驱动 的,并且velocityVehicle属性属于drives。Punning 允许我drives通过指定一个类和一个名为的对象属性来建模为一个关联类drives。我猜这将允许我拥有以某种方式与它们关联的数据属性的对象属性。

我想知道这是否是正确的方法。我错过了什么吗?

4

1 回答 1

4

双关语(在 OWL 2 DL 中引入)允许为类和对象属性赋予相同的名称 (IRI)(参见关联示例)。

我可以使用这种元建模方式在关系上附加属性吗?

据我所知,您可以对类和属性使用相同的 IRI,但我认为它不会真正帮助您进行您正在寻找的元建模。

例如,关系驱动连接人和车辆。我想指定车辆行驶的速度,并且此属性属于驱动器。Punning 允许我通过指定名为驱动器的类和对象属性将驱动器建模为关联类。我猜这将允许我拥有以某种方式与它们关联的数据属性的对象属性。

具有相同的 IRI 表示一个类和一个属性在这里并没有真正的帮助。听起来你想要的是一种物化的关系。您想以如下方式表示这一点:

person42 drives driving74  
driving74 hasVehicle vehicle89  
driving74 hasVelocity 88.8

这确实是最典型的方法。如果你真的想的话,你可以使用drive来命名一个类,你可以让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

你可以这样做,也许它会让一些用户更清楚地看到这种联系,但在我看来,这并不是真的很有帮助,而且可能只会让事情变得更加混乱。

于 2016-07-06T12:59:16.163 回答