Announcing the release of TclCLIPS
Developed by Dave Beazley, under contract to Dave Roseman of Eolas
The TclCLIPS extension provides a Tcl interface to the CLIPS 6.10 expert system software. It provides the following capabilities
- Tcl access to all of the functionality described in the CLIPS Reference Manual, Volume II (Advanced Programming Guide).
- The ability to create and navigate through CLIPS data from Tcl.
- The ability to define new CLIPS functions in Tcl.
For the most part, the Tcl interface is exactly the same as described in the CLIPS Advanced API documentation. Notable changes and additions are described in the distribution's README.txt file.
Two Windows distributions are available:
1) For Tcl 8.1+: http://www.eolas.net/tcl/clips/TclClips2001.zip
(includes Windows dll, source, CLIPS documentation, and examples)
2) For Tcl 8.0: http://www.eolas.net/tcl/clips/TclClips.zip
(Windows binary only, no source)
You can view the CLIPS documentation:
The official CLIPS homepage is at http://www.ghg.net/clips/CLIPS.html
MDD: The 8.0 version is a little flaky. Dave Roseman has been using the newer version for a while now in one of his projects, and will probably post some comments here on his experience with it. Dave mentioned to me that it works better if you skip the install procedure and just "load" the dll directly.
What is CLIPS?
CLIPS is a productive development and delivery expert system tool which provides a complete environment for the construction of rule and/or object based expert systems. Created in 1985 by NASA, and placed in the public domain, CLIPS is now widely used throughout the government, industry, and academia. Its key features are:
- Knowledge Representation: CLIPS provides a cohesive tool for handling a wide variety of knowledge with support for three different programming paradigms: rule-based, object-oriented and procedural. Rule-based programming allows knowledge to be represented as heuristics, or "rules of thumb," which specify a set of actions to be performed for a given situation.
- Object-oriented programming allows complex systems to be modeled as modular components (which can be easily reused to model other systems or to create new components). The procedural programming capabilities provided by CLIPS are similar to capabilities found in languages such as C, Java, Ada, and LISP.
- Portability: CLIPS is written in C for portability and speed and has been installed on many different operating systems without code changes. Operating systems on which CLIPS has been tested include Windows 95/98/NT, MacOS X, and Unix. CLIPS can be ported to any system which has an ANSI compliant C or C++ compiler. CLIPS comes with all source code which can be modified or tailored to meet a user's specific needs.
- Integration/Extensibility: CLIPS can be embedded within procedural code, called as a subroutine, and integrated with languages such as Tcl/Tk, C, Java, FORTRAN and ADA. CLIPS can be easily extended by a user through the use of several well-defined protocols.
- Interactive Development: The standard version of CLIPS provides an interactive, text oriented development environment, including debugging aids, on-line help, and an integrated editor. Interfaces providing features such as pulldown menus, integrated editors, and multiple windows have been developed for the MacOS, Windows 95/98/ NT, and X Window environments. The Tcl binding for CLIPS dramatically expands the ease of use and the interactivity of the CLIPS development environment, over the standard version.
- Verification/Validation: CLIPS includes a number of features to support the verification and validation of expert systems including support for modular design and partitioning of a knowledge base, static and dynamic constraint checking of slot values and function arguments, and semantic analysis of rule patterns to determine if inconsistencies could prevent a rule from firing or generate an error.
- Fully Documented: CLIPS comes with extensive documentation including a Reference Manual and a User's Guide.
- Low Cost: CLIPS is maintained as public domain software.