https://hudson.jboss.org/hudson/job/drools/lastSuccessfulBuild/artifact/trunk/target/
Eclipse 3.5.2. Drools runtime 5.0.1. Edson 2010/3/5 Moe Alkhafaji <moe.alkhaf...@medcpu.com> > Edson, > > Just to make sure, can you please send me the link of where you downloaded > your Eclipse plugin from? Also, what version of Eclipse are you using? > Thanks. > > > 2010/3/5 Edson Tirelli <ed.tire...@gmail.com> > >> >> :) I do believe you are seeing this errors, but I have no idea why. I >> just created a new drools project in my eclipse environment, set the target >> runtime to Drools 5.0.1, and copy and pasted your rules bellow. I executed a >> the rules and I got the correct results: >> >> ---------- >> >> Rule Definitions TermContractions 1.1 Executed >> ---------- >> >> I have no error in my eclipse either, so I guess you have some other >> problem (maybe in your environment) going on there... >> >> >> Edson >> >> >> 2010/3/5 Moe Alkhafaji <moe.alkhaf...@medcpu.com> >> >>> Thanks Edson. I wish I can send a screen shot, but I just had a bunch of >>> white lines in the file on top of this. I removed all the bad lines, and >>> simplified the rule to isolate any potential problem outside of this. Here >>> is the simplified version (entire content of the rule file): >>> >>> #created on: Jun 23, 2009 >>> package com.medcpu.eephratobmain >>> >>> >>> rule "Definitions TermContractions 1.1" >>> when >>> eval(1 == 1) >>> then >>> System.out.println("Rule Definitions TermContractions 1.1 >>> Executed"); >>> >>> end >>> >>> rule "TermContractions 2.8" extends "Definitions TermContractions >>> 1.1" <=== Line 11 >>> when >>> eval(2 == 3) >>> then >>> System.out.println("Rule TermContractions 2.8 Executed"); >>> end >>> >>> And here are the errors again: >>> >>> >>> nds.when cannot be resolved to a >>> type MPU/src/rules >>> EEphratOBMain.drl line 11 >>> Syntax error on token ""Definitions TermContractions 1.1"", . >>> expected MPU/src/rules EEphratOBMain.drl line 11 >>> Syntax error on token "then", invalid >>> AssignmentOperator MPU/src/rules >>> EEphratOBMain.drl line 11 >>> Syntax error, insert ";" to complete >>> BlockStatements MPU/src/rules >>> EEphratOBMain.drl line 11 >>> The left-hand side of an assignment must be a >>> variable MPU/src/rules EEphratOBMain.drl >>> line 11 >>> unknown:11:28 mismatched token: [...@42,260:266='extends',<7>,11:28]; >>> expecting type THEN MPU/src/rules EEphratOBMain.drl >>> >>> >>> 2010/3/5 Edson Tirelli <ed.tire...@gmail.com> >>> >>>> >>>> These error messages don't make much sense to me, but it is accusing >>>> error on line 19 now... considering that I removed lines and the error >>>> before was on line 11, isn't this another problems in rules down in the >>>> file? >>>> >>>> >>>> Edson >>>> >>>> 2010/3/5 Moe Alkhafaji <moe.alkhaf...@medcpu.com> >>>> >>>>> Thanks Edson, >>>>> >>>>> I tried using the rules you pasted below, and here are the errors again >>>>> (same line) >>>>> >>>>> >>>>> nds.when cannot be resolved to a >>>>> type MPU/src/rules >>>>> EEphratOBMain.drl line 19 >>>>> Syntax error on token ""Definitions TermContractions 1.1"", . >>>>> expected MPU/src/rules EEphratOBMain.drl line 19 >>>>> Syntax error on token "then", invalid >>>>> AssignmentOperator MPU/src/rules >>>>> EEphratOBMain.drl line 19 >>>>> Syntax error, insert ";" to complete >>>>> BlockStatements MPU/src/rules >>>>> EEphratOBMain.drl line 19 >>>>> The left-hand side of an assignment must be a >>>>> variable MPU/src/rules EEphratOBMain.drl >>>>> line 19 >>>>> unknown:19:28 mismatched token: [...@134,611:617='extends',<7>,19:28]; >>>>> expecting type THEN MPU/src/rules EEphratOBMain.drl >>>>> >>>>> >>>>> I also understand about what you saying regarding additional things I >>>>> have to do to ensure that only the child rule executes, but I want to go >>>>> through the first step first :) Thanks! >>>>> >>>>> >>>>> 2010/3/5 Edson Tirelli <ed.tire...@gmail.com> >>>>> >>>>>> >>>>>> Hmmm, you should be receiving a duplicate variable declaration >>>>>> error... would you please open a JIRA for us to double check what is >>>>>> happening and fix the error message? >>>>>> >>>>>> Meanwhile, try without repeating the constraints on the parent rule >>>>>> in the child rule: >>>>>> >>>>>> >>>>>> rule "Definitions TermContractions 1.1" >>>>>> when >>>>>> mpr : MPUFacade() >>>>>> >>>>>> eval(!mpr.isImportant(Constants.FINDING_KEYWORD_Contractions_Frequency)) >>>>>> then >>>>>> mpr.print("Rule Definitions TermContractions 1.1 Executed"); >>>>>> end >>>>>> >>>>>> rule "TermContractions 2.8" extends "Definitions TermContractions >>>>>> 1.1" >>>>>> when >>>>>> >>>>>> eval(!mpr.isImportant(Constants.FINDING_KEYWORD_TEST)) >>>>>> then >>>>>> mpr.print("Rule TermContractions 2.8 Executed"); >>>>>> end >>>>>> >>>>>> Also, remember that unless you use some of the tricks I mentioned >>>>>> before, both rules will fire. >>>>>> >>>>>> []s >>>>>> Edson >>>>>> >>>>>> >>>>>> 2010/3/5 Moe Alkhafaji <moe.alkhaf...@medcpu.com> >>>>>> >>>>>> Here are the rules that I created (sorry for breaking that in multiple >>>>>>> emails), I hope this is all the information needed: >>>>>>> >>>>>>> rule "Definitions TermContractions 1.1" >>>>>>> when >>>>>>> mpr : MPUFacade() >>>>>>> >>>>>>> eval(!mpr.isImportant(Constants.FINDING_KEYWORD_Contractions_Frequency)) >>>>>>> then >>>>>>> mpr.print("Rule Definitions TermContractions 1.1 >>>>>>> Executed"); >>>>>>> end >>>>>>> >>>>>>> rule "TermContractions 2.8" extends "Definitions TermContractions >>>>>>> 1.1" <=== Line 11 >>>>>>> when >>>>>>> mpr : MPUFacade() >>>>>>> >>>>>>> eval(!mpr.isImportant(Constants.FINDING_KEYWORD_Contractions_Frequency)) >>>>>>> eval(!mpr.isImportant(Constants.FINDING_KEYWORD_TEST)) >>>>>>> then >>>>>>> mpr.print("Rule TermContractions 2.8 Executed"); >>>>>>> end >>>>>>> >>>>>>> >>>>>>> On Fri, Mar 5, 2010 at 12:33 PM, Moe Alkhafaji < >>>>>>> moe.alkhaf...@medcpu.com> wrote: >>>>>>> >>>>>>>> Specifically speaking, here is what I get on Eclipse when I do that: >>>>>>>> >>>>>>>> >>>>>>>> nds.when cannot be resolved to a >>>>>>>> type MPU/src/rules >>>>>>>> EEphratOBMain.drl line 11 >>>>>>>> Syntax error on token ":", ; >>>>>>>> expected >>>>>>>> MPU/src/rules >>>>>>>> EEphratOBMain.drl line 11 >>>>>>>> Syntax error on token ""Definitions TermContractions 1.1"", . >>>>>>>> expected MPU/src/rules EEphratOBMain.drl line 11 >>>>>>>> Syntax error on token "then", invalid >>>>>>>> AssignmentOperator MPU/src/rules >>>>>>>> EEphratOBMain.drl line 11 >>>>>>>> Syntax error, insert ";" to complete >>>>>>>> Statement MPU/src/rules >>>>>>>> EEphratOBMain.drl line 11 >>>>>>>> Syntax error, insert ";" to complete >>>>>>>> Statement MPU/src/rules >>>>>>>> EEphratOBMain.drl line 11 >>>>>>>> Syntax error, insert ";" to complete >>>>>>>> Statement MPU/src/rules >>>>>>>> EEphratOBMain.drl line 11 >>>>>>>> >>>>>>>> Line 11 is: >>>>>>>> >>>>>>>> * rule "TermContractions 2.8" extends "Definitions TermContractions >>>>>>>> 1.1"* >>>>>>>> >>>>>>>> and "Definitions TermContractions 1.1" is another rule defined in >>>>>>>> the same drl. >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Fri, Mar 5, 2010 at 12:04 PM, Moe Alkhafaji < >>>>>>>> moe.alkhaf...@medcpu.com> wrote: >>>>>>>> >>>>>>>>> Thanks Edson, I will try that. However, I have one follow up >>>>>>>>> question. I tried to use the "extends" command and it did not work >>>>>>>>> (it gave >>>>>>>>> me a syntax error). I am using the latest Drools 5.0 M1. Could it be >>>>>>>>> because >>>>>>>>> the Eclipse Drools plugin does not support this feature yet and if I >>>>>>>>> ignore >>>>>>>>> this error on Eclipse it would still work at runtime? >>>>>>>>> >>>>>>>>> Thanks! >>>>>>>>> >>>>>>>>> 2010/3/5 Edson Tirelli <ed.tire...@gmail.com> >>>>>>>>> >>>>>>>>> >>>>>>>>>> Although I noticed the other day that this is not documented >>>>>>>>>> yet, Drools 5.0.x does support rule inheritance. In your case, it >>>>>>>>>> would be >>>>>>>>>> written as: >>>>>>>>>> >>>>>>>>>> rule r1 >>>>>>>>>> when >>>>>>>>>> A() >>>>>>>>>> then >>>>>>>>>> // do something >>>>>>>>>> end >>>>>>>>>> >>>>>>>>>> rule r2 extends r1 >>>>>>>>>> when >>>>>>>>>> B() >>>>>>>>>> then >>>>>>>>>> // do something else >>>>>>>>>> end >>>>>>>>>> >>>>>>>>>> When using inheritance, the subrule will inherit the whole LHS >>>>>>>>>> of the parent rule. >>>>>>>>>> >>>>>>>>>> Integration test here: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/extend_rule_test.drl >>>>>>>>>> >>>>>>>>>> http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_RuleExtend.drl >>>>>>>>>> >>>>>>>>>> In your case, you have an extra requirement that if a child >>>>>>>>>> rule fires, you don't want the parent rule to fire. My suggestion is >>>>>>>>>> either >>>>>>>>>> doing this with a logical condition, or adding drools.halt() on the >>>>>>>>>> consequence of rules that should stop subsequent firings, or using >>>>>>>>>> activation-groups + salience. Example, in the above case, you could >>>>>>>>>> have: >>>>>>>>>> >>>>>>>>>> rule r1 >>>>>>>>>> activation-group "example rules" >>>>>>>>>> salience 10 >>>>>>>>>> when >>>>>>>>>> A() >>>>>>>>>> then >>>>>>>>>> // do something >>>>>>>>>> end >>>>>>>>>> >>>>>>>>>> rule r2 extends r1 >>>>>>>>>> activation-group "example rules" >>>>>>>>>> salience 20 >>>>>>>>>> when >>>>>>>>>> B() >>>>>>>>>> then >>>>>>>>>> // do something else >>>>>>>>>> end >>>>>>>>>> >>>>>>>>>> Since rule 2 has a higher salience, if it activates it will >>>>>>>>>> fire first, and due to the activation-group, it will cancel the >>>>>>>>>> activation >>>>>>>>>> of r1 preventing it to fire. >>>>>>>>>> >>>>>>>>>> Hope it helps. >>>>>>>>>> >>>>>>>>>> Edson >>>>>>>>>> >>>>>>>>>> 2010/3/5 malkhafaji <moe.alkhaf...@medcpu.com> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> Hello, >>>>>>>>>>> >>>>>>>>>>> I know, from searching this forum and posting before, that the >>>>>>>>>>> concept of >>>>>>>>>>> inheritance does not exist today in Drools. However, I have a >>>>>>>>>>> need for it. >>>>>>>>>>> Here is my specific situation: >>>>>>>>>>> >>>>>>>>>>> I have certain rules that have some generic conditions to be >>>>>>>>>>> fired: >>>>>>>>>>> >>>>>>>>>>> Rule 1 >>>>>>>>>>> If A Then X end >>>>>>>>>>> >>>>>>>>>>> Rule 2 >>>>>>>>>>> If A, B Then Y end >>>>>>>>>>> >>>>>>>>>>> What I would like to do is, if Rule 2 is true, then I don't want >>>>>>>>>>> Rule 1 to >>>>>>>>>>> execute. I have many and many of those rules, so combining all >>>>>>>>>>> the >>>>>>>>>>> conditions in less number of rules violates our design having >>>>>>>>>>> rules being >>>>>>>>>>> mutually exclusive. That is why I wanted to include this behavior >>>>>>>>>>> as a >>>>>>>>>>> natural inheritance behavior rather than forcing the flow with >>>>>>>>>>> logic inside >>>>>>>>>>> the rule itself (you will make rules aware of others this way). >>>>>>>>>>> >>>>>>>>>>> So, since there is not built-in feature that allows you to do >>>>>>>>>>> that, do >>>>>>>>>>> people suggest anything that I can do without having to mix Rule >>>>>>>>>>> 1 and Rule >>>>>>>>>>> 2 into one rule with complex conditional statements? Any ideas? >>>>>>>>>>> >>>>>>>>>>> The only thing I can think of is taking this logic processing >>>>>>>>>>> outside of >>>>>>>>>>> drools, which is something that I am not too excited about. >>>>>>>>>>> >>>>>>>>>>> Thanks. >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> View this message in context: >>>>>>>>>>> http://n3.nabble.com/Inheritance-Like-Design-Question-tp430848p430848.html >>>>>>>>>>> Sent from the Drools - User mailing list archive at Nabble.com. >>>>>>>>>>> _______________________________________________ >>>>>>>>>>> rules-users mailing list >>>>>>>>>>> rules-users@lists.jboss.org >>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/rules-users >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Edson Tirelli >>>>>>>>>> JBoss Drools Core Development >>>>>>>>>> JBoss by Red Hat @ www.jboss.com >>>>>>>>>> >>>>>>>>>> _______________________________________________ >>>>>>>>>> rules-users mailing list >>>>>>>>>> rules-users@lists.jboss.org >>>>>>>>>> https://lists.jboss.org/mailman/listinfo/rules-users >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Moe Alkhafaji >>>>>>>>> Chief Technology Officer, MedCPU >>>>>>>>> Phone: (630) 290-1113 >>>>>>>>> Email: c...@medcpu.com >>>>>>>>> >>>>>>>>> This message contains information which may be confidential. Unless >>>>>>>>> you are the addressee, you may not use, copy or disclose to anyone the >>>>>>>>> message or any information contained in this message. If you have >>>>>>>>> received >>>>>>>>> this email in error, please notify c...@medcpu.com and please >>>>>>>>> delete the message immediately. In order for the contents of this >>>>>>>>> message to >>>>>>>>> be binding on behalf of MedCPU it must be confirmed in writing by an >>>>>>>>> authorized signatory of MedCPU. Our company accepts no liability for >>>>>>>>> the >>>>>>>>> content of this email unless it is so confirmed. The views or opinions >>>>>>>>> presented herein do not necessarily represent those of the company. >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Moe Alkhafaji >>>>>>>> Chief Technology Officer, MedCPU >>>>>>>> Phone: (630) 290-1113 >>>>>>>> Email: c...@medcpu.com >>>>>>>> >>>>>>>> This message contains information which may be confidential. Unless >>>>>>>> you are the addressee, you may not use, copy or disclose to anyone the >>>>>>>> message or any information contained in this message. If you have >>>>>>>> received >>>>>>>> this email in error, please notify c...@medcpu.com and please delete >>>>>>>> the message immediately. In order for the contents of this message to >>>>>>>> be >>>>>>>> binding on behalf of MedCPU it must be confirmed in writing by an >>>>>>>> authorized >>>>>>>> signatory of MedCPU. Our company accepts no liability for the content >>>>>>>> of >>>>>>>> this email unless it is so confirmed. The views or opinions presented >>>>>>>> herein >>>>>>>> do not necessarily represent those of the company. >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Moe Alkhafaji >>>>>>> Chief Technology Officer, MedCPU >>>>>>> Phone: (630) 290-1113 >>>>>>> Email: c...@medcpu.com >>>>>>> >>>>>>> This message contains information which may be confidential. Unless >>>>>>> you are the addressee, you may not use, copy or disclose to anyone the >>>>>>> message or any information contained in this message. If you have >>>>>>> received >>>>>>> this email in error, please notify c...@medcpu.com and please delete >>>>>>> the message immediately. In order for the contents of this message to be >>>>>>> binding on behalf of MedCPU it must be confirmed in writing by an >>>>>>> authorized >>>>>>> signatory of MedCPU. Our company accepts no liability for the content of >>>>>>> this email unless it is so confirmed. The views or opinions presented >>>>>>> herein >>>>>>> do not necessarily represent those of the company. >>>>>>> >>>>>>> _______________________________________________ >>>>>>> rules-users mailing list >>>>>>> rules-users@lists.jboss.org >>>>>>> https://lists.jboss.org/mailman/listinfo/rules-users >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Edson Tirelli >>>>>> JBoss Drools Core Development >>>>>> JBoss by Red Hat @ www.jboss.com >>>>>> >>>>>> _______________________________________________ >>>>>> rules-users mailing list >>>>>> rules-users@lists.jboss.org >>>>>> https://lists.jboss.org/mailman/listinfo/rules-users >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Moe Alkhafaji >>>>> Chief Technology Officer, MedCPU >>>>> Phone: (630) 290-1113 >>>>> Email: c...@medcpu.com >>>>> >>>>> This message contains information which may be confidential. Unless you >>>>> are the addressee, you may not use, copy or disclose to anyone the message >>>>> or any information contained in this message. If you have received this >>>>> email in error, please notify c...@medcpu.com and please delete the >>>>> message immediately. In order for the contents of this message to be >>>>> binding >>>>> on behalf of MedCPU it must be confirmed in writing by an authorized >>>>> signatory of MedCPU. Our company accepts no liability for the content of >>>>> this email unless it is so confirmed. The views or opinions presented >>>>> herein >>>>> do not necessarily represent those of the company. >>>>> >>>>> _______________________________________________ >>>>> rules-users mailing list >>>>> rules-users@lists.jboss.org >>>>> https://lists.jboss.org/mailman/listinfo/rules-users >>>>> >>>>> >>>> >>>> >>>> -- >>>> Edson Tirelli >>>> JBoss Drools Core Development >>>> JBoss by Red Hat @ www.jboss.com >>>> >>>> _______________________________________________ >>>> rules-users mailing list >>>> rules-users@lists.jboss.org >>>> https://lists.jboss.org/mailman/listinfo/rules-users >>>> >>>> >>> >>> >>> -- >>> Moe Alkhafaji >>> Chief Technology Officer, MedCPU >>> Phone: (630) 290-1113 >>> Email: c...@medcpu.com >>> >>> This message contains information which may be confidential. Unless you >>> are the addressee, you may not use, copy or disclose to anyone the message >>> or any information contained in this message. If you have received this >>> email in error, please notify c...@medcpu.com and please delete the >>> message immediately. In order for the contents of this message to be binding >>> on behalf of MedCPU it must be confirmed in writing by an authorized >>> signatory of MedCPU. Our company accepts no liability for the content of >>> this email unless it is so confirmed. The views or opinions presented herein >>> do not necessarily represent those of the company. >>> >>> _______________________________________________ >>> rules-users mailing list >>> rules-users@lists.jboss.org >>> https://lists.jboss.org/mailman/listinfo/rules-users >>> >>> >> >> >> -- >> Edson Tirelli >> JBoss Drools Core Development >> JBoss by Red Hat @ www.jboss.com >> >> _______________________________________________ >> rules-users mailing list >> rules-users@lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> >> > > > -- > Moe Alkhafaji > Chief Technology Officer, MedCPU > Phone: (630) 290-1113 > Email: c...@medcpu.com > > This message contains information which may be confidential. Unless you are > the addressee, you may not use, copy or disclose to anyone the message or > any information contained in this message. If you have received this email > in error, please notify c...@medcpu.com and please delete the message > immediately. In order for the contents of this message to be binding on > behalf of MedCPU it must be confirmed in writing by an authorized signatory > of MedCPU. Our company accepts no liability for the content of this email > unless it is so confirmed. The views or opinions presented herein do not > necessarily represent those of the company. > > _______________________________________________ > rules-users mailing list > rules-users@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > > -- Edson Tirelli JBoss Drools Core Development JBoss by Red Hat @ www.jboss.com
_______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users