Inference in first-order logic Chapter 9
Inference in first-order logic Chapter 9
Outline Reducing first-order inference to propositional inference ·Unification Generalized Modus Ponens ·Forward chaining ·Backward chaining ·Resolution
Outline • Reducing first-order inference to propositional inference • Unification • Generalized Modus Ponens • Forward chaining • Backward chaining • Resolution
Universal instantiation (Ul) Every instantiation of a universally quantified sentence is entailed by it: ∀va Subst([v/g},a) for any variable v and ground term g ·E.g.,∀k King(x)Greedy(x)→Evil(x)yields: King(John)Greedy(John)Evil(John) King(Richard)Greedy(Richard)=Evil(Richard)
Universal instantiation (UI) • Every instantiation of a universally quantified 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: • • King(John) Greedy(John) Evil(John) King(Richard) Greedy(Richard) Evil(Richard) King(Father(John)) Greedy(Father(John)) Evil(Father(John))
Existential instantiation (El) For any sentence a,variable v,and constant symbol k that does not appear elsewhere in the knowledge base: 3va Subst({v/k},a) E.g.,3x Crown(x)^OnHead(x,John)yields: Crown(C1)OnHead(C1,John) provided C,is a new constant symbol,called a
Existential instantiation (EI) • For any sentence α, variable v, and constant symbol k that does not appear elsewhere in the knowledge base: • v α Subst({v/k}, α) • E.g., x Crown(x) OnHead(x,John) yields: Crown(C1 ) OnHead(C1 ,John) provided C1 is a new constant symbol, called a Skolem constant
Reduction to propositional inference Suppose the KB contains just the following: Vx King(x)^Greedy(x)Evil(x) King(John) Greedy(John) Brother(Richard,John) Instantiating the universal sentence in all possible ways,we have: King(John)Greedy(John)=Evil(John) King(Richard)^Greedy(Richard)=Evil(Richard) King(John) Greedy(John) Brother(Richard,John) The new KB is propositionalized:proposition symbols are King(John),Greedy(John),Evil(John),King(Richard),etc
Reduction to propositional inference Suppose the KB contains just the following: x King(x) Greedy(x) Evil(x) King(John) Greedy(John) Brother(Richard,John) • Instantiating the universal sentence in all possible ways, we have: King(John) Greedy(John) Evil(John) King(Richard) Greedy(Richard) Evil(Richard) King(John) Greedy(John) Brother(Richard,John) • The new KB is propositionalized: proposition symbols are • King(John), Greedy(John), Evil(John), King(Richard), etc
Reduction contd. Every FOL KB can be propositionalized so as to preserve entailment ● (A ground sentence is entailed by new KB iff entailed by original KB) ● Idea:propositionalize KB and query,apply resolution, return result ● Problem:with function symbols,there are infinitely many nd terms
Reduction contd. • Every FOL KB can be propositionalized so as to preserve entailment • • (A ground sentence is entailed by new KB iff entailed by original KB) • • Idea: propositionalize KB and query, apply resolution, return result • • Problem: with function symbols, there are infinitely many ground terms
Reduction contd. Theorem:Herbrand(1930).If a sentence a is entailed by an FOL KB,it is entailed by a finite subset of the propositionalized KB ldea:Forn=0to∞do create a propositional KB by instantiating with depth-$n$terms see if a is entailed by this KB Problem:works if a is entailed,loops if a is not entailed Theorem:Turing (1936),Church(1936)Entailment for FOL is semidecidable(algorithms exist that say yes to every entailed sentence,but no algorithm exists that also says no to every nonentailed sentence.)
Reduction contd. Theorem: Herbrand (1930). If a sentence α is entailed by an FOL KB, it is entailed by a finite subset of the propositionalized 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 for FOL is semidecidable (algorithms exist that say yes to every entailed sentence, but no algorithm exists that also says no to every nonentailed sentence.)
Problems with propositionalization Propositionalization seems to generate lots of irrelevant sentences. ·E.g,from: ● Vx King(x)^Greedy(x)Evil(x) King(John) Vy Greedy(y) Brother(Richard,John) it seems obvious that Evil(John),but propositionalization produces lots of facts such as Greedy(Richard)that are irrelevant With p k-ary predicates and n constants,there are pnk instantiations
Problems with propositionalization • Propositionalization seems to generate lots of irrelevant sentences. • E.g., from: • • x King(x) Greedy(x) Evil(x) King(John) y Greedy(y) Brother(Richard,John) • it seems obvious that Evil(John), but propositionalization produces lots of facts such as Greedy(Richard) that are irrelevant • • With p k-ary predicates and n constants, there are p·n k instantiations. •
Unification We can get the inference immediately if we can find a substitution 0 such that King(x)and Greedy(x)match King(John)and Greedy(y) 0={x/John,y/John}works ·Unify(a,β)=日ifa0=B6 p q Knows(John,x)Knows(John,Jane) Knows(John,x)Knows(y,OJ) Knows(John,x)Knows(y,Mother(y)) Knows(John,x)Knows(x,OJ)
Unification • We can get the inference immediately if we can find a substitution θ such that King(x) and Greedy(x) match King(John) and Greedy(y) • θ = {x/John,y/John} works • Unify(α,β) = θ if αθ = βθ • p q θ Knows(John,x) Knows(John,Jane) Knows(John,x) Knows(y,OJ) Knows(John,x) Knows(y,Mother(y)) Knows(John,x) Knows(x,OJ)
Unification We can get the inference immediately if we can find a substitution such that King(x)and Greedy(x)match King(John)and Greedy(y) 0=[x/John,y/John}works ·Unify(a,β)=日ifa0=B6 p q 0 Knows(John,x)Knows(John,Jane) [x/Jane)) Knows(John,x)Knows(y,OJ) Knows(John,x)Knows(y,Mother(y)) Knows(John,x)Knows(x,OJ)
Unification • We can get the inference immediately if we can find a substitution θ such that King(x) and Greedy(x) match King(John) and Greedy(y) • θ = {x/John,y/John} works • Unify(α,β) = θ if αθ = βθ • p q θ Knows(John,x) Knows(John,Jane) {x/Jane}} Knows(John,x) Knows(y,OJ) Knows(John,x) Knows(y,Mother(y)) Knows(John,x) Knows(x,OJ)