logic programming

Also found in: Dictionary, Thesaurus, Acronyms, Wikipedia.

logic programming

(artificial intelligence, programming, language)
A declarative, relational style of programming based on first-order logic. The original logic programming language was Prolog. The concept is based on Horn clauses.

The programmer writes a "database" of "facts", e.g.


("water is wet") and "rules", e.g.

mortal(X) :- human(X).

("X is mortal is implied by X is human"). Facts and rules are collectively known as "clauses".

The user supplies a "goal" which the system attempts to prove using "resolution" or "backward chaining". This involves matching the current goal against each fact or the left hand side of each rule using "unification". If the goal matches a fact, the goal succeeds; if it matches a rule then the process recurses, taking each sub-goal on the right hand side of the rule as the current goal. If all sub-goals succeed then the rule succeeds.

Each time a possible clause is chosen, a "choice point" is created on a stack. If subsequent resolution fails then control eventually returns to the choice point and subsequent clauses are tried. This is known as "backtracking".

Clauses may contain logic variables which take on any value necessary to make the fact or the left hand side of the rule match a goal. Unification binds these variables to the corresponding subterms of the goal. Such bindings are associated with the choice point at which the clause was chosen and are undone when backtracking reaches that choice point.

The user is informed of the success or failure of his first goal and if it succeeds and contains variables he is told what values of those variables caused it to succeed. He can then ask for alternative solutions.
This article is provided by FOLDOC - Free Online Dictionary of Computing (foldoc.org)
References in periodicals archive ?
Older, "Applying interval arithmetic to real, integer, and Boolean constraints," The Journal of Logic Programming, vol.
A clinical guideline is composed of a few clinical rules, and each of the rules can be represented by a logic programming expression.
The applications of pressure sensors start the timer, infrared distance measurement back through fuzzy logic programming operation, it is easy to implement and has easy production.
[22] Muggleton, S.: Inductive logic programming. New Generation Computing 8 (1991) 295-318
In April 2009, Yokogawa launched the UTAdvanced series of digital indicating controllers featuring sequence control based on the widely used ladder logic programming language.
In April of this year, Yokogawa launched the UTAdvanced series of digital indicating controllers featuring sequence control based on the widely used ladder logic programming language.
Armed with my newly expanded legal understanding, I produced the extra work, and also published it as Fundamental Errors in Legal Logic Programming. [7] The paper was a strident critique of logic programming and became relatively high profile, with discussion of its view in the IT section of The Guardian newspaper.
5.3 Diagnostic reasoning based on logic programming
Logic programming environments: Dynamic program analysis and debugging.
The class covered the thermodynamics of energy conservation, theory and practice of direct digital control, ladder logic programming, and hands-on troubleshooting.
What remains is alternative programming paradigms like functional and logic programming, and material related to the implementation of programming languages.