You probably know that the Rete algorithm is used in most high performance rule-based systems.
It is important to note, however, that Rete is not the latest technology.
Since the Rete algorithm was developed by Charles L. Forgy at Carnegie-Mellon University in
the 1970's, this algorithm has become very widely used; it is the basis of OPS5, CLIPS,
and numerous commercial rule-based tools. Rete achieved this widespread use because of its
excellent performance. Rete is very good at handling large numbers of rules efficiently.
Unfortunately, it is less efficient when it is called on to handle large amounts of data
or very rapidly changing data.
To correct these problems with the original algorithm, Dr. Forgy created a substantially
revised algorithm named Rete II in the 1980's. The new algorithm is as good as the
original Rete at handling large numbers of rules, but it is dramatically faster than
the original algorithm when dealing with large amounts of data or rapidly changing data.
For instance, see the whitepaper Benchmarking CLIPS/R2. This paper reports the results of
comparing two systems that were identical except for the algorithm on industry-standard rule
benchmark programs. On these tests, the Rete II based system (CLIPS/R2) ran a few times
faster than the system based on standard Rete (NASA CLIPS) on moderately complex problems,
and on complex problems, the Rete II system was over 100 times faster.
Dr. Forgy is now Chief Scientist at PST. Because of the outstanding performance of Rete II,
PST has used it to create engines for several important rule-based systems. This enables
developers with differing requirements to take advantage of Rete II. Rete II is available
exclusively from Production Systems Technologies.
An upward-compatible enhanced version of the widely-used CLIPS 6.x rule-based language.
CLIPS/R2 is based on NASA's popular CLIPS rule-based tool. CLIPS/R2 is
fully upward-compatible with standard CLIPS 6.x--but it adds:
- A Rete II matcher for dramatically improved performance over standard CLIPS,
which uses the original Rete.
- CIDC, which permits CLIPS rules to operate directly and
transparently on C structs and C++ classes.
- Full support for backward as well as forward chaining.
- A new, more capable integrated development environment.