Knowledge Representation Techniques 2.1 Predicate Calculus 2.1.1 Background
Knowledge Representation Techniques 2.1 Predicate Calculus 2.1.1 Background
Knowledge Representation Techniques 2.1 Predicate Calculus 2.1.1 Background
TECHNIQUES
2.1 Predicate Calculus
2.1.1 Background
Since predicate calculus is formally understood, if information could be
encoded in the calculus then deductions could be made as, simply, proofs in the
domain of discourse.
The Robinson’s Resolution Principle has demonstrated the practically of the
predicate calculus culminating in the engineering of logic programming
languages such as ProLog.
The adequacy and efficiency of predicate calculus representation of information
depends entirely on the individual doing the encoding - the granularity of the
predicates and what it is to be proven.
The biggest problem in predicate calculus representation, however, is its
limitation in the kind of information that can be represented in the calculus.
Example II, 2.1:
Given the following narration, we want to find whether Marcus was not loyal to
Caesar.
1. Marcus was a man
2. Marcus was a Pompian
3. All Pompians were Romans
4. Caesar was a ruler
5. All Romans were either loyal to Caesar or hated him.
6. Everyone is loyal to someone.
7. People only try to assassinate rulers they are not loyal to.
8. Marcus tried to assassinate Caesar
Solution:
There are 2 things that we need to do before we can apply resolution:
1) Try to represent the given statements (as well as our purported theorem) in
predicate calculus as adequately as possible;
2) Add the negation of our hypothesis to the CNF of all the premises.
4. ruler(caesar).
5. .X (roman(X) 6 loyal_to(X, caesar) w hate(X, caesar)).
6. .X (man(X) 6 .Y loyal_to(X, Y))
7. .X .Y (man(X) v ruler(Y) v try_to_assassinate(X, Y) 6 ¬loyal_to(X, Y)).
8. try_to_assassinate(marcus, caesar)
The hypothesis is: 9. ¬loyal_to(marcus, caesar).
In CNF we have:
1. man(marcus).
2. pompian(marcus).
3. ¬pompian(X) w roman(X).
4. ruler(caesar).
5. ¬roman(Y) w loyal_to(Y, caesar) w hate(Y, caesar).
6. ¬man(Z) w loyal_to(Z, g(Z))
7. ¬man(W) w ¬ruler(U) w ¬try_to_assassinate(W, U) w ¬loyal_to(W, U).
8. try_to_assassinate(marcus, caesar)
9. loyal_to(marcus, caesar). (negated hypothesis)
Solution:
a)
1 a). member(joe, elm)
1 b). member(sally, elm)
1 c). member(bill, elm)
1 d). member(ellen, elm)
2. married(joe, sally)
3. brother(bill, ellen)
4. .X, .Y : spouse(X, Y) v member(Y, elm) 6 member(X, elm).
5. own(joe, house) v last-meeting(elm, house).
b) In order to be able to make some meaningful mechanical inference from the
given statements, we have to add some more rules (although obvious to
humans) explicitly like:
6. A spouse is a married person..X, .Y: married(X, Y) 6 spouse(Y, X).
7. Every married couple shares the house they live in:
7 a). .X, .Y: own(X, house) v married(X, Y) 6 own(Y, house).
7 b). .X, .Y: own(X, house) v spouse(Y, X) 6 own(Y, house).
Now we can put everything into clausal form in order to apply the resolution
refutation process. So, we have: