If
not
is used in a backward chaining goal, it succeeds if the
condition
contained within it fails. In this usage, only one condition is allowed.
If
not
is used in a forward chaining pre-condition, it succeeds if any of the
condition
contained within it fail. In this usage, the
condition
s may only contain expressions normally allowed in forward chaining pre-conditions (object base references and lisp tests).
KnowledgeWorks and Prolog User Guide (Unix version) - 6 Dec 2011