If one looks at (perhaps older) manuals of Drools or some other rule engines, one of the illustrations of their added value is solving puzzles such as the Miss Manners puzzle (listed in the Drools Documentation). Now, such puzzles are naturally formulated and solved using Prolog or the more recent Constraint Programming languages, and one wonders why would anyone use Drools for this purpose. The added value which Prolog and CPL give in this case is their ability to naturally formulate the puzzle as a set of logical predicates and to automatically search the space of solutions (with CPL being more efficient in this respect). But what is the added value of product such as Drools (I mean besides of the bells and whistles of taking, for example, an Excel file and translating it into a set of rules)?
More specifically, Prolog implements backtrack search, CLP implements backtrack search with constraint propagation, and therefore instead of searching, so to speak, the whole Cartesian product of spaces for individual variables, they prune away large portions of this product space. This is what makes them effective and useful. Both Prolog and CLP are discussed amply in the literature.
On the other hand, while it is clear that Rete algorithm caches the set of rules in the form of some data structure(s), thus (to my understanding) making it more effective to evaluate the output if some of the inputs have changed, and giving means to effectively update this data structure for incremental changes, it is difficult (for me) to understand the basic idea, and even more so, its effectiveness (compared to what? to Prolog? to CLP)? Unfortunately, it is hard to find good references that view Rete algorithm in this wider context.
The documentation of Drools is unfortunately not very informative in this respect. The most I could find was "The Rete algorithm, Leaps algorithm, and its descendants such as Drools' Reteoo (and Leaps), provide very efficient ways of matching rule patterns to your domain object data. These are especially efficient when you have datasets that do not change entirely (as the rule engine can remember past matches). These algorithms are battle-proven". Very efficient - compared to what? Battle proven - could one point to real-world applications?
I would appreciate it if one could throw some more light on this subject or give a valid reference.