Unification
단일화(Unification) : 이재규 외 : 긍정식 (Modus Ponens) 와 같은 추론규칙 (Inference Rule) 을 적용하기 위해서는 두 개의 문장이 문법적으로 서로 동일한 형태를 갖는지를 평가하는 매칭 (Matching) 기능이 있어야 한다. 명제계산 (Propositional Calculus) 에서는 매칭이 간단하게 이루어질 수 있지만, 술어계산 (Predicate Calculus) 에서는 변수부호가 있으므로 매칭과정이 복잡하게 된다. 이러한 문장간의 매칭을 효과적으로 처리해주는 과정을 단일화 라고 한다.
Wikipedia : Unification : 단일화는 Prolog 의 주요 개념중의 하나이다. 그것은 변수의 내용을 bind 하는 메카니즘을 나타내며 일종의 한번의 할당 (one-time assignment) 으로 보여질 수 있다. Prolog 에서 이 동작은 기호 "=" 으로 표기한다.
그 선언적 성격 때문에, 단일화의 순서에서 그 명령은 (보통) 어떤 역할도 가지지 않는다.
단일화의 예
Visual Prolog : Matching Things Up: Unification : goal 을 만족시키기 위해 각자의 subgoal 을 만족시켜야 하고 또한 각 인수와 match 되는 clause 를 찾기위해 프로그램의 위에서 아래로 search 하게 된다. goal 과 match 되는 clause 를 찾으면 goal 과 clause 가 identical 해지도록 free variable 에 값이 bind 된다. 이때 goal 은 clause 에 unify 되었다고 말해지고 이러한 matching 과정을 unification 이라 한다.
단일화 알고리즘 (Unification Algorithm) : Elaine Rich