Semantic reasoner
A semantic reasoner, reasoning engine, rules engine, or simply a reasoner, is a piece of software able to infer logical consequences from a set of asserted facts or axioms. The notion of a semantic reasoner generalizes that of an inference engine, by providing a richer set of mechanisms to work with. The inference rules are commonly specified by means of an ontology language, and often a description language. Many reasoners use first order predicate logic to perform reasoning; inference commonly proceeds by forward chaining and backward chaining. There are also examples of probalistic reasoners, including Pei Wang's non-axiomatic reasoning system, Novamente's probablistic logic network, which tip their hat to reasoning Bayesian networkss.
Semantic reasoners
Existing semantic reasoners:
- Bossam, a RETE-based rule engine with native supports for reasoning over OWL ontologies, SWRL ontologies, and RuleML rules.
- Hoolet, an implementation of an OWL-DL reasoner. [1]
- Pellet, an open-source Java OWL DL reasoner. [2]
- KAON2 is an infrastructure for managing OWL-DL, SWRL, and F-Logic ontologies.
- RACER system, a semantic web reasoning system and information repository
- Jena (framework), an open source semantic web framework for Java.
- FaCT, a description logic (DL) classifier. [3]
- FaCT++, the new generation of FaCT OWL-DL reasoner. [4]
- SweetRules, an integrated set of tools for Semantic web rules and ontologies. [5]
- Internet Business Logic, a kind of Wiki for writing and running knowledge. It combines three kinds of semantics: English, Logic, and Data. It provides automatic generation and execution of complex networked SQL, with English explanations of the results. Can also be used as an SOA endpoint on the Internet. Shared use is free.[6]
Reasoner comparison
Bossam | Hoolet | Pellet | KAON2 | RacerPro | Jena | FaCT | FaCT++ | SweetRules | |
---|---|---|---|---|---|---|---|---|---|
OWL-DL Entailment | ? | ? | Yes | Yes | Yes | Yes | Yes | Yes | No |
Supported expressivity for reasoning | ? | ? | SHOIN(D) and SROIQ(D) | SHIQ(D) | ? | ? | ? | ? | ? |
Reasoning algorithm | ? | ? | (forward chaining & backward chaining) | Novel (backward chaining) | ? | ? | ? | ? | ? |
Updating the OWL-Model with inferred knowledge / Serialization of resulting ontology | Yes / Partial | ? | ? | No / No | ? | ? | ? | ? | ? |
Consistency checking | ? | Yes | Yes | ? | Yes | Yes | ? | ? | No |
DIG Support | No | No | Yes | Yes | Yes | Yes | Yes | Yes | No |
SPARQL Support | No | No | Yes | Yes | Yes | Yes | No | No | No |
Rule Support | Yes (SWRL) | Yes (SWRL) | Yes (SWRL) | Yes (SWRL) | Yes (SWRL) | Yes (Own rule format) | No | No | Yes (SWRL, RuleML, Jess) |
SWRL/OWLX Parser | Yes | Yes | Yes | No | Yes | No | No | No | Yes |
SWRL/RDF Parser | Yes | ? | Yes | No | Yes | No | No | No | Yes |
SWRL Math Built-Ins | Partial | ? | No | ? | ? | No | No | No | ? |
SWRL String Built-Ins | Partial | ? | No | Partial | ? | No | No | No | ? |
SWRL Comparison Built-Ins | ? | ? | No | ? | ? | No | No | No | ? |
SWRL Boolean Built-Ins | ? | ? | No | ? | ? | No | No | No | ? |
SWRL Date, Time and Duration Built-Ins | ? | ? | No | ? | ? | No | No | No | ? |
SWRL URI Built-Ins | ? | ? | No | ? | ? | No | No | No | ? |
SWRL Lists Built-Ins | ? | ? | No | ? | ? | No | No | No | ? |
SWRL custom Built-Ins | Java | ? | No | Java | ? | ? | ? | ? | ? |
Documentation available | Yes | No | Yes | No | Yes | Yes | Partial | No | Yes |
Version | 0.9b45 | ? | 1.4 | ? | 1.9.0, Build 20051205 | 2.5.4 | ? | 1.1.8 | 2.1 |
Licencing | Free/ closed-source | Free/ open-source | Free/ open-source | Free/ closed-source | Non-Free/ closed-source | Free/ open-source | Free/ closed-source | Free/ open-source | Free/ open-source |