Professional Documents
Culture Documents
Universal Instantiation (UI) : That Does Not Appear Elsewhere in The Knowledge Base
Universal Instantiation (UI) : That Does Not Appear Elsewhere in The Knowledge Base
Every instantiation of a universally quantied sentence is entailed by it: v Subst({v/g}, ) for any variable v and ground term g E.g., x King(x) Greedy(x) Evil(x) yields Chapter 9 King(John) Greedy(John) Evil(John) King(Richard) Greedy(Richard) Evil(Richard) King(F ather(John)) Greedy(F ather(John)) Evil(F ather(John)) . .
Chapter 9
Chapter 9
Outline
Reducing rst-order inference to propositional inference Unication Generalized Modus Ponens Forward and backward chaining Logic programming Resolution
Chapter 9
Chapter 9
Chapter 9
Chapter 9
Unication
We can get the inference immediately if we can nd a substitution such that King(x) and Greedy(x) match King(John) and Greedy(y) = {x/John, y/John} works Unify(, ) = if =
Chapter 9
10
Reduction contd.
Claim: a ground sentence is entailed by new KB i entailed by original KB Claim: every FOL KB can be propositionalized so as to preserve entailment Idea: propositionalize KB and query, apply resolution, return result Problem: with function symbols, there are innitely many ground terms, e.g., F ather(F ather(F ather(John))) Theorem: Herbrand (1930). If a sentence is entailed by an FOL KB, it is entailed by a nite subset of the propositional KB Idea: For n = 0 to do create a propositional KB by instantiating with depth-n terms see if is entailed by this KB Problem: works if is entailed, loops if is not entailed Theorem: Turing (1936), Church (1936), entailment in FOL is semidecidable
Chapter 9 8
Unication
We can get the inference immediately if we can nd a substitution such that King(x) and Greedy(x) match King(John) and Greedy(y) = {x/John, y/John} works Unify(, ) = if =
Chapter 9
11
Unication
We can get the inference immediately if we can nd a substitution such that King(x) and Greedy(x) match King(John) and Greedy(y) = {x/John, y/John} works Unify(, ) = if =
q Knows(John, Jane) {x/Jane} Knows(y, OJ) {x/OJ, y/John} Knows(y, M other(y)) Knows(x, OJ)
Chapter 9
Chapter 9
12
Unication
We can get the inference immediately if we can nd a substitution such that King(x) and Greedy(x) match King(John) and Greedy(y) = {x/John, y/John} works Unify(, ) = if = Need to show that
Soundness of GMP
p1 , . . . , pn , (p1 . . . pn q) |= q provided that pi = pi for all i Lemma: For any denite clause p, we have p |= p by UI
Chapter 9
13
Chapter 9
16
Unication
We can get the inference immediately if we can nd a substitution such that King(x) and Greedy(x) match King(John) and Greedy(y) = {x/John, y/John} works Unify(, ) = if =
Chapter 9
14
Chapter 9
17
Chapter 9
15
Chapter 9
18
Chapter 9
19
Chapter 9
22
Chapter 9
20
Chapter 9
23
Chapter 9
21
Chapter 9
24
American(West)
Missile(M1)
Owns(Nono,M1)
Enemy(Nono,America)
Chapter 9
25
Chapter 9
28
Weapon(M1)
Sells(West,M1,Nono)
Hostile(Nono)
Database indexing allows O(1) retrieval of known facts e.g., query M issile(x) retrieves M issile(M1) Matching conjunctive premises against known facts is NP-hard
American(West)
Missile(M1)
Owns(Nono,M1)
Enemy(Nono,America)
Chapter 9
26
Chapter 9
29
Q WA SA
NSW
Weapon(M1)
Sells(West,M1,Nono)
Hostile(Nono)
V Victoria
American(West)
Missile(M1)
Owns(Nono,M1)
Enemy(Nono,America)
Colorable() is inferred i the CSP has a solution CSPs include 3SAT as a special case, hence matching is NP-hard
Chapter 9
27
Chapter 9
30
Weapon(y)
Sells(x,y,z)
Hostile(z)
{}
Chapter 9
31
Chapter 9
34
American(West)
Weapon(y)
Sells(x,y,z) Sells(West,M1,z)
Hostile(z) Hostile(Nono)
{}
Missile(y)
Chapter 9
32
Chapter 9
35
American(x)
Weapon(y)
Sells(x,y,z)
Hostile(z)
American(West)
Weapon(y)
Sells(x,y,z) Sells(West,M1,z)
Hostile(z) Hostile(Nono)
{}
Missile(y)
{ y/M1 }
Chapter 9
33
Chapter 9
36
Logic programming
Sound bite: computation as inference on logical KBs 1. 2. 3. 4. 5. 6. 7. Logic programming Ordinary programming Identify problem Identify problem Assemble information Assemble information Tea break Figure out solution Encode information in KB Program solution Encode problem instance as facts Encode problem instance as data Ask queries Apply program to data Find false facts Debug procedural errors
American(West)
Weapon(y)
Sells(West,M1,z)
Hostile(z)
{}
{ z/Nono }
Missile(y)
Missile(M1)
Owns(Nono,M1)
{ y/M1 }
Chapter 9
37
Chapter 9
40
Prolog systems
Basis: backward chaining with Horn clauses + bells & whistles Widely used in Europe, Japan (basis of 5th Generation project) Compilation techniques approaching a billion LIPS Program = set of clauses = head :- literal1, . . . literaln.
American(West)
Weapon(y)
Sells(West,M1,z)
Hostile(Nono)
{}
{ z/Nono }
Missile(y)
Missile(M1)
Owns(Nono,M1)
Enemy(Nono,America)
{ y/M1 }
{}
{}
{}
Ecient unication by open coding Ecient retrieval of matching clauses by direct linking Depth-rst, left-to-right backward chaining Built-in predicates for arithmetic etc., e.g., X is Y*Z+3 Closed-world assumption (negation as failure) e.g., given alive(X) :- not dead(X). alive(joe) succeeds if dead(joe) fails
Chapter 9
38
Chapter 9
41
Prolog examples
Depth-rst search from a start state X: dfs(X) :- goal(X). dfs(X) :- successor(X,S),dfs(S). No need to loop over S: successor succeeds for each Appending two lists to produce a third: append([],Y,Y). append([X|L],Y,[X|Z]) :- append(L,Y,Z). query: append(A,B,[1,2]) ? answers: A=[] B=[1,2] A=[1] B=[2] A=[1,2] B=[]
Chapter 9
39
Chapter 9
42
>
>
>
>
m1 m n k, k m1 mj1 mj+1 mn )
L
American(West)
American(West)
Weapon(y)
Sells(West,y,z)
Hostile(z)
>
>
>
where Unify( i, mj ) = . For example, Rich(x) U nhappy(x) Rich(Ken) U nhappy(Ken) with = {x/Ken} Apply resolution steps to CN F (KB ); complete for FOL
L
Missile(x)
Weapon(x)
Weapon(y)
Sells(West,y,z)
Hostile(z)
Missile(M1)
Missile(y)
Sells(West,y,z)
Hostile(z)
Missile(x)
Owns(Nono,x)
Sells(West,x,Nono)
Sells(West,M1,z)
Hostile(z)
Missile(M1)
Missile(M1)
Owns(Nono,M1)
Hostile(Nono)
Owns(Nono,M1)
Owns(Nono,M1)
Hostile(Nono)
Enemy(x,America)
Hostile(x)
Hostile(Nono)
Enemy(Nono,America)
Enemy(Nono,America)
Chapter 9
43
Chapter 9
>
>
>
>
>
>
>
>
>
>
>
>
46
Conversion to CNF
Everyone who loves all animals is loved by someone: x [ y Animal(y) Loves(x, y)] [ y Loves(y, x)] 1. Eliminate biconditionals and implications x [ y Animal(y) Loves(x, y)] [ y Loves(y, x)] 2. Move inwards: x, p x p, x, p x p: x [ y (Animal(y) Loves(x, y))] [ y Loves(y, x)] x [ y Animal(y) Loves(x, y)] [ y Loves(y, x)] x [ y Animal(y) Loves(x, y)] [ y Loves(y, x)]
Chapter 9
44
Chapter 9
45