SlideShare a Scribd company logo
1 of 29
Building an English-based
Rules Engine Using .NET and
         IronRuby
                  @KeithElder

 Director, Software Engineering @ Quicken Loans
                        or
       Aka: Professional Emailer and Typer
Quicken Loans
WHAT AMAZES YOU?
ARE RULE ENGINES
AMAZING?
What We’ll Be Doing Today
If answer to question 2 is Very
Satisfied and client is a repeat client
then send them a discount coupon
in the mail.

         Cylinder
 RUBY                           C#
A business rules engine is
a software system that
executes one or more business
rules in a runtime production
environment. It enables these
company policies and other
operational decisions to be
defined, tested, executed and
maintained separately from
A deterministic rule engine may
forgo both forward chaining and
backward chaining, and instead
utilize Domain-specific
language approaches to better
describe policy. This approach is
often easier to implement and
maintain, and provides
performance advantages over
forward or backward chaining
Real World Example




You know what would be amazing? If
I could create a way for someone in
Marketing to enter rules just like
above.
DEMO
What This Is Not
• Natural language processing
• Machine learning
What It Is
• Ignoring the ceremony of the English
  language and taking only the parts we
  care about
• Pattern matching
• Mapping the text to Code
HOW DOES IT WORK?
First – Identify Connectors


If answer to question 2 is Very Satisfied and
client is a repeat client then send them a
discount coupon in the mail.

        CONNECTORS
Easier to Process


If answer to question 2 is Very Satisfied
And client is a repeat client
Then send them a discount coupon in the
mail.

        CONNECTORS
If Statement
If answer to question (d+) is (.+)
                      2 is Very Satisfied


Need a method that returns a bool and takes two
parameters

bool AnswerToQuestion(int num, string ans)
And Statement
And client is a repeat client


Need a method that returns a bool with no
parameters

bool ClientIsARepeatClient()
Then Statement
Then send them a discount coupon in the
mail

Need a method that returns void with no
parameters

void SendDiscountCoupon()
From English To Code

If answer to question 2 is Very Satisfied and
client is a repeat client then send them a
discount coupon in the mail.

if AnswerToQuestion(2, “Yes”) &&
ClientIsARepeatClient()
{
    SendDiscountCoupon() ;
}
Now We Have Our Mapping
If answer to question 2 is Very Satisfied
And client is a repeat client
Then send them a discount coupon in the mail.


[If(@"answer to question (d+) is (.+)")]
bool AnswerToQuestion(params string[] args)

[And(@"client is a repeat client")]
bool ClientIsARepeatClient()

[Then(@"send them a discount coupon in the mail")]
void SendDiscountCoupon()
We Created A RuleSet
class public SurveyRuleSet
{

[If(@"answer to question (d+) is (.+)")]
public bool AnswerToQuestion(params string[] args) {}

[And(@"client is a repeat client")]
public bool ClientIsARepeatClient() {}

[Then(@"send them a discount coupon in the mail")]
public void SendDiscountCoupon() {}

}
SERIOUSLY DUDE WHERE’S THE
RUBY, THAT’S THE ONLY REASON
I’M HERE
CONVERTING ENGLISH TO
RUBY
What Do We Know?
• Statements
• Which functions those statements map to
DEMO
Cool Features
• Support for variances in the language
• Could support any language, it’s just text
  after all
• Allows us to define our own DSL
DEMO – RULES FOR THE SOUTH,
OTHER LANGUAGES AND
LANGUAGE VARIANCES
Building an English-based
Rules Engine Using .NET and
         IronRuby
                  @KeithElder

 Director, Software Engineering @ Quicken Loans
                        or
       Aka: Professional Emailer and Typer

More Related Content

Similar to Building an english based rules engine

Port80: the uncertainty principle
Port80: the uncertainty principlePort80: the uncertainty principle
Port80: the uncertainty principleFred Heath
 
Example Call Back
Example Call BackExample Call Back
Example Call Backlsdwyrm
 
BPCS Infor ERP LX Implementation Evaluation Q4 2007
BPCS Infor ERP LX Implementation Evaluation Q4 2007BPCS Infor ERP LX Implementation Evaluation Q4 2007
BPCS Infor ERP LX Implementation Evaluation Q4 2007Dedy Sofyan
 
Tas lead mgmnt process
Tas lead mgmnt processTas lead mgmnt process
Tas lead mgmnt processRalph Paglia
 
South Africa Tour: Introduction to value-led pricing
South Africa Tour: Introduction to value-led pricingSouth Africa Tour: Introduction to value-led pricing
South Africa Tour: Introduction to value-led pricingEd Kless
 
S-CUBE LP: Formal Specifications for Services and Service Compositions
S-CUBE LP: Formal Specifications for Services and Service CompositionsS-CUBE LP: Formal Specifications for Services and Service Compositions
S-CUBE LP: Formal Specifications for Services and Service Compositionsvirtual-campus
 
Agile Network India | Be Customer Centric with Test First Development | Mamat...
Agile Network India | Be Customer Centric with Test First Development | Mamat...Agile Network India | Be Customer Centric with Test First Development | Mamat...
Agile Network India | Be Customer Centric with Test First Development | Mamat...AgileNetwork
 
Developing a Culture of Quality Code (Midwest PHP 2020)
Developing a Culture of Quality Code (Midwest PHP 2020)Developing a Culture of Quality Code (Midwest PHP 2020)
Developing a Culture of Quality Code (Midwest PHP 2020)Scott Keck-Warren
 
Performance Instrumentation for PL/SQL: When, Why, How
Performance Instrumentation for PL/SQL: When, Why, HowPerformance Instrumentation for PL/SQL: When, Why, How
Performance Instrumentation for PL/SQL: When, Why, HowKaren Morton
 
Cost Reduction in the Call Center
Cost Reduction in the Call CenterCost Reduction in the Call Center
Cost Reduction in the Call CenterDaniel Willis
 
Data Entry Operator Certification
Data Entry Operator CertificationData Entry Operator Certification
Data Entry Operator CertificationVskills
 
2020 Updated Microsoft MB-200 Questions and Answers
2020 Updated Microsoft MB-200 Questions and Answers2020 Updated Microsoft MB-200 Questions and Answers
2020 Updated Microsoft MB-200 Questions and Answersdouglascarnicelli
 
Microsoft Commerce Functional Consultant MB-340 Training
Microsoft Commerce Functional Consultant MB-340 TrainingMicrosoft Commerce Functional Consultant MB-340 Training
Microsoft Commerce Functional Consultant MB-340 TrainingwilliamLeo13
 
problem solving and design By ZAK
problem solving and design By ZAKproblem solving and design By ZAK
problem solving and design By ZAKTabsheer Hasan
 
Devry busn 258 complete course latest 2016 feb
Devry busn 258 complete course latest 2016 febDevry busn 258 complete course latest 2016 feb
Devry busn 258 complete course latest 2016 febsergejsvolkovs10
 
Devry busn 258 complete course latest 2016 feb
Devry busn 258 complete course latest 2016 febDevry busn 258 complete course latest 2016 feb
Devry busn 258 complete course latest 2016 febpowellabril
 
Devry busn 258 complete course latest 2016 feb
Devry busn 258 complete course latest 2016 febDevry busn 258 complete course latest 2016 feb
Devry busn 258 complete course latest 2016 febpowellabril
 

Similar to Building an english based rules engine (20)

Top coder
Top coderTop coder
Top coder
 
Assignment 2
Assignment 2Assignment 2
Assignment 2
 
Port80: the uncertainty principle
Port80: the uncertainty principlePort80: the uncertainty principle
Port80: the uncertainty principle
 
Example Call Back
Example Call BackExample Call Back
Example Call Back
 
BPCS Infor ERP LX Implementation Evaluation Q4 2007
BPCS Infor ERP LX Implementation Evaluation Q4 2007BPCS Infor ERP LX Implementation Evaluation Q4 2007
BPCS Infor ERP LX Implementation Evaluation Q4 2007
 
Tas lead mgmnt process
Tas lead mgmnt processTas lead mgmnt process
Tas lead mgmnt process
 
South Africa Tour: Introduction to value-led pricing
South Africa Tour: Introduction to value-led pricingSouth Africa Tour: Introduction to value-led pricing
South Africa Tour: Introduction to value-led pricing
 
S-CUBE LP: Formal Specifications for Services and Service Compositions
S-CUBE LP: Formal Specifications for Services and Service CompositionsS-CUBE LP: Formal Specifications for Services and Service Compositions
S-CUBE LP: Formal Specifications for Services and Service Compositions
 
Agile Network India | Be Customer Centric with Test First Development | Mamat...
Agile Network India | Be Customer Centric with Test First Development | Mamat...Agile Network India | Be Customer Centric with Test First Development | Mamat...
Agile Network India | Be Customer Centric with Test First Development | Mamat...
 
Developing a Culture of Quality Code (Midwest PHP 2020)
Developing a Culture of Quality Code (Midwest PHP 2020)Developing a Culture of Quality Code (Midwest PHP 2020)
Developing a Culture of Quality Code (Midwest PHP 2020)
 
Performance Instrumentation for PL/SQL: When, Why, How
Performance Instrumentation for PL/SQL: When, Why, HowPerformance Instrumentation for PL/SQL: When, Why, How
Performance Instrumentation for PL/SQL: When, Why, How
 
Cost Reduction in the Call Center
Cost Reduction in the Call CenterCost Reduction in the Call Center
Cost Reduction in the Call Center
 
Data Entry Operator Certification
Data Entry Operator CertificationData Entry Operator Certification
Data Entry Operator Certification
 
2020 Updated Microsoft MB-200 Questions and Answers
2020 Updated Microsoft MB-200 Questions and Answers2020 Updated Microsoft MB-200 Questions and Answers
2020 Updated Microsoft MB-200 Questions and Answers
 
Microsoft Commerce Functional Consultant MB-340 Training
Microsoft Commerce Functional Consultant MB-340 TrainingMicrosoft Commerce Functional Consultant MB-340 Training
Microsoft Commerce Functional Consultant MB-340 Training
 
problem solving and design By ZAK
problem solving and design By ZAKproblem solving and design By ZAK
problem solving and design By ZAK
 
MB-310 Exam Dumps
MB-310 Exam DumpsMB-310 Exam Dumps
MB-310 Exam Dumps
 
Devry busn 258 complete course latest 2016 feb
Devry busn 258 complete course latest 2016 febDevry busn 258 complete course latest 2016 feb
Devry busn 258 complete course latest 2016 feb
 
Devry busn 258 complete course latest 2016 feb
Devry busn 258 complete course latest 2016 febDevry busn 258 complete course latest 2016 feb
Devry busn 258 complete course latest 2016 feb
 
Devry busn 258 complete course latest 2016 feb
Devry busn 258 complete course latest 2016 febDevry busn 258 complete course latest 2016 feb
Devry busn 258 complete course latest 2016 feb
 

Recently uploaded

Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераMark Opanasiuk
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoTAnalytics
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfSrushith Repakula
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCzechDreamin
 
Connecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKConnecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKUXDXConf
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfFIDO Alliance
 
ECS 2024 Teams Premium - Pretty Secure
ECS 2024   Teams Premium - Pretty SecureECS 2024   Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty SecureFemke de Vroome
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlPeter Udo Diehl
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxJennifer Lim
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfFIDO Alliance
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyUXDXConf
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeCzechDreamin
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaCzechDreamin
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxDavid Michel
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfFIDO Alliance
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIES VE
 
Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024TopCSSGallery
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceSamy Fodil
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...marcuskenyatta275
 

Recently uploaded (20)

Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
Connecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKConnecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAK
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
ECS 2024 Teams Premium - Pretty Secure
ECS 2024   Teams Premium - Pretty SecureECS 2024   Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty Secure
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdf
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 

Building an english based rules engine

  • 1. Building an English-based Rules Engine Using .NET and IronRuby @KeithElder Director, Software Engineering @ Quicken Loans or Aka: Professional Emailer and Typer
  • 3.
  • 5.
  • 7. What We’ll Be Doing Today If answer to question 2 is Very Satisfied and client is a repeat client then send them a discount coupon in the mail. Cylinder RUBY C#
  • 8. A business rules engine is a software system that executes one or more business rules in a runtime production environment. It enables these company policies and other operational decisions to be defined, tested, executed and maintained separately from
  • 9. A deterministic rule engine may forgo both forward chaining and backward chaining, and instead utilize Domain-specific language approaches to better describe policy. This approach is often easier to implement and maintain, and provides performance advantages over forward or backward chaining
  • 10. Real World Example You know what would be amazing? If I could create a way for someone in Marketing to enter rules just like above.
  • 11. DEMO
  • 12. What This Is Not • Natural language processing • Machine learning
  • 13. What It Is • Ignoring the ceremony of the English language and taking only the parts we care about • Pattern matching • Mapping the text to Code
  • 14. HOW DOES IT WORK?
  • 15. First – Identify Connectors If answer to question 2 is Very Satisfied and client is a repeat client then send them a discount coupon in the mail. CONNECTORS
  • 16. Easier to Process If answer to question 2 is Very Satisfied And client is a repeat client Then send them a discount coupon in the mail. CONNECTORS
  • 17. If Statement If answer to question (d+) is (.+) 2 is Very Satisfied Need a method that returns a bool and takes two parameters bool AnswerToQuestion(int num, string ans)
  • 18. And Statement And client is a repeat client Need a method that returns a bool with no parameters bool ClientIsARepeatClient()
  • 19. Then Statement Then send them a discount coupon in the mail Need a method that returns void with no parameters void SendDiscountCoupon()
  • 20. From English To Code If answer to question 2 is Very Satisfied and client is a repeat client then send them a discount coupon in the mail. if AnswerToQuestion(2, “Yes”) && ClientIsARepeatClient() { SendDiscountCoupon() ; }
  • 21. Now We Have Our Mapping If answer to question 2 is Very Satisfied And client is a repeat client Then send them a discount coupon in the mail. [If(@"answer to question (d+) is (.+)")] bool AnswerToQuestion(params string[] args) [And(@"client is a repeat client")] bool ClientIsARepeatClient() [Then(@"send them a discount coupon in the mail")] void SendDiscountCoupon()
  • 22. We Created A RuleSet class public SurveyRuleSet { [If(@"answer to question (d+) is (.+)")] public bool AnswerToQuestion(params string[] args) {} [And(@"client is a repeat client")] public bool ClientIsARepeatClient() {} [Then(@"send them a discount coupon in the mail")] public void SendDiscountCoupon() {} }
  • 23. SERIOUSLY DUDE WHERE’S THE RUBY, THAT’S THE ONLY REASON I’M HERE
  • 25. What Do We Know? • Statements • Which functions those statements map to
  • 26. DEMO
  • 27. Cool Features • Support for variances in the language • Could support any language, it’s just text after all • Allows us to define our own DSL
  • 28. DEMO – RULES FOR THE SOUTH, OTHER LANGUAGES AND LANGUAGE VARIANCES
  • 29. Building an English-based Rules Engine Using .NET and IronRuby @KeithElder Director, Software Engineering @ Quicken Loans or Aka: Professional Emailer and Typer

Editor's Notes

  1. Having a childGrand CanyonVolcanoesOceanSomeone that has fought a disease and won
  2. Sunset at North Pole, pretty amazing picture wouldn’t you agree?
  3. Talk about what rule engines are.
  4. We will be taking this fairly common english statement and use it as a basis for a rules engine. We’ll take this english text, and generate Ruby script which will then call into C# code. And of course it goes without saying that we can store the ruby script in the Cylinder and thus invoke this whenever we want. We’ll be using IronRuby to execute the Ruby Script.
  5. http://en.wikipedia.org/wiki/Business_rules_engine#Types_of_rule_enginesForward chaining – works until a goal is metBackward chaining - works backward from the goal
  6. http://en.wikipedia.org/wiki/Business_rules_engine#Types_of_rule_enginesForward chaining – works until a goal is metBackward chaining - works backward from the goal
  7. I got this email from a fellow team member in marketing a few months ago. What he sent me was the rules that needed to process a particular feedback survey. We have lots of these surveys that collect data, and each has their own specific types of rules and what not. Now while we have a rules engine internally that we’ve built, and a pretty amazing one, it doesn’t really help us in this situation because:It requires a lot of trainingIt only runs on windows, this team member has a MacIt is very complicatedIt woldn’t *amaze* anyone in MarketingThink about this from my team member’s perspective (who is our client in this case). If we used his exact words to write these ruels, wouldn’t THAT BE AMAZING!? Answer: Yes.And this is what we did. So let’s take a look at a stripped down sample / demo UI.
  8. Let’s look at the first three lines of the sample rules.
  9. Let’s look at the first three lines of the sample rules.
  10. Let’s look at the first three lines of the sample rules.
  11. Let’s look at the first three lines of the sample rules.
  12. Let’s look at the first three lines of the sample rules.
  13. Let’s look at the first three lines of the sample rules.