We propose a categorical framework which formalizes and extends the
syntax, operational semantics and declarative model theory of a broad
range of logic programming languages. A program is interpreted in an
indexed category in such a way that the base category contains all the
possible states which can occur during the execution of the program
(such as global constraints or type information), while each fiber
encodes the logic at each state.
We define appropriate notions of categorical resolution and models,
and we prove the related correctness and completeness properties.