Logic programming is concerned with the use of logic as a programming language. The main manifestation of this computing paradigm is in the various versions of Prolog which are now available, in which computation is viewed as deduction from sets of Horn clauses, although there is also growing interest in the related form known as answer set programming, see . The reference  contains a good survey of the growth of logic programming over the last twenty-five years both as a stand-alone programming language and as a software component of large information systems. One advantage a logic program P has over conventional imperative and object oriented programs is that it has a natural machine-independent meaning, namely, its logical meaning. This is often referred to as its declarative semantics, and is usually taken to be some 'standard' model canonically associated with P. Unfortunately, it is often the case that there are many possible choices for the standard model, some even taken in many-valued logic, which do not in general coincide and all of which have a claim to be 'the natural choice' depending on one's view of non-monotonic reasoning.
Seda, A. K.,
& Hitzler, P.
(2000). Classes of Logic Programs which Possess Unique Supported Models. .