4.14.2 The recorded database
- recorda(+Key, +Term, -Reference)
 - Assert Term in the recorded database under key Key. Key is a small integer (range min_tagged_integer ...max_tagged_integer, atom or compound term. If the key is a compound term, only the name and arity define the key. Reference is unified with an opaque handle to the record (see erase/1).
 - recorda(+Key, +Term)
 - Equivalent to 
recorda(Key, Term, _). - recordz(+Key, +Term, -Reference)
 - Equivalent to recorda/3, but puts the Term at the tail of the terms recorded under Key.
 - recordz(+Key, +Term)
 - Equivalent to 
recordz(Key, Term, _). - recorded(?Key, ?Value, ?Reference)
 - True if Value is recorded under Key and has the 
given database Reference. If Reference is given, 
this predicate is semi-deterministic. Otherwise, it must be considered 
non-deterministic. If neither Reference nor Key is 
given, the triples are generated as in the code snippet below.75Note 
that, without a given Key, some implementations return 
triples in the order defined by recorda/2 
and recordz/2. 
See also current_key/1.
current_key(Key), recorded(Key, Value, Reference) - recorded(+Key, -Value)
 - Equivalent to 
recorded(Key, Value, _). - erase(+Reference)
 - Erase a record or clause from the database. Reference is a db-reference returned by recorda/3, recordz/3 or recorded/3, clause/3, assert/2, asserta/2 or assertz/2. Fail silently if the referenced object no longer exists. Notably, if multiple threads attempt to erase the same clause one will succeed and the others will fail.
 - instance(+Reference, -Term)
 - Unify Term with the referenced clause or database record. 
Unit clauses are represented as Head :- 
true.