Drools handledning: Regelmotor ArchiStruktur och diagram

โšก Smart sammanfattning

Drools รคr ett system fรถr hantering av affรคrsregler med รถppen kรคllkod skrivet i Java som skiljer affรคrslogik frรฅn applikationskod. Denna resurs fรถrklarar regler, Rete-algoritmen, Drools arkitektur och komponenter, Eclipse plugin-installation och ett exempel pรฅ en Hello World-regel.

  • โš™๏ธ Kรคrndefinition: Drools รคr en Java-baserat BRMS som kรถr affรคrsregler med hjรคlp av Rete-mรถnstermatchningsalgoritmen.
  • ๐Ÿ“œ Regelstruktur: En regel fรถljer ett nรคr-dรฅ-format och utlรถser endast รฅtgรคrder nรคr dess villkor matchar fakta i arbetsminnet.
  • ๐Ÿ—๏ธ Architecture: Regler laddas in i en regelbas, fakta matas in i arbetsminnet och motorn matchar och skickar dem genom en agenda.
  • ๐Ÿ”Œ Eclipse Setup: Drools-pluginet installeras i Eclipse via jBPM-distributions-ZIP:en och dialogrutan Installera ny programvara.
  • ๐Ÿ”„ Kedjelรคgen: Drools stรถder framรฅtkedjad kedja frรฅn fakta till slutsatser och bakรฅtkedjad kedja frรฅn ett mรฅl tillbaka till fakta.

Drools handledning

Vad รคr Drools?

dreglar รคr en รถppen kรคllkod fรถr Business Rules Management Software (BRMS) skriven i Java som ger anvรคndarna en mรคngd olika funktioner som Business Rule Engine, webbredigering, Rules Management Application och runtime-stรถd fรถr beslutsmodeller och notationsmodeller. Den anvรคnder ett avancerat implementeringssystem fรถr rete mรถnstermatchningsalgoritm.

Drools slรคpptes under Apache License 2.0 och den รคr kompatibel med alla JVM och รคven tillgรคnglig i Maven Central Repository.

Drools-verktyget hjรคlper dig att separera och resonera รถver logik och data som finns i affรคrsprocesser. Den stรถder framรฅt och bakรฅt kedjade slutledningsbaserade dreglande reglermotor.

Dreglar รคr uppdelade i tvรฅ delar:

  • Fรถrfattarskap โ€“ Det handlar om utveckling av regelfiler.
  • Runtime โ€“ Det handlar om att skapa arbetsminne och hantera aktiveringen.

Vad รคr regel?

Regler รคr delar av kunskap som ofta uttrycks som "Nรคr specifika fรถrhรฅllanden uppstรฅr, gรถr dรฅ nรฅgra uppgifter."

Den mest avgรถrande delen av en regel รคr den nรคr del. En gรฅng nรคr del รคr nรถjd, sedan delen utlรถses.

Syntax:

When
<Condition is true>
Then
<Take desired Action>

Mรถnstermatchningsmetod

Mรถnstermatchningsmetoden hjรคlper dig att jรคmfรถra nya eller gamla fakta med produktionsreglerna. Den kompletteras av Inference Engine.

Algorithms som anvรคnds fรถr mรถnstermatchning รคr:

  • Rete Algorithm
  • Leaps Algoritm
  • Linjรคr algoritm
  • Behandlingsalgoritm

Den algoritm som oftast anvรคnds av Drools รคr Rete Algorithm.

Rete Algorithm

Rete-algoritmen รคr en anvรคndbar mรถnstermatchningsalgoritm som lรฅter dig implementera produktionsregelsystem. Det hjรคlper dig att offra minne fรถr รถkad hastighet. Det minskar eller eliminerar ocksรฅ specifika typer av redundans med hjรคlp av noddelning. Den lagrar partiella matchningar samtidigt som den utfรถr kopplingar mellan olika faktatyper.

Dreglar hรคrskarmotor

Dreglar hรคrskarmotor รคr ett regelbaserat tillvรคgagรฅngssรคtt fรถr att implementera ett expertsystem i programvaran Drools. Regelmotorn tillhandahรฅller expertsystem som รคr kunskapsbaserade system som hjรคlper dig att fatta beslut som vad du ska gรถra och hur du ska gรถra det. Den samlar kunskap till en kunskapsbas som kan anvรคndas fรถr resonemang.

Drools Tools Suite

Nu i denna Drools Rule Engine-handledning kommer vi att lรคra oss om Drools Tool Suite. Hรคr รคr fem typer av verktyg som kommer som en del av Drools-sviten:

  • Dreglar Guvnor: Det รคr ett centraliserat arkiv fรถr Drools KnowledgeBase.
  • Dreglar Flรถde: Det erbjuder arbetsflรถde och affรคrsprocesser.
  • Dreglar Fusion: Verktyg som anvรคnds fรถr komplex hรคndelsebearbetning
  • Dreglar Expert eller Rules Engine: Ett anvรคndbart verktyg fรถr att utfรถra resonemang.
  • Dreglar Planner: Till erbjuder automatiserad planering, som inkluderar NP-hรฅrda planeringsproblem.

Viktiga komponenter i Drools

Lรฅt oss nu i denna Drools-handledning lรคra oss om viktiga komponenter i Drools.

Hรคr รคr viktiga termer som anvรคnds i Drools:

  • Fakta โ€“ Fakta representerar de uppgifter som fungerar som indata fรถr regler
  • Arbetsminnet โ€“ Fรถrvaring med fakta, dรคr de anvรคnds fรถr mรถnstermatchning. Den kan modifieras, infogas och ta bort.
  • Kunskapssession โ€“ Den hรคr komponenten innehรฅller alla resurser som krรคvs fรถr avfyrningsregel. Hรคr infogas all fakta i den enstaka sessionen och sedan avfyras matchningsregler.
  • Kunskapsbas โ€“ Det representerar kunskapen i Drools ekosystem. Den lagrar bildandet av resurserna dรคr reglerna finns.
  • Modulerna โ€“ Det hรคr รคr en modul som lagrar flera kunskapsbaser som kan hรฅlla olika sessioner

Architecture of Drools

Dreglar hรคrskarmotor Architecture
Dreglar hรคrskarmotor Architecture

Hรคr รคr arbetssystemet fรถr Drools arkitektur:

Steg 1) Reglerna laddas in i Rule Base, som รคr tillgรคngliga hela tiden.

Steg 2) Fakta registreras i arbetsminnet dรคr de sedan kan modifieras eller omformas.tracted.

Steg 3) Processen att matcha nya eller befintliga fakta mot produktionsregler kallas mรถnstermatchning, som utfรถrs av regelmotorn.

Steg 4) Dagordningen lรฅter dig hantera exekveringsordningen fรถr de motstridiga reglerna med hjรคlp av en konfliktlรถsningsstrategi.

Funktioner hos Dregla

Hรคr รคr viktiga egenskaper hos Drool:

  • Hjรคlper dig att skilja applikation frรฅn dynamisk logik
  • Deklarativ programmering
  • Centralisering av kunskap
  • Hastighet och skalbarhet
  • Separera logik frรฅn applikation
  • Fรถrstรฅliga regler

Hur man lรคgger till Drools plugins i Eclipse

Nu i denna Drools-handledning, lรฅt oss lรคra oss hur man lรคgger till Drools-plugin Eclipse.

Steg 1) Klicka pรฅ "Distribution ZIP" fรถr jBPM-integration
Gรฅ till https://www.drools.org/download/download.html och klicka pรฅ โ€œDistribution ZIPโ€ fรถr jBPM-integration. Nรคr nedladdningen รคr klar, t.ex.tracรถver den till din hรฅrddisk.

Lรคgg till Drools Plugins Eclipse

Steg 2) Installera ny programvara
In Eclipse, vรคlj Installera ny programvara.

Lรคgg till Drools Plugins Eclipse

Steg 3) Klicka pรฅ knappen Lรคgg till
Klicka pรฅ knappen Lรคgg till fรถr att lรคgga till en programvara.

Lรคgg till Drools Plugins Eclipse

Steg 4) Blรคddra i mapp
Pรฅ nรคsta skรคrm, klicka pรฅ Lokal och vรคlj mappen "org.drools.updatesite/" och klicka sedan pรฅ Ok.

Lรคgg till Drools Plugins Eclipse

Steg 5) Klicka pรฅ knappen Nรคsta
Klicka pรฅ knappen Nรคsta pรฅ installationssidan.

Lรคgg till Drools Plugins Eclipse

Steg 6) Acceptera licensavtalet
Acceptera licensavtalet och klicka pรฅ Nรคsta.

Lรคgg till Drools Plugins Eclipse

Steg 7) omstart Eclipse
Programvaran kommer att laddas ner och du blir ombedd att starta om Eclipse.

Steg 8) Installationsprocessen รคr klar
In Windows > Instรคllningar-menyn kommer du att se alternativet Drools som indikerar att det รคr installerat.

Lรคgg till Drools Plugins Eclipse

Dreglar Program Hello World Exempel

Nedan รคr ett Drols-exempel fรถr Hello World-programmet:

package com.sample
import com.sample.DroolsTest.Message;
rule "Hello World"
 when
	m : Message( status ** Message.Hello, myMessage : message )
  then
System.out.println( myMessage );
m.setMessage( "Goodbye cruel world" );
m.setStatus( Message.GOODBYE );
update( m );
end
 rule "GoodBye"

when
	Message( status ** Message.GOODBYE, myMessage : message )
then
System.out.println( myMessage );
end

Vad รคr Backward vs Forward Chaining?

En framรฅtkedjemotor kontrollerar fakta och drar en specifik slutsats.

Lรฅt oss รถvervรคga ett scenario av det medicinska diagnossystemet. Om patientens symtom sรคtts in som fakta i arbetsminnet, dรฅ รคr det lรคtt att diagnostisera honom med en รฅkomma.

Bakรฅt kontra framรฅtkedja

Framkedjemotor

En bakรฅtkedjemotor har det satta mรฅlet, och motorn fรถrsรถker tillfredsstรคlla det.

Tรคnk pรฅ samma scenario fรถr medicinsk diagnos. Antag att en epidemi av en viss sjukdom. Denna AI skulle kunna anta att en given individ hade sjukdomen och fรถrsรถka avgรถra om dess diagnos รคr korrekt baserat pรฅ tillgรคnglig information.

Bakรฅt kontra framรฅtkedja

Bakรฅtkedjande motor

Varfรถr anvรคnda Drools Rule Engine?

Hรคr รคr de frรคmsta anledningarna till att anvรคnda Drools regelmotor:

  • Reglerna รคr lรคtta att fรถrstรฅ fรถr utvecklare och affรคrsanalytiker.
  • Reglerna รคr lรคtta att underhรฅlla.
  • Rule Engine anvรคnder en Rete-algoritm som sรคger att motorns prestanda aldrig beror pรฅ antalet regler.
  • Regler kan รคndras och distribueras utan att ta bort applikationen.
  • Externaliserar affรคrslogiken frรฅn den jรคmfรถrelsevis statiska kodbasen.
  • Regler รคr utvecklade i mindre komplicerade format sรฅ att affรคrsanalytikern enkelt kan lรคsa och verifiera en grupp regler.
  • Regler lรฅter dig skapa ett kunskapslager som รคr kรถrbart i form.
  • Verktyg som Eclipse hjรคlpa dig att hantera regler, fรฅ ett omedelbart svar, autentisering och innehรฅllsstรถd.

Nackdelar med Rules Engine

Hรคr รคr nackdelarna/nackdelarna med att anvรคnda regelmotor:

  • En hel del inlรคrningsinsatser krรคver av utvecklare fรถr att kunna denna programmeringsmetod
  • Regelmotor รคr inte en sรคker metod fรถr att felsรถka problem.
  • Behรถver fรถrstรฅ hur regelmotorn fungerar fรถr att fรถrbruka mer minne
  • Det finns en bred uppsรคttning regler fรถr en komplex fรถrgrening.

Reglerna kan รคndras med tiden och kommer att trรคda i kraft med kodรคndringar

Vanliga frรฅgor

Ja. Drools slรคpps under Apache-licensen 2.0 och รคr helt gratis och รถppen kรคllkod. Det kรถrs pรฅ alla JVM-maskiner och รคr tillgรคngligt via Maven Central Repository fรถr enkel projektintegration.

Drools-regler รคr skrivna i DRL (Drools Rule Language), en deklarativ syntax baserad pรฅ nรคr-sedan-strukturen. Regler kan ocksรฅ skapas med hjรคlp av beslutstabeller, DMN-modeller eller domรคnspecifika sprรฅk fรถr affรคrsanvรคndare.

En regelmotor externaliserar logik till underhรฅllbara regler som รคndras utan att applikationen behรถver omdistribueras. Hรฅrdkodad if/else-logik รคr spridd รถver kodbasen, svรฅrare att uppdatera och skalas inte bra nรคr antalet villkor รถkar.

Drools implementerar expertsystem, en klassisk gren av AI, genom att koda mรคnsklig kunskap som regler. Motorn resonerar kring fakta fรถr att dra slutsatser, vilket stรถder framรฅt- och bakรฅtkedjning liknande symboliska AI-beslutssystem.

Ja. AI-assistenter kan utarbeta DRL-regler utifrรฅn krav i enkelt sprรฅk, upptรคcka motstridiga eller redundanta regler och fรถreslรฅ optimeringar. Teamen validerar fortfarande de genererade reglerna fรถr att sรคkerstรคlla korrekt affรคrslogik och tillfรถrlitlig exekvering.

Sammanfatta detta inlรคgg med: