As I mentioned previously, this is the first part of a multi-part description of an OWL profile for UML that I have developed. In contrast to the Ontology Definition Metamodel (ODM), which requires an ontologist to model in an unusual way, this profile allows an ontologist to mark up a normal UML model with stereotypes. This profile is not standardized, although I hope to get it standardized through the OMG, and it is nonetheless useful in the meantime.
First I should introduce UML profiles. A UML profile is a way of extending metaclasses in the UML metamodel with virtual specialization hierarchies, semantics, constraints, and graphic images. (for hard-core UML metamodel geeks, the reason I use the word virtual is because a stereotype does not technically have a generalization relationship with a UML metaclass, it has a special association with it, called an Extension.) A stereotype can have any number of pseudo meta-properties, called tagged values. Modern UML tools allow a modeler to add values to a stereotyped meta-class instance, such as a UML Class. For example, I can create a stereotype that extends a UML Class, called Resource, that has a URI. Indeed, this is what I've done in the OWL profile.
A UML stereotype can further specialize another UML stereotype, thus adding to the virtual specialization hierarchy of a UML metaclass. For example, I can define a Property stereotype that specializes Resource, and I can further define a Transitive Property stereotype that specializes Property. I can then apply the Transitive Property to a UML Association End, which tells the transformation software how to generate the intended OWL statements and makes it possible to define transitive properties in UML.
In the next posting (Part 2) I will describe the top of my OWL stereotype specialization hierarchy. In subsequent postings I will descend the specialization hierarchy and describe each specialization in detail.