A Proposal of Hybrid Knowledge Engineering and Refinement
Total Page:16
File Type:pdf, Size:1020Kb
A Proposal of Hybrid Knowledge Engineering and Refinement Approach Grzegorz J. Nalepa and Igor Wojnicki Institute of Automatics, AGH – University of Science and Technology, Al. Mickiewicza 30, 30-059 Kraków, Poland [email protected] [email protected] Abstract on several observations related to the Software and Knowl- edge Engineering concepts described below. The paper deals with some possible applications of Knowl- This paper presents a concept of a new software engineer- edge Engineering methods to the practical Software Engi- neering. Such an integration could provide a way to over- ing approach based on knowledge engineering methods. In come some constant problems present in the contemporary the paper some important features of both KE and SE ap- Software Engineering. This paper describes foundations of proaches are summarized. Furthermore, common design the HEKATE Project, which aims at incorporating well es- and evaluation problems encountered in SE are outlined. tablished Knowledge Engineering tools and paradigms into Most of these problems can be successfully approached, the Software Engineering domain. A new Hybrid Knowledge and possibly minimized in the field of KE and RBS design. Engineering (HEKATE) methodology is proposed, which This is why, selected concepts and tools developed for the would allow for faster development of highly reliable soft- MIRELLA Project are presented; they aim at supporting the ware. The HEKATE design process is introduced which of- design and evaluation of RBS. Finally, the main concept of fers important capabilities of formal verification, and gradual the hybrid knowledge engineering, on which the HEKATE refinement of software from the conceptual model stage to an executable prototype. An integrated design environment and project is based, is discussed. The paper ends with conclud- runtime based on the ARD/XTT concept is also proposed. ing remarks where some main features of HEKATE are sum- Furthermore, HEKATE-based applications can be integrated marized. with existing software, designed in a classical way. From Knowledge to Software Engineering Introduction It is asserted, that some important concepts and experiences in the field of Knowledge Engineering could be transferable Knowledge-based systems (KBS) are an important class of into the domain of Software Engineering. Several observa- intelligent systems originating from the field of Artificial In- tions regarding relations between these two approaches are telligence (Russell & Norvig 2003). They can be especially discussed below. useful for solving complex problems in cases where purely algorithmic or mathematical solutions are either unknown or Knowledge Engineering Approach demonstrably inefficient. In AI, rules are probably the most What makes KBS distinctive is the separation of knowledge popular choice for building knowledge-based systems, that storage (the knowledge base) from the knowledge process- is the so-called rule-based expert systems (Jackson 1999; ing facilities. In order to store knowledge, KBS use various Lig˛eza 2006). Rule-based systems (RBS) constitute today knowledge representation methods, which are declarative in one of the most important classes of KBS. Building real-life nature. In case of RBS these are production rules. Specific KBS is a complex task. Since their architecture is funda- knowledge processing facilities, suitable for particular rep- mentally different from classic software, typical Software resentation method being used, are selected then. In case of Engineering approaches cannot be applied efficiently. Some RBS these are logic-based inference engines. specific development methodologies, commonly referred to The knowledge engineering process, in case of RBS, in- as Knowledge Engineering (KE), are required. volves two main tasks: knowledge base design, and infer- Software Engineering (SE) does not contribute much con- ence engine implementation. Furthermore, some other tasks cepts in Knowledge Engineering. However, it does pro- are also required, such as: knowledge base analysis and ver- vide some important tools and techniques for it. On the ification, and inference engine optimization. The perfor- other hand some important Knowledge Engineering concep- mance of a complete RBS should be evaluated and vali- tual achievements and methodologies can be successfully dated. While this process is specific to expert systems, it transferred and applied in the domain of Software Engineer- is usually similar in case of other KBS. ing (Maurer & Ruhe 2004). This conclusion is drawn based What is important about the process, is the fact that it Copyright c 2007, American Association for Artificial Intelli- should capture the expert knowledge and represent it in a gence (www.aaai.org). All rights reserved. way that is suitable for processing (this is the task for a 542 knowledge engineer). The actual structure of a KBS does On the other hand, knowledge engineering approaches not need to be system specific – it should not „mimic” or have always been device and implementation-agnostic. The model the structure of the real-world problem. However, the actual implementation of KBS has been based on some high KBS should capture and contain knowledge regarding the level programming languages such as Lisp or Prolog. How- real-world system. The task of programmers is to develop ever, modern knowledge engineering tools heavily depend processing facilities for the knowledge representation. The on some common development tools and programming lan- level at which KE should operate is often referred to as the guages, especially when it comes to user interfaces, network knowledge level (Newell 1982). communication, etc. It should be pointed out, that in case of KBS there is It could be said, that these days software engineering be- no single universal engineering approach, or universal mod- comes more knowledge-based, while knowledge engineer- elling method (such as UML in software engineering). Dif- ing is more about software engineering. This opens multi- ferent classes of KBS may require specific approaches, ple opportunities for both approaches to improve and ben- see (Lig˛eza 2006; Torsun 1995). efit. Software engineering could adopt from knowledge Having outlined the main aspects of KBS development, engineering advanced conceptual tools, such as declarative it can be discussed how they are related to classic software knowledge representation methods, knowledge transforma- engineering methods. tion techniques based on existing inference strategies, as well as verification, validation and refinement methods. Software Engineering Approach This trend is already visible in the Model-Driven Ar- Software engineering (SE) is a domain where a number of chitecture proposed by OMG (Miller & Mukerji 2003). mature and well-proved design methods exist; furthermore, It is a new software engineering paradigm that tries to the software development process and its life cycle is repre- provide a unified design and implementation method and sented by several models. One of the most common models appropriate tools for the declarative specification of soft- is called the waterfall model (Sommerville 2004). In this ware. MDA has already been adapted for business logic process a number of development roles can be identified: applications, so-called business rules approach (Ross 2003; users and/or domain experts, system analysts, programmers, von Halle 2001). testers, integrators, and end users (customers). What makes In order to improve and better integrate KBS with exist- this process different from knowledge engineering is the fact ing software, knowledge engineering could adopt program- that systems analysts try to model the structure of the real- ming interfaces to existing software systems and tools, in- world information system in the structure of computer soft- terfaces to advanced storage facilities such as databases and ware system. So the structure of the software corresponds, data warehouses, modern user interfaces, including graphi- to some extent, to the structure of the real-world system. cal and web-based ones. In this paper a concept of possible The task of the programmers is to encode and implement the integration of some KE solutions with SE is put forward. model (which is the result of the system analysis) in some lower-level programming language. Critical Overview The most important difference between software and The Software Engineering is derived as a set of paradigms, knowledge engineering, is that the former tries to model procedures, specifications and tools from pure program- how the system works, while the latter tries to capture and ming. It is heavily tainted with the way how programs work represent what is known about the system. The knowledge which is the sequential approach, based on the Turing Ma- engineering approach assumes that information about how chine concept. Historically, when the modelled systems be- the system works can be inferred automatically from what is came more complex, SE became more and more declara- known about the system. tive, in order to model the system in a more comprehen- sive way. It made the design stage independent of program- Common Design and Evaluation Problems ming languages which resulted in number of approaches; the best example is the MDA approach (Miller & Mukerji Having outlined some distinctive features of KE and SE ap- 2003). So, while programming itself remains mostly se- proaches, several observations can be made in the field of quential, designing becomes more declarative. The intro-