SlideShare ist ein Scribd-Unternehmen logo
1 von 18
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

Weitere ähnliche Inhalte

Was ist angesagt?

Introduction on Prolog - Programming in Logic
Introduction on Prolog - Programming in LogicIntroduction on Prolog - Programming in Logic
Introduction on Prolog - Programming in LogicVishal Tandel
 
10 logic+programming+with+prolog
10 logic+programming+with+prolog10 logic+programming+with+prolog
10 logic+programming+with+prologbaran19901990
 
5.5 back track
5.5 back track5.5 back track
5.5 back trackKrish_ver2
 
Inference in First-Order Logic
Inference in First-Order Logic Inference in First-Order Logic
Inference in First-Order Logic Junya Tanaka
 
Introduction TO Finite Automata
Introduction TO Finite AutomataIntroduction TO Finite Automata
Introduction TO Finite AutomataRatnakar Mikkili
 
Artificial intelligence and first order logic
Artificial intelligence and first order logicArtificial intelligence and first order logic
Artificial intelligence and first order logicparsa rafiq
 
First order logic in knowledge representation
First order logic in knowledge representationFirst order logic in knowledge representation
First order logic in knowledge representationSabaragamuwa University
 
Propositional logic
Propositional logicPropositional logic
Propositional logicRushdi Shams
 
Semantic net in AI
Semantic net in AISemantic net in AI
Semantic net in AIShahDhruv21
 
Problem solving agents
Problem solving agentsProblem solving agents
Problem solving agentsMegha Sharma
 
Artificial intelligence Prolog Language
Artificial intelligence Prolog LanguageArtificial intelligence Prolog Language
Artificial intelligence Prolog LanguageREHMAT ULLAH
 
Artificial Intelligence Searching Techniques
Artificial Intelligence Searching TechniquesArtificial Intelligence Searching Techniques
Artificial Intelligence Searching TechniquesDr. C.V. Suresh Babu
 
Chaps 1-3-ai-prolog
Chaps 1-3-ai-prologChaps 1-3-ai-prolog
Chaps 1-3-ai-prologsaru40
 
Lecture 26 local beam search
Lecture 26 local beam searchLecture 26 local beam search
Lecture 26 local beam searchHema Kashyap
 

Was ist angesagt? (20)

Ai lab manual
Ai lab manualAi lab manual
Ai lab manual
 
Introduction on Prolog - Programming in Logic
Introduction on Prolog - Programming in LogicIntroduction on Prolog - Programming in Logic
Introduction on Prolog - Programming in Logic
 
Finite Automata
Finite AutomataFinite Automata
Finite Automata
 
10 logic+programming+with+prolog
10 logic+programming+with+prolog10 logic+programming+with+prolog
10 logic+programming+with+prolog
 
5.5 back track
5.5 back track5.5 back track
5.5 back track
 
Inference in First-Order Logic
Inference in First-Order Logic Inference in First-Order Logic
Inference in First-Order Logic
 
Introduction TO Finite Automata
Introduction TO Finite AutomataIntroduction TO Finite Automata
Introduction TO Finite Automata
 
Artificial intelligence and first order logic
Artificial intelligence and first order logicArtificial intelligence and first order logic
Artificial intelligence and first order logic
 
First order logic in knowledge representation
First order logic in knowledge representationFirst order logic in knowledge representation
First order logic in knowledge representation
 
Analysis of algorithm
Analysis of algorithmAnalysis of algorithm
Analysis of algorithm
 
Propositional logic
Propositional logicPropositional logic
Propositional logic
 
Semantic net in AI
Semantic net in AISemantic net in AI
Semantic net in AI
 
Problem solving agents
Problem solving agentsProblem solving agents
Problem solving agents
 
Artificial intelligence Prolog Language
Artificial intelligence Prolog LanguageArtificial intelligence Prolog Language
Artificial intelligence Prolog Language
 
Planning
Planning Planning
Planning
 
Artificial Intelligence Searching Techniques
Artificial Intelligence Searching TechniquesArtificial Intelligence Searching Techniques
Artificial Intelligence Searching Techniques
 
Greedy algorithm
Greedy algorithmGreedy algorithm
Greedy algorithm
 
Problem Solving
Problem Solving Problem Solving
Problem Solving
 
Chaps 1-3-ai-prolog
Chaps 1-3-ai-prologChaps 1-3-ai-prolog
Chaps 1-3-ai-prolog
 
Lecture 26 local beam search
Lecture 26 local beam searchLecture 26 local beam search
Lecture 26 local beam search
 

Ähnlich wie Prolog Programming : Basics

Prolog,Prolog Programming IN AI.pdf
Prolog,Prolog Programming IN AI.pdfProlog,Prolog Programming IN AI.pdf
Prolog,Prolog Programming IN AI.pdfCS With Logic
 
UOS-BSIT-3811-Artificial-Intelligence-Introduction-to-prolog-PDF.pptx
UOS-BSIT-3811-Artificial-Intelligence-Introduction-to-prolog-PDF.pptxUOS-BSIT-3811-Artificial-Intelligence-Introduction-to-prolog-PDF.pptx
UOS-BSIT-3811-Artificial-Intelligence-Introduction-to-prolog-PDF.pptxqasim ali
 
An introduction to Prolog language slide
An introduction to Prolog language slideAn introduction to Prolog language slide
An introduction to Prolog language slide2021uam4641
 
Prolog fundamentals for beeginers in windows.ppt
Prolog  fundamentals for beeginers in windows.pptProlog  fundamentals for beeginers in windows.ppt
Prolog fundamentals for beeginers in windows.pptDrBhagirathPrajapati
 
Logic programming (1)
Logic programming (1)Logic programming (1)
Logic programming (1)Nitesh Singh
 
MACHINE LEARNING-LEARNING RULE
MACHINE LEARNING-LEARNING RULEMACHINE LEARNING-LEARNING RULE
MACHINE LEARNING-LEARNING RULEDrBindhuM
 
Prolog (present)
Prolog (present) Prolog (present)
Prolog (present) Melody Joey
 
ARTIFICIAL INTELLIGENCE---UNIT 4.pptx
ARTIFICIAL INTELLIGENCE---UNIT 4.pptxARTIFICIAL INTELLIGENCE---UNIT 4.pptx
ARTIFICIAL INTELLIGENCE---UNIT 4.pptxRuchitaMaaran
 
Tutorial - Introduction to Rule Technologies and Systems
Tutorial - Introduction to Rule Technologies and SystemsTutorial - Introduction to Rule Technologies and Systems
Tutorial - Introduction to Rule Technologies and SystemsAdrian Paschke
 
Introduction to prolog
Introduction to prologIntroduction to prolog
Introduction to prologRakhi Sinha
 
SWI-PROLOG TUTORIAL LEARN LOGIC PROGRAMMING.pptx
SWI-PROLOG TUTORIAL LEARN LOGIC PROGRAMMING.pptxSWI-PROLOG TUTORIAL LEARN LOGIC PROGRAMMING.pptx
SWI-PROLOG TUTORIAL LEARN LOGIC PROGRAMMING.pptxadeboyeakinlolu
 

Ähnlich wie Prolog Programming : Basics (20)

Prolog,Prolog Programming IN AI.pdf
Prolog,Prolog Programming IN AI.pdfProlog,Prolog Programming IN AI.pdf
Prolog,Prolog Programming IN AI.pdf
 
Prolog final
Prolog finalProlog final
Prolog final
 
UOS-BSIT-3811-Artificial-Intelligence-Introduction-to-prolog-PDF.pptx
UOS-BSIT-3811-Artificial-Intelligence-Introduction-to-prolog-PDF.pptxUOS-BSIT-3811-Artificial-Intelligence-Introduction-to-prolog-PDF.pptx
UOS-BSIT-3811-Artificial-Intelligence-Introduction-to-prolog-PDF.pptx
 
Ics1019 ics5003
Ics1019 ics5003Ics1019 ics5003
Ics1019 ics5003
 
ICS1019.pdf
ICS1019.pdfICS1019.pdf
ICS1019.pdf
 
An introduction to Prolog language slide
An introduction to Prolog language slideAn introduction to Prolog language slide
An introduction to Prolog language slide
 
Prolog fundamentals for beeginers in windows.ppt
Prolog  fundamentals for beeginers in windows.pptProlog  fundamentals for beeginers in windows.ppt
Prolog fundamentals for beeginers in windows.ppt
 
Logic programming (1)
Logic programming (1)Logic programming (1)
Logic programming (1)
 
01bkb04p.ppt
01bkb04p.ppt01bkb04p.ppt
01bkb04p.ppt
 
MACHINE LEARNING-LEARNING RULE
MACHINE LEARNING-LEARNING RULEMACHINE LEARNING-LEARNING RULE
MACHINE LEARNING-LEARNING RULE
 
Chaps 1-3-ai-prolog
Chaps 1-3-ai-prologChaps 1-3-ai-prolog
Chaps 1-3-ai-prolog
 
continuity of module 2.pptx
continuity of module 2.pptxcontinuity of module 2.pptx
continuity of module 2.pptx
 
Prolog (present)
Prolog (present) Prolog (present)
Prolog (present)
 
AI Lab Manual.docx
AI Lab Manual.docxAI Lab Manual.docx
AI Lab Manual.docx
 
Ics1019 ics5003
Ics1019 ics5003Ics1019 ics5003
Ics1019 ics5003
 
Plc part 4
Plc  part 4Plc  part 4
Plc part 4
 
ARTIFICIAL INTELLIGENCE---UNIT 4.pptx
ARTIFICIAL INTELLIGENCE---UNIT 4.pptxARTIFICIAL INTELLIGENCE---UNIT 4.pptx
ARTIFICIAL INTELLIGENCE---UNIT 4.pptx
 
Tutorial - Introduction to Rule Technologies and Systems
Tutorial - Introduction to Rule Technologies and SystemsTutorial - Introduction to Rule Technologies and Systems
Tutorial - Introduction to Rule Technologies and Systems
 
Introduction to prolog
Introduction to prologIntroduction to prolog
Introduction to prolog
 
SWI-PROLOG TUTORIAL LEARN LOGIC PROGRAMMING.pptx
SWI-PROLOG TUTORIAL LEARN LOGIC PROGRAMMING.pptxSWI-PROLOG TUTORIAL LEARN LOGIC PROGRAMMING.pptx
SWI-PROLOG TUTORIAL LEARN LOGIC PROGRAMMING.pptx
 

Kürzlich hochgeladen

Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfchloefrazer622
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfJayanti Pande
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajanpragatimahajan3
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docxPoojaSen20
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesFatimaKhan178732
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room servicediscovermytutordmt
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Celine George
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionSafetyChain Software
 
Russian Call Girls in Andheri Airport Mumbai WhatsApp 9167673311 💞 Full Nigh...
Russian Call Girls in Andheri Airport Mumbai WhatsApp  9167673311 💞 Full Nigh...Russian Call Girls in Andheri Airport Mumbai WhatsApp  9167673311 💞 Full Nigh...
Russian Call Girls in Andheri Airport Mumbai WhatsApp 9167673311 💞 Full Nigh...Pooja Nehwal
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAssociation for Project Management
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 

Kürzlich hochgeladen (20)

Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdf
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajan
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docx
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and Actinides
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room service
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory Inspection
 
Russian Call Girls in Andheri Airport Mumbai WhatsApp 9167673311 💞 Full Nigh...
Russian Call Girls in Andheri Airport Mumbai WhatsApp  9167673311 💞 Full Nigh...Russian Call Girls in Andheri Airport Mumbai WhatsApp  9167673311 💞 Full Nigh...
Russian Call Girls in Andheri Airport Mumbai WhatsApp 9167673311 💞 Full Nigh...
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 

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.