Abstract
We describe an approach to logic programming where the execution of a pure logic program is ordered on "temporal" values in the program. The resulting programs are relational and avoid a premature commitment to data structures. This is a strong advantage in a programming language. We present the programming language Starlog as an example of this approach and give a summary of its denotational and operational semantics. Despite being a pure logic language with a monotonic semantics the language is still able to directly mutate data, including assignment of values to variables. Using sophisticated implementation techniques, including bottom-up execution, constraints and the compilation of relations to data structures, we claim that the approach can be executed efficiently.