Prolog Programming Language: Difference between revisions

From GM-RKB
Jump to navigation Jump to search
m (Text replace - " Geoffrey I. Webb" to " Geoffrey I. Webb")
 
m (Text replacement - ". " to ". ")
 
(22 intermediate revisions by 3 users not shown)
Line 1: Line 1:
A [[Prolog Programming Language]] is a [[Logic-based Programming Language]] based on [[Horn Logic]].
A [[Prolog Programming Language]] is a [[General-Purpose Programming Language|general-purse]] [[Logic-based Programming Language]] based on [[Horn Logic]].
* <B><U>AKA</U>:</B> [[Prolog]], [[Prolog Language]].
* <B>AKA:</B> [[Prolog Programming Language|Programming with Logic]].
* <B><U>Context</U>:</B>
* <B>Context</U>:</B>
** It is a [[General-Purpose Programming Language]].
** It can be used to specify a [[Prolog Program]].
** It is a [[Declarative Programming Language]].
** It can be associated to a [[Prolog Program]].
* <B><U>Context</U>:</B>
** It can describe [[Fact]]s and [[Rule]]s in the form of [[Goal]]s.
** It can describe [[Fact]]s and [[Rule]]s in the form of [[Goal]]s.
** General form: p:- p1, p2, …, pN
** General form: p:- p1, p2, …, pN
Line 11: Line 8:
*** pi is a subgoal
*** pi is a subgoal
** It can construct [[Prolog Relation]]s and [[Prolog Query|Prolog Queries]]  
** It can construct [[Prolog Relation]]s and [[Prolog Query|Prolog Queries]]  
** It has a single data type, the [[Prolog Term]].  
** It has a single data type, the [[Prolog Term]].
** It can be used for:
** It was developed in Marseilles in [[1972]] by [[Alain Colmerauer]] and [[Philippe Roussel]].
*** [[Artificial Intelligence Program]]s.
* <B>Example(s):</B>
*** [[Natural Language Processing Program]]s.
** [[GNU Prolog]].
* <B><U>See:</U></B> [[Prolog Program]]; [[Datalog Programming Language]]; [[LISP Programming Language]]; [[Prolog Glossary]]; [[Clause]]; [[First-Order Logic]]; [[Inductive Logic Programming]]; [[Logic Program]].
** …
* <B>Counter-Example(s):</B>
** [[LISP Programming Language]].
* <B>See:</B> [[Datalog Programming Language]]; [[Prolog Glossary]]; [[Clause]]; [[First-Order Logic]]; [[Inductive Logic Programming]]; [[Declarative Programming Language]].
 
----
----
----
----
==References ==


===2011===
== References ==
* ([[Sammut & Webb, 2011]]) &rArr; [[Claude Sammut]]. [[Geoffrey I. Webb]]. (2011). "Prolog." In: ([[Sammut & Webb, 2011]]) p.811


===2009===
=== 2011 ===
* (Wikipedia, 2009) &rArr; http://en.wikipedia.org/wiki/Prolog
* ([[Sammut & Webb, 2011]]) ⇒ [[Claude Sammut]], and [[Geoffrey I. Webb]]. ([[2011]]). “Prolog.” In: ([[Sammut & Webb, 2011]]) p.811
 
=== 2009 ===
* (Wikipedia, 2009) http://en.wikipedia.org/wiki/Prolog
** Prolog is a logic programming language. It is a general purpose language often associated with artificial intelligence and computational linguistics. It has a purely logical subset, called "pure Prolog", as well as a number of extralogical features.
** Prolog is a logic programming language. It is a general purpose language often associated with artificial intelligence and computational linguistics. It has a purely logical subset, called "pure Prolog", as well as a number of extralogical features.
** Prolog has its roots in formal logic, and unlike many other programming languages, Prolog is declarative: The program logic is expressed in terms of relations, and execution is triggered by running queries over these relations. Relations and queries are constructed using Prolog's single data type, the term. Relations are defined by clauses. Given a query, the Prolog engine attempts to find a resolution refutation of the negated query. 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. This makes Prolog (and other logic programming languages) particularly useful for database, symbolic mathematics, and language parsing applications. Because Prolog allows impure predicates, checking the truth value of certain special predicates may have some deliberate side effect, such as printing a value to the screen. This permits the programmer to use some amount of conventional imperative programming when the logical paradigm is inconvenient.
** Prolog has its roots in formal logic, and unlike many other programming languages, Prolog is declarative: The program logic is expressed in terms of relations, and execution is triggered by running queries over these relations. Relations and queries are constructed using Prolog's single data type, the term. Relations are defined by clauses. Given a query, the Prolog engine attempts to find a resolution refutation of the negated query. 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. This makes Prolog (and other logic programming languages) particularly useful for database, symbolic mathematics, and language parsing applications. Because Prolog allows impure predicates, checking the truth value of certain special predicates may have some deliberate side effect, such as printing a value to the screen. This permits the programmer to use some amount of conventional imperative programming when the logical paradigm is inconvenient.
Line 30: Line 32:


----
----
__NOTOC__
__NOTOC__
[[Category:Concept]]
[[Category:Concept]]

Latest revision as of 13:26, 2 August 2022

A Prolog Programming Language is a general-purse Logic-based Programming Language based on Horn Logic.



References

2011

2009

  • (Wikipedia, 2009) ⇒ http://en.wikipedia.org/wiki/Prolog
    • Prolog is a logic programming language. It is a general purpose language often associated with artificial intelligence and computational linguistics. It has a purely logical subset, called "pure Prolog", as well as a number of extralogical features.
    • Prolog has its roots in formal logic, and unlike many other programming languages, Prolog is declarative: The program logic is expressed in terms of relations, and execution is triggered by running queries over these relations. Relations and queries are constructed using Prolog's single data type, the term. Relations are defined by clauses. Given a query, the Prolog engine attempts to find a resolution refutation of the negated query. 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. This makes Prolog (and other logic programming languages) particularly useful for database, symbolic mathematics, and language parsing applications. Because Prolog allows impure predicates, checking the truth value of certain special predicates may have some deliberate side effect, such as printing a value to the screen. This permits the programmer to use some amount of conventional imperative programming when the logical paradigm is inconvenient.
    • The language was first conceived by a group around Alain Colmerauer in Marseille, France, in the early 1970s. According to Robert Kowalski, the first Prolog system was developed in 1972 by Alain Colmerauer and Phillipe Roussel. [1] However, David H. D. Warren created the Warren Abstract Machine, an early and influential Prolog compiler. Prolog was one of the first logic programming languages, and remains among the most popular such languages today, with many free and commercial implementations available. While initially aimed at natural language processing, the language has since then stretched far into other areas like theorem proving, expert systems, games, automated answering systems, ontologies and sophisticated control systems, and modern Prolog environments support the creation of graphical user interfaces, as well as administrative and networked applications.