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 TopicMapsLab has launched a new service called Maiana, which is a social topic map browser. The Maiana browser is deliberately made quite similar to the Omnigator so people will find it familiar, but has a couple of new features, like allowing anyone to upload their topic maps, and allowing comments on topics and topic maps.

Interestingly, Maiana is a Ruby on Rails application running in JRuby using JRTM (to be released; more information then), with Ontopia as the backend. So Maiana is actually an Ontopia application.

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!

Toma in the cloud

Thomas Neidhart has set up an Omnigator instance that runs on Google AppEngine, which you can visit here. He has installed the Toma implementation in the generic query plugin in this installation, which means you can try out Toma queries on it. To do so, go here, select Toma from the list of query languages, and try it out. There is a list of example Toma queries in the second drop-down list.

Using Ontopia in PHP

Jan Schreiber has written an excellent blog post on accessing Ontopia from PHP, which shows how you can use the Java TMAPI implementation in PHP or alternatively run a tolog query from PHP.

As Jan pointed out in private conversation, there is probably a fair bit of overhead in calling Java classes from PHP in this way, so running tolog queries is probably the most efficient way to do this, since then all the heavy lifting happens inside the JVM.