SlideShare a Scribd company logo
1 of 66
Download to read offline
Master the RETE algorithm!!
– The Heart of Rule Engine -
Red Hat K.K.
Chief Technologist
Masahiko Umeno
Red Hat Forum Tokyo 2018
AP09
About Rule Engine
Copyright © 2018 Red Hat K.K. All Rights Reserved.2
A converter that triggers new actions due to the relevance of different
types of data
Example…
Preferred
Channel
For those who buy a lot of
strawberry flavor.
At the time you are browsing.
Send Ad with those preferred
channel.
purchase
history
12:13
Browsing
history
Agenda
Copyright © 2018 Red Hat K.K. All Rights Reserved.3
RETE
Algorithm
Basic
Behavior
Apply to
Machine
Learning
RETE Algorithm
Copyright © 2018 Red Hat K.K. All Rights Reserved.4
Thought to realize a production system,
Efficient Pattern Matching
Production System: Planning, Expert system, Action selection
KnowledgeData Action
History of RETE Algorithm
Copyright © 2018 Red Hat K.K. All Rights Reserved.5
Mycin
Dendral
1972
Started from the expert system
Prolog
RETE
1974
OPS5
CLIPS
Jess
DroolsSoar
ILOG
Rules
1984
1983
1995
2001
1987
JBoss Enterprise
BRMS 5
2009
Today
1996
Red Hat
JBoss
BRMS 6
Revelation
RETE
Structure
Copyright © 2018 Red Hat K.K. All Rights Reserved.6
Working Memory Production Memory
Agenda
Data (FACT)
The place of Action candidate which matched data and rule
Knowledge
BASIC BEHAVIOR
RETE Algorithm
Matching ofTruck and Driver
Copyright © 2017 Red Hat K.K. All Rights Reserved.8
Rule
• Fix a truck when broken truck and parts are existing
• Assign driver to truck when empty truck and available
driver are existing
Please consider what flow may require using Rule Engine.
If not use Rule Engine?
All pictures drawn by Nagisa.
Step 1/12
Copyright © 2017 Red Hat K.K. All Rights Reserved.9
Working Memory Production Memory
Agenda
Condition
Action
Condition
Action
Step 2/12
Copyright © 2017 Red Hat K.K. All Rights Reserved.10
Working Memory
Condition
Action
Condition
Action
Production Memory
Agenda Condition
Action
Step 3/12
Copyright © 2017 Red Hat K.K. All Rights Reserved.11
Working Memory
Agenda
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Production Memory
Step 4/12
Copyright © 2017 Red Hat K.K. All Rights Reserved.12
Working Memory
Agenda
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Production Memory
Step 5/12
Copyright © 2017 Red Hat K.K. All Rights Reserved.13
Working Memory
Agenda
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Production Memory
Step 6/12
Copyright © 2017 Red Hat K.K. All Rights Reserved.14
Working Memory
Agenda
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Production Memory
Step 7/12
Copyright © 2017 Red Hat K.K. All Rights Reserved.15
Working Memory
Agenda
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Production Memory
Step 8/12
Copyright © 2017 Red Hat K.K. All Rights Reserved.16
Working Memory
Agenda
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Production Memory
Step 9/12
Copyright © 2017 Red Hat K.K. All Rights Reserved.17
Working Memory
Agenda
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Production Memory
Step 10/12
Copyright © 2017 Red Hat K.K. All Rights Reserved.18
Working Memory
Agenda
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Production Memory
Step 11/12
Copyright © 2017 Red Hat K.K. All Rights Reserved.19
Working Memory
Agenda
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Production Memory
Step 12/12
Copyright © 2017 Red Hat K.K. All Rights Reserved.20
Working Memory
Agenda
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Condition
Action
Production Memory
Data Mode (Fact)
Copyright © 2012 Red Hat, Inc.
public class Truck {
private String Color;
private String Parts;
private String Driver;
}
public class Parts {
private String Parts;
}
public class Driver {
private String Name;
}
21
Create class and members
taking into account what the
truck attribute values are.
Rule
Copyright © 2012 Red Hat, Inc.
rule "Repear"
salience 100
when
p : Parts ()
t : Truck (parts == p.parts )
then
t.setParts ("Complete");
retract (p);
update (t);
end
rule "Matching"
salience 10
when
t : Truck (parts == "Complete", driver == "")
d : Driver (n : name )
then
t.setDriver (n);
retract (d);
update (t);
end
22
Update (x);
Notice to Rule Engine when Fact(x)
changed. Rule Engine may reevaluate
using new status of Fact, create
Activation in Agenda when data matched
rule.
Retract (x);
Delete Fact(x) from Working Memory.
Cancel Activation from Agenda when
relevant activations are existing.
Audit Check the behavior when rule fired
Fact Update
Activation
Created Activation at
matched rule and Fact when
Fact inserted.
Canceled Activation at un-
matched rule when Fact had
remove.
Copyright © 2012 Red Hat, Inc.23
Characteristic of RETE Algorithm
Copyright © 2018 Red Hat K.K. All Rights Reserved.24
• Engine that causes Action based on the relevant
between objects (Fact and rule, Fact and Fact and
rule, etc.)
• When Fact is updated and notified to the rule
engine, it is re-evaluated and executed sequentially
with a combination of matching Facts and rules.
• Weak to combination explosion
• Can not detect infinity loop
– Enable to avoid with the number of fired rules.
PHREAK
Copyright © 2018 Red Hat K.K. All Rights Reserved.25
• (Marc) Proctor’s Hybrid Reasoning Engine for
Advanced Knowledge
– Improved RETEOO(RETE Object Oriented)
• Lazy evaluation
– Rather than evaluating at once, prevent
combination explosion in Agenda (when the
condition is multistage)
• Faster
– Multithreading for evaluation
Effective use of RETE Algorithm to Business
Copyright © 2018 Red Hat K.K. All Rights Reserved.26
Feature Notes
Correlation
Check
Business Screening, Assessment, Derivation, Quality check of Data in DB
System Hierarchy, Correlation check of distributed data
Aggregation Business Agency Incentive, Cost item, Simulation
System Hierarchy, Correlation check of distributed data
Reasoning Business Production Control, Production Planning, Routing, Assign
System Forward Chaining, Backward Chaining, Truth Maintenance System
Summary of Red Hat Decision Manager Rule Engine
Copyright © 2018 Red Hat K.K. All Rights Reserved.27
• Evaluate rule based on Data
• Fire continuously by the reasoning mechanism, and
re-evaluate. Simplify the logic for complex.
• Because of tracing of behavior can available, it
makes not be a black-box.
• PHREAK , it's an improved RETE algorithm is
included.
• Not a simple if-then logic engine!!
APPLY TO MACHINE LEARNING
Leaning
Copyright © 2018 Red Hat K.K. All Rights Reserved.29
Supervised
Learning
Unsupervised
Learning
Human wisdom
Business Rule
Supervised Learning
• Neural Network
• Regression
• Tree
• Bayesian inference
• Clustering k-nearest
neighbor
Unsupervised Learning
• Principal component
analysis
• Clustering k-means
• Vector Quantization
• Self Organizing map
Clustering
Copyright © 2018 Red Hat K.K. All Rights Reserved.30
• One of the machine learning
• Primitive, but important methodology
• Used to Data mining
• Outcome is “Case divider”
• Use the outcome to “supervised learning”/“Rule”
• Non-hierarchical: k means
• Hierarchical: Single Linkage Method, Furthest
neighbor method, Group average method…
Single Linkage Method
Copyright © 2018 Red Hat K.K. All Rights Reserved.31
1. Calc the distance between any two objects
2. Of the two arbitrary objects, the object between the
smallest distances is extracted, and the center of
gravity is newly created as an object. Record the
relationship between the new object and the two
objects.
3. An object cannot belong to more than one group, so if
it belongs to a different group, give up that it belongs
to one of the groups
4. Loop 1-4 until the number of parent objects is less
than the number what we want to.
1 DIMENSION
Let’s cluster with Single Linkage Method using Rule Engine !!
Data
Copyright © 2018 Red Hat K.K. All Rights Reserved.33
7 8 18 27 37.5 62 72 73 89 96
• Value 0 - 100
• Number of points is 10 (Duplicateable)
• Random plot
3 Clustering
Final Result
Copyright © 2018 Red Hat K.K. All Rights Reserved.34
7.5
92.526.25 67.25
15
37.5
22.5
62
72.5
18 27 89 967 8 72 73
Data Model (Fact)
Copyright © 2018 Red Hat K.K. All Rights Reserved.35
public class Distance {
private double distance;
private AnalysisData a1;
private AnalysisData a2; }
Distance between 2 points
public class AnalysisData {
private double x;
private double y;
private String Tag="";
private int Color=0;
private int level=0;
private ArrayList<AnalysisData> subsidiary;}
Data of clustering
Coordinate and flags,
The list of data included
Rules
Copyright © 2018 Red Hat K.K. All Rights Reserved.36
rule "Calc distance between 2 points"
rule “Get shortest distance and crate new center of gravity”
rule “Remove duplicated child from subsidiary”
rule “Calc the number of cluster, delete old distance”
rule “Color to the most upper layer”
rule “Colored to the other same as the most upper layer "
Clustering
Coloring
Copyright © 2018 Red Hat K.K. All Rights Reserved.37
rule "Calc distance between 2 points"
salience 100
when
ad1: AnalysisData(x1:x , y1:y, tag =="")
ad2: AnalysisData(x2:x >=x1 , y2:y, tag =="", this != ad1)
not Distance(a1==ad1, a2==ad2)
not Distance(a1==ad2, a2==ad1)
then
Distance d = new Distance();
d.setDistance(Math.sqrt(Math.pow((x1-x2),2)+Math.pow((y1-y2),2)));
d.setA1(ad1);
d.setA2(ad2);
insert (d);
end
tag: set child when became child of someone
Calculation as Euclidean distance
Copyright © 2018 Red Hat K.K. All Rights Reserved.38
rule “Get shortest distance and crate new center of gravity "
salience 100
when
d1 : Distance( minDist:distance )
not Distance( distance < minDist)
A1 : AnalysisData( tag =="") from d1.getA1
A2 : AnalysisData( tag =="") from d1.getA2
NumberOfCluster( number > CulsterNumber )
then
AnalysisData ad = new AnalysisData();
ad.setX((d1.getA1().getX()+d1.getA2().getX())/2);
ad.setY((d1.getA1().getY()+d1.getA2().getY())/2);
ad.setTag("");
ad.setLevel(1);
ad.addSubsidiary(d1.getA1());
ad.addSubsidiary(d1.getA2());
insert(ad);
A1.setTag(“Child”); update(A1);
A2.setTag(“Child”); update(A2);
retract(d1);
end
tag: Set Child when it become a child
There is nothing less than my distance
= Minimize myself
Level: Hierarchies (init 0)
Create new center
of gravity
(Use same class as data)
Notify new center of gravity created to Rule
Copyright © 2018 Red Hat K.K. All Rights Reserved.39
rule " Remove duplicated child from subsidiary "
salience 200
when
ad1: AnalysisData( )
ad2: AnalysisData( tag =="", subsidiary contains ad1)
ad3: AnalysisData( this != ad2, subsidiary contains ad1)
ad4: AnalysisData( this != ad1 ) from ad3.getSubsidiary()
ad5: AnalysisData( this != ad1, this != ad4) from
ad2.getSubsidiary()
then
ad4.setTag("");
retract (ad3);
update(ad4);
end
Copyright © 2018 Red Hat K.K. All Rights Reserved.40
rule “Calc the number of cluster, delete old distance "
salience -100
when
total: Number(intValue >= CulsterNumber.intValue())
from accumulate (AD: AnalysisData( tag != "Child"), count(AD))
noc: NumberOfCluster()
d: Distance()
then
noc.setNumber(total.intValue());
update (noc);
retract (d);
end
tag != "Child” stands for the parent node of a cluster
The number which want to divide
C
CC C
Step 1
Copyright © 2018 Red Hat K.K. All Rights Reserved.41
7 8 18 27 37.5 62 72 73 89 96
Step 1
Copyright © 2018 Red Hat K.K. All Rights Reserved.42
7 8 18 27 37.5 62 72 73 89 96
1 10 9 11 24 10 1 16 7
7.5 72.518 27 37.5 62 89 96
The # cluster : 8
Step 2
Copyright © 2018 Red Hat K.K. All Rights Reserved.43
18 27 37.5 62 89 967.5 72.5
11.5 24 10.5 16.5 79 11
92.518 27 37.5 62 72.57.5
The # cluster : 7
Step 3
Copyright © 2018 Red Hat K.K. All Rights Reserved.44
18 27 37.5 627.5 72.5 92.5
11.5 24 10.59 11 20
37.5 62 72.57.5 92.522.5
The # cluster : 6
Step 4
Copyright © 2018 Red Hat K.K. All Rights Reserved.45
37.5 627.5 72.5 92.5
15 24 10.515 20
22.5
37.57.5 92.522.5 67.25
The # cluster : 5
Step5
Copyright © 2018 Red Hat K.K. All Rights Reserved.46
37.57.5 92.5
15
15 29.7515 25.25
22.5
30
67.25
92.567.25
The # cluster : 4
Copyright © 2018 Red Hat K.K. All Rights Reserved.47
rule "Remove duplicated child from subsidiary"
salience 200
when
ad1: AnalysisData( )
ad2: AnalysisData( tag =="", subsidiary contains ad1)
ad3: AnalysisData( this != ad2, subsidiary contains ad1)
ad4: AnalysisData( this != ad1 ) from ad3.getSubsidiary()
ad5: AnalysisData( this != ad1, this != ad4) from ad2.getSubsidiary ()
then
ad4.setTag("");
retract (ad3);
update(ad4);
end
37.57.5
15 15
15
22.5
30
ad4
ad2
ad1
ad3
ad5
Copyright © 2018 Red Hat K.K. All Rights Reserved.48
rule "Remove duplicated child from subsidiary"
salience 200
when
ad1: AnalysisData( )
ad2: AnalysisData(this != ad1)
ad3: AnalysisData(this != ad1, this != ad2)
ad4: AnalysisData(tag =="", subsidiary contains ad1, subsidiary contains ad2)
ad5: AnalysisData(tag =="", this != ad4, subsidiary contains ad2, subsidiary
contains ad3)
then
ad3.setTag("");
update(ad3);
retract (ad5);
end
37.57.5
15 15
15
22.5
30
ad3
ad4
ad2
ad5
ad1
Bad Code!
500C3 = 20.70M
Can not reduce the number
of combinations
Combination Explosion occurred
Step5
Copyright © 2018 Red Hat K.K. All Rights Reserved.49
37.57.5 92.5
15 29.7515 25.25
22.5 67.25
92.567.2515 30
The # cluster : 4
307.5 22.5
Step6
Copyright © 2018 Red Hat K.K. All Rights Reserved.50
92.5
26.25
22.5 29.75 25.25
67.25
92.567.25
The # cluster : 3
15 37.5
Step7 Hierarchical display
Copyright © 2018 Red Hat K.K. All Rights Reserved.51
7.5
92.526.25 67.25
15
37.5
22.5
62
72.5
18 27 89 967 8 72 73
Step7 Hierarchical display
Copyright © 2018 Red Hat K.K. All Rights Reserved.52
7.5
92.526.25 67.25
15
37.5
22.5
62
72.5
18 27 89 967 8 72 73
k-means clustering
Copyright © 2018 Red Hat K.K. All Rights Reserved.53
1. Label data to clustering randomly
2. Calc each center of gravity
3. Calc distance between data and Center of gravity,
relabel same as neighborhood
4. Loop 2-3 until Center of Gravity does not move
k-means clustering
Copyright © 2018 Red Hat K.K. All Rights Reserved.54
7 8 18 27 37.5 62 72 73 89 96
50.5
39.5 56.3
7 8 18 27 37.5 62 72 73 89 96
19.5 50.5 78.4
7 8 18 27 37.5 62 72 73 89 96
15.0 49.75 82.5
7 8 18 27 37.5 62 72 73 89 96
Result
Copyright © 2018 Red Hat K.K. All Rights Reserved.55
7 8 18 27 37.5 62 72 73 89 96
k-means clustering
7 8 18 27 37.5 62 72 73 89 96
Single Linkage Method
Guess:
Which is the same as human sense?
2 DEMENSION CASE
Original
Copyright © 2018 Red Hat K.K. All Rights Reserved.57
• 0 - 10,000value for x/y
• The number of data is 500
• Random plot
Let’s cluster this with use same rule as aforementioned.
3 Clusters
Copyright © 2018 Red Hat K.K. All Rights Reserved.58
5 Clusters
Copyright © 2018 Red Hat K.K. All Rights Reserved.59
10 Clusters
Copyright © 2018 Red Hat K.K. All Rights Reserved.60
15 Clusters
Copyright © 2018 Red Hat K.K. All Rights Reserved.61
WRAP UP
Master the RETE algorithm!!
– The Heart of Rule Engine -
Conclusion
Copyright © 2018 Red Hat K.K. All Rights Reserved.63
• Not a simple if-then logic engine!!
• Fire continuously by the reasoning mechanism, and
re-evaluate. Simplify the logic for complex.
• Need to write rule with the object combination in
mind.
• Enable to use Machine Learning!!
Other Decision Manager Sessions
Copyright © 2018 Red Hat K.K. All Rights Reserved.64
Copyright © 2018 Red Hat K.K. All Rights Reserved.65
17:35 Ideathon Awards
https://jp-redhat.com/forum-ideathon/
Thank you
plus.google.com/+RedHat
linkedin.com/company/red-hat
youtube.com/user/RedHatVideos
facebook.com/redhatinc
twitter.com/RedHatNews
Masahiko Umeno: mumeno@redhat.com

More Related Content

What's hot

KNIME Data Science Learnathon: From Raw Data To Deployment
KNIME Data Science Learnathon: From Raw Data To DeploymentKNIME Data Science Learnathon: From Raw Data To Deployment
KNIME Data Science Learnathon: From Raw Data To DeploymentKNIMESlides
 
ELT vs. ETL - How they’re different and why it matters
ELT vs. ETL - How they’re different and why it mattersELT vs. ETL - How they’re different and why it matters
ELT vs. ETL - How they’re different and why it mattersMatillion
 
Iceberg: A modern table format for big data (Strata NY 2018)
Iceberg: A modern table format for big data (Strata NY 2018)Iceberg: A modern table format for big data (Strata NY 2018)
Iceberg: A modern table format for big data (Strata NY 2018)Ryan Blue
 
Apache Pinot Case Study: Building Distributed Analytics Systems Using Apache ...
Apache Pinot Case Study: Building Distributed Analytics Systems Using Apache ...Apache Pinot Case Study: Building Distributed Analytics Systems Using Apache ...
Apache Pinot Case Study: Building Distributed Analytics Systems Using Apache ...HostedbyConfluent
 
Spark's Role in the Big Data Ecosystem (Spark Summit 2014)
Spark's Role in the Big Data Ecosystem (Spark Summit 2014)Spark's Role in the Big Data Ecosystem (Spark Summit 2014)
Spark's Role in the Big Data Ecosystem (Spark Summit 2014)Databricks
 
YugaByte DB Internals - Storage Engine and Transactions
YugaByte DB Internals - Storage Engine and Transactions YugaByte DB Internals - Storage Engine and Transactions
YugaByte DB Internals - Storage Engine and Transactions Yugabyte
 
Introduction to Apache Flink - Fast and reliable big data processing
Introduction to Apache Flink - Fast and reliable big data processingIntroduction to Apache Flink - Fast and reliable big data processing
Introduction to Apache Flink - Fast and reliable big data processingTill Rohrmann
 
Apache Spark Data Source V2 with Wenchen Fan and Gengliang Wang
Apache Spark Data Source V2 with Wenchen Fan and Gengliang WangApache Spark Data Source V2 with Wenchen Fan and Gengliang Wang
Apache Spark Data Source V2 with Wenchen Fan and Gengliang WangDatabricks
 
Extending Flink State Serialization for Better Performance and Smaller Checkp...
Extending Flink State Serialization for Better Performance and Smaller Checkp...Extending Flink State Serialization for Better Performance and Smaller Checkp...
Extending Flink State Serialization for Better Performance and Smaller Checkp...Flink Forward
 
Demystifying flink memory allocation and tuning - Roshan Naik, Uber
Demystifying flink memory allocation and tuning - Roshan Naik, UberDemystifying flink memory allocation and tuning - Roshan Naik, Uber
Demystifying flink memory allocation and tuning - Roshan Naik, UberFlink Forward
 
Considerations for Data Access in the Lakehouse
Considerations for Data Access in the LakehouseConsiderations for Data Access in the Lakehouse
Considerations for Data Access in the LakehouseDatabricks
 
Natural Language Processing with Graph Databases and Neo4j
Natural Language Processing with Graph Databases and Neo4jNatural Language Processing with Graph Databases and Neo4j
Natural Language Processing with Graph Databases and Neo4jWilliam Lyon
 
The Volcano/Cascades Optimizer
The Volcano/Cascades OptimizerThe Volcano/Cascades Optimizer
The Volcano/Cascades Optimizer宇 傅
 
2022-06-23 Apache Arrow and DataFusion_ Changing the Game for implementing Da...
2022-06-23 Apache Arrow and DataFusion_ Changing the Game for implementing Da...2022-06-23 Apache Arrow and DataFusion_ Changing the Game for implementing Da...
2022-06-23 Apache Arrow and DataFusion_ Changing the Game for implementing Da...Andrew Lamb
 
Data and AI summit: data pipelines observability with open lineage
Data and AI summit: data pipelines observability with open lineageData and AI summit: data pipelines observability with open lineage
Data and AI summit: data pipelines observability with open lineageJulien Le Dem
 
Tuning Apache Kafka Connectors for Flink.pptx
Tuning Apache Kafka Connectors for Flink.pptxTuning Apache Kafka Connectors for Flink.pptx
Tuning Apache Kafka Connectors for Flink.pptxFlink Forward
 

What's hot (20)

KNIME Data Science Learnathon: From Raw Data To Deployment
KNIME Data Science Learnathon: From Raw Data To DeploymentKNIME Data Science Learnathon: From Raw Data To Deployment
KNIME Data Science Learnathon: From Raw Data To Deployment
 
ELT vs. ETL - How they’re different and why it matters
ELT vs. ETL - How they’re different and why it mattersELT vs. ETL - How they’re different and why it matters
ELT vs. ETL - How they’re different and why it matters
 
Iceberg: A modern table format for big data (Strata NY 2018)
Iceberg: A modern table format for big data (Strata NY 2018)Iceberg: A modern table format for big data (Strata NY 2018)
Iceberg: A modern table format for big data (Strata NY 2018)
 
Apache Pinot Case Study: Building Distributed Analytics Systems Using Apache ...
Apache Pinot Case Study: Building Distributed Analytics Systems Using Apache ...Apache Pinot Case Study: Building Distributed Analytics Systems Using Apache ...
Apache Pinot Case Study: Building Distributed Analytics Systems Using Apache ...
 
Spark's Role in the Big Data Ecosystem (Spark Summit 2014)
Spark's Role in the Big Data Ecosystem (Spark Summit 2014)Spark's Role in the Big Data Ecosystem (Spark Summit 2014)
Spark's Role in the Big Data Ecosystem (Spark Summit 2014)
 
YugaByte DB Internals - Storage Engine and Transactions
YugaByte DB Internals - Storage Engine and Transactions YugaByte DB Internals - Storage Engine and Transactions
YugaByte DB Internals - Storage Engine and Transactions
 
Catalyst optimizer
Catalyst optimizerCatalyst optimizer
Catalyst optimizer
 
Introduction to Apache Flink - Fast and reliable big data processing
Introduction to Apache Flink - Fast and reliable big data processingIntroduction to Apache Flink - Fast and reliable big data processing
Introduction to Apache Flink - Fast and reliable big data processing
 
Apache Spark Data Source V2 with Wenchen Fan and Gengliang Wang
Apache Spark Data Source V2 with Wenchen Fan and Gengliang WangApache Spark Data Source V2 with Wenchen Fan and Gengliang Wang
Apache Spark Data Source V2 with Wenchen Fan and Gengliang Wang
 
Extending Flink State Serialization for Better Performance and Smaller Checkp...
Extending Flink State Serialization for Better Performance and Smaller Checkp...Extending Flink State Serialization for Better Performance and Smaller Checkp...
Extending Flink State Serialization for Better Performance and Smaller Checkp...
 
Demystifying flink memory allocation and tuning - Roshan Naik, Uber
Demystifying flink memory allocation and tuning - Roshan Naik, UberDemystifying flink memory allocation and tuning - Roshan Naik, Uber
Demystifying flink memory allocation and tuning - Roshan Naik, Uber
 
Knime
KnimeKnime
Knime
 
Considerations for Data Access in the Lakehouse
Considerations for Data Access in the LakehouseConsiderations for Data Access in the Lakehouse
Considerations for Data Access in the Lakehouse
 
Natural Language Processing with Graph Databases and Neo4j
Natural Language Processing with Graph Databases and Neo4jNatural Language Processing with Graph Databases and Neo4j
Natural Language Processing with Graph Databases and Neo4j
 
The Volcano/Cascades Optimizer
The Volcano/Cascades OptimizerThe Volcano/Cascades Optimizer
The Volcano/Cascades Optimizer
 
2022-06-23 Apache Arrow and DataFusion_ Changing the Game for implementing Da...
2022-06-23 Apache Arrow and DataFusion_ Changing the Game for implementing Da...2022-06-23 Apache Arrow and DataFusion_ Changing the Game for implementing Da...
2022-06-23 Apache Arrow and DataFusion_ Changing the Game for implementing Da...
 
Data and AI summit: data pipelines observability with open lineage
Data and AI summit: data pipelines observability with open lineageData and AI summit: data pipelines observability with open lineage
Data and AI summit: data pipelines observability with open lineage
 
Spark architecture
Spark architectureSpark architecture
Spark architecture
 
Tuning Apache Kafka Connectors for Flink.pptx
Tuning Apache Kafka Connectors for Flink.pptxTuning Apache Kafka Connectors for Flink.pptx
Tuning Apache Kafka Connectors for Flink.pptx
 
Event-sourced architectures with Akka
Event-sourced architectures with AkkaEvent-sourced architectures with Akka
Event-sourced architectures with Akka
 

Similar to Master the RETE algorithm

QCon 2018 | Gimel | PayPal's Analytic Platform
QCon 2018 | Gimel | PayPal's Analytic PlatformQCon 2018 | Gimel | PayPal's Analytic Platform
QCon 2018 | Gimel | PayPal's Analytic PlatformDeepak Chandramouli
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender SystemsNick Pentreath
 
ODSC18, London, How to build high performing weighted XGBoost ML Model for Re...
ODSC18, London, How to build high performing weighted XGBoost ML Model for Re...ODSC18, London, How to build high performing weighted XGBoost ML Model for Re...
ODSC18, London, How to build high performing weighted XGBoost ML Model for Re...Alok Singh
 
Big Data LDN 2018: LESSONS LEARNED FROM DEPLOYING REAL-WORLD AI SYSTEMS
Big Data LDN 2018: LESSONS LEARNED FROM DEPLOYING REAL-WORLD AI SYSTEMSBig Data LDN 2018: LESSONS LEARNED FROM DEPLOYING REAL-WORLD AI SYSTEMS
Big Data LDN 2018: LESSONS LEARNED FROM DEPLOYING REAL-WORLD AI SYSTEMSMatt Stubbs
 
Deep Learning for Recommender Systems with Nick pentreath
Deep Learning for Recommender Systems with Nick pentreathDeep Learning for Recommender Systems with Nick pentreath
Deep Learning for Recommender Systems with Nick pentreathDatabricks
 
Processing malaria HTS results using KNIME: a tutorial
Processing malaria HTS results using KNIME: a tutorialProcessing malaria HTS results using KNIME: a tutorial
Processing malaria HTS results using KNIME: a tutorialGreg Landrum
 
Designing the Next Generation Data Lake
Designing the Next Generation Data LakeDesigning the Next Generation Data Lake
Designing the Next Generation Data LakeRobert Chong
 
AI as a Service, Build Shared AI Service Platforms Based on Deep Learning Tec...
AI as a Service, Build Shared AI Service Platforms Based on Deep Learning Tec...AI as a Service, Build Shared AI Service Platforms Based on Deep Learning Tec...
AI as a Service, Build Shared AI Service Platforms Based on Deep Learning Tec...Databricks
 
Gartner pace and bi-modal models
Gartner pace and bi-modal modelsGartner pace and bi-modal models
Gartner pace and bi-modal modelsRic Lukasiewicz
 
Intelligent data summit: Self-Service Big Data and AI/ML: Reality or Myth?
Intelligent data summit: Self-Service Big Data and AI/ML: Reality or Myth?Intelligent data summit: Self-Service Big Data and AI/ML: Reality or Myth?
Intelligent data summit: Self-Service Big Data and AI/ML: Reality or Myth?SnapLogic
 
Discover PostGIS: Add Spatial functions to PostgreSQL
Discover PostGIS: Add Spatial functions to PostgreSQLDiscover PostGIS: Add Spatial functions to PostgreSQL
Discover PostGIS: Add Spatial functions to PostgreSQLEDB
 
Jupyter in the modern enterprise data and analytics ecosystem
Jupyter in the modern enterprise data and analytics ecosystem Jupyter in the modern enterprise data and analytics ecosystem
Jupyter in the modern enterprise data and analytics ecosystem Gerald Rousselle
 
Kent-Graziano-Intro-to-Datavault_short.pdf
Kent-Graziano-Intro-to-Datavault_short.pdfKent-Graziano-Intro-to-Datavault_short.pdf
Kent-Graziano-Intro-to-Datavault_short.pdfabhaybansal43
 
Python tutorial for ML
Python tutorial for MLPython tutorial for ML
Python tutorial for MLBin Han
 
Agile Data Engineering: Introduction to Data Vault 2.0 (2018)
Agile Data Engineering: Introduction to Data Vault 2.0 (2018)Agile Data Engineering: Introduction to Data Vault 2.0 (2018)
Agile Data Engineering: Introduction to Data Vault 2.0 (2018)Kent Graziano
 
Big Data Real Time Analytics - A Facebook Case Study
Big Data Real Time Analytics - A Facebook Case StudyBig Data Real Time Analytics - A Facebook Case Study
Big Data Real Time Analytics - A Facebook Case StudyNati Shalom
 
Postgres Vision 2018: Taking Postgres Everywhere
Postgres Vision 2018: Taking Postgres EverywherePostgres Vision 2018: Taking Postgres Everywhere
Postgres Vision 2018: Taking Postgres EverywhereEDB
 
Graph Databases and Machine Learning | November 2018
Graph Databases and Machine Learning | November 2018Graph Databases and Machine Learning | November 2018
Graph Databases and Machine Learning | November 2018TigerGraph
 
Cheryl Wiebe - Advanced Analytics in the Industrial World
Cheryl Wiebe - Advanced Analytics in the Industrial WorldCheryl Wiebe - Advanced Analytics in the Industrial World
Cheryl Wiebe - Advanced Analytics in the Industrial WorldRehgan Avon
 

Similar to Master the RETE algorithm (20)

QCon 2018 | Gimel | PayPal's Analytic Platform
QCon 2018 | Gimel | PayPal's Analytic PlatformQCon 2018 | Gimel | PayPal's Analytic Platform
QCon 2018 | Gimel | PayPal's Analytic Platform
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender Systems
 
ODSC18, London, How to build high performing weighted XGBoost ML Model for Re...
ODSC18, London, How to build high performing weighted XGBoost ML Model for Re...ODSC18, London, How to build high performing weighted XGBoost ML Model for Re...
ODSC18, London, How to build high performing weighted XGBoost ML Model for Re...
 
Big Data LDN 2018: LESSONS LEARNED FROM DEPLOYING REAL-WORLD AI SYSTEMS
Big Data LDN 2018: LESSONS LEARNED FROM DEPLOYING REAL-WORLD AI SYSTEMSBig Data LDN 2018: LESSONS LEARNED FROM DEPLOYING REAL-WORLD AI SYSTEMS
Big Data LDN 2018: LESSONS LEARNED FROM DEPLOYING REAL-WORLD AI SYSTEMS
 
Deep Learning for Recommender Systems with Nick pentreath
Deep Learning for Recommender Systems with Nick pentreathDeep Learning for Recommender Systems with Nick pentreath
Deep Learning for Recommender Systems with Nick pentreath
 
Processing malaria HTS results using KNIME: a tutorial
Processing malaria HTS results using KNIME: a tutorialProcessing malaria HTS results using KNIME: a tutorial
Processing malaria HTS results using KNIME: a tutorial
 
Designing the Next Generation Data Lake
Designing the Next Generation Data LakeDesigning the Next Generation Data Lake
Designing the Next Generation Data Lake
 
AI as a Service, Build Shared AI Service Platforms Based on Deep Learning Tec...
AI as a Service, Build Shared AI Service Platforms Based on Deep Learning Tec...AI as a Service, Build Shared AI Service Platforms Based on Deep Learning Tec...
AI as a Service, Build Shared AI Service Platforms Based on Deep Learning Tec...
 
Gartner pace and bi-modal models
Gartner pace and bi-modal modelsGartner pace and bi-modal models
Gartner pace and bi-modal models
 
Intelligent data summit: Self-Service Big Data and AI/ML: Reality or Myth?
Intelligent data summit: Self-Service Big Data and AI/ML: Reality or Myth?Intelligent data summit: Self-Service Big Data and AI/ML: Reality or Myth?
Intelligent data summit: Self-Service Big Data and AI/ML: Reality or Myth?
 
Discover PostGIS: Add Spatial functions to PostgreSQL
Discover PostGIS: Add Spatial functions to PostgreSQLDiscover PostGIS: Add Spatial functions to PostgreSQL
Discover PostGIS: Add Spatial functions to PostgreSQL
 
Jupyter in the modern enterprise data and analytics ecosystem
Jupyter in the modern enterprise data and analytics ecosystem Jupyter in the modern enterprise data and analytics ecosystem
Jupyter in the modern enterprise data and analytics ecosystem
 
Kent-Graziano-Intro-to-Datavault_short.pdf
Kent-Graziano-Intro-to-Datavault_short.pdfKent-Graziano-Intro-to-Datavault_short.pdf
Kent-Graziano-Intro-to-Datavault_short.pdf
 
Python tutorial for ML
Python tutorial for MLPython tutorial for ML
Python tutorial for ML
 
Agile Data Engineering: Introduction to Data Vault 2.0 (2018)
Agile Data Engineering: Introduction to Data Vault 2.0 (2018)Agile Data Engineering: Introduction to Data Vault 2.0 (2018)
Agile Data Engineering: Introduction to Data Vault 2.0 (2018)
 
Big Data Real Time Analytics - A Facebook Case Study
Big Data Real Time Analytics - A Facebook Case StudyBig Data Real Time Analytics - A Facebook Case Study
Big Data Real Time Analytics - A Facebook Case Study
 
Postgres Vision 2018: Taking Postgres Everywhere
Postgres Vision 2018: Taking Postgres EverywherePostgres Vision 2018: Taking Postgres Everywhere
Postgres Vision 2018: Taking Postgres Everywhere
 
Graph Databases and Machine Learning | November 2018
Graph Databases and Machine Learning | November 2018Graph Databases and Machine Learning | November 2018
Graph Databases and Machine Learning | November 2018
 
Cheryl Wiebe - Advanced Analytics in the Industrial World
Cheryl Wiebe - Advanced Analytics in the Industrial WorldCheryl Wiebe - Advanced Analytics in the Industrial World
Cheryl Wiebe - Advanced Analytics in the Industrial World
 
Big Data: hype or necessity?
Big Data: hype or necessity?Big Data: hype or necessity?
Big Data: hype or necessity?
 

More from Masahiko Umeno

RHF2021_ポイントは業務視点.pdf
RHF2021_ポイントは業務視点.pdfRHF2021_ポイントは業務視点.pdf
RHF2021_ポイントは業務視点.pdfMasahiko Umeno
 
資料用_B1_mumeno_RHF_2014_wo_pic.pdf
資料用_B1_mumeno_RHF_2014_wo_pic.pdf資料用_B1_mumeno_RHF_2014_wo_pic.pdf
資料用_B1_mumeno_RHF_2014_wo_pic.pdfMasahiko Umeno
 
Why we should consider Open Hybrid Cloud.pdf
Why we should  consider Open Hybrid Cloud.pdfWhy we should  consider Open Hybrid Cloud.pdf
Why we should consider Open Hybrid Cloud.pdfMasahiko Umeno
 
Open Hybrid Cloudを検討すべき理由.pdf
Open Hybrid Cloudを検討すべき理由.pdfOpen Hybrid Cloudを検討すべき理由.pdf
Open Hybrid Cloudを検討すべき理由.pdfMasahiko Umeno
 
Rhf2019 how totackle barriersofapplicationmodernization_ap16_en
Rhf2019 how totackle barriersofapplicationmodernization_ap16_enRhf2019 how totackle barriersofapplicationmodernization_ap16_en
Rhf2019 how totackle barriersofapplicationmodernization_ap16_enMasahiko Umeno
 
Application Modernizationの障壁にどう取り組むか
Application Modernizationの障壁にどう取り組むかApplication Modernizationの障壁にどう取り組むか
Application Modernizationの障壁にどう取り組むかMasahiko Umeno
 
Next generation business automation with the red hat decision manager and red...
Next generation business automation with the red hat decision manager and red...Next generation business automation with the red hat decision manager and red...
Next generation business automation with the red hat decision manager and red...Masahiko Umeno
 
RETEアルゴリズムを使いこなせ
RETEアルゴリズムを使いこなせRETEアルゴリズムを使いこなせ
RETEアルゴリズムを使いこなせMasahiko Umeno
 
Business Resource Planner (RHF2017 Tokyo)
Business Resource Planner (RHF2017 Tokyo)Business Resource Planner (RHF2017 Tokyo)
Business Resource Planner (RHF2017 Tokyo)Masahiko Umeno
 
Artificial Intelligence
Artificial IntelligenceArtificial Intelligence
Artificial IntelligenceMasahiko Umeno
 
レッドハットのベストプラクティス
レッドハットのベストプラクティスレッドハットのベストプラクティス
レッドハットのベストプラクティスMasahiko Umeno
 
Red Hat Forum 2015 Tokyo mumeno 公開資料
Red Hat Forum 2015 Tokyo mumeno 公開資料Red Hat Forum 2015 Tokyo mumeno 公開資料
Red Hat Forum 2015 Tokyo mumeno 公開資料Masahiko Umeno
 
Application Architecture -Data, Process, Rule-
Application Architecture -Data, Process, Rule-Application Architecture -Data, Process, Rule-
Application Architecture -Data, Process, Rule-Masahiko Umeno
 

More from Masahiko Umeno (15)

RHF2021_ポイントは業務視点.pdf
RHF2021_ポイントは業務視点.pdfRHF2021_ポイントは業務視点.pdf
RHF2021_ポイントは業務視点.pdf
 
資料用_B1_mumeno_RHF_2014_wo_pic.pdf
資料用_B1_mumeno_RHF_2014_wo_pic.pdf資料用_B1_mumeno_RHF_2014_wo_pic.pdf
資料用_B1_mumeno_RHF_2014_wo_pic.pdf
 
Why we should consider Open Hybrid Cloud.pdf
Why we should  consider Open Hybrid Cloud.pdfWhy we should  consider Open Hybrid Cloud.pdf
Why we should consider Open Hybrid Cloud.pdf
 
Open Hybrid Cloudを検討すべき理由.pdf
Open Hybrid Cloudを検討すべき理由.pdfOpen Hybrid Cloudを検討すべき理由.pdf
Open Hybrid Cloudを検討すべき理由.pdf
 
Rhf2019 how totackle barriersofapplicationmodernization_ap16_en
Rhf2019 how totackle barriersofapplicationmodernization_ap16_enRhf2019 how totackle barriersofapplicationmodernization_ap16_en
Rhf2019 how totackle barriersofapplicationmodernization_ap16_en
 
Application Modernizationの障壁にどう取り組むか
Application Modernizationの障壁にどう取り組むかApplication Modernizationの障壁にどう取り組むか
Application Modernizationの障壁にどう取り組むか
 
Next generation business automation with the red hat decision manager and red...
Next generation business automation with the red hat decision manager and red...Next generation business automation with the red hat decision manager and red...
Next generation business automation with the red hat decision manager and red...
 
RETEアルゴリズムを使いこなせ
RETEアルゴリズムを使いこなせRETEアルゴリズムを使いこなせ
RETEアルゴリズムを使いこなせ
 
Business Resource Planner (RHF2017 Tokyo)
Business Resource Planner (RHF2017 Tokyo)Business Resource Planner (RHF2017 Tokyo)
Business Resource Planner (RHF2017 Tokyo)
 
BRMS6.2 2016版
BRMS6.2 2016版BRMS6.2 2016版
BRMS6.2 2016版
 
Artificial Intelligence
Artificial IntelligenceArtificial Intelligence
Artificial Intelligence
 
レッドハットのベストプラクティス
レッドハットのベストプラクティスレッドハットのベストプラクティス
レッドハットのベストプラクティス
 
Red Hat Forum 2015 Tokyo mumeno 公開資料
Red Hat Forum 2015 Tokyo mumeno 公開資料Red Hat Forum 2015 Tokyo mumeno 公開資料
Red Hat Forum 2015 Tokyo mumeno 公開資料
 
Opta planner勉強会
Opta planner勉強会Opta planner勉強会
Opta planner勉強会
 
Application Architecture -Data, Process, Rule-
Application Architecture -Data, Process, Rule-Application Architecture -Data, Process, Rule-
Application Architecture -Data, Process, Rule-
 

Recently uploaded

CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 

Recently uploaded (20)

2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 

Master the RETE algorithm

  • 1. Master the RETE algorithm!! – The Heart of Rule Engine - Red Hat K.K. Chief Technologist Masahiko Umeno Red Hat Forum Tokyo 2018 AP09
  • 2. About Rule Engine Copyright © 2018 Red Hat K.K. All Rights Reserved.2 A converter that triggers new actions due to the relevance of different types of data Example… Preferred Channel For those who buy a lot of strawberry flavor. At the time you are browsing. Send Ad with those preferred channel. purchase history 12:13 Browsing history
  • 3. Agenda Copyright © 2018 Red Hat K.K. All Rights Reserved.3 RETE Algorithm Basic Behavior Apply to Machine Learning
  • 4. RETE Algorithm Copyright © 2018 Red Hat K.K. All Rights Reserved.4 Thought to realize a production system, Efficient Pattern Matching Production System: Planning, Expert system, Action selection KnowledgeData Action
  • 5. History of RETE Algorithm Copyright © 2018 Red Hat K.K. All Rights Reserved.5 Mycin Dendral 1972 Started from the expert system Prolog RETE 1974 OPS5 CLIPS Jess DroolsSoar ILOG Rules 1984 1983 1995 2001 1987 JBoss Enterprise BRMS 5 2009 Today 1996 Red Hat JBoss BRMS 6 Revelation RETE
  • 6. Structure Copyright © 2018 Red Hat K.K. All Rights Reserved.6 Working Memory Production Memory Agenda Data (FACT) The place of Action candidate which matched data and rule Knowledge
  • 8. Matching ofTruck and Driver Copyright © 2017 Red Hat K.K. All Rights Reserved.8 Rule • Fix a truck when broken truck and parts are existing • Assign driver to truck when empty truck and available driver are existing Please consider what flow may require using Rule Engine. If not use Rule Engine? All pictures drawn by Nagisa.
  • 9. Step 1/12 Copyright © 2017 Red Hat K.K. All Rights Reserved.9 Working Memory Production Memory Agenda Condition Action Condition Action
  • 10. Step 2/12 Copyright © 2017 Red Hat K.K. All Rights Reserved.10 Working Memory Condition Action Condition Action Production Memory Agenda Condition Action
  • 11. Step 3/12 Copyright © 2017 Red Hat K.K. All Rights Reserved.11 Working Memory Agenda Condition Action Condition Action Condition Action Condition Action Condition Action Condition Action Production Memory
  • 12. Step 4/12 Copyright © 2017 Red Hat K.K. All Rights Reserved.12 Working Memory Agenda Condition Action Condition Action Condition Action Condition Action Condition Action Condition Action Production Memory
  • 13. Step 5/12 Copyright © 2017 Red Hat K.K. All Rights Reserved.13 Working Memory Agenda Condition Action Condition Action Condition Action Condition Action Condition Action Condition Action Production Memory
  • 14. Step 6/12 Copyright © 2017 Red Hat K.K. All Rights Reserved.14 Working Memory Agenda Condition Action Condition Action Condition Action Condition Action Condition Action Condition Action Condition Action Condition Action Production Memory
  • 15. Step 7/12 Copyright © 2017 Red Hat K.K. All Rights Reserved.15 Working Memory Agenda Condition Action Condition Action Condition Action Condition Action Condition Action Condition Action Condition Action Condition Action Production Memory
  • 16. Step 8/12 Copyright © 2017 Red Hat K.K. All Rights Reserved.16 Working Memory Agenda Condition Action Condition Action Condition Action Condition Action Condition Action Condition Action Condition Action Condition Action Production Memory
  • 17. Step 9/12 Copyright © 2017 Red Hat K.K. All Rights Reserved.17 Working Memory Agenda Condition Action Condition Action Condition Action Condition Action Condition Action Condition Action Condition Action Condition Action Production Memory
  • 18. Step 10/12 Copyright © 2017 Red Hat K.K. All Rights Reserved.18 Working Memory Agenda Condition Action Condition Action Condition Action Condition Action Condition Action Condition Action Condition Action Condition Action Production Memory
  • 19. Step 11/12 Copyright © 2017 Red Hat K.K. All Rights Reserved.19 Working Memory Agenda Condition Action Condition Action Condition Action Condition Action Condition Action Condition Action Condition Action Condition Action Production Memory
  • 20. Step 12/12 Copyright © 2017 Red Hat K.K. All Rights Reserved.20 Working Memory Agenda Condition Action Condition Action Condition Action Condition Action Condition Action Condition Action Condition Action Condition Action Production Memory
  • 21. Data Mode (Fact) Copyright © 2012 Red Hat, Inc. public class Truck { private String Color; private String Parts; private String Driver; } public class Parts { private String Parts; } public class Driver { private String Name; } 21 Create class and members taking into account what the truck attribute values are.
  • 22. Rule Copyright © 2012 Red Hat, Inc. rule "Repear" salience 100 when p : Parts () t : Truck (parts == p.parts ) then t.setParts ("Complete"); retract (p); update (t); end rule "Matching" salience 10 when t : Truck (parts == "Complete", driver == "") d : Driver (n : name ) then t.setDriver (n); retract (d); update (t); end 22 Update (x); Notice to Rule Engine when Fact(x) changed. Rule Engine may reevaluate using new status of Fact, create Activation in Agenda when data matched rule. Retract (x); Delete Fact(x) from Working Memory. Cancel Activation from Agenda when relevant activations are existing.
  • 23. Audit Check the behavior when rule fired Fact Update Activation Created Activation at matched rule and Fact when Fact inserted. Canceled Activation at un- matched rule when Fact had remove. Copyright © 2012 Red Hat, Inc.23
  • 24. Characteristic of RETE Algorithm Copyright © 2018 Red Hat K.K. All Rights Reserved.24 • Engine that causes Action based on the relevant between objects (Fact and rule, Fact and Fact and rule, etc.) • When Fact is updated and notified to the rule engine, it is re-evaluated and executed sequentially with a combination of matching Facts and rules. • Weak to combination explosion • Can not detect infinity loop – Enable to avoid with the number of fired rules.
  • 25. PHREAK Copyright © 2018 Red Hat K.K. All Rights Reserved.25 • (Marc) Proctor’s Hybrid Reasoning Engine for Advanced Knowledge – Improved RETEOO(RETE Object Oriented) • Lazy evaluation – Rather than evaluating at once, prevent combination explosion in Agenda (when the condition is multistage) • Faster – Multithreading for evaluation
  • 26. Effective use of RETE Algorithm to Business Copyright © 2018 Red Hat K.K. All Rights Reserved.26 Feature Notes Correlation Check Business Screening, Assessment, Derivation, Quality check of Data in DB System Hierarchy, Correlation check of distributed data Aggregation Business Agency Incentive, Cost item, Simulation System Hierarchy, Correlation check of distributed data Reasoning Business Production Control, Production Planning, Routing, Assign System Forward Chaining, Backward Chaining, Truth Maintenance System
  • 27. Summary of Red Hat Decision Manager Rule Engine Copyright © 2018 Red Hat K.K. All Rights Reserved.27 • Evaluate rule based on Data • Fire continuously by the reasoning mechanism, and re-evaluate. Simplify the logic for complex. • Because of tracing of behavior can available, it makes not be a black-box. • PHREAK , it's an improved RETE algorithm is included. • Not a simple if-then logic engine!!
  • 28. APPLY TO MACHINE LEARNING
  • 29. Leaning Copyright © 2018 Red Hat K.K. All Rights Reserved.29 Supervised Learning Unsupervised Learning Human wisdom Business Rule Supervised Learning • Neural Network • Regression • Tree • Bayesian inference • Clustering k-nearest neighbor Unsupervised Learning • Principal component analysis • Clustering k-means • Vector Quantization • Self Organizing map
  • 30. Clustering Copyright © 2018 Red Hat K.K. All Rights Reserved.30 • One of the machine learning • Primitive, but important methodology • Used to Data mining • Outcome is “Case divider” • Use the outcome to “supervised learning”/“Rule” • Non-hierarchical: k means • Hierarchical: Single Linkage Method, Furthest neighbor method, Group average method…
  • 31. Single Linkage Method Copyright © 2018 Red Hat K.K. All Rights Reserved.31 1. Calc the distance between any two objects 2. Of the two arbitrary objects, the object between the smallest distances is extracted, and the center of gravity is newly created as an object. Record the relationship between the new object and the two objects. 3. An object cannot belong to more than one group, so if it belongs to a different group, give up that it belongs to one of the groups 4. Loop 1-4 until the number of parent objects is less than the number what we want to.
  • 32. 1 DIMENSION Let’s cluster with Single Linkage Method using Rule Engine !!
  • 33. Data Copyright © 2018 Red Hat K.K. All Rights Reserved.33 7 8 18 27 37.5 62 72 73 89 96 • Value 0 - 100 • Number of points is 10 (Duplicateable) • Random plot 3 Clustering
  • 34. Final Result Copyright © 2018 Red Hat K.K. All Rights Reserved.34 7.5 92.526.25 67.25 15 37.5 22.5 62 72.5 18 27 89 967 8 72 73
  • 35. Data Model (Fact) Copyright © 2018 Red Hat K.K. All Rights Reserved.35 public class Distance { private double distance; private AnalysisData a1; private AnalysisData a2; } Distance between 2 points public class AnalysisData { private double x; private double y; private String Tag=""; private int Color=0; private int level=0; private ArrayList<AnalysisData> subsidiary;} Data of clustering Coordinate and flags, The list of data included
  • 36. Rules Copyright © 2018 Red Hat K.K. All Rights Reserved.36 rule "Calc distance between 2 points" rule “Get shortest distance and crate new center of gravity” rule “Remove duplicated child from subsidiary” rule “Calc the number of cluster, delete old distance” rule “Color to the most upper layer” rule “Colored to the other same as the most upper layer " Clustering Coloring
  • 37. Copyright © 2018 Red Hat K.K. All Rights Reserved.37 rule "Calc distance between 2 points" salience 100 when ad1: AnalysisData(x1:x , y1:y, tag =="") ad2: AnalysisData(x2:x >=x1 , y2:y, tag =="", this != ad1) not Distance(a1==ad1, a2==ad2) not Distance(a1==ad2, a2==ad1) then Distance d = new Distance(); d.setDistance(Math.sqrt(Math.pow((x1-x2),2)+Math.pow((y1-y2),2))); d.setA1(ad1); d.setA2(ad2); insert (d); end tag: set child when became child of someone Calculation as Euclidean distance
  • 38. Copyright © 2018 Red Hat K.K. All Rights Reserved.38 rule “Get shortest distance and crate new center of gravity " salience 100 when d1 : Distance( minDist:distance ) not Distance( distance < minDist) A1 : AnalysisData( tag =="") from d1.getA1 A2 : AnalysisData( tag =="") from d1.getA2 NumberOfCluster( number > CulsterNumber ) then AnalysisData ad = new AnalysisData(); ad.setX((d1.getA1().getX()+d1.getA2().getX())/2); ad.setY((d1.getA1().getY()+d1.getA2().getY())/2); ad.setTag(""); ad.setLevel(1); ad.addSubsidiary(d1.getA1()); ad.addSubsidiary(d1.getA2()); insert(ad); A1.setTag(“Child”); update(A1); A2.setTag(“Child”); update(A2); retract(d1); end tag: Set Child when it become a child There is nothing less than my distance = Minimize myself Level: Hierarchies (init 0) Create new center of gravity (Use same class as data) Notify new center of gravity created to Rule
  • 39. Copyright © 2018 Red Hat K.K. All Rights Reserved.39 rule " Remove duplicated child from subsidiary " salience 200 when ad1: AnalysisData( ) ad2: AnalysisData( tag =="", subsidiary contains ad1) ad3: AnalysisData( this != ad2, subsidiary contains ad1) ad4: AnalysisData( this != ad1 ) from ad3.getSubsidiary() ad5: AnalysisData( this != ad1, this != ad4) from ad2.getSubsidiary() then ad4.setTag(""); retract (ad3); update(ad4); end
  • 40. Copyright © 2018 Red Hat K.K. All Rights Reserved.40 rule “Calc the number of cluster, delete old distance " salience -100 when total: Number(intValue >= CulsterNumber.intValue()) from accumulate (AD: AnalysisData( tag != "Child"), count(AD)) noc: NumberOfCluster() d: Distance() then noc.setNumber(total.intValue()); update (noc); retract (d); end tag != "Child” stands for the parent node of a cluster The number which want to divide C CC C
  • 41. Step 1 Copyright © 2018 Red Hat K.K. All Rights Reserved.41 7 8 18 27 37.5 62 72 73 89 96
  • 42. Step 1 Copyright © 2018 Red Hat K.K. All Rights Reserved.42 7 8 18 27 37.5 62 72 73 89 96 1 10 9 11 24 10 1 16 7 7.5 72.518 27 37.5 62 89 96 The # cluster : 8
  • 43. Step 2 Copyright © 2018 Red Hat K.K. All Rights Reserved.43 18 27 37.5 62 89 967.5 72.5 11.5 24 10.5 16.5 79 11 92.518 27 37.5 62 72.57.5 The # cluster : 7
  • 44. Step 3 Copyright © 2018 Red Hat K.K. All Rights Reserved.44 18 27 37.5 627.5 72.5 92.5 11.5 24 10.59 11 20 37.5 62 72.57.5 92.522.5 The # cluster : 6
  • 45. Step 4 Copyright © 2018 Red Hat K.K. All Rights Reserved.45 37.5 627.5 72.5 92.5 15 24 10.515 20 22.5 37.57.5 92.522.5 67.25 The # cluster : 5
  • 46. Step5 Copyright © 2018 Red Hat K.K. All Rights Reserved.46 37.57.5 92.5 15 15 29.7515 25.25 22.5 30 67.25 92.567.25 The # cluster : 4
  • 47. Copyright © 2018 Red Hat K.K. All Rights Reserved.47 rule "Remove duplicated child from subsidiary" salience 200 when ad1: AnalysisData( ) ad2: AnalysisData( tag =="", subsidiary contains ad1) ad3: AnalysisData( this != ad2, subsidiary contains ad1) ad4: AnalysisData( this != ad1 ) from ad3.getSubsidiary() ad5: AnalysisData( this != ad1, this != ad4) from ad2.getSubsidiary () then ad4.setTag(""); retract (ad3); update(ad4); end 37.57.5 15 15 15 22.5 30 ad4 ad2 ad1 ad3 ad5
  • 48. Copyright © 2018 Red Hat K.K. All Rights Reserved.48 rule "Remove duplicated child from subsidiary" salience 200 when ad1: AnalysisData( ) ad2: AnalysisData(this != ad1) ad3: AnalysisData(this != ad1, this != ad2) ad4: AnalysisData(tag =="", subsidiary contains ad1, subsidiary contains ad2) ad5: AnalysisData(tag =="", this != ad4, subsidiary contains ad2, subsidiary contains ad3) then ad3.setTag(""); update(ad3); retract (ad5); end 37.57.5 15 15 15 22.5 30 ad3 ad4 ad2 ad5 ad1 Bad Code! 500C3 = 20.70M Can not reduce the number of combinations Combination Explosion occurred
  • 49. Step5 Copyright © 2018 Red Hat K.K. All Rights Reserved.49 37.57.5 92.5 15 29.7515 25.25 22.5 67.25 92.567.2515 30 The # cluster : 4 307.5 22.5
  • 50. Step6 Copyright © 2018 Red Hat K.K. All Rights Reserved.50 92.5 26.25 22.5 29.75 25.25 67.25 92.567.25 The # cluster : 3 15 37.5
  • 51. Step7 Hierarchical display Copyright © 2018 Red Hat K.K. All Rights Reserved.51 7.5 92.526.25 67.25 15 37.5 22.5 62 72.5 18 27 89 967 8 72 73
  • 52. Step7 Hierarchical display Copyright © 2018 Red Hat K.K. All Rights Reserved.52 7.5 92.526.25 67.25 15 37.5 22.5 62 72.5 18 27 89 967 8 72 73
  • 53. k-means clustering Copyright © 2018 Red Hat K.K. All Rights Reserved.53 1. Label data to clustering randomly 2. Calc each center of gravity 3. Calc distance between data and Center of gravity, relabel same as neighborhood 4. Loop 2-3 until Center of Gravity does not move
  • 54. k-means clustering Copyright © 2018 Red Hat K.K. All Rights Reserved.54 7 8 18 27 37.5 62 72 73 89 96 50.5 39.5 56.3 7 8 18 27 37.5 62 72 73 89 96 19.5 50.5 78.4 7 8 18 27 37.5 62 72 73 89 96 15.0 49.75 82.5 7 8 18 27 37.5 62 72 73 89 96
  • 55. Result Copyright © 2018 Red Hat K.K. All Rights Reserved.55 7 8 18 27 37.5 62 72 73 89 96 k-means clustering 7 8 18 27 37.5 62 72 73 89 96 Single Linkage Method Guess: Which is the same as human sense?
  • 57. Original Copyright © 2018 Red Hat K.K. All Rights Reserved.57 • 0 - 10,000value for x/y • The number of data is 500 • Random plot Let’s cluster this with use same rule as aforementioned.
  • 58. 3 Clusters Copyright © 2018 Red Hat K.K. All Rights Reserved.58
  • 59. 5 Clusters Copyright © 2018 Red Hat K.K. All Rights Reserved.59
  • 60. 10 Clusters Copyright © 2018 Red Hat K.K. All Rights Reserved.60
  • 61. 15 Clusters Copyright © 2018 Red Hat K.K. All Rights Reserved.61
  • 62. WRAP UP Master the RETE algorithm!! – The Heart of Rule Engine -
  • 63. Conclusion Copyright © 2018 Red Hat K.K. All Rights Reserved.63 • Not a simple if-then logic engine!! • Fire continuously by the reasoning mechanism, and re-evaluate. Simplify the logic for complex. • Need to write rule with the object combination in mind. • Enable to use Machine Learning!!
  • 64. Other Decision Manager Sessions Copyright © 2018 Red Hat K.K. All Rights Reserved.64
  • 65. Copyright © 2018 Red Hat K.K. All Rights Reserved.65 17:35 Ideathon Awards https://jp-redhat.com/forum-ideathon/