Sunday, January 31, 2010

An Approach that Uses ODM

Wow, it's been a long time since I had time to write anything here. I need to get back into the habit.

Today I found a really good approach that I think I will adopt for my own OWL profile for UML. Rather than transforming directly into and out of OWL, this approach is a model-to-model transformation from UML to the OWL metamodel of the ontology definition metamodel (ODM). This is a way that plays nice with ODM rather than ignoring it or sidestepping it. Also, having all the OWL metaclasses in one place makes it easier to determine if I have 100% coverage of the OWL concepts.

The other thing I like is that the author(s) of this approach understand how to use UML association ends as OWL properties. After all, the UML 2.x specification defines association ends as specializations of properties, so why use the entire association as the property? The only complaint I have about their example diagram is that the hasArtist property should have hasSculptor and hasPainter as sub-properties, and the creates property should have sculpts and paints as sub-properties. This is easy to do in UML with the subsets meta-association between the association ends, which appears as a constraint on the diagram. (It is also possible to use association generalization, but that can sometimes have issues I won't cover here.)

Reblog this post [with Zemanta]

Saturday, January 23, 2010

What is an ontology? | Ontogenesis

I just read an excellent blog posting on the definition of an ontology: What is an ontology? | Ontogenesis. The only complaint I have is that the authors don't say anything about the difference between the real world and information about the real world or the difference between open world and closed world. This allows some database or OO designers to think they are building ontologies. For example, a job applicant might be the role a person plays with respect to a particular job. In the HR department, they treat the database record about the applicant as the applicant himself. In addition, every person has exactly one biological mother, but a database about people may not record that relation, so its multiplicity might be optional or even disallowed. Thus, databases and OO systems should subset and possibly augment an ontology to lend semantics to their elements, but they are rarely ontologies.