@INPROCEEDINGS{Hanus04JFLP,
author       = {Hanus, M.},
title        = {Dynamic Predicates in Functional Logic Programs},
year         = {2004},
journal      = {Journal of Functional and Logic Programming},
number       = {5},
publisher    = {EAPLS},
volume       = {2004},
abstract = {
In this paper we propose a new concept to deal with
dynamic predicates in functional logic programs.
The definition of a dynamic predicate can change over time,
i.e., one can add or remove facts that define this predicate.
Our approach is easy to use and has a clear semantics
that does not depend on the particular (demand-driven) evaluation
strategy of the underlying implementation.
In particular, the concept is not based on (unsafe) side effects
so that
the order of evaluation does not influence the computed results---an
essential requirement in non-strict languages.

Dynamic predicates can also be persistent so that their
definitions are saved across invocations of programs.
Thus, dynamic predicates are a lightweight alternative
to the explicit use of external database systems.
Moreover, they extend one of the classical
application areas of logic programming to functional logic programs.
We present the concept, its use and an implementation
in a Prolog-based compiler.
}
}

