Rules-based Expert Systems overcome some of the limitations of decision trees in coding complex real-time AI systems.
At the core of an Expert System is a set of "IF condition THEN change some data item" rules. These preconditions are dependent on a set of data items, which may be the input variables to the set of rules, a set of internal variables, which can be set by the rules, and a set of output variables, which can also be set by the rules.
The preconditions for the rules can be based on the values any of the input, internal, and external variables, such as "IF sales_inquiry.state = NY THEN assigned_sales_person = Fred".
Initially some rules are triggered by the input data variables to the rules set. These rules may generate changes to intermediate and output variables, which trigger more rules. This process continues until there are no more rules to fire, when the output variables are used, by the program in which the expert system is embedded, to take some action, such as sending Fred an Email about his sales leads.
A big advantage of rules, when using Agile development, is that new rules can be added incrementally without modifying existing rules. Also, rules are very readable by non-programmers, provided suitable variable names are used, making it easy for operations, sales, and marketing staff to verify visually that each rule is correct.
The problem with expert systems is that not all decision making can be expressed in IF..THEN.. rules and often involves complex mathematical calculations. As a result, the rules have to be able to call subroutines written in an algorithmic language to do the calculations.
A big issue with Expert Systems is debugging. As soon as you have more than half a dozen rules or so it becomes very difficult to follow the flow of decision making, as this is not hard coded, and thus amenable to conventional software debugging methods. Also, if the rules call subroutines written in a procedural language, to do complex calculations, the debugging becomes even more complicated.
For this reason, Expert Systems have largely fallen out of favor.
One place where rules-based techniques remain in use is where the IF THEN ELSE rules are embedded in well debugged code but business analysts can change the parameters of the rules to tailor the behavior of the rules to the needs of the individual organization.
This is done in the BellHawk work-in-process and materials-tracking software, where the parameters can be set for rules that:
The parameters for these rules are set using Excel imports, thus avoiding the need for business analysts to do any software coding.
This same approach is used within MilramX itself where the Tau-Adaptor rules-based expert system is used by the MilramX Adaptors to automatically convert between Fetch, Store, and Lookup requests, issued by an MTO, and the complex structure of most operational databases.
Return to "Why Intelligent Agents?"