The Simplified Deductive Data Retriever is a simple logic system that supports basic backward chaining rules. It's a subset of the Deductive Data Retriever. It can do the same illustrative test cases, but doesn't support tracing or forward chaining, it doesn't keep a global knowledge base, and it uses simpler internal code.
Setting up the Deductive Retriever
Compile and load retriever.lisp. The key
functions exported from the package retriever
are:
(with-kb rules exp1 exp2 exp3 ...)
: a special form that executes the expressions with the rules in rules; rules should be a list of backward chaining rules.(ask sentence)
: returns a list of all sentences matching sentence using the current set of rules
Note that only backward-chaining rules are allowed. Facts should be given as rules with no antecents, e.g.,
Testing the Retriever
retriever-tests.lisp contains several example test cases. This file requires the Retriever and the Lisp Unit package.
Loading this file creates the package retriever-tests. This is a good place to experiment with different rule bases.
For more information on backward chaining, see here and here.