I agree - the pattern approach is really not that different to drools 2, if you look at it sideways ;)
It seems all full fidelity XML versions of drl are doomed to fail ! (drl is very very rich). Sent from my phone. On 11/05/2011, at 7:33 PM, Pierre <p...@agh.edu.pl> wrote: > Mark, All, > > AFAIK, xdrl is used for systems to exchange rules (perhaps for storing too). > This, as opposed to human use, for which XML can be quite awkward to say the > least. This to say that putting readability as a major factor might make us > miss the main point. > > For humans<expr>status == state</expr> is nicer. However, for systems > interaction it's pretty terrible. It's some form of half use of XML where the > expression itself can only be validated or transformed with considerable > efforts (e.g. regex) when xml tags would allow using standard XML tools (e.g. > XPATH). I've got examples of this in the rule translation console: > http://yieldrif.appspot.com/ (shameless plug!). > > Let's have a look at other XML rule descriptions (please note that I don't > imply that these are 100% valid expressions in their respective languages): > > JessML > > <pattern> > <name>Order</name> > <binding>o</binding> > <slot> > <name>total</name> > <test> > <type>eq</type> > <conjunction>and</conjunction> > <value type='VARIABLE'>__synth0</value> > </test> > <test> > <type>eq</type> > <conjunction>and</conjunction> > <funcall> > <name>></name> > <value type='VARIABLE'>__synth0</value> > <value type='INTEGER'>100</value> > </funcall> > </test> > </slot> > </pattern> > > RIF-PRD > <formula> > <name>Order</name> > <formula> > <Equal> > <left> > <Var>total</Var> > </left> > <right> > <Var>-var-__synth2</Var> > </right> > </Equal> > <Equal> > <left> > <Var>total</Var> > </left> > <right> > <Expr> > <op> > <Const > type="http://www.w3.org/2007/rif#iri">http://www.w3.org/2007/rif-builtin-predicate#numeric-greater-than</Const> > </op> > <args ordered="yes"> > <Var>-var-__synth2</Var> > <Var>100</Var> > </args> > </Expr> > </right> > </Equal> > </formula> > </formula> > > I hope this helps, > Pierre > > ------------------------------ > > Message: 6 > Date: Tue, 10 May 2011 09:11:24 +0100 > From: Mark Proctor<mproc...@codehaus.org> > Subject: Re: [rules-dev] xdrl fixes/enhancements > To:rules-dev@lists.jboss.org > Message-ID:<4dc8f32c.7080...@codehaus.org> > Content-Type: text/plain; charset=ISO-8859-1; format=flowed > > On 10/05/2011 09:07, Mark Proctor wrote: > >>> On 10/05/2011 08:10, Veit Guna wrote: >>>>> Hi. >>>>> >>>>> Any chance that this could be reviewed and maybe integrated into the >>>>> release? >>>>> >>>>> https://jira.jboss.org/browse/JBRULES-2672 >>> I'm in two minds on this. Edson and I are thinking of changing the xml >>> parser to just be: >>> <Pattern object-type="xxxx"> >>> <expr>......</expr> >>> <expr>......</expr> >>> <expr>......</expr> >>> </Pattern> >>> >>> With any valid expression allwed in expr, i.e. any combinatino of ||, >>> &&, method calls, +, - etc. Which follows what we've done with free-form >>> drl. >>> Our current approach to normalising expressions in XMl isn't working too >>> well, and the more we extropolate that the worse it gets: >>> <dro:pattern object-type="String"> >>> <dro:and-constraint-connective> >>> <dro:field-constraint field-name="this"> >>> <dro:literal-restriction evaluator="!=" value="null"/> >>> </dro:field-constraint> >>> <dro:field-constraint field-name="this.toLowerCase"> >>> <dro:literal-restriction evaluator="==" value="true"/> >>> </dro:field-constraint> >>> </dro:and-constraint-connective> >>> <dro:from> >>> <dro:expression>fctv_17263.getHeaderValues("X-My-Header"); >>> </dro:expression> >>> </dro:from> >>> </dro:pattern> >>> >>> But I do recognise that you patch might give a lifeline to existing XML >>> users.... > I should add that I ripped out most of the handler validation > parent/peer stuff already. This was necessary to get the new compiler > working, and<expr> actually already works, see DumperTest. > <lhs> > <forall> > <pattern object-type="State"> > <field-binding field-name="state" identifier="state" /> > </pattern> > > <pattern object-type="Person"> > <expr> > status == state > </expr> > <field-binding field-name="likes" identifier="likes" /> > </pattern> > </forall> > > </lhs> > > Mark > >>> Mark >>> >>>>> _______________________________________________ >>>>> rules-dev mailing list >>>>> rules-dev@lists.jboss.org >>>>> https://lists.jboss.org/mailman/listinfo/rules-dev >>>>> >>>>> >>> >>> _______________________________________________ >>> rules-dev mailing list >>> rules-dev@lists.jboss.org >>> https://lists.jboss.org/mailman/listinfo/rules-dev >>> >>> > _______________________________________________ > rules-dev mailing list > rules-dev@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-dev _______________________________________________ rules-dev mailing list rules-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-dev