9278

Represent UML diagram in OWL

Question:

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>

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 '<em>owns</em>' relation saying '<em>DateOfPurchase</em>' how to represents this in OWL ?

Answer1:

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

Answer2:

<blockquote>

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.

Recommend

  • Represent UML diagram in OWL
  • “The Dataflow appears to be stuck”
  • How to pass BASH shell variables into AWK statement
  • Val at object level and thread safety in Scala
  • Why is an Autocomplete input not updating the model correctly?
  • What's the best way to collapse sparse data into single rows in R?
  • match + RefCell = X does not live long enough
  • How to renumber result of intersection/group_indices in R?
  • How to display the mean value and error bars in a percent bar graph
  • HttpClient not working on android
  • Lenses and TypeFamilies
  • Spring AOP: How exclude an unnecessary @Pointcut (@Around advice) execution due the execution from o
  • How to write Delphi ActiveX control which can be used in MS Word/Excel/Powerpoint?
  • Gzip http compression problem on iis7
  • .NET video play library which allows to change the playback rate?
  • How to 'create temp table as select' in Slick?
  • Git describe fails to return most recent annotated tag
  • Android Google Maps API v2 start navigation
  • MySQL Order by column = x, column asc?
  • System.InvalidCastException: Specified cast is not valid
  • How do I exclude a dependency in provided scope when running in Maven test scope?
  • Dialing with Intent.ACTION_CALL stopps at # in phone number
  • Q promise. Difference between .when and .then
  • angularjs unit test when to use $rootScope.$new()
  • How to model a transition system with SPIN
  • Weird JavaScript statement, what does it mean?
  • SetUp method failed while running tests from teamcity
  • Matrix multiplication with MKL
  • Rails 2: use form_for to build a form covering multiple objects of the same class
  • C# - Getting references of reference
  • How do I configure my settings file to work with unit tests?
  • Is it possible to post an object from jquery to bottle.py?