Thursday, December 14, 2006

ODO - Ontologies, Databases, and Optimizations

I have been working at IBM for the past couple years on a project called the IBM Semantic Layered Research Platform . The project is a collection of software components that provide support for semantics through the entire application-middleware stack.

We released the source code for the entire project in November under the Eclipse Public License .

My part of the project originates from my work on the LSID project. I had been working with a lot of RDF metadata while maintaining the Perl LSID development stack and realized that (back in early 2004) that a clean, useful and relatively bug free RDF framework didn't exist. It turns out that a number of people shared my concerns and were independently creating their own ad hoc Perl libaries for RDF processing.

I started to collect my various RDF manipulating Perl scripts from my LSID work and began to organize them in to a framework that I called ODO . ODO is an acronym for "Ontologies, Databases, and Optimizations," which are the three items I was most interested in experimenting with at the time. They were also the three categories of functionality I couldn't find in the existing Perl RDF libraries.

ODO is still evolving and I have some more features to push out but right now it supports:

* Nodes, statements and graph backed by memory
* RDFS and OWL-Lite to Perl code generators
* Queries using RDQL with SPARQL on its way
* RDF/XML and NTriple parsers

Each of these items is built inside the ODO framework so it is possible to extend and enhance the library over time without breaking applications (hopefully!).

I have some more components of the library to push out over the next few weeks. I am in the process of making the POD available on the IBM Semantic Layered Research Platform web site and will write some demo applications soon!