Expert Systems/The Agenda

The Agenda
The agenda is a queue that contains all the rules whose conditions have been met and are capable of firing. The inference engine will examine the rules on the agenda, and determine which rules will be acted upon.

Conflict
When there are 2 or more rules on the agenda, that is when there are several rules whose conditions have been met and are prepared to be fired. In these cases, the inference engine needs to decide which rules to fire, and which order to follow them in.

Rule Order
There are many different ways that the inference engine can decide which rules to fire on the agenda, and in which order.

First In, First Out
First in, first out (FIFO) means that rules are added to the agenda in the order which they appear in the knowledge base, and the inference engine fires rules in the same order in which they appear in the agenda.

Precedence
In a precedence system, each rule is given a precedence value, and rules with the higher precedence are fired. The problem with these systems, is that there is a temptation for the programmer to assign precedence values in such a way as to duplicate a procedural program.

Manually scripting the exact order in which rules fire is generally a bad idea. Expert systems are far more robust when the knowledge engineer, instead, collects rules which are true no matter which order they are fired.

Number of Antecedents
Rules which have more antecedents, and therefore have more requirements, are likely to be more accurate, and more likely to lead to a goal quickly. This is the kind of logic that leads to systems which fire rules based on the number of antecedents.