OWL API Tools

An absolutely essential enabler of the OWL 2 language is version 3 of the OWL API (actually, version 3.2.4 at the time of this writing), a Java-based framework for accessing and managing the language. Protégé 4, the most popular open source ontology editor and integrated development environment (IDE), for example, is built around the OWL API.

As we laid out in the Normative Landscape of Ontology Tools (especially the second figure), the OWL API is an essential pivot point for all forms of ontology tools moving forward.

Below is a definitive and comprehensive list of all known tools presently based around version 3 of the OWL API. Herein is a listing of the 30 or so known OWL API-based tools:


 * Protégé 4 is a free, open source ontology editor and knowledge-base framework based on OWL 2 and centered on the OWL API
 * CEL, FaCT++, HermiT, Pellet, and Racer Pro reasoners provide OWL API wrappers and are also available as reasoner plugins to Protégé 4
 * ProtegeHGDB is a set of plugins for the Protege OWL Editor that provides transparent persistence of ontologies in a local, embedded database as well as version control. Implementation is based on the HyperGraphDB database and OWLAPI version 3.2.4
 * There is also a FaCT++ port to Java that is also implementing the OWLReasoner and is available as a plugin for Protégé 4.1; it is at version 0.9 with user feedback welcomed
 * structOntology is an open source ontology editor and manager supporting Structured Dynamics‘ OSF-Drupal implementation of the Open Semantic Framework (OSF) in Drupal; more information is provided [index.php/StructOntology:_Overview here]
 * TrOWL is a Tractable reasoning infrastructure for OWL 2. TrOWL supports both standard TBox and ABox reasoning, as well as conjunctive query answering
 * SKOSEd is a SKOS editor for Protege; just recently made compatible with Protégé 4.1
 * Populus is a semantic spreadsheet framework using RightField and OPPL for creating OWL ontologies
 * Bubastis is a tool for detecting asserted logical differences between two ontologies, such as between versions. A stand alone version of the tool is also available for download from the EFO tools page. Bubastis is powered by the OWL API
 * SPARQL-DL is a distinct subset of SPARQL (a query language for RDF), tailored to ontology specific questions premised on the OWL2 API. It allows queries that mix TBox, RBox, and ABox queries
 * Tab2OWL and its download is a Java tool for importing classes into an already existing OWL file. The script uses the OWL API to read in a tab delimited file of class details and create OWL classes from these rows, adding them to an existing ontology
 * S-Match is a semantic matching framework, which provides several semantic matching algorithms and facilities for developing new ones. Currently S-Match contains implementations of the original S-Match semantic matching algorithm, as well as minimal semantic matching algorithm and structure preserving semantic matching algorithm
 * The Alignment API is an API and implementation for expressing and sharing ontology alignments. It uses an RDF format for expressing alignments in a uniform way. Its four main interfaces (Alignment, Cell, Relation and Evaluator) provides these services: storing, finding, and sharing alignments; piping alignment algorithms (improving an existing alignment); manipulating (thresholding and hardening); generating processing output; and comparing alignments
 * Fuzzy OWL 2 provides a standard way to represent fuzzy ontologies using OWL 2 annotation properties; it can be used in current OWL 2 editors (e.g., Protégé); it supports the two fuzzy DL reasoners: fuzzyDL and DeLorean
 * fuzzyDL is a Description Logic Reasoner supporting Fuzzy Logic and fuzzy Rough Set reasoning. The fuzzyDL system includes a reasoner for fuzzy SHIF with concrete fuzzy concepts
 * DeLorean (DEscription LOgic REasoner with vAgueNess) is a fuzzy rough Description Logic (DL) reasoner. 	It supports fuzzy rough extensions of the fuzzy DLs SROIQ(D) and SHOIN(D), which are equivalent to 	the ontology languages OWL and OWL 2
 * The OWLlink API is a Java interface and implementation of the OWLlink protocol on top of the Java-based OWL API. The OWLlink API enables OWL API-based applications to access remote reasoners (so-called OWLlink servers), and it turns any OWL API aware reasoner into an OWLlink server
 * OPPL2 (ontology pre-processing language) is an abstract formalism that allows for manipulating ontologies written in OWL. It is 100% based on the Manchester OWL Syntax; a query language based on OWL (logical) axioms and variables; a scripting language that allows the addition/removal of OWL (logical) axioms. It is available as an Protégé 4.1 plug-in
 * OPPL Patterns It is available as an Protégé 4.1 plug-in
 * Posh (Prolog OWL Shell) is a command line utility that wraps the Thea OWL library to allow for advanced querying and processing of ontologies, combining the power of Prolog and OWL reasoning
 * POPL (Prolog Ontology Processing Language) allows you to write expressive ontology rewrite rules in a high-level declarative fashion using a syntax similar to Manchester syntax
 * OWLTools (aka OWL2LS – OWL2 Life Sciences) is a convenience Java API on top of the OWL API. Code is available here
 * LexOWL is a plug-in for Protégé 4. In order to add more powerful functionality (e.g., inferencing, editing) to the existing infrastructure and align LexGrid more closely with various Semantic Web technologies, the LexOWL plugin for Protégé 4 provides a way for representing the ontologies modeled within the LexGrid environment in OWL. A source for downloading this tool has not been found
 * Apero, a Protégé plug-in that is an ontology debugging tool based on the use of anti-patterns; see http://www.emcl-study.eu/fileadmin/master_theses/thesis_tahwil.pdf
 * DReW is a prototype DL reasoner over LDL+ ontologies and a prototype reasoner for dl-programs over LDL+ ontologies under well-founded semantics. It is not well developed or documented; it can be downloaded here
 * The LingInfo, LexOnto, LexInfo and LMF ontologies are available from the project website, as well as a corresponding Java API with an implementation for the commonly used OWL API
 * Thea2 is a Prolog library that provides complete support for querying and processing OWL 2 ontologies directly from within Prolog programs. Thea2 also offers additional capabilities including a bridge to the Java OWL API and translation of ontologies to Description Logic programs
 * GLOW is a visualization for OWL ontologies, based on Hierarchical Edge Bundles. Hierarchical Edge Bundles is a new visually attractive technique for displaying adjacency relations in hierarchical data, such as concept structures formed by `subclass-of’ and `type-of’ relations. The displayed adjacency relations can be selected from an ontology using a set of common configurations, allowing for intuitive discovery of information. It is a visualization library based on OWL API, as well as a plug-in for Protégé
 * ROWLKit is a simple GUI to reason and query over ontologies written in the OWL 2 QL profile of OWL
 * OBDA Plugin (Ontology-based data access) is an add-on for the Protégé ontology editor aimed at transforming Protégé into a fully fledged OBDA model editor. It provides data source and mapping editors, as well as querying facilities that, in conjunction with an OBDA-enabled reasoner, allows you to design and test every aspect of an OBDA system
 * OntoCAT provides high level abstraction for interacting with ontology resources including local ontology files in standard OWL and OBO formats (via OWL API)
 * SemaRule Navigator is an Eclipse-based toolkit of multiple semWeb tools, built around the OWL API, organized into a pipeline-like system (appears quite complicated)
 * OWLDB (alias Mnemosyne) is a storage system based on object-relational mappings utilising the OWL-API for the W3C Web Ontology Language OWL
 * Finally, for a periodically updated list of “official” extensions, see https://owlapi.svn.sourceforge.net/svnroot/owlapi/v3/branches/owlextensions/.

Here are some other ongoing sources of ontology tools, some of which might be relevant to the current OWL API:


 * http://owl.cs.manchester.ac.uk/tools/
 * http://www.w3.org/2007/OWL/wiki/Implementations