OntoGraf – Visualizing ontologies

O


This is my first post in a while. Unfortunately real life has been interfering with my blog updates of late.

On the research side of things, my Change Analysis plugin has been released for a while and I’ve been making minor updates. I also started working on a web-based version, which I have running locally, but have not released yet.

Recently I helped out at the Protégé short course. The short course is a three day course teaching the basics of ontologies, OWL, and how to use Protégé to create/edit an ontology.

The “students” learn about the currently three different flavors of Protégé. There’s Protégé 3.4, which all of my ontology-related work has been integrated with. There is also Web Protégé, which was developed with GWT and is a light-weight ontology editor. Finally, there’s Protégé 4, which was a complete re-write of Protégé 3.

I hadn’t had much experience with Protégé 4 prior to the short course, so I actually learned a lot about its features and I am significantly impressed. It has a much cleaner interface and is a whole lot faster. Protégé 4 is built on top of Equinox, the Eclipse implementation of the OSGi spec. The plugin architecture is very similar to developing plugins for Eclipse.

As a developer, it takes a bit more work to get up and going with your Protégé 4 plugin versus Protégé 3, but I think the modularity that OSGi provides is worth the extra effort.

The other major difference between the two versions of Protégé is that Protégé 4 supports the OWL 2 specification. It fully supports the OWL API, and in my opinion there is a much clearer separation between the ontology-specific classes and the user interface.

That being said, Protégé 4 is lacking in plugins in comparison to Protégé 3, especially for visualizing the structure of the ontology. As a result, I decided to port and improve an old plugin I wrote for Protégé 3 to this new version.

The new plugin is called OntoGraf. The basic view shows the ontology tree on the left and a searchable interface to the right. The left and right panels are synchronized. The graph shown below is part of the Pizza example ontology. A radial layout has been applied and I have zoomed the graph out. When the graph is zoomed out, moving your mouse over a node will show that node at its normal size so you can read it (e.g. ThinAndCrispyBase below).

The plugin hasn’t been released yet, but I plan to release it soon.

About the author

Sean Falconer

9 Comments

  • Need to export graphs as .dot files.
    Can do this with OWLPropViz (works with Protege 4.0).
    Would like to do this working with Progege 4.1.

    Could OntoGraf export in the .dot format?

  • Pretty slick.
    Couple questions:
    1. Why does it let lines cross? Other basic layout routines, like GraphViz (Dot), usually won't let lines cross unless the graph is very complex. This layout engine doesn't seem to make any attempt to keep lines from crossing.

    2. Sure would be nice to be able to turn off the auto layout.

    Jim Sluka
    Indiana Univ.

  • Hi Jim,

    The lines crossing depends a little bit on the layout you use. For example, the hierarchical layouts generally do not cross sub-class relationship links, however, other relationships are not taken into account.

    A few years ago I experimented with some other routines for minimizing edge crossings, but usually they were either too slow for the continuous layout style I wanted to support/animate or they broke down severely for general graphs.

    DOT integration as a supported layout probably would not be that difficult. The entire layouts package is agnostic of ontologies, so someone could easily extend the library. I would prefer not to put that into the baseline code as I don't want to force people to install GraphViz.

    With regards to your second point. What do you mean by auto layout? What behavior do you want to see?

  • There is no ontograf tab in protege 3.4.8 and

    Protege 4.1 couldnt installed in my laptop as per the instr. i did but I dont know why……,..How to include intograf tab in protege 3.4.8.

  • Hello,
    i created and ontology using Protege 5. now i need to create a UI for it.
    is it possible to integrate ontograf in it ? is there a documentation about that ? thanks.

Sean Falconer

Get in touch

I write about programming, developer relations, technology, startup life, occasionally Survivor, and really anything that interests me.