unconstrained retrievals

Wolfgang Schoppek Wolfgang.Schoppek at uni-bayreuth.de
Thu Jun 6 10:13:17 EDT 2002


remembered an advice Christian gave me some years ago. Since this is an
elegant solution, I want to share it with you.
I added a slot "g" to the chunk-type "pattern". When a pattern is
processed in the current context, the goal is bound to the g slot:

(p pattern-found
  =goal>
    isa wm-free
    ...
  =retrieval>
    isa pattern
 ==>
  =goal>
    ...
  !eval! (replace-when-match =retrieval ...)
  =retrieval>
    g =goal
  -retrieval>
)

The retrievals are constrained by not having been processed in the current
context:

(p retrieve-pattern
  =goal>
    isa wm-free
    ...
 ==>
  +retrieval>
    isa pattern
  - g =goal
  ...
)

The problem with this solution is that chunks become "individuals" by
means of their g slot contents, which prevents them from being merged. To
circumvent that, I simply clear all g slots in the production that
establishes a new goal:

  !focus-on! =newgoal
  !eval! (clear-g-slots =goal)

Christian, I agree that unconstrained retrieval is not the most usual way
for retrieving sth from memory. But how else would you handle the host of
possible combinations of constraints?
Jerry, could you send me more information about your "circular stack"
(e.g. some sample code)? Your solution might be helpful for my model, too.

-- WS
-----------------------------------------------------------------
Dr. Wolfgang Schoppek          Universitaet Bayreuth
 Tel.: +49 921 554140
 http://www.uni-bayreuth.de/departments/psychologie/wolfgang.html
-----------------------------------------------------------------






More information about the ACT-R-users mailing list