1 / 51

# Logic Programming and Prolog - PowerPoint PPT Presentation

Cat(Spot) Mammal(Spot) . Cat(Rebecca) Mammal(Rebecca) . Cat(Felix) ... (Felix, Spot) Cat(Felix)) (Sister(Richard, Spot) Cat(Richard)) ...

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about 'Logic Programming and Prolog' - Kelvin_Ajay

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

### Logic Programming and Prolog

Stuart Howard

CS 550

Montana State University

December 5, 2003

• Definition

• History and background

• Logical calculus

• Resolution theorem proving

• Prolog syntax and example program

• Strengths and weaknesses

• Summary and conclusions

• based on symbolic logic

• write declarations and infer the results

• logic programming languages are declarative languages

What does declarative mean?

• Logic programmers write declarations describing relationships between entities

• the ‘what’ vs. the ‘how’

• what does the answer look like? (specification)

vs.

• how do I exactly compute the answer?(implementation)

figure from [Brookshear]

Let’s sort a list nonprocedurally

permute(oldList, newList) Ù sorted(newList) => sort(oldList, newList)

• j such that 1 ≤ j < n, list(j) ≤ list(j + 1) => sorted(list)

example from [Sebesta]

Prolog = Programmation en Logique

• Early 70’s

• Alain Colmerauer and Phillipe Roussel

• Robert Kowalski

Q-systems – designed for machine natural language translation (Colmerauer)

• used to construct automatic English-French translations

• used in Canada to translate weather forecasts from English to French

man-machine communication system –1972

TOUT PSYCHIATRE EST UNE PERSONNE.

CHAQUE PERSONNE QU'IL ANALYSE, EST MALADE.

*JACQUES EST UN PSYCHIATRE A *MARSEILLE.

EST-CE QUE *JACQUES EST UNE PERSONNE?

OU EST *JACQUES?

OUI.

A MARSEILLE.

JE NE SAIS PAS.

Shaun, the bull, and the tractor.

• language

• inference rules

• semantics

the language…

• atoms: T, F, {w | w is a string and begins

with a capital letter}…H, On_A_B

• connectives: Ù, Ú, Ø, →

• rules for forming sentences(aka. well-formed formulas, wff’s)

• any atom is a wff

• If w1 and w2 are wff’s, so are:w1 Ù w2conjunctionw1 Ú w2disjunctionw1 →w2implication

Ø w1negation

• there are no other wff’s

• literal: atom or negated atom (P, ØP)

• w1 →w2(antecedent) (consequent)

the inference rules…(6 of them anyway)

• w2 from w1 and w1 →w2 (modus ponens)

• w1 Ù w2 from w1 and w2 (Ù introduction)

• w2 Ù w1 from w1 Ù w2 (commutativity of Ù)

• w1 from w1 Ù w2 (Ù elimination)

• w1 Ú w2 from w1 or w2 (Ú introduction)

• w1 from Ø(Øw1) (Ø elimination)

the semantics…

• associate atoms with propositions about the world

Shaun_strong with “Shaun is strong”|_________________| denotation |__________________________________________|

interpretation

remember…?

• literal: an atom or its negation

a new term!

• clause: a set of literals with disjunction implied {P, Q, ØR} ≡ (P ÚQ ÚØR)

a new inference rule…resolution

S1 S2from{a} S1 and{Øa} S2

P ÚR from P ÚQ and R ÚØQ

{ } from{a} and {Øa}

[Brookshear]

• Soundness - OK

• Completeness – not OK

Resolving (P OR Q), (R OR Q), R, P

[Brookshear]

• Propositional calculus limits us to referring to ‘hard-coded’ propositions about the world.

• What if we also want to refer to objects and propositions by name?

Objects: constants (names) or variables

Functions/relations: constants (names)

weird(MichaelJackson)

cute(Russell)

smart(x)

hate(Michael, Microsoft)

• Quantifiers

• Universal

• Existential

• Express properties of entire collections of objects

• Universal quantifiers make statements about every object, "x

A cat is a mammal

"x Cat(x) ÞMammal(x)

Cat(Spot) Þ Mammal(Spot) Ù

Cat(Rebecca) Þ Mammal(Rebecca) Ù

Cat(Felix) Þ Mammal(Felix) Ù

Cat(Richard) Þ Mammal(Richard) Ù

Cat(John) Þ Mammal(John) Ù

… [Comp313A]

• Existential Quantifiers make statements about some objects, \$x

Spot has a sister who is a cat

\$x Sister(x, Spot) Ù Cat(x)

(Sister(Spot, Spot) Ù Cat(Spot)) Ú

(Sister(Rebecca, Spot) Ù Cat(Rebecca)) Ú

(Sister(Felix, Spot) Ù Cat(Felix)) Ú

(Sister(Richard, Spot) Ù Cat(Richard)) Ú

(Sister(John, Spot) Ù Cat(John)) Ú

… [Comp313A]

"is a conjunction over the universe of objects

\$is a disjunction over the universe of objects

The George W. Bush Family

mother(Barbara, George Jr.)

father(George Jr., Jenna)

father(George Jr., Barbara II)

Q: Barbara is the grandmother of whom?

" x" y"z[mother(x, y) Ù parent(y, z) => grandmother(x, z)]

" x"y [father(x,y) => parent(x, y)]

" x"y [mother(x,y) => parent(x, y)]

• mother(Barbara, George Jr.)

• father(George Jr., Jenna)

• father(George Jr., Barbara II)

• " x" y"z[mother(x, y) Ù parent(y, z) => grandmother(x, z)]

• " x"y [father(x,y) => parent(x, y)]

• " x"y [mother(x,y) => parent(x, y)]

" x" y"z[mother(x, y) Ùparent(y, z) => grandmother(x, z)]

mother(x, y) Ùparent(y, z) => grandmother(x, z)

Ø [mother(x, y) Ùparent(y, z)] Ú grandmother(x, z)

Ø mother(x, y) ÚØ parent(y, z) Ú grandmother(x, z)

" x"y [father(x,y) => parent(x, y)]

father(a, b) => parent(a, b)

Ø father(a, b) Úparent(a, b)

" x"y [mother(x,y) => parent(x, y)]

mother(c, d) => parent(c, d)

Ø mother(c, d) Úparent(c, d)

• mother(Barbara, George Jr.)

• father(George Jr., Jenna)

• father(George Jr., Barbara II)

• Ø mother(x, y) ÚØ parent(y, z) Ú grandmother(x, z)

• Ø father(a, b) Úparent(a, b)

• Ø mother(c, d) Úparent(c, d)

• Ø grandmother(Barbara, Jenna)

• Ø mother(Barbara, e) ÚØ parent(e, Jenna) [7, 4]

• Ø mother(Barbara, f) ÚØ father(f, Jenna) [8, 5]

• Ø father(George Jr., Jenna) [9, 1]

• { }

• Rules

• Facts

• Goals

They are all variants of an implication!

General

a => b

a Ù bÙ c => d

Prolog b :- a.

d :- a, b, c.

General

{ } => b

Prolog

b.

General

b => { }

Prolog

b.

Ø a Ú Ø b Ú Ø c Ú d

(Ø a Ú Ø b Ú Ø c) Ú d

Ø (a Ù bÙ c) Ú d

a Ù bÙ c => d

b

Ø { } Ú b

{ } => b

Ø a Ú Ø b Ú Ø c

Ø (a Ù bÙ c) Ú { }

a Ù bÙ c => { }

2

4

5

3

6

2

4

3

5

6

7

• relational database management systems

• expert systems

• natural language processing

• Resolution order control

• Closed world assumption

Proponets say…

• Logical language => logically organized=> fewer errors, less maintenance

• Programs concise => less development time => good prototyping language

Opponents say…

• BUNK!

http://www.mozart-oz.org/features.html

• Definition

• History and background

• Logical calculus

• Resolution theorem proving

• Prolog syntax and example program

• Strengths and weaknesses

• Summary and conclusions

Concepts of Programming Languages (Fourth Edition) by Robert Sebesta (An excellent overview of Prolog... very helpful!) Notes from CS 436 (Artificial Intelligence) Dr. John Paxton (My first introduction to predicate calculus and Prolog) Artificial Intelligence: A New Synthesis by Nils Nilsson (Excellent presentation of propositional and predicate calculus) Computer Science: An Overview by Glenn Brookshear (Nice short overview of logic programming and Prolog) Compiler Design by Reinhard Wilhelm and Dieter Maurer (Obtuse, highly mathemetized, and hard to read.... i.e. it's Greek to me) http://www.cs.waikato.ac.nz/Teaching/COMP313A/lecture_notes.html (6 excellent PowerPoint lectures on logic programming) Alain Colmerauer's web site (a cofounder of Prolog) History of PrologProlog compiler that ESUS uses