The OpenCog Rule Engine
This tutorial is broken into parts
Contents
Theory
A prerequisite to this tutorial is some understanding of forward and backward chaining (see glossary Forward Chainer & Backward Chainer).
In general the unified rule engine (URE) project aims at building a generic opencog rule engine on top of the Pattern Matcher, applicable to rules written in a scheme representation, such as for PLN and R2L. The main components of the URE includes a forward chainer (FC) and a backward chainer (BC). This will enable the usage of Backward and Forward chaining inferences. At the moment, these rules are written as Pattern Matcher's BindLink, though that can be changed in the future as these rules are not applied as strict Pattern Matching queries.
Rules are organized inside a "Rule Base", which are customizable control policies for controlling the inferences (such as the number of steps, the weight of a rule, etc).
The overall design can be found on the wiki pages:
- The Unified Rule Engine
- The Control Policy
- The Pattern Matcher
How is Forward/Backward Chaining relevant to the Rule Engine?
Practice
If someone wants to use the rule engine there are only 2 components (Forward Chainer & Backward Chainer as described above).
Links to hands on examples:
- The OpenCog Rule Engine and the C++ API Tutorial
- and the example section of the Unified_rule_engine page
(We decided to keep the code on the other pages as it was difficult to maintain many instances of the same code across the wiki)
Also see the 'examples' folder in the OpenCog install on Ubuntu
to get there$ cd ~/opencog/atomspace/build/examples/C++-api
Trouble shooting
Don't forget to link to libraries atomspace and atomcore and once linked compile like this:
$ g++ patternmatcher.cc -latomspace -latomcore
Notes
Maintainers: (Misgana, maybe w/ help from Eddie) Priority: Very High Priority
The Rule Engine documentation is kind of a mess, it needs lots of reorganization and detail added,
This should be made as clean and simple as the Pattern Matcher documentation