我有两个类人和车辆,拥有作为他们之间的关系。
他们之间存在1 to many
关系,就像一个人拥有很多车辆一样。人具有属性“名称”(人名),车辆也具有属性“名称”(品牌名称)。
问题是如何使用protege编辑器在OWL中对此进行建模?
如果“拥有”关系中有一个属性,说“ DateOfPurchase ”如何在OWL中表示这一点?
答案 0 :(得分:4)
如果有'拥有'关系说' DateOfPurchase' 如何在OWL中表示这一点?
如果这是域模型,则UML不会捕获它。您所描述的是购买或所有权实体具有一些额外属性,更像是
+--------+ +-----------+ +---------+
| Person | → * | Ownership | → | Vehicle |
+--------+ +-----------+ +---------+
| date |
+-----------+
这与我之前的问题Can OWL punning help in defining data properties on object property?中描述的方法基本相同。没有办法潜入"潜入"关于关系的元数据;你必须明确表达。
答案 1 :(得分:3)
OWL中的对象属性描述了个体之间的关系,而不是类之间的关系。它是一个“借来的”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