Vangelis Vassiliadis and Chris Mungall developed Thea which does something similar to OWLAPI for Java: be able to read/write OWL2 ontologies in multiple serializations, manipulate these and reason about them. The reasoning takes several routes: it talks through JPL and OWLAPI to external reasoners such as Pellet, it can reason using Prolog rules over the OWL2 axioms and it can translate an ontology to a (tabled) Prolog program (as well as for several other LP systems such as DLV).
The project is implemented in SWI-Prolog for its RDF libraries and general connectivity. Sensible reasoning about OWL2 ontologies without tabling is really hard though. Since we now have usable tabling which will further evolve to hopefully pretty good tabling formal reasoning, for example involving OWL2, can become an attractive new domain for SWI-Prolog.
I’ve started doing some work on Thea, notably to update it to support SWI-Prolog 8. I also started completing the Manchester Syntax Parser of Thea. This seems a good starting point for a project I’m involved in. Chris merged most of these patches. He is not much involved in this particular area of ontology manipulation though. My fork is at GitHub, branch
I was wondering whether other people are interested in this domain? And, if so, whether people are willing to help. There are several things that need attention:
- The Java OWLAPI binding is really old.
- Complete Manchester syntax support. Notably translating the parser output to OWL2 axoims. lso translating backwards, i.e., generate Manchester syntax output.
- Turn into a SWI-Prolog pack.
- Checkout threading and modularization such that we can use this in SWISH, providing a shared platform for ontology management and reasoning.