SlideShare a Scribd company logo
Shivani Saluja
Assistant Professor
IMSEC GHAZIABAD
Introduction
 SWI_PROLOG
 Fundamentals of PROLOG
 Applications
 References

Open source software is software that
can be freely used, changed, and
shared (in modified or unmodified
form) by anyone.





PROgramming in LOGic
Declarative language
Emphasis on what rather than how
It is widely used in the field of AI
Problem in Declarative Form

Logic Machine

Basic Machine
SWI-Prolog offers a comprehensive FREE SOFTWARE
Prolog environment.
 Link for downloading:
http://www.swi-prolog.org/download/stable
 A Self-installing executable for MS-Windows: swipl-win.exe
 Works on Windows XP
 LINUX versions are also available.

Facts
 Rules
 Query
 Unification
 Resolution
 Backtracing
 Cuts and negations








Facts are statements about what is true about a problem,
instead of instructions how to accomplish the solution.
The Prolog system uses the facts to work out how to
accomplish the solution by searching through the space of
possible solutions.
It is defined by an identifier followed by an n-tuple of
constants.
A relation identifier is referred to as a predicate
When a tuple of values is in a relation we say the tuple
satisfies the predicate.





Names of relationship and objects must begin with a lowercase letter.
Relationship is written first (typically the predicate of the
sentence).
Objects are written separated by commas and are enclosed
by a pair of round brackets.
The full stop character ‘.’ must come at the end of a fact.
Examples
facts

Predicate

Interpretation

valuable(gold)

Gold is valuable.

owns(john,gold)

John owns gold.

father(john,mary)

John is the father of
Mary
John gives the book to
Mary

gives (john,book,mary)


Specifies under what conditions a tuple of values satisfies a
predicate.



The basic building block of a rule is called an atom

Atom :- Atom1, ..., Atomn
If each of Atom1,...,Atomn is true, then Atom is also true.

Rules specify:
 If-then conditions

I use an umbrella if there is a rain

use(i, umbrella) :- occur(rain).
 Generalizations

All men are mortal

mortal(X) :- man(X).
 Definitions
 An animal is a bird if it has feathers
 bird(X) :- animal(X), has_feather(X).
Syntax of rule
 <head> :- <body>
 Read ‘:-’ as ‘if’.
 likes(john,X) :- likes(X,cricket).
“John likes X if X likes cricket”.
i.e., “John likes anyone who likes cricket”.

 Rules always end with ‘.’
There are two types of queries:
 Ground Query
 edge(a,b)
 This query is called a ground query because it consists only
of value identifiers as parameters to the predicate.
 a ground query is posed we expect a yes/no answer.
 Non Ground Query
 They have variables as parameters
 tedge(a,X)


Always begin with a capital letter





?- likes (john,X).
?- likes (john, Something).

But not


?- likes (john,something)




Facts: ()
◦ likes(john,mary).
◦ likes(john,X). % Variables begin with capital
Queries
◦ ?- likes(X,Y).
◦ X=john, Y=Mary. % hit “;” for more
◦ ?- likes(X,X).
◦ X=john.




Rules
◦ likes(john,X) :- likes(X,wine). % :- = if
◦ likes(john,X):- female(X), likes(X,john).
Query: ? - likes(john,Y).
◦ Y = bill ;
◦ no
Predicate
Procedure for elephant
Facts

Clauses
Rule

elephant(george).
elephant(forge).
elephant(X) :- grey(X), mammal(X), hasTrunk(X).
?- elephant(george).
Queries

yes
?- elephant(jane).
Replies

no




Conjunction of predicates is represented as a sequence of
structures, separated by commas”,”.
It is referred as “AND”
sister_of (X,Y):- female (X), parents (X, M, F),





Disjunction of predicates is represented as a sequence of
structures, separated by semicolon”;”.
It is referred as “OR”
friend(ram,shyam):friend(shyam,sita);friend(shyam,mohan).









Questions based on facts are answered by matching
Unification is the name given to the way Prolog does its
matching.
Two facts match if their predicates are same (spelt the
same way) and the arguments each are same.
If matched, prolog answers yes, else no.
No does not mean falsity
This means not provable from the given facts.
Question Answering in presence of
rules
Facts
 male (ram).
 male (shyam).
 female (sita).
 female (gita).
 parents (shyam, gita, ram).
 parents (sita, gita, ram).
Rule:sister_of (X,Y):- female (X), parents (X, M, F),parents (Y, M, F).
X is a sister of Y is X is a female and X and Y have same parents
Backtracking
?- sister_of (sita, shyam)

female(sita)

parents(sita,M,F)

parents(shyam,M,F)

parents(shyam,gita,ram)
parents(sita,gita,ram)
success
Question Answering: wh-type: whose
sister is sita?
?- ?- sister_of (sita, X)

female(sita)

parents(sita,M,F)

parents(Y,M,F)

parents(Y,gita,ram)
parents(sita,gita,ram)
parents(shyam,gita,ram)
Success
Y=shyam








Prolog provides a number of basic arithmetic tools.
Arithmetic examples
Prolog Notation
6+2=8
8 is 6+2.
6 ∗ 2 = 12
12 is 6*2.
Answers to arithmetic questions by using ariables. For
example:
?- X is 6+2.
X=8
Prolog’s computation
 Depth First Search
 Pursues a goal till the end
 Conditional AND; falsity of any goal prevents satisfaction of
further clauses.
 Conditional OR; satisfaction of any goal prevents further clauses
being evaluated.
Control flow (top level)
Given
g:- a, b, c.

(1)

g:- d, e, f; g. (2)
If prolog cannot satisfy (1), control will automatically fall through to
(2).
Control Flow within a rule
Taking (1),
g:- a, b, c.
If a succeeds, prolog will try to satisfy b, succeding which c will be
tried.
For ANDed clauses, control flows forward till the ‘.’, iff the current
clause is true.
For ORed clauses, control flows forward till the ‘.’, iff the current
clause evaluates to false.
On Failure
REDO the immediately preceding goal.

Always place the more general rule AFTER a specific rule











Automatic backtracking is one of the most characteristic
features of Prolog.
Backtracking can lead to inefficiency.
Prolog can waste time exploring possibilities that lead
nowhere.
Cut is a goal that always succeeds
Commits Prolog to the choices that were made since the
parent goal was called
CUTS are used control over this aspect of its behaviour
p(X):- b(X), c(X), !, d(X), e(X).








consider the following piece of cut-free code:
p(X):- a(X).
p(X):- b(X), c(X), d(X), e(X).
p(X):- f(X).
a(1). b(1).
c(1).
d(2). e(2). f(3).
b(2).
c(2).
For query p(X) we will get the following responses:
X = 1 ;
X = 2 ;
X = 3 ;
no
Here is the search tree that explains how Prolog finds these three
solutions. Note that it has to backtrack once, namely when it enters the
second clause for p/1 and decides to unify the first goal
with b(1) instead of b(2) .
Prolog basics
Prolog basics
Prolog basics





Consider the following code:
enjoys(vincent,X) :- big_kahuna_burger(X),!,fail.
enjoys(vincent,X) :- burger(X).
burger(X) :- big_mac(X).
burger(X) :- big_kahuna_burger(X).
burger(X) :- whopper(X).
big_mac(a).
big_kahuna_burger(b).
big_mac(c).
whopper(d).
Using Negation

   enjoys(vincent,X) :- burger(X), neg(big_kahuna_burger(X)).
Predicate Calculus
 Introduction through an example (Zohar Manna, 1974):
 Problem: A, B and C belong to the Himalayan club. Every
member in the club is either a mountain climber or a skier or
both. A likes whatever B dislikes and dislikes whatever B likes.
A likes rain and snow. No mountain climber likes rain. Every
skier likes snow. Is there a member who is a mountain climber
and not a skier?
 Given knowledge has:
 Facts
 Rules








Compute_length ([],0).
Compute_length ([Head|Tail], Length):Compute_length (Tail,Tail_length),
Length is Tail_length+1.
High level explanation:
The length of a list is 1 plus the length of the tail of the list,
obtained by removing the first element of the list.
This is a declarative description of the computation.
◦ Expert Systems
Inferencing)

(Knowledge

Representation

◦ Natural Language Processing
◦ Definite Clause Grammar
◦ http://www.learnprolognow.org/lpnpage.php?
pagetype=html&pageid=lpn-htmlch8

and
www.swi-prolog.org/
 http://www.learnprolognow.org/

THANKYOU

More Related Content

PPT
Introduction to prolog
PPTX
Prolog Programming : Basics
PPTX
Prolog Programming Language
PPTX
Introduction to Prolog
PDF
9. chapter 8 np hard and np complete problems
PPTX
Artificial Intelligence- TicTacToe game
PPTX
PROLOG: Introduction To Prolog
PPT
First order logic
Introduction to prolog
Prolog Programming : Basics
Prolog Programming Language
Introduction to Prolog
9. chapter 8 np hard and np complete problems
Artificial Intelligence- TicTacToe game
PROLOG: Introduction To Prolog
First order logic

What's hot (20)

PDF
10 logic+programming+with+prolog
PDF
I. AO* SEARCH ALGORITHM
PPTX
AI: Learning in AI
PDF
P, NP, NP-Complete, and NP-Hard
PPTX
ProLog (Artificial Intelligence) Introduction
PPTX
Np hard
PPTX
Travelling Salesman Problem
PPTX
Asymptotic Notation
PDF
First order logic
PPT
Top down parsing
PPTX
String matching algorithms
PDF
Automata theory
PPTX
Greedy algorithms
PDF
Ai lab manual
PPT
Primitive Recursive Functions
PPTX
daa-unit-3-greedy method
PPTX
Job sequencing with deadline
PDF
Python NumPy Tutorial | NumPy Array | Edureka
PPT
Asymptotic notations
PPT
AI Lecture 3 (solving problems by searching)
10 logic+programming+with+prolog
I. AO* SEARCH ALGORITHM
AI: Learning in AI
P, NP, NP-Complete, and NP-Hard
ProLog (Artificial Intelligence) Introduction
Np hard
Travelling Salesman Problem
Asymptotic Notation
First order logic
Top down parsing
String matching algorithms
Automata theory
Greedy algorithms
Ai lab manual
Primitive Recursive Functions
daa-unit-3-greedy method
Job sequencing with deadline
Python NumPy Tutorial | NumPy Array | Edureka
Asymptotic notations
AI Lecture 3 (solving problems by searching)
Ad

Similar to Prolog basics (20)

PPTX
An introduction to Prolog language slide
PPT
Pl vol1
PPT
Pl vol1
PPTX
#8 formal methods – pro logic
PPT
Chavbbhhgghhhhhjjnnnngffffgggbpter 15.ppt
PPTX
PPT
lect14-semantics.ppt
PPT
L03 ai - knowledge representation using logic
PPTX
logic for Advanced Programming Practice.pptx
PPT
Prolog 01
PPT
ppt
PPT
ppt
PDF
Lecture12 xing
PDF
Optimization of probabilistic argumentation with Markov processes
PPT
Artificial intelligence Prolog Language
PPT
PPTX
Plc part 4
PPTX
1004_theorem_proving_2018.pptx on the to
PPT
An introduction to Prolog language slide
Pl vol1
Pl vol1
#8 formal methods – pro logic
Chavbbhhgghhhhhjjnnnngffffgggbpter 15.ppt
lect14-semantics.ppt
L03 ai - knowledge representation using logic
logic for Advanced Programming Practice.pptx
Prolog 01
ppt
ppt
Lecture12 xing
Optimization of probabilistic argumentation with Markov processes
Artificial intelligence Prolog Language
Plc part 4
1004_theorem_proving_2018.pptx on the to
Ad

More from shivani saluja (6)

PPTX
Reinforcement learning
PPTX
Regression
PPTX
Decision tree
PPTX
supervised and unsupervised learning
PPTX
Bayes and naive bayes
PPTX
Introduction to Machine Learning
Reinforcement learning
Regression
Decision tree
supervised and unsupervised learning
Bayes and naive bayes
Introduction to Machine Learning

Recently uploaded (20)

PDF
Machine learning based COVID-19 study performance prediction
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
cuic standard and advanced reporting.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Modernizing your data center with Dell and AMD
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Approach and Philosophy of On baking technology
PPTX
Cloud computing and distributed systems.
PDF
Chapter 3 Spatial Domain Image Processing.pdf
Machine learning based COVID-19 study performance prediction
20250228 LYD VKU AI Blended-Learning.pptx
MYSQL Presentation for SQL database connectivity
Dropbox Q2 2025 Financial Results & Investor Presentation
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Network Security Unit 5.pdf for BCA BBA.
CIFDAQ's Market Insight: SEC Turns Pro Crypto
cuic standard and advanced reporting.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Building Integrated photovoltaic BIPV_UPV.pdf
NewMind AI Monthly Chronicles - July 2025
Agricultural_Statistics_at_a_Glance_2022_0.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Modernizing your data center with Dell and AMD
Advanced methodologies resolving dimensionality complications for autism neur...
Approach and Philosophy of On baking technology
Cloud computing and distributed systems.
Chapter 3 Spatial Domain Image Processing.pdf

Prolog basics

  • 2. Introduction  SWI_PROLOG  Fundamentals of PROLOG  Applications  References 
  • 3. Open source software is software that can be freely used, changed, and shared (in modified or unmodified form) by anyone.
  • 4.     PROgramming in LOGic Declarative language Emphasis on what rather than how It is widely used in the field of AI Problem in Declarative Form Logic Machine Basic Machine
  • 5. SWI-Prolog offers a comprehensive FREE SOFTWARE Prolog environment.  Link for downloading: http://www.swi-prolog.org/download/stable  A Self-installing executable for MS-Windows: swipl-win.exe  Works on Windows XP  LINUX versions are also available. 
  • 6. Facts  Rules  Query  Unification  Resolution  Backtracing  Cuts and negations 
  • 7.      Facts are statements about what is true about a problem, instead of instructions how to accomplish the solution. The Prolog system uses the facts to work out how to accomplish the solution by searching through the space of possible solutions. It is defined by an identifier followed by an n-tuple of constants. A relation identifier is referred to as a predicate When a tuple of values is in a relation we say the tuple satisfies the predicate.
  • 8.     Names of relationship and objects must begin with a lowercase letter. Relationship is written first (typically the predicate of the sentence). Objects are written separated by commas and are enclosed by a pair of round brackets. The full stop character ‘.’ must come at the end of a fact.
  • 9. Examples facts Predicate Interpretation valuable(gold) Gold is valuable. owns(john,gold) John owns gold. father(john,mary) John is the father of Mary John gives the book to Mary gives (john,book,mary)
  • 10.  Specifies under what conditions a tuple of values satisfies a predicate.  The basic building block of a rule is called an atom Atom :- Atom1, ..., Atomn If each of Atom1,...,Atomn is true, then Atom is also true. 
  • 11. Rules specify:  If-then conditions  I use an umbrella if there is a rain  use(i, umbrella) :- occur(rain).  Generalizations  All men are mortal  mortal(X) :- man(X).  Definitions  An animal is a bird if it has feathers  bird(X) :- animal(X), has_feather(X).
  • 12. Syntax of rule  <head> :- <body>  Read ‘:-’ as ‘if’.  likes(john,X) :- likes(X,cricket). “John likes X if X likes cricket”. i.e., “John likes anyone who likes cricket”.  Rules always end with ‘.’
  • 13. There are two types of queries:  Ground Query  edge(a,b)  This query is called a ground query because it consists only of value identifiers as parameters to the predicate.  a ground query is posed we expect a yes/no answer.  Non Ground Query  They have variables as parameters  tedge(a,X)
  • 14.  Always begin with a capital letter    ?- likes (john,X). ?- likes (john, Something). But not  ?- likes (john,something)
  • 15.   Facts: () ◦ likes(john,mary). ◦ likes(john,X). % Variables begin with capital Queries ◦ ?- likes(X,Y). ◦ X=john, Y=Mary. % hit “;” for more ◦ ?- likes(X,X). ◦ X=john.
  • 16.   Rules ◦ likes(john,X) :- likes(X,wine). % :- = if ◦ likes(john,X):- female(X), likes(X,john). Query: ? - likes(john,Y). ◦ Y = bill ; ◦ no
  • 19.   Conjunction of predicates is represented as a sequence of structures, separated by commas”,”. It is referred as “AND” sister_of (X,Y):- female (X), parents (X, M, F),   Disjunction of predicates is represented as a sequence of structures, separated by semicolon”;”. It is referred as “OR” friend(ram,shyam):friend(shyam,sita);friend(shyam,mohan).
  • 20.       Questions based on facts are answered by matching Unification is the name given to the way Prolog does its matching. Two facts match if their predicates are same (spelt the same way) and the arguments each are same. If matched, prolog answers yes, else no. No does not mean falsity This means not provable from the given facts.
  • 21. Question Answering in presence of rules Facts  male (ram).  male (shyam).  female (sita).  female (gita).  parents (shyam, gita, ram).  parents (sita, gita, ram). Rule:sister_of (X,Y):- female (X), parents (X, M, F),parents (Y, M, F). X is a sister of Y is X is a female and X and Y have same parents
  • 22. Backtracking ?- sister_of (sita, shyam) female(sita) parents(sita,M,F) parents(shyam,M,F) parents(shyam,gita,ram) parents(sita,gita,ram) success
  • 23. Question Answering: wh-type: whose sister is sita? ?- ?- sister_of (sita, X) female(sita) parents(sita,M,F) parents(Y,M,F) parents(Y,gita,ram) parents(sita,gita,ram) parents(shyam,gita,ram) Success Y=shyam
  • 24.       Prolog provides a number of basic arithmetic tools. Arithmetic examples Prolog Notation 6+2=8 8 is 6+2. 6 ∗ 2 = 12 12 is 6*2. Answers to arithmetic questions by using ariables. For example: ?- X is 6+2. X=8
  • 25. Prolog’s computation  Depth First Search  Pursues a goal till the end  Conditional AND; falsity of any goal prevents satisfaction of further clauses.  Conditional OR; satisfaction of any goal prevents further clauses being evaluated.
  • 26. Control flow (top level) Given g:- a, b, c. (1) g:- d, e, f; g. (2) If prolog cannot satisfy (1), control will automatically fall through to (2).
  • 27. Control Flow within a rule Taking (1), g:- a, b, c. If a succeeds, prolog will try to satisfy b, succeding which c will be tried. For ANDed clauses, control flows forward till the ‘.’, iff the current clause is true. For ORed clauses, control flows forward till the ‘.’, iff the current clause evaluates to false. On Failure REDO the immediately preceding goal. Always place the more general rule AFTER a specific rule
  • 28.        Automatic backtracking is one of the most characteristic features of Prolog. Backtracking can lead to inefficiency. Prolog can waste time exploring possibilities that lead nowhere. Cut is a goal that always succeeds Commits Prolog to the choices that were made since the parent goal was called CUTS are used control over this aspect of its behaviour p(X):- b(X), c(X), !, d(X), e(X).
  • 29.      consider the following piece of cut-free code: p(X):- a(X). p(X):- b(X), c(X), d(X), e(X). p(X):- f(X). a(1). b(1). c(1). d(2). e(2). f(3). b(2). c(2). For query p(X) we will get the following responses: X = 1 ; X = 2 ; X = 3 ; no Here is the search tree that explains how Prolog finds these three solutions. Note that it has to backtrack once, namely when it enters the second clause for p/1 and decides to unify the first goal with b(1) instead of b(2) .
  • 33.    Consider the following code: enjoys(vincent,X) :- big_kahuna_burger(X),!,fail. enjoys(vincent,X) :- burger(X). burger(X) :- big_mac(X). burger(X) :- big_kahuna_burger(X). burger(X) :- whopper(X). big_mac(a). big_kahuna_burger(b). big_mac(c). whopper(d). Using Negation    enjoys(vincent,X) :- burger(X), neg(big_kahuna_burger(X)).
  • 34. Predicate Calculus  Introduction through an example (Zohar Manna, 1974):  Problem: A, B and C belong to the Himalayan club. Every member in the club is either a mountain climber or a skier or both. A likes whatever B dislikes and dislikes whatever B likes. A likes rain and snow. No mountain climber likes rain. Every skier likes snow. Is there a member who is a mountain climber and not a skier?  Given knowledge has:  Facts  Rules
  • 35.        Compute_length ([],0). Compute_length ([Head|Tail], Length):Compute_length (Tail,Tail_length), Length is Tail_length+1. High level explanation: The length of a list is 1 plus the length of the tail of the list, obtained by removing the first element of the list. This is a declarative description of the computation.
  • 36. ◦ Expert Systems Inferencing) (Knowledge Representation ◦ Natural Language Processing ◦ Definite Clause Grammar ◦ http://www.learnprolognow.org/lpnpage.php? pagetype=html&pageid=lpn-htmlch8 and