Introduzione

Il Prolog è un linguaggio di programmazione logica basato sulle clausole di Horn. Un programma logico consiste in un insieme di procedure espresse in clausole di Horn ed attivate da una asserzione iniziale d'obiettivo. Considerando le clausole espresse secondo le due categorie di fatti e regole, diciamo che un programma Prolog è costituito da un insieme di fatti, che dichiarano un certo stato di cose, da un insieme di regole, che definiscono relazioni fra stati di cose, e da obiettivi (o domande) a cui rispondere. La procedura utilizzata dal Prolog è il Principio di risoluzione.
Esempio di programma Prolog
  genitore(pam,tom).
  genitore(tom,bob).
  figlio(Y,X) :- genitore(X,Y).
  ?- figlio(X,Y).
  X = tom
  Y = pam
[Lab]

Vediamo che i fatti in Prolog vengono scritti senza la freccia di implicazione e terminano sempre con il punto. Nelle regole la testa (o parte sinistra della regola) ed il corpo (o parte destra della regola) sono unite dal simbolo ":-", proprio del linguaggio. Un eventuale punto e virgola (;) all'interno del corpo di una regola rappresenta la disgiunzione; una eventuale virgola (,) all'interno del corpo di una regola rappresenta la congiunzione. Le regole terminano sempre con il punto. Gli obiettivi sono clausole senza testa in cui al posto della freccia d'implicazione iniziale è presente il simbolo "?-".

Il Prolog risponde alle domande (soddisfa gli obiettivi) secondo il Principio di risoluzione, cioè tenta di dimostrare un teorema, o meglio, tenta di derivare la clausola vuota a partire dalle ipotesi (i fatti e le regole). Il Prolog fornisce una risposta se c'è refutazione; risponde "no" se non c'è.