FLENG: THE FLEXIBLE INFERENCE ENGINE SHAHRIAR POURAZIN AHMAD ABDOLLAH ZADEH BARFOROUSH Computer Engineering Department, Amir-Kabir University of Technology, Tehran, IRAN Tel: +(9821) 6419411, Fax: +(9821) 6413969 email: {pourazin, ahmad}@ce.aku.ac.ir ABSTRACT: Previous efforts in implementation of systems with Meta-knowledge (e.g. TEIRESIAS and MOLGEN) have been limited to some degree of hard-coded features. In this paper we introduce a Flexible Engine (FlEng) as an experimental inference engine which keeps its control strategy with its object knowledge both together. The inference engine (FlEng) is a small kernel using the complex inference mechanisms stored as part of knowledge base. Open definitions let the knowledge engineer (re)write a control strategy. The architecture of FlEng has been described in this paper. It has been shown that the (1) automatic evaluation of control strategies, (2) processing the uncertainty of control strategies and also (3) learning new inference methods could be performed by FlEng. Keywords: Inference Engine, Meta-knowledge, knowledge Representation, Meta-reasoning. 1 INTRODUCTION Meta-knowledge, Meta-reasoning and Meta-rules are tools for encoding of lack-of-knowledge inference, representation of beliefs of others, beliefs about rules and in short let our system know what it knows. Meta-knowledge is knowledge about knowledge as opposed to knowledge about “things in the world” [1]. It is to control and plan the process of reasoning [2--4] or simply to do meta-reasoning. Meta-assertions and meta-rules are parts of meta-knowledge, like assertions (facts) and rules, which together form the knowledge of production systems [5]. An example below shows the difference of them: R1: if C IsA man then C Is Mortal A1: John IsA man MA1: Bill knows that - if C IsA man then C Is Mortal MA2: Bill knows that - John IsA man MR1:For finding who-dies: Use Rules which include “Mortal” The assertion A1 and the rule R1 will be parts of meta-assertions MA1 and MA2. The meta-rule MR1 talks about the rules. Although the necessity of meta-level knowledge beside the object-level knowledge has been noticed before [3], it is very interesting that the same problem faces again in large knowledge representation systems like Cyc [6]. Some researchers try to enhance the functionality of Cyc by adding the problem solving methods into it [8]. These methods could add new control strategies to Cyc. In this paper a Flexible inference Engine (FlEng) is introduced and the Knowledge Representation System (KRS) using FlEng is described. The KRS is designed to have the minimal necessary control strategy in its inference engine (FlEng). FlEng loads the more sophisticated control strategies from its knowledge base. All operations like modifications, enhancements and evaluations on the Knowledge Base (KB) could be done on the both object-level knowledge (knowledge about things) and meta-level knowledge (knowledge about knowledge). This makes the system flexible and capable of encoding the methods: “to modify the KB”, “to evaluate its knowledge” and “to enhance its control strategy”. When FlEng uses the modification methods to change the KB, it is possible to change these methods themselves by the same way. This is done by a powerful language used to encode the knowledge. The KB should be written in this language. Next sections will describe: The KB language of FlEng, The basic inference algorithm in FlEng, and the applications of FlEng in intelligent systems. Among the applications, those concerning with automatic evaluation of control strategies, processing the uncertainty of control strategies and learning new inference methods are separated to be described in special subsections. The last section (conclusion) is to summarize the benefits of FlEng and the topics and issues for the next steps in research. 2 FLENG’S LANGUAGE The language of FlEng has been adopted from the ideas of Intermediate Knowledge Representation Schema (IKRS) [7]. IKRS is a tool for splitting the mixed types of knowledge using simple algorithms. So it has to represent the known types of human knowledge. Its nature is graphical and mostly is suitable for knowledge engineers who want to extract all (say) rules form a soup of discourse knowledge. IKRS could be fitted into publicly available knowledge representation systems. The one that we selected is KIF [10]. KIF has a powerful structure capable of encoding all