$ macro to create each variable node
the first time the restriction occurs, and the * macro on all
subsequent occasions, including subsequent rules. For example, the
two rules ``Every dog is a pet'' and ``Every dog hates every cat''
might be entered as follows, assuming that the restrictions Dog(x)
and Cat(y) have not previously been used in the network:
(assert forall $dog1
ant (build member *dog1 class dog)
cq (build member *dog1 class pet))
(assert forall (*dog1 $cat1)
&ant ((build member *dog1 class dog)
(build member *cat1 class cat))
cq (build agent *dog1 act hates object *cat1))