Expert system analysis and design

Expert system analysis and design

7.1 Purpose

An expert system (or knowledge-based system) is a computer program that emulates the thought process of a human expert. This chapter 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 Chapter 1. Developing an expert system implies developing a prototype (Chapter 31). Selected knowledge engineering and problem solving tools are discussed in Chapter 34. Knowledge representation is discussed in Chapter 67. Prototyping techniques (Chapter 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.

07-01
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.

07-02
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 (Chapter 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 system’s 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 system’s 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 system’s 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 (Chapter 34) and knowledge representation frameworks (Chapter 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 (Chapter 34) are often used. Reasoning techniques such as assumption building, justification building, and the constraints and goal technique (Chapter 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 (Chapter 67) differ from traditional methodologies.

7.4.2.5 System development phase

A prototype (Chapter 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 expert’s 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 expert’s 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 sub-problems.
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.
7.6 Software

LISP (list programming language) and PROLOG (programming logic language) are popular expert system programming languages. Variations include common LISP, Franz LISP, CProlog, Knowledge Workbench, Quintus Prolog, Prolog-2, Arity Prolog, UNSW Prolog, and Turbo Prolog.

Popular systems building products include Expert-Ease, ADVISE, RULEMASTER, SEEK, and RULE WRITER. Other relevant products include KEE, KMS, RLL, SRL, SRL+ (frame-based), APES and HSRL (logic based), ROSS, SMALLTALK, and KBS (object oriented), INTERLISP and PSL (procedure-oriented), and ARS, ART, EXPERT, EXPERT-II, OPS5, RITA, and ROSIE (rule-based).

7.7 References
1.  Connor, D., Information Systems Specification & Design Road Map, Prentice-Hall, Englewood Cliffs, NJ, 1985.
2.  Harmon, P. and King, D., Expert Systems: Artificial Intelligence in Business, John Wiley & Sons, Inc., New York, 1985.
3.  Hayes-Roth, F., Waterman, D. A., and Lenat, D. B., Building Expert Systems, Addison-Wesley, Reading, MA, 1983.
4.  Waterman, D. A., A Guide to Expert Systems, Addison-Wesley, Reading, MA, 1986.

Comments

Popular posts from this blog

The Conversion Cycle:The Traditional Manufacturing Environment

The Revenue Cycle:Manual Systems

HIPO (hierarchy plus input-process-output)