A regelmotor är ett program som kommer att behandla en begäran enligt en databas med regler . I ett regelmotor systemet , väljer användaren en uppsättning regler och sedan lämnar in en " begäran " , som behandlas enligt reglerna . Resultaten av detta förfarande rapporteras sedan av systemet. Denna information bearbetningsmodell är användbar i en mängd olika tillämpningar . Prolog
Det bästa sättet att förstå hur regler motorer arbete är att lära sig Prolog datorspråk . Den Prolog språket består av en regler motor och en uppsättning konventioner om hur man skriver regler . Att lära sig hur Prolog fungerar lär dig hur en regelmotor fungerar - och alla de frågor som kommer upp med regler motorer som backa och hur man representera fakta och regler . Efter reglerna har skrivits , är Prolog ges en förklaring om att den försöker att hitta i databasen av fakta . Om det inte är ett faktum , men är slutsatsen av en regel , föregångarna till regeln blir de nya sök uttalanden . Rekursion och avsteg fortsätta tills antingen reglerna är uppfyllda eller inte kan uppfyllas , och därefter Prolog systemet uttalar ursprungliga uttalande sant , falskt eller oavgörbart .
Program Arkitektur
Om projektet utskott gör det , bör du skriva dina regler motor i Prolog . Om inte , kommer det förmodligen se en hel del som Prolog - alla regler motorer gör . I den första delen av projektet , skriver fakta . Denna del är som en databas . Nästa skriva regler - regler bör sammanföras med slutsats . Om " A och B innebär X , " och " C och D innebär X " också, då dessa två regler är om X och bör grupperas tillsammans . X definieras eller beskrivs av A och B samt i C och D. regler motorn kommer först titta i databasen för att se om ansökan matchar en post i databasen . Om så är fallet , svarar systemet " Ja. " Annars regelmotor tittar på slutsatserna till alla regler - om det inte finns någon match , svarar systemet " Nej " Om uttalandet stämmer X , två banor kommer att beaktas : A och B , och C och D. Om fullfölja A och B leder ingenstans , systemet " backtracks " och anser C och D. Använda Prolog gör detta enkelt eftersom regelmotor är inbyggd i språket .
System Testing
När fungerande regel motor ser på ett uttalande , försöker den " slipas " uttalandet . I logik innebär detta att hitta en länk ( genom regler ) från uttalandet till fakta . Om meddelandet ( eller dess negation ) är i de fakta , är du klar . Om inte , så kolla för att se om det uttalandet är slutsatsen i en regel . Om inte , då uttalandet inte kan avgöras . Om uttalandet stämmer ingåendet av en regel , byt målbeskrivning med föregångarna till den regeln . Detta gör en länk genom att gå bakåt genom en regel . Om sökningen misslyckas , kan det vara nödvändigt att backa och överväga en annan regel vars slutsats matchas uttalandet . Du borde testa systemet genom att ge den allt mer komplexa uttryck . Först prova ett uttalande som matchar ett faktum i databasen . Använd sedan ett uttalande som endast kräver en regel . Använd sedan ett uttalande som kräver backa , etc. Addera