Making Logic Programs Reactive
James Harland and Michael Winikoff
Abstract:
Logic programming languages based on linear logic have been of recent
interest, particularly as such languages provide a logical basis for
programs which execute within a dynamic environment. Most of these
languages are implemented using standard resolution or backward-chaining techniques. However, there are applications for
which the use of forward-chaining techniques within a dynamic
environment are appropriate, such as genetic algorithms, active
databases and agent-based systems, and for which it is difficult or
impossible to specify an appropriate goal in advance. In this paper we
discuss the foundations for a forward-chaining approach (or in logic
programming parlance, a bottom-up approach) to the execution of linear
logic programs, which thus provides forward-chaining within a dynamic
environment. In this way it is possible not only to execute programs
in a forward-chaining manner, but also to combine forward- and
backward-chaining execution. We describe and discuss the appropriate
inference rules for such a system, the formal results about such
rules, the role of search strategies, and applications.