Artificial
Intelligence

Fall 2007
course
navigation

oct 18

resolution in FOL

Here are the steps, as described in the text, pg 296 and following, to convert a first order logic sentence to CNF form and then apply our resolution procedure.
(1) eliminate implications.
(2) move "not" inwards
(3) make sure there are no duplicate dummy variable names in sentences
(4) skolemize
(exists (x) P(x)) becomes P(A) where A is a newly-invented constant. (forall (y) (exists (x) P(x))) becomes (forall (y) P(A(y))) where A(y) is the newly-invented function
(5) drop all the universal quantification.
(6) distribute "and", "or" so its (... or ... or ...) and (... or ...)
A or (B and C) becomes (A or B) and (A or C)
"The sentence is now in CNF."
"It is quite unreadable."
Given all this, how do we prove something? As before:
What are the inference rules?
Again, pretty much as before, we want add new "facts" by combining existing ones where one term is the negation of the other. So if our knowldge base has
(A or B) and (C or not B)
then we want to add a new conclusion
(A or C)
The complication is now that these terms may contain variables and skolemization functions - the procedure needs to recognize that they may be unified, find the subsitution that unifies them, apply the substitution, and then add the new "fact". The variable substitution (the "unification") must be applied to the whole line.
For example, if the database is
Animal(F(x)) or Loves(G(x),x) not Kills(u,v) or not Loves(u,v)
then the unification is (u -> G(x), v -> x) and the new sentence to add to the database is
Animal(F(x)) or not Kills(G(x), x))
Be clear that doing this means looping over all pairs in two different lines and searching for any possible unification - this is in general a big search.

book example - page 299

run through this example

forward, backward, and resolution

chap 10 - knowledge representation in the large

examples in the wild

http://cs.marlboro.edu/ courses/ fall2007/ai/ lecture_notes/ oct_18
last modified Wednesday October 17 2007 10:30 pm EDT