1. Dr. Mustafa Jarrar [email_address] www.jarrar.info University of Birzeit Chapter 9 Inference in first-order logic Advanced Artificial Intelligence (SCOM7341) Lecture Notes University of Birzeit 2 nd Semester, 2011
2. Motivation: Knowledge Bases vs. Databases The DB is a set of tuples, and queries are perfromed truth rvaluation. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Wffs : Proof xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Provability Query Answer Knowledge Base System Query Proof Theoretic View Constraints DBMS Transactions i.e insert, update, delete... Query Query Answer Model Theoretic View The KB is a set of formulae and the query evaluation is to prove that the result is provable.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13. Unification Example Unify (p,q) = θ where Subst( θ ,p) = Subset( θ ,q) Suppose we have a query Knows(John,x), we need to unify Knows(John,x) with all sentences in KD. Knows(John,x) Knows(John,Jane) Knows(John,x) Knows(y,Bill) Knows(John,x) Knows(y,Mother(y)) Knows(John,x) Knows(x,Elizabeth) Q P θ
14. Unification Example {x/Jane} Unify (p,q) = θ where Subst( θ ,p) = Subset( θ ,q) Suppose we have a query Knows(John,x), we need to unify Knows(John,x) with all sentences in KD. Knows(John,x) Knows(John,Jane) Knows(John,x) Knows(y,Bill) Knows(John,x) Knows(y,Mother(y)) Knows(John,x) Knows(x,Elizabeth) Q P θ
15. Unification Example {x/Jane} {x/Bill,y/John} Unify (p,q) = θ where Subst( θ ,p) = Subset( θ ,q) Suppose we have a query Knows(John,x), we need to unify Knows(John,x) with all sentences in KD. Knows(John,x) Knows(John,Jane) Knows(John,x) Knows(y,Bill) Knows(John,x) Knows(y,Mother(y)) Knows(John,x) Knows(x,Elizabeth) Q P θ
16. Unification Example {x/Jane} {x/Bill,y/John} {y/John,x/Mother(John)} Unify (p,q) = θ where Subst( θ ,p) = Subset( θ ,q) Suppose we have a query Knows(John,x), we need to unify Knows(John,x) with all sentences in KD. Knows(John,x) Knows(John,Jane) Knows(John,x) Knows(y,Bill) Knows(John,x) Knows(y,Mother(y)) Knows(John,x) Knows(x,Elizabeth) Q P θ
17.
18.
19. Unification Example {x/Jane} {x/Bill,y/John} {y/John,x/Mother(John)} {x/Elizabeth, z 17 /John} Unify (p,q) = θ where Subst( θ ,p) = Subset( θ ,q) Suppose we have a query Knows(John,x), we need to unify Knows(John,x) with all sentences in KD. Knows(John,x) Knows(John,Jane) Knows(John,x) Knows(y,Bill) Knows(John,x) Knows(y,Mother(y)) Knows(John,x) Knows(z 17 ,Elizabeth) Q P θ
20. Unification Example {x/Jane} {x/Bill,y/John} {y/John,x/Mother(John)} {x/Elizabeth, z 17 /John} In the last case, we have two answers: θ = {y/John,x/z}, or θ = {y/John,x/John, z/John} ?? This first unification is more general, as it places fewer restrictions on the values of the variables. Unify (p,q) = θ where Subst( θ ,p) = Subset( θ ,q) Suppose we have a query Knows(John,x), we need to unify Knows(John,x) with all sentences in KD. Knows(John,x) Knows(John,Jane) Knows(John,x) Knows(y,Bill) Knows(John,x) Knows(y,Mother(y)) Knows(John,x) Knows(z 17 ,Elizabeth) Knows(John,x) Knows(y,z) Q P θ
21. Unification Example {x/Jane} {x/Bill,y/John} {y/John,x/Mother(John)} {x/Elizabeth, z 17 /John} For every unifiable pair of expressions, there is a Most General Unifier MGU In the last case, we have two answers: θ = {y/John,x/z}, or θ = {y/John,x/John, z/John} {y/John,x/z} Unify (p,q) = θ where Subst( θ ,p) = Subset( θ ,q) Suppose we have a query Knows(John,x), we need to unify Knows(John,x) with all sentences in KD. Knows(John,x) Knows(John,Jane) Knows(John,x) Knows(y,Bill) Knows(John,x) Knows(y,Mother(y)) Knows(John,x) Knows(z 17 ,Elizabeth) Knows(John,x) Knows(y,z) Q P θ