Een rules engine is software die een verzoek zal verwerken volgens een databank van regels . Een op regels motorsysteem , de gebruiker regels selecteert en voert daarna een " verzoek " die verwerkt volgens de regels . De resultaten van deze procedure worden dan gerapporteerd door het systeem . Deze informatieverwerkingsmodel is nuttig in een verscheidenheid van toepassingen . Prolog De beste manier om te begrijpen hoe de regels motoren werk is om de computertaal Prolog leren . De Prolog taal bestaat uit een rules engine en een set van conventies over hoe de regels schrijven . Leren hoe Prolog werkt leert je hoe je een rules engine werkt - en al de problemen die komen met regels zoekmachines zoals backtracking en hoe feiten en regels vertegenwoordigen . Nadat de regels zijn geschreven , wordt Prolog gegeven een verklaring dat het probeert te vinden in de database van feiten . Als het niet een feit , maar is de conclusie van een regel , de antecedenten van de regel worden de nieuwe search verklaringen . Recursie en backtracking verder totdat ofwel de regels wordt voldaan of niet kan worden voldaan , en vervolgens het Prolog -systeem spreekt de oorspronkelijke uitspraak waar , onwaar of onbeslisbaar . Programma Architectuur Als het project commissie het toelaat , moet u uw rules engine schrijven in Prolog . Zo niet, dan zal het waarschijnlijk lijken erg op Prolog - alle regels motoren doen . In het eerste deel van het project , schrijf de feiten . Dit deel is als een database. Vervolgens schrijven de regels - de regels moeten samen door conclusie worden gegroepeerd . Als " A en B impliceert X , " en " C en D impliceert X " als goed, dan zijn deze twee regels zijn over X en moeten worden gegroepeerd . X wordt gedefinieerd of beschreven door A en B en door C en D. De regels motor eerst kijken in de database om te zien of het verzoek overeenkomt met een vermelding in de database. Als dat zo is , het systeem reageert : "Ja. " Anders wordt de rules engine kijkt naar de conclusies aan alle regels - als er geen wedstrijd , het systeem reageert : "Nee " Indien de verklaring overeenkomt met X , twee wegen zal worden beschouwd : A en B , en C en D. Als het nastreven van A en B nergens toe leidt , het systeem " Backtracks " en beschouwt C en D. Met behulp van Prolog maakt dit eenvoudig , omdat de regels motor is ingebouwd in de taal . Systeem Testen Wanneer het functioneren rule engine kijkt naar een verklaring , het probeert om " de grond uit " de verklaring . In logica , betekent dit dat het vinden van een link ( via de regels ) uit de verklaring van de feiten . Indien de verklaring ( of zijn ontkenning ) is in de feiten , bent u klaar. Zo niet , dan controleren om te zien of de opgave is de conclusie van een regel. Zo niet , dan kan deze aanduiding niet vastgesteld. Indien de verklaring niet overeen met de conclusie van de regel , vervang het doel verklaring met de antecedenten van de regel . Dit is het maken van een verbinding door achteruit gaan door een regel . Indien deze zoekopdracht mislukt , kan het nodig om terug te krabbelen en te overwegen een andere regel wiens conclusie overeen met de verklaring . U dient het systeem te testen door het te geven geleidelijk meer complexe verklaringen . Eerst proberen een verklaring die overeenkomt met een feit in de database . Maak dan gebruik van een verklaring die vereist slechts een regel . Gebruik dan een verklaring dat backtracking vereist , enz.
|