Ontopia 5.1.0 beta 1 released

We are proud to announce the first beta of Ontopia 5.1.0 today, with the following new features:

  • An API for automated classification, by Geir Ove Grønmo, Bouvet
  • tolog update support, by Lars Marius Garshol, Bouvet
  • Support for XTM 2.1 has been added by Lars Heuer
  • Support for JTM 1.0 has been added by Thomas Neidhart, SpaceApplications Services
  • The query plugin in Omnigator now supports pluggable query language implementation, thanks to Thomas Neidhart, SpaceApplications Services

In addition, two major changes were made to the core APIs:

  • The core API now uses generics, making it much easier to use, thanks to Quintin Siebers, Morpheus.
  • The TopicNameIF.getType() method can never return null any more, thanks to Thomas Neidhart, SpaceApplications Services, and Lars Marius Garshol, Bouvet.

For a more complete description, please see the what’s new document.

Thank you to all who contributed! Please test the beta thoroughly, and report any problems in the issue tracker.


While presenting tolog updates at TMRA 2009 I casually referred to the possibility of using tolog updates to create a trigger mechanism in Ontopia similar to triggers in relational databases. After the presentation the idea grew on me, and so I decided to elaborate a little further on it and present it in the open space session. The result was this little presentation, which gives a brief outline of the idea.

tolog updates

Unlike SQL tolog has so far only had support for queries, but that has now changed. Lars Marius Garshol has now extended the tolog implementation in Ontopia with support for tolog updates, which extend tolog by adding DELETE, UPDATE, INSERT, and MERGE statements, in addition to the familiar SELECT.

The update statements are described in more detail in the TMRA 2009 paper. The slides may be a bit more approachable, but have less detail, obviously. The idea for the update language is actually quite old. Here’s a blog post about an early design from 2006.

Anyway, if you want to try it, you need to get the latest source code from Subversion. In Omnigator you’ll find the “Generic Query” plugin. If you put in an update statement and click the “Update” button it will run the update statement for you. One way to try it is to navigate to the city Munich in the Italian Opera topic map in Omnigator, then click to open the generic query plugin in a new tab. In that tab, run the following query:

update value($TN, "München")
from topic-name(munich, $TN)

Now go back to the original tab, and press reload. You’ll see the name of the city change. Magic!