SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.
SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.
Successfully reported this slideshow.
Activate your 14 day free trial to unlock unlimited reading.
Drools5 Community Training Module 6 Drools DSL & Spreadsheets
Drools5 Community Training Module 6 Drools DSL & Spreadsheets
1.
Drools5 Community Training
DSL & Decision Tables
Sponsored by Plugtree
2.
Module 6: Drools Expert
DSL & Decision Tables
Drools5 Community Training
version: 1.0-SNAPSHOT
Release Date: 03/16/2011
Under The Creative Common License
3.
Module 6: Drools Expert
DSL & Decision Tables
Drools5 Community Training Course
by Mauricio "Salaboy"
Salatino and Esteban Aliverti is
licensed under a Creative Commons
Attribution 3.0 Unported License.
Based on a work at salaboy.wordpress.
com.
Permissions beyond the scope of this
license may be available at http:
//salaboy.wordpress.com/.
4.
Agenda
● Other ways to express rules
○ Domain Specific Languages
○ Decision Tables
5.
Other ways to express rules
● DSL -> Express Rules in natural Language
● SpreadSheets -> Express rules as decision tables
6.
Domain Specific Languages
Example:
DRL:
Song(genre == "Jazz")
DSL:
[Condition]There is a Jazz Song = Song(genre == "Jazz")
7.
Domain Specific Languages
● Focused on Subject Matter Experts
● Natural Language
● Can be used in guided editor
● It's just mapping your business language in DRL
8.
DSL Example
DSL files have two main sections (condition / consequence) with the
following semantics:
[condition or consequence] natural language expression = drools mapping/execution expression
DSL semantics allow binding of variables in the natural language
expression to the drools expression:
When the user is called {userName} = User(name== "{userName}")
DSL resources must be added to kbuilder previous to DSLR
10.
Decision Tables
● More business-user friendly
● Useful in situations when we have a lot of similar rules
● Drools supports XLS or CSV files
● Behind-the-scenes Drools transforms Decision Tables to
vanilla DRL