You are on page 1of 8

.1 Purpose An expert system (or knowledge-based system) is a computer program that emulates the thought process of a human expert.

This # defines several key terms and examines the process of creating an expert system. 7.2 Strengths, weaknesses, and limitations Expert systems differ in important ways from both conventional information systems and systems developed in other branches of artificial intelligence. Among the characteristics that make expert systems distinctive are symbolic representation, symbolic reasoning, natural language processing, heuristics search, and reasoning processing capabilities. Expert systems are valuable in applications that call for judgment and inference based on incomplete data. They are particularly good at extracting the best alternatives from a long list of options. Over time, as users interact with an expert system, the system senses patterns in those interactions, incorporates the new knowledge into its knowledge base, and, in effect, learns. Perhaps most importantly, an expert system captures and stores expertise in a permanent, consistent, affordable, well-documented, easily transferred form. In contrast with artificial expertise, human expertise is perishable, difficult to transfer and document, unpredictable, and expensive. In the medical field, expert systems are used to screen patients, provide second opinions, and check the accuracy of a diagnosis. Geologists use expert systems to help locate oil and mineral deposits. Business expert systems support such tasks as training, capital resource planning, loan application analysis, and strategic planning. Telephone companies use expert systems to route telephone traffic during peak hours and to suggest the best type of phone service for their business customers. Computer manufacturers use expert systems to help configure computer systems. Smart bombs are guided by expert systems. Generally, expert systems should be considered only when the need for judgment and/or the lack of complete data make traditional algorithm-based systems unacceptable. Expert systems are difficult to create. Identifying the necessary inference rules depends on the cooperation of an expert, and even experts sometimes behave as they should (rather than as they normally do) while under observation. Creating an expert system is an open-ended process that is difficult to manage using such traditional tools as budgets and schedules. Additionally, expert systems can be expensive to operate and maintain. 7.3 Inputs and related ideas

The process of creating an expert system parallels the system development life cycle introduced in # 1. Developing an expert system implies developing a prototype (# 31). Selected knowledge engineering and problem solving tools are discussed in # 34. Knowledge representation is discussed in # 67. Prototyping techniques (# 31) are often used to develop an expert system. 7.4 Concepts An expert system (or knowledge-based system) is a computer program that emulates the thought process of a human expert. 7.4.1 Expert system components An expert system (Figure 7.1) is built around a rule base that incorporates knowledge, algorithms, and heuristic rules. The process of creating a rule base begins with a human expert whose expertise is captured, encoded by a knowledge engineer, and entered through a knowledge acquisition facility. In addition to the rule base, most expert systems also incorporate a database, a model base, and a graph base. A user accesses the system through a user interface called the expert system shell and enters the parameters of a problem to an inference engine. Often, the expert system shell incorporates natural language processing. The inference engine uses the input parameters to access the rule base, the database, the model base, and the graph base. Based on the available information and its reasoning capability, the inference engine reaches a conclusion and offers expert advice. Most expert systems also contain an explanation facility that reproduces the logic the inference engine followed to reach its conclusion.

Figure 7.1 The components of an expert system.

7.4.2 Creating an expert system The steps in a typical expert systems analysis and design methodology are summarized in Figure 7.2.
7.4.2.1 Identification phase

The first step in the identification phase, Identify problem, is similar to the problem definition phase in the traditional systems development life cycle. The objective is to identify, characterize, and define the problems the system will be expected to solve and then partition the problem into appropriate sub-tasks.

Figure 7.2 The steps in a typical expert systems analysis and design methodology.

Once the problem is defined, the resources necessary for acquiring knowledge, implementing the system, and testing the system are identified. Typical resources include knowledge, time, computing facilities, and money. Because expert systems

are expensive and creating one takes considerable time, a feasibility study (# 13) is often conducted before work progresses beyond this point. In addition to identifying resources, the expert system analysts and/or designers also identify the systems goals and objectives. It is helpful to identify and explicitly document the goals because certain design approaches, such as heuristic search, breadth search, depth search, and reasoning are goal-driven.
7.4.2.2 Conceptualization phase

The central task of the conceptualization phase is to diagram the systems key concepts and relations to define a conceptual base for a prototype system. Key objectives include separating the inference engine from the problem domain, factoring (analyzing) the problem into meta-problems, identifying the systems key concepts and relations, and testing those concepts and relations by challenging them (with specific examples of problem-solving activities) to ensure that they cover every general case. Many of the tools and techniques described in Part II are used in this phase.
7.4.2.3 Formalization Phase

The formalization phase involves mapping key concepts, sub-problems, and information flow characteristics isolated during conceptualization into more formal representations based on various knowledge engineering and problem solving tools (# 34) and knowledge representation frameworks (# 67). The key objectives are to identify the solution space (a domain with a collection of all possible solutions), the hypothesis space (the hypothetical solution space), the underlying model, and the characteristics of the data. To define the structure of the hypothesis space, the systems analysts or designers must formalize the concepts (knowledge in an abstract format that can be used to guide a searching or reasoning process) and determine how they are joined to form a hypothesis. The concepts provide clues about the nature of the space such as if it is finite, if a hierarchy must to be considered, if certain levels of abstraction can be applied, and if a specific class of the concept must be generated. Such searching techniques as blind search, heuristic search, and abstracting the solution space (# 34) are often used. Reasoning techniques such as assumption building, justification building, and the constraints and goal technique (# 34) help to identify the underlying model of the process used to generate solutions in the domain.
7.4.2.4 System design phase

During the system design phase (sometimes called the logical design phase) the analyst and/or designer specifies how the system will meet the requirements identified during the previous three phases. Typically, the reports and other outputs the systems must produce are defined first. This phase is similar to the design stage

in the traditional systems development life cycle. Note, however, that the representation schemes used to describe knowledge (# 67) differ from traditional methodologies.
7.4.2.5 System development phase

A prototype (# 31) expert system is created during the system development (or physical design) stage. This stage is similar to the development stage in the traditional system development life cycle.
7.4.2.6 Testing and evaluation phase

During this phase, the prototype system is evaluated. This phase parallels the testing stage in the traditional system development life cycle. However, in addition to the testing tools and techniques described in Part VII, expert systems utilize a dynamic testing technique to verify the reasoning and/or inference process.
7.4.2.7 Prototype revision phase

An expert system evolves over time, calling for almost constant revision, a trait expert systems share with most prototypes. Based on the results of the testing/evaluation phase, concepts and relations are refined, the solution space, the model, and the data characteristics are reformalized, and the system is redesigned. 7.5 Key terms Breadth search A searching technique that investigates all the nodes at a given level before moving down to the next level. Concept Knowledge in an abstract format that can be used to guide a searching or reasoning process. Depth search A searching technique that investigates all lower-level nodes before considering the next node at the same level. Domain A possible problem space in which searching or reasoning techniques can be applied. Expert system (knowledge-based system) A computer program that emulates the thought process of a human expert. Expert system shell The user interface to an expert system. Explanation facility An expert system component that reproduces the logic the inference engine followed to reach its conclusion. Factoring

A technique for grouping several sub-problems into a meta-problem. Graph base A database with a collection of graphs or graphing tools; for example, most graphic software implements a graph base of customized symbols or pictures. Heuristic rule A specific rule of thumb or common sense that can be used to restrict a search to a subset of a problem domain. Heuristic search A search technique that applies heuristics to reduce the size of a problem domain. Heuristics General rules derived from experience, common sense, inferences, and intelligent trial and error. Hypothesis space A mathematical term for a space that is defined abstractly; generally, the subset of a solution space to be considered. Inference engine The component of an expert system that uses input parameters to access the knowledge base, reach a conclusion, and offer expert advice. Knowledge acquisition facility A set of software tools for capturing and encoding a human experts expertise and creating a knowledge base. Knowledge base A collection of data, algorithms, and heuristic rules that forms the core of an expert system. Knowledge engineer A person who captures and encodes a human experts expertise and creates a knowledge base. Machine learning The capacity of a machine (or an expert system) to learn from experience. Meta-problem A problem that is synthesized or generalized from several lower level subproblems. Model base A collection of models that support decision making and/or data analysis; an example is a collection of different forecasting models. Natural language processing Hardware and/or software that allows people to communicate with computers in much the same way they communicate with other people. Partition To decompose a large problem into several smaller problems. Prototype A reasonably complete, working model of a system.

Reasoning The act of using inference to lead to a conclusion based on existing knowledge and/or data. Reasoning capability An inference engine feature that reaches a conclusion by applying the rules in the rule base. Relation An association or link between two objects or entities. Rule A formal specification or description of a unit of knowledge. Rule base A collection of executable rules; the rule base is accessed by the inference engine to support reasoning. Solution space (problem space) A mathematical term for the set of all possible solutions. Symbolic reasoning A technique for performing reasoning or inference with symbolic data such as graph, image, and/or picture. Symbolic representation A technique for representing symbolic data or knowledge.

You might also like