Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!sol.ctr.columbia.edu!ira.uka.de!sun.rhrk.uni-kl.de!uklirb!shell From: es@news.com Newsgroups: comp.ai.shells Subject: Need posted comments on ES Methodologies Summary: How is it really done? Keywords: expert systems development methods Message-ID: <8006@uklirb.informatik.uni-kl.de> Date: 30 May 91 17:06:47 GMT Sender: shell@uklirb.informatik.uni-kl.de Distribution: world Lines: 144 Approved: shell@dfki.uni-kl.de Posted-Date: Mon Jun 3 08:00:41 GMT 1991 Expert Systems 1 INTRODUCTION The area of expert systems investigates methods and techniques for constructing man-machine systems with specialized problem solving expertise. Elucidating and reproducing an expert's heuristics is the central task in building expert systems. 2 OVERVIEW 2.1 Categories Of Knowledge Engineering Applications CATEGORY PROBLEM ADDRESSED Interpretation 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 student behavior Control Interpreting, predicting, repairing, and monitoring system behaviors 2.2 Basic Ideas Of Intelligent Problem-Solving 1. Knowledge = Facts + Beliefs + Heuristics 2. Success = Finding a good enough answer with the resources available 3. Search efficiency directly affect success 4. Aids to efficiency: a. Applicable, correct, and discriminating knowledge b. Rapid elimination of blind "alleys" c. Elimination of redundant computation d. Increased speed of computer operation e. Multiple, cooperative sources of knowledge f. Reasoning at various levels of abstraction 5. Sources of increased problem difficulty: a. Errorful data or knowledge b. Dynamically changing data c. The number of possibilities to evaluate d. Complex procedures for ruling out possibilities 2.3 Methodology For Building Expert Systems Identification: Determining problem characteristics Conceptualization: Finding concepts to represent knowledge Formalization: Designing structures to organize knowledge Implementation: Formulating rules that embody knowledge Testing: Validating rules that embody knowledge 3 CONSTRUCTING AN EXPERT SYSTEM 3.1 Stages Of Knowledge Acquisition Identification Identify problem characteristics output: requirements o What class of problems will the expert system be expected to solve? o How can these problems be characterized or defined? o What are important subproblems and partitioning of tasks? o What are the data? o What are important terms and their interrelations? o What does a solution look like and what concepts are used in it? o What aspects of human expertise are essential in solving these problems? o What is the nature and extent of "relevant knowledge" that underlies the human solutions? o What situations are likely to impede solutions? o How will these impediments affect an expert system? Conceptualization Find concepts to represent knowledge output: concepts o What types of data are available? o What is given and what is inferred? o Do the subtasks have names? o Do the strategies have names? o Are there identifiable partial hypotheses that are commonly used? What are they? o How are the objects in the domain related? o Can you diagram a hierarchy and label causal relations, set inclusion, part-whole relations, etc.? What does it look like? o What processes are involved in problem solution? o What are the constraints on these processes? o What is the information flow? o Can you identify and separate the knowledge needed for solving a problem from the knowledge used to justify a solution? Formalization Design structure to organize knowledge output: structure o Are the data sparse and insufficient or plentiful and redundant? o Is there uncertainty attached to the data? o Does the logical interpretation of data depend on the order of occurrence over time? o What is the cost of data acquisition? o How are data acquired or elicited? What classes of questions need to be asked to obtain data? o How can certain data characteristics be recognized when sampled or extracted from a continuous data stream; how can features be extracted from waveforms or pictures, or from parsing natural language input? o Are the data reliable, accurate, precise (hard); or are they unreliable, inaccurate or imprecise (soft)? o Are the data consistent and complete for the problems to be solved? Implementation Formulate rules to embody knowledge output: rules Testing Validate rules that organize knowledge STEPS IN DEVELOPMENT 1. Set the scope of the project. Determine the problem, solution, and goals. What is the problem domain? What expertise is required? Where can it be obtained? 2. Knowledge Engineering. Gather the knowledge, formulate the rules, using a decision tree/ table. Set up the knowledge representation scheme and design the knowledge base. 3. Prototype the expert system and reiterate above if necessary. Perform testing with users. Feel free to post your comments on your experiences, criticisms, flames, etc. Thank you all!