Methodologies and Technologies for Rule-Based Systems Design and Implementation

Methodologies and Technologies for Rule-Based Systems Design and Implementation

Methodologies and Technologies for Rule-Based Systems Design and Implementation. Towards Hybrid Knowledge Engineering. Grzegorz J. Nalepa1 Institute of Automatics, AGH University of Science and Technology, Al. Mickiewicza 30, 30-059 Kraków, Poland, [email protected] Summary. A practical design of non-trivial rule-based systems requires a system- atic, structured and consistent approach. The paper focuses on selected issues in RBS knowledge engineering. Some ideas on combining knowledge engineering with software engineering are discussed. Furthermore, results of RBS design tools sur- vey are enclosed. In the paper an original design and implementation methodology for RBS is also presented. It has been developed in the Mirella project. It is a top-down hierarchical design methodology, based on new knowledge representation methods (XTT and ARD), on-line logical system analysis in Prolog, and XML- based knowledge encoding. Basing on the experience with XTT-based methodology, as well as tools supporting it, the paper discusses an extended hierarchical design methodology for RBS. A preview of the Hekate project, which aims at developing a hybrid knowledge engineering methodology is also given. 1 Introduction Knowledge-based systems (KBS) are an important class of intelligent systems originating from the field of Artificial Intelligence [17]. They can be espe- cially useful for solving complex problems in cases where purely algorithmic or mathematical solutions are either unknown or demonstrably inefficient. Building real-life KBS is a complex task. Since their architecture is fun- damental different from classic software, classical software engineering ap- proaches cannot be applied efficiently. Some specific development methodolo- gies, commonly referred to as knowledge engineering, are required. In AI rules are probably the most popular choice for building knowledge- based systems, that is the so-called rule-based expert systems [4, 5, 7]. Rule- based systems (RBS) are used extensively in practical applications, especially in domains such as automatic control, decision support, and system diagnosis. They constitute today one of the most important classes of KBS. 2 Grzegorz J. Nalepa A rule-based expert system consists of a knowledge base and an inference engine. The knowledge engineering process aims at designing and evaluating the knowledge base, and implementing a proper inference engine. The process of building the knowledge base involves the selection of a knowledge repre- sentation method, knowledge acquisition, and possibly low-level knowledge encoding. In order to create an inference engine a reasoning technique must be selected, and the engine has to be programmed. During the engineering process a number of problems occur. Particular problems concern the selection of a knowledge representation formalism as well as the actual design of an appropriate rule base. As the number of rules exceeds even relatively very low quantities, it is hard to keep the rule-base consistent, complete, and correct. These problems are related to knowledge- base verification, validation, and testing [21, 22]. The selection of appropriate software tools and programming languages is non-trivial either. This paper is devoted to discussing the most important differences between knowledge engineering (see Sect. 2) and classic software approaches [19] (see Sect. 3). When it comes to practical system implementation, current RBS development is heavily dependent on software engineering tools, which enforce certain design patterns not suitable for knowledge engineering. This is why the paper aims at identifying possible areas of cooperation between software and knowledge engineering approaches in Sect. 4. Section 5 identifies the most important issues in RBS knowledge engineering process and presents possible approaches. Then in Sect. 6 an overview of selected design and implementation tools is presented. Practical design of non-trivial rule-based systems requires a systematic, structured and consistent approach. In this paper an original design and implementation methodology for rule-based systems is discussed in Sect. 7. It is a top-down hierarchical design methodology, based on new knowledge representation methods (XTT and ARD), on-line logical system analysis in Prolog, and XML-based knowledge encoding. It is supported by a prototype CASE tool called Mirella. Basing on the experience with XTT- based methodology, as well as tools supporting it, in the Sect. 8 an extended hierarchical design methodology for RBS is discussed. At the end a preview of the Hekate project, which aims at developing a hybrid knowledge engineering methodology, is also given. 2 Knowledge Engineering Approach What makes KBS distinctive is the separation of knowledge storage (the knowledge base) from the knowledge processing facilities. In order to store knowledge, KBS use various knowledge representation methods, which are declarative in nature. In case of RBS these are production rules. Specific knowl- edge processing facilities, suitable for specific representation method used, are then selected. In case of RBS these are logic-based inference engines. Methodologies and Technologies for RBS Design and Implementation. 3 The knowledge engineering (KE) process in case of RBS involves two main tasks: knowledge base design, and inference engine implementation. Further- more, some other specific tasks are also required, such as: knowledge base analysis and verification, and inference engine optimization. The performance of a complete RBS should be evaluated and validated. Classic expert systems books [5] represent this process as shown in Fig. 1. While this process is spe- cific to expert systems in general, it is usually similar in case of other KBS. Identification Identify problem Reformulations chararteristics Conceptualization Find concepts Reformulations Requirements representing knowledge VERIFICATION Formalization Concepts Design structure organizing knowledge Redesigns Implementation Formulate rules Structure embodying knowledge Refinements Testing Rules Validate rules organizing knowledge Fig. 1. Classic knowledge engineering process (Liebowitz 1998) What is important about the process, is the fact that it should capture the expert knowledge and represent it in a way that is suitable for processing (this is the task for the knowledge engineer). The actual structure of a KBS does not need to be system specific – it should not „mimic” or model the structure of the real-world problem. However, the KBS should capture and contain the knowledge about the real-world system. The task of the programmers is to develop processing facilities for the knowledge representation. It should be pointed out, that in case of KBS there is no single universal engineering approach, or universal modelling method (such as UML in soft- ware engineering). Different classes of KBS may require a specific approach, see [5, 2, 7, 20]. Having outlined the main aspects of KBS development, it can be discussed how they are related to classic software engineering methods. 4 Grzegorz J. Nalepa 3 Software Engineering Approach Software engineering (SE) is the domain where a number of mature and well- proved design methods exist. They address needs of specific classes of business software. In software engineering the software development process and life cycle is represented by several models. One of the most common is called the waterfall model [19] and is shown in Fig. 2. In this process a number of development roles can be identified: users and/or domain experts, system analysts, programmers, testers, integrators, and end users. What makes this process different from knowledge engineering, is the fact, systems analysts in general try to model the structure of the real-world information system in the structure of computer software system. So the structure of the software corresponds to some respect to the structure of the real-world system. The task of the programmers is to encode and implement the model (which is the result of the system analysis) in some lower-level programming language. The most important difference between software and knowledge engineer- ing, is that the former tries to model how the system works, while the latter tries to capture and represent what is known about the system. Requirements definition System and software design Implementation and unit testing Integration and system testing Operation and maintanance Fig. 2. Classic waterfall software life cycle (Sommerville 2004) 4 Heterogeneous Development Methodology Historically, there has always been a strong feedback between software engi- neering and computer programming tools. At the same time these tools have been strongly determined by the actual architecture of computers themselves. For a number of years there has been a clear trend for the software engineer- ing to become as implementation-independent as possible. Modern software engineering approaches tend to be abstract and conceptual. Methodologies and Technologies for RBS Design and Implementation. 5 On the other hand, knowledge engineering approaches have always been device and implementation-agnostic. The actual implementation of KBS has been based on some high level programming languages such as Lisp or Pro- log. However, modern knowledge engineering tools heavily depend on some common development tools and programming languages, especially when it comes to user interfaces, network communication, etc. It could be said, that these days software engineering becomes more knowledge-based, while knowledge

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    16 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us