We use a lot of multi value value holder loops with our templates to simplify our rule writing. For example a rule rewriter might want a rule to apply to 5 different states so they use our State template that allows them to select 5 states. The SRL uses the valueholder loop with the 'or' constructor to buld the condition. This is done instead of writing 5 different rules, 1 for each state.
My understanding of RETE is that it will try and break apart all the or conditions to build a graph. We attempted to compile our rules in RETE execution and it tooks 9 gigs of RAM to finish successfully. What I would like to see is that the RETE algorithm not break apart the states and treat the state condition as a single node in the graph instead of 5 nodes.
Anyone have any experience with this and maybe an enhancement request can be done to the algorithm to make this work better?