  With the technology of the time, Kowalski's seminal 1974 paper {\em Predicate
Logic as a Programming Language} was a breakthrough for the use of logic in
computer science. It introduced two fundamental ideas: on the declarative side,
the use of the Horn clause logic fragment of classical logic, which was soon
extended with negation as failure, on the procedural side the procedural
interpretation which made it possible to write algorithms in the formalism.
  Since then, strong progress was made both on the declarative understanding of
the logic programming formalism and in automated reasoning technologies,
particularly in SAT solving, Constraint Programming and Answer Set Programming.
This has paved the way for the development of an extension of logic programming
that embodies a more pure view of logic as a modelling language and its role
for problem solving.
  In this paper, we present the \idp language and system. The language is
essentially classical logic extended with one of logic programmings most
important contributions to knowledge representation: the representation of
complex definitions as rule sets under well-founded semantics. The system is a
knowledge base system: a system in which complex declarative information is
stored in a knowledge base which can be used to solve different computational
problems by applying multiple forms of inference. In this view, theories are
declarative modellings, bags of information, descriptions of possible states of
affairs. They are neither procedures nor descriptions of computational
problems. As such, the \idp language and system preserve the fundamental idea
of a declarative reading of logic programs, while they break with the
fundamental idea of the procedural interpretation of logic programs.

Logic in Computer Science