Loop until Done
1. Pick two sentences to resolve
• Specialized Unify - To be reasonable to do a resolution
the two sentences must fulfill the following:
- Two sentences must share a predicate,
which is negated in one and not the other
- Parameters for the resolving predicate
are unifiable
- The new resolvent is not a duplicate
of something already in the KB. While checking for duplicates, may
optionally check for subsumption (either the new resolvent being subsumed
(in which case don't add it), or delete sentences in the KB which are subsumed
by the new resolvent)
• What order to check (This is the part where you get to
think)
- First list and order all possible
resolutions (can be slower, but do not have to re-evaluate each time),
or...
- Order sentences such that better resolutions
will be tried first, or...
- Then you can just resolve the highest
legal resolution in your ordering
- For random version, any ordering will
do
2. Resolve sentences and add resolvent to the KB
• Add it so that it best fits your heuristic ordering approach
3. If proof done, print out the specific proof sequence (just those steps used to accomplish the proof)
• Back pointers or some other scheme