Represent UML diagram in OWL

2019-09-11 11:58发布

I have two classes Person and Vehicle having owns as relation between them.

enter image description here

There is 1 to many relation between them like one person can own many vehicles. Person has attribute 'name' (person name) and vehicle also has attribute 'name' (brand name). Question is how to model this in OWL using protege editor? If there is an attribute on 'owns' relation saying 'DateOfPurchase' how to represents this in OWL ?

2条回答
趁早两清
2楼-- · 2019-09-11 12:29

Object properties in OWL describe relation between individuals, not between classes. It is a "borrowed" URI, nothing else. So, what you need is to reify each statement such as :PersonA :owns :VehicleB. RDF allows that, however Protégé does not. So, here's a workaround:

You create two object properties :hasSubjectOfOwns and :hasObjectOfOwns, and for each case you need to describe dateOfPurchase, you define an individual representing the statement, and assert :

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

Initially you'd need to create a property chain, which in Protégé would look like that: inverse (hasSubjectOfOwns) o hasObjectOfOwns SubPropertyOf owns

查看更多
孤傲高冷的网名
3楼-- · 2019-09-11 12:37

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

If that's the domain model, then the UML doesn't capture it. What you're describing is that there's an Purchase or Ownership entity with some additional attributes, more like

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

This is essentially the same approach that I described in your earlier question, Can OWL punning help in defining data properties on object property?. There's no way to "sneak in" metadata about a relationship; you must make it explicit.

查看更多
登录 后发表回答