The PLT Scheme Inference Collection implements an inference engine that supports both forward-chaining (data-driven) and backward chaining (goal-driven) for developing rule-based systems in PLT Scheme. The inference engine:
Provides an efficient rule-based inference engine.
Supports forward-chaining for data-driven inferencing.
Supports backward-chaining for goal-driven inferencing.
Makes inferences directly on Scheme data - lists, assoication lists, vectors, and structures.
The source code is distributed with the inference collection and licensed under the GNU Lesser General Public License, Version 2.1 [LGPL].
The motivation behind the PLT Scheme Inference Collection is to provide the inference engine for knowledge-based simulation in PLT Scheme. It is based on a knowledge-based simulation system originally written in Symbolics Common Lisp [Williams90] [Williams96]. This is not as much a port of the earlier work as it is a complete re-engineering of the system into PLT Scheme.
The PLT Scheme Inference Collection cover a range of functionality for developing and executing rule-based systems:
Inference Environments (Basic)
Data-Driven (Forward Chaining)
Goal-Driven (Backward Chaining)
Conflict Resolution Strategy
- Inference Environment (Hierarchical)
The use of these functions is described in this manual. Each chapter provides detailed definitions of the functions, with example code.
The PLT Scheme Inference Collection is free software—
The preferred method for obtaining the PLT Scheme Inference Collection is via PLaneT, PLT Scheme’s centeralized package distribution system. The PLaneT identifier for the PLT Scheme Inference Collection is (planet williams/inference/inference), which will download and install the infernece collection. See Chapter 2 for an example.
Note that Version 2.0 and higher of the PLT Scheme Inference Collection requires PLT Scheme Version 4.0 or higher.
The PLT Scheme Inference Collection is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. It is your responsibility to validate the behavior of the software and their accuracy using the source code provided. See the GNU Lesser General Public License, Version 2.1 [LGPL] for more details.