:- volatile :PredSpec, …, :PredSpec.
where each PredSpec is a predicate specification, causes the specified predicates to become volatile.
A predicate should be declared as volatile if it refers to
data that cannot or should not be saved in a saved state. In most
cases a volatile predicate will be dynamic, and it
will be used to keep facts about streams or memory
references. When a program state is saved at runtime, the
clauses of all volatile predicates will be left
unsaved. The predicate definitions will be saved though, which
means that the predicates will keep all its properties such as
multifile when the
saved state is restored.