在 OWL 中表示 UML 图

Represent UML diagram in OWL

我有两个 类 PersonVehicleowns 作为关系他们之间。

他们之间存在着1 to many的关系,就像一个人可以拥有多辆车一样。人有属性 'name'(人名),车辆也有属性 'name'(品牌名称)。 问题是如何使用 protege 编辑器在 OWL 中对此进行建模? 如果 'owns' 关系上有一个属性说 'DateOfPurchase' 如何在 OWL 中表示这个?

If there is an attribute on 'owns' relation saying 'DateOfPurchase' how to represents this in OWL ?

如果那是域模型,那么 UML 不会捕获它。您所描述的是有一个具有一些附加属性的购买或所有权实体,更像是

+--------+     +-----------+   +---------+
| Person | → * | Ownership | → | Vehicle |
+--------+     +-----------+   +---------+
               | date      |
               +-----------+

这基本上与我在您之前的问题 中描述的方法相同。无法 "sneak in" 关于关系的元数据;你必须把它说清楚。

OWL 中的对象属性描述的是个体之间的关系,而不是 类 之间的关系。它是一个 "borrowed" URI,没有别的。因此,您需要的是具体化每个语句,例如 :PersonA :owns :VehicleB。 RDF 允许这样做,但是 Protégé 不允许。所以,这里有一个解决方法:

您创建了两个对象属性 :hasSubjectOfOwns:hasObjectOfOwns,并且对于您需要描述的每种情况 dateOfPurchase,您定义了一个代表语句的个体,并断言:

:AownsB :hasSubjectOfOwns :PersonA; :hasObjectOfOwns :VehicleB; :dateOfPurchase "2014-10-01"^^xsd:date

最初你需要创建一个 属性 链,在 Protégé 中它看起来像这样: inverse (hasSubjectOfOwns) o hasObjectOfOwns SubPropertyOf owns