Links

  • 1. Sogeti
  • 2. JBoss
  • 3. IBM
  • 4. Oracle
  • 5. SpringSource
  • 6. NL-JUG
  • 7. Java

Archives

Syndication  RSS 2.0

RSS 1.0
RSS 2.0

Bookmark this site

Add 'JCN Blog' site to delicious  Add 'JCN Blog' site to technorati  Add 'JCN Blog' site to digg  Add 'JCN Blog' site to dzone

Posted by jcn at 23:21 on Monday 12 December    Add 'Expert Systems' site to delicious  Add 'Expert Systems' site to technorati  Add 'Expert Systems' site to digg  Add 'Expert Systems' site to dzone

Marc Proctor belicht in zijn spreekbeurt Business Rules Engines theorie en praktijk van expert systems, ofwel rule-based systems. Ik zal enkele keypoints uit het theoretische deel van zijn verhaal kort aanstippen.

Gegeven een probleem en een mogelijke solution hiervoor, dan zoeken we een pad (chain genaamd) die deze met elkaar verbindt. Hiervoor zijn grofweg twee type technieken beschikbaar, te weten forward chaining en backward chaining, waarvan de eerstgenoemde de meest gangbare is. Forward chaining maakt gebruik van een of andere vorm van pattern-matching welke rules/rulesets enerzijds en facts anderzijds combineert en prioriteert.

Voor rule engines zijn er allerlei implementaties ontwikkeld, elk met hun eigen rule language (syntax / grammatica). Er worden verschillende stijlen gehanteerd, zoals LISP style, Java style, etc. Het blijkt dat typische rule-fact problemen herdefinieerd kunnen worden in klassieke SQL concepten als tables (facts) en constraints (rules). Vooral voor diegenen die thuis zijn in Oracle zou dit gesneden kost moeten zijn.
Het geheim van een rule engine blijkt te bestaan uit een agenda waaraan rules worden toegevoegd die vervolgens geevalueerd kunnen worden gegeven de status van bepaalde facts. Sleutelwoorden hierbij vormen priority queueing, composite-conflict-resolving en event-driven model. Het is in feite een vorm van combinatorial pattern matching (by comparing facts) welke zeer krachtig is. Vergeleken daarmee zal het oplossen van een LogiKwiz of een Sudoku puzzel wel een makkie zijn, dunkt me. Een en ander wordt nader toegelicht aan de hand van een voorbeeld van een ruleset die de bekende Fibonacci getallenreeks karakteriseert.

Voor de theoretici onder ons, de bekende algoritmes op basis waarvan een expert system gebouwd kan worden:
(i) rete
(ii) threat
(iii) leaps
(iv) linear/sequential
(v) backward chaining

Elk heeft zijn eigen voordelen en beperkingen. Deze algoritmes worden gekenmerkt door o.a. de mate van ingebouwde intelligentie en de bijbehorende toegankelijkheid (complexiteit). En bijvoorbeeld ook de mate waarin tussentijdse veranderingen in het systeem geaccepteerd worden. Vanuit praktisch perspectief spelen natuurlijk ook hardware requirements een rol.


© 2020 Java Competence Network. All Rights Reserved.