Abstract

During the past 20 years, logic programming has grown from a new discipline to a mature field. Logic programming is a direct outgrowth of work that started in automated theorem proving. The first programs based on logic were developed by Colmerauer and his students [Colmerauer et al., 1973] at the University of Marseilles in 1972 where the logic programming language PROLOG was developed. Kowalski [1974] published the first paper that formally described logic as a programming language in 1974. Alain Colmerauer and Robert Kowalski are considered the founders of the field of logic programming, van Emden and Kowalski [van Emden and Kowalski, 1976] laid down the theoretical foundation for logic programming. In the past decade the field has witnessed rapid progress with the publication of several theoretical results which have provided a strong foundation for logic programming and extended the scope of logic as a programming language. The objective of this article is to outline theoretical results that have been developed in the field of logic programming with particular emphasis to disjunctive logic programming. Disjunctive logic programming is an extension of logic programming and is useful in representing and reasoning with indefinite information. A disjunctive logic program consists of a finite set of implicitly quantified universal clauses of the form: . . . A1 , . . . , Am ← B1 , . . . , Bn m > 0 and n ≥ 0 (1) . . . where the Ai’s and the Bj’S are atoms. The atoms in the left of the implication sign form a disjunction and is called the head of the formula and those on the right form a conjunction and is called the body of the formula. The formula is read as “A1 or A2 or ... or Am if B1 and B2 and ... and Bn.” There are several forms of the formula that one usually distinguishes. If the body of the formula is empty, and the head is not, the formula is referred to as a fact. If both are not empty the formula is referred to as a procedure.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call