Expert systems--a primer
By Stewart S. Miller
Conventional programming languages such as C were created for procedural manipulation of data (i.e. numbers and arrays). Humans, on the other hand, often solve complex problems using very abstract, symbolic approaches that are not well-suited for implementation in conventional languages. Since abstract information can be modeled in those languages, a great deal of programming effort is necessary to transform the information to a format usable with procedural programming methods.
Results produced from artificial intelligence fostered the development of methods that permit the modeling of information at higher levels of abstraction. Those techniques are embedded in languages or tools that permit programs to be built that parallel human logic in their implementation. Those programs emulate human expertise in well-defined problem domains, hence the term expert systems.
Rule-based programming is one of the most commonly used techniques for developing expert systems. Rules are used to represent heuristics that determine a set of actions to be performed for a given situation. A rule is composed of an "if" portion and a "then" portion. The "if" portion of a rule is a series of patterns that specify the data that can make the rule be applicable.
Matching facts to patterns (pattern matching) provides a mechanism, called the "inference engine," that automatically matches facts against patterns and determines which rules are applicable.
The "if" portion of a rule is considered as the "whenever" portion of a rule, since pattern matching always occurs whenever changes are made to facts. The "then" portion of a rule is the set of actions to be executed when the rule is applicable. The actions of applicable rules are executed when the inference engine is told to begin execution.
The inference engine chooses a rule and then the actions of the selected rule are executed that can affect the list of applicable rules by adding or removing facts. The inference engine then chooses another rule and executes its actions. That process continues until no applicable rules remain.
Expert systems have advantages over human experts that, among others, include:
• increased availability,
• lower cost,
• greater reliability,
• increased confidence in decision-making ability,
• faster response,
• steadiness and completeness (in an emergency, expert systems can perform better and without emotional impediments),
• clear reasoning for a given answer, and
• more intelligent access to databases
Expert system requirements
Expert systems must perform at a very high level because they are often required to respond at a superior degree of competency than that of a human expert. The expert system must have adequate response time and execute its functions more quickly than a human expert.
Reliability is very important because an an expert system cannot be down when called upon. Its steps must be understandable and easily explained. Its reasoning must be known so it can be checked. Whenever a given decision is reached, the system must have the ability to list all of its reasons both for and against its conclusion. These conclusions must explain observed evidence as well as all of the consequences that can occur as a result of using that conclusion in practice.
The system must be flexible because it contains large amount of knowledge. It must have a very efficient method to add, modify and delete knowledge at any given time.
Stewart Miller has written more than eight information technology books about Internet security and ERP systems, mailto: email@example.com.