SlideShare a Scribd company logo
2
Most read
4
Most read
5
Most read
Prolog Programming
BY: MITUL K. DESAI
What is Prolog?
 Prolog stands for programming in logic (PROgrammation en LOgique).
 Prolog is the most widely used language to have been inspired by logic
programming research.
 Prolog is the only successful example of the family of logic programming
languages.
 A Prolog program is a theory written in a subset of first-order logic, called
Horn clause logic.
 Prolog is declarative. A Prolog programmer concentrates on what the program
needs to do, not on how to do it.
A Little History
 Prolog was invented by Alain Colmerauer, a professor of computer science at
the university of Aix-Marseille in France, in 1972.
 The first application of Prolog was in natural language processing.
 Its theoretical underpinning are due to Donald Loveland of Duke university
through Robert Kowalski (formerly) of the university of Edinburgh
Main Advantages
 Ease of representing knowledge.
 Natural support of pattern-matching.
 Natural support of meta-programming.
 Meaning of programs is independent of how they are executed.
 Simple connection between programs and computed answers and
specifications.
 No need to distinguish programs from databases.
Anatomy of Prolog Program
 Prolog programs are made up of facts and rules.
 A fact asserts some property of an object, or relation between two or more
objects.
e.g. parent(jane,alan).
Can be read as “Jane is the parent of Alan.”
 Rules allow us to infer that a property or relationship holds based on
preconditions.
e.g. parent(X,Y) :- mother(X,Y).
= “Person X is the parent of person Y if X is Y‟s mother.”
Predicate Definitions
 Both facts and rules are predicate definitions.
 ‘Predicate’is the name given to the word occurring before the bracket in a fact
or rule:
parent (jane,alan).
 By defining a predicate you are specifying which information needs to be
known for the property denoted by the predicate to be true.
Predicate name
Clauses
 Predicate definitions consist of clauses.
= An individual definition (whether it be a fact or rule).
e.g. mother(jane, alan). = Fact
parent(P1,P2):- mother(P1,P2). = Rule
 A clause consists of a head
 And sometimes a body.
-- Facts don‟t have a body because they are always true.
head body
Arguments
 A predicate head consists of a predicate name and sometimes some arguments
contained within brackets and separated by commas.
mother(jane, alan).
 A body can be made up of any number of subgoals (calls to other predicates) and
terms.
 Arguments also consist of terms, which can be:
-- Constants e.g. jane,
-- Variables e.g. Person1, or
-- Compound terms
Predicate name Arguments
Terms: Constants
Constants can either be:
 Numbers:
 integers are the usual form (e.g. 1, 0, -1, etc), but
 floating-point numbers can also be used (e.g. 3.0E7)
 Symbolic constants:
 always start with a lower case alphabetic character and contain any mixture of
letters, digits, and underscores (but no spaces, punctuation, or an initial capital).
 e.g. abc, big_long_constant, x4_3t.
 String constants:
 are anything between single quotes e.g. „Like this‟.
Terms: Variables
 Variables always start with an upper case alphabetic character or an underscore.
 Other than the first character they can be made up of any mixture of letters, digits, and
underscores.
e.g. X, ABC, _89two5, _very_long_variable
 There are no “types” for variables (or constants) – a variable can take any value.
 All Prolog variables have a “local” scope:
--- they only keep the same value within a clause; the same variable used outside
of a clause does not inherit the value (this would be a “global” scope).
Naming Tips
 Use real English when naming predicates, constants, and variables.
e.g. “John wants to help Somebody.”
Could be: wants(john, to_help, Somebody).
Not: x87g(j,_789).
 Use a Verb Subject Object structure:
wants(john, to_help).
 BUT do not assume Prolog Understands the meaning of your chosen
names!
-- You create meaning by specifying the body (i.e. preconditions) of a clause.
Using Predicate Definitions
Command line programming is tedious
e.g. | ?- write(„What is your name?‟), nl, read(X),
write(„Hello „), write(X).
We can define predicates to automate commands:
| ?- greetings.
What is your name?
|: tim.
Hello tim
X = tim ?
yes
Prolog Code Terminal
greetings:-
write(‘What is your name?’),
nl,
read(X),
write(‘Hello ‘),
write(X).
Running prolog program on windows
After SWI-Prolog has been installed on a Windows system, the following important new things
are available to the user:
 A folder (called directory in the remainder of this document) called swipl containing the
executable, libraries, etc., of the system.
No files are installed outside this directory.
 A program swipl-win.exe, providing a window for interaction with Prolog.
 The program swipl.exe is a version of SWI-Prolog that runs in a console window.
 The file extension .p1 is associated with the program swipl-win.exe.
 Opening a .p1 file will cause swipl-win.exe to start, change directory to the directory in which
the file to open resides, and load this file.
Executing a query
After loading a program, one can ask Prolog queries about the program.
?- likes (sam, x) .
X = dahl ;
X = tandoori ;
……
X = chips ;
?-
Prolog Execution
Most Prolog clauses have both a declarative reading and a procedural reading.
Whenever possible, the declarative reading is to be preferred.
mother (X, Y) :- parent (X, Y), female (X) .
Declarative reading: x is the mother of y
if x is parent of y and x is female
Prolog Execution
Procedural reading :
To show that x is the mother of y, first show that x is a parent of y, then show that x is female.
Clauses:
parent (john, bill) .
parent (jane, bill) .
female(jane) .
Query:
| ?- mother (M, bill) .
Prolog Execution
 The clause of mother /2 will be located, and the unification X=M, Y=bill will occur.
 Then parent (M, bill) will be attempted, resulting in the unification M=john.
 Next, female (john) will be attempted, but will fail.
 Prolog will backtrack to parent (M, bill) and look for another solution for this; it will
succeed and unify M=jane.
 Finally, it will attempt female (jane), and succeed; so the inquiry will succeed,
having performed the unification M=jane.
Thank You

More Related Content

PDF
08 subprograms
PDF
RESEARCH METHODOLOGY AND IPR.pdf
PPTX
Array ppt
PPTX
Optical fiber communiction
PPT
JavaScript Tutorial
PPT
Reinforcement learning
PPTX
Knowledge representation and Predicate logic
PDF
Introduction to ReactJS
08 subprograms
RESEARCH METHODOLOGY AND IPR.pdf
Array ppt
Optical fiber communiction
JavaScript Tutorial
Reinforcement learning
Knowledge representation and Predicate logic
Introduction to ReactJS

What's hot (20)

PPTX
PROLOG: Introduction To Prolog
PPT
First order logic
PPT
Introduction to prolog
PDF
Logic programming (1)
PPTX
Prolog Programming Language
PDF
Ai lab manual
PPTX
Unification and Lifting
PDF
First order logic
PDF
Algorithms Lecture 2: Analysis of Algorithms I
PPTX
ProLog (Artificial Intelligence) Introduction
PPT
Prolog basics
PPTX
Artificial Intelligence Notes Unit 3
PPTX
Resolution method in AI.pptx
PPTX
Asymptotic Notation
PDF
Algorithms Lecture 1: Introduction to Algorithms
PPTX
knowledge representation using rules
PPT
AI Lecture 3 (solving problems by searching)
PDF
First Order Logic resolution
PPT
Predicate logic_2(Artificial Intelligence)
PPTX
Artificial Intelligence- TicTacToe game
PROLOG: Introduction To Prolog
First order logic
Introduction to prolog
Logic programming (1)
Prolog Programming Language
Ai lab manual
Unification and Lifting
First order logic
Algorithms Lecture 2: Analysis of Algorithms I
ProLog (Artificial Intelligence) Introduction
Prolog basics
Artificial Intelligence Notes Unit 3
Resolution method in AI.pptx
Asymptotic Notation
Algorithms Lecture 1: Introduction to Algorithms
knowledge representation using rules
AI Lecture 3 (solving problems by searching)
First Order Logic resolution
Predicate logic_2(Artificial Intelligence)
Artificial Intelligence- TicTacToe game
Ad

Similar to Prolog Programming : Basics (20)

PDF
Prolog,Prolog Programming IN AI.pdf
PPTX
Prolog final
PPTX
UOS-BSIT-3811-Artificial-Intelligence-Introduction-to-prolog-PDF.pptx
PPTX
Explain Knowledge Representation(prolog) in AI.pptx
PPTX
Ics1019 ics5003
PDF
ICS1019.pdf
PPTX
logic for Advanced Programming Practice.pptx
PPTX
An introduction to Prolog language slide
PPT
Prolog fundamentals for beeginers in windows.ppt
PPT
01bkb04p.ppt
PPT
knowledge representation in artificial intellegence.ppt
PPTX
MACHINE LEARNING-LEARNING RULE
PPT
Chaps 1-3-ai-prolog
PPTX
continuity of module 2.pptx
PPTX
Prolog (present)
PDF
PROLOG in artificial intelligence(Basic of pprolog)).pdf
DOCX
AI Lab Manual.docx
PPTX
Ics1019 ics5003
PPTX
Plc part 4
PPTX
ARTIFICIAL INTELLIGENCE---UNIT 4.pptx
Prolog,Prolog Programming IN AI.pdf
Prolog final
UOS-BSIT-3811-Artificial-Intelligence-Introduction-to-prolog-PDF.pptx
Explain Knowledge Representation(prolog) in AI.pptx
Ics1019 ics5003
ICS1019.pdf
logic for Advanced Programming Practice.pptx
An introduction to Prolog language slide
Prolog fundamentals for beeginers in windows.ppt
01bkb04p.ppt
knowledge representation in artificial intellegence.ppt
MACHINE LEARNING-LEARNING RULE
Chaps 1-3-ai-prolog
continuity of module 2.pptx
Prolog (present)
PROLOG in artificial intelligence(Basic of pprolog)).pdf
AI Lab Manual.docx
Ics1019 ics5003
Plc part 4
ARTIFICIAL INTELLIGENCE---UNIT 4.pptx
Ad

Recently uploaded (20)

PDF
01-Introduction-to-Information-Management.pdf
PDF
Anesthesia in Laparoscopic Surgery in India
PDF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
PPTX
Cell Structure & Organelles in detailed.
PPTX
The Healthy Child – Unit II | Child Health Nursing I | B.Sc Nursing 5th Semester
PDF
TR - Agricultural Crops Production NC III.pdf
PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
PDF
RMMM.pdf make it easy to upload and study
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PPTX
Pharma ospi slides which help in ospi learning
PDF
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
PPTX
Week 4 Term 3 Study Techniques revisited.pptx
PPTX
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
PPTX
Microbial diseases, their pathogenesis and prophylaxis
PPTX
BOWEL ELIMINATION FACTORS AFFECTING AND TYPES
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PDF
Complications of Minimal Access Surgery at WLH
PPTX
Institutional Correction lecture only . . .
PDF
Business Ethics Teaching Materials for college
PDF
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
01-Introduction-to-Information-Management.pdf
Anesthesia in Laparoscopic Surgery in India
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
Cell Structure & Organelles in detailed.
The Healthy Child – Unit II | Child Health Nursing I | B.Sc Nursing 5th Semester
TR - Agricultural Crops Production NC III.pdf
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
RMMM.pdf make it easy to upload and study
Supply Chain Operations Speaking Notes -ICLT Program
Pharma ospi slides which help in ospi learning
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
Week 4 Term 3 Study Techniques revisited.pptx
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
Microbial diseases, their pathogenesis and prophylaxis
BOWEL ELIMINATION FACTORS AFFECTING AND TYPES
2.FourierTransform-ShortQuestionswithAnswers.pdf
Complications of Minimal Access Surgery at WLH
Institutional Correction lecture only . . .
Business Ethics Teaching Materials for college
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf

Prolog Programming : Basics

  • 2. What is Prolog?  Prolog stands for programming in logic (PROgrammation en LOgique).  Prolog is the most widely used language to have been inspired by logic programming research.  Prolog is the only successful example of the family of logic programming languages.  A Prolog program is a theory written in a subset of first-order logic, called Horn clause logic.  Prolog is declarative. A Prolog programmer concentrates on what the program needs to do, not on how to do it.
  • 3. A Little History  Prolog was invented by Alain Colmerauer, a professor of computer science at the university of Aix-Marseille in France, in 1972.  The first application of Prolog was in natural language processing.  Its theoretical underpinning are due to Donald Loveland of Duke university through Robert Kowalski (formerly) of the university of Edinburgh
  • 4. Main Advantages  Ease of representing knowledge.  Natural support of pattern-matching.  Natural support of meta-programming.  Meaning of programs is independent of how they are executed.  Simple connection between programs and computed answers and specifications.  No need to distinguish programs from databases.
  • 5. Anatomy of Prolog Program  Prolog programs are made up of facts and rules.  A fact asserts some property of an object, or relation between two or more objects. e.g. parent(jane,alan). Can be read as “Jane is the parent of Alan.”  Rules allow us to infer that a property or relationship holds based on preconditions. e.g. parent(X,Y) :- mother(X,Y). = “Person X is the parent of person Y if X is Y‟s mother.”
  • 6. Predicate Definitions  Both facts and rules are predicate definitions.  ‘Predicate’is the name given to the word occurring before the bracket in a fact or rule: parent (jane,alan).  By defining a predicate you are specifying which information needs to be known for the property denoted by the predicate to be true. Predicate name
  • 7. Clauses  Predicate definitions consist of clauses. = An individual definition (whether it be a fact or rule). e.g. mother(jane, alan). = Fact parent(P1,P2):- mother(P1,P2). = Rule  A clause consists of a head  And sometimes a body. -- Facts don‟t have a body because they are always true. head body
  • 8. Arguments  A predicate head consists of a predicate name and sometimes some arguments contained within brackets and separated by commas. mother(jane, alan).  A body can be made up of any number of subgoals (calls to other predicates) and terms.  Arguments also consist of terms, which can be: -- Constants e.g. jane, -- Variables e.g. Person1, or -- Compound terms Predicate name Arguments
  • 9. Terms: Constants Constants can either be:  Numbers:  integers are the usual form (e.g. 1, 0, -1, etc), but  floating-point numbers can also be used (e.g. 3.0E7)  Symbolic constants:  always start with a lower case alphabetic character and contain any mixture of letters, digits, and underscores (but no spaces, punctuation, or an initial capital).  e.g. abc, big_long_constant, x4_3t.  String constants:  are anything between single quotes e.g. „Like this‟.
  • 10. Terms: Variables  Variables always start with an upper case alphabetic character or an underscore.  Other than the first character they can be made up of any mixture of letters, digits, and underscores. e.g. X, ABC, _89two5, _very_long_variable  There are no “types” for variables (or constants) – a variable can take any value.  All Prolog variables have a “local” scope: --- they only keep the same value within a clause; the same variable used outside of a clause does not inherit the value (this would be a “global” scope).
  • 11. Naming Tips  Use real English when naming predicates, constants, and variables. e.g. “John wants to help Somebody.” Could be: wants(john, to_help, Somebody). Not: x87g(j,_789).  Use a Verb Subject Object structure: wants(john, to_help).  BUT do not assume Prolog Understands the meaning of your chosen names! -- You create meaning by specifying the body (i.e. preconditions) of a clause.
  • 12. Using Predicate Definitions Command line programming is tedious e.g. | ?- write(„What is your name?‟), nl, read(X), write(„Hello „), write(X). We can define predicates to automate commands: | ?- greetings. What is your name? |: tim. Hello tim X = tim ? yes Prolog Code Terminal greetings:- write(‘What is your name?’), nl, read(X), write(‘Hello ‘), write(X).
  • 13. Running prolog program on windows After SWI-Prolog has been installed on a Windows system, the following important new things are available to the user:  A folder (called directory in the remainder of this document) called swipl containing the executable, libraries, etc., of the system. No files are installed outside this directory.  A program swipl-win.exe, providing a window for interaction with Prolog.  The program swipl.exe is a version of SWI-Prolog that runs in a console window.  The file extension .p1 is associated with the program swipl-win.exe.  Opening a .p1 file will cause swipl-win.exe to start, change directory to the directory in which the file to open resides, and load this file.
  • 14. Executing a query After loading a program, one can ask Prolog queries about the program. ?- likes (sam, x) . X = dahl ; X = tandoori ; …… X = chips ; ?-
  • 15. Prolog Execution Most Prolog clauses have both a declarative reading and a procedural reading. Whenever possible, the declarative reading is to be preferred. mother (X, Y) :- parent (X, Y), female (X) . Declarative reading: x is the mother of y if x is parent of y and x is female
  • 16. Prolog Execution Procedural reading : To show that x is the mother of y, first show that x is a parent of y, then show that x is female. Clauses: parent (john, bill) . parent (jane, bill) . female(jane) . Query: | ?- mother (M, bill) .
  • 17. Prolog Execution  The clause of mother /2 will be located, and the unification X=M, Y=bill will occur.  Then parent (M, bill) will be attempted, resulting in the unification M=john.  Next, female (john) will be attempted, but will fail.  Prolog will backtrack to parent (M, bill) and look for another solution for this; it will succeed and unify M=jane.  Finally, it will attempt female (jane), and succeed; so the inquiry will succeed, having performed the unification M=jane.