How To Think Like a Prolog ?

Slides:



Advertisements
Similar presentations
9 x9 81 4/12/2015 Know Your Facts!. 9 x2 18 4/12/2015 Know Your Facts!
Advertisements

4. Using Structures: Example Programs. Contents l Retrieving structured information from a database l Doing data abstraction l Simulating a non-deterministic.
1. An Overview of Prolog.
Chapter 4 Predicate Logics
Introduction to PROLOG ME 409 Lab - 1. Introduction to PROLOG.
COMMONWEALTH OF AUSTRALIA Copyright Regulations 1969 WARNING This material has been reproduced and communicated to you by or on behalf of Monash University.
1 x0 0 4/15/2015 Know Your Facts!. 9 x1 9 4/15/2015 Know Your Facts!
1 x0 0 4/16/2015 Know Your Facts!. 1 x8 8 4/16/2015 Know Your Facts!
3 x0 0 7/18/2015 Know Your Facts!. 4 x3 12 7/18/2015 Know Your Facts!
1 Logic Programming. 2 A little bit of Prolog Objects and relations between objects Facts and rules. Upper case are variables. parent(pam, bob).parent(tom,bob).
1 COMP313A Programming Languages Logic Programming (3)
Prolog Programming for Artificial Intelligence Three edition 2001
Introduction to Prolog Language Presented by San Myint.
UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering Introduction to Prolog Notes for CSCE 330 Based on Bratko and Van Emden Marco.
Prolog programming Introduction to Prolog (part4) CS 370 – CS461.
Prolog programming Introduction to Prolog
About prolog  History  Symbolic Programming Language  Logic Programming Language  Declarative Programming Language.
Comp 307 Lecture 4:1 Prolog I, II Prolog was taught as a procedural language Control structures: if, while, recursion Data structures: structured terms,
MB: 2 March 2001CS360 Lecture 31 Programming in Logic: Prolog Prolog’s Declarative & Procedural Semantics Readings: Sections
Rules Simple rules. Processing rules. Multiple sub-goals. PROLOG syntax. Recursive rules.
Introduction to Prolog Proof Procedures. Exercise parent(mark, alex). parent(di, alex). brother(brian, mark). sister(cathy, di). wife(susan, brian). husband(brad,
For Friday Read “lectures” 1-5 of Learn Prolog Now: prolog-now/
UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering Introduction to Prolog Notes for Ch.1 of Bratko For CSCE 580 Sp03 Marco Valtorta.
True/False. False True Subject May Go Here True / False ? Type correct answer here. Type incorrect answer here.
Determine whether each curve below is the graph of a function of x. Select all answers that are graphs of functions of x:
CS1502 Formal Methods in Computer Science Lecture Notes 10 Resolution and Horn Sentences.
Prolog programming Introduction to Prolog CS370d - CS 461.
Abductive reasoning and language analysis with Prolog and Constraint Handling Rules Tilburg School of Humanities, March 1, 2012 Henning Christiansen professor.
COSC 2P93 Logic Programming Instructor: Brian Ross Instructor: Brian Ross Texts: Texts: Prolog Programming for Artificial Intelligence,4e, Ivan Bratko,
1 Lecture 6 Logic Programming introduction to Prolog, facts, rules Ras Bodik Shaon Barman Thibaud Hottelier Hack Your Language! CS164: Introduction to.
The Teacher Computing Computer Languages [Computing]
For Wednesday Read “lectures” 7-10 of Learn Prolog Now Chapter 9, exs 4 and 6. –6 must be in Horn clause form Prolog Handout 2.
Chapter 2 Syntax and meaning of Prolog Programs LP and Prolog Chapter 22 PROLOG domains variable name = type predicates relation(variable name,
Chapter 7 Turbo Prolog Chapter 7 Turbo Prolog Artificial Intelligence ดร. วิภาดา เวทย์ประสิทธิ์ ภาควิชาวิทยาการคอมพิวเตอร์ คณะ วิทยาศาสตร์ มหาวิทยาลัยสงขลานครินทร์
For Monday Read “lectures” 1-5 of Learn Prolog Now: prolog-now/
© Enn Tyugu1 Algorithms of Artificial Intelligence Lecture 2: Knowledge E. Tyugu Spring 2003.
Negation Chapter 5. Stating Negative Conditions n Sometimes you want to say that some condition does not hold n Prolog allows this –not/1this is a predicate.
Logic Programming Dr. Yasser Nada Fall 2010/2011 Lecture 1 1 Logic Programming.
Artificial Intelligence CS370D
Artificial Intelligence CIS 342 The College of Saint Rose David Goldschmidt, Ph.D.
For Friday No reading Prolog Handout 2. Homework.
UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering Introduction to Logic Programming: Prolog Notes for CSCE 190 Based on Bratko,
Solving Equations Using Logs. True or False? 1.Log 4 = log Log 15 = log 3 x log 5 3.Log 4 = log 8 – log 2 4.Log 64 = 2 log 8 5.Log 64 = 8 log 2.
Logic Programming Dr. Yasser Nada Fall 2010/2011 Lecture 3 1 Logic Programming.
Title Category #1 Category #2 Category #3Category #
The portion of a Prolog interpreter that executes queries (goals) is known as the inference engine. An inference engine is a kind of theorem prover, using.
TRUE OR FALSE QUIZ. A gene is a length of DNA. TRUE or FALSE.
Computer Languages [Computing] Computing.
For Friday No reading Prolog handout 3 Chapter 9, exercises 9-11.
For Wednesday Read “lectures” 7-10 of Learn Prolog Now:
Prolog programming Introduction to Prolog
Rule Exercises Status of the Ball Definitions and Rule 15
Rule Exercises Status of the Ball Definitions and Rule 15
Prolog programming Introduction to Prolog (part2)
Prolog Primarily for Symbolic (nonnumeric) Computation
Factors, multiple, primes: Factors from prime factors
Factors, multiple, primes: Prime factors
Prolog programming Introduction to Prolog
Prolog programming Introduction to Prolog (part3)
True or False: {image} is one-to-one function.
Dr. Yasser Nada Fall 2010/2011 Lecture 1
Prolog programming Introduction to Prolog (part4)
Straight line graphs: Horizontal and vertical lines
Factors, multiple, primes: Multiples
Fractions: Simplifies to a unit fraction?
Straight line graphs: Horizontal and vertical lines
Standard Form: Multiplying powers of 10
Standard form: In standard form?
True or False True or False
Coordinates: Naming 2D coordinates – quadrant 1
Presentation transcript:

How To Think Like a Prolog ? Done by : Asma Almane , Banan Alhadlaq

Example 1: Consider the following Prolog program: Q: As a compiler , find the possible answers of X in the following query : ? – predecessor ( X , jim ) . parent(pam,bob). parent(tom,bob). parent(tom,liz). parent(bob,ann). parent(bob,pat). parent(pat,jim). predecessor(X,Z):- parent(X,Z). parent(X,Y), predecessor(Y,Z).

Example 1: Consider the following Prolog program: ? – predecessor ( X , jim ) . Example 1: Consider the following Prolog program: predecessor(X,jim) By using rule pr1 From the fact parent (pat,jim) X = pat , Z = jim parent(pam,bob). parent(tom,bob). parent(tom,liz). parent(bob,ann). parent(bob,pat). parent(pat,jim). predecessor(X,Z):- parent(X,Z). parent(X,Y), predecessor(Y,Z). parent(pat,jim) TRUE X= pat ;

Example 1: Consider the following Prolog program: ? – predecessor ( X , jim ) . Example 1: Consider the following Prolog program: predecessor(X,jim) By using rule pr 2 From the fact Parent(pam,bob). X=pam , Y=bob parent( pam , bob ) , predecessor(bob , jim). parent(pam,bob). parent(tom,bob). parent(tom,liz). parent(bob,ann). parent(bob,pat). parent(pat,jim). predecessor(X,Z):- parent(X,Z). parent(X,Y), predecessor(Y,Z). predecessor(bob , jim). By using rule pr 2 By using rule pr 1 From the fact Parent(bob,ann). X=bob , Y=ann parent( bob , jim ). parent( bob , ann ), predecessor( ann , jim). FALSE predecessor( ann , jim). By using rule pr 1 By using rule pr 2 parent( ann , jim). parent( ann , Y ), predecessor( Y , jim). FALSE FALSE

Example 1: Consider the following Prolog program: ? – predecessor ( X , jim ) . Example 1: Consider the following Prolog program: predecessor(X,jim) By using rule pr 2 From the fact Parent(pam,bob). X=pam , Y=bob parent( pam , bob ) , predecessor(bob , jim). parent(pam,bob). parent(tom,bob). parent(tom,liz). parent(bob,ann). parent(bob,pat). parent(pat,jim). predecessor(X,Z):- parent(X,Z). parent(X,Y), predecessor(Y,Z). predecessor(bob , jim). By using rule pr 2 By using rule pr 1 From te fact Parent(bob,pat). X=bob , Y=ann parent( bob , jim ). parent( bob , pat ), predecessor( pat , jim). FALSE predecessor( pat , jim). By using rule pr 1 parent( pat , jim). X=pam ; TRUE

Example 1: Consider the following Prolog program: ? – predecessor ( X , jim ) . Example 1: Consider the following Prolog program: predecessor(X,jim) By using rule pr 2 From the fact Parent(pam,bob). X=tom , Y=bob parent( tom , bob ) , predecessor(bob , jim). parent(pam,bob). parent(tom,bob). parent(tom,liz). parent(bob,ann). parent(bob,pat). parent(pat,jim). predecessor(X,Z):- parent(X,Z). parent(X,Y), predecessor(Y,Z). predecessor(bob , jim). By using rule pr 2 By using rule pr 1 From the fact Parent(bob,ann). X=bob , Y=ann parent( bob , jim ). parent( bob , ann ), predecessor( ann , jim). FALSE predecessor( ann , jim). By using rule pr 1 By using rule pr 2 parent( ann , jim). parent( ann , Y ), predecessor( Y , jim). FALSE FALSE

Example 1: Consider the following Prolog program: ? – predecessor ( X , jim ) . Example 1: Consider the following Prolog program: predecessor(X,jim) By using rule pr 2 From the fact Parent(pam,bob). X=tom , Y=bob parent( tom , bob ) , predecessor(bob , jim). parent(pam,bob). parent(tom,bob). parent(tom,liz). parent(bob,ann). parent(bob,pat). parent(pat,jim). predecessor(X,Z):- parent(X,Z). parent(X,Y), predecessor(Y,Z). predecessor(bob , jim). By using rule pr 2 By using rule pr 1 From the fact Parent(bob,pat). X=bob , Y=ann parent( bob , jim ). parent( bob , pat ), predecessor( pat , jim). FALSE predecessor( pat , jim). By using rule pr 1 parent( pat , jim). X=tom ; TRUE

Example 1: Consider the following Prolog program: ? – predecessor ( X , jim ) . Example 1: Consider the following Prolog program: predecessor(X,jim) By using rule pr 2 From the fact Parent(pam,bob). X=tom , Y=liz parent( tom , liz ) , predecessor(liz , jim). parent(pam,bob). parent(tom,bob). parent(tom,liz). parent(bob,ann). parent(bob,pat). parent(pat,jim). predecessor(X,Z):- parent(X,Z). parent(X,Y), predecessor(Y,Z). predecessor(liz , jim). By using rule pr 1 By using rule pr 2 parent( liz , jim ). parent( liz , Y ), predecessor( Y , jim). FALSE There is NO Y FALSE

Example 1: Consider the following Prolog program: ? – predecessor ( X , jim ) . Example 1: Consider the following Prolog program: predecessor(X , jim). By using rule pr 2 From the fact Parent(bob,ann). X=bob , Y=ann parent(pam,bob). parent(tom,bob). parent(tom,liz). parent(bob,ann). parent(bob,pat). parent(pat,jim). predecessor(X,Z):- parent(X,Z). parent(X,Y), predecessor(Y,Z). parent( bob , ann ), predecessor( ann , jim). predecessor( ann , jim). By using rule pr 1 By using rule pr 2 parent( ann , jim). parent( ann , Y ), predecessor( Y , jim). FALSE There is NO Y FALSE

Example 1: Consider the following Prolog program: ? – predecessor ( X , jim ) . Example 1: Consider the following Prolog program: predecessor(X,jim) By using rule pr 2 From the fact Parent(bob,pat). X=bob , Y=pat parent( bob , pat ), predecessor( pat , jim). parent(pam,bob). parent(tom,bob). parent(tom,liz). parent(bob,ann). parent(bob,pat). parent(pat,jim). predecessor(X,Z):- parent(X,Z). parent(X,Y), predecessor(Y,Z). predecessor( pat , jim). By using rule pr 1 parent( pat , jim). TRUE X=bob ;

Example 1: Consider the following Prolog program: ? – predecessor ( X , jim ) . Example 1: Consider the following Prolog program: predecessor(X,jim) By using rule pr 2 parent( pat , jim ), predecessor( jim , jim). parent(pam,bob). parent(tom,bob). parent(tom,liz). parent(bob,ann). parent(bob,pat). parent(pat,jim). predecessor(X,Z):- parent(X,Z). parent(X,Y), predecessor(Y,Z). predecessor( jim , jim). By using rule pr 1 By using rule pr 2 parent( jim , jim). parent( jim , Y ), predecessor( Y , jim). FALSE There is NO Y FALSE

Example 2: Consider the following Prolog program: Q: As a compiler , find the possible answers of X and Y in the following query : ? – brother ( X , Y ) . father(ahmad,sami). father(ahmad,khalid). father(sami,fahad). father(sami,mohammed). father(khalid,naseer). brother(X,Y):- father(Z,X) , father(Z,Y), not(X=Y).

Example 2: Consider the following Prolog program: ? – brother ( X , Y ) . Example 2: Consider the following Prolog program: brother ( X , Y ) father(ahmad,sami). father(ahmad,khalid). father(sami,fahad). father(sami,mohammed). father(khalid,naseer). brother(X,Y):- father(Z,X) , father(Z,Y), not(X=Y). By using the facts father (ahmad , sami) , father (ahmed,Y) , not(sami=Y). TRUE ; X= sami , Y=khalid

Example 2: Consider the following Prolog program: ? – brother ( X , Y ) . Example 2: Consider the following Prolog program: brother ( X , Y ) father(ahmad,sami). father(ahmad,khalid). father(sami,fahad). father(sami,mohammed). father(khalid,naseer). brother(X,Y):- father(Z,X) , father(Z,Y), not(X=Y). By using the facts father (ahmad , khalid) , father (ahmed,Y) , not(khalid=Y). TRUE ; X= khalid , Y=sami

Example 2: Consider the following Prolog program: ? – brother ( X , Y ) . Example 2: Consider the following Prolog program: brother ( X , Y ) father(ahmad,sami). father(ahmad,khalid). father(sami,fahad). father(sami,mohammed). father(khalid,naseer). brother(X,Y):- father(Z,X) , father(Z,Y), not(X=Y). By using the facts father (sami , fahad) , father (sami,Y), Not(fahad=Y). TRUE X= fahad , Y=mohammed ;

Example 2: Consider the following Prolog program: ? – brother ( X , Y ) . Example 2: Consider the following Prolog program: brother ( X , Y ) father(ahmad,sami). father(ahmad,khalid). father(sami,fahad). father(sami,mohammed). father(khalid,naseer). brother(X,Y):- father(Z,X) , father(Z,Y), not(X=Y). By using the facts father (sami,mohammed), father(sami,Y), not(mohammed=Y). TRUE X=mohammed , Y= fahad ;

Example 2: Consider the following Prolog program: ? – brother ( X , Y ) . Example 2: Consider the following Prolog program: brother ( X , Y ) father(ahmad,sami). father(ahmad,khalid). father(sami,fahad). father(sami,mohammed). father(khalid,naseer). brother(X,Y):- father(Z,X) , father(Z,Y), not(X=Y). By using the facts father (khalid,naseer), father(khalid,Y), not(naseer=Y). FALSE false.