Tasks expected from a reasoner were already mentioned. Let us recall that according to the table with DL reasoning complexity the reasoning in OWL reasoning seems to be intractable for general cases (e.g., NExpTime for OWL DL). However, reasoner engines exist that are able to handle practical cases. In this section we only briefly list available reasoners. For general implementation details and problems we refer to The Description Logic Handbook.
One group of reasoners is the group originally written as description logic reasoners. Examples are Pellet, FACT++ and Racer. They can be accessed using XML interface developed by the DL Implementation Group (DIG). DIG is a simple protocol based on HTTP PUT/GET along with a XML schema for expressing description logics language statements and queries. Unfortunately, the current DIG interface is not sufficient to capture general OWL DL ontologies. For example, datatype support is lacking in DIG 1.1. Even when not all OWL DL elements can be used as an input for reasoning, the general description logics reasoners can be very useful for supporting reasoning on the semantic web.
Several semantic web packages or frameworks exist that implement their own reasoning support to some degree (for example, RDFS or subset of OWL DL is supported). We will focus on Jena, a Semantic Web Framework for Java, that provides its own specialized inference engine to support reasoning in RDFS, OWL Lite, OWL DL and OWL Full. The inference in Jena is not claimed to be complete, but is claimed to be sound. Jena also provides a general purpose rule engine where one can write rules for custom inference. Rules for reasoning within subsets of species of OWL are provided as an example. It is possible to connect the description logic reasoner Pellet directly to Jena to overcome DIG limitations, in which case full OWL DL reasoning should be possible in Jena.