Skip to content
Last Dictionary

Prolog

proper noun/PROH-log/Also: programmation en logique

In plain wordsA programming language from 1972 in which you state facts and rules in logic and then ask questions; the computer finds answers by searching for proofs.

  1. A logic programminglogic programming, n.: A style of programming in which you write down facts and rules in logic and then ask questions; the computer works out the answers itself by logical deduction. language in which the programmer states what is true, as Horn clauses of first-order logic, and the system answers a query by searching for a proof that it follows from those statements. The interpreter uses SLD resolution: it matches goals against rule heads by unification, works through subgoals depth-first and left to right, and backtracks on failure, returning the variable bindings that make the query true. Prolog suited parsing, expert systemsexpert system, n.: A program that stores a human specialist's know-how as many if–then rules and uses them to give advice or make decisions in a narrow field, such as diagnosing infections or configuring computers., symbolic reasoning and rapid prototyping; features such as the cut and negation as failure trade logical purity for control. David H. D. Warren's DEC-10 compiler (1977) and the Warren Abstract Machine (1983) made it efficient, and an ISO standard followed in 1995. It became the favored AI language in Europe and Japan, as LispLisp, prop. n.: A programming language invented in 1958 for AI research, in which programs and data are written the same way, as nested lists in parentheses. It was the main language of AI for decades. was in the United States.

    In Prolog you state family relationships as facts and rules, then ask who is whose grandparent.

Origin

Created in 1972 by Alain Colmerauer and Philippe Roussel at the University of Aix-Marseille, building on Robert Kowalski's procedural interpretation of Horn clauses, worked out in collaboration between Marseille and Edinburgh. The name, from programmation en logique, was chosen by Roussel at his wife's suggestion.

Usage note

A Prolog-like logic language was chosen as the basis of Japan's Fifth Generation Computer Systems projectFifth Generation Computer Systems project, prop. n.: Japan's government-backed effort, from 1982 to 1992, to build a new kind of computer that reasons with logic using many processors at once. It fell short, but it alarmed other countries into launching AI programs of their own..

Related

See also
  • logic programminglogic programming, n.: A style of programming in which you write down facts and rules in logic and then ask questions; the computer works out the answers itself by logical deduction.
  • LispLisp, prop. n.: A programming language invented in 1958 for AI research, in which programs and data are written the same way, as nested lists in parentheses. It was the main language of AI for decades.
  • Fifth Generation Computer Systems projectFifth Generation Computer Systems project, prop. n.: Japan's government-backed effort, from 1982 to 1992, to build a new kind of computer that reasons with logic using many processors at once. It fell short, but it alarmed other countries into launching AI programs of their own.
  • expert systemexpert system, n.: A program that stores a human specialist's know-how as many if–then rules and uses them to give advice or make decisions in a narrow field, such as diagnosing infections or configuring computers.
  • symbolic AIsymbolic AI, n.: An approach to AI that writes knowledge down as human-readable symbols and rules, such as 'every bird has wings', and reasons by manipulating them step by step instead of learning patterns from data.
  • backward chainingbackward chaining, n.: A way of reasoning that starts from the question ('is this true?') and works backward, looking for rules that would prove it and then checking whether their conditions hold.

Sources

  1. Colmerauer, A. & Roussel, P. (1993). The Birth of Prolog. Second ACM SIGPLAN Conference on History of Programming Languages (HOPL-II); reprinted in History of Programming Languages II. New York: ACM Press, 1996.

Mentioned in

backward chainingbackward chaining, n.: A way of reasoning that starts from the question ('is this true?') and works backward, looking for rules that would prove it and then checking whether their conditions hold., depth-first searchdepth-first search, n.: A way of exploring a maze or network by following one path as far as it goes, then backing up to the most recent fork and trying the next branch., LispLisp, prop. n.: A programming language invented in 1958 for AI research, in which programs and data are written the same way, as nested lists in parentheses. It was the main language of AI for decades., logic programminglogic programming, n.: A style of programming in which you write down facts and rules in logic and then ask questions; the computer works out the answers itself by logical deduction., answer set programminganswer set programming, n.: A way to solve hard puzzles and scheduling problems by describing in logical rules what a valid solution looks like; a solver then finds the arrangements that fit those rules., DatalogDatalog, prop. n.: A small logic language for asking questions of a database with rules, including rules that refer to themselves, such as 'X is an ancestor of Y if X is a parent of an ancestor of Y'., Fifth Generation Computer Systems projectFifth Generation Computer Systems project, prop. n.: Japan's government-backed effort, from 1982 to 1992, to build a new kind of computer that reasons with logic using many processors at once. It fell short, but it alarmed other countries into launching AI programs of their own., Horn clauseHorn clause, n.: A simple, restricted form of logical rule ('if these conditions all hold, then this one conclusion holds') that computers can reason with very efficiently., resolutionresolution, n.: A mechanical step of logical reasoning: from 'A or B' and 'not A or C', conclude 'B or C'. Repeating it can demonstrate any conclusion that genuinely follows from what is known., unificationunification, n.: Finding values for the blanks in two logical patterns so that they become identical, for example matching 'parent(X, bob)' with 'parent(alice, Y)' by setting X to alice and Y to bob.