Expert systems


Expert systems

Methods and techniques for constructing human-machine systems with specialized problem-solving expertise. The pursuit of this area of artificial intelligence research has emphasized the knowledge that underlies human expertise and has simultaneously decreased the apparent significance of domain-independent problem-solving theory. In fact, new principles, tools, and techniques have emerged that form the basis of knowledge engineering.

Expertise consists of knowledge about a particular domain, understanding of domain problems, and skill at solving some of these problems. Knowledge in any specialty is of two types, public and private. Public knowledge includes the published definitions, facts, and theories which are contained in textbooks and references in the domain of study. But expertise usually requires more than just public knowledge. Human experts generally possess private knowledge which has not found its way into the published literature. This private knowledge consists largely of rules of thumb or heuristics. Heuristics enable the human expert to make educated guesses when necessary, to recognize promising approaches to problems, and to deal effectively with erroneous or incomplete data. The elucidation and reproduction of such knowledge are the central problems of expert systems.

Researchers in this field suggest several reasons for their emphasis on knowledge-based methods rather than formal representations and associated analytic methods. First, most of the difficult and interesting problems do not have tractable algorithmic solutions. This is reflected in the fact that many important tasks, such as planning, legal reasoning, medical diagnosis, geological exploration, and military situation analysis, originate in complex social or physical contexts, and generally resist precise description and rigorous analysis.

The second reason for emphasizing knowledge is pragmatic: human experts achieve outstanding performance because they are knowledgeable. If computer programs embody and use this knowledge, they too attain high levels of performance. This has been proved repeatedly in the short history of expert systems. Systems have attained expert levels in several tasks: mineral prospecting, computer configuration, chemical structure elucidation, symbolic mathematics, chess, medical diagnosis and therapy, and electronics analysis.

The third motivation for focusing on knowledge is the recognition of its intrinsic value. Traditionally, the transmission of knowledge from human expert to trainee has required education and internship periods ranging from 3 to 20 years. By extracting knowledge from humans and transferring it to computable forms, the costs of knowledge reproduction and exploitation can be greatly reduced. At the same time, the process of knowledge refinement can be accelerated by making the previously private knowledge available for public test and evaluation.

Most of the knowledge-engineering applications fall into a few distinct types, summarized in the table.

Generic categories of knowledge engineering applications
Category Problem addressed
Interpretations Inferring situation descriptions from sensor data
Prediction Inferring likely consequences of given situations
Diagnosis Inferring system malfunctions from observables
Design Configuring objects under constraints
Planning Designing actions
Monitoring Comparing observations to plan vulnerabilities
Debugging Prescribing remedies for malfunctions
Repair Executing a plan to administer a prescribed remedy
Instruction Diagnosing, debugging, and repairing students' knowledge
Instruction weaknesses
Control Interpreting, predicting, repairing, and monitoring system
Instruction behaviors

The ideal expert system contains: a language processor for problem-oriented communications between the user and the expert system; a blackboard for recording intermediate results; a knowledge base comprising facts plus heuristic planning and problem-solving rules; an interpreter that applies these rules; a scheduler to control the order of rule processing; a consistency enforcer that adjusts previous conclusions when new data or knowledge alter their bases of support; and a justifier that rationalizes and explains the system's behavior. See Artificial intelligence

Agents are autonomous programs; programs that communicate with an agent communication language (for example, KQML); mobile programs that can travel from one computer to another; or programs that collaborate with humans in solving tasks, offloading tedious tasks, and acting as monitors and liaisons with other agents. Agents can also be viewed as higher-level architectural components, providing distributed open architectures in which the agents can be registered, requests can be brokered, and different organizational structures can be used to solve higher-level tasks. In this architectural view, they are distinguished from objects by their persistence, autonomy, communications capabilities, and behavior. Another key aspect of most agent definitions is the agent's dynamic and uncertain environment. Agents also may or may not have graphical representations, commonly called avatars or personas.

Agents can vary from simple programs, lacking knowledge, to sophisticated autonomous real-time control systems that provide both deliberative reasoning (for example, including sophisticated planning and scheduling) and fast real-time response. The vast majority of simple utilitarian agents, such as off-line browsers that automatically download Web sites, or agents that monitor Web pages for changes, are not knowledge-based. Most knowledge-based agents are still experimental. See Internet