Academia.edu no longer supports Internet Explorer.
To browse Academia.edu and the wider internet faster and more securely, please take a few seconds to upgrade your browser.
1992, Artificial Intelligence in Engineering
…
13 pages
1 file
The selection of the software development tool for the development of an expert system is a difficult and often disputed decision. This paper describes a comparison of a knowledge engineering tool, Kee, and a general purpose language, Prolog, on concrete and real life example from AGATHA, an electronic circuit board diagnosis expert system. Prolog is a high-level programming language with flexible and powerful inference mechanisms. Kee is a big tool that supports a frame-based knowledge representation, an object-oriented programming style and a built-in rule system. It also offers a window environment suitable for rapid development of userinterface prototypes. Prolog's representation is more succinct, implicit and uses problem specific predicates and therefore leaves more room for personal programming styles. Kee is more verbose, explicit and uses standard templates. The maintainability of a Prolog implementation relies heavily on good documentation. In Kee, the unavoidable 'escapes to Lisp' require a maintainer to be fluent in Kee and Lisp. Both Prolog and Kee require a considerable investment in learning time.
We briefly describe the logic programming language PROLOG concentrating on those aspects of the language that make it suitable for implementing expert systems. We show how features of expert systems such as: (1) inference generated requests for data, (2) probabilistic reasoning, (3) explanation of behaviour can be easily programmed in PROLOG. We illustrate each of these features by showing how a fault finder expert could be programmed in PROLOG.
Proceedings of the third international conference on Industrial and engineering applications of artificial intelligence and expert systems - IEA/AIE '90, 1990
This paper refines and compIetes the results of our previous work represented in /3/. Our present work concentrates on the implementation of a uniform, white-box test environment PROTest (PROLOG Tat Environment). PROTest supports the development of object-oriented, rule and knowledge-based expert. systems which will be implemented in PROLOG. PROTest assists the programmer-as well as the quality engineer-in particular to generate test cases,
Expert Systems with Applications, 1998
This paper presents a knowledge representation object language (KROL) on top of Prolog. KROL is aimed at providing the ability to develop second-generation expert systems. The main aspects of KROL include multi-paradigm knowledge representation (first-order predicate logic, objects, rules), inference mechanisms at different levels of granularity, explanation facility, object-oriented database management module, and user-friendly interface. KROL has sufficient expressive power to be used in applying demanding knowledgebased modeling methodologies, such as KADS and Generic Task, which are the major landmarks of the second-generation expert systems technology. Four successful agricultural expert systems have been developed in the last 6 years using KROL. To demonstrate the language capabilities, we present an example of disorder diagnosis. ᭧
Computer Languages, Systems & Structures
Declarative if-then rules have proven very useful in many applications of expert systems. They can be managed in deductive databases and evaluated using the well-known forward-chaining approach. For domain-experts, however, the syntax of rules becomes complicated quickly, and already many different knowledge representation formalisms exist. Expert knowledge is often acquired in story form using interviews. In this paper, we discuss its representation by defining domain-specific languages (Dsl s) for declarative expert rules. They can be embedded in Prolog systems in internal Dsl s using term expansion and as external Dsl s using definite clause grammars and quasi-quotations-for more sophisticated syntaxes. Based on the declarative rules and the integration with the Prolog-based deductive database system DDbase , multiple rules acquired in practical case studies can be combined, compared, graphically analysed by domain-experts, and evaluated, resulting in an extensible system for expert knowledge. As a result, the actual modeling Dsl becomes executable; the declarative forward-chaining evaluation of deductive databases can be understood by the domain experts. Our Dsl for rules can be further improved by integrating ontologies and rule annotations.
1987
Turbo Prolog is a recently available, compiled version of the programming language Prolog. Turbo Prolog is designed to provide not only a Prolog compiler, but also a program development environment for the IBM Personal Computer family. An evaluation of Turbo Prolog was made, comparing its features to other versions of Prolog and to the community of languages commonly used in artificial intelligence (AI) research and development. Three programs were employed to determine the execution speed of Turbo Prolog applied to various problems. The results of this evaluation demonstrated that Turbo Prolog can perform much better than many commonly employed AI languages for numerically intensive problems and can equal the speed of development languages such as OPS5+ and CLIPS, running on the IBM PC. Applications for which Turbo Prolog is best suited include those which (1) lend themselves naturally to backward-chaining approaches, (2) require extensive use of mathematics, (3) contain few rules,...
Expert Systems with Applications, 1991
The problem of automatically reprogramming an expert system either to adjust for solving different types of computational problems or to improve run-time performance is addressed. A computeraided software engineering (CASE) method using artificial intelligence techniques to instantiate a concrete program from a given abstract expert system architecture is proposed. Our method, called expert system reification, is suitable for use in a large range of problem-solving behaviors. Reification combines meta-level programming with partial evaluation of the program. Expert system reification extends the above blend with a knowledge-based translation module, thus obtaining an efficient and portable expert system version. We demonstrate the method by applying it to STAREX, an electronic circuit pack troubleshooting expert system developed in PROLOG to derive automatically the corresponding C code, which is currently installed at one of the AT&T manufacturing facilities.
Decision Support Systems, 1985
A radically new approach to computing, the so-called knowledge-based information processing is achieving striking success in supporting activities needing logical power, human judgement, reasoning and expertise. It offers universal applicability for problem-solving, in particular in more complex tasks than those presently handled by computer systems. The current state of the art and future prospects for the development of a computer system which either performs expert tasks automatically or is used interactively by experts to increase their productivity are reviewed. The weak points we need to look at, namely the lack of guidelines for building such systems, and some dead ends are indicated. Some new results are expected by applying this key technology to our case study, the construction of a Systems Specification Support System ($4). Its knowledge base written in PROLOG captures and encodes human expertise about the INFOLOG model and INFOLOG specifications, which is made available via consultation to formulate specifications and, possibly, advice. The architecture of the knowledge base is presented by discussing its abstraction levels. This investigation provides also a methodology in structuring a systems analyst's knowledge about an application. This means how to find out the main kinds of objects, including their relationships, in some problem domain.
The implementation of Prolog systems has a long history, starting from the first interpreter written in 1972, to the first Prolog compiler simplifying basic operations like unification and backtracking with the aim of optimizing performances, and to the Warren Abstract Machine, later becoming a de facto standard model. The tuProlog engine differs from those systems in that maximum efficiency is not amongst its primary concerns. Instead, it aims at becoming the enabling technology for building complex systems like dynamic Internet infrastructures based on intelligent components, a domain where logic languages could effectively face, in principle, the key issues of intelligence and interaction. To accomplish this task, a logic engine must meet engineering properties such as deployability, configurability and scalability; to be usable as a development tool, it also must sustain a certain degree of traceability, by allowing the inspection of its internal processes at runtime, thus easying the typical pain of debugging activities. The design and implementation of such a system must follow sound principles: object-oriented code structuring, reuse of established community knowledge under the form of patterns, loose coupling of composing elements, modularity and a clear and clean separation of concerns. In this paper, we present the architecture of tuProlog, based upon a set of managers handling control of sensible parts of the system and operating around a minimal core shaped as a Finite State Machine; then, the representation of Prolog data and the unification algorithm's implementation are discussed; finally, the resolution part of the engine is illustrated.
1986
The Prolog programmer programs in an environment which provides a number of debugging tools. There is often a mismatch between the way a programmer describes some perceived error and the way in which a debugging tool needs to be used. Worse, there are some problems which existing tools cannot tackle easily-if at all The main aim of the work described is to construct a coherent framework on which to base the design of programming tools. This paper describes a particular classification of programming errors. Error classification is then used to provide a natural description of the tools that can, or could, assist the programmer. Examples are given of useful tools which are not part of well known current Prolog implementations and suggestions are made as to how current tools can be improved to increase their utility.
Loading Preview
Sorry, preview is currently unavailable. You can download the paper by clicking the button above.
New Generation Computing, 1985
Expert Systems With Applications, 2006
Journal of Functional and Logic Programming, 2001