An expert system is a computer program that uses encoded knowledge and rules of reasoning to draw conclusions or solve problems. Since reasoning (as opposed to mechanical calculation) is a form of intelligent behavior, the field of expert systems (also called knowledge representation or knowledge engineering) is part of the broader field of AI.
History and Applications
By the end of the 1950s, early research in artificial intelligence was producing encouraging results. A number of tasks associated with human reasoning seemed to be well within the capabilities of computers. Early checkers and chess programs, while far from expert level, were steadily improving. Computer programs were proving geometry theorems. One of the most important AI pioneers, John McCarthy, declared that in principle all human knowledge could be encoded in such a way that programs could “understand” and reason from that knowledge to new conclusions. Two disparate approaches to achieving AI gradually emerged. In the early 1960s, many researchers tried to generalize the automated reasoning process so that a program could analyze and solve a wide variety of problems, much in the way a human being can. The resulting programs were indeed flexible, but it was difficult to work with anything other than simplified problems. (The SHRDLU program, for example, worked in an abstract world of blocks on a table.) The other approach was to try to provide exhaustively specified rules for dealing with a more narrowly defined realm of knowledge. The DENDRAL program, developed in the mid1960s by Edward A. Feigenbaum and associates, was designed to analyze the mass spectra of organic molecules according to theories employed by chemists (see Feigenbaum, Edward). It eventually became clear that the key to the success for such program lay more in the “capturing” and encoding of expert knowledge than in the development of more flexible methods of reasoning. The methods for encoding and working with the knowledge were refined and further developed into a variety of expert systems during the 1970s. In the 1980s, expert system technology became mature enough to leave the laboratories and play a role in the industry. Two early applications were Digital Equipment Corporation’s Xcon, which automatically configured minicomputers from component parts at a rate and accuracy far surpassing that of human engineers. Another, Diameter Advisor, used real-time data to predict the dip (tilt) of rock layers in a drill bore. (This information was crucial for determining the feasibility of an oil or gas well.) Today expert systems are a mature technology (and indeed, the most tangible success of AI research in practical applications). Expert systems are used in applications as diverse as engine troubleshooting, diagnosis of rare diseases, and investment analysis.
Anatomy of an Expert System
An expert system has two main components, a knowledge base, and an inference engine. The knowledge base consists of a set of assertions (facts) or of rules expressed as if . . . then statements that specify conditions that, if true, allow a particular inference to be drawn (see Prolog). The inference engine accepts new assertions or queries and tests them against the stored rules. Because satisfying one rule can create a condition that is to be tested by a subsequent rule, chains of reasoning can be built up. If the reasoning is from initial facts to an ultimate conclusion, it is called forward chaining. If a conclusion is given and the goal is to prove that conclusion, there can be backward chaining from the conclusion to the assertions (similar to axioms in mathematical proofs). While some rules are ironclad (for example, if a closed straight figure has three sides, it’s a triangle) in many real-world applications it is necessary to take a probabilistic approach. For example, the experience might suggest that if a customer buys reference books there is a 40 percent chance the customer will also buy a related CD-ROM product. Thus, rules can be given weights or confidence factors and as the rules are chained, a cumulative probability for the conclusion can be generated and some threshold probability for asserting a conclusion can be specified. (See also fuzzy logic and uncertainty). While rules-based inference systems are relatively easy to traverse automatically, they may lack the flexibility to codify the knowledge needed for complex activities (such as automatic analysis of news stories). An alternative approach involves the construction of a knowledge base consisting of frames. A frame (also called a schema) is an encoded description of the characteristics and relationships of entities. For example, an expert system designed to analyze court cases might have frames that describe the roles and interests of the defendant, defense counsel, prosecutor, and so on, and other frames describing the trial and sentencing process. Using this knowledge, the system might be able to predict what sort of plea agreement a particular defendant might reach with the state. While potentially more robust than a rules-based system, a frames-based system faces the twin challenges of building and maintaining a complex and open-ended knowledge base and of developing methods of reasoning more akin to generalized artificial intelligence.
Further Readings
- “Expert Systems.” American Association for Artificial Intelligence. Available online. URL: http://www.aaai.org/AITopics/html/ expert.html. Accessed July 31, 2007.
- Giarratano, Joseph C., and Gary D. Riley. Expert Systems: Principles and Programming. 4th ed. Boston: Thomson Course Technology, 2004.
- “Introduction to Expert Systems.” Available online. URL: http:// www.expertise2go.com/webesie/tutorials/ESIntro/. Accessed July 31, 2007.
- Jackson, Peter. Introduction to Expert Systems. 3rd ed. Reading, Mass.: Addison-Wesley, 1998.
0 Comments