Thursday, December 10, 2009

UML--It's Not Just for OO Software Design Anymore!

A collage of UML diagrams including use case d...Image via Wikipedia
As I mentioned previously, UML 2, with a simple profile, can represent what an OWL 1 ontology can represent.

There is a heavier-weight profile called the Ontology Definition Metamodel (ODM), but it requires me to model concepts in a different way. I prefer starting with standard UML, then augmenting that with additional semantics in the form of stereotypes.

UML is a more expressive language than OWL, and because it is a graphical language, it is quicker to manipulate in a modern UML tool. For example, OWL does not have association classes, nor does it have a direct way to sort relations. One can build something equivalent in OWL, but I think that undesirably replaces an abstraction with an implementation detail, much like a loop in a high-level language turns into lots of machine code. Therefore, in MDA terms, a UML model is more of a PIM and an OWL model is more of a PSM.

I can sit in a room of business subject matter experts (SMEs) and capture a draft ontology in real time, as I project my progress on a wall, for all to see. The SMEs don't know they're learning UML as I build up a model in their own words. At the end of the session I publish what I captured for all to validate, not only as diagrams, but also as structured English! The ontology I capture is not limited to classes and associations--I also capture processes as activity diagrams and business-level SoaML service architectures. (The semantics for class and activity diagrams are defined in Common Logic in the upcoming fUML specification from the OMG.)

Part of the value in capturing a business ontology in UML is what I can do with it afterwards. I can transform it into OWL to immediately start creating and querying instances. I can augment the business ontology with a logical system architecture to generate detailed requirements for a vendor to build a service or to generate XSD, WSDL, DDL, and Java using a high-level MDA tool such as ModelPro. I think that's pretty powerful.

In future blog postings I will introduce the lightweight OWL 1 profile I've developed for UML 2.

Reblog this post [with Zemanta]

No comments: