SlideShare a Scribd company logo
San Jose, Oct 13-15, 2014 
Building Domain-Specific Decision Models 
Jacob Feldman, PhD 
OpenRules, Inc., CTO 
www.openrules.com 
1
Outline 
•Transformation from Domain-specific programming languages (DSL) to business- oriented Domain-Specific Decision Models 
–Motivation 
–General Approach 
•Real-world examples of domain-specific models 
–Decision Modeling in Constraint Programming 
–Decision Modeling in Geospatial Domain 
–Decision Modeling for Dynamic Web Interaction 
2 
© OpenRules, Inc. 2014
Domain-Specific Decision Models 
•Motivation 
–There are many solid Java (C++,…) libraries that support a Domain-Specific Languages (DSL) with their own Java API, e.g. 350+ JSRs 
–DSLs provide specialized concepts and methods for a particular problem domain 
–DSLs are oriented to software developers 
•However, we cannot offer such APIs to business users: they need some kind of a “Business DSL”! 
3 
© OpenRules, Inc. 2014
General Purpose vs Domain-Specific 
•General Purpose BRMS is similar to General Purpose Language (e.g. Java, C++): 
–Forces its users to define all concepts, relationships, and methods from scratch 
–Real Value of Java is in surrounding libraries not in language; 
–What is an analogy for BRMS? 
•Domain-Specific Decision Model is similar to DSL: 
–Provide specialized concepts, relationships, and methods for a particular problem domain 
–A subject matter expert feels “at home” 
–Real Value in modeling facilities not in an engine 
4 
© OpenRules, Inc. 2014
Domain-Specific Decision Models 
• Objective 
– Given: a domain-specific language with an API 
– Goal: create a domain-specific decision modeling 
“language“ oriented to business users 
© OpenRules, Inc. 2014 5 
Decision 
Modeling 
Constructs 
(Diagrams & 
Decision Table) 
Software 
Developers 
Business 
Analysts 
DSL 
(API)
Moving From Java to Business Decision Modeling 
•Building business-oriented decision modeling facilities on top of domain-specific Java APIs 
•Hiding object-orientation, complex embedding, and pure programming constructs 
•No new classes but rather a business glossary connected to existing object 
•Transforming long chains of if-then-else or switch- statements to easy understood and maintained decision tables 
6 
© OpenRules, Inc. 2014
General Purpose Decision Modeling 
•OpenRules provides a powerful templatization mechanism that allowed us to implement generic decision modeling approaches such as DMN and TDM 
•The standard templates are provided in Excel and allow a business user to create concrete Excel tables of the type Decision, DecisionTable, DecisionTableMultiHit, Glossary, and more 
•No coding is required – users just construct tables using predefined column types 
7
Business-oriented Decision Table and its Technical Template 
8
From DSL to Decision Models 
9 
© OpenRules, Inc. 2014 
Decision Modeling Constructs (Diagrams & Decision Table) 
1.Domain-Specific Glossary 
•Business Concepts 
•Decision Variables 
2.Domain-Specific Decision Tables 
•Conditions 
•Actions 
•Hit Policies 
•Aggregation 
•… 
3.Process Diagrams 
DSL (API) 
1.Domain-Specific Classes 
•Classes/Sub-classes 
•Attributes 
2.Domain-Specific Classes 
•Methods 
•If/Then/Else 
•Loops 
•… 
3.Navigating through graphs and collections
DSL Examples 
•Decision Modeling in Constraint Programming 
•Decision Modeling in Geospatial Domain 
•Decision Modeling for Dynamic Web Interaction 
10 
© OpenRules, Inc. 2014
DSL Example “Constraint Programming API” 
•JSR-331 “Java Constraint Programming API” – an official Java Community Process (JCP) standard www.jcp.org 
•JSR-331 covers key concepts for representation and resolution of constraint satisfaction and optimization problems: 
–Class Var for constraint variables and all operators on them 
–Class Constraint for different constraints such as “var1 I greater than var2” or “all variables in the array are different” 
11 
© OpenRules, Inc., 2012
Use Case “Staff Rostering” 
•As the manager, you are required to hire and set the weekly schedule for your employees as follows: 
–Total employees required 
Mon 
Tue 
Wed 
Thu 
Fri 
Sat 
Sun 
5 
8 
9 
10 
16 
18 
12 
–Available employees: 
Employee Type 
Total 
Cost per Day 
F/T 
14 
$100 
P/T 
4 
$150 
•What is the minimal staffing cost? 
12 
© OpenRules, Inc., 2012
Solution using Java API (1) 
13 
Problem p = ProblemFactory.newProblem("EmployeeRostering1"); 
// Define FT and PT variables 
int maxFT = 14; 
int maxPT = 4; 
Var monFT = p.variable("MonFT", 0, maxFT); 
Var monPT = p.variable("MonPT", 0, maxPT); 
Var tueFT = p.variable("TueFT", 0, maxFT); 
Var tuePT = p.variable("TuePT", 0,maxPT); 
Var wedFT = p.variable("WedFT", 0, maxFT); 
Var wedPT = p.variable("WedPT", 0, maxPT); 
Var thuFT = p.variable("ThuFT", 0, maxFT); 
Var thuPT = p.variable("ThuPT", 0, maxPT); 
Var friFT = p.variable("FriFT", 0, maxFT); 
Var friPT = p.variable("FriPT", 0, maxPT); 
Var satFT = p.variable("SatFT", 0, maxFT); 
Var satPT = p.variable("SatPT", 0, maxPT); 
Var sunFT = p.variable("SunFT", 0, maxFT); 
Var sunPT = p.variable("SunPT", 0, maxPT);
Solution using Java API (2) 
14 
// Define costs int[] costs = {100,150,100,150,100,150,100,150,100,150,100,150,100,150}; Var[] vars = {monFT,monPT,tueFT,tuePT,wedFT,wedPT,thuFT,thuPT,friFT,friPT,satFT,satPT,sunFT,sunPT}; Var totalCost = p.scalProd(costs, vars); p.add("TotalCost",totalCost); 
// Post daily constraints 
p.post(monFT.plus(monPT),"=",5); // monFT + monPT = 5 
p.post(tueFT.plus(tuePT),"=",8); 
p.post(wedFT.plus(wedPT),"=",9); 
p.post(thuFT.plus(thuPT),"=",10); 
p.post(friFT.plus(friPT),"=",16); 
p.post(satFT.plus(satPT),"=",18); 
p.post(sunFT.plus(sunPT),"=",12);
Solution using Decision Model (1) 
15 
Problem p = ProblemFactory.newProblem("EmployeeRostering1"); // Define FT and PT variables int maxFT = 14; int maxPT = 4; Var monFT = p.variable("MonFT", 0, maxFT); Var monPT = p.variable("MonPT", 0, maxPT); Var tueFT = p.variable("TueFT", 0, maxFT); Var tuePT = p.variable("TuePT", 0,maxPT); Var wedFT = p.variable("WedFT", 0, maxFT); Var wedPT = p.variable("WedPT", 0, maxPT); Var thuFT = p.variable("ThuFT", 0, maxFT); Var thuPT = p.variable("ThuPT", 0, maxPT); Var friFT = p.variable("FriFT", 0, maxFT); Var friPT = p.variable("FriPT", 0, maxPT); Var satFT = p.variable("SatFT", 0, maxFT); Var satPT = p.variable("SatPT", 0, maxPT); Var sunFT = p.variable("SunFT", 0, maxFT); Var sunPT = p.variable("SunPT", 0, maxPT);
Solution using Decision Model (2) 
16 
// Post daily constraints p.post(monFT.plus(monPT),"=",5); // monFT + monPT = 5 p.post(tueFT.plus(tuePT),"=",8); p.post(wedFT.plus(wedPT),"=",9); p.post(thuFT.plus(thuPT),"=",10); p.post(friFT.plus(friPT),"=",16); p.post(satFT.plus(satPT),"=",18); p.post(sunFT.plus(sunPT),"=",12); 
Mon 
Tue 
Wed 
Thu 
Fri 
Sat 
Sun 
5 
8 
9 
10 
16 
18 
12
Solution using Decision Model (3) 
17 
// Define costs int[] costs = {100,150,100,150,100,150,100,150,100,150,100,150,100,150}; Var[] vars = {monFT,monPT,tueFT,tuePT,wedFT,wedPT,thuFT,thuPT,friFT,friPT,satFT,satPT,sunFT,sunPT}; Var totalCost = p.scalProd(costs, vars); p.add("TotalCost",totalCost); 
Employee Type 
Total 
Cost per Day 
F/T 
14 
$100 
P/T 
4 
$150
How did we moved from Java to Decision Tables? 
•Providing business-oriented decision modeling facilities on top of the JSR-331 
•We utilized the OpenRules Decision Table Templatization Mechanism 
18 
© OpenRules, Inc. 2014
Above Example 
19 
•Templates are created by programmers 
•End users (decision table designers) never look at the code
How to create a Domain-Specific Decision Modeling Framework? 
1.Start with a domain-specific language (Java API) 
2.Design Decision Tables oriented to a subject matter expert in this particular domain 
3.Implement new decision templates with conditions and actions that support such domain-specific decision tables 
•Usually it requires a creation of another layer of Java that hides the complexity of the original API 
•For example, OpenRules developed a special component (Rule Solver) built on the top of the JSR-331 standard 
20 
© OpenRules, Inc. 2014
DSL Examples 
•Decision Modeling in Constraint Programming 
•Decision Modeling in Geospatial Domain 
•Decision Modeling for Dynamic Web Interaction 
21 
© OpenRules, Inc. 2014
Decision Modeling Framework for Geospatial Applications 
•Domain: Geospatial Applications 
–Deals with objects and algorithms for processing linear geometries (points, lines, areas, etc.) on the 2-dimensional Cartesian plane 
–A real-world application will be described by Alex Karman (Revolutionary Machines) 
22
JTS (Java Topology Suite) 
•JTS is a de-facto standard open source Java library with a complete, consistent, and robust Java API 
•It covers various spatial predicates and operators (see on the right): 
•But JTS is too complex for business users 
23
Domain-Specific Business Expressions 
•Typical business conditions expressed by end users as: 
HRR – Hospital Referral Region 
HSA – Hospital Service Area 
•How to present such rules in a “human” way that still can be executed by a computer? 
24
Decision Modeling Example 
25 
New Custom Type of Decision Tables 
New Custom Condition 
JTS Operators 
New Custom Expression (mini DSL)
Implementation Template 
26
DSL Examples 
•Decision Modeling in Constraint Programming 
•Decision Modeling in Geospatial Domain 
•Decision Modeling for Dynamic Web Interaction 
27 
© OpenRules, Inc. 2014
Decision Modeling Framework for Web Questionnaires 
•Domain: Dynamic Web Applications with complex interaction logic 
•Allows non-technical people to develop and maintain web-based questionnaires (dialogs) using only Excel and without a need to learn complex web programming techniques 
•A real-world web application for a large US bank will be described tomorrow by Erik Marutian 
28
OpenRules Dialog™ 
•A questionnaire is described by a subject matter expert in terms of Pages, Sections, and different types of Questions and Answers 
•Layouts of pages, sections, questions, and complex relationships between them can be expressed in a very natural way using simple and intuitive Excel tables. 
29
Example: Credit Card Application 
30
Pages 
31
Sections 
32
Questions 
33
Navigation Rules 
34
Page Update Rules 
35
Answers 
36
Auto-Responses 
37
Many More Domain-Specific Features 
•Custom Layouts for Pages, Sections, Questions 
•Problem-specific question properties 
•Support for child-parent relationships 
•E.g. Hide all children of the question 
•Saving/Loading dialog to/from external sources 
•Embedded Support for HTML, Style Sheets, and Java Scripts 
38
Conclusion 
39 
Programmers 
Business Analysts 
GPL (such as Java) 
BRDMS (DMN) 
JSR-331 
Rule Solver 
JTS (Java Topology Suite) 
Spatial Decision Templates 
Web App Development Techniques 
Rule Dialog 
DSL 
(Domain-specific APIs) 
Domain-specific Decision Models
Q&A 
Web: www.OpenRules.com 
Email: 
support@openrules.com 
jacobfeldman@openrules.com 
40

More Related Content

Viewers also liked

Canonical data model - Ashutosh
Canonical data model - AshutoshCanonical data model - Ashutosh
Canonical data model - Ashutosh
StrawhatLuffy11
 
Data Modeling in the API Economy
Data Modeling in the API EconomyData Modeling in the API Economy
Data Modeling in the API Economy
Ted Epstein
 
Adopting a Canonical Data Model - how to apply to an existing environment wit...
Adopting a Canonical Data Model - how to apply to an existing environment wit...Adopting a Canonical Data Model - how to apply to an existing environment wit...
Adopting a Canonical Data Model - how to apply to an existing environment wit...
Phil Wilkins
 
Cannonical correlation
Cannonical correlationCannonical correlation
Cannonical correlation
domsr
 
RESTFul Tools For Lazy Experts - CFSummit 2016
RESTFul Tools For Lazy Experts - CFSummit 2016RESTFul Tools For Lazy Experts - CFSummit 2016
RESTFul Tools For Lazy Experts - CFSummit 2016
Ortus Solutions, Corp
 
Reactive programming - Observable
Reactive programming - ObservableReactive programming - Observable
Reactive programming - Observable
Dragos Ionita
 

Viewers also liked (6)

Canonical data model - Ashutosh
Canonical data model - AshutoshCanonical data model - Ashutosh
Canonical data model - Ashutosh
 
Data Modeling in the API Economy
Data Modeling in the API EconomyData Modeling in the API Economy
Data Modeling in the API Economy
 
Adopting a Canonical Data Model - how to apply to an existing environment wit...
Adopting a Canonical Data Model - how to apply to an existing environment wit...Adopting a Canonical Data Model - how to apply to an existing environment wit...
Adopting a Canonical Data Model - how to apply to an existing environment wit...
 
Cannonical correlation
Cannonical correlationCannonical correlation
Cannonical correlation
 
RESTFul Tools For Lazy Experts - CFSummit 2016
RESTFul Tools For Lazy Experts - CFSummit 2016RESTFul Tools For Lazy Experts - CFSummit 2016
RESTFul Tools For Lazy Experts - CFSummit 2016
 
Reactive programming - Observable
Reactive programming - ObservableReactive programming - Observable
Reactive programming - Observable
 

Similar to Decision CAMP 2014 - Jacob Feldman - Building Domain-Specific Decision Models

Efficient and Advanced Omniscient Debugging for xDSMLs (SLE 2015)
Efficient and Advanced Omniscient Debugging for xDSMLs (SLE 2015)Efficient and Advanced Omniscient Debugging for xDSMLs (SLE 2015)
Efficient and Advanced Omniscient Debugging for xDSMLs (SLE 2015)
Benoit Combemale
 
Prince_Kumar_JAVA_Developer
Prince_Kumar_JAVA_DeveloperPrince_Kumar_JAVA_Developer
Prince_Kumar_JAVA_Developer
Prince nagsen
 
Real World Java Compatibility
Real World Java CompatibilityReal World Java Compatibility
Real World Java Compatibility
Tim Ellison
 
UmaPhani_Resume
UmaPhani_ResumeUmaPhani_Resume
UmaPhani_Resume
Phani Sekhar Peri
 
Type-safe DSLs
Type-safe DSLsType-safe DSLs
Type-safe DSLs
Werner Keil
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
Tharindu Weerasinghe
 
Harish Srivastava -Resume
Harish Srivastava -ResumeHarish Srivastava -Resume
Harish Srivastava -Resume
Harish Srivastava
 
Naman_Abinitio_7757021406
Naman_Abinitio_7757021406Naman_Abinitio_7757021406
Naman_Abinitio_7757021406
Naman Gupta
 
MERN PPT
MERN PPTMERN PPT
smrutikanta jena
smrutikanta jenasmrutikanta jena
smrutikanta jena
Smrutikanta Jena
 
Arnab Chakraborty CV
Arnab Chakraborty CVArnab Chakraborty CV
Arnab Chakraborty CV
Arnab chakraborty
 
john-rowan-resume2
john-rowan-resume2john-rowan-resume2
john-rowan-resume2
J.C. Rowan
 
Resume quaish abuzer
Resume quaish abuzerResume quaish abuzer
Resume quaish abuzer
quaish abuzer
 
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and Spark
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and SparkVital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and Spark
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and Spark
Vital.AI
 
DSL (Domain Specific Language) for Maps Mashups
DSL (Domain Specific Language) for Maps MashupsDSL (Domain Specific Language) for Maps Mashups
DSL (Domain Specific Language) for Maps Mashups
aliraza786
 
Leveraging Open Standards to Build Highly Extensible Autonomous Systems
Leveraging Open Standards to Build Highly Extensible Autonomous SystemsLeveraging Open Standards to Build Highly Extensible Autonomous Systems
Leveraging Open Standards to Build Highly Extensible Autonomous Systems
ICS
 
Ashutosh_Resume
Ashutosh_Resume Ashutosh_Resume
Ashutosh_Resume
ashutosh pandey
 
Guia de Estudo OCA Java SE 5 - SE6
Guia de Estudo OCA Java SE 5 - SE6Guia de Estudo OCA Java SE 5 - SE6
Guia de Estudo OCA Java SE 5 - SE6
Daniel Takabayashi, MSc
 
Resume
ResumeResume
Resume
kemysr sr
 
What’s expected in Spring 5
What’s expected in Spring 5What’s expected in Spring 5
What’s expected in Spring 5
Gal Marder
 

Similar to Decision CAMP 2014 - Jacob Feldman - Building Domain-Specific Decision Models (20)

Efficient and Advanced Omniscient Debugging for xDSMLs (SLE 2015)
Efficient and Advanced Omniscient Debugging for xDSMLs (SLE 2015)Efficient and Advanced Omniscient Debugging for xDSMLs (SLE 2015)
Efficient and Advanced Omniscient Debugging for xDSMLs (SLE 2015)
 
Prince_Kumar_JAVA_Developer
Prince_Kumar_JAVA_DeveloperPrince_Kumar_JAVA_Developer
Prince_Kumar_JAVA_Developer
 
Real World Java Compatibility
Real World Java CompatibilityReal World Java Compatibility
Real World Java Compatibility
 
UmaPhani_Resume
UmaPhani_ResumeUmaPhani_Resume
UmaPhani_Resume
 
Type-safe DSLs
Type-safe DSLsType-safe DSLs
Type-safe DSLs
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Harish Srivastava -Resume
Harish Srivastava -ResumeHarish Srivastava -Resume
Harish Srivastava -Resume
 
Naman_Abinitio_7757021406
Naman_Abinitio_7757021406Naman_Abinitio_7757021406
Naman_Abinitio_7757021406
 
MERN PPT
MERN PPTMERN PPT
MERN PPT
 
smrutikanta jena
smrutikanta jenasmrutikanta jena
smrutikanta jena
 
Arnab Chakraborty CV
Arnab Chakraborty CVArnab Chakraborty CV
Arnab Chakraborty CV
 
john-rowan-resume2
john-rowan-resume2john-rowan-resume2
john-rowan-resume2
 
Resume quaish abuzer
Resume quaish abuzerResume quaish abuzer
Resume quaish abuzer
 
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and Spark
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and SparkVital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and Spark
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and Spark
 
DSL (Domain Specific Language) for Maps Mashups
DSL (Domain Specific Language) for Maps MashupsDSL (Domain Specific Language) for Maps Mashups
DSL (Domain Specific Language) for Maps Mashups
 
Leveraging Open Standards to Build Highly Extensible Autonomous Systems
Leveraging Open Standards to Build Highly Extensible Autonomous SystemsLeveraging Open Standards to Build Highly Extensible Autonomous Systems
Leveraging Open Standards to Build Highly Extensible Autonomous Systems
 
Ashutosh_Resume
Ashutosh_Resume Ashutosh_Resume
Ashutosh_Resume
 
Guia de Estudo OCA Java SE 5 - SE6
Guia de Estudo OCA Java SE 5 - SE6Guia de Estudo OCA Java SE 5 - SE6
Guia de Estudo OCA Java SE 5 - SE6
 
Resume
ResumeResume
Resume
 
What’s expected in Spring 5
What’s expected in Spring 5What’s expected in Spring 5
What’s expected in Spring 5
 

More from Decision CAMP

Decision CAMP 2014 - Charles Forgy - Affecting rules performance
Decision CAMP 2014 - Charles Forgy - Affecting rules performanceDecision CAMP 2014 - Charles Forgy - Affecting rules performance
Decision CAMP 2014 - Charles Forgy - Affecting rules performance
Decision CAMP
 
Decision CAMP 2014 - Erik Marutian - Using rules-based gui framework to power...
Decision CAMP 2014 - Erik Marutian - Using rules-based gui framework to power...Decision CAMP 2014 - Erik Marutian - Using rules-based gui framework to power...
Decision CAMP 2014 - Erik Marutian - Using rules-based gui framework to power...
Decision CAMP
 
Decision CAMP 2014 - Howard Rogers - Programming with decision tables v01
Decision CAMP 2014 - Howard Rogers - Programming with decision tables v01Decision CAMP 2014 - Howard Rogers - Programming with decision tables v01
Decision CAMP 2014 - Howard Rogers - Programming with decision tables v01
Decision CAMP
 
Decision CAMP 2014 - James Taylor - Decision Management 101
Decision CAMP 2014 - James Taylor - Decision Management 101Decision CAMP 2014 - James Taylor - Decision Management 101
Decision CAMP 2014 - James Taylor - Decision Management 101
Decision CAMP
 
Decision CAMP 2014 - Benjamin Grosof Janine Bloomfield - Explanation-based E-...
Decision CAMP 2014 - Benjamin Grosof Janine Bloomfield - Explanation-based E-...Decision CAMP 2014 - Benjamin Grosof Janine Bloomfield - Explanation-based E-...
Decision CAMP 2014 - Benjamin Grosof Janine Bloomfield - Explanation-based E-...
Decision CAMP
 
Decision CAMP 2014 - Mariano de Maio
Decision CAMP 2014 - Mariano de MaioDecision CAMP 2014 - Mariano de Maio
Decision CAMP 2014 - Mariano de Maio
Decision CAMP
 
Decision CAMP 2014 - Carole-Ann Berlioz-Matignon - Preparing for exceptional ...
Decision CAMP 2014 - Carole-Ann Berlioz-Matignon - Preparing for exceptional ...Decision CAMP 2014 - Carole-Ann Berlioz-Matignon - Preparing for exceptional ...
Decision CAMP 2014 - Carole-Ann Berlioz-Matignon - Preparing for exceptional ...
Decision CAMP
 
Decision CAMP 2014 - Tobias Vigmostad - Digitalizing Business and Legislative...
Decision CAMP 2014 - Tobias Vigmostad - Digitalizing Business and Legislative...Decision CAMP 2014 - Tobias Vigmostad - Digitalizing Business and Legislative...
Decision CAMP 2014 - Tobias Vigmostad - Digitalizing Business and Legislative...
Decision CAMP
 
Decision CAMP 2014 - Decision Management Challenge - Sparkling Logic
Decision CAMP 2014 - Decision Management Challenge - Sparkling LogicDecision CAMP 2014 - Decision Management Challenge - Sparkling Logic
Decision CAMP 2014 - Decision Management Challenge - Sparkling Logic
Decision CAMP
 
Decision Camp 2013 - Ouyang Ming - PayPal - stopping fraud early
Decision Camp 2013 - Ouyang Ming - PayPal - stopping fraud earlyDecision Camp 2013 - Ouyang Ming - PayPal - stopping fraud early
Decision Camp 2013 - Ouyang Ming - PayPal - stopping fraud early
Decision CAMP
 
Decision CAMP 2013 - sako hidetoshi - blaze consulting japan - Using Business...
Decision CAMP 2013 - sako hidetoshi - blaze consulting japan - Using Business...Decision CAMP 2013 - sako hidetoshi - blaze consulting japan - Using Business...
Decision CAMP 2013 - sako hidetoshi - blaze consulting japan - Using Business...
Decision CAMP
 
Decision CAMP 2013 - shash hegde - mariner - Is this Skynet? Giving machines ...
Decision CAMP 2013 - shash hegde - mariner - Is this Skynet? Giving machines ...Decision CAMP 2013 - shash hegde - mariner - Is this Skynet? Giving machines ...
Decision CAMP 2013 - shash hegde - mariner - Is this Skynet? Giving machines ...
Decision CAMP
 
Decision CAMP 2013 - christian middleton - jawbone - Facts, Rules, and Constr...
Decision CAMP 2013 - christian middleton - jawbone - Facts, Rules, and Constr...Decision CAMP 2013 - christian middleton - jawbone - Facts, Rules, and Constr...
Decision CAMP 2013 - christian middleton - jawbone - Facts, Rules, and Constr...
Decision CAMP
 

More from Decision CAMP (13)

Decision CAMP 2014 - Charles Forgy - Affecting rules performance
Decision CAMP 2014 - Charles Forgy - Affecting rules performanceDecision CAMP 2014 - Charles Forgy - Affecting rules performance
Decision CAMP 2014 - Charles Forgy - Affecting rules performance
 
Decision CAMP 2014 - Erik Marutian - Using rules-based gui framework to power...
Decision CAMP 2014 - Erik Marutian - Using rules-based gui framework to power...Decision CAMP 2014 - Erik Marutian - Using rules-based gui framework to power...
Decision CAMP 2014 - Erik Marutian - Using rules-based gui framework to power...
 
Decision CAMP 2014 - Howard Rogers - Programming with decision tables v01
Decision CAMP 2014 - Howard Rogers - Programming with decision tables v01Decision CAMP 2014 - Howard Rogers - Programming with decision tables v01
Decision CAMP 2014 - Howard Rogers - Programming with decision tables v01
 
Decision CAMP 2014 - James Taylor - Decision Management 101
Decision CAMP 2014 - James Taylor - Decision Management 101Decision CAMP 2014 - James Taylor - Decision Management 101
Decision CAMP 2014 - James Taylor - Decision Management 101
 
Decision CAMP 2014 - Benjamin Grosof Janine Bloomfield - Explanation-based E-...
Decision CAMP 2014 - Benjamin Grosof Janine Bloomfield - Explanation-based E-...Decision CAMP 2014 - Benjamin Grosof Janine Bloomfield - Explanation-based E-...
Decision CAMP 2014 - Benjamin Grosof Janine Bloomfield - Explanation-based E-...
 
Decision CAMP 2014 - Mariano de Maio
Decision CAMP 2014 - Mariano de MaioDecision CAMP 2014 - Mariano de Maio
Decision CAMP 2014 - Mariano de Maio
 
Decision CAMP 2014 - Carole-Ann Berlioz-Matignon - Preparing for exceptional ...
Decision CAMP 2014 - Carole-Ann Berlioz-Matignon - Preparing for exceptional ...Decision CAMP 2014 - Carole-Ann Berlioz-Matignon - Preparing for exceptional ...
Decision CAMP 2014 - Carole-Ann Berlioz-Matignon - Preparing for exceptional ...
 
Decision CAMP 2014 - Tobias Vigmostad - Digitalizing Business and Legislative...
Decision CAMP 2014 - Tobias Vigmostad - Digitalizing Business and Legislative...Decision CAMP 2014 - Tobias Vigmostad - Digitalizing Business and Legislative...
Decision CAMP 2014 - Tobias Vigmostad - Digitalizing Business and Legislative...
 
Decision CAMP 2014 - Decision Management Challenge - Sparkling Logic
Decision CAMP 2014 - Decision Management Challenge - Sparkling LogicDecision CAMP 2014 - Decision Management Challenge - Sparkling Logic
Decision CAMP 2014 - Decision Management Challenge - Sparkling Logic
 
Decision Camp 2013 - Ouyang Ming - PayPal - stopping fraud early
Decision Camp 2013 - Ouyang Ming - PayPal - stopping fraud earlyDecision Camp 2013 - Ouyang Ming - PayPal - stopping fraud early
Decision Camp 2013 - Ouyang Ming - PayPal - stopping fraud early
 
Decision CAMP 2013 - sako hidetoshi - blaze consulting japan - Using Business...
Decision CAMP 2013 - sako hidetoshi - blaze consulting japan - Using Business...Decision CAMP 2013 - sako hidetoshi - blaze consulting japan - Using Business...
Decision CAMP 2013 - sako hidetoshi - blaze consulting japan - Using Business...
 
Decision CAMP 2013 - shash hegde - mariner - Is this Skynet? Giving machines ...
Decision CAMP 2013 - shash hegde - mariner - Is this Skynet? Giving machines ...Decision CAMP 2013 - shash hegde - mariner - Is this Skynet? Giving machines ...
Decision CAMP 2013 - shash hegde - mariner - Is this Skynet? Giving machines ...
 
Decision CAMP 2013 - christian middleton - jawbone - Facts, Rules, and Constr...
Decision CAMP 2013 - christian middleton - jawbone - Facts, Rules, and Constr...Decision CAMP 2013 - christian middleton - jawbone - Facts, Rules, and Constr...
Decision CAMP 2013 - christian middleton - jawbone - Facts, Rules, and Constr...
 

Recently uploaded

Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 

Recently uploaded (20)

Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 

Decision CAMP 2014 - Jacob Feldman - Building Domain-Specific Decision Models

  • 1. San Jose, Oct 13-15, 2014 Building Domain-Specific Decision Models Jacob Feldman, PhD OpenRules, Inc., CTO www.openrules.com 1
  • 2. Outline •Transformation from Domain-specific programming languages (DSL) to business- oriented Domain-Specific Decision Models –Motivation –General Approach •Real-world examples of domain-specific models –Decision Modeling in Constraint Programming –Decision Modeling in Geospatial Domain –Decision Modeling for Dynamic Web Interaction 2 © OpenRules, Inc. 2014
  • 3. Domain-Specific Decision Models •Motivation –There are many solid Java (C++,…) libraries that support a Domain-Specific Languages (DSL) with their own Java API, e.g. 350+ JSRs –DSLs provide specialized concepts and methods for a particular problem domain –DSLs are oriented to software developers •However, we cannot offer such APIs to business users: they need some kind of a “Business DSL”! 3 © OpenRules, Inc. 2014
  • 4. General Purpose vs Domain-Specific •General Purpose BRMS is similar to General Purpose Language (e.g. Java, C++): –Forces its users to define all concepts, relationships, and methods from scratch –Real Value of Java is in surrounding libraries not in language; –What is an analogy for BRMS? •Domain-Specific Decision Model is similar to DSL: –Provide specialized concepts, relationships, and methods for a particular problem domain –A subject matter expert feels “at home” –Real Value in modeling facilities not in an engine 4 © OpenRules, Inc. 2014
  • 5. Domain-Specific Decision Models • Objective – Given: a domain-specific language with an API – Goal: create a domain-specific decision modeling “language“ oriented to business users © OpenRules, Inc. 2014 5 Decision Modeling Constructs (Diagrams & Decision Table) Software Developers Business Analysts DSL (API)
  • 6. Moving From Java to Business Decision Modeling •Building business-oriented decision modeling facilities on top of domain-specific Java APIs •Hiding object-orientation, complex embedding, and pure programming constructs •No new classes but rather a business glossary connected to existing object •Transforming long chains of if-then-else or switch- statements to easy understood and maintained decision tables 6 © OpenRules, Inc. 2014
  • 7. General Purpose Decision Modeling •OpenRules provides a powerful templatization mechanism that allowed us to implement generic decision modeling approaches such as DMN and TDM •The standard templates are provided in Excel and allow a business user to create concrete Excel tables of the type Decision, DecisionTable, DecisionTableMultiHit, Glossary, and more •No coding is required – users just construct tables using predefined column types 7
  • 8. Business-oriented Decision Table and its Technical Template 8
  • 9. From DSL to Decision Models 9 © OpenRules, Inc. 2014 Decision Modeling Constructs (Diagrams & Decision Table) 1.Domain-Specific Glossary •Business Concepts •Decision Variables 2.Domain-Specific Decision Tables •Conditions •Actions •Hit Policies •Aggregation •… 3.Process Diagrams DSL (API) 1.Domain-Specific Classes •Classes/Sub-classes •Attributes 2.Domain-Specific Classes •Methods •If/Then/Else •Loops •… 3.Navigating through graphs and collections
  • 10. DSL Examples •Decision Modeling in Constraint Programming •Decision Modeling in Geospatial Domain •Decision Modeling for Dynamic Web Interaction 10 © OpenRules, Inc. 2014
  • 11. DSL Example “Constraint Programming API” •JSR-331 “Java Constraint Programming API” – an official Java Community Process (JCP) standard www.jcp.org •JSR-331 covers key concepts for representation and resolution of constraint satisfaction and optimization problems: –Class Var for constraint variables and all operators on them –Class Constraint for different constraints such as “var1 I greater than var2” or “all variables in the array are different” 11 © OpenRules, Inc., 2012
  • 12. Use Case “Staff Rostering” •As the manager, you are required to hire and set the weekly schedule for your employees as follows: –Total employees required Mon Tue Wed Thu Fri Sat Sun 5 8 9 10 16 18 12 –Available employees: Employee Type Total Cost per Day F/T 14 $100 P/T 4 $150 •What is the minimal staffing cost? 12 © OpenRules, Inc., 2012
  • 13. Solution using Java API (1) 13 Problem p = ProblemFactory.newProblem("EmployeeRostering1"); // Define FT and PT variables int maxFT = 14; int maxPT = 4; Var monFT = p.variable("MonFT", 0, maxFT); Var monPT = p.variable("MonPT", 0, maxPT); Var tueFT = p.variable("TueFT", 0, maxFT); Var tuePT = p.variable("TuePT", 0,maxPT); Var wedFT = p.variable("WedFT", 0, maxFT); Var wedPT = p.variable("WedPT", 0, maxPT); Var thuFT = p.variable("ThuFT", 0, maxFT); Var thuPT = p.variable("ThuPT", 0, maxPT); Var friFT = p.variable("FriFT", 0, maxFT); Var friPT = p.variable("FriPT", 0, maxPT); Var satFT = p.variable("SatFT", 0, maxFT); Var satPT = p.variable("SatPT", 0, maxPT); Var sunFT = p.variable("SunFT", 0, maxFT); Var sunPT = p.variable("SunPT", 0, maxPT);
  • 14. Solution using Java API (2) 14 // Define costs int[] costs = {100,150,100,150,100,150,100,150,100,150,100,150,100,150}; Var[] vars = {monFT,monPT,tueFT,tuePT,wedFT,wedPT,thuFT,thuPT,friFT,friPT,satFT,satPT,sunFT,sunPT}; Var totalCost = p.scalProd(costs, vars); p.add("TotalCost",totalCost); // Post daily constraints p.post(monFT.plus(monPT),"=",5); // monFT + monPT = 5 p.post(tueFT.plus(tuePT),"=",8); p.post(wedFT.plus(wedPT),"=",9); p.post(thuFT.plus(thuPT),"=",10); p.post(friFT.plus(friPT),"=",16); p.post(satFT.plus(satPT),"=",18); p.post(sunFT.plus(sunPT),"=",12);
  • 15. Solution using Decision Model (1) 15 Problem p = ProblemFactory.newProblem("EmployeeRostering1"); // Define FT and PT variables int maxFT = 14; int maxPT = 4; Var monFT = p.variable("MonFT", 0, maxFT); Var monPT = p.variable("MonPT", 0, maxPT); Var tueFT = p.variable("TueFT", 0, maxFT); Var tuePT = p.variable("TuePT", 0,maxPT); Var wedFT = p.variable("WedFT", 0, maxFT); Var wedPT = p.variable("WedPT", 0, maxPT); Var thuFT = p.variable("ThuFT", 0, maxFT); Var thuPT = p.variable("ThuPT", 0, maxPT); Var friFT = p.variable("FriFT", 0, maxFT); Var friPT = p.variable("FriPT", 0, maxPT); Var satFT = p.variable("SatFT", 0, maxFT); Var satPT = p.variable("SatPT", 0, maxPT); Var sunFT = p.variable("SunFT", 0, maxFT); Var sunPT = p.variable("SunPT", 0, maxPT);
  • 16. Solution using Decision Model (2) 16 // Post daily constraints p.post(monFT.plus(monPT),"=",5); // monFT + monPT = 5 p.post(tueFT.plus(tuePT),"=",8); p.post(wedFT.plus(wedPT),"=",9); p.post(thuFT.plus(thuPT),"=",10); p.post(friFT.plus(friPT),"=",16); p.post(satFT.plus(satPT),"=",18); p.post(sunFT.plus(sunPT),"=",12); Mon Tue Wed Thu Fri Sat Sun 5 8 9 10 16 18 12
  • 17. Solution using Decision Model (3) 17 // Define costs int[] costs = {100,150,100,150,100,150,100,150,100,150,100,150,100,150}; Var[] vars = {monFT,monPT,tueFT,tuePT,wedFT,wedPT,thuFT,thuPT,friFT,friPT,satFT,satPT,sunFT,sunPT}; Var totalCost = p.scalProd(costs, vars); p.add("TotalCost",totalCost); Employee Type Total Cost per Day F/T 14 $100 P/T 4 $150
  • 18. How did we moved from Java to Decision Tables? •Providing business-oriented decision modeling facilities on top of the JSR-331 •We utilized the OpenRules Decision Table Templatization Mechanism 18 © OpenRules, Inc. 2014
  • 19. Above Example 19 •Templates are created by programmers •End users (decision table designers) never look at the code
  • 20. How to create a Domain-Specific Decision Modeling Framework? 1.Start with a domain-specific language (Java API) 2.Design Decision Tables oriented to a subject matter expert in this particular domain 3.Implement new decision templates with conditions and actions that support such domain-specific decision tables •Usually it requires a creation of another layer of Java that hides the complexity of the original API •For example, OpenRules developed a special component (Rule Solver) built on the top of the JSR-331 standard 20 © OpenRules, Inc. 2014
  • 21. DSL Examples •Decision Modeling in Constraint Programming •Decision Modeling in Geospatial Domain •Decision Modeling for Dynamic Web Interaction 21 © OpenRules, Inc. 2014
  • 22. Decision Modeling Framework for Geospatial Applications •Domain: Geospatial Applications –Deals with objects and algorithms for processing linear geometries (points, lines, areas, etc.) on the 2-dimensional Cartesian plane –A real-world application will be described by Alex Karman (Revolutionary Machines) 22
  • 23. JTS (Java Topology Suite) •JTS is a de-facto standard open source Java library with a complete, consistent, and robust Java API •It covers various spatial predicates and operators (see on the right): •But JTS is too complex for business users 23
  • 24. Domain-Specific Business Expressions •Typical business conditions expressed by end users as: HRR – Hospital Referral Region HSA – Hospital Service Area •How to present such rules in a “human” way that still can be executed by a computer? 24
  • 25. Decision Modeling Example 25 New Custom Type of Decision Tables New Custom Condition JTS Operators New Custom Expression (mini DSL)
  • 27. DSL Examples •Decision Modeling in Constraint Programming •Decision Modeling in Geospatial Domain •Decision Modeling for Dynamic Web Interaction 27 © OpenRules, Inc. 2014
  • 28. Decision Modeling Framework for Web Questionnaires •Domain: Dynamic Web Applications with complex interaction logic •Allows non-technical people to develop and maintain web-based questionnaires (dialogs) using only Excel and without a need to learn complex web programming techniques •A real-world web application for a large US bank will be described tomorrow by Erik Marutian 28
  • 29. OpenRules Dialog™ •A questionnaire is described by a subject matter expert in terms of Pages, Sections, and different types of Questions and Answers •Layouts of pages, sections, questions, and complex relationships between them can be expressed in a very natural way using simple and intuitive Excel tables. 29
  • 30. Example: Credit Card Application 30
  • 38. Many More Domain-Specific Features •Custom Layouts for Pages, Sections, Questions •Problem-specific question properties •Support for child-parent relationships •E.g. Hide all children of the question •Saving/Loading dialog to/from external sources •Embedded Support for HTML, Style Sheets, and Java Scripts 38
  • 39. Conclusion 39 Programmers Business Analysts GPL (such as Java) BRDMS (DMN) JSR-331 Rule Solver JTS (Java Topology Suite) Spatial Decision Templates Web App Development Techniques Rule Dialog DSL (Domain-specific APIs) Domain-specific Decision Models
  • 40. Q&A Web: www.OpenRules.com Email: support@openrules.com jacobfeldman@openrules.com 40