[ACT-R-users] stopping pm

Mike Byrne byrne at rice.edu
Tue Oct 7 13:38:02 EDT 2003


On 2003.10.07, Wolfgang Schoppek <Wolfgang.Schoppek at uni-bayreuth.de> said:

> Hi Dan, it's just a matter of program clarity. I would like to
> keep the code that controls the flow of the experiment as
> separate from ACT-R as possible. With your solutions (sort of
> which I've used in the past), ACT-R and experiment-control-code
> call each other mutually. I'd like to have a solution where
> calling experiment-control-code from ACT-R is reduced to a
> minimum. This could be easily done by a function like (pm-stop)
> called from the production that gives the answer. With such a
> solution, the function that runs a complete test block with open
> ended trials would look very clear:
> 
> (defun recognize (ili)
>     (setf *stimulus* ili)
>     (pm-run)  ; until it is stopped from the rhs of some production
>     (do-after-trial-stuff)
> )
> 
> (defun do-test (stimuluslist &optional (fun #'recognize))
>    (dolist (ele stimuluslist)
>      (funcall fun ele))
> )

If there is no chunk in the goal buffer, ACT-R will halt.  Thus, if you do a
!pop!, ACT-R will stop once there's nothing in the event queue.  This may not
be the "Christian & Dan approved" way of stopping ACT-R, but it's effective.

Other production systems (e.g. OPS5), do have an explicit RHS HALT operator.
Perhaps we ought to consider such a thing for ACT-R 6.0.

-Mike

===========================================================
Mike Byrne, Ph.D.                             byrne at acm.org
Assistant Professor, Psychology Department
Rice University, MS-25          http://chil.rice.edu/byrne/
6100 Main Street                      +1 713-348-3770 voice
Houston, TX  77005-1892                 +1 713-348-5221 fax




More information about the ACT-R-users mailing list