04+AI+&+ExSys+Knowledge-Based

Expert Systems
are computer programs that are derived from a branch of computer science research called //Artificial Intelligence// (AI). AI's scientific goal is to understand intelligence by building computer programs that exhibit intelligent behavior. It is concerned with the concepts and methods of symbolic inference, or reasoning, by a computer, and how the knowledge used to make those inferences will be represented inside the machine. Of course, the term //intelligence// covers many cognitive skills, including the ability to solve problems, learn, and understand language; AI addresses all of those. But most progress to date in AI has been made in the area of problem solving -- concepts and methods for building programs that //reason// about problems rather than calculate a solution. AI programs that achieve expert-level competence in solving problems in task areas by bringing to bear a body of knowledge about specific tasks are called //knowledge-based// or //expert systems//. Often, the term expert systems is reserved for programs whose knowledge base contains the knowledge used by human experts, in contrast to knowledge gathered from textbooks or non-experts. More often than not, the two terms, expert systems (ES) and knowledge-based systems (KBS), are used synonymously. Taken together, they represent the most widespread type of AI application. The area of human intellectual endeavor to be captured in an expert system is called the //task domain//. //Task// refers to some goal-oriented, problem-solving activity. //Domain// refers to the area within which the task is being performed. Typical tasks are diagnosis, planning, scheduling, configuration and design. An example of a task domain is aircraft crew scheduling, discussed in Chapter [|2]. Building an expert system is known as //knowledge engineering// and its practitioners are called //knowledge engineers//. The knowledge engineer must make sure that the computer has all the knowledge needed to solve a problem. The knowledge engineer must choose one or more forms in which to represent the required knowledge as symbol patterns in the memory of the computer -- that is, he (or she) must choose a //knowledge representation//. He must also ensure that the computer can use the knowledge efficiently by selecting from a handful of //reasoning methods//. The practice of knowledge engineering is described later. We first describe the components of expert systems. ([])