![]() |
|||
![]()
|
![]() |
![]() |
![]() |
3. TYPES OF TOOLS3.1. LANGUAGESAs previously mentioned, the dominant languages used for building an expert system have been LISP and PROLOG. OPS has also been popular among rule-based programmers. They remain today the first choice of designers. Recently, C and C++ have also been used for system development. OPS, Official Production System, has been a very popular choice of expert system developers. OPS is a product of the Instructable Production System Project at CMU back in 1975. The project team was looking for a language that would assist in expert system development. The original version was rule-based and permitted only forward chaining. It was used by John McDermott to create one of the classic expert systems called R1 (later called XCON), to help DEC configure VAX computer systems. Over the years various versions of OPS emerged, the latest being OPS/R2, which supports backward chaining and objects with inheritance. OPS is commercially available from Production Systems Technologies, Pittsburgh, PA. For an excellent historical overview of the evolution of the OPS language, see Forgy (1995). Using a language provides flexibility. Once you know what features are needed for the system, you can generate the required code. On the down-side, you need to develop the entire infrastructure, including the traditional subsystems such as the inference engine and explanation facility (OPS provides many of the needed facilities). You will also need, obviously, proficiency in the chosen language. As shown in Figure 2, expert system developers have more often turned to shells than languages. A recent survey of the field, one conducted in preparation of a new edition of Durkin (1993), has shown that this trend is increasing. The percentage of systems built using shells has increased slightly over the 1993 figure, while percentages for the languages have all decreased slightly.
3.2. RULE-BASED TOOLSRule-based tools use if-then rules to represent knowledge. These rules are processed through a backward or forward chaining process, or a combination of the two (called bidirectional inference). Some tools permit the coding of inexact rules and inexact inferencing, possibly using confidence factors and processing methods found in the certainty theory, both a product of the work on MYCIN. Some tools permit the coding of rule-sets that act like separate knowledge bases, which can be processed according to the context of the consultation session. These sets act like a committee of experts where they exchange information over a global data location, often called a blackboard structure.
During the early 1980s, when commercial tools were first entering the market, most tools were rule-based. Therefore, most developed expert systems to date are rule-based. Even today, rule-based expert system tools remain the first choice of most designers. 3.3. FRAME-BASED TOOLSFrame-based tools represent knowledge in frames. Each frame captures descriptive and behavioral information on some object, in slots and methods, respectively. Knowledge processing may be accomplished through an interaction of the frames using a technique such as message passing, or through an interaction of frames with a set of rules using a shell that is often referred to as a hybrid tool. Today's frame-based tools share many common points with object-oriented programming. The advantage, however, that these tools have over the base language approach is that they enable the coding of knowledge in a natural symbolic language style versus the more rigid syntax of an object-oriented programming language. Though rule-based tools dominated the 1980s, frame-based ones are dramatically picking up steam during the 1990s. New vendors offering this tool type are entering the market, and ones who provided only rule-based tools are revamping their product to include frame-based methods. Due to the programming power of frame-based systems, this trend should continue. 3.4. FUZZY LOGIC TOOLSFuzzy logic expert system tools represent knowledge in fuzzy rules and fuzzy sets. Fuzzy rules, like ones found in other rule-based systems, are if-then structures. However, they include statements that contain fuzzy variables with corresponding fuzzy values that are represented mathematically in a fuzzy set. It is the term "mathematically" that separates fuzzy logic tools from the symbolic rule-based ones. Processing of these rules relies upon a mathematical approach based in the principles of fuzzy logic. A fuzzy logic tool is applicable for a problem that is described using vague or ambiguous terms, and where the expert relies on common sense to solve the problem. For example, the expert might state, "When the motor is running really hot I decrease the speed a little." Fuzzy logic has been used in such application areas as diagnosis and prescription, but it is in the area of control systems where it has really shined. Common sense control rules are usually easy to generate. Also, the fuzzy logic processing of the fuzzy rules and sets, given information about the operation of the system under control, can often produce control performance on the par of a human operator. In addition, fuzzy logic has particular value in control applications where it is difficult or impossible to mathematically model the system to be controlled, a step needed for the development of a traditional control system, such as a PID controller. 3.5. INDUCTION TOOLSInduction tools generate rules from examples. They are products of AI research in machine learning. A developer enters a large set of examples from the domain under consideration, where each example contains values for a set of domain features, and a single result characterizing the example. The induction tool then uses an algorithm, such as ID3, to generate a rule or a decision tree. In operation, a user enters information about a current problem and the system then determines the probable result. An induction tool is an excellent choice if a large set of examples exist characterizing the problem. In addition, even if an expert does not exist who could provide the knowledge needed to develop the expert system, an induction tool can possibly discover the necessary knowledge. An extension on this last point shows another plus for this tool. Since the tool can be used without the need of an expert, one can avoid problems associated with knowledge acquisition. An induction expert system can be built relatively quickly, and is easy to maintain by adding/deleting examples or domain features.
|
![]() |
|
Use of this site is subject certain Terms & Conditions. Copyright (c) 1996-1999 EarthWeb, Inc.. All rights reserved. Reproduction in whole or in part in any form or medium without express written permission of EarthWeb is prohibited. Please read our privacy policy for details. |