Inference in first-order logic CE417: Introduction to Artificial - - PowerPoint PPT Presentation

inference in first order logic
SMART_READER_LITE
LIVE PREVIEW

Inference in first-order logic CE417: Introduction to Artificial - - PowerPoint PPT Presentation

Inference in first-order logic CE417: Introduction to Artificial Intelligence Sharif University of Technology Spring 2017 Soleymani Artificial Intelligence: A Modern Approach , 3 rd Edition, Chapter 9 Outline Reducing first-order


slide-1
SLIDE 1

Inference in first-order logic

CE417: Introduction to Artificial Intelligence Sharif University of Technology Spring 2017

“Artificial Intelligence: A Modern Approach”, 3rd Edition, Chapter 9

Soleymani

slide-2
SLIDE 2

Outline

 Reducing first-order inference to propositional inference

 Potentially great expense

 Lifting inference (direct inference in FOL)

 Unification  Generalized Modus Ponens  KB of Horn clauses

 Forward chaining  Backward chaining

 General KB

 Resolution

2

slide-3
SLIDE 3

FOL to PL

3

 FOL to PL conversion

 First order inference by converting the knowledge base to PL

and using propositional inference.

 How to remove universal and existential quantifiers?

 Universel Instantiation  Existential Instantiation

slide-4
SLIDE 4

Universal instantiation (UI)

 Every instantiation of a universally quantified sentence is

entailed by it: ∀𝑤 𝛽 𝑇𝑣𝑐𝑡𝑢( 𝑤 𝑕 , 𝛽)

 Example, 𝛽:

𝑦 𝐿𝑗𝑜𝑕(𝑦) ∧ 𝐻𝑠𝑓𝑓𝑒𝑧(𝑦) ⇒ 𝐹𝑤𝑗𝑚(𝑦)

 𝑇𝑣𝑐𝑡𝑢

𝑦 𝐾𝑝ℎ𝑜 , 𝛽

 𝐿𝑗𝑜𝑕(𝐾𝑝ℎ𝑜) ∧ 𝐻𝑠𝑓𝑓𝑒𝑧(𝐾𝑝ℎ𝑜) ⇒ 𝐹𝑤𝑗𝑚(𝐾𝑝ℎ𝑜)

 𝑇𝑣𝑐𝑡𝑢(

𝑦 𝑆𝑗𝑑ℎ𝑏𝑠𝑒 , 𝛽)

 𝐿𝑗𝑜𝑕(𝑆𝑗𝑑ℎ𝑏𝑠𝑒) ∧ 𝐻𝑠𝑓𝑓𝑒𝑧(𝑆𝑗𝑑ℎ𝑏𝑠𝑒) ⇒ 𝐹𝑤𝑗𝑚(𝑆𝑗𝑑ℎ𝑏𝑠𝑒)

 𝑇𝑣𝑐𝑡𝑢(

𝑦 𝐺𝑏𝑢ℎ𝑓𝑠(𝐾𝑝ℎ𝑜) , 𝛽)

 𝐿𝑗𝑜𝑕(𝐺𝑏𝑢ℎ𝑓𝑠(𝐾𝑝ℎ𝑜)) ∧ 𝐻𝑠𝑓𝑓𝑒𝑧(𝐺𝑏𝑢ℎ𝑓𝑠(𝐾𝑝ℎ𝑜)) ⇒ 𝐹𝑤𝑗𝑚(𝐺𝑏𝑢ℎ𝑓𝑠(𝐾𝑝ℎ𝑜)) 4

slide-5
SLIDE 5

Existential instantiation (EI)

 For any sentence 𝛽, variable 𝑤, and a new constant symbol 𝑙:

∃𝑤 𝛽 𝑇𝑣𝑐𝑡𝑢( 𝑤 𝑙 , 𝛽)

 Example, 𝛽: 𝑦 𝐷𝑠𝑝𝑥𝑜(𝑦) ∧ 𝑃𝑜𝐼𝑓𝑏𝑒(𝑦, 𝐾𝑝ℎ𝑜)

 𝑇𝑣𝑐𝑡𝑢

𝑦 𝐷1 , 𝛽

 𝐷𝑠𝑝𝑥𝑜(𝐷1) ∧ 𝑃𝑜𝐼𝑓𝑏𝑒(𝐷1, 𝐾𝑝ℎ𝑜)  𝐷1 is a new constant symbol, called a Skolem constant

 EI can be applied one time (existentially quantified sentence

can be discarded after it)

5

slide-6
SLIDE 6

Reduction to propositional inference: Example

6  KB of FOL sentences:

𝑦 𝐿𝑗𝑜𝑕 𝑦  𝐻𝑠𝑓𝑓𝑒𝑧 𝑦  𝐹𝑤𝑗𝑚 𝑦

𝐿𝑗𝑜𝑕 𝐾𝑝ℎ𝑜

𝐻𝑠𝑓𝑓𝑒𝑧 𝐾𝑝ℎ𝑜

𝐶𝑠𝑝𝑢ℎ𝑓𝑠 𝑆𝑗𝑑ℎ𝑏𝑠𝑒, 𝐾𝑝ℎ𝑜

𝑦 𝐷𝑠𝑝𝑥𝑜(𝑦) ∧ 𝑃𝑜𝐼𝑓𝑏𝑒(𝑦, 𝐾𝑝ℎ𝑜)

 A universally quantified sentence is replaced by all possible instantiations & an

existentially quantified sentence by one instantiation:

𝐿𝑗𝑜𝑕(𝐾𝑝ℎ𝑜)  𝐻𝑠𝑓𝑓𝑒𝑧(𝐾𝑝ℎ𝑜) ⇒ 𝐹𝑤𝑗𝑚(𝐾𝑝ℎ𝑜)

𝐿𝑗𝑜𝑕(𝑆𝑗𝑑ℎ𝑏𝑠𝑒)  𝐻𝑠𝑓𝑓𝑒𝑧(𝑆𝑗𝑑ℎ𝑏𝑠𝑒) ⇒ 𝐹𝑤𝑗𝑚(𝑆𝑗𝑑ℎ𝑏𝑠𝑒)

𝐿𝑗𝑜𝑕(𝐾𝑝ℎ𝑜)

𝐻𝑠𝑓𝑓𝑒𝑧(𝐾𝑝ℎ𝑜)

𝐶𝑠𝑝𝑢ℎ𝑓𝑠(𝑆𝑗𝑑ℎ𝑏𝑠𝑒, 𝐾𝑝ℎ𝑜)

𝐷𝑠𝑝𝑥𝑜 𝐷1  𝑃𝑜𝐼𝑓𝑏𝑒 𝐷1, 𝐾𝑝ℎ𝑜

slide-7
SLIDE 7

Propositionalization

7

 Every FOL KB and query can be propositionalized

 Algorithms for deciding PL entailment can be used

 Problem: infinitely large set of sentences

 Infinite set of possible ground-term substitution due to function symbols

 e.g., 𝐺𝑏𝑢ℎ𝑓𝑠(… 𝐺𝑏𝑢ℎ𝑓𝑠(𝐺𝑏𝑢ℎ𝑓𝑠(𝐾𝑝ℎ𝑜)))

 Solution:

 Theorem (Herbrand, 1930): If a sentence 𝛽 is entailed by an FOL KB,

it can be entailed by a finite subset of its propositionalized KB

for 𝑜 = 0 to ∞ do

Generate all instantiations with depth 𝑜 nested symbols if 𝛽 is entailed by this 𝐿𝐶 then return 𝑢𝑠𝑣𝑓

slide-8
SLIDE 8

Propositionalization (Cont.)

8

 Problem: When procedure go on and on, we will not know

whether it is stuck in a loop or the proof is just about to pop

  • ut

 Theorem (Turing-1936, Church-1936): Deciding entailment for

FOL is semidecidable

 Algorithms exist that say yes to every entailed sentence, but no

algorithm exists that also says no to every non-entailed sentence.

slide-9
SLIDE 9

Propositionalization is inefficient

 Generates lots of irrelevant sentences  Example:

 𝐿𝑗𝑜𝑕 𝑆𝑗𝑑ℎ𝑏𝑠𝑒  𝐻𝑠𝑓𝑓𝑒𝑧 𝑆𝑗𝑑ℎ𝑏𝑠𝑒  𝐹𝑤𝑗𝑚 𝑆𝑗𝑑ℎ𝑏𝑠𝑒 is irrelevant.

 𝑞 𝑙-ary predicates and 𝑜 constants

 𝑞 × 𝑜𝑙 instantiations

9

𝑦 𝐿𝑗𝑜𝑕 𝑦  𝐻𝑠𝑓𝑓𝑒𝑧 𝑦  𝐹𝑤𝑗𝑚 𝑦 𝐿𝑗𝑜𝑕 𝐾𝑝ℎ𝑜 𝐻𝑠𝑓𝑓𝑒𝑧 𝐾𝑝ℎ𝑜 𝐶𝑠𝑝𝑢ℎ𝑓𝑠 𝑆𝑗𝑑ℎ𝑏𝑠𝑒, 𝐾𝑝ℎ𝑜 KB 𝐹𝑤𝑗𝑚(𝑦) Query

slide-10
SLIDE 10

Lifting & Unification

10

 Lifting: raising inference rules or algorithms from ground

(variable-free) PL to FOL.

 E.g., generalized Modus Ponens

 Unification: Lifted inference rules require finding substitutions

that make different expressions looks identical.

 Instantiating variables only as far as necessary for the proof.

 All variables are assumed universally quantified.

slide-11
SLIDE 11

Unification: Simple example

11

 Example: Infer immediately when finding a substitution θ such

that 𝐿𝑗𝑜𝑕(𝑦) and 𝐻𝑠𝑓𝑓𝑒𝑧(𝑦) match 𝐿𝑗𝑜𝑕(𝐾𝑝ℎ𝑜) and 𝐻𝑠𝑓𝑓𝑒𝑧(𝑧)

𝑦 𝐿𝑗𝑜𝑕 𝑦  𝐻𝑠𝑓𝑓𝑒𝑧 𝑦  𝐹𝑤𝑗𝑚 𝑦 𝐿𝑗𝑜𝑕 𝐾𝑝ℎ𝑜 ∀𝑧 𝐻𝑠𝑓𝑓𝑒𝑧 𝑧 𝐶𝑠𝑝𝑢ℎ𝑓𝑠 𝑆𝑗𝑑ℎ𝑏𝑠𝑒, 𝐾𝑝ℎ𝑜 KB 𝐹𝑤𝑗𝑚(𝑦) Query

slide-12
SLIDE 12

Unification: examples

12

 𝑉𝑂𝐽𝐺𝑍 𝑞, 𝑟 = 𝜄 where 𝑇𝑣𝑐𝑡𝑢 𝜄, 𝑞 = 𝑇𝑣𝑐𝑡𝑢(𝜄, 𝑟) 𝜄 𝑟 𝑞 {𝑦/𝐾𝑏𝑜𝑓} 𝐿𝑜𝑝𝑥𝑡(𝐾𝑝ℎ𝑜, 𝐾𝑏𝑜𝑓) 𝐿𝑜𝑝𝑥𝑡(𝐾𝑝ℎ𝑜, 𝑦) { 𝑦 𝐶𝑗𝑚𝑚, 𝑧/𝐾𝑝ℎ𝑜} 𝐿𝑜𝑝𝑥𝑡(𝑧, 𝐶𝑗𝑚𝑚) 𝐿𝑜𝑝𝑥𝑡(𝐾𝑝ℎ𝑜, 𝑦) { 𝑦 𝑁𝑝𝑢ℎ𝑓𝑠(𝐾𝑝ℎ𝑜), 𝑧/𝐾𝑝ℎ𝑜} 𝐿𝑜𝑝𝑥𝑡(𝑧, 𝑁𝑝𝑢ℎ𝑓𝑠(𝑧)) 𝐿𝑜𝑝𝑥𝑡(𝐾𝑝ℎ𝑜, 𝑦) 𝑔𝑏𝑗𝑚 𝐿𝑜𝑝𝑥𝑡(𝑦, 𝐹𝑚𝑗𝑨𝑏𝑐𝑓𝑢ℎ) 𝐿𝑜𝑝𝑥𝑡(𝐾𝑝ℎ𝑜, 𝑦)

slide-13
SLIDE 13

Unification: examples

13

 𝑉𝑂𝐽𝐺𝑍 𝑞, 𝑟 = 𝜄 where 𝑇𝑣𝑐𝑡𝑢 𝜄, 𝑞 = 𝑇𝑣𝑐𝑡𝑢(𝜄, 𝑟) 𝜄 𝑟 𝑞 {𝑦/𝐾𝑏𝑜𝑓} 𝐿𝑜𝑝𝑥𝑡(𝐾𝑝ℎ𝑜, 𝐾𝑏𝑜𝑓) 𝐿𝑜𝑝𝑥𝑡(𝐾𝑝ℎ𝑜, 𝑦) { 𝑦 𝐶𝑗𝑚𝑚, 𝑧/𝐾𝑝ℎ𝑜} 𝐿𝑜𝑝𝑥𝑡(𝑧, 𝐶𝑗𝑚𝑚) 𝐿𝑜𝑝𝑥𝑡(𝐾𝑝ℎ𝑜, 𝑦) { 𝑦 𝑁𝑝𝑢ℎ𝑓𝑠(𝐾𝑝ℎ𝑜), 𝑧/𝐾𝑝ℎ𝑜} 𝐿𝑜𝑝𝑥𝑡(𝑧, 𝑁𝑝𝑢ℎ𝑓𝑠(𝑧)) 𝐿𝑜𝑝𝑥𝑡(𝐾𝑝ℎ𝑜, 𝑦) 𝑔𝑏𝑗𝑚 𝐿𝑜𝑝𝑥𝑡(𝑦, 𝐹𝑚𝑗𝑨𝑏𝑐𝑓𝑢ℎ) 𝐿𝑜𝑝𝑥𝑡(𝐾𝑝ℎ𝑜, 𝑦)

slide-14
SLIDE 14

Unification: complications

14

 Complications

 T

wo sentences using the same variable name

 Standardizing apart: renaming the variables causing name clashes in

  • ne of sentences

 More than one unifier

 Most General Unifier (MGU)

𝜄 𝑟 𝑞 𝑔𝑏𝑗𝑚 𝐿𝑜𝑝𝑥𝑡(𝑦, 𝐹𝑚𝑗𝑨𝑏𝑐𝑓𝑢ℎ) 𝐿𝑜𝑝𝑥𝑡(𝐾𝑝ℎ𝑜, 𝑦) { 𝑦 𝐹𝑚𝑗𝑨𝑏𝑐𝑓𝑢ℎ, 𝑦2/𝐾𝑝ℎ𝑜} 𝐿𝑜𝑝𝑥𝑡(𝑦2, 𝐹𝑚𝑗𝑨𝑏𝑐𝑓𝑢ℎ) 𝐿𝑜𝑝𝑥𝑡(𝐾𝑝ℎ𝑜, 𝑦)

slide-15
SLIDE 15

Unification (MGU)

 𝑉𝑂𝐽𝐺𝑍( 𝐿𝑜𝑝𝑥𝑡 𝐾𝑝ℎ𝑜, 𝑦 , 𝐿𝑜𝑝𝑥𝑡 𝑧, 𝑨 )

 𝜄1 = {𝑧/𝐾𝑝ℎ𝑜, 𝑦/𝑨 }

 𝜄2 = {𝑧/𝐾𝑝ℎ𝑜, 𝑦/𝐾𝑝ℎ𝑜, 𝑨/𝐾𝑝ℎ𝑜}  𝜄1 is more general  There is a single most general unifier (MGU) that is unique up

to renaming of variables.

15

slide-16
SLIDE 16

Generalized Modus Ponens (GMP)

16

 For atomic sentences 𝑞𝑗 , 𝑞𝑗

′, 𝑟 & 𝑇𝑣𝑐𝑡𝑢 𝜄, 𝑞𝑗 ′ = 𝑇𝑣𝑐𝑡𝑢 𝜄, 𝑞𝑗

for all 𝑗

𝑞1

′, 𝑞2 ′ , … , 𝑞𝑜 ′ ,

(𝑞1 ∧ 𝑞2 ∧ … ∧ 𝑞𝑜 ⇒ 𝑟) 𝑇𝑣𝑐𝑡𝑢(𝜄, 𝑟)

𝑞1

′: 𝐿𝑗𝑜𝑕(𝐾𝑝ℎ𝑜)

𝑞1 : 𝐿𝑗𝑜𝑕(𝑦) 𝑞2

′ : 𝐻𝑠𝑓𝑓𝑒𝑧(𝑧)

𝑞2 : 𝐻𝑠𝑓𝑓𝑒𝑧(𝑦) 𝑟: 𝐹𝑤𝑗𝑚(𝑦) 𝜄 = {𝑦/𝐾𝑝ℎ𝑜, 𝑧/𝐾𝑝ℎ𝑜} 𝑇𝑣𝑐𝑡𝑢(𝜄, 𝑟) is 𝐹𝑤𝑗𝑚(𝐾𝑝ℎ𝑜)

𝐿𝑗𝑜𝑕 𝑦  𝐻𝑠𝑓𝑓𝑒𝑧 𝑦  𝐹𝑤𝑗𝑚 𝑦 𝐿𝑗𝑜𝑕 𝐾𝑝ℎ𝑜 𝐻𝑠𝑓𝑓𝑒𝑧 𝑧 … KB 𝐹𝑤𝑗𝑚(𝑦) Query

slide-17
SLIDE 17

GMP is sound

17

 Universal instantiation: 𝑞 ⊨ 𝑇𝑣𝑐𝑡𝑢(𝜄, 𝑞) 1)

𝑞1

′ ∧ … ∧ 𝑞𝑜 ′

𝑇𝑣𝑐𝑡𝑢 𝜄, 𝑞1

∧ …∧ 𝑇𝑣𝑐𝑡𝑢(𝜄, 𝑞𝑜

′ )

2)

𝑞1 ∧ 𝑞2 ∧ … ∧ 𝑞𝑜 ⇒ 𝑟 𝑇𝑣𝑐𝑡𝑢 𝜄, 𝑞1 ∧ … ∧ 𝑇𝑣𝑐𝑡𝑢 𝜄, 𝑞𝑜 ⇒ 𝑇𝑣𝑐𝑡𝑢(𝜄, 𝑟)

3)

𝑇𝑣𝑐𝑡𝑢(𝜄, 𝑟) follows by Modus Ponens since we have

𝑇𝑣𝑐𝑡𝑢 𝜄, 𝑞𝑗

′ = 𝑇𝑣𝑐𝑡𝑢 𝜄, 𝑞𝑗

.

𝑞1

′, 𝑞2 ′ , … , 𝑞𝑜 ′ ,

(𝑞1 ∧ 𝑞2 ∧ … ∧ 𝑞𝑜 ⇒ 𝑟) 𝑇𝑣𝑐𝑡𝑢(𝜄, 𝑟)

slide-18
SLIDE 18

Unification algorithm

18

function UNIFY(𝑦, 𝑧, 𝜄) returns a substitution to make 𝑦 and 𝑧 identical inputs: 𝑦, a variable, a constant, list, or compound expression 𝑧, a variable, a constant, list, or compound expression 𝜄, the substitution built up so far (optional, defaults to empty) if 𝜄 = 𝑔𝑏𝑗𝑚𝑣𝑠𝑓 then return 𝑔𝑏𝑗𝑚𝑣𝑠𝑓 else if 𝑦 = 𝑧 then return 𝜄 else if VARIABLE? (𝑦) then return UNIFY_VAR(𝑦, 𝑧, 𝜄) else if VARIABLE? (𝑧) then return UNIFY_VAR(𝑧, 𝑦, 𝜄) else if COMPOUND? (𝑦) and COMPOUND? (𝑧) then return UNIFY(𝑦. 𝐵𝑆𝐻𝑇, 𝑧. 𝐵𝑆𝐻𝑇, UNIFY(𝑦. 𝑃𝑄, 𝑧. 𝑃𝑄, 𝜄)) else if LIST? (𝑦) and LIST? (𝑧) then return UNIFY(𝑦. 𝑆𝐹𝑇𝑈, 𝑧. 𝑆𝐹𝑇𝑈, UNIFY(𝑦. 𝐺𝐽𝑆𝑇𝑈, 𝑧. 𝐺𝐽𝑆𝑇𝑈, 𝜄)) else return 𝑔𝑏𝑗𝑚𝑣𝑠𝑓

slide-19
SLIDE 19

Unification algorithm

19

function UNIFY_VAR(𝑤𝑏𝑠, 𝑦, 𝜄) returns a if {𝑤𝑏𝑠/𝑤𝑏𝑚} ∈ 𝜄 then return UNIFY(𝑤𝑏𝑚, 𝑦, 𝜄) else if {𝑦/𝑤𝑏𝑚} ∈ 𝜄 then return UNIFY(𝑤𝑏𝑠, 𝑤𝑏𝑚, 𝜄) else if OCCUR_CHECK? (𝑤𝑏𝑠, 𝑦) then return 𝑔𝑏𝑗𝑚𝑣𝑠𝑓 else return add {𝑤𝑏𝑠/𝑦} to 𝜄

slide-20
SLIDE 20

KB of definite clauses

20

 Definite clause: disjunctions of literals of which exactly

  • ne is positive.

 Atomic: 𝑄 1, 𝑄2, …  Implication:

𝑄

1 ∧ 𝑄2 ∧ … ∧ 𝑄𝑙 ⇒ 𝑄𝑙+1

 First order definite clause examples:

 𝐿𝑗𝑜𝑕 𝑦 ∧ 𝐻𝑠𝑓𝑓𝑒𝑧 𝑦 ⇒ 𝐹𝑤𝑗𝑚 𝑦  𝐿𝑗𝑜𝑕(𝐾𝑝ℎ𝑜)  𝐶𝑠𝑝𝑢ℎ𝑓𝑠(𝐾𝑝ℎ𝑜, 𝑆𝑗𝑑ℎ𝑏𝑠𝑒)

slide-21
SLIDE 21

KB of first order definite clauses: Example

 “The law says that it is a crime for an American to sell

weapons to hostile nations. The country Nono, an enemy

  • f America, has some missiles, and all of its missiles were

sold to it by ColonelWest, who is American.”

 Question: Prove that Colonel West is a criminal

21

slide-22
SLIDE 22

KB of first order definite clauses: Example

22

 “The law says that it is a crime for an American to sell

weapons to hostile nations. The country Nono, an enemy

  • f America, has some missiles, and all of its missiles were

sold to it by ColonelWest, who is American.”

𝐵𝑛𝑓𝑠𝑗𝑑𝑏𝑜(𝑦) ∧ 𝑋𝑓𝑏𝑞𝑝𝑜(𝑧) ∧ 𝑇𝑓𝑚𝑚𝑡(𝑦, 𝑧, 𝑨)  𝐼𝑝𝑡𝑢𝑗𝑚𝑓(𝑨) ⇒ 𝐷𝑠𝑗𝑛𝑗𝑜𝑏𝑚(𝑦)

slide-23
SLIDE 23

KB of first order definite clauses: Example

23

 “The law says that it is a crime for an American to sell

weapons to hostile nations. The country Nono, an enemy

  • f America, has some missiles, and all of its missiles were

sold to it by ColonelWest, who is American.”

𝐹𝑜𝑓𝑛𝑧(𝑂𝑝𝑜𝑝, 𝐵𝑛𝑓𝑠𝑗𝑑𝑏)

slide-24
SLIDE 24

KB of first order definite clauses: Example

24

 “The law says that it is a crime for an American to sell

weapons to hostile nations. The country Nono, an enemy

  • f America, has some missiles, and all of its missiles were

sold to it by ColonelWest, who is American.”

𝑦 𝑃𝑥𝑜𝑡(𝑂𝑝𝑜𝑝, 𝑦)  𝑁𝑗𝑡𝑡𝑗𝑚𝑓(𝑦) 𝑃𝑥𝑜𝑡(𝑂𝑝𝑜𝑝, 𝑁1) ∧ 𝑁𝑗𝑡𝑡𝑗𝑚𝑓(𝑁1)

slide-25
SLIDE 25

KB of first order definite clauses: Example

25

 “The law says that it is a crime for an American to sell

weapons to hostile nations. The country Nono, an enemy

  • f America, has some missiles, and all of its missiles were

sold to it by ColonelWest, who is American.”

𝑁𝑗𝑡𝑡𝑗𝑚𝑓(𝑦) ∧ 𝑃𝑥𝑜𝑡(𝑂𝑝𝑜𝑝, 𝑦)  𝑇𝑓𝑚𝑚𝑡(𝑋𝑓𝑡𝑢, 𝑦, 𝑂𝑝𝑜𝑝)

slide-26
SLIDE 26

KB of first order definite clauses: Example

26

 “The law says that it is a crime for an American to sell

weapons to hostile nations. The country Nono, an enemy

  • f America, has some missiles, and all of its missiles were

sold to it by ColonelWest, who is American.”

𝐵𝑛𝑓𝑠𝑗𝑑𝑏𝑜(𝑋𝑓𝑡𝑢)

slide-27
SLIDE 27

KB of first order definite clauses: Example

27

 “The law says that it is a crime for an American to sell

weapons to hostile nations. The country Nono, an enemy

  • f America, has some missiles, and all of its missiles were

sold to it by ColonelWest, who is American.”

 We need to know missiles are weapons:  We need to know an enemy of America counts as “hostile”:

𝑁𝑗𝑡𝑡𝑗𝑚𝑓(𝑦) ⇒ 𝑋𝑓𝑏𝑞𝑝𝑜(𝑦) 𝐹𝑜𝑓𝑛𝑧(𝑦, 𝐵𝑛𝑓𝑠𝑗𝑑𝑏)  𝐼𝑝𝑡𝑢𝑗𝑚𝑓(𝑦)

slide-28
SLIDE 28

KB of first order definite clauses: Example

𝐵𝑛𝑓𝑠𝑗𝑑𝑏𝑜(𝑦) ∧ 𝑋𝑓𝑏𝑞𝑝𝑜(𝑧) ∧ 𝑇𝑓𝑚𝑚𝑡(𝑦, 𝑧, 𝑨)  𝐼𝑝𝑡𝑢𝑗𝑚𝑓(𝑨) ⇒ 𝐷𝑠𝑗𝑛𝑗𝑜𝑏𝑚(𝑦) 𝐹𝑜𝑓𝑛𝑧(𝑂𝑝𝑜𝑝, 𝐵𝑛𝑓𝑠𝑗𝑑𝑏) 𝑃𝑥𝑜𝑡(𝑂𝑝𝑜𝑝, 𝑁1) ∧ 𝑁𝑗𝑡𝑡𝑗𝑚𝑓(𝑁1) 𝑁𝑗𝑡𝑡𝑗𝑚𝑓(𝑦) ∧ 𝑃𝑥𝑜𝑡(𝑂𝑝𝑜𝑝, 𝑦)  𝑇𝑓𝑚𝑚𝑡(𝑋𝑓𝑡𝑢, 𝑦, 𝑂𝑝𝑜𝑝) 𝐵𝑛𝑓𝑠𝑗𝑑𝑏𝑜(𝑋𝑓𝑡𝑢) 𝑁𝑗𝑡𝑡𝑗𝑚𝑓(𝑦)  𝑋𝑓𝑏𝑞𝑝𝑜(𝑦) 𝐹𝑜𝑓𝑛𝑧(𝑦, 𝐵𝑛𝑓𝑠𝑗𝑑𝑏)  𝐼𝑝𝑡𝑢𝑗𝑚𝑓(𝑦)

28

slide-29
SLIDE 29

FC algorithm

29

function FOL_FC_ASK(𝐿𝐶, 𝛽) returns a substitution or 𝑔𝑏𝑚𝑡𝑓 inputs: 𝐿𝐶, a set of first-order definite clauses 𝛽, the query, an atomic sentence repeat until 𝑜𝑓𝑥 = {} 𝑜𝑓𝑥 = {} for each 𝑠𝑣𝑚𝑓 in 𝐿𝐶 do (𝑞1 ∧ ⋯ ∧ 𝑞𝑜 ⇒ 𝑟) ← STANDARDIZE_VARS(𝑠𝑣𝑚𝑓) for each 𝜄 such that SUBST 𝜄, 𝑞1 ∧ ⋯ ∧ 𝑞𝑜 = SUBST(𝜄, 𝑞′1 ∧ ⋯ ∧ 𝑞′𝑜) for some 𝑞′1, … , 𝑞′𝑜 in 𝐿𝐶 𝑟′ ← SUBST(𝜄, 𝑟) if 𝑟′ does not unify with some sentence already in 𝐿𝐶 or 𝑜𝑓𝑥 then add 𝑟′ to 𝑜𝑓𝑥 𝜒 ← UNIFY(𝑟′, 𝛽) if 𝜒 is not 𝑔𝑏𝑗𝑚 then return 𝜒 add 𝑜𝑓𝑥 to 𝐿𝐶 return 𝑔𝑏𝑚𝑡𝑓

slide-30
SLIDE 30

FC: example

30

1) 𝐵𝑛𝑓𝑠𝑗𝑑𝑏𝑜 𝑋𝑓𝑡𝑢 2) 𝑃𝑥𝑜𝑡 𝑂𝑝𝑜𝑝, 𝑁1 ∧ 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑁1 3) 𝐹𝑜𝑓𝑛𝑧(𝑂𝑝𝑜𝑝, 𝐵𝑛𝑓𝑠𝑗𝑑𝑏) 4) 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑦 ∧ 𝑃𝑥𝑜𝑡 𝑂𝑝𝑜𝑝, 𝑦  𝑇𝑓𝑚𝑚𝑡 𝑋𝑓𝑡𝑢, 𝑦, 𝑂𝑝𝑜𝑝 5) 𝐵𝑛𝑓𝑠𝑗𝑑𝑏𝑜 𝑦 ∧ 𝑋𝑓𝑏𝑞𝑝𝑜 𝑧 ∧ 𝑇𝑓𝑚𝑚𝑡 𝑦, 𝑧, 𝑨  𝐼𝑝𝑡𝑢𝑗𝑚𝑓 𝑨 ⇒ 𝐷𝑠𝑗𝑛𝑗𝑜𝑏𝑚 𝑦 6) 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑦  𝑋𝑓𝑏𝑞𝑝𝑜 𝑦 7) 𝐹𝑜𝑓𝑛𝑧(𝑦, 𝐵𝑛𝑓𝑠𝑗𝑑𝑏)  𝐼𝑝𝑡𝑢𝑗𝑚𝑓(𝑦)

Known facts

slide-31
SLIDE 31

FC: example

31

1) 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑦 ∧ 𝑃𝑥𝑜𝑡 𝑂𝑝𝑜𝑝, 𝑦  𝑇𝑓𝑚𝑚𝑡 𝑋𝑓𝑡𝑢, 𝑦, 𝑂𝑝𝑜𝑝 2) 𝐵𝑛𝑓𝑠𝑗𝑑𝑏𝑜 𝑦 ∧ 𝑋𝑓𝑏𝑞𝑝𝑜 𝑧 ∧ 𝑇𝑓𝑚𝑚𝑡 𝑦, 𝑧, 𝑨  𝐼𝑝𝑡𝑢𝑗𝑚𝑓 𝑨 ⇒ 𝐷𝑠𝑗𝑛𝑗𝑜𝑏𝑚 𝑦 3) 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑦  𝑋𝑓𝑏𝑞𝑝𝑜 𝑦 4) 𝐹𝑜𝑓𝑛𝑧(𝑦, 𝐵𝑛𝑓𝑠𝑗𝑑𝑏)  𝐼𝑝𝑡𝑢𝑗𝑚𝑓(𝑦)

{𝑦/𝑁1} {𝑦/𝑁1} {𝑦/𝑂𝑝𝑜𝑝}

slide-32
SLIDE 32

FC: example

32

1) 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑦 ∧ 𝑃𝑥𝑜𝑡 𝑂𝑝𝑜𝑝, 𝑦  𝑇𝑓𝑚𝑚𝑡 𝑋𝑓𝑡𝑢, 𝑦, 𝑂𝑝𝑜𝑝 2) 𝐵𝑛𝑓𝑠𝑗𝑑𝑏𝑜 𝑦 ∧ 𝑋𝑓𝑏𝑞𝑝𝑜 𝑧 ∧ 𝑇𝑓𝑚𝑚𝑡 𝑦, 𝑧, 𝑨  𝐼𝑝𝑡𝑢𝑗𝑚𝑓 𝑨 ⇒ 𝐷𝑠𝑗𝑛𝑗𝑜𝑏𝑚 𝑦 3) 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑦  𝑋𝑓𝑏𝑞𝑝𝑜 𝑦 4) 𝐹𝑜𝑓𝑛𝑧(𝑦, 𝐵𝑛𝑓𝑠𝑗𝑑𝑏)  𝐼𝑝𝑡𝑢𝑗𝑚𝑓(𝑦) {𝑦/𝑁1} {𝑦/𝑁1} {𝑦/𝑂𝑝𝑜𝑝} {𝑦/𝑋𝑓𝑡𝑢, 𝑧/𝑁1,𝑨/𝑂𝑝𝑜𝑝}

slide-33
SLIDE 33

Properties of FC

 Sound  Complete (for KBs of first-order definite clauses)

 For Datalog KBs, proof is fairly easy.

 Datalog KBs contain first-order definite clauses with no function symbols  FC reaches a fix point for Datalog KBs after finite number of iterations

 It may not terminate in general if 𝛽 is not entailed (query has no answer)

 entailment with definite clauses is also semi-decidable 33

slide-34
SLIDE 34

More efficient FC

 Heuristics for matching rules against known facts

 E.g., conjunct ordering

 Incremental forward chaining to avoid redundant rule matching

 Every new fact inferred on iteration 𝑢 must be derived from at least

  • ne new fact inferred on iteration 𝑢 − 1.

 Check a rule only if its premise includes a newly inferred fact (at iteration 𝑢

− 1)  Avoid drawing irrelevant facts (to the goal)

34

slide-35
SLIDE 35

Backward Chaining (BC)

35

 Works backward from the goal, chaining through rules to

find known facts supporting the proof

 AND-OR search

 OR: any rule 𝑚ℎ𝑡 ⇒ 𝑕𝑝𝑏𝑚 in KB can be used to prove the goal  AND: all conjuncts in 𝑚ℎ𝑡 must be proved.

 It is used in logic programming (Prolog)

slide-36
SLIDE 36

BC algorithm (depth-first recursive proof search)

36

function FOL_BC_ASK(𝐿𝐶, 𝑟𝑣𝑓𝑠𝑧) returns a generator of substitutions return FOL_BC_OR(𝐿𝐶, 𝑟𝑣𝑓𝑠𝑧, {}) generator FOL_BC_OR(𝐿𝐶, 𝑕𝑝𝑏𝑚, 𝜄) yields a substitution for each rule (𝑚ℎ𝑡 ⇒ 𝑠ℎ𝑡) in FETCH_RULES_FOR_GOAL(𝐿𝐶, 𝑕𝑝𝑏𝑚) do (𝑚ℎ𝑡, 𝑠ℎ𝑡) ← STANDARDIZE_VARS(𝑚ℎ𝑡, 𝑠ℎ𝑡) for each 𝜄′ in FOL_BC_AND(𝐿𝐶, 𝑚ℎ𝑡, UNIFY(𝑠ℎ𝑡, 𝑕𝑝𝑏𝑚, 𝜄) do yield 𝜄′ generator FOL_BC_AND(𝐿𝐶, 𝑕𝑝𝑏𝑚𝑡, 𝜄) yields a substitution if 𝜄 = 𝑔𝑏𝑗𝑚𝑣𝑠𝑓 then return else if LENGTH 𝑕𝑝𝑏𝑚𝑡 = 0 then yield 𝜄 else do 𝑔𝑗𝑠𝑡𝑢 ← FIRST 𝑕𝑝𝑏𝑚𝑡 𝑠𝑓𝑡𝑢 ← REST 𝑕𝑝𝑏𝑚𝑡 for each 𝜄′ in FOL_BC_OR(𝐿𝐶, SUBST 𝜄, 𝑔𝑗𝑠𝑡𝑢 , 𝜄) do for each 𝜄′′ in FOL_BC_AND(𝐿𝐶, 𝑠𝑓𝑡𝑢, 𝜄′) do yield 𝜄′′

slide-37
SLIDE 37

Backward chaining example

37

1) 𝐹𝑜𝑓𝑛𝑧(𝑂𝑝𝑜𝑝, 𝐵𝑛𝑓𝑠𝑗𝑑𝑏) 2) 𝑃𝑥𝑜𝑡 𝑂𝑝𝑜𝑝, 𝑁1 ∧ 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑁1 3) 𝐵𝑛𝑓𝑠𝑗𝑑𝑏𝑜 𝑋𝑓𝑡𝑢 4) 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑦 ∧ 𝑃𝑥𝑜𝑡 𝑂𝑝𝑜𝑝, 𝑦  𝑇𝑓𝑚𝑚𝑡 𝑋𝑓𝑡𝑢, 𝑦, 𝑂𝑝𝑜𝑝 5) 𝐵𝑛𝑓𝑠𝑗𝑑𝑏𝑜 𝑦 ∧ 𝑋𝑓𝑏𝑞𝑝𝑜 𝑧 ∧ 𝑇𝑓𝑚𝑚𝑡 𝑦, 𝑧, 𝑨  𝐼𝑝𝑡𝑢𝑗𝑚𝑓 𝑨 ⇒ 𝐷𝑠𝑗𝑛𝑗𝑜𝑏𝑚 𝑦 6) 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑦  𝑋𝑓𝑏𝑞𝑝𝑜 𝑦 7) 𝐹𝑜𝑓𝑛𝑧(𝑦, 𝐵𝑛𝑓𝑠𝑗𝑑𝑏)  𝐼𝑝𝑡𝑢𝑗𝑚𝑓(𝑦)

slide-38
SLIDE 38

Backward chaining example

38

1) 𝐹𝑜𝑓𝑛𝑧(𝑂𝑝𝑜𝑝, 𝐵𝑛𝑓𝑠𝑗𝑑𝑏) 2) 𝑃𝑥𝑜𝑡 𝑂𝑝𝑜𝑝, 𝑁1 ∧ 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑁1 3) 𝐵𝑛𝑓𝑠𝑗𝑑𝑏𝑜 𝑋𝑓𝑡𝑢 4) 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑦 ∧ 𝑃𝑥𝑜𝑡 𝑂𝑝𝑜𝑝, 𝑦  𝑇𝑓𝑚𝑚𝑡 𝑋𝑓𝑡𝑢, 𝑦, 𝑂𝑝𝑜𝑝 5) 𝐵𝑛𝑓𝑠𝑗𝑑𝑏𝑜 𝑦 ∧ 𝑋𝑓𝑏𝑞𝑝𝑜 𝑧 ∧ 𝑇𝑓𝑚𝑚𝑡 𝑦, 𝑧, 𝑨  𝐼𝑝𝑡𝑢𝑗𝑚𝑓 𝑨 ⇒ 𝐷𝑠𝑗𝑛𝑗𝑜𝑏𝑚 𝑦 6) 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑦  𝑋𝑓𝑏𝑞𝑝𝑜 𝑦 7) 𝐹𝑜𝑓𝑛𝑧(𝑦, 𝐵𝑛𝑓𝑠𝑗𝑑𝑏)  𝐼𝑝𝑡𝑢𝑗𝑚𝑓(𝑦)

slide-39
SLIDE 39

Backward chaining example

39

1) 𝐹𝑜𝑓𝑛𝑧(𝑂𝑝𝑜𝑝, 𝐵𝑛𝑓𝑠𝑗𝑑𝑏) 2) 𝑃𝑥𝑜𝑡 𝑂𝑝𝑜𝑝, 𝑁1 ∧ 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑁1 3) 𝐵𝑛𝑓𝑠𝑗𝑑𝑏𝑜 𝑋𝑓𝑡𝑢 4) 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑦 ∧ 𝑃𝑥𝑜𝑡 𝑂𝑝𝑜𝑝, 𝑦  𝑇𝑓𝑚𝑚𝑡 𝑋𝑓𝑡𝑢, 𝑦, 𝑂𝑝𝑜𝑝 5) 𝐵𝑛𝑓𝑠𝑗𝑑𝑏𝑜 𝑦 ∧ 𝑋𝑓𝑏𝑞𝑝𝑜 𝑧 ∧ 𝑇𝑓𝑚𝑚𝑡 𝑦, 𝑧, 𝑨  𝐼𝑝𝑡𝑢𝑗𝑚𝑓 𝑨 ⇒ 𝐷𝑠𝑗𝑛𝑗𝑜𝑏𝑚 𝑦 6) 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑦  𝑋𝑓𝑏𝑞𝑝𝑜 𝑦 7) 𝐹𝑜𝑓𝑛𝑧(𝑦, 𝐵𝑛𝑓𝑠𝑗𝑑𝑏)  𝐼𝑝𝑡𝑢𝑗𝑚𝑓(𝑦)

slide-40
SLIDE 40

Backward chaining example

40

1) 𝐹𝑜𝑓𝑛𝑧(𝑂𝑝𝑜𝑝, 𝐵𝑛𝑓𝑠𝑗𝑑𝑏) 2) 𝑃𝑥𝑜𝑡 𝑂𝑝𝑜𝑝, 𝑁1 ∧ 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑁1 3) 𝐵𝑛𝑓𝑠𝑗𝑑𝑏𝑜 𝑋𝑓𝑡𝑢 4) 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑦 ∧ 𝑃𝑥𝑜𝑡 𝑂𝑝𝑜𝑝, 𝑦  𝑇𝑓𝑚𝑚𝑡 𝑋𝑓𝑡𝑢, 𝑦, 𝑂𝑝𝑜𝑝 5) 𝐵𝑛𝑓𝑠𝑗𝑑𝑏𝑜 𝑦 ∧ 𝑋𝑓𝑏𝑞𝑝𝑜 𝑧 ∧ 𝑇𝑓𝑚𝑚𝑡 𝑦, 𝑧, 𝑨  𝐼𝑝𝑡𝑢𝑗𝑚𝑓 𝑨 ⇒ 𝐷𝑠𝑗𝑛𝑗𝑜𝑏𝑚 𝑦 6) 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑦  𝑋𝑓𝑏𝑞𝑝𝑜 𝑦 7) 𝐹𝑜𝑓𝑛𝑧(𝑦, 𝐵𝑛𝑓𝑠𝑗𝑑𝑏)  𝐼𝑝𝑡𝑢𝑗𝑚𝑓(𝑦)

slide-41
SLIDE 41

Backward chaining example

41

1) 𝐹𝑜𝑓𝑛𝑧(𝑂𝑝𝑜𝑝, 𝐵𝑛𝑓𝑠𝑗𝑑𝑏) 2) 𝑃𝑥𝑜𝑡 𝑂𝑝𝑜𝑝, 𝑁1 ∧ 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑁1 3) 𝐵𝑛𝑓𝑠𝑗𝑑𝑏𝑜 𝑋𝑓𝑡𝑢 4) 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑦 ∧ 𝑃𝑥𝑜𝑡 𝑂𝑝𝑜𝑝, 𝑦  𝑇𝑓𝑚𝑚𝑡 𝑋𝑓𝑡𝑢, 𝑦, 𝑂𝑝𝑜𝑝 5) 𝐵𝑛𝑓𝑠𝑗𝑑𝑏𝑜 𝑦 ∧ 𝑋𝑓𝑏𝑞𝑝𝑜 𝑧 ∧ 𝑇𝑓𝑚𝑚𝑡 𝑦, 𝑧, 𝑨  𝐼𝑝𝑡𝑢𝑗𝑚𝑓 𝑨 ⇒ 𝐷𝑠𝑗𝑛𝑗𝑜𝑏𝑚 𝑦 6) 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑦  𝑋𝑓𝑏𝑞𝑝𝑜 𝑦 7) 𝐹𝑜𝑓𝑛𝑧(𝑦, 𝐵𝑛𝑓𝑠𝑗𝑑𝑏)  𝐼𝑝𝑡𝑢𝑗𝑚𝑓(𝑦)

slide-42
SLIDE 42

Backward chaining example

42

1) 𝐹𝑜𝑓𝑛𝑧(𝑂𝑝𝑜𝑝, 𝐵𝑛𝑓𝑠𝑗𝑑𝑏) 2) 𝑃𝑥𝑜𝑡 𝑂𝑝𝑜𝑝, 𝑁1 ∧ 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑁1 3) 𝐵𝑛𝑓𝑠𝑗𝑑𝑏𝑜 𝑋𝑓𝑡𝑢 4) 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑦 ∧ 𝑃𝑥𝑜𝑡 𝑂𝑝𝑜𝑝, 𝑦  𝑇𝑓𝑚𝑚𝑡 𝑋𝑓𝑡𝑢, 𝑦, 𝑂𝑝𝑜𝑝 5) 𝐵𝑛𝑓𝑠𝑗𝑑𝑏𝑜 𝑦 ∧ 𝑋𝑓𝑏𝑞𝑝𝑜 𝑧 ∧ 𝑇𝑓𝑚𝑚𝑡 𝑦, 𝑧, 𝑨  𝐼𝑝𝑡𝑢𝑗𝑚𝑓 𝑨 ⇒ 𝐷𝑠𝑗𝑛𝑗𝑜𝑏𝑚 𝑦 6) 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑦  𝑋𝑓𝑏𝑞𝑝𝑜 𝑦 7) 𝐹𝑜𝑓𝑛𝑧(𝑦, 𝐵𝑛𝑓𝑠𝑗𝑑𝑏)  𝐼𝑝𝑡𝑢𝑗𝑚𝑓(𝑦)

slide-43
SLIDE 43

Backward chaining example

43

1) 𝐹𝑜𝑓𝑛𝑧(𝑂𝑝𝑜𝑝, 𝐵𝑛𝑓𝑠𝑗𝑑𝑏) 2) 𝑃𝑥𝑜𝑡 𝑂𝑝𝑜𝑝, 𝑁1 ∧ 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑁1 3) 𝐵𝑛𝑓𝑠𝑗𝑑𝑏𝑜 𝑋𝑓𝑡𝑢 4) 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑦 ∧ 𝑃𝑥𝑜𝑡 𝑂𝑝𝑜𝑝, 𝑦  𝑇𝑓𝑚𝑚𝑡 𝑋𝑓𝑡𝑢, 𝑦, 𝑂𝑝𝑜𝑝 5) 𝐵𝑛𝑓𝑠𝑗𝑑𝑏𝑜 𝑦 ∧ 𝑋𝑓𝑏𝑞𝑝𝑜 𝑧 ∧ 𝑇𝑓𝑚𝑚𝑡 𝑦, 𝑧, 𝑨  𝐼𝑝𝑡𝑢𝑗𝑚𝑓 𝑨 ⇒ 𝐷𝑠𝑗𝑛𝑗𝑜𝑏𝑚 𝑦 6) 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑦  𝑋𝑓𝑏𝑞𝑝𝑜 𝑦 7) 𝐹𝑜𝑓𝑛𝑧(𝑦, 𝐵𝑛𝑓𝑠𝑗𝑑𝑏)  𝐼𝑝𝑡𝑢𝑗𝑚𝑓(𝑦)

slide-44
SLIDE 44

Backward chaining example

44

1) 𝐹𝑜𝑓𝑛𝑧(𝑂𝑝𝑜𝑝, 𝐵𝑛𝑓𝑠𝑗𝑑𝑏) 2) 𝑃𝑥𝑜𝑡 𝑂𝑝𝑜𝑝, 𝑁1 ∧ 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑁1 3) 𝐵𝑛𝑓𝑠𝑗𝑑𝑏𝑜 𝑋𝑓𝑡𝑢 4) 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑦 ∧ 𝑃𝑥𝑜𝑡 𝑂𝑝𝑜𝑝, 𝑦  𝑇𝑓𝑚𝑚𝑡 𝑋𝑓𝑡𝑢, 𝑦, 𝑂𝑝𝑜𝑝 5) 𝐵𝑛𝑓𝑠𝑗𝑑𝑏𝑜 𝑦 ∧ 𝑋𝑓𝑏𝑞𝑝𝑜 𝑧 ∧ 𝑇𝑓𝑚𝑚𝑡 𝑦, 𝑧, 𝑨  𝐼𝑝𝑡𝑢𝑗𝑚𝑓 𝑨 ⇒ 𝐷𝑠𝑗𝑛𝑗𝑜𝑏𝑚 𝑦 6) 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑦  𝑋𝑓𝑏𝑞𝑝𝑜 𝑦 7) 𝐹𝑜𝑓𝑛𝑧(𝑦, 𝐵𝑛𝑓𝑠𝑗𝑑𝑏)  𝐼𝑝𝑡𝑢𝑗𝑚𝑓(𝑦)

slide-45
SLIDE 45

Backward chaining example

45

1) 𝐹𝑜𝑓𝑛𝑧(𝑂𝑝𝑜𝑝, 𝐵𝑛𝑓𝑠𝑗𝑑𝑏) 2) 𝑃𝑥𝑜𝑡 𝑂𝑝𝑜𝑝, 𝑁1 ∧ 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑁1 3) 𝐵𝑛𝑓𝑠𝑗𝑑𝑏𝑜 𝑋𝑓𝑡𝑢 4) 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑦 ∧ 𝑃𝑥𝑜𝑡 𝑂𝑝𝑜𝑝, 𝑦  𝑇𝑓𝑚𝑚𝑡 𝑋𝑓𝑡𝑢, 𝑦, 𝑂𝑝𝑜𝑝 5) 𝐵𝑛𝑓𝑠𝑗𝑑𝑏𝑜 𝑦 ∧ 𝑋𝑓𝑏𝑞𝑝𝑜 𝑧 ∧ 𝑇𝑓𝑚𝑚𝑡 𝑦, 𝑧, 𝑨  𝐼𝑝𝑡𝑢𝑗𝑚𝑓 𝑨 ⇒ 𝐷𝑠𝑗𝑛𝑗𝑜𝑏𝑚 𝑦 6) 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑦  𝑋𝑓𝑏𝑞𝑝𝑜 𝑦 7) 𝐹𝑜𝑓𝑛𝑧(𝑦, 𝐵𝑛𝑓𝑠𝑗𝑑𝑏)  𝐼𝑝𝑡𝑢𝑗𝑚𝑓(𝑦)

slide-46
SLIDE 46

Properties of BC

 Space is linear in the size of the proof  Suffers from repeated states and incompleteness

 Repeated subgoals (both success and failure)

 Solution: caching of previous results

 Incompleteness due to infinite loops

 Solution: checking current goal against every goal on stack 46

slide-47
SLIDE 47

Resolution algorithm

47

 General theorem proving  Apply resolution rule to 𝐷𝑂𝐺(𝐿𝐶 ∧ ¬𝛽)

 Refutation-complete for FOL

slide-48
SLIDE 48

Resolution

48

 PL resolution: 𝑚𝑗 and 𝑛𝑘 are complement

𝑚1 ∨ 𝑚2 ∨ ⋯ ∨ 𝑚𝑙, 𝑛1∨ 𝑛2 ∨ ⋯ ∨ 𝑛𝑜 𝑚1 ∨ … ∨ 𝑚𝑗−1 ∨ 𝑚𝑗+1 ∨ ⋯ ∨ 𝑚𝑙 ∨ 𝑛1 ∨ … ∨ 𝑛𝑘−1 ∨ 𝑛𝑘+1 ∨ ⋯ ∨ 𝑛𝑜

 First-order resolution UNIFY 𝑚𝑗, 𝑛𝑘 = 𝜄

 Clauses are assumed to be standardized apart (sharing no variables).

𝑚1 ∨ 𝑚2 ∨ ⋯ ∨ 𝑚𝑙, 𝑛1∨ 𝑛2 ∨ ⋯ ∨ 𝑛𝑜 SUBST(𝜄, 𝑚1 ∨ … ∨ 𝑚𝑗−1 ∨ 𝑚𝑗+1 ∨ ⋯ ∨ 𝑚𝑙 ∨ 𝑛1 ∨ … ∨ 𝑛𝑘−1 ∨ 𝑛𝑘+1 ∨ ⋯ ∨ 𝑛𝑜)

 Example:

  • 𝑆𝑗𝑑ℎ 𝑦 ∨ 𝑉𝑜ℎ𝑏𝑞𝑞𝑧 𝑦 ,

𝑆𝑗𝑑ℎ(𝐿𝑓𝑜) 𝑉𝑜ℎ𝑏𝑞𝑞𝑧(𝐿𝑓𝑜)

𝜄 = {𝑦/𝐿𝑓𝑜}

slide-49
SLIDE 49

Converting FOL sentence to CNF

 Example:“everyone who loves all animals is loved by someone”

𝑦 [∀𝑧 𝐵𝑜𝑗𝑛𝑏𝑚(𝑧) ⇒ 𝑀𝑝𝑤𝑓𝑡(𝑦, 𝑧)]  [𝑧 𝑀𝑝𝑤𝑓𝑡(𝑧, 𝑦)]

1)

Eliminate implications (𝑄 ⇒ 𝑅 ≡ ¬𝑄 ∨ 𝑅)

𝑦 [¬∀𝑧 ¬𝐵𝑜𝑗𝑛𝑏𝑚 𝑧  𝑀𝑝𝑤𝑓𝑡(𝑦, 𝑧)]  [𝑧 𝑀𝑝𝑤𝑓𝑡(𝑧, 𝑦)]

2)

Move  inwards: x p to x p,  x p to x p

𝑦 [∃𝑧 ¬(¬𝐵𝑜𝑗𝑛𝑏𝑚 𝑧  𝑀𝑝𝑤𝑓𝑡(𝑦, 𝑧))]  [𝑧 𝑀𝑝𝑤𝑓𝑡(𝑧, 𝑦)] 𝑦 [∃𝑧 ¬¬𝐵𝑜𝑗𝑛𝑏𝑚(𝑧) ∧ ¬𝑀𝑝𝑤𝑓𝑡(𝑦, 𝑧)]  [𝑧 𝑀𝑝𝑤𝑓𝑡(𝑧, 𝑦)] 𝑦 [∃𝑧 𝐵𝑜𝑗𝑛𝑏𝑚(𝑧) ∧ ¬𝑀𝑝𝑤𝑓𝑡(𝑦, 𝑧)]  [𝑧 𝑀𝑝𝑤𝑓𝑡(𝑧, 𝑦)] 3)

Standardize variables (avoiding same names for variables)

𝑦 [∃𝑧 𝐵𝑜𝑗𝑛𝑏𝑚(𝑧) ∧ ¬𝑀𝑝𝑤𝑓𝑡(𝑦, 𝑧)]  [𝑨 𝑀𝑝𝑤𝑓𝑡(𝑨, 𝑦)]

49

slide-50
SLIDE 50

Converting FOL sentence to CNF

4)

Skolemize: a more general form of existential instantiation.

Each existentially quantified variable is replaced by a Skolem function of the enclosing universally quantified variables. 𝑦 [𝐵𝑜𝑗𝑛𝑏𝑚(𝐺(𝑦)) ∧ ¬𝑀𝑝𝑤𝑓𝑡(𝑦, 𝐺(𝑦))] ∨ 𝑀𝑝𝑤𝑓𝑡(𝐻(𝑦), 𝑦)

5)

Drop universal quantifiers:

[𝐵𝑜𝑗𝑛𝑏𝑚(𝐺(𝑦)) ∧ ¬𝑀𝑝𝑤𝑓𝑡(𝑦, 𝐺(𝑦))] ∨ 𝑀𝑝𝑤𝑓𝑡(𝐻(𝑦), 𝑦)

6)

Distribute  over  :

[𝐵𝑜𝑗𝑛𝑏𝑚(𝐺(𝑦)) ∨ 𝑀𝑝𝑤𝑓𝑡(𝐻(𝑦), 𝑦)] ∧ [¬𝑀𝑝𝑤𝑓𝑡(𝑦, 𝐺(𝑦)) ∨ 𝑀𝑝𝑤𝑓𝑡(𝐻(𝑦), 𝑦)]

50

slide-51
SLIDE 51

Properties of resolution

51

 Resolution

 Complete when used in combination with factoring

 Extend factoring to FOL

 Factoring in PL: reduces two literals to one if they are identical  Factoring in FOL: reduces two literals to one if they are

unifiable.The unifier must be applied to the entire clause

slide-52
SLIDE 52

Resolution: definite clauses example

52

1) 𝐹𝑜𝑓𝑛𝑧(𝑂𝑝𝑜𝑝, 𝐵𝑛𝑓𝑠𝑗𝑑𝑏) 2) 𝑃𝑥𝑜𝑡 𝑂𝑝𝑜𝑝, 𝑁1 ∧ 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑁1 3) 𝐵𝑛𝑓𝑠𝑗𝑑𝑏𝑜 𝑋𝑓𝑡𝑢 4) 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑦 ∧ 𝑃𝑥𝑜𝑡 𝑂𝑝𝑜𝑝, 𝑦  𝑇𝑓𝑚𝑚𝑡 𝑋𝑓𝑡𝑢, 𝑦, 𝑂𝑝𝑜𝑝 5) 𝐵𝑛𝑓𝑠𝑗𝑑𝑏𝑜 𝑦 ∧ 𝑋𝑓𝑏𝑞𝑝𝑜 𝑧 ∧ 𝑇𝑓𝑚𝑚𝑡 𝑦, 𝑧, 𝑨  𝐼𝑝𝑡𝑢𝑗𝑚𝑓 𝑨 ⇒ 𝐷𝑠𝑗𝑛𝑗𝑜𝑏𝑚 𝑦 6) 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑦  𝑋𝑓𝑏𝑞𝑝𝑜 𝑦 7) 𝐹𝑜𝑓𝑛𝑧(𝑦, 𝐵𝑛𝑓𝑠𝑗𝑑𝑏)  𝐼𝑝𝑡𝑢𝑗𝑚𝑓(𝑦) 1) 𝐹𝑜𝑓𝑛𝑧(𝑂𝑝𝑜𝑝, 𝐵𝑛𝑓𝑠𝑗𝑑𝑏) 2) 𝑃𝑥𝑜𝑡 𝑂𝑝𝑜𝑝, 𝑁1 ∧ 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑁1 3) 𝐵𝑛𝑓𝑠𝑗𝑑𝑏𝑜 𝑋𝑓𝑡𝑢 4) ¬ 𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑦 ∨ ¬𝑃𝑥𝑜𝑡 𝑂𝑝𝑜𝑝, 𝑦 ∨ 𝑇𝑓𝑚𝑚𝑡 𝑋𝑓𝑡𝑢, 𝑦, 𝑂𝑝𝑜𝑝 5) ¬𝐵𝑛𝑓𝑠𝑗𝑑𝑏𝑜 𝑦 ∨ ¬𝑋𝑓𝑏𝑞𝑝𝑜 𝑧 ∨ ¬𝑇𝑓𝑚𝑚𝑡 𝑦, 𝑧, 𝑨 ∨ ¬𝐼𝑝𝑡𝑢𝑗𝑚𝑓 𝑨 ∨ 𝐷𝑠𝑗𝑛𝑗𝑜𝑏𝑚 𝑦 6) ¬𝑁𝑗𝑡𝑡𝑗𝑚𝑓 𝑦 ∨ 𝑋𝑓𝑏𝑞𝑝𝑜 𝑦 7) ¬𝐹𝑜𝑓𝑛𝑧 𝑦, 𝐵𝑛𝑓𝑠𝑗𝑑𝑏 ∨ 𝐼𝑝𝑡𝑢𝑗𝑚𝑓(𝑦)

Convert to CNF

slide-53
SLIDE 53

Resolution: definite clauses example

53

𝐿𝐶 ¬𝛽

slide-54
SLIDE 54

Resolution: general example

54

 Every one who loves all animals is loved by someone.

 𝑦 [∀𝑧 𝐵𝑜𝑗𝑛𝑏𝑚(𝑧) ⇒ 𝑀𝑝𝑤𝑓𝑡(𝑦, 𝑧)]  [𝑧 𝑀𝑝𝑤𝑓𝑡(𝑧, 𝑦)]

 Anyone who kills an animal is loved by no one.

 𝑦 [∃𝑨 𝐵𝑜𝑗𝑛𝑏𝑚(𝑨) ∧ 𝐿𝑗𝑚𝑚𝑡(𝑦, 𝑨)]  [∀𝑧 ¬𝑀𝑝𝑤𝑓𝑡(𝑧, 𝑦)]

 Jack loves all animals.

 𝑦 𝐵𝑜𝑗𝑛𝑏𝑚(𝑦)  𝑀𝑝𝑤𝑓𝑡(𝐾𝑏𝑑𝑙, 𝑦)

 Either Jack or Curiosity killed the cat, who is namedTuna.

 𝐿𝑗𝑚𝑚𝑡 𝐾𝑏𝑑𝑙, 𝑈𝑣𝑜𝑏

∨ 𝐿𝑗𝑚𝑚𝑡(𝐷𝑣𝑠𝑗𝑝𝑡𝑗𝑢𝑧, 𝑈𝑣𝑜𝑏)

 𝐷𝑏𝑢(𝑈𝑣𝑜𝑏)

 Query: Did Curiosity kill the cat?

 𝐿𝑗𝑚𝑚𝑡(𝐷𝑣𝑠𝑗𝑝𝑡𝑗𝑢𝑧, 𝑈𝑣𝑜𝑏)

slide-55
SLIDE 55

Resolution: general example

55

 CNF (𝐿𝐶 ∧ ¬𝛽):

 𝐵𝑜𝑗𝑛𝑏𝑚(𝐺(𝑦)) ∨ 𝑀𝑝𝑤𝑓𝑡(𝐻(𝑦), 𝑦)  ¬𝑀𝑝𝑤𝑓𝑡(𝑦, 𝐺(𝑦)) ∨ 𝑀𝑝𝑤𝑓𝑡(𝐻(𝑦), 𝑦)  ¬𝑀𝑝𝑤𝑓𝑡(𝑧, 𝑦) ∨ ¬𝐵𝑜𝑗𝑛𝑏𝑚(𝑨) ∨ ¬𝐿𝑗𝑚𝑚𝑡(𝑦, 𝑨)  ¬𝐵𝑜𝑗𝑛𝑏𝑚(𝑦) ∨ 𝑀𝑝𝑤𝑓𝑡(𝐾𝑏𝑑𝑙, 𝑦)  𝐿𝑗𝑚𝑚𝑡 𝐾𝑏𝑑𝑙, 𝑈𝑣𝑜𝑏

∨ 𝐿𝑗𝑚𝑚𝑡(𝐷𝑣𝑠𝑗𝑝𝑡𝑗𝑢𝑧, 𝑈𝑣𝑜𝑏)

 𝐷𝑏𝑢(𝑈𝑣𝑜𝑏)  ¬ 𝐿𝑗𝑚𝑚𝑡(𝐷𝑣𝑠𝑗𝑝𝑡𝑗𝑢𝑧, 𝑈𝑣𝑜𝑏)

 Query:“Who killed the cat”?

 𝛽: ∃𝑥 𝐿𝑗𝑚𝑚𝑡(𝑥, 𝑈𝑣𝑜𝑏)  The binding {𝑥/𝐷𝑣𝑠𝑗𝑝𝑡𝑗𝑢𝑧} in one of steps

slide-56
SLIDE 56

Resolution: general example

56

 Query:“Who killed the cat”?

 𝛽: ∃𝑥 𝐿𝑗𝑚𝑚𝑡(𝑥, 𝑈𝑣𝑜𝑏)  The binding {𝑥/𝐷𝑣𝑠𝑗𝑝𝑡𝑗𝑢𝑧} in one of steps

slide-57
SLIDE 57

Prolog (Programming in logic)

 Basis: backward chaining with Horn clauses

 Depth-first, left-to-right BC

 Program = set of clauses

 Fact

 e.g., american(west).

 Rule: head :- literal1, … ,literaln.

 e.g., criminal(X) :- american(X), weapon(Y), sells(X,Y,Z),

hostile(Z).

57

slide-58
SLIDE 58

Prolog: Example

 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=[]

58

slide-59
SLIDE 59

Summary

59

 Lifting and unification  Inference on KB of definite clauses

 Forward chaining  Backward chaining

 Inference on general KB of FOL

 Resolution