Jump to content

Semantic reasoner: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Cleanup in an attempt to save the article: deleted redlinked list entries, moved comparison table to talk page for future work, moved EL below references
Line 5: Line 5:
{{Redirect|Reasoner}}
{{Redirect|Reasoner}}
{{Cleanup-rewrite|date=February 2010}}
{{Cleanup-rewrite|date=February 2010}}
A '''semantic reasoner''', '''reasoning engine''', '''rules engine''', or simply a '''reasoner''', is a piece of software able to infer [[logical consequence]]s 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 probabilistic reasoners, including Pei Wang's [[non-axiomatic reasoning system]], Novamente's [[probabilistic logic network]], and [[Pronto (Java library)|Pronto]] - probabilistic [[description logic]] reasoner.
A '''semantic reasoner''', '''reasoning engine''', '''rules engine''', or simply a '''reasoner''', is a piece of software able to infer [[logical consequence]]s 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 probabilistic reasoners, including Pei Wang's [[non-axiomatic reasoning system]], and Novamente's [[probabilistic logic network]].


==List of semantic reasoners==
==List of semantic reasoners==
Line 13: Line 13:
===Commercial software===
===Commercial software===
* [[Bossam (software)]], an RETE-based rule engine with native supports for reasoning over OWL ontologies, SWRL rules, and RuleML rules.
* [[Bossam (software)]], an RETE-based rule engine with native supports for reasoning over OWL ontologies, SWRL rules, and RuleML rules.
* [[DLog]], Resolution based Description Logic ABox reasoner that translates to Prolog ([http://code.google.com/p/dlog-reasoner/ DLog]).
* [[OntoBroker]], highly scalable SemanticWeb middleware ([http://www.ontoprise.de/index.php?id=135 OntoBroker]).
* [[OWLIM]], a high-performance semantic repository developed in Java and available in three versions: OWLIM-lite (which is free to download and use) and the commercial OWLIM-se and OWLIM-enterprise. Supports OWL2-rl semantics, which can be configured through rule-set definition and selection.<ref>[http://www.ontotext.com/inference/rdfs_rules_owl.html#owl_fragments OntoText.com]</ref> ([http://www.ontotext.com/owlim/index.html OWLIM])
* [[RacerPro]], a semantic web reasoning system and information repository ([http://www.racer-systems.com RacerPro])
* [[TopSPIN]], rule-based reasoner embedded in TopBraid Suite support OWL 2 RL reasoning ([http://www.topquadrant.com/ TopBraid]).
* [[SHER]], a scalable Pellet-backed OWL DL reasoner ([http://www.alphaworks.ibm.com/tech/sher SHER]).


===Free to use (Closed Source) ===
===Free to use (Closed Source) ===
* [[BaseVISor]], a versatile [[forward chaining]] inference engine specialized to handle facts in the form of RDF triples with support for OWL 2 RL and XML Schema Datatypes ([http://vistology.com/basevisor/basevisor.html BaseVISor]).
* [[Cyc]] inference engine, a forward and backward chaining inference engine with numerous specialized modules for high-order logic. ([http://research.cyc.com/] ResearchCyc) ([http://opencyc.org/] OpenCyc)
* [[Cyc]] inference engine, a forward and backward chaining inference engine with numerous specialized modules for high-order logic. ([http://research.cyc.com/] ResearchCyc) ([http://opencyc.org/] OpenCyc)
* [[KAON2]] is an infrastructure for managing [[OWL-DL]], [[SWRL]], and [[F-Logic]] ontologies.
* [[KAON2]] is an infrastructure for managing [[OWL-DL]], [[SWRL]], and [[F-Logic]] ontologies.
* [[Hoolet]], reasons over OWL-DL ontologies by translating them to full first-order logic and then applying a first-order theorem prover. ([http://owl.man.ac.uk/hoolet/ Hoolet])


===Free Software (Open Source)===
===Free Software (Open Source)===
* [[Cwm (software)|Cwm]], a forward-chaining reasoner which can be used for querying, checking, transforming and filtering information. Its core language is RDF, extended to include rules, and it uses RDF/XML or N3 serializations as required. ([http://www.w3.org/2000/10/swap/doc/cwm.html CWM], W3C software license)
* [[Cwm (software)|Cwm]], a forward-chaining reasoner which can be used for querying, checking, transforming and filtering information. Its core language is RDF, extended to include rules, and it uses RDF/XML or N3 serializations as required. ([http://www.w3.org/2000/10/swap/doc/cwm.html CWM], W3C software license)
* [[Drools]], a forward chaining inference based rules engine that uses an enhanced implementation of the [[Rete algorithm]]. ([http://www.jboss.org/drools/ Drools], Apache license 2.0)
* [[Drools]], a forward chaining inference based rules engine that uses an enhanced implementation of the [[Rete algorithm]]. ([http://www.jboss.org/drools/ Drools], Apache license 2.0)
* [[Euler (inference engine)|Euler (EYE)]], a [[Rule Interchange Format|RIF]]-compatible backward-chaining N3 reasoner enhanced with [[Euler path]] detection. ([http://eulersharp.sourceforge.net/ Euler Proof Mechanism], W3C software license)
* [[FaCT]], a Lisp-based [[description logic]] (DL) classifier. ([http://www.cs.man.ac.uk/~horrocks/FaCT/ FaCT], GNU GPL)
* [[FaCT++]], the new generation of FaCT OWL-DL reasoner, based on C++. ([http://owl.man.ac.uk/factplusplus/ FaCT++], GNU Lesser GPL)
* [[Flora-2]], an object-oriented, rule-based knowledge representation and reasoning system. ([http://flora.sourceforge.net Flora-2], Apache 2.0)
* [[Flora-2]], an object-oriented, rule-based knowledge representation and reasoning system. ([http://flora.sourceforge.net Flora-2], Apache 2.0)
* [[Jena (framework)]], an open source semantic web framework for Java which includes a number of different semantic reasoning modules. ([http://jena.apache.org/ Apache Jena], Apache License 2.0)
* [[Jena (framework)]], an open source semantic web framework for Java which includes a number of different semantic reasoning modules. ([http://jena.apache.org/ Apache Jena], Apache License 2.0)
* [[Large Knowledge Collider]] or LarKC is a large-scale distributed reasoner that focuses on performance by allowing incomplete reasoning ([http://sourceforge.net/projects/larkc/ LarkC], Apache License 2.0)
* [[Pellet (software)|Pellet]], an open-source Java OWL DL reasoner. ([http://pellet.owldl.com/ Pellet], AGPL version 3, commercial option available)
* [[Prova]], an open-source Semantic Web rule engine which supports data integration via SPARQL queries and type systems (RDFS, OWL ontologies as type system). ([http://prova.ws Prova], GNU GPL v2, commercial option available)
* [[Prova]], an open-source Semantic Web rule engine which supports data integration via SPARQL queries and type systems (RDFS, OWL ontologies as type system). ([http://prova.ws Prova], GNU GPL v2, commercial option available)
* [[SweetRules]], an integrated set of tools for [[Semantic web]] rules and [[ontologies]]. ([http://sweetrules.projects.semwebcentral.org/ SweetRules], GNU Lesser GPL)
* [[TopBraid SPIN API]], API for [http://spinrdf.org/ SPIN], which is a collection of RDF vocabularies enabling the use of [[SPARQL]] to define constraints and inference rules on [[Semantic Web]] models. ([http://topbraid.org/spin/api/ SPIN API], Apache License 2.0)
* [[HermiT]], the first publicly available OWL reasoner based on a novel “hypertableau” calculus which provides much more efficient reasoning than any previously known algorithm. ([http://hermit-reasoner.com/ HermiT], GNU Lesser GPL)

==Reasoner comparison==
{| border="1" cellpadding="1" cellspacing="0" style="font-size: 85%; border: gray solid 1px; border-collapse: collapse; text-align: center; width: 100%; table-layout: fixed;"
|- style="background: #ececec"
! style="width: 8em" |
! '''BaseVISor'''
! '''Bossam'''
! '''Cyc'''
! '''Hoolet'''
! '''Pellet'''
! '''KAON2'''
! '''RacerPro'''
! '''Jena'''
! '''FaCT'''
! '''FaCT++'''
! '''SweetRules'''
! '''OWLIM'''
! '''OntoBroker'''
! '''HermiT'''
|-
! style="background: #ececec; text-align: left; font-family: monospace; font-weight: normal;"| OWL-DL Entailment
| style="background: #fdd" | No
| style="background: #ddd" | Unknown
| style="background: #dfd" | Yes
| style="background: #dfd" | Yes
| style="background: #dfd" | Yes
| style="background: #dfd" | Yes
| style="background: #dfd" | Yes
| style="background: #ffd" | No complete reasoner included with standard distribution
| style="background: #dfd" | Yes
| style="background: #dfd" | Yes
| style="background: #fdd" | No
| style="background: #fdd" | No
| style="background: #dfd" | Yes
| style="background: #dfd" | Yes
|-
! style="background: #ececec; text-align: left; font-family: monospace; font-weight: normal;" | Supported expressivity for reasoning
| style="background: #ffd" | R-entailment, OWL 2 RL
| style="background: #ddd" | Unknown
| style="background: #dfd" | High-order
| style="background: #ddd" | Unknown
| style="background: #ffd" | SROIQ(D)
| style="background: #ffd" | SHIQ(D)
| style="background: #ffd" | SRIQ(D-)
| style="background: #ffd" | varies by reasoner (incomplete for nontrivial description logics)
| style="background: #ffd" | SHIQ
| style="background: #ffd" | SROIQ(D)
| style="background: #ddd" | Unknown
| style="background: #ffd" | R-entailment, OWL 2 RL
| style="background: #ffd" | '''OWL:''' SHIQ(D) (for OntoBroker 6.1: Subset of OWL-RL); '''F-logic:''' normal logic, wellfounded semantics
| style="background: #ffd" | SHOIQ+
|-
! style="background: #ececec; text-align: left; font-family: monospace; font-weight: normal;" | Reasoning algorithm
| style="background: #ffd" | Rule-based, Rete
| style="background: #ffd" | Rule-based
| style="background: #dfd" | First-order with high-order extensions
| style="background: #ffd" | First-order prover
| style="background: #ffd" | Tableau
| style="background: #ffd" | Resolution & Datalog
| style="background: #ffd" | Tableau
| style="background: #ffd" | Rule-based
| style="background: #ffd" | Tableau
| style="background: #ffd" | Tableau
| style="background: #ffd" | Rule-based
| style="background: #ffd" | Rule-based
| style="background: #ffd" | '''OWL:''' Resolution & Datalog; '''F-logic:''' Rule-based (BottomUp, MagicSet, Dynamic-Filtering, QSQ)
| style="background: #ffd" | Hypertableau
|-
! style="background: #ececec; text-align: left; font-family: monospace; font-weight: normal;" | Consistency checking
| style="background: #dfd" | Yes
| style="background: #ddd" | Unknown
| style="background: #dfd" | Yes
| style="background: #dfd" | Yes
| style="background: #dfd" | Yes
| style="background: #dfd" | Yes
| style="background: #dfd" | Yes
| style="background: #fdd" | Incomplete for OWL DL
| style="background: #dfd" | Yes
| style="background: #dfd" | Yes
| style="background: #fdd" | No
| style="background: #dfd" | Yes
| style="background: #dfd" | Yes
| style="background: #dfd" | Yes
|-
! style="background: #ececec; text-align: left; font-family: monospace; font-weight: normal;" | DIG Support
| style="background: #fdd" | No
| style="background: #fdd" | No
| style="background: #fdd" | No
| style="background: #fdd" | No
| style="background: #fdd" | Deprecated
| style="background: #fdd" | Deprecated
| style="background: #fdd" | Deprecated
| style="background: #dfd" | Yes
| style="background: #dfd" | Yes
| style="background: #dfd" | Yes
| style="background: #fdd" | No
| style="background: #fdd" | No
| style="background: #dfd" | Yes
| style="background: #fdd" | No
|-
! style="background: #ececec; text-align: left; font-family: monospace; font-weight: normal;" | Rule Support
| style="background: #dfd" | Yes (Own rule format)
| style="background: #dfd" | Yes (SWRL & own rule format)
| style="background: #dfd" | Yes (Own rule format)
| style="background: #dfd" | Yes (SWRL)
| style="background: #dfd" | Yes (SWRL—DL Safe Rules)
| style="background: #dfd" | Yes (SWRL—DL Safe Rules)
| style="background: #dfd" | Yes (SWRL—not fully supported) & own rule format
| style="background: #dfd" | Yes (Own rule format)
| style="background: #fdd" | No
| style="background: #fdd" | No
| style="background: #dfd" | Yes (SWRL, RuleML, Jess)
| style="background: #dfd" | Yes (Own format)
| style="background: #dfd" | Yes (SWRL, RIF, F-logic, ObjectLogic)
| style="background: #dfd" | Yes (SWRL—DL Safe Rules)
|-
! style="background: #ececec; text-align: left; font-family: monospace; font-weight: normal;" | Version
| style="background: #dfd" | 2.0
| style="background: #dfd" | 0.9b45
| style="background: #ddd" | Unknown
| style="background: #ddd" | Unknown
| style="background: #dfd" | 2.0.2
| style="background: #dfd" | 2008-06-29
| style="background: #dfd" | 2.0 preview
| style="background: #dfd" | 2.5.4
| style="background: #ddd" | Unknown
| style="background: #dfd" | 1.6.0
| style="background: #dfd" | 2.1
| style="background: #dfd" | 2.x/3.x
| style="background: #dfd" | 6.1
| style="background: #dfd" | 1.3.6
|-
! style="background: #ececec; text-align: left; font-family: monospace; font-weight: normal;" | Licensing
| style="background: #ffd" | Free to use / closed-source
| style="background: #ffd" | Free to use / closed-source
| style="background: #ffd" | Free to use / closed-source (academic and research only) & Non-Free / closed-source
| style="background: #dfd" | Free / open-source
| style="background: #dfd" | Free / open-source & Non-Free/ closed-source
| style="background: #ffd" | Free to use / closed-source
| style="background: #fdd" | Non-Free/ closed-source
| style="background: #dfd" | Free / open-source
| style="background: #dfd" | Free / open-source
| style="background: #dfd" | Free / open-source
| style="background: #dfd" | Free / open-source
| style="background: #fdd" | Non-Free/ closed-source
| style="background: #fdd" | Non-Free/ closed-source
| style="background: #dfd" | Free / open-source
|- style="background: #ececec"
|}


==See also==
==See also==
Line 195: Line 30:
* [[Doxastic logic]]
* [[Doxastic logic]]
* [[Method of analytic tableaux]]
* [[Method of analytic tableaux]]

==References==
{{reflist}}


== External links ==
== External links ==
Line 205: Line 43:
* Tom Gardiner, Ian Horrocks, Dmitry Tsarkov. [http://sunsite.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-189/submission_23.pdf Automated Benchmarking of Description Logic Reasoners]. Description Logics Workshop 2006
* Tom Gardiner, Ian Horrocks, Dmitry Tsarkov. [http://sunsite.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-189/submission_23.pdf Automated Benchmarking of Description Logic Reasoners]. Description Logics Workshop 2006
* [http://www2009.org/proceedings/pdf/p601.pdf OpenRuleBench] Senlin Liang, Paul Fodor, Hui Wan, Michael Kifer. OpenRuleBench: An Analysis of the Performance of Rule Engines. 2009. Latest benchmarks at [http://rulebench.projects.semwebcentral.org/ OpenRuleBench website].
* [http://www2009.org/proceedings/pdf/p601.pdf OpenRuleBench] Senlin Liang, Paul Fodor, Hui Wan, Michael Kifer. OpenRuleBench: An Analysis of the Performance of Rule Engines. 2009. Latest benchmarks at [http://rulebench.projects.semwebcentral.org/ OpenRuleBench website].
*[http://pellet.owldl.com/pronto Pronto], a probabilistic [[description logic]] reasoner.


==References==
{{reflist}}


{{Semantic Web}}
{{Semantic Web}}

Revision as of 19:01, 22 January 2014

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 probabilistic reasoners, including Pei Wang's non-axiomatic reasoning system, and Novamente's probabilistic logic network.

List of semantic reasoners

Existing semantic reasoners and related software:

Commercial software

  • Bossam (software), an RETE-based rule engine with native supports for reasoning over OWL ontologies, SWRL rules, and RuleML rules.

Free to use (Closed Source)

  • Cyc inference engine, a forward and backward chaining inference engine with numerous specialized modules for high-order logic. ([1] ResearchCyc) ([2] OpenCyc)
  • KAON2 is an infrastructure for managing OWL-DL, SWRL, and F-Logic ontologies.

Free Software (Open Source)

  • Cwm, a forward-chaining reasoner which can be used for querying, checking, transforming and filtering information. Its core language is RDF, extended to include rules, and it uses RDF/XML or N3 serializations as required. (CWM, W3C software license)
  • Drools, a forward chaining inference based rules engine that uses an enhanced implementation of the Rete algorithm. (Drools, Apache license 2.0)
  • Flora-2, an object-oriented, rule-based knowledge representation and reasoning system. (Flora-2, Apache 2.0)
  • Jena (framework), an open source semantic web framework for Java which includes a number of different semantic reasoning modules. (Apache Jena, Apache License 2.0)
  • Prova, an open-source Semantic Web rule engine which supports data integration via SPARQL queries and type systems (RDFS, OWL ontologies as type system). (Prova, GNU GPL v2, commercial option available)

See also

References


Template:Computable knowledge