Hermit OWL Reasoner

HermiT http://www.hermit-reasoner.com/ is OWL reasoner. Given an OWL file, HermiT can determine whether or not the ontology is consistent, identify subsumption relationships between classes, etc...

HermiT is an OWL reasoner based on “hypertableau” calculus. HermiT 1.0 is fully compliant with OWL 2 and passes all OWL 2 conformance tests for direct semantics reasoners.

HermiT is licensed under the GPL, so you are free to modify and extend the reasoner to suit your needs.

The source code to HermiT as well as some Javadoc is included within the standard HermiT distribution

HermiT has native support for working with objects such as ontologies and class expression from the OWL API 3.0 http://owlapi.sourceforge.net/. When working with the OWL API use the OWL API classes in the package org.semanticweb.owlapi and not the ones in org.semanticweb.owl since the latter ones are from the older OWL API 2.1, which is no longer supported by HermiT.

You can instantiate HermiT by creating an instance of the Reasoner class in the package org.semanticweb.HermiT. The following code loads an ontology, creates a reasoner object and outputs whether the ontology is consistent (assuming HermiT.jar is on your classpath).

OWLOntologyManager m=OWLManager.createOWLOntologyManager();
OWLOntology o=m.loadOntologyFromPhysicalURI(IRI.create("someIRI"));
Reasoner hermit=new Reasoner(m,o);

To use the OWLReasoner interface from the OWL API (package org.semanticweb.owlapi.inference) instead of HermiT's Reasoner class, the third line above has to be replaced with:

OWLReasoner reasoner=new ReasonerFactory().createReasoner(m,Collections.singleton(o));

HermiT 1.0 can be used Protégé 4.1.