개념
Prolog는 논리 프로그래밍 언어로, 술어 논리를 기반으로 사실과 규칙을 표현하고 추론하는 데 특화되어 있다.
문법
- 사실:
child(son1, kim). - 규칙:
father(Y, X) :- child(X, Y), male(Y). :-는 규칙을 뜻한다.,는 AND를 뜻한다.;는 OR를 뜻한다.- 변수는 대문자로 시작한다.
- 문장은 마침표로 끝난다.
Prolog 규칙은 논리적으로 body가 참이면 head가 참이라는 Horn clause로 볼 수 있다.
추론 방식
Prolog는 주로 역방향 추론을 사용한다. 질문에서 시작해 그 질문을 만족시키는 규칙의 head를 찾고, body의 하위 목표를 다시 증명한다. 이 과정에서 유니피케이션으로 변수에 값을 대입한다.