October Rules Fest - Day 3
Daniel Selman 2700022VQ3 Visits (1630)
Dr Rick Hicks described approaches to rule base validation. He then discussed propositional logic systems and an transformation that allows procedural rules to be converted to procedural functions and executed (solved) without a traditional engine. In essence conflict resolution has been performed at design time so that at runtime the engine performance is independent of the size of the rule base. From my limited understanding the approach sounded similar to that of Corticon.
Gary Riley reviewed the 20+ year history of CLIPS and his overall development philosophy and methodology. He showed a nice chart that showed CLIPS performance has gone from 4 rules fired per second on an IBM AT 21 years ago, to over 100K rules fired per second on a modern MacBook Pro! He then described the optimizations he added to CLIPS 6.3 that resulted in dramatic performance improvements with the academic benchmarks -- with two real-world applications the performance improvement is about 2x.
Mark Proctor described the collect and accumulate condition elements (keywords) added to Drools 4. He then discussed Drools 4 ruleflow groups as well as the ability for rules to control ruleflows and vice-a-versa. An interesting technical approach, but my fear is that such tight coupling between rules and "processes" (ruleflows) creates methodology (human) and reuse concerns.
James Owen recapped the Rete algorithm and conflict resolution.
Dr. Charles Forgy sketched out some fascinating work he has been doing on enabling the Rete algorithm's "match" cycle to run in parallel. He is using the jsr166y task-join framework to perform lightweight task dispatch.