[rules-users] To know about correct Drools rule file (drl) syntaxes

Mark Proctor mproctor at codehaus.org
Thu May 29 08:47:30 EDT 2008


Hareendra Pelige wrote:
>
> Hi All,
>
> I am new to this Drools rule engine. After looking at its features, I 
> am really interested on this. I tried few samples given in jboss site 
> and got to know high-level understanding of the rule engine and how it 
> can be used in our business applications.
>
> But, I am really confused with the rule syntaxes used in sample files, 
> samples published in the internet.
>
>  
>
> Few such syntaxes are listed bellow. Could you please let me know 
> which is better for enterprise applications?
>
>  
>
> 1.
>
> rule "Hello World"
>
>     dialect "mvel"
>
>             when
>
>                         m : Message( status == Message.HELLO, message 
> : message
>
> )
>
>             then
>
>                 System.out.println( message );
>
>                 modify ( m ) { message = "Goodbyte cruel world",
>
>                                status = Message.GOODBYE };
>
>                 System.out.println( message );                           
>
> end
>
>  
>
> rule "Good Bye"
>
>     dialect "java"
>
>             when
>
>                         Message( status == Message.GOODBYE, message : 
> message )
>
>             then
>
>                         System.out.println( message );               
>
> End
>
>  
>
> Questions:
>
> Here, what is "dialect" and what are 'mvel' and 'java'?
>
> What are the differences between 'mvel' and 'java'
>
>  
>
> 2.
>
> <rule-set name="disposition rules"
>
>     xmlns="http://drools.org/rules"   
>
>     xmlns:java="http://drools.org/semantics/java"
>
>     xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
>
>     xs:schemaLocation="http://drools.org/rules rules.xsd
>
>                                                 
>    http://drools.org/semantics/java java.xsd">
>
>  
>
>             <!-- season sale means 10% off item price -->
>
>     <rule name="season sales">
>
>         <parameter identifier="item">
>
>             <class>de.linsin.example.drools.domain.Item</class>
>
>         </parameter>
>
>         <parameter identifier="bill">
>
>             <class>de.linsin.example.drools.domain.Bill</class>
>
>         </parameter>
>
>         <parameter identifier="quantity">
>
>             <class>java.lang.Integer</class>
>
>         </parameter>
>
>         <java:condition>
>
>             item.isOnSeasonSale() == true
>
>         </java:condition>
>
>         <java:consequence>
>
>             double price = (item.getPrice()*(100-10))/100;
>
>             bill.addItem(item, quantity.intValue()*price);
>
>         </java:consequence>
>
>     </rule>
>
>    
>
>     <!-- customer discount means 5% off total -->
>
>     <rule name="discount">
>
>         <parameter identifier="bill">
>
>             <class>de.linsin.example.drools.domain.Bill</class>
>
>         </parameter>
>
>         <parameter identifier="customer">
>
>             <class>de.linsin.example.drools.domain.Customer</class>
>
>         </parameter>
>
>         <java:condition>
>
>             customer.isDiscount() == true
>
>         </java:condition>
>
>         <java:consequence>
>
>             double total = bill.getTotal();
>
>             bill.setTotal((total*(100-5))/100);
>
>         </java:consequence>
>
>     </rule>
>
> </rule-set>
>
that is drools2.0 - there is no relation between this and 4.0.
>
>  
>
> 3.
>
> package com.test
>
>  
>
> import com.test.common.*;
>
> import java.util.ArrayList;
>
>  
>
> // Extract TestData
>
> rule "Extract Test Data"
>
>             dialect "java"
>
>             when
>
>                         $productRequest : 
> ProductRequest(bookingRequest!=null)
>
>             then
>
>                         insert( $productRequest.getDivision() );
>
>  
>
>                         System.out.println( "Extracted Test Data."); end
>
>  
>
>  
>
>  
>
> Could you please point me a location(s) to learn drl rule language 
> with its syntaxes?
>
>  
>
> Appreciate any of your help.
>
>  
>
> Thanks and regards
>
> Hareendra Pelige
>
>  
>
>  
>
> -----Original Message-----
> From: rules-users-bounces at lists.jboss.org 
> [mailto:rules-users-bounces at lists.jboss.org] On Behalf Of Benjamin J 
> McMillan
> Sent: Thursday, May 29, 2008 3:15 AM
> To: Rules Users List
> Subject: [rules-users] the BRMS and queries
>
>  
>
> All,
>
>  
>
> Either the BRMS, when uploading a DRL file, doesn't read in queries, or
>
> it doesn't build them into the deployment package.
>
>  
>
> Is this by design, or a bug? For now my application (my unit tests,
>
> actually) queries the working memory for decision objects, instead of
>
> having rules respond to the decisions and put them into a data structure
>
> the java app can see. I could do the latter, but I'm just wondering if
>
> maybe I'm doing something wrong regarding queries and the BRMS.
>
>  
>
> Thanks!
>
>  
>
> Ben
>
>  
>
>  
>
>  
>
> _______________________________________________
>
> rules-users mailing list
>
> rules-users at lists.jboss.org
>
> https://lists.jboss.org/mailman/listinfo/rules-users
>
> ------------------------ 
> --------------------------------------------------------------------
> This message, including any attachments, contains confidential 
> information intended for a specific individual and purpose, and is 
> intended for the addressee only. Any unauthorized disclosure, use, 
> dissemination, copying, or distribution of this message or any of its 
> attachments or the information contained in this e-mail, or the taking 
> of any action based on it, is strictly prohibited. If you are not the 
> intended recipient, please notify the sender immediately by return 
> e-mail and delete this message.
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>   

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20080529/6ef1716a/attachment.html 


More information about the rules-users mailing list