In a new development for me, I recently learned that one of the criteria for a “RETE-based rules-engine” to actually be classified as “RETE” is that the software must perform both forward and backward chaining. A well respected rules professional just informed me:
If [the rules-engine] is just forward chaining it’s not RETE because the scalability with respect to rule count and dataset size won’t be the same. [For example] with Drools 2.0, more than 100 rules the performance starts to drop off exponentially. The same is true of dataset size.
I think this means that I should go back and revise my past slide presentations where I categorized a “RETE” rules-engine that only performs forward chaining as a “RETE” engine, based on what I was told by the developers. Yikes!
If anyone has any references on this, or links to any blog posts or documentation on this, please post. Thanks!