I’ve been writing a lot of lisp recently, both to extend my Emacs environment for OWL (n.d.a) and with my Clojure OWL library (n.d.b) I have been trying out two new modes to support this. The first is paredit.el which I have managed to miss despite knocking out Lisp for years; it’s a work of insane genius; fantastic when it does the right thing, but sometimes I find myself stuck in a rut. This will probably improve over time, but is only going to work when I am writing a lot of lisp.
Drinking coffee in Italy is a quite different experience from drinking coffee in many UK coffee shops. In Italy, first you go into a bar — “bar” in Italian doesn’t really have a direct translation into English, as it’s not the same thing as British pub, although they do have large and impressive counters — the bar itself. The person behind the bar is called a barista, which is Italian for “barman”. The barman is normally casually dressed. Assuming you want a coffee rather than food, you ask for a coffee in Italian which is, of course, the local language. The barman will turn around, fiddle with the coffee machine for a moment or two, give you a coffee and then take the 1 euro or so that is the normal charge. Most people drink this at the bar, without sitting down.
With my initial work on developing a Clojure environment for OWL (n.d.a) I was focused on producing something similar to Manchester syntax (n.d.b/) Here, I describe my latest extensions which makes more extensive use of Lisp atoms. The practical upshot of this should be to reduce errors due to spelling mistakes, as well as enabling me to add simple checks for correctness.
I have been struggling for a while with OWL development environments. While Protege provides a nice GUI based system, this has the limitations of many such systems; it allows you to do what the authors intended, but not all of the things that you might wish.
I have described my experiences of using Emacs for writing ontologies previously (n.d.a) I was not entirely happy with omn-mode, even after recent changes (n.d.b) so I have taken the opportunity to update it a little more. This article most describes some implementation changes.