What is the Expert System? And It’s Components
Who is Generally Acknowledged as an Expert?
Anyone can be considered a domain expert if he or she has deep knowledge (of booth facts and rules) and strong practical experience in a particular domain. The area of the domain may be limited. For example, experts in electrical engineering may have only general knowledge about transformers, while experts in life insurance marketing might have a limited understanding of a real estate insurance policy. In general, an expert is a skilful person who can do things other people cannot.
What is Knowledge?
Knowledge is a theoretical or practical understanding of a subject or a domain. Knowledge is also the sum of what is currently known, and apparently, knowledge is power. Those who possess knowledge are called experts. They are the most powerful and important people in their organizations. Any successful company has at least a few first-class experts and it cannot remain in business without them.
How Do Experts Think?
The human mental process is internal, and it is too complex to be represented as an algorithm. However, most experts are capable of expressing their knowledge as an algorithm. However, most experts are capable of expressing their knowledge in the form of rules for problem-solving. Consider a simple example.
Imagine, you meet an alien! He wants to cross a road. Can you help him? You are an expert in crossing roads- you’ve been on this job for several years. Thus you are able to teach the alien. How would you do this? You explain to the alien that he can cross the road safely when the traffic light is green, and he must stop when the traffic light is red. These are the basic rules.
Your knowledge can be formulated as the following simple statements: IF the ‘traffic light’ is green THEN the action is going IF the ‘traffic light’ is red THEN The action is stopped These statements represented in the IF-THEN form are called production rules or just rules.
The term ‘rule’ in AI, which is the most commonly used type of knowledge representation, can be defined as an IF-THEN structure that relates given information or facts in the IF part to some action in the THEN part. A rule provides some description of how to solve a problem. Rules are relatively easy to create and understand.
Components of an Expert System
There is currently no such thing as a “standard” expert system. Because a variety of techniques are used to create expert systems, they differ as widely as the programmers who develop them and the problems they are designed to solve. However, the principal components of most expert systems are knowledge base, an inference engine, and a user interface
The component of an expert system that contains the system’s knowledge is called its knowledge base. This element of the system is so critical to the way most expert systems are constructed that they are also popularly known as knowledge-based systems.
A knowledgebase contains both declarative knowledge(facts about objects, events and situations) and procedural knowledge (information about courses of action). Depending on the form of knowledge representation chosen, the two types of knowledge may be separate or integrated. Although many knowledge representation techniques have been used in expert systems, the most prevalent form of knowledge representation currently used in expert systems is the rule-based production system approach.
To improve the performance of an expert system, we should supply the system with some knowledge about the knowledge it posses, or in other words, meta-knowledge. Meta-knowledge can be simply defined as knowledge about knowledge. Meta-knowledge is knowledge about the use and control of domain knowledge in an expert system. In rule-based expert systems, meta-knowledge is represented by meta-rules. A meta-rule determines a strategy for the use of task-specific rules in the expert system.
Simply having access to a great deal of knowledge does not make you an expert; you also must know how and when to apply the appropriate knowledge. Similarly, just having a knowledge base does not make an expert system intelligent.
The system must have another component that directs the implementation of knowledge. That element of the system is known variously as the control structure, the rule interpreter, or the inference engine. The inference engine decides which heuristic search techniques are used to determine how the rules in the knowledge base are to be applied to the problem.
In effect, an inference engine “runs” an expert system, determining which rules are to be invoked, accessing the appropriate rules in the knowledge base, executing the rules, and determining when an acceptable solution has been found.
The component of an expert system that communicates with the user is known as the user interface. The communication performed by a user interface is bidirectional. At the simplest level, we must be able to describe our problem to the expert system, and the system must be able to respond with its recommendations.
We may want to ask the system to explain its “reasoning”, or the system may request additional information about the problem from us. Although the designer of expert systems generally have a great deal of experience with computers, the intended users of expert systems are frequently computer novices. It is therefore critically important to ensure that an expert system is especially easy to use.
Features of an expert system
What are the features of a good expert system? Although each expert system has its own particular characteristics, there are several features common to many systems. The following list from Rule-Based Expert Systems suggests seven criteria that are important prerequisites for the acceptance of an expert system.
“The program should be useful.” An expert system should be developed to meet a specific need, one for which it is recognized that assistance is needed. “The program should be usable.” An expert system should be designed so that even a novice computer user finds it easy to use. “The program should be educational when appropriate.” An expert system may be used by non-experts, who should be able to increase their own expertise by using the system. “The program should be able to explain its advice.”
An expert system should be able to explain the “reasoning” process that led it to its conclusions, to allow us to decide whether to accept the system’s recommendations. “The program should be able to respond to simple questions.” Because people with different levels of knowledge may use the system, an expert system should be able to answer questions about points that may not be clear to all users. “The program should be able to learn new knowledge.” Not only should an expert system be able to respond to our questions, but it also should be able to ask questions to gain additional information. “The program’s knowledge should be easily modified.” It is important that we should be able to revise the knowledge base of an expert system easily to correct errors or add new information.
What is an expert system shell?
An expert system shell can be considered as an expert system with the knowledge removed. Therefore, all the user has to do is to add knowledge in the form of rules and provide relevant data to solve a problem. Let us now look at who is needed to develop an expert system and what skills are needed.
In general, there are five members of the expert system development team: the domain expert, the knowledge engineer, the programmer, the project manager and the end-user. The success of their expert system entirely depends on how well the members work together.
The domain expert is a knowledgeable and skilled person capable of solving problems in a specific area or domain. This person has the greatest expertise in a given domain. This expertise is to be captured in the expert system.
Therefore, the expert must be able to communicate his or her knowledge, be willing to participate in the expert system development and commit a substantial amount of time to the project. The domain expert is the most important player in the expert system development team.
The Knowledge Engineer is someone who is capable of designing, building and testing an expert system. This person is responsible for selecting an appropriate task for the expert system. He or she interviews the domain expert to find out how a particular problem is solved. Through interaction with the expert, the knowledge engineer establishes what reasoning methods the expert uses to handle facts and rules and decide how to represent them in the expert system.
The knowledge engineer then chooses some development software or an expert system shell or looks at programming languages for encoding the knowledge. And finally, the knowledge engineer is responsible for testing, revising and integrating the expert system into the workspace. Thus, the knowledge engineer is committed to the project from the initial design stage to the final delivery of the expert system, and even after the project is completed, he or she may also be involved in maintaining the system.