The WonderWeb OWL API [1] is a collection of interfaces and classes
intended to represent OWL ontologies. The structure of the data model
closely follows that presented in the OWL Abstract Syntax.
In addition to constructing an API, we built default implementations of
the interfaces, an RDF parser, and species validator along with
translators to other formats. In particular, a translation to FOL
allowed us to use a FO prover for OWL reasoning (system known as Hoolet
[2]). Handling OWL in RDF/XML was by far the hardest part of the task. I
would estimate that the design and implementation of the codebase took
around four months, with the bulk of that effort (>75%?) qbeing devoted
to RDF parsing and validation.
Throughout the implementation process I found the OWL Test Cases an
invaluable resource. It is unlikely that I would have been able to
implement species validation successfully without them.
I did not find the OWL documents difficult to read and understand,
although I had the advantage of prior experience in Description
Logics, building tools to support OIL and DAML+OIL, and was personally
involved in the Working Group. Some of the trickier aspects of
validation were sometimes harder to find, but they *are* there in the
documentation.
Within the implementation we used the RDF parser from the KAON toolkit
provided by the University of Karlsruhe.
[1] http://sourceforge.net/projects/owlapi
[2] http://wonderweb.semanticweb.org/owl/first-order.shtml
--
Sean Bechhofer
seanb@cs.man.ac.ukhttp://www.cs.man.ac.uk/~seanb