SlideShare a Scribd company logo
1 of 29
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

What's hot

Computational Learning Theory
Computational Learning TheoryComputational Learning Theory
Computational Learning Theory
butest
 
Natural language processing (nlp)
Natural language processing (nlp)Natural language processing (nlp)
Natural language processing (nlp)
Kuppusamy P
 
Logic programming (1)
Logic programming (1)Logic programming (1)
Logic programming (1)
Nitesh Singh
 
Knowledge Representation & Reasoning
Knowledge Representation & ReasoningKnowledge Representation & Reasoning
Knowledge Representation & Reasoning
Sajid Marwat
 

What's hot (20)

Introduction to Prolog
Introduction to PrologIntroduction to Prolog
Introduction to Prolog
 
AI: Logic in AI
AI: Logic in AIAI: Logic in AI
AI: Logic in AI
 
First order logic
First order logicFirst order logic
First order logic
 
Computational Learning Theory
Computational Learning TheoryComputational Learning Theory
Computational Learning Theory
 
Natural language processing (nlp)
Natural language processing (nlp)Natural language processing (nlp)
Natural language processing (nlp)
 
Logic programming (1)
Logic programming (1)Logic programming (1)
Logic programming (1)
 
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
 
Parallel Algorithms
Parallel AlgorithmsParallel Algorithms
Parallel Algorithms
 
Knowledge Representation & Reasoning
Knowledge Representation & ReasoningKnowledge Representation & Reasoning
Knowledge Representation & Reasoning
 
Unit4: Knowledge Representation
Unit4: Knowledge RepresentationUnit4: Knowledge Representation
Unit4: Knowledge Representation
 
Uncertainty in AI
Uncertainty in AIUncertainty in AI
Uncertainty in AI
 
Introduction Artificial Intelligence a modern approach by Russel and Norvig 1
Introduction Artificial Intelligence a modern approach by Russel and Norvig 1Introduction Artificial Intelligence a modern approach by Russel and Norvig 1
Introduction Artificial Intelligence a modern approach by Russel and Norvig 1
 
First Order Logic resolution
First Order Logic resolutionFirst Order Logic resolution
First Order Logic resolution
 
Artificial Intelligence Notes Unit 1
Artificial Intelligence Notes Unit 1 Artificial Intelligence Notes Unit 1
Artificial Intelligence Notes Unit 1
 
Algorithms Lecture 1: Introduction to Algorithms
Algorithms Lecture 1: Introduction to AlgorithmsAlgorithms Lecture 1: Introduction to Algorithms
Algorithms Lecture 1: Introduction to Algorithms
 
Knowledge representation and Predicate logic
Knowledge representation and Predicate logicKnowledge representation and Predicate logic
Knowledge representation and Predicate logic
 
AI: AI & Problem Solving
AI: AI & Problem SolvingAI: AI & Problem Solving
AI: AI & Problem Solving
 
I. AO* SEARCH ALGORITHM
I. AO* SEARCH ALGORITHMI. AO* SEARCH ALGORITHM
I. AO* SEARCH ALGORITHM
 
First order logic
First order logicFirst order logic
First order logic
 

Viewers also liked

Logic Programming and ILP
Logic Programming and ILPLogic Programming and ILP
Logic Programming and ILP
Pierre de Lacaze
 
12 quelques prédicats prédéfinis de swi
12  quelques prédicats prédéfinis de swi12  quelques prédicats prédéfinis de swi
12 quelques prédicats prédéfinis de swi
Siham Rim Boudaoud
 

Viewers also liked (20)

Prolog basics
Prolog basicsProlog basics
Prolog basics
 
Prolog Programming : Basics
Prolog Programming : BasicsProlog Programming : Basics
Prolog Programming : Basics
 
Artificial intelligence Prolog Language
Artificial intelligence Prolog LanguageArtificial intelligence Prolog Language
Artificial intelligence Prolog Language
 
Prolog Code [Family Tree] by Shahzeb Pirzada
Prolog Code [Family Tree] by Shahzeb PirzadaProlog Code [Family Tree] by Shahzeb Pirzada
Prolog Code [Family Tree] by Shahzeb Pirzada
 
Prolog 7-Languages
Prolog 7-LanguagesProlog 7-Languages
Prolog 7-Languages
 
PROLOG: Recursion And Lists In Prolog
PROLOG: Recursion And Lists In PrologPROLOG: Recursion And Lists In Prolog
PROLOG: Recursion And Lists In Prolog
 
Prolog & lisp
Prolog & lispProlog & lisp
Prolog & lisp
 
PROLOG: Cuts And Negation In Prolog
PROLOG: Cuts And Negation In PrologPROLOG: Cuts And Negation In Prolog
PROLOG: Cuts And Negation In Prolog
 
Prolog: Arithmetic Operations In Prolog
Prolog: Arithmetic Operations In PrologProlog: Arithmetic Operations In Prolog
Prolog: Arithmetic Operations In Prolog
 
Prolog programming
Prolog programmingProlog programming
Prolog programming
 
PROLOG: Fact Roles And Queries In Prolog
PROLOG: Fact Roles And Queries In PrologPROLOG: Fact Roles And Queries In Prolog
PROLOG: Fact Roles And Queries In Prolog
 
Logic Programming and ILP
Logic Programming and ILPLogic Programming and ILP
Logic Programming and ILP
 
Expert Systems & Prolog
Expert Systems & PrologExpert Systems & Prolog
Expert Systems & Prolog
 
Combining Data Mining and Ontology Engineering to enrich Ontologies and Linke...
Combining Data Mining and Ontology Engineering to enrich Ontologies and Linke...Combining Data Mining and Ontology Engineering to enrich Ontologies and Linke...
Combining Data Mining and Ontology Engineering to enrich Ontologies and Linke...
 
Social Media Marketing Strategies for PR , Journalism Workshop in Bangalore....
Social Media Marketing Strategies for PR , Journalism  Workshop in Bangalore....Social Media Marketing Strategies for PR , Journalism  Workshop in Bangalore....
Social Media Marketing Strategies for PR , Journalism Workshop in Bangalore....
 
Hubot and Playbook - Oct 2016 ChatbotsAU meetup
Hubot and Playbook - Oct 2016 ChatbotsAU meetupHubot and Playbook - Oct 2016 ChatbotsAU meetup
Hubot and Playbook - Oct 2016 ChatbotsAU meetup
 
5
55
5
 
12 quelques prédicats prédéfinis de swi
12  quelques prédicats prédéfinis de swi12  quelques prédicats prédéfinis de swi
12 quelques prédicats prédéfinis de swi
 
Jean Rohmer
Jean RohmerJean Rohmer
Jean Rohmer
 
Introduccion a prolog
Introduccion a prologIntroduccion a prolog
Introduccion a prolog
 

Similar to ProLog (Artificial Intelligence) Introduction

Chaps 1-3-ai-prolog
Chaps 1-3-ai-prologChaps 1-3-ai-prolog
Chaps 1-3-ai-prolog
saru40
 

Similar to ProLog (Artificial Intelligence) Introduction (20)

10 logic+programming+with+prolog
10 logic+programming+with+prolog10 logic+programming+with+prolog
10 logic+programming+with+prolog
 
Challenge@RuleML2015 Datalog+, RuleML and OWL 2 - Formats and Translations f...
Challenge@RuleML2015  Datalog+, RuleML and OWL 2 - Formats and Translations f...Challenge@RuleML2015  Datalog+, RuleML and OWL 2 - Formats and Translations f...
Challenge@RuleML2015 Datalog+, RuleML and OWL 2 - Formats and Translations f...
 
Prolog final
Prolog finalProlog final
Prolog final
 
Prolog Programming Language
Prolog Programming  LanguageProlog Programming  Language
Prolog Programming Language
 
Plc part 4
Plc  part 4Plc  part 4
Plc part 4
 
Chaps 1-3-ai-prolog
Chaps 1-3-ai-prologChaps 1-3-ai-prolog
Chaps 1-3-ai-prolog
 
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
 
Prolog2 (1)
Prolog2 (1)Prolog2 (1)
Prolog2 (1)
 
Prolog
PrologProlog
Prolog
 
Pl vol1
Pl vol1Pl vol1
Pl vol1
 
Pl vol1
Pl vol1Pl vol1
Pl vol1
 
app4.pptx
app4.pptxapp4.pptx
app4.pptx
 
Chaps 1-3-ai-prolog
Chaps 1-3-ai-prologChaps 1-3-ai-prolog
Chaps 1-3-ai-prolog
 
#8 formal methods – pro logic
#8 formal methods – pro logic#8 formal methods – pro logic
#8 formal methods – pro logic
 
Jarrar: ORM in Description Logic
Jarrar: ORM in Description Logic  Jarrar: ORM in Description Logic
Jarrar: ORM in Description Logic
 
predicateLogic.ppt
predicateLogic.pptpredicateLogic.ppt
predicateLogic.ppt
 
AI-09 Logic in AI
AI-09 Logic in AIAI-09 Logic in AI
AI-09 Logic in AI
 
tutorial.ppt
tutorial.ppttutorial.ppt
tutorial.ppt
 
Regular Expressions
Regular ExpressionsRegular Expressions
Regular Expressions
 
Prolog,Prolog Programming IN AI.pdf
Prolog,Prolog Programming IN AI.pdfProlog,Prolog Programming IN AI.pdf
Prolog,Prolog Programming IN AI.pdf
 

Recently uploaded

Recently uploaded (20)

SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
REMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxREMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptx
 
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxGoogle Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptx
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
How to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxHow to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptx
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxSKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
 
Interdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxInterdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptx
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
Spatium Project Simulation student brief
Spatium Project Simulation student briefSpatium Project Simulation student brief
Spatium Project Simulation student brief
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 

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

  1. (load “c:/yourprogram.lisp”)
  2. 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?
  3. 4
  4. 5
  5. 6
  6. 7
  7. Modus Ponens (Basic Proof technique): If A is true then B is also true.
  8. 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.
  9. 11
  10. 12
  11. 13
  12. 14
  13. 15
  14. Period (.) must come after fact and rule. [End of statement]
  15. 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.
  16. 3 Parts. Predicates. Clauses Goal [Goad will only be one]
  17. Goal: Is the result of program. Program: [Facts+Rule]+Query
  18. 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
  19. Aggravates=reactions or side effects.
  20. Expert systems shells