■>Algorytm unifikacji jest rekurencyjną procedurą, porównującą dwa termy i odkrywającą czy istnieje zbiór podstawień, które sprawią, że termy staną się identyczne.
-*Np. man(John) i man(John) unifikują się, natomiast man(John) i man(Spot) nie, bo mają różne argumenty.
Jeżeli symbole predykatów inicjalizujących są takie same, to kontynuuj. W przeciwnym przypadku unifikacji zawodzi niezależnie od argumentów. Np.. tryassasisinate(Marcus.Caesar) i hate(Marcus, Caesar).
Jeżeli symbole równe, to sprawdzamy argumenty, ich liczbę i wartości. Zasady porównania:
predykat równy predykatowi, argument argumentowi, zmienna zmiennej.
Problem typu: P(x,x) i P(y,z). Predykat P jest zgodny. Porównujemy zatem x i y i decydujemy, że jeżeli podstawimy y za x to uzyskamy odpowiedniość. Podstawienie zapisuje się jako y/x [P(y,y) i P(y,z)j. Można oczywiście dokonać podstawienia odwrotnego. Nie można jednak podstawić y i z za x.
Algorytm zwraca listę podstawień. Pusta oznacza ich BRAK.
20