I have been helping a customer with a semantic web project. He likes the Virtuoso platform because it is well documented and widely used and he wants to learn Clojure so there are no technology decisions to be made: we have a thin Clojure library for hitting SPARQL endpoints (which I will open source soon) and run the open source version of Virtuoso. Nice combination.
However, for my own interest I spent a fair amount of my time this weekend taking a stroll through the semantic web tools landscape:
In the early days of the semantic web Swi-Prolog and its semweb library was the way I got started. I took another look at the ClioPatria project. It is written in Swi-Prolog and has the best web front end I have seen for a SPARQL endpoint. ClioPatria is very compelling to me personally but then, I like Prolog! Few people program in Prolog anymore, but if you like Prolog definitely check out ClioPatria – a cool project!
I also experimented with owlim-lite which is very conveniently packaged as a Sesame WAR file (with owlim-lite being installed as a SAIL back end data layer). I have a lot of experience using Sesame (you can grab free PDFs of my two semantic web books, one of which uses Sesame on my web site). I ran into one problem (FILTER using REGEX expressions did not work for me) that was probably something I was doing wrong, but anyway I archived that experiment for later. owlim-lite is free but not open source, you just need to ask for a copy.
I spent a fair amount of time about 1 1/2 years ago experimenting with Stardog but set it aside because I was more comfortable in the open source world of Sesame. I think I have changed my mind on staying with an open source stack. I found the combination of Stardog with Antonio Garrote Hernández’s Stardog Ruby gem to be a close to zero-friction experience. Everything “just worked:” loading large data sets, client side programming, etc. I was hacking around writing a Clojure library for Stardog last night but it is messy; I am going to wait until the Java client library is packaged separately in the future version 2.0. The free (but not open source) community edition of Stardog has very generous capacity limits.
I have been “believing in” the semantic web for over 10 years and with many high profile semantic web projects in large corporations and government programs, I expect solid growth in this industry. One frustrating aspect of the semantic web is depending on other people’s SPARQL endpoints to be running and available. The availability issue seems to be getting better but for now, I think that the sweet spot is information gathering systems (both automatic and human assisted) that are not real time – basically creating application specific local caches for linked data.
