3 research outputs found
PROLOG META-INTERPRETERS FOR RULE-BASED INFERENCE UNDER UNCERTAINTY
Uncertain facts and inexact rules can be represented and
processed in standard Prolog through meta-interpretation. This
requires the specification of appropriate parsers and belief
calculi. We present a meta-interpreter that takes a rule-based
belief calculus as an external variable. The certainty-factors
calculus and a heuristic Bayesian belief-update model are then
implemented as stand-alone Prolog predicates. These, in turn,
are bound to the meta-interpreter environment through second-order
programming. The resulting system is a powerful
experimental tool which enables inquiry into the impact of
various designs of belief calculi on the external validity of
expert systems. The paper also demonstrates the (well-known)
role of Prolog meta-interpreters in building expert system
shells.Information Systems Working Papers Serie
Abstract MetaProlog engine
A compiler-based meta-level system for MetaProlog language is presented. Since MetaProlog is a meta-level extension of Prolog, the Warren Abstract Machine (WAM) is extended to get an efficient implementation of meta-level facilities; this extension is called the Abstract MetaProlog Engine (AMPE). Since theories and proofs are main meta-level objects in MetaProlog, we discuss their representations and implementations in detail. First, we describe how to efficiently represent theories and derivability relations. At the same time, we present the core part of the AMPE, which supports multiple theories and a fast context switching among theories in the MetaProlog system. Then we describe how to compute proofs, how to shrink the search space of a goal using partially instantiated proofs, and how to represent other control knowledge in a WAM-based system. In addition to computing proofs that are just success branches of search trees, fail branches can also be computed and used in the reasoning process
On the efficiency of meta-level inference
In this thesis we will be concerned with a particular type of architecture for reasoning
systems, known as meta-level architectures. After presenting the arguments for such
architectures (chapter 1), we discuss a number of systems in the literature that provide an
explicit meta-level architecture (chapter 2), and these systems are compared on the basis
of a number of distinguishing characteristics. This leads to a classification of meta-level
architectures (chapter 3). Within this classification we compare the different types of
architectures, and argue that one of these types, called bilingual meta-level inference
systems, has a number of advantages over the other types. We study the general structure
of bilingual meta-level inference architectures (chapter 4), and we discuss the details of a
system that we implemented which has this architecture (chapter 5). One of the problems
that this type of system suffers from is the overhead that is incurred by the meta-level
effort. We give a theoretical model of this problem, and we perform measurements which
show that this problem is indeed a significant one (chapter 6). Chapter 7 discusses partial
evaluation, the main technique available in the literature to reduce the meta-level
overhead. This technique, although useful, suffers from a number of serious problems. We
propose two further techniques, partial reflection and many-sorted logic (chapters 8 and
9), which can be used to reduce the problem of meta-level overhead without suffering from
these problems