Unification Algorithm:
Here if notice for instance that to unify two sentences as we must find a substitution that makes the two sentences the same. Furthermore remember there that we write V/T to signify in which we have substituted term T for variable V as read the "/" sign as "is substituted by". So now here our purpose of this algorithm will be to produce a substitution as a set of pairs V/T for a given pair of sentences. Here notice for instance example like the output for the pair of sentences as:
knows(john,X)
knows(john, mary)
will be: {X/mary}. Whether for the two sentences above involving jack and the function should fail as there was no way to unify the sentences.
- Thus if notice for describe instance the algorithm we use to simplify some functions it calls internally as.
There the function isa_variable(x) checks where x is a variable.
- And another function isa_compound(x) checks whether x is a compound expression:
Here if we considered for instance that either a predicate or type a function or a connective usually contains subparts. Hence the subparts of a predicate or function are the arguments. Now there subparts of a connective are the things it connects. In fact we write args(x) for the subparts of compound expression x. So always remember that args(x) outputs a list: as the list of subparts.