In the SNeRE formalism, a goal is a proposition that the SNeRE agent is trying to bring about. The action of trying to bring about a goal is called ``achieve'':
The plans for achieving goals are given by assertions of the form
M!:{
goal, g
plan,
p
}, which says that
p is a plan for achieving the goal g.
* (describe
(assert forall $person
ant (build member *person class person)
cq (build goal (build agent *person state is location here)
plan (build action call object1 *person))))
(M22! (FORALL V5) (ANT (P23 (CLASS PERSON) (MEMBER V5)))
(CQ
(P26 (GOAL (P24 (AGENT V5) (LOCATION HERE) (STATE IS)))
(PLAN (P25 (ACTION CALL) (OBJECT1 V5))))))
(M22!)
CPU time : 0.18
* (describe (assert forall $person
ant (build member *person class person)
cq (build act (build action call object1 *person)
plan (build action snsequence
object1 (build action say
object1 "Come here")
object2 (build action say
object1 *person)))))
(M24! (FORALL V6) (ANT (P27 (CLASS PERSON) (MEMBER V6)))
(CQ
(P31 (ACT (P28 (ACTION CALL) (OBJECT1 V6)))
(PLAN
(P30 (ACTION SNSEQUENCE) (OBJECT1 (M23 (ACTION SAY) (OBJECT1 Come here)))
(OBJECT2 (P29 (ACTION SAY) (OBJECT1 V6))))))))
(M24!)
CPU time : 0.19
* (perform (build action achieve
object1 (build agent Bill state is location here)))
Come here
BILL
CPU time : 1.76