+ All Categories
Home > Documents > DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule...

DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule...

Date post: 17-Jul-2020
Category:
Upload: others
View: 7 times
Download: 0 times
Share this document with a friend
56
Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti DROOLS Davide Sottara dsotty AT gmail.com May 29, 2011
Transcript
Page 1: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

DROOLS

Davide Sottaradsotty AT gmail.com

May 29, 2011

Page 2: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

Outline

1 Introduzione - Drools

2 Richiami di teoria...

3 Drools - Linguaggio

4 Algoritmo RETECreazione della RETEA Runtime...

5 Riferimenti

Page 3: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

Outline

1 Introduzione - Drools

2 Richiami di teoria...

3 Drools - Linguaggio

4 Algoritmo RETECreazione della RETEA Runtime...

5 Riferimenti

Page 4: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

Drools - “Business Logic Integration Platform”

Expert - Rule Engine

Fusion - Event Processing

Flow - Workflow

Guvnor - Rule Repository

Planner - Constraint Solver

Page 5: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

Drools Expert

Open Source

Interamente realizzato in Java

Linguaggio Proprietario (standard previsti...)

Integrato con Eclipse

Page 6: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

Contatti

Comunita aperta di utenti e sviluppatori

http://www.jboss.org/drools

http://blog.athico.com/

irc.codehaus.org #drools

Page 7: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

Outline

1 Introduzione - Drools

2 Richiami di teoria...

3 Drools - Linguaggio

4 Algoritmo RETECreazione della RETEA Runtime...

5 Riferimenti

Page 8: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

Dal “Modus Ponens”

〈P(x),P(X )→C (Y )〉C (y)

Data l’implicazione → (vera)

la premessa (vera) consente di dedurre la conseguenza (vera)

Page 9: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

... alle “Production Rules”

Premise ⇒ Conclusion

Regola ⇔ Implicazione (vera)

Forward Chaining

Regole reattive

Theory

Facts Rules

Engine

1.Match

“Match” tra Fatti e Premesse2.Attivazione

Regole attive accodate in Agenda3.Esecuzione

Risoluzione dei Conflitti (FIFO, Salience...)

Esecuzione delle Conseguenze

Page 10: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

... alle “Production Rules”

Premise ⇒ Conclusion

Regola ⇔ Implicazione (vera)

Forward Chaining

Regole reattive

Theory

Facts Rules

Engine

1.Match

“Match” tra Fatti e Premesse2.Attivazione

Regole attive accodate in Agenda3.Esecuzione

Risoluzione dei Conflitti (FIFO, Salience...)

Esecuzione delle Conseguenze

Page 11: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

... alle “Production Rules”

Premise ⇒ Conclusion

Regola ⇔ Implicazione (vera)

Forward Chaining

Regole reattive

Theory

Facts Rules

Engine

1.Match

“Match” tra Fatti e Premesse2.Attivazione

Regole attive accodate in Agenda3.Esecuzione

Risoluzione dei Conflitti (FIFO, Salience...)

Esecuzione delle Conseguenze

Page 12: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

... alle “Production Rules”

Premise ⇒ Conclusion

Regola ⇔ Implicazione (vera)

Forward Chaining

Regole reattive

Theory

Facts Rules

Engine

1.Match

“Match” tra Fatti e Premesse

2.Attivazione

Regole attive accodate in Agenda3.Esecuzione

Risoluzione dei Conflitti (FIFO, Salience...)

Esecuzione delle Conseguenze

Page 13: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

... alle “Production Rules”

Premise ⇒ Conclusion

Regola ⇔ Implicazione (vera)

Forward Chaining

Regole reattive

Theory

Facts Rules

Engine

1.Match

“Match” tra Fatti e Premesse

2.Attivazione

Regole attive accodate in Agenda3.Esecuzione

Risoluzione dei Conflitti (FIFO, Salience...)

Esecuzione delle Conseguenze

Page 14: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

... alle “Production Rules”

Premise ⇒ Conclusion

Regola ⇔ Implicazione (vera)

Forward Chaining

Regole reattive

Theory

Facts Rules

Engine

1.Match

“Match” tra Fatti e Premesse

2.Attivazione

Regole attive accodate in Agenda

3.Esecuzione

Risoluzione dei Conflitti (FIFO, Salience...)

Esecuzione delle Conseguenze

Page 15: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

... alle “Production Rules”

Premise ⇒ Conclusion

Regola ⇔ Implicazione (vera)

Forward Chaining

Regole reattive

Theory

Facts Rules

Engine

1.Match

“Match” tra Fatti e Premesse

2.Attivazione

Regole attive accodate in Agenda

3.Esecuzione

Risoluzione dei Conflitti (FIFO, Salience...)

Esecuzione delle Conseguenze

Page 16: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

... alle “Production Rules”

Premise ⇒ Conclusion

Regola ⇔ Implicazione (vera)

Forward Chaining

Regole reattive

Theory

Facts Rules

Engine

1.Match

“Match” tra Fatti e Premesse

2.Attivazione

Regole attive accodate in Agenda

3.Esecuzione

Risoluzione dei Conflitti (FIFO, Salience...)

Esecuzione delle Conseguenze

Page 17: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

... alle “Production Rules”

Premise ⇒ Conclusion

Regola ⇔ Implicazione (vera)

Forward Chaining

Regole reattive

Theory

Facts Rules

Engine

1.Match

“Match” tra Fatti e Premesse

2.Attivazione

Regole attive accodate in Agenda

3.Esecuzione

Risoluzione dei Conflitti (FIFO, Salience...)

Esecuzione delle Conseguenze

Page 18: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

... alle “Production Rules”

Premise ⇒ Conclusion

Regola ⇔ Implicazione (vera)

Forward Chaining

Regole reattive

Theory

Facts Rules

Engine

1.Match

“Match” tra Fatti e Premesse

2.Attivazione

Regole attive accodate in Agenda

3.Esecuzione

Risoluzione dei Conflitti (FIFO, Salience...)

Esecuzione delle Conseguenze

Page 19: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

Outline

1 Introduzione - Drools

2 Richiami di teoria...

3 Drools - Linguaggio

4 Algoritmo RETECreazione della RETEA Runtime...

5 Riferimenti

Page 20: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

Regole

Struttura delle regole:

r u l e "ID_Regola"

// a t t r i b u t iwhen

// LHS − Premessathen

// RHS − C o n c l u s i o n eend

Page 21: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

LHS - Pattern / 1

Pattern

Elemento atomico per la scrittura di regole

Filtra gli oggetti inseriti nella WM

Definisce un insieme di vincoli

Page 22: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

LHS - Pattern / 2

Person( )

Pattern di base - semplice vincolo di tipo

x instanceof Person ?

Page 23: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

LHS - Pattern / 2

Person( name == ”john” , age > 18 )

Field constraints

Operatori classici : ==, <, >=, ...

in and : ’,’ oppure ’&&’in or : ’||’

x.getName().equals("john") && x.getAge() > 18 ?

Page 24: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

LHS - Pattern / 2

$p: Person( $n : name == ”john” , age > 18 , $add : address )

Variabili

Assegnamento mediante ’:’

Page 25: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

LHS - Join

r u l e "Join"

when$p : Person ( $n : name , age >= 30 )Course ( $s : s u b j e c t == "ai" , t e a c h e r == $p )

then. . .

end

Pattern multipli nella premessa

Generano tutte le combinazioni usando oggetti che fannomatch

Variabili per definire constraint tra pattern diversi

rightarrow Join nei DB relazionali

Page 26: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

RHS - Conseguenze

Conseguenze

Logiche...

Insert : genera nuovi fatti nella WMRetract : rimuove fatti esistentiModify : aggiorna fatti esistenti

... e non

Qualsiasi “side effect”Codice JAVA libero

Page 27: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

Outline

1 Introduzione - Drools

2 Richiami di teoria...

3 Drools - Linguaggio

4 Algoritmo RETECreazione della RETEA Runtime...

5 Riferimenti

Page 28: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

RETE

Efficiente per grandi quantita di regole e fatti

Usato nella maggior parte dei Production Rule Systemcommerciali e non

Drools, CLIPS, Jess, ILOG, ...

Le regole vengono compilate in una “data-flow network”

I fatti sono memorizzati in una memoria distribuita

I nodi della rete vengono condivisi quando possibile

Page 29: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

Creazione della RETE

Outline

1 Introduzione - Drools

2 Richiami di teoria...

3 Drools - Linguaggio

4 Algoritmo RETECreazione della RETEA Runtime...

5 Riferimenti

Page 30: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

Creazione della RETE

RETE al lavoro

Regola “Professori e Corsi di AI”

$p : Professor( $n : name, age >= 30 )Course( $s : subject == “ai”, teacher == $n )

$p

Prof

$n

nameage > 30

αCourse

$s

subj== AI

α

teacher== $p

β

Page 31: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

Creazione della RETE

RETE al lavoro

Regola “Professori e Corsi di AI”

$p : Professor( $n : name, age >= 30 )Course( $s : subject == “ai”, teacher == $n )

$p

Prof

for each Pattern j : new type node

$n

nameage > 30

αCourse

$s

subj== AI

α

teacher== $p

β

Page 32: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

Creazione della RETE

RETE al lavoro

Regola “Professori e Corsi di AI”

$p : Professor( $n : name, age >= 30 )Course( $s : subject == “ai”, teacher == $n )

$p

Prof

$n

name

Pj : for each Literal Constraint k : new alpha node αj ,k

age > 30α

Course

$s

subj== AI

α

teacher== $p

β

Page 33: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

Creazione della RETE

RETE al lavoro

Regola “Professori e Corsi di AI”

$p : Professor( $n : name, age >= 30 )Course( $s : subject == “ai”, teacher == $n )

$p

Prof

$n

name

Pj : for each Literal Constraint k : new alpha node αj ,k

age > 30

αCourse

$s

subj== AI

α

teacher== $p

β

Page 34: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

Creazione della RETE

RETE al lavoro

Regola “Professori e Corsi di AI”

$p : Professor( $n : name, age >= 30 )Course( $s : subject == “ai”, teacher == $n )

$p

Prof

$n

nameage > 30

α

Pj : new alpha memory αj

Course

$s

subj== AI

α

teacher== $p

β

Page 35: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

Creazione della RETE

RETE al lavoro

Regola “Professori e Corsi di AI”

$p : Professor( $n : name, age >= 30 )Course( $s : subject == “ai”, teacher == $n )

$p

Prof

$n

nameage > 30

αCourse

$s

subj== AI

α

teacher== $p

β

Page 36: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

Creazione della RETE

RETE al lavoro

Regola “Professori e Corsi di AI”

$p : Professor( $n : name, age >= 30 )Course( $s : subject == “ai”, teacher == $n )

$p

Prof

$n

nameage > 30

αCourse

$s

subj== AI

α

teacher== $p

β

Page 37: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

Creazione della RETE

RETE al lavoro

Regola “Professori e Corsi di AI”

$p : Professor( $n : name, age >= 30 )Course( $s : subject == “ai”, teacher == $n )

$p

Prof

$n

nameage > 30

αCourse

$s

subj== AI

(Skip Variable Constraints)

α

teacher== $p

β

Page 38: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

Creazione della RETE

RETE al lavoro

Regola “Professori e Corsi di AI”

$p : Professor( $n : name, age >= 30 )Course( $s : subject == “ai”, teacher == $n )

$p

Prof

$n

nameage > 30

αCourse

$s

subj== AI

α

teacher== $p

β

Page 39: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

Creazione della RETE

RETE al lavoro

Regola “Professori e Corsi di AI”

$p : Professor( $n : name, age >= 30 )Course( $s : subject == “ai”, teacher == $n )

$p

Prof

$n

nameage > 30

αCourse

$s

subj== AI

α

for each Pattern j (except first): new join node

teacher== $p

β

Page 40: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

Creazione della RETE

RETE al lavoro

Regola “Professori e Corsi di AI”

$p : Professor( $n : name, age >= 30 )Course( $s : subject == “ai”, teacher == $n )

$p

Prof

$n

nameage > 30

αCourse

$s

subj== AI

α

teacher== $p

Pj : for each Variable Constraint k : new beta node βj ,k

β

Page 41: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

Creazione della RETE

RETE al lavoro

Regola “Professori e Corsi di AI”

$p : Professor( $n : name, age >= 30 )Course( $s : subject == “ai”, teacher == $n )

$p

Prof

$n

nameage > 30

αCourse

$s

subj== AI

α

teacher== $p

β

Pj : new beta memory βj

Page 42: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

Creazione della RETE

RETE al lavoro

Regola “Professori e Corsi di AI”

$p : Professor( $n : name, age >= 30 )Course( $s : subject == “ai”, teacher == $n )

$p

Prof

$n

nameage > 30

αCourse

$s

subj== AI

α

teacher== $p

β

New terminal node

Page 43: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

Creazione della RETE

RETE al lavoro

Regola “Professori e Corsi di AI”

$p : Professor( $n : name, age >= 30 )Course( $s : subject == “ai”, teacher == $n )

$p

Prof

$n

nameage > 30

αCourse

$s

subj== AI

α

teacher== $p

β

Page 44: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

A Runtime...

Outline

1 Introduzione - Drools

2 Richiami di teoria...

3 Drools - Linguaggio

4 Algoritmo RETECreazione della RETEA Runtime...

5 Riferimenti

Page 45: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

A Runtime...

Nodi:

Alpha Network

I nodi “Type” selezionano i fatti (vincolo sulla classe)

I nodi “Alpha” filtrano i fatti (vincolo sui campi)

I fatti non scartati vengono salvati nelle “alpha-memories”

I fatti nelle “alpha-memories” fanno match con un pattern

Beta Network

I nodi “Join” collegano memorie alpha e beta

I nodi “Join” creano n-tuple a partire da fatti e (n-1)-tuple

I nodi “Beta” filtrano le tuple

Le tuple non scartate vengono salvate nelle “beta-memories”

Le tuple nelle “beta-memories” fanno match con unasequenza (parziale) di pattern

Page 46: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

A Runtime...

A runtime...

Regola “Professori e Corsi di AI”

$p : Professor( $n : name, age >= 30 )Course( $s : subject == “ai”, teacher == $n )

P

Prof

N

nameage > 30

αCourse

S

subj== AI

α

teacher== P

β

student(john,18)

Page 47: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

A Runtime...

A runtime...

Regola “Professori e Corsi di AI”

$p : Professor( $n : name, age >= 30 )Course( $s : subject == “ai”, teacher == $n )

P

Prof

N

nameage > 30

αCourse

S

subj== AI

α

teacher== P

β

prof(mark,25)

Page 48: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

A Runtime...

A runtime...

Regola “Professori e Corsi di AI”

$p : Professor( $n : name, age >= 30 )Course( $s : subject == “ai”, teacher == $n )

P

Prof

N

nameage > 30

αCourse

S

subj== AI

α

teacher== P

β

course(adam,ai)

Page 49: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

A Runtime...

A runtime...

Regola “Professori e Corsi di AI”

$p : Professor( $n : name, age >= 30 )Course( $s : subject == “ai”, teacher == $n )

P

Prof

N

nameage > 30

αCourse

S

subj== AI

α

teacher== P

β

course(adam,ai)

course(adam,math)

Page 50: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

A Runtime...

A runtime...

Regola “Professori e Corsi di AI”

$p : Professor( $n : name, age >= 30 )Course( $s : subject == “ai”, teacher == $n )

P

Prof

N

nameage > 30

αCourse

S

subj== AI

α

teacher== P

β

course(adam,ai)

course(paul,ai)

Page 51: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

A Runtime...

A runtime...

Regola “Professori e Corsi di AI”

$p : Professor( $n : name, age >= 30 )Course( $s : subject == “ai”, teacher == $n )

P

Prof

N

nameage > 30

αCourse

S

subj== AI

α

teacher== P

β

course(adam,ai)

course(paul,ai)

prof(paul,30)

Page 52: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

A Runtime...

A runtime...

Regola “Professori e Corsi di AI”

$p : Professor( $n : name, age >= 30 )Course( $s : subject == “ai”, teacher == $n )

P

Prof

N

nameage > 30

αCourse

S

subj== AI

α

teacher== P

β

course(adam,ai)

course(paul,ai)

prof(paul,30)

{prof(paul,30),course(adam,ai)}

Page 53: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

A Runtime...

A runtime...

Regola “Professori e Corsi di AI”

$p : Professor( $n : name, age >= 30 )Course( $s : subject == “ai”, teacher == $n )

P

Prof

N

nameage > 30

αCourse

S

subj== AI

α

teacher== P

β

course(adam,ai)

course(paul,ai)

prof(paul,30)

{prof(paul,30),course(paul,ai)}

Page 54: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

A Runtime...

A runtime...

Regola “Professori e Corsi di AI”

$p : Professor( $n : name, age >= 30 )Course( $s : subject == “ai”, teacher == $n )

P

Prof

N

nameage > 30

αCourse

S

subj== AI

α

teacher== P

β

course(adam,ai)

course(paul,ai)

prof(paul,30)

{prof(paul,30),course(paul,ai)}

active(rule,{prof(paul,30),course(paul,ai)})

Page 55: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

Outline

1 Introduzione - Drools

2 Richiami di teoria...

3 Drools - Linguaggio

4 Algoritmo RETECreazione della RETEA Runtime...

5 Riferimenti

Page 56: DROOLS - unibo.itExpert- Rule Engine Fusion - Event Processing Flow - Work ow Guvnor - Rule Repository Planner - Constraint Solver Introduzione - DroolsRichiami di teoria...Drools

Introduzione - Drools Richiami di teoria... Drools - Linguaggio Algoritmo RETE Riferimenti

Link utili

Charles Forgy, “Rete: A Fast Algorithm for the ManyPattern/Many Object Pattern Match Problem”, ArtificialIntelligence, 19, pp 17-37, 1982

R.B. Doorenbos, “Production Matching for Large LearningSystems”, www.zilonis.org/CMU-CS-95-113.pdf

http://en.wikipedia.org/wiki/Rete algorithm

Sito : http://www.jboss.org/drools

Blog : http://blog.athico.com/

IRC : irc.codehaus.org #drools


Recommended