Preliminary Note
Experts in Prolog, who may venture to read this document, are asked
to admit that an amount of abuse of terminology found herein is just a
harmless step back from the implementor-influenced trend to formalize uniformly
elements of the Prolog language that have diverse origins in practice.
Furthermore, some elements of Prolog presented here are specific to Strawberry
Prolog, and can happen to work differently in other implementations. For
the rest of this document the word 'Prolog' is to be read as an abbreviation
for Strawberry Prolog.