The tolog optimizations in Ontopia

At TMRA 2010 it struck me that we’d never really documented or described the optimizations that we do on tolog queries, and so I thought it would be useful to explain that. I did this in a 5-minute presentation in the open space session, the slides to which are embedded below.

Ontopia Solr integration

Geir Ove Grønmo has written an integration of Apache Solr with Ontopia which provides a very fast and user-friendly faceted search interface to topic maps data. The integration was developed for a customer, but we are hoping to get it into the product proper. He did a presentation of this in the open space session at TMRA, and you can see the slides below.

The code camp in Leipzig

We arranged a code camp at the TMRA 2009 conference in Leipzig. The idea was that we would introduce new developers to Ontopia, and help them get started on working on the code. For completeness, we added an introduction to the Ontopia product as well. We were thinking that we would have just a few participants, and that we’d spent most of our time there hacking the code.

Well, we were wrong. About 30 people joined the code camp, forcing us to rethink our plans quite quickly. So instead of a hacking camp it turned into more of a tutorial camp, where we taught the users what was in the product and how it could be used. The slides are embedded below:

The code camp also gave us an excellent opportunity to see how the users experienced the product, and what features they wanted. In fact, some of the issues in the issue tracker come directly from requests made at the code camp and in later email requests:

As you can see, most of this is about documentation, and this is one thing that showed clearly in the feedback we got: people struggle to see what is in the product and how to use it. So while we have fairly extensive documentation we need more, and we need more overview documentation.

From our side, what we need more of is feedback from the users, in the form of postings to the mailing list, issue reports, and so on. We really want to see you use the product and do something cool with it. So if we can support you by explaining how things work, writing more documentation, or fixing issues, we’d be happy to. The list of issues above is one place to start. If you care about any of them, feel free to comment on them, give them stars (vote on their importance, basically), or even to start working on them.


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!

Ontopia Code Camp

We are arranging a code camp as part of the TMRA 2009 (Topic Maps Research and Applications) conference in Leipzig, on November 11. The code camp will introduce new developers and users to the project, the product suite, and show how to develop with (and for) Ontopia. At the end we’ll close with a discussion of what users and developers want to see from the project.

Lars Marius Garshol and Geir Ove Grønmo, the two lead developers of Ontopia since 2000, will be leading the code camp. For more information, please see the official code camp program.

We hope to see you in Leipzig!