Thanks Matt for correcting this. Actually Drools processes DSL a similar way it process rules, doesn't it ? I couldn't find any documentation about Drools 5 (I downloaded it but it looks like it it the same as 4.0.7). Where could I find it ?
2008/12/16 Matt Geis <[email protected]>: > Minor correction: > >>>Drools stops on the first DSL sentence it can map to. > > [false] >>>If you want it to work, you have to be careful about the order you write >>>sentences in your DSL : write them from the most restricitive to the less. > [depends on what you want to accomplish] > > Drools actually does not stop until it hits the end of the DSL entry list. > For each domain specific block of text it has to turn back into DRL, it tries > to match/replace on every DSL mapping entry. So, if you DRL file has 10 > lines of conditions (the "when" block) spread across n rules, 6 lines of > consequences (the "then" block), and your DSL file has 10 lines, 4 for "any", > 3 "when", and 3 "then", you will have 70+24 = 94 different attempts to > match/replace. The engine will not stop at the first match, as subsequent > matches may apply. > > Some people take this behavior into account when building their DSLs. > > In short, you aren't really writing a simple name/value pair list. You're > writing a transformation engine, through which any entry can be transformed > at multiple points along the way. Raw entry A may not match DSL mapping > entry 5, but after it matches entry 3, the replacement then matches entry 5. > > Example: > start with input A > try to match a to entry 1, fail > try to match a to entry 2, fail > try to match a to entry 3, success, transform to B. > try to match b to entry 4, fail > try to match b to entry 5, success, transform to c. > > Return c. > > Hope that helps, > Matt > > ps. If you start getting into this and find the expressiveness of the > language you want to build a bit restrictive in Drools 4, give Drools 5 a > test drive. You'll find that the implementation of DSLs in Drools 5 is a > more complete implementation of the original design. Drools 5 DSL changes > were a result of people pushing Drools 4 to and finally a bit past what it > was capable of, when trying to realize exactly the kind of behavior you've > been discussing. > > > > _______________________________________________ > rules-users mailing list > [email protected] > https://lists.jboss.org/mailman/listinfo/rules-users > -- Seules 2 choses sont infinies : l'univers et la bêtise humaine ; et encore pour l'univers, je ne suis pas sûr … (Einstein) _______________________________________________ rules-users mailing list [email protected] https://lists.jboss.org/mailman/listinfo/rules-users
