Introduction to Rule-based Applications
-
Upload
giurca -
Category
Technology
-
view
3.733 -
download
0
Transcript of Introduction to Rule-based Applications
![Page 1: Introduction to Rule-based Applications](https://reader035.fdocuments.us/reader035/viewer/2022062220/555adb13d8b42a62528b4d43/html5/thumbnails/1.jpg)
Adrian Giurca, eBusiness Technologies, Craiova, March 2009
eBusiness Technologies (ebTech)
Introduction to Rule-based Applications
Dr. Adrian GiurcaBrandenburg University of Technology
Cottbus, Germany
![Page 2: Introduction to Rule-based Applications](https://reader035.fdocuments.us/reader035/viewer/2022062220/555adb13d8b42a62528b4d43/html5/thumbnails/2.jpg)
Adrian Giurca, eBusiness Technologies, Craiova, March 2009
Who I am
• Adrian Giurca (42 years old )• I was with University of Craiova from 1990• From 2005 I work at Brandenburg University
of Technology in Cottbus, Germany• During the years, I taught Logic Programming,
Software Engineering, Web Technologies, eBusiness Technologies, Semantic Web, and others.
http://adrian-giurca.blogspot.com/ http://inf.ucv.ro/~giurca http://www.informatik.tu-cottbus.de/~agiurca
![Page 3: Introduction to Rule-based Applications](https://reader035.fdocuments.us/reader035/viewer/2022062220/555adb13d8b42a62528b4d43/html5/thumbnails/3.jpg)
Adrian Giurca, eBusiness Technologies, Craiova, March 2009
This lecture is about rule based applications
• Rules are best used in applications with a dynamic business logic i.e. applications where changes in the business logic are frequently and they need to be immediately reflected in the application behavior.
• Rules applies successfully in domains such as: o insurance (insurance rating), o financial services (loans, claims routing and
management, fraud detection), o government (tax calculations), o telecom customer (care and billing), o e-commerce (personalizing the user's experience,
recommender systems, auctions)
![Page 4: Introduction to Rule-based Applications](https://reader035.fdocuments.us/reader035/viewer/2022062220/555adb13d8b42a62528b4d43/html5/thumbnails/4.jpg)
Adrian Giurca, eBusiness Technologies, Craiova, March 2009
The student main activity: Ask questions
• Whenever you need please ask questions!• (I have many open questions too... )
o Stop me and ask...o Maybe you'll get an answer (If I have one...)o Or I will answer you in the next lecture
• You can ask in RO. I'm pleased to speak RO• Slides are in English (they are not just for
you)
![Page 5: Introduction to Rule-based Applications](https://reader035.fdocuments.us/reader035/viewer/2022062220/555adb13d8b42a62528b4d43/html5/thumbnails/5.jpg)
Adrian Giurca, eBusiness Technologies, Craiova, March 2009
Your knowledge on rules
• Do you know rule languages? Prolog, Lisp,
Guru, Godel, Mercury,...
• Do you use rule languages?
Prolog, Lisp, Guru,...
• What rule-based applications you built?
?
![Page 6: Introduction to Rule-based Applications](https://reader035.fdocuments.us/reader035/viewer/2022062220/555adb13d8b42a62528b4d43/html5/thumbnails/6.jpg)
Adrian Giurca, eBusiness Technologies, Craiova, March 2009
What do you know about programming?
Modeling UML,...
LanguagesJava, C, C+
+, ...
ParadigmsProcedural, OOP,
Functional, Declarative, ...
MethodologiesRUP, Extreme,
Agile,...
![Page 7: Introduction to Rule-based Applications](https://reader035.fdocuments.us/reader035/viewer/2022062220/555adb13d8b42a62528b4d43/html5/thumbnails/7.jpg)
Adrian Giurca, eBusiness Technologies, Craiova, March 2009
What's your preferred programming model?
Modeling UML?
LanguagesJava? Paradigms
OOP?
MethodologiesAgile?
![Page 8: Introduction to Rule-based Applications](https://reader035.fdocuments.us/reader035/viewer/2022062220/555adb13d8b42a62528b4d43/html5/thumbnails/8.jpg)
Adrian Giurca, eBusiness Technologies, Craiova, March 2009
Embedding rules in Java – Using Libraries
• Prolog 2 Java:o SWI-Prolog JPL: http://www.swi-rolog.org/packages/jpl/ o JProlog: http://www.cs.kuleuven.ac.be/~bmd/PrologInJ
ava/
• And many others...But:• Did you used them ever?• Are they easy to be used?• What about the programming model? How
you design your application?
![Page 9: Introduction to Rule-based Applications](https://reader035.fdocuments.us/reader035/viewer/2022062220/555adb13d8b42a62528b4d43/html5/thumbnails/9.jpg)
Adrian Giurca, eBusiness Technologies, Craiova, March 2009
Business community use natural language (NL) to express rules
• If all of the following are true, then the car's potential theft rating is low:o car's price is less that $20,000,o car model is not on the list of 'High Theft
Probability Auto'.• If the car has no airbags, then the car's
potential occupant injury rating is extremely high.
• If the driver is a young driver, is married and located in CA, NY or VA, then increase policy premium by $700.
![Page 10: Introduction to Rule-based Applications](https://reader035.fdocuments.us/reader035/viewer/2022062220/555adb13d8b42a62528b4d43/html5/thumbnails/10.jpg)
Adrian Giurca, eBusiness Technologies, Craiova, March 2009
Logic programming (LP) is great
1.Has a well established semantics2.Well known engine(s)3.You have to learn the syntax and (at least)
the operational semantics4.With LP background one can easily
understand other solutions
• Can you model the above rules in Prolog?• Can you use them in an insurance scoring
application ?• Can you change the rules at runtime?
![Page 11: Introduction to Rule-based Applications](https://reader035.fdocuments.us/reader035/viewer/2022062220/555adb13d8b42a62528b4d43/html5/thumbnails/11.jpg)
Adrian Giurca, eBusiness Technologies, Craiova, March 2009
Slide No. 11
• This is Slide No. 11 (half time) and we don't know yet how to use rules in a large application?!
(Yet) Open Questions:– How to model such an application? Which modeling
language I have to use?– Which rule library to use?– How to separate the rules – logic from the rest of application – logic?– How to debug the application?– How to maintain/re-factor?
![Page 12: Introduction to Rule-based Applications](https://reader035.fdocuments.us/reader035/viewer/2022062220/555adb13d8b42a62528b4d43/html5/thumbnails/12.jpg)
Adrian Giurca, eBusiness Technologies, Craiova, March 2009
This Course Goals
• To learn you basic rule modeling• To introduce the basics of a Java-based rule
engine:
A project of
![Page 13: Introduction to Rule-based Applications](https://reader035.fdocuments.us/reader035/viewer/2022062220/555adb13d8b42a62528b4d43/html5/thumbnails/13.jpg)
Adrian Giurca, eBusiness Technologies, Craiova, March 2009
Facts about Drools
• Open-Source, Forward-Chaining Production Rule System
• Reuse rules across applications and Service-Oriented Architectures
• The runtime provides dynamic assertion and remove of rules
• Offers support for temporal rules that are executed within specified time periods or constraints
• Drools Rule Language (DRL) uses Java to express field constraints, functions, and consequences
• Drools Workbench IDE features include syntax coloring, outline view, basic rule validation and error reporting
• Blog: http://blog.athico.com/
![Page 14: Introduction to Rule-based Applications](https://reader035.fdocuments.us/reader035/viewer/2022062220/555adb13d8b42a62528b4d43/html5/thumbnails/14.jpg)
Adrian Giurca, eBusiness Technologies, Craiova, March 2009
Rules are based on domain vocabularies
• Many software engineers design vocabularies using UML
• UML class diagrams can be straightforward mapped to Java.
![Page 15: Introduction to Rule-based Applications](https://reader035.fdocuments.us/reader035/viewer/2022062220/555adb13d8b42a62528b4d43/html5/thumbnails/15.jpg)
Adrian Giurca, eBusiness Technologies, Craiova, March 2009
Can we use UML to design rules?
• If the driver is a young driver, is married and located in CA, NY or VA, then increase policy premium by $700.
Conditions
Variables
Actions
Rule Symbol
![Page 16: Introduction to Rule-based Applications](https://reader035.fdocuments.us/reader035/viewer/2022062220/555adb13d8b42a62528b4d43/html5/thumbnails/16.jpg)
Adrian Giurca, eBusiness Technologies, Craiova, March 2009
URML–UML-based language for rule modeling
• URML supports modeling of o derivation rules (aka Prolog rules), o production rules (aka Expert Systems rules) o reaction rules (Event-Condition-Action rules).
• A rule is represented graphically as a circle with a rule identifier.
• Incoming arrows represent rule conditions or triggering events
• Outgoing arrows represent rule conclusions or produced actions.
• Ask me later if you are interested!
![Page 17: Introduction to Rule-based Applications](https://reader035.fdocuments.us/reader035/viewer/2022062220/555adb13d8b42a62528b4d43/html5/thumbnails/17.jpg)
Adrian Giurca, eBusiness Technologies, Craiova, March 2009
Drools Rule Language (is almost Java!!)
rule "DP_01"agenda-group "driver-premium"salience 10when//If young driver, married and located in //one of CA, NY or VA$driver:YoungDriver(maritalStatus == MaritalStatus.MARRIED,usState == "CA" || == "NY" || == "VA", $policy:vehicleInsurancePolicy)then//increase policy premium by $700$policy.setPremium($policy.getPremium()+ 700);$driver.setPolicy($policy)drools.modifyObject($driver);end
![Page 18: Introduction to Rule-based Applications](https://reader035.fdocuments.us/reader035/viewer/2022062220/555adb13d8b42a62528b4d43/html5/thumbnails/18.jpg)
Adrian Giurca, eBusiness Technologies, Craiova, March 2009
Can you write this rule using logic ? (Of course)
IF youngDriver($driver)ANDmaritalStatus($driver, "married") AND(usState($driver, "CA") OR usState($driver, "NY") OR usState($driver, "VA")) AND vehicleInsurancePolicy($driver, $policy) ANDTHENpremium($policy, $premium) ANDretract(premium($policy, $premium)) ANDretract(vehicleInsurancePolicy($driver, $policy)) ANDassert(premium($policy, $premium+700)) ANDassert(vehicleInsurancePolicy($driver, $policy))
• Logic works fine. Is enough.
![Page 19: Introduction to Rule-based Applications](https://reader035.fdocuments.us/reader035/viewer/2022062220/555adb13d8b42a62528b4d43/html5/thumbnails/19.jpg)
Adrian Giurca, eBusiness Technologies, Craiova, March 2009
What about this representation?
IF driver($driver, type("youngDriver"), maritalStatus("married"), vehicleInsurancePolicy(policy($premium)))AND....
• Logic works fine?! Is enough?! Hmm...• How can I connect my rules with already existent Java
classes in my application?• Add more classes... Mappings... Increase complexity...• Better use a Java syntax for rules... and a Java-based rule
engine!
![Page 20: Introduction to Rule-based Applications](https://reader035.fdocuments.us/reader035/viewer/2022062220/555adb13d8b42a62528b4d43/html5/thumbnails/20.jpg)
Adrian Giurca, eBusiness Technologies, Craiova, March 2009
Many commercial usages of rule engines
• IBM Rules (former ILOG Rules), http://www.ilog.com/
• Oracle Business Rules, http://www.oracle.com/technology/products/ias/business_rules
• Fair Isaac, http://www.fairisaac.com/ • Innovations, http://www.innovations.de/ • Pegasystems, http://www.pega.com/ • Computer Associates, http://www.ca.com/ • Gensym, http://www.gensym.com/ • Corticon, http://www.corticon.com/
![Page 21: Introduction to Rule-based Applications](https://reader035.fdocuments.us/reader035/viewer/2022062220/555adb13d8b42a62528b4d43/html5/thumbnails/21.jpg)
Adrian Giurca, eBusiness Technologies, Craiova, March 2009
Do you like rule-based applications?
• Attend the next lecture o Tomorrow at 4PM in the same room