개념

Prolog는 논리 프로그래밍 언어로, 술어 논리를 기반으로 사실과 규칙을 표현하고 추론하는 데 특화되어 있다.

문법

  • 사실: child(son1, kim).
  • 규칙: father(Y, X) :- child(X, Y), male(Y).
  • :-는 규칙을 뜻한다.
  • ,는 AND를 뜻한다.
  • ;는 OR를 뜻한다.
  • 변수는 대문자로 시작한다.
  • 문장은 마침표로 끝난다.

Prolog 규칙은 논리적으로 body가 참이면 head가 참이라는 Horn clause로 볼 수 있다.

추론 방식

Prolog는 주로 역방향 추론을 사용한다. 질문에서 시작해 그 질문을 만족시키는 규칙의 head를 찾고, body의 하위 목표를 다시 증명한다. 이 과정에서 유니피케이션으로 변수에 값을 대입한다.