Title: Foundations of Artificial Intelligence
1Foundations of Artificial Intelligence
- Chapter 7 The predicate calculus
- Luc De Raedt
2Predicate calculus
- Limitations of propositional calculus
- Language and its syntax
- Semantics (informally)
- Quantifiers
- Representing Knowledge
- Resolution
- Prolog
- This part is based on
- Nils Nilsson, AI a new synthesis, Morgan
Kaufman, 1998, chapters 15, 16 and 17
3The language and its syntax (restricted version)
- Components
- An infinite set of object constants strings
starting with a capital or a numeral - E.g.
- An infinite set of function constants of all
arities strings starting with lowercase and
superscripted with arity - E.g.
- An infinite set of relation constants of all
arities strings beginning with uppercase and
superscripted with arity - E.g.
- Traditional connectives
4Terms (restricted)
- An object constant is a term
- A function constant f of arity n followed by n
terms ti in parentheses is a term - Examples
5Well-formed formulae (restricted)
- Atoms A relation constant F of arity n followed
by n terms ti is an atom - Examples
- Propositional wffs any expression formed with
the propositional calculus and atoms as
propositions. - Example
6Semantics (restricted version)
- Worlds
- The world can have an infinite number of objects,
called individuals, the domain - The world can have an infinite number of
functions f that map n-tuples of individuals into
individuals - The world can have an infinite number of
relations over individuals,
7Interpretations
- An interpretation maps
- object constants to individuals
- n-ary function constants onto n-ary functions
- n-ary relation constants onto n-ary relations
- Given an interpretation, an atom has
the value True iff the relation denoted by R
holds among for those individuals denoted by the
ti
8(No Transcript)
9Models and related notions
- An interpretation satisfies a wff if the wff has
the value True under the interpretation - An interpretation that satisfies a wff is a model
of that wff - Any wff that has the value True under all
interpretations is a tautology (it is valid) - Any wff that does not have a model is
unsatisfiable - If a wff ? has value True under all those
interpretations for which each of the of wffs in
a set ? has value true then ? logically entails
?, notation - Two wffs are equivalent iff their truth values
are identical under all interpretations - Essentially, the notions from propositional logic
carry over
10Knowledge
- Does the following knowledge base (set of
formulae) have a model ?
11Quantification
- How to express
- every object is red ?
- there is an object which is red ?
- For finite domains for infinite domains ?
- Use variables and quantifiers !
12Predicate calculus
- Now introduce
- An infinite set of variable symbols start with
lowercase - Each variable is also a term !
- The universal quantifier? and the existential
one ? - If ? is a wff and v is a variable then the
following are also wffs - Example
- Scoping ? is within the scope of the
quantifier
13Variables, scoping, and quantifiers
- Scoping
- We will assume that all wffs are closed, i.e.
that all variables are quantified, i.e. occur
with the scope of a quantifier. - closed
- Open
- Equivalent
- Not equivalent !
14Semantics
- has the value true (under a given
interpretation) iff ?(v) has the value true for
all assignments of the variable symbol v to
individuals - has the value true (under a given
interpretation) iff ?(v) has the value true for
an assignments of the variable symbol to
individuals
15An example
16Rules of inference
- Some equivalences (De Morgan)
- Universal instantiation
- From infer where a is
substituted for x throughout ?
17- Existential Generalization
- From infer where a has
been replaced by x throughout ? - Universal instantiation and Existential
generalization are sound inference rules
18Wumpus
- Time could be incorporated as well
19Some sentences
- Not all students take both history and biology
- Only one student failed history (requires )
- No person likes a smart vegetarian
- No person likes a professor unless the professor
is smart
20Clausal Form
- Clauses are universally quantified disjunctions
of literals all variables in a clause are
universally quantified
21Towards Resolution
- Examples
- We need to be able to work with variables !
- Unification of two expressions/literals
22Terms and instances
- Consider following atoms
- Ground expressions do not contain any variables
23Substitution
24Composing substitutions
- Composing substitutions s1 and s2 gives s1 s2
which is that substitution obtained by first
applying s2 to the terms in s1and adding
remaining term/vars pairs to s1 - Apply to
25Properties of substitutions
26Unification
- Unifying a set of expressions wi
- Find substitution s such that
- Example
- The most general unifier, the mgu, g of wi has
the property that if s is any unifier of wi
then there exists a substitution s such that
wiswigs - The common instance produced is unique up to
alphabetic variants (variable renaming)
27Disagreement set
- The disagreement set of a set of expressions wi
is the set of subterms ti of wi at the
first position in wi for which the wi
disagree
28Unification algorithm
29Predicate calculus Resolution
- John Allan Robinson (1965)
30Example
31A stronger version of resolution
- Use more than one literal per clause
32Factors
33Resolution
34Resolution
- Properties
- Resolution is sound
- Incomplete
- But fortunately it is refutation complete
- If KB is unsatisfiable then KB - ?
35Refutation Completeness
- To decide whether a formula KB w do
- Convert KB to clausal form KB
- Convert ?w to clausal form ?w
- Combine ?w and KB to give ?
- Iteratively apply resolution to ? and add the
results back to ? until either no more resolvents
can be added, or until the empty clause is
produced.
36Converting to clausal form
- To convert a formula KB into clausal form
- Eliminate implication signs
- Reduce scope of negation signs
- Standardize variables
- Eliminate existential quantifiers using
skolemization - Same as in prop. logic
37Skolemization
- General rule is that each occurrence of an
existentially quantified variable is replaced by
a skolem function whose arguments are those
universally quantified variables whose scopes
includes the scope of the existentially
quantified one - Skolem functions do not yet occur elsewhere !
- Resulting formula is not logically equivalent !
38Skolemization examples
- A well formed formula and its skolem form are not
logically equivalent. However, a set of formulae
is (un)satisfiable if and only if its skolem
form is (un)satisfiable.
39Converting to clausal form
- 5. Convert to prenex form
- Move all universal quantifiers to the front
- 6. Put the matrix in conjunctive normal form
- Use distribution rule
- 7. Eliminate universal quantifiers
- 8. Eliminate conjunction symbol
- 9. Rename variables so that no variable occurs in
more than one clause.
40Using resolution to prove theorems
41Resolution Search Strategies
- Ordering strategies
- In what order to perform resolution ?
- Breadth-first, depth-first, iterative deepening ?
- Unit-preference strategy
- Prefer those resolution steps in which at least
one clause is a unit clause (containing a single
literal) - Refinement strategies
- Linear Input at least one of the clauses being
resolved is a member of the original set of
clauses
42- Refinement strategies (ctd.)
- Ancestor c2 is a descendant of c1 iff c2 is a
resolvent of c1 (and another clause) or if c2 is
a resolvent of a descendant of c1 (and another
clause) c1 is an ancestor of c2 - Set of support the set of clauses coming from
the negation of the theorem (to be proven) and
their descendants - Set of support strategy require that at least
one of the clauses in each resolution step
belongs to the set of support - Ancestry filtering require that at least one of
the clauses in each resolution step belongs to
original set of clauses or is an ancestor of the
other clause being resolved.
43Answer extraction
- Suppose we wish to prove whether KB (?w)f(w)
- We are probably interested in knowing the w for
which f(w) holds. - Add Ans(w) literal to each clause coming from the
negation of the theorem to be proven stop
resolution process when there is a clause
containing only Ans literal
44(No Transcript)
45Horn clause logic and Prolog
- SAT for propositional clausal theories is
NP-complete, but for Horn-clauses it is
polynomial - Inference with first order Horn clauses is also
more efficient/easier than with full clauses - Horn clauses are the basis of Computational
Logic, Logic Programming and the Prolog
programming language - Horn clauses correspond to rules in a knowledge
base - Very effective model for knowledge representation
- We just the basics, so called pure Prolog
46Horn logic/Prolog
47Proof tree
- - Moves
- Moves - Bat_ok, Liftable
- - Bat_ok, Liftable
- Bat_ok -
- - Liftable
- Liftable -
- -
48SLD-derivation
- - Moves
-
- - Bat_ok, Liftable
-
- - Liftable
-
- -
- Contains the sequence of goals that arise during
the computation
49p.4
These slides are adapted from Peter Flachs
book Simply Logical, John Wiley, 1994.
50London Underground in Prolog (1)
p.3
- Connected(Bond_street,Oxfd_circus,Central)
-Connected(Oxfd_circus,Tottenham_court_road,Cent
ral)-Connected(Bond_street,Green_park,Jubilee)-
Connected(Green_park,Vharing_cross,Jubilee)-Conn
ected(Green_park,Piccadilly_circus,Piccadilly)-C
onnected(Piccadilly_circus,Leicester_square,Piccad
illy)-Connected(Green_park,Oxfd_circus,Victoria)
-Connected(Oxfd_circus,Piccadilly_circus,Bakerlo
o)-Connected(Piccadilly_circus,Charing_cross,Bak
erloo)-Connected(Tottenham_court_road,Leicester_
square,Northern)-Connected(Leicester_square,Char
ing_cross,Northern)-
51London Underground in Prolog (2)
p.3-4
- Two stations are nearby if they are on the same
line with at most one other station in between - Nearby(Bond_street,Oxfd_circus).Nearby(Oxfd_circu
s,Tottenham_court_road).Nearby(Bond_street,Totten
ham_court_road).Nearby(Bond_street,Green_park).N
earby(Green_park,Charing_cross).Nearby(Bond_stree
t,Charing_cross).Nearby(Green_park,Piccadilly_cir
cus). - or better
- Nearby(x,y)-Connected(x,y,l).Nearby(x,y)-Connec
ted(x,z,l),Connected(z,y,l).
52p.5
- Compare
- Nearby(x,y)-Connected(x,y,l).Nearby(x,y)-
Connected(x,z,l),Connected(z,y,l). - with
- Not_too_far(x,y)-Connected(x,y,l).Not_too_far(x
,y)- Connected(x,z,l1),Connected(z,y,l2).
53Proof tree
Fig.1.2, p.7
-Nearby(Tottenham_court_road,w)
Nearby(x1,y1)-Connected(x1,u1,l1)
Connected(Tottenham_court_road,Leicester_square,N
orthern)-
54p.7
-Nearby(w,Charing_cross)
Nearby(x1,y1)-Connected(x1,z1,l1),Connected(z1,y
1,l1)
Connected(Bond_street,Green_park,Jubilee)
Connected(Green_park,Charing_cross,Jubilee)
55Recursion (1)
p.8
- A station is Reachable from another if they are
on the same line, or with one, two, changes - Reachable(x,y)-Connected(x,y,l).Reachable(x,y)-
Connected(x,z,l1),Connected(z,y,l2).Reachable(x,
y)- Connected(x,z1,l1),Connected(z1,z2,l2),
Connected(z2,y,l3). - or better
- Reachable(x,y)-Connected(x,y,l).Reachable(x,y)-
Connected(x,z,l),Reachable(z,y).
56Fig. 1.3, p.9
-Reachable(Bond_street,w)
Reachable(x1,y1)-Connected(x1,z1,l1),
Feachable(z1,y1)
Connected(Bond_street, Oxfd_circus,Central)
Reachable(x2,y2)-Connected(x2,z2,l2),
Reachable(z2,y2)
Connected(Oxfd_circus, Tottenham_court_road, Centr
al)
Reachable(x3,y3)-Connected(x3,y3,l3)
Connected(Tottenham_court_road, Leicester_square,
Northern)
57p.12
Reachable(x,y,Noroute)-Connected(x,y,l). Reachabl
e(x,y,route(z,r))-Connected(x,z,l),
Reachable(z,y,r). -Reachable(Oxfd_
circus,Charing_cross,r).r route(Tottenham_court
_road,route(Leicester_square,Noroute))r
route(piccadilly_circus,Noroute)r
route(Picadilly_circus,route(Leicester_square,Noro
ute))
58Proof tree
- -Above(A,C)
- Above(x,y)-On(x,z),Above(z,y)
- -On(A,z),Above(z,C)
- On(A,B)-
- -Above(B,C)
- Above(x1,y1)-On(x1,y1).
- -On(B,C)
- On(B,C)-
- -
-
59SLD-derivation
- -Above(A,C)
-
- -On(A,z),Above(z,C)
-
- -Above(B,C)
-
- -On(B,C)
-
- -
-
60SLD-tree
- -Above(A,C)
- / \
- -On(A,C) -On(A,z),Above(z,C)
-
- -Above(B,C)
- / \
- -On(B,C) -On(B,z),Above(z,C)
-
- - -Above(C,C)
- / \
- -On(C,C) -On(C,z),Above(z,C)
-
61SLD-resolution
- SLD
- Linear resolution with Selection rule for
Definite clauses - SLD-derivation
- Summarizes one proof path
- SLD-tree
- Summarizes all possible proofs
- Substitutions
- May be written explicitly
62SLD-tree
- Summarizes all possible proofs of the goal
- Prolog selects leftmost literal in goal to
resolve upon ! - Clauses to resolve the literal with are chosen
according to clause order ! - Prolog traverses the tree depth-first in order
- Prolog is incomplete (can get trapped into
infinite paths in the tree) - Prolog is memory efficient (depth-first)
- Alternatively, iterative deepening or breadth
first (which would be complete)
63p.44-5
Student_of(x,t)-Follows(x,c),Teaches(t,c).Follow
s(Paul,Computer_science).Follows(Paul,Expert_syst
ems).Follows(Maria,Ai_techniques).Teaches(Adrian
,Expert_systems).Teaches(Peter,Ai_techniques).Te
aches(Peter,Computer_science).
-Student_of(s,Peter)
-Follows(s,c),Teaches(Peter,c)
-Teaches(Peter,Ai_techniques)
-Teaches(Peter,Computer_science)
-Teaches(Peter,Expert_systems)
64List processing examples
65- - M(B,c(A,c(B,nil)))
-
- - M(B,c(B,nil))
-
- -
- Is B a member of A,B ?
66- - M(w,c(A,c(B,nil)))
- \
- - - M(w,c(B,nil)
- wA / \
- - -M(w,nil)
- wB
-
- Generate members w of A,B
- Backtracking returns all solutions !
- Prolog returns
- Yes wA Yes wB Fail.
67- - M(B,w)
- / \
- - -M(B,w2)
- wc(B,w1) \
- - -M(B,w4)
- wc(u1,c(B,u2))
- infinite tree
- Generate lists w that B is a member of ?
68(No Transcript)
69An illustration Natural Language Processing
- Very often employ
- Grammar formalisms
- Logic
- Unification
- We very brief introduction to
- Definite clause grammars
- Notation
- we sometimes use list notation instead of the
cons(a,cons()) (built-in to Prolog) - Prolog notation is different than that used by
Nilsson - DCG and Prolog notation predicates, function,
and constants start with a lower case variables
start with an upper-case - We use DCG notation for DCG but stick to
Nilssons notation for Prolog !
70Two tasks in NLP
- Just to give an idea / to illustrate
- Computer science point of view !
- Parsing
- Analyzing the syntactic structure of sentences
- Construct the parse tree
- Interpretation
- Determine the meaning (internal representation
thereof) of the sentence - Internal representation can then be used to
reason - Example Application
- NLP interface to a database
71Context-free grammar
p.132
sentence --gt noun_phrase,verb_phrase. noun_phrase
--gt proper_noun. noun_phrase --gt
article,adjective,noun. noun_phrase --gt
article,noun. verb_phrase --gt intransitive_verb. v
erb_phrase --gt transitive_verb,noun_phrase. articl
e --gt the. cons(the,Nil) adjective --gt
lazy. adjective --gt rapid. proper_noun --gt
achilles. noun --gt turtle. intransitive_verb -
-gt sleeps. transitive_verb --gt beats.
72Parse tree
p.133
73p.133
74Translating CFG in Prolog
75Difference lists in grammar rules
p.135
noun phrase
verb phrase
VP2
VP1
NP1
Sentence(np1,vp2)-Noun_phrase(np1,vp1),Verb_phr
ase(vp1,vp2)
76Translating CFG in Prolog
77Non-terminals with arguments
p.137
sentence --gt noun_phrase(N),verb_phrase(N). noun_p
hrase(N) --gt article(N),noun(N). verb_phrase(N) --
gt intransitive_verb(N). article(singular) --gt
a. article(singular) --gt the. article(plural)
--gt the. noun(singular) --gt turtle. noun(plura
l) --gt turtles. intransitive_verb(singular) --gt
sleeps. intransitive_verb(plural) --gt sleep.
78Translate to Prolog
- Translation is automatic !
- Most Prolog implementation can directly cope with
DCG notation
79Constructing parse trees
p.137-8
sentence(s(NP,VP)) --gt noun_phrase(NP),verb_phrase
(VP). noun_phrase(np(N)) --gt proper_noun(N). noun_
phrase(np(Art,Adj,N)) --gt article(Art),adjective(A
dj), noun(N). noun_phrase(np(Art,N)) --gt
article(Art),noun(N). verb_phrase(vp(IV)) --gt
intransitive_verb(IV). verb_phrase(vp(TV,NP)) --gt
transitive_verb(TV), noun_phrase(NP). article(ar
t(the)) --gt the. adjective(adj(lazy)) --gt
lazy. adjective(adj(rapid)) --gt
rapid. proper_noun(pn(achilles)) --gt
achilles. noun(n(turtle)) --gt
turtle. intransitive_verb(iv(sleeps)) --gt
sleeps. transitive_verb(tv(beats)) --gt beats.
-Sentence(Achilles,Beats,The,Lazy,Turtle,Nil,t)
t s(np(pn(Achilles)), vp(tv(Beats),
np(art(The), adj(Lazy),
n(Turtle))))
80Parse tree
p.133
81Interpretation (simplified !)
p.140
- The meaning of the proper noun Socrates is the
term socrates - proper_noun(socrates) --gt socrates.
- The meaning of the property mortal is a mapping
from terms to literals containing the unary
predicate/functor mortal - property(X,mortal(X))) --gt mortal.
- The meaning of a proper noun - verb phrase
sentence is a fact obtained by applying the
meaning of the verb phrase to the meaning of the
proper noun - sentence(Fact)--gt
- proper_noun(X),is,property(X,Fact).
- - Sentence(Socrates,Is,Mortal,fact).
- fact mortal(Socrates).
- Can easily be extended to convert simple natural
language into logical statements.
82p.140
- A transitive verb is a binary mapping from a pair
of terms to literals - transitive_verb(Y,X,likes(X,Y)) --gt likes.
- A proper noun instantiates one of the arguments,
returning a unary mapping - verb_phrase(Y,M) --gttransitive_verb(Y,X,M),proper_
noun(X).
83p.140-1
- sentence(fact(L)) --gt
- proper_noun(X),verb_phrase(X,L).sentence(cla
use(H,B)) --gt - every,noun(X,B),verb_phrase(X,H). NB.
separate determiner rule removed, see later - verb_phrase(M) --gt is,property(M).
- property(M) --gt a,noun(M).property(X,mortal(X))
--gt mortal. - proper_noun(socrates) --gt socrates.
- noun(X,human(X)) --gt human.
84p.141
?-Sentence(c,Nil,s). c clause(human(x),human(x))
s Every,Human,Is,A,Human c
clause(mortal(x),human(x))s Every,Human,Is,Mor
tal c fact(human(Socrates))s
Socrates,Is,A,Human c fact(mortal(Socrates))
s Socrates,Is,Mortal
85Real NLP
- Real Grammars
- Are much more complicated
- Account for detailed syntactic and semantic
aspects of language - Take ages to develop
-
- Extension for NLP database interface of present
grammar is possible - Assert interpreted facts/clauses in Database
- Logical reasoning possible
- Extend with queries, e.g. What Who Where
queries - Who is mortal ?
- What is Socrates ?
-
86Prolog
- Use sicstus (installed in Pool) or download
SWI-prolog - http//www.swi.psy.uva.nl/projects/SWI-Prolog/
- Beware of syntax !
- File append.pl
- append(nil,X,X).
- append(cons(X,Y),Z,cons(X,W))-append(Y,Z,W).
- sicstus
- ?-consult(append).
- Yes
- ?-append(cons(a,nil),cons(b,cons(c,nil)),X).
- X cons(a,cons(b,cons(c,nil)))
- Yes
- Good books on Prolog
- Peter Flach, Simply Logical, Wiley
- Ivan Bratko, Prolog programming for AI, Addison
Wesley.
87Prolog
- Good books on Prolog
- Peter Flach, Simply Logical, Wiley
- Ivan Bratko, Prolog programming for AI, Addison
Wesley. - Sterling and Shapiro, The art of Prolog, MIT Press