'assert' and 'retract' were brought into Shen Prolog with version 34.
In order to use these features the relevant predicate has to be declared as dynamic.
'asserta' and 'assertz' (see any introduction to Prolog on the use of these predicates)
is used to assert clauses.
(0-) (dynamic male)
(1-) (defprolog male
(2-) (prolog? (asserta [[male bill] <--;]))
(3-) (prolog? (male bill))
(4-) (prolog? (retract [[male bill] <--;]))
(5-) (prolog? (male bill))