Reasoners, OWL API Support, papers about the OWL API

Ignazio Palmisano edited this page Jul 21, 2016 · 4 revisions

Reasoners

A reasoner is a key component for working with OWL ontologies. In fact, virtually all querying of an OWL ontology (and its imports closure) should be done using a reasoner. This is because knowledge in an ontology might not be explicit and a reasoner is required to deduce implicit knowledge so that the correct query results are obtained.

The OWL API includes the OWLReasoner interface for accessing OWL reasoners. In order to access a reasoner via the API a reasoner implementation is needed.

Reasoners known to support these interfaces and relative factory classes:

  • FaCT++ (uk.ac.manchester.cs.factplusplus.owlapiv3.FaCTPlusPlusReasonerFactory, version 4 support imminent) FaCT++ 1.6.3 works with OWLAPI 4, although it was released before 4.0.0 was released.
  • HermiT (org.semanticweb.HermiT.ReasonerFactory, version 4.1.3 support here, version 5.0.0 support here) This is a fork whose purpose is to allow compatibility with 4.1.3 and 5.0.0.
  • Pellet (com.clarkparsia.pellet.owlapiv3.PelletReasonerFactory, version 4 support available) This is a fork of Pellet whose express purpose is to provide compatibility with OWLAPI 4.0.2.
  • JFact (uk.ac.manchester.cs.jfact.JFactFactory, version 4 support ready) Download version 4.0.3 from Maven Central. Version 5 support ready Download version 5.0.0 from Maven Central.
  • Chainsaw (to be built manually)
  • TrOWL (eu.trowl.owlapi3.rel.reasoner.dl.RELReasonerFactory, version 4 support plans unknown)
  • MORe (org.semanticweb.more.MOReRLrewReasonerFactory, version 4 support plans unknown)
  • ELK (org.semanticweb.elk.owlapi.ElkReasonerFactory, version 4 support ready)
  • Snorocket (au.csiro.snorocket.owlapi.SnorocketReasonerFactory, version 4 support ready) The latest master is compatible with OWLAPI 4.0.2.

Note that the information on this list is incomplete and might change without notice: most of these reasoners are developed by third parties.

Note that FaCT++ is developed in C++ and released as a binary library - it is interfaced to its Java adapter through JNI, so to use it you will have to set up your JNI properties as well.

JNI module loading works by pointing the Java runtime to the folder containing the native binaries. So, for FaCT++, you need to locate the correct binaries for the platform you're running on. In the FaCT++ distribution you'll find two folders, 32bit and 64bit, each containing the binaries for Mac, Windows and Linux systems with the matching number of bits.

To point the runtime correctly, you'll need to set java.library.path, for example on the command line:

`-Djava.library.path=/path/to/FaCT++/folder/lib/native/64bit`

Ensure you also have the FaCT++ jar on the classpath, as it contains the Java side of FaCT++ and the loader for the JNI module.

Support for OWL API

Looking for support? Subscribe to OWLAPI mailing list. Alternatively, raise an issue and mark it as a question here on GitHub on the Issues page. You can also ask questions on StackOverflow and mark them with owl-api, and the same can be done on answers.semanticweb.com.

Issues and feature requests

Please, feel free to create issues here on GitHub or on our SourceForge site.

Please note that support is provided on a 'best effort' basis - we do our best to help understanding the API and identifying bugs, provide workarounds and fixes, but you will be expected to actively contribute to resolve the issue. Provide code snippets, stack traces, examples of troublesome ontologies, detailed explanations of the issues - this is the best way to elicit prompt and useful answers.

Publications

If you use the OWL API for any work that is published, we would be grateful if you could cite the following publication.

Matthew Horridge, Sean Bechhofer The OWL API: A Java API for OWL Ontologies Semantic Web Journal 2(1), Special Issue on Semantic Web Tools and Systems, pp. 11-21, 2011. PDF

Other publications describing earlier versions of the OWL API.

Matthew Horridge, Sean Bechhofer The OWL API: A Java API for Working with OWL 2 Ontologies OWLED 2009, 6th OWL Experienced and Directions Workshop, Chantilly, Virginia, October 2009 PDF

Matthew Horridge, Sean Bechhofer, Olaf Noppens Igniting the OWL 1.1 Touch Paper: The OWL API OWLED 2007, 3rd OWL Experienced and Directions Workshop, Innsbruck, Austria, June 2007 PDF

Sean Bechhofer, Phillip Lord, Raphael Volz Cooking the Semantic Web with the OWL API 2nd International Semantic Web Conference, ISWC, Sanibel Island, Florida, October 2003. DBLP