You are on page 1of 5

Expert System Architecture Figure 8.1 shows the most important modules that make up a rule-based expert system.

The user interacts with the system through a user interface which may use menus, natural language or any other style of interaction). Then an inference engine is used to reason with both the expert knowledge (extracted from our friendly expert) and data specific to the particular problem being solved. The expert knowledge will typically be in the form of a set of IF-THEN rules. The case specific data includes both data provided by the user and partial conclusions (along with certainty measures) based on this data. In a simple forward chaining rulebased system the case specific data will be the elements in working memory.

Almost all expert systems also have an explanation subsystem, which allows the program to explain its reasoning to the user. Some systems also have a knowledge base editor which help the expert or knowledge engineer to easily update and check the knowledge base. One important feature of expert systems is the way they (usually) separate domain specific knowledge from more general purpose reasoning and representation techniques. The general purpose bit (in the dotted box in the figure) is referred to as an expert system shell. As we see in the figure, the shell will provide the inference engine (and knowledge representation scheme), a user interface, an explanation system and sometimes a knowledge base editor. Given a new kind of problem to solve (say, car design), we can usually find a shell that provides the right sort of support for that problem, so all we need to do is provide the expert knowledge. There are numerous commercial expert system shells, each one

appropriate for a slightly different range of problems. (Expert systems work in industry includes both writing expert system shells and writing expert systems using shells.) Using shells to write expert systems generally greatly reduces the cost and time of development (compared with writing the expert system from scratch).

Planning

The methods which focus on ways of decomposing the original problem into appropriate subparts and on ways of recording and handling interactions among the subparts as they are detected during the problemsolving process are often called as planning. Planning refers to the process of computing several steps of a problemsolving procedure before executing any of them.

Components of a planning system


Choose the best rule to apply next based on the best available heuristic information. Apply the chosen rule to compute the new problem state that arises from its application. Detect when a solution has been found. Detect dead ends so that they can be abandoned and the systems effort directed in more fruitful directions. Detect when an almost correct solution has been found and employ special techniques to make it totally correct.

. A rule-based system is a way of encoding a human expert's knowledge in a fairly narrow area into an automated system. There are a couple of advantages to doing so. One is that the human expert's knowledge then becomes available to a very large range of people. Another advantage is that if you can capture the expertise of an expert in a field, then any knowledge which they might have is not lost when they retire or leave the firm. Rule-based systems differ from standard procedural or object-oriented programs in that there is no clear order in which code executes. Instead, the knowledge of the expert is captured in a set of rules, each of which encodes a small piece of the expert's knowledge. Each rule has a left hand side and a ride hand side. The left hand side contains information about certain facts and objects which must be true in order for the rule to potentially fire (that is, execute). Any rules whose left hand sides match in this manner at a given time are placed on an agenda. One of the rules on the agenda is picked (there is no way of predicting which one), and its right hand side is executed, and then it is removed from the agenda. The agenda is then updated (generally using a special algorithm called the Rete algorithm), and a new rules is picked to execute. This continues until there are no more rules on the agenda. rule-based systems are generally implemented as single-thread programs. The advantage to this type of approach, as opposed to a procedural approach, is that if the system is designed well, then the expert's knowledge can be maintained fairly easily, just by altering whichever rules need to be altered. Indeed, many rule-based systems come along with a rules editor which allows for rules to be easily maintained by non-technical people.

Natural Language Processing


Natural Language Processing (NLP) is the process of computer analysis of input provided in a human language (natural language), and conversion of this input into a useful form of representation. The field of NLP is primarily concerned with getting computers to perform useful and interesting tasks with human languages. The field of NLP is secondarily concerned with helping us come to a better understanding of human language. The input/output of a NLP system can be: written text speech We will mostly concerned with written text (not speech). To process written text, we need: lexical, syntactic, semantic knowledge about the language discourse information, real world knowledge To process spoken language, we need everything required to process written text, plus the challenges of speech recognition and speech synthesis.

There are two components of NLP. Natural Language Understanding Mapping the given input in the natural language into a useful representation. Different level of analysis required: morphological analysis, syntactic analysis, semantic analysis, discourse analysis, Natural Language Generation Producing output in the natural language from some internal representation. Different level of synthesis required: deep planning (what to say), syntactic generation NL Understanding is much harder than NL Generation. But, still both of them are hard. The difficulty in NL understanding arises from the following facts: Natural language is extremely rich in form and structure, and very ambiguous. How to represent meaning, Which structures map to which meaning structures. One input can mean many different things. Ambiguity can be at different levels. Lexical (word level) ambiguity -- different meanings of words Syntactic ambiguity -- different ways to parse the sentence Interpreting partial information -- how to interpret pronouns Contextual information -- context of the sentence may affect the meaning of that sentence. Many input can mean the same thing. Interaction among components of the input is not clear.

You might also like