SlideShare a Scribd company logo
PROLOG
PROgramming in LOGic
A Brief Introduction
Compilers
• PDC Visual Prolog
• SWI Prolog
• Bin-Prolog
• K-Prolog
• Prolog ++
http://swish.swi-prolog.org
PRO-LOG
• Programming in Logic
• 1975, Phillippe Roussell
• Predicate Calculus
• Declarative Language
• Predicates and Rules
• Inference Mechanism
PROLOG Paradigm
• PROgramming in LOGic
– Draw inferences from facts and rules
• PROLOG is
– declarative - specify facts and logical relationships
• Non-procedural: "what", not "how". (we specify the problem but not
the solution)
• Database language with automated search and the ability to follow
general rules.
– symbolic - symbols are used to represent objects
– high level - contains a built-in problem solving mechanism
• PROLOG Programming (When we program in ProLog we
need to provide following three things)
– Declaring some facts about objects and their relationships
– Defining some rules about objects and their relationships
– Asking questions about objects and their relationships
PROLOG Paradigm
• The PROLOG Programmer
– Loads facts and rules into the database.
– Makes queries to the database to see if a fact is:
• in the database or
• can be implied from the facts and rules therein
Prolog Database
Facts + Rules
Query
System Interaction
Problem solving in PROLOG
– 1. insert facts and rules into the database
– 2. ask questions (queries) based on the contents of the database
• Facts
– Used to represent unchanging information about objects and their
relationships.
– Only facts in the PROLOG database can be used for problem solving.
– Insert facts into the database by,
• typing the facts into a file and loading (consulting) the file into a running
PROLOG system
System Interaction
• Queries
– Retrieve information from the database by entering QUERIES
– A query,
• is a pattern that PROLOG is asked to match against the database
• has the syntax of a compound query
• may contain variables
– A query will cause PROLOG to
• look at the database
• try to find a match for the query pattern
• execute the body of the matching head
• return an answer
• Logic Programming
• Logic programming is a form of declarative programming
• A program is a collection of axioms
– Each axiom is a Horn clause of the form:
H :- B1, B2, ..., Bn.
where H is the head term and Bi are the body terms
– Meaning H is true if all Bi are true
Basic Proof technique - modus ponens
A -> B
A
---------
B
• Prolog Uses backward chaining
– More efficient than forward chaining for larger
collections of axioms
• Applications: expert systems, artificial
intelligence, natural language understanding,
logical puzzles and games
PROLOG Paradigm
Examples (Facts)
English PROLOG
“A dog is a mammal” isa(dog, mammal).
“A sparrow is a bird” isa(sparrow, bird).
PROLOG Paradigm
Examples (Rules)
English PROLOG
“Something is an animal animal(X) :- isa(X,mammal).
if it is a mammal or a bird” animal(X) :- isa(X, bird).
PROLOG Paradigm
Examples (Queries)
English PROLOG
“is a sparrow an animal?” ?- animal(sparrow).
answer: “yes” yes
“is a table an animal?” ?- animal(table).
answer: “no” no
“what is a dog?” ?- isa(dog, X).
answer: “a mammal” X = mammal
PROLOG syntax
• Constants
– Atoms
• Alphanumeric atoms - alphabetic character sequence starting with
a lower case letter
Examples: apple a1 apple_cart
• Quoted atoms “String” - sequence of characters surrounded by
single quotes
Examples: ‘Apple’ ‘hello world’
• Symbolic atoms - sequence of symbolic characters
Examples: & < > * - + >>
• Special atoms
Examples: ! ; [ ] {}
– Numbers
• Integers and Floating Point numbers
Examples: 0 1 9821 -10 1.3 -1.3E102
PROLOG syntax
• Variable Names
a sequence of alphanumeric characters beginning with an
upper case letter or an underscore
Examples: Anything _var X _
• Compound Terms (structures)
– an atom followed by an argument list containing terms.
The arguments are enclosed within brackets and separated
by commas
Example: isa(dog, mammal)
Prolog syntax
• The names of all relationships and objects must
begin with a lower case letter. For example studies,
ali, programming
• The relationship is written first and the objects are
enclosed within parentheses and are written
separated by commas. For example studies(ali,
programming)
• The full stop character ‘.’ must come at the end of a
fact.
• Order is arbitrary but it should be consistent
Example
 Program with three facts and one
rule:
rainy(columbo).
rainy(ayubia).
cold(ayubia).
Rule: snowy(X) :- rainy(X), cold(X).
 Query and response:
?- snowy(ayubia).
yes
 Query and response:
?- snowy(columbo).
no
 Query and response:
?- snowy(lahore).
No
• ?- snowy(C).
C = ayubia
– because rainy(ayubia) and
cold(ayubia) are sub-goals
that are both true facts in the
database
– snowy(X) with X=columbo is a
goal that fails, because cold(X)
fails, triggering backtracking
snowy(C)
snowy(X)
AND
rainy(X) cold(X)
C = X
rainy(columbo) rainy(ayubia)
X = columbo X = ayubia
cold(ayubia)
C = X = ayubia
C = ayubia
rainy(columbo).
rainy(ayubia).
cold(ayubia).
snowy(X) :- rainy(X), cold(X).
?- snowy(C).
C = ayubia
OR
Logic Representation : Propositional
Calculus
• Propositional Logic
– Boolean statements
– Logic connectives     
Example – a family
Atomic statements
p: Ahmed is father of Belal
q: Ahmed is brother of Aslam
r : Aslam is uncle of Belal
Complex statements 
Statement Logic
p Ahmed is not father of
Belal
p  q Ahmed is father of Belal or
Ahmed is brother of Aslam
p  q  r If Ahmed is father of Belal
and brother of Aslam then
Aslam is uncle of Belal
Prolog Programming
Predicate Calculus
• Predicates (Facts)
– man(Ahmed)
– father(Ahmed, Belal)
– brother(Belal, Chand)
– brother(Chand, Delawar)
– owns(Belal, car)
– tall(Belal)
– hates(Ahmed, Chand)
– family()
• Formulae
– X,Y,Z(man(X)  man(Y)  father(Z,Y)  father(Z,X) 
brother(X,Y))
• Variables
– X, Y and Z
• Constants
– Ahmed, Belal, Chand, Delawar and car
Prolog code
Predicates
man(symbol)
father(symbol, symbol)
brother(symbol, symbol)
owns(symbol, symbol)
tall(symbol)
hates(symbol, symbol)
family()
Clauses
man(ahmed).
father(ahmed, belal).
brother(ahmed, chand).
owns(belal, car).
tall(belal).
hates(ahmed, chand).
family().
Rule:
brother(X,Y):-
man(X),
man(Y),
father(Z,Y),
father(Z,X).
Goal
brother(ahmed,belal).
Sections of Prolog Program (1-3)
• Predicates
– Declarations of Relations or Rules
– Just like function prototype (declaration).
– Zero or more arguments
– Example
Predicates
man(symbol)
family()
a_new_predicate (integer, char)
Sections of Prolog Program (2-3)
• Clauses
– Definition(s) of Predicate = Sentence OR Phrase
– Types
• Rules (function definitions)
– 0 or more conditions (statements)
• Facts
– 0 conditions
– All parameters constant
– Examples
• Fact
brother(ahmed, chand).
• Rule
brother(X,Y):-
man(X),
man(Y),
father(Z,Y),
father(Z,X).
Sections of Prolog Program (3-3)
• Goal
– Goal of inference
– Only and exactly one instance
– The only tentative section of the program
– The main() of prolog
– Goal truth value = output of program
– Syntactically and Semantically just another clause
• Empty, simple (one goal), or compound (sub-goals)
– Examples
• Goal
brother(X,chand). <or> brother(ahmed,chand).
• Goal
brother(X,chand),
father().
Sample Program Update
domains
person = symbol
predicates
nondeterm father(person,person)
nondeterm brother(person,person)
nondeterm cousin(person,person)
nondeterm grandfather(person,person)
clauses
father(a,b).
father(a,c).
father(a,d).
father(b,e).
father(b,f).
father(b,g).
father(c,h).
father(c,i).
father(d,j).
father(d,k).
brother(X,Y):-
X<>Y,
father(Z,X),
father(Z,Y).
cousin(X,Y):-
father(A,X),
father(B,Y),
brother(A,B).
grandfather(X,Y):-
father(Z,Y),
father(X,Z).
goal
cousin(X,Y).
Prolog Variables
• Constant placeholders (NOT variables)
– Bounded once
• Loosely typed
• Start with Capital letter or underscore
• Examples
– brother(ahmed, Ahmed)
– brother(ahmed, _x)
– Brother(ahmed, X)
• Anonymous variable
– The _
– Some value that isn’t required
– Example
brother(ahmed, _)
Expert system
• A simple medical expert system
• relieves(Drug, Symptom).
– relieves(aspirin, headache).
– relieves(aspirin, moderate_pain).
– relieves(aspirin, moderate_arthritis).
– relieves(aspirin_codine_combination, severe_pain).
– relieves(cough_cure, cough).
– relieves(pain_gone, severe_pain).
– relieves(anti_diarrhea, diarrhea).
– relieves(de_congest, cough).
– relieves(de_congest, nasal_congestion).
– relieves(penicilline, pneumonia).
– relieves(bis_cure, diarrhea).
– relieves(bis_cure, nausea).
– relieves(new_med, headache).
– relieves(new_med, moderate_pain).
– relieves(cong_plus, nasal_congestion).
• aggravates(Drug, Condition).
– aggravates(aspirin, asthma).
– aggravates(aspirin, peptic_ulcer).
– aggravates(anti-diarrhea, fever).
– aggravates(de_congest, high_blood_pressure).
– aggravates(de_congest, heart_disease).
– aggravates(de_congest, diabetes).
– aggravates(de_congest, glaucoma).
– aggravates(penicilline, asthma).
– aggravates(de_congest, high_blood_pressure).
– aggravates(bis_cure, diabetes).
– aggravates(bis_cure, fever).
should_take(Person, Drug) :-
complains_of(Person, Symptom),
relieves(Drug, Symptom),
not(unsuitable_for(Person, Drug)). //conjunction of three classes.
unsuitable_for(Person, Drug) :-
aggravates(Drug, Condition),
suffers_from(Person, Condition).
complains_of(ali, headache).
suffers_from(ali, peptic_ulcer).
?- should_take(ali, Drug).
Drug = new_med;
Books
• Prolog Programming for AI by Ivan Bratko
• Visual Prolog; Language Tutorial by PDC

More Related Content

PPTX
Prolog Programming : Basics
PDF
Ai lab manual
PPTX
Knowledge Representation & Reasoning AI UNIT 3
PPT
Predicate logic_2(Artificial Intelligence)
PPT
Propositional And First-Order Logic
PPTX
PROCEDURAL AND DECLARATIVE KNOWLEDGE IN AI & ML (1).pptx
PPTX
Inference in First-Order Logic
PPTX
Frames
Prolog Programming : Basics
Ai lab manual
Knowledge Representation & Reasoning AI UNIT 3
Predicate logic_2(Artificial Intelligence)
Propositional And First-Order Logic
PROCEDURAL AND DECLARATIVE KNOWLEDGE IN AI & ML (1).pptx
Inference in First-Order Logic
Frames

What's hot (20)

PPTX
Knowledge representation In Artificial Intelligence
PPTX
Artificial Intelligence- TicTacToe game
PDF
I. AO* SEARCH ALGORITHM
PPT
Introduction to prolog
PPTX
Semantic net in AI
PPT
Knowledge Representation & Reasoning
PDF
AI PPT-ALR_Unit-3-1.pdf
PPTX
First order logic
PPTX
Np hard
PPTX
Artificial Intelligence Notes Unit 3
PPTX
Assemblers
PPTX
Constraint satisfaction problems (csp)
PDF
Symbol table in compiler Design
PDF
P, NP, NP-Complete, and NP-Hard
PPT
L03 ai - knowledge representation using logic
PPTX
Knowledge representation
PDF
UNIT-V.pdf daa unit material 5 th unit ppt
PPTX
Webinar : P, NP, NP-Hard , NP - Complete problems
DOC
Time and space complexity
Knowledge representation In Artificial Intelligence
Artificial Intelligence- TicTacToe game
I. AO* SEARCH ALGORITHM
Introduction to prolog
Semantic net in AI
Knowledge Representation & Reasoning
AI PPT-ALR_Unit-3-1.pdf
First order logic
Np hard
Artificial Intelligence Notes Unit 3
Assemblers
Constraint satisfaction problems (csp)
Symbol table in compiler Design
P, NP, NP-Complete, and NP-Hard
L03 ai - knowledge representation using logic
Knowledge representation
UNIT-V.pdf daa unit material 5 th unit ppt
Webinar : P, NP, NP-Hard , NP - Complete problems
Time and space complexity
Ad

Viewers also liked (20)

PPT
Prolog basics
PPTX
Introduction to Prolog
PPT
Artificial intelligence Prolog Language
PPTX
PROLOG: Introduction To Prolog
PPTX
Introduction on Prolog - Programming in Logic
TXT
Prolog Code [Family Tree] by Shahzeb Pirzada
PPTX
Prolog 7-Languages
PPTX
PROLOG: Recursion And Lists In Prolog
PPTX
Prolog & lisp
PPTX
PROLOG: Cuts And Negation In Prolog
PPTX
Prolog: Arithmetic Operations In Prolog
PPT
Prolog programming
PPTX
PROLOG: Fact Roles And Queries In Prolog
PDF
Logic Programming and ILP
PPT
Expert Systems & Prolog
PPTX
Combining Data Mining and Ontology Engineering to enrich Ontologies and Linke...
PPTX
Social Media Marketing Strategies for PR , Journalism Workshop in Bangalore....
PPTX
Hubot and Playbook - Oct 2016 ChatbotsAU meetup
DOCX
PDF
12 quelques prédicats prédéfinis de swi
Prolog basics
Introduction to Prolog
Artificial intelligence Prolog Language
PROLOG: Introduction To Prolog
Introduction on Prolog - Programming in Logic
Prolog Code [Family Tree] by Shahzeb Pirzada
Prolog 7-Languages
PROLOG: Recursion And Lists In Prolog
Prolog & lisp
PROLOG: Cuts And Negation In Prolog
Prolog: Arithmetic Operations In Prolog
Prolog programming
PROLOG: Fact Roles And Queries In Prolog
Logic Programming and ILP
Expert Systems & Prolog
Combining Data Mining and Ontology Engineering to enrich Ontologies and Linke...
Social Media Marketing Strategies for PR , Journalism Workshop in Bangalore....
Hubot and Playbook - Oct 2016 ChatbotsAU meetup
12 quelques prédicats prédéfinis de swi
Ad

Similar to ProLog (Artificial Intelligence) Introduction (20)

PPTX
Plc part 4
PPTX
Prolog final
PPTX
Prolog language programming in the facts.pptx
PDF
Prolog,Prolog Programming IN AI.pdf
PPT
Chaps 1-3-ai-prolog
PPT
________ ________1.ppt
PPTX
Unit 3 Prolog.pptxUnit 3 Prolog.pptxUnit 3 Prolog.pptxUnit 3 Prolog.pptxUnit
PPTX
UOS-BSIT-3811-Artificial-Intelligence-Introduction-to-prolog-PDF.pptx
PDF
PROLOG in artificial intelligence(Basic of pprolog)).pdf
PPTX
Ics1019 ics5003
PDF
Prolog PPT_merged.pdf
PPT
2 Prolog L 1 V2.ppt
PDF
ICS1019.pdf
DOCX
Prolog_Programminvfygugy7gtugbugtg_Notes.docx
PPTX
Ics1019 ics5003
PPTX
Introduction to Prolog
PPTX
Artificial Intelligence and Expert System
PPT
PROLOGPROLOGPROLOGPROLOGPROLOGPROLOGPROLOGPROLOGPROLOG
PDF
10 logic+programming+with+prolog
PPT
Introduction to prolog
Plc part 4
Prolog final
Prolog language programming in the facts.pptx
Prolog,Prolog Programming IN AI.pdf
Chaps 1-3-ai-prolog
________ ________1.ppt
Unit 3 Prolog.pptxUnit 3 Prolog.pptxUnit 3 Prolog.pptxUnit 3 Prolog.pptxUnit
UOS-BSIT-3811-Artificial-Intelligence-Introduction-to-prolog-PDF.pptx
PROLOG in artificial intelligence(Basic of pprolog)).pdf
Ics1019 ics5003
Prolog PPT_merged.pdf
2 Prolog L 1 V2.ppt
ICS1019.pdf
Prolog_Programminvfygugy7gtugbugtg_Notes.docx
Ics1019 ics5003
Introduction to Prolog
Artificial Intelligence and Expert System
PROLOGPROLOGPROLOGPROLOGPROLOGPROLOGPROLOGPROLOGPROLOG
10 logic+programming+with+prolog
Introduction to prolog

Recently uploaded (20)

PDF
01-Introduction-to-Information-Management.pdf
PDF
Classroom Observation Tools for Teachers
PDF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
PDF
Microbial disease of the cardiovascular and lymphatic systems
PPTX
Microbial diseases, their pathogenesis and prophylaxis
PDF
Module 4: Burden of Disease Tutorial Slides S2 2025
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PPTX
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
PPTX
Pharma ospi slides which help in ospi learning
PDF
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PDF
TR - Agricultural Crops Production NC III.pdf
PPTX
Renaissance Architecture: A Journey from Faith to Humanism
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PDF
Origin of periodic table-Mendeleev’s Periodic-Modern Periodic table
PDF
102 student loan defaulters named and shamed – Is someone you know on the list?
PPTX
Introduction to Child Health Nursing – Unit I | Child Health Nursing I | B.Sc...
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PDF
Anesthesia in Laparoscopic Surgery in India
01-Introduction-to-Information-Management.pdf
Classroom Observation Tools for Teachers
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
Microbial disease of the cardiovascular and lymphatic systems
Microbial diseases, their pathogenesis and prophylaxis
Module 4: Burden of Disease Tutorial Slides S2 2025
STATICS OF THE RIGID BODIES Hibbelers.pdf
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
Pharma ospi slides which help in ospi learning
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
TR - Agricultural Crops Production NC III.pdf
Renaissance Architecture: A Journey from Faith to Humanism
2.FourierTransform-ShortQuestionswithAnswers.pdf
Origin of periodic table-Mendeleev’s Periodic-Modern Periodic table
102 student loan defaulters named and shamed – Is someone you know on the list?
Introduction to Child Health Nursing – Unit I | Child Health Nursing I | B.Sc...
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
Anesthesia in Laparoscopic Surgery in India

ProLog (Artificial Intelligence) Introduction

  • 1. PROLOG PROgramming in LOGic A Brief Introduction
  • 2. Compilers • PDC Visual Prolog • SWI Prolog • Bin-Prolog • K-Prolog • Prolog ++ http://swish.swi-prolog.org
  • 3. PRO-LOG • Programming in Logic • 1975, Phillippe Roussell • Predicate Calculus • Declarative Language • Predicates and Rules • Inference Mechanism
  • 4. PROLOG Paradigm • PROgramming in LOGic – Draw inferences from facts and rules • PROLOG is – declarative - specify facts and logical relationships • Non-procedural: "what", not "how". (we specify the problem but not the solution) • Database language with automated search and the ability to follow general rules. – symbolic - symbols are used to represent objects – high level - contains a built-in problem solving mechanism • PROLOG Programming (When we program in ProLog we need to provide following three things) – Declaring some facts about objects and their relationships – Defining some rules about objects and their relationships – Asking questions about objects and their relationships
  • 5. PROLOG Paradigm • The PROLOG Programmer – Loads facts and rules into the database. – Makes queries to the database to see if a fact is: • in the database or • can be implied from the facts and rules therein Prolog Database Facts + Rules Query
  • 6. System Interaction Problem solving in PROLOG – 1. insert facts and rules into the database – 2. ask questions (queries) based on the contents of the database • Facts – Used to represent unchanging information about objects and their relationships. – Only facts in the PROLOG database can be used for problem solving. – Insert facts into the database by, • typing the facts into a file and loading (consulting) the file into a running PROLOG system
  • 7. System Interaction • Queries – Retrieve information from the database by entering QUERIES – A query, • is a pattern that PROLOG is asked to match against the database • has the syntax of a compound query • may contain variables – A query will cause PROLOG to • look at the database • try to find a match for the query pattern • execute the body of the matching head • return an answer
  • 8. • Logic Programming • Logic programming is a form of declarative programming • A program is a collection of axioms – Each axiom is a Horn clause of the form: H :- B1, B2, ..., Bn. where H is the head term and Bi are the body terms – Meaning H is true if all Bi are true
  • 9. Basic Proof technique - modus ponens A -> B A --------- B
  • 10. • Prolog Uses backward chaining – More efficient than forward chaining for larger collections of axioms • Applications: expert systems, artificial intelligence, natural language understanding, logical puzzles and games
  • 11. PROLOG Paradigm Examples (Facts) English PROLOG “A dog is a mammal” isa(dog, mammal). “A sparrow is a bird” isa(sparrow, bird).
  • 12. PROLOG Paradigm Examples (Rules) English PROLOG “Something is an animal animal(X) :- isa(X,mammal). if it is a mammal or a bird” animal(X) :- isa(X, bird).
  • 13. PROLOG Paradigm Examples (Queries) English PROLOG “is a sparrow an animal?” ?- animal(sparrow). answer: “yes” yes “is a table an animal?” ?- animal(table). answer: “no” no “what is a dog?” ?- isa(dog, X). answer: “a mammal” X = mammal
  • 14. PROLOG syntax • Constants – Atoms • Alphanumeric atoms - alphabetic character sequence starting with a lower case letter Examples: apple a1 apple_cart • Quoted atoms “String” - sequence of characters surrounded by single quotes Examples: ‘Apple’ ‘hello world’ • Symbolic atoms - sequence of symbolic characters Examples: & < > * - + >> • Special atoms Examples: ! ; [ ] {} – Numbers • Integers and Floating Point numbers Examples: 0 1 9821 -10 1.3 -1.3E102
  • 15. PROLOG syntax • Variable Names a sequence of alphanumeric characters beginning with an upper case letter or an underscore Examples: Anything _var X _ • Compound Terms (structures) – an atom followed by an argument list containing terms. The arguments are enclosed within brackets and separated by commas Example: isa(dog, mammal)
  • 16. Prolog syntax • The names of all relationships and objects must begin with a lower case letter. For example studies, ali, programming • The relationship is written first and the objects are enclosed within parentheses and are written separated by commas. For example studies(ali, programming) • The full stop character ‘.’ must come at the end of a fact. • Order is arbitrary but it should be consistent
  • 17. Example  Program with three facts and one rule: rainy(columbo). rainy(ayubia). cold(ayubia). Rule: snowy(X) :- rainy(X), cold(X).  Query and response: ?- snowy(ayubia). yes  Query and response: ?- snowy(columbo). no  Query and response: ?- snowy(lahore). No • ?- snowy(C). C = ayubia – because rainy(ayubia) and cold(ayubia) are sub-goals that are both true facts in the database – snowy(X) with X=columbo is a goal that fails, because cold(X) fails, triggering backtracking
  • 18. snowy(C) snowy(X) AND rainy(X) cold(X) C = X rainy(columbo) rainy(ayubia) X = columbo X = ayubia cold(ayubia) C = X = ayubia C = ayubia rainy(columbo). rainy(ayubia). cold(ayubia). snowy(X) :- rainy(X), cold(X). ?- snowy(C). C = ayubia OR
  • 19. Logic Representation : Propositional Calculus • Propositional Logic – Boolean statements – Logic connectives      Example – a family Atomic statements p: Ahmed is father of Belal q: Ahmed is brother of Aslam r : Aslam is uncle of Belal Complex statements  Statement Logic p Ahmed is not father of Belal p  q Ahmed is father of Belal or Ahmed is brother of Aslam p  q  r If Ahmed is father of Belal and brother of Aslam then Aslam is uncle of Belal
  • 20. Prolog Programming Predicate Calculus • Predicates (Facts) – man(Ahmed) – father(Ahmed, Belal) – brother(Belal, Chand) – brother(Chand, Delawar) – owns(Belal, car) – tall(Belal) – hates(Ahmed, Chand) – family() • Formulae – X,Y,Z(man(X)  man(Y)  father(Z,Y)  father(Z,X)  brother(X,Y)) • Variables – X, Y and Z • Constants – Ahmed, Belal, Chand, Delawar and car Prolog code Predicates man(symbol) father(symbol, symbol) brother(symbol, symbol) owns(symbol, symbol) tall(symbol) hates(symbol, symbol) family() Clauses man(ahmed). father(ahmed, belal). brother(ahmed, chand). owns(belal, car). tall(belal). hates(ahmed, chand). family(). Rule: brother(X,Y):- man(X), man(Y), father(Z,Y), father(Z,X). Goal brother(ahmed,belal).
  • 21. Sections of Prolog Program (1-3) • Predicates – Declarations of Relations or Rules – Just like function prototype (declaration). – Zero or more arguments – Example Predicates man(symbol) family() a_new_predicate (integer, char)
  • 22. Sections of Prolog Program (2-3) • Clauses – Definition(s) of Predicate = Sentence OR Phrase – Types • Rules (function definitions) – 0 or more conditions (statements) • Facts – 0 conditions – All parameters constant – Examples • Fact brother(ahmed, chand). • Rule brother(X,Y):- man(X), man(Y), father(Z,Y), father(Z,X).
  • 23. Sections of Prolog Program (3-3) • Goal – Goal of inference – Only and exactly one instance – The only tentative section of the program – The main() of prolog – Goal truth value = output of program – Syntactically and Semantically just another clause • Empty, simple (one goal), or compound (sub-goals) – Examples • Goal brother(X,chand). <or> brother(ahmed,chand). • Goal brother(X,chand), father().
  • 24. Sample Program Update domains person = symbol predicates nondeterm father(person,person) nondeterm brother(person,person) nondeterm cousin(person,person) nondeterm grandfather(person,person) clauses father(a,b). father(a,c). father(a,d). father(b,e). father(b,f). father(b,g). father(c,h). father(c,i). father(d,j). father(d,k). brother(X,Y):- X<>Y, father(Z,X), father(Z,Y). cousin(X,Y):- father(A,X), father(B,Y), brother(A,B). grandfather(X,Y):- father(Z,Y), father(X,Z). goal cousin(X,Y).
  • 25. Prolog Variables • Constant placeholders (NOT variables) – Bounded once • Loosely typed • Start with Capital letter or underscore • Examples – brother(ahmed, Ahmed) – brother(ahmed, _x) – Brother(ahmed, X) • Anonymous variable – The _ – Some value that isn’t required – Example brother(ahmed, _)
  • 26. Expert system • A simple medical expert system • relieves(Drug, Symptom). – relieves(aspirin, headache). – relieves(aspirin, moderate_pain). – relieves(aspirin, moderate_arthritis). – relieves(aspirin_codine_combination, severe_pain). – relieves(cough_cure, cough). – relieves(pain_gone, severe_pain). – relieves(anti_diarrhea, diarrhea). – relieves(de_congest, cough). – relieves(de_congest, nasal_congestion). – relieves(penicilline, pneumonia). – relieves(bis_cure, diarrhea). – relieves(bis_cure, nausea). – relieves(new_med, headache). – relieves(new_med, moderate_pain). – relieves(cong_plus, nasal_congestion).
  • 27. • aggravates(Drug, Condition). – aggravates(aspirin, asthma). – aggravates(aspirin, peptic_ulcer). – aggravates(anti-diarrhea, fever). – aggravates(de_congest, high_blood_pressure). – aggravates(de_congest, heart_disease). – aggravates(de_congest, diabetes). – aggravates(de_congest, glaucoma). – aggravates(penicilline, asthma). – aggravates(de_congest, high_blood_pressure). – aggravates(bis_cure, diabetes). – aggravates(bis_cure, fever).
  • 28. should_take(Person, Drug) :- complains_of(Person, Symptom), relieves(Drug, Symptom), not(unsuitable_for(Person, Drug)). //conjunction of three classes. unsuitable_for(Person, Drug) :- aggravates(Drug, Condition), suffers_from(Person, Condition). complains_of(ali, headache). suffers_from(ali, peptic_ulcer). ?- should_take(ali, Drug). Drug = new_med;
  • 29. Books • Prolog Programming for AI by Ivan Bratko • Visual Prolog; Language Tutorial by PDC

Editor's Notes

  • #2: (load “c:/yourprogram.lisp”)
  • #4: Pro: Programming, Log : Logic Predicate Calculus : Where we define our predicates and then we inference and deduce new information. Theorem proving: [Certain fact + Certain Rules + Query (Is it right or wrong)] Declarative Language: What is the fact and what we need in result?
  • #5: 4
  • #6: 5
  • #7: 6
  • #8: 7
  • #10: Modus Ponens (Basic Proof technique): If A is true then B is also true.
  • #11: Logic Programming: First we write horn clauses (Facts+Fules). We need to establish a Goal with two ways. 1)Forward Chaining 2) Backward Chaining: Back tracking Algorithm I need to prove it or disprove it.
  • #12: 11
  • #13: 12
  • #14: 13
  • #15: 14
  • #16: 15
  • #17: Period (.) must come after fact and rule. [End of statement]
  • #18: We don’t have any information that Snowy(Columbo) , that fact is not avaliable so we say No. Backward chaining & Inference Mechanism do all these things for us.
  • #21: 3 Parts. Predicates. Clauses Goal [Goad will only be one]
  • #22: Goal: Is the result of program. Program: [Facts+Rule]+Query
  • #26: ProLog have no assignment mechanism. Loosely typed: You associate the value with it..will be behave like that. (-) Place holder just just use for garbage
  • #28: Aggravates=reactions or side effects.
  • #29: Expert systems shells