Thursday, June 28, 2012

Graphical Ontology Editing with TopBraid Composer's Diagram Tab

One of the new features in TopBraid Composer 3.6 is the ability to edit RDFS and OWL ontologies in a graphical notation. In the past, the Diagram Tab had been for viewing only. But judging from the number of screenshots all over the web, the Diagram seems to be quite widely used, so it would be a wasted opportunity to not make it editable too. This enhancement hopefully makes TopBraid Composer more accessible to users with UML modeling experience.

I'll walk through a few simple edit operations. The starting point is the kennedys.ttl ontology found in the TopBraid/Examples folder. I have activated the "Human-readable labels" mode with the corresponding button in the tool bar. I have also selected "Start Hierarchy with owl:Thing" in the context menu of the Classes view. In the preferences of the Diagram, I have deactivated "Show root class".

Select the Person class in the tree and switch to the Diagram tab at the bottom of the form. This automatically renders the Person class and its neighbors.

You can see a palette with edit operations showing up on the left side. Select "Create Class" and click on an empty area of the screen. This opens the following dialog:

Enter kennedys:Address as class name and click Ok. A new class box now shows up. Switch to the "Add Association" mode in the palette and drag a connection from Person to Address. This opens a dialog to edit the property name:

Enter kennedys:address (in lower-case because it's a property) and click Ok. When you now move your mouse over the Address class, you can see a button that can be used to add new attributes (datatype properties). Use this to add street, postalCode etc.

For attributes / datatype properties, the following dialog allows you to pick the range of the new property in a single go.

You can modify ranges, comments etc at any stage later by double-clicking on the attributes or classes. You can also right-click on attributes or associations to easily specify cardinalities based on owl:Restrictions.

Overall I believe this is a straight-forward feature that will hopefully make it easier for people to quickly design ontologies using an intuitive graphical notation.