Dynamic logic programming (1998) [66 citations — 25 self]
Abstract:
In this paper we investigate updates of knowledge bases represented by logic programs. In order to represent negative information, we use generalized logic programs which allow default negation not only in their bodies but also in their heads.We start by introducing the notion of an update P \Phi U of a logic program P by another logic program U. Subsequently, we provide a precise semantic characterization of P \Phi U, and study some basic properties of program updates. In particular, we show that our update programs generalize the notion of interpretation update. We then extend this notion to sequences of logic programs updates P1 \Phi P2 \Phi: : : , de��ning dynamic program updates, thereby introducing the paradigm of dynamic logic programming. This paradigm signi��cantly facilitates modularization of logic programming, and thus modularization of non-monotonic reasoning as a whole. Speci��cally, suppose that we are given a set of logic program modules, each describing a dioeerent state of our knowledge of the world. Dioeerent states may represent dioeerent time points or dioeerent sets of priorities or perhaps even dioeerent viewpoints. Consequently, program modules may contain mutually contradictory as well as overlapping information. The role of the dynamic program update is to use the mutual relationships existing between dioeerent states to precisely determine, at any given state, the declarative as well as procedural semantics of the combined program, resulting from all these modules.

