Bioclipse

File based RDF storage in Pellet, first tests

As reported in a previous blog post, I ran into java stacksize errors when importing large amounts of data into pellet. Pellet was using just the in-memory Jena RDF store, which obviously puts limits on the amount of data it can handle.

Jena offers other options for RDF storage though, including SDB for SQL backends, and TDB for a pure Java file based storage.

Initial performance comparison: Pellet vs Prolog in Bioclipse

I started with some initial performance testing for RDF data, between pellet an prolog, which are now both available integrated in Bioclipse.

Bioclipse manager method to take arbitrary number of arguments

I needed a Bioclipse manager method that could take an arbitrary number of arguments, (for a general purpose prolog method mapper). Through a useful discussion with jonalv, we figured out that there exists at least one working way of doing this, while there are a number of ways that do not work across both the Rhino/JavaScript though they work in Java alone.

A usage strategy emerges

A strategy for how to work with the Bioclipse/JPL/Prolog/Blipkit combination I'm setting up, is becoming clear.

The main idea with Bioclipse, as well as with having a prolog engine available in it, is for flexible and "interactive" knitting together of knowledge. One of the main questions regarding how to use a Bioclipse/JPL/Prolog/Blipkit combination, has been where to put the bulk of knowledge integration/reasoning code? There would in principle be three options for that:

  1. Bioclipse (Javascript environment)
  2. The Blipkit-Prolog/Bioclipse integration plugin (Java code, a.k.a. "Manager methods")
  3. The prolog engine (As a prolog file)

How to deal with rdf namespaces (does not work well with JPL)

I had the problem that in JPL (The java Prolog API) you cannot use namespaces before term (atoms or variables etc.) names, like so:

prologFunction( ns:'atom' ).

The best solution would be to have some kind of "namespace-like" support in the JS console of Bioclipse instead. One easy thing one can do is to just create a simple function that appends the long preceding URL, so a JS Example could be:

function molid ( term ) {
  return "http://pele.farmbio.uu.se/nmrshiftdb/?moleculeId=" + term;
}
blipkit.queryRDF(molid("234"),"X","Y");

Testing out querying Prolog from Bioclipse

My project has been more or less on hold for around a week because of exams and other stuff. Looking forward to getting some concrete things done now. While still reading up a bit on OWL, I've started taken the first steps of the prolog/blipkit integration with a simple method for querying a prolog on the form "subject, a predicate, and an object".

Plugin development for Bioclipse - from scratch

I switched laptop recently, so I needed to set up my development environment for Bioclipse 2.2 plugin development from scratch. Since the instructions for how to do this are spread over a couple of blogs and the wiki, I used the occasion to create an integrated howto, for my own documentation as well as for anyone interested.

Initial observations on the difference between Prolog based reasoners (Blipkit) and DL-reasoners (Pellet)

  • Pellet is coupled with a Datalog reasoner. 1. Sirin E, Parsia B, Grau BC, Kalyanpur A, Katz Y: Pellet: A practical OWL-DL reasoner. World Wide Web Internet And Web Information Systems 2007, 5:51-53.
  • Datalog is a subset of Prolog
  • Jena too seems to have a datalog implementation, according to http://en.wikipedia.org/wiki/Datalog
  • DLP is the intersection of Horn logic and OWL, where as SWRL is (roughly) the union of them. <fn>1. Parsia B, Sirin E, Grau BC, Ruckhaus E, Hewlett D: Cautiously Approaching SWRL.

Empty plugin / Bioclipse manager up running, showing up in Bioclipse JS console

After som hard work by Egon (finally resulting in this commit), which includes (in addition to the plugin file structure created with the Bioclipse SDK) an eclipse product file which means Bioclipse can now be started with the (empty) drprolog plugin enabled, and available in the JavaScript console inside Bioclipse.

Starting work on creating a Bioclipse manager

Will now start the work of creating a Bioclipse manager for the integration of DR-PROLOG into Bioclipse.

Egon pointed me to a blog post about a feature they've made in order to make it easier for us who are new to Bioclipse development to get started. Nice, det tackar vi för!