Takes an innovative, model-theoretic approach to logic programming. The authors begin with the fundamental notion of datasets, i.e., sets of ground atoms. They then introduce actions, i.e., additions and deletions of ground atoms; and define dynamic logic programs as sets of action definitions.