[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