
This makes Prolog (and other logic programming languages) particularly useful for database, symbolic mathematics, and language parsing applications. If the negated query can be refuted, i.e., an instantiation for all free variables is found that makes the union of clauses and the singleton set consisting of the negated query false, it follows that the original query, with the found instantiation applied, is a logical consequence of the program. Given a query, the Prolog engine attempts to find a resolution refutation of the negated query. Relations and queries are constructed using Prolog's single data type, the term. In Prolog, program logic is expressed in terms of relations, and a computation is initiated by running a query over these relations. Main article: Prolog syntax and semantics

Prolog is well-suited for specific tasks that benefit from rule-based logical queries such as searching databases, voice control systems, and filling templates. Modern Prolog environments support the creation of graphical user interfaces, as well as administrative and networked applications. The language has been used for theorem proving, expert systems, term rewriting, type systems, and automated planning, as well as its original intended field of use, natural language processing. Prolog was one of the first logic programming languages and remains the most popular such language today, with several free and commercial implementations available. The language was developed and implemented in Marseille, France, in 1972 by Alain Colmerauer with Philippe Roussel, based on Robert Kowalski's procedural interpretation of Horn clauses. A computation is initiated by running a query over these relations.

Prolog has its roots in first-order logic, a formal logic, and unlike many other programming languages, Prolog is intended primarily as a declarative programming language: the program logic is expressed in terms of relations, represented as facts and rules.


Prolog is a logic programming language associated with artificial intelligence and computational linguistics. Part 2: Modules-Edition 1 (June 2000 21 years ago ( 2000-06))ī-Prolog, Ciao, ECLiPSe, GNU Prolog, Poplog Prolog, P#, Quintus Prolog, SICStus, Strawberry, SWI-Prolog, Tau Prolog, tuProlog, WIN-PROLOG, XSB, YAP.ĬHR, Clojure, Datalog, Erlang, KL0, KL1, Mercury, Oz, Strand, Visual Prolog, XSB
