I have two classes <strong>Person</strong> and <strong>Vehicle</strong> having <em>owns</em> as relation between them.
<a href="https://i.stack.imgur.com/4tAwq.jpg" rel="nofollow"><img alt="enter image description here" class="b-lazy" data-src="https://i.stack.imgur.com/4tAwq.jpg" data-original="https://i.stack.imgur.com/4tAwq.jpg" src="https://etrip.eimg.top/images/2019/05/07/timg.gif" /></a>
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 '<em>owns</em>' relation saying '<em>DateOfPurchase</em>' how to represents this in OWL ?
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
: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
If there is an attribute on 'owns' relation saying 'DateOfPurchase' how to represents this in OWL ?</blockquote>
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, <a href="https://stackoverflow.com/questions/38209959/can-owl-punning-help-in-defining-data-properties-on-object-property" rel="nofollow">Can OWL punning help in defining data properties on object property?</a>. There's no way to "sneak in" metadata about a relationship; you must make it explicit.