Monthly Archives: July 2009

ICLP 2009

My invited talk from ICLP-2009 is available from slideshare:

experiences-with-logic-programming-in-bioinformatics

Unfortunately I didn’t get to go into detail in some sections, particularly Thea.

Overall I had an excellent time, good to meet many LP luminaries and users.

Towards portability with Thea2

The Thea OWL package is currently SWI-specific. It would be nice to use this with other prologs, particularly to take advantage of tabling in combination with DLP programs generated from OWL.

I’m impressed by the prolog-commons effort, particularly the convergence we are seeing between Yap and Prolog. Currently the core parts of Thea work with Yap, although there are some annoyances (Yap is unfamiliar with the useful debug/3). Unfortunately the excellent semweb package is still SWI-specific, so you will need to convert your ontology to axioms in prolog syntax first. OWL-XML should in principle be possible, as Yap-6 includes the SWI sgml package, although this appears not be working yet.

For other prologs the lack of a standard module system is the main hindrance. I have added a simple translator to the Thea2 makefile that will strip module declarations generating mostly ISO conformant prolog that can be used with GNU Prolog and XSB. Again, this is just for the core parts. XSB does include the sgml package so parsing OWL-XML is possible with some difficutly, although there are some annoyances such as incompatibilities in the load_structure/3 predicate.

I’m encouraged to hear that these 4 open source prologs are converging on a standard module system, so we should have better compatbility in the future. Converging on a FLI may be too much to ask, so it would be useful to have prolog implementations of xml and rdf parsing to use as fallbacks if the C libs are not present or usable.

readline in XSB

The lack of readline support in XSB used to drive me mad. This deficit has been noted by others.

There is in fact a simple solution. Perhaps this is obvious, but I only just discovered it, and I couldn’t find it on a google for xsb readline so I’ve included it here:

* Install rlwrap
* Add something like the following to your .profile: alias xsb="rlwrap -C $HOME/XSB/bin/xsb"

Suddenly interactive programming with XSB becomes ten times easier..

Blip at ICLP2009

I will be at ICLP delivering a talk on blipkit and my experiences – positive and negative – applying logical programming to biological applications. Looking forward to meeting many of the key LP players!

Cheers
Chris

intervaldb now on github

intervaldb has moved from blipkit svn to githib.

intervaldb is an SWI-Prolog wrapper for the nested containment list (NCList) C library distributed as part of PyGR. Query time is O(n+logN) where N is the size of the database and n is the size of the result set. It is primarily intended for indexing genomic data, but can be used for any kind of intervals, e.g. temporal data

See: http://bioinformatics.oxfordjournals.org/cgi/reprint/btl647v1