Prolog programs are written as a sequence of clauses. Each has the form
predicate( argument, argument, ... ).or
predicate( argument, argument, ... ) :-
predicate( argument, argument, ... ),
predicate( argument, argument, ... ),
... .
, means ``and''.
:- means ``if''.
All clauses are Horn clauses: one goal, implied by a conjunction of other goals (possibly none).