March 30, 2014 3 Comments
Whilst it attempts to following CommonJS, you currently have to use RingoJS (a Rhino engine) as it makes use of JVM calls to the OWLAPI
Why not just use java? Java can be very verbose and is not the ideal language for writing short ontology processing scripts, especially with the OWL API.
There are a number of other languages better suited to scripting and declarative programming in general, many of which run on the JVM. This includes
- Groovy – a popular choice for interfacing with the OWL API
- The Armed Bear flavor of Common Lisp, as used in LSW2.
- Clojure, a variant of lisp, as used in Phil Lord’s powerful Tawny-OWL framework.
- Scala, a superbly elegant functional programming language used to great effect in Jim Balhoff’s beautifully elegant scowl.
- Iron Python – a popular choice for interfacing with the Brain. And of course, Python is the de facto language for bioinformatics these days
There are also offerings in non-JVM languages such as my own posh – in addition most languages provide some kind of RDF library, but this can often be low level for working in OWL.
What can you do with it?
I hope to provide some specific examples later on this blog. For now, take a look at the docs on github. Major features are:
- A REPL that supports autocomplete on class labels.
- A stable documented API mirroring many OWLAPI capabilities, with fewer hoops to jump through.
- Ability to use any OWL API call as required (including reasoning etc)
- Some ready-made scripts, including an OWL Diff implementation that uses markdown, currently used for Uberon release diffs (example here).
- A powerful OPPL-like axiom pattern matching and replacement framework.
Stay tuned for more information!