-
Notifications
You must be signed in to change notification settings - Fork 3
Description
In the Lisp ACT-R version of the "grouped" tutorial, several productions use the following pattern:
(p harvest-first-item
=goal>
isa recall-list
element first
group =group
=retrieval>
isa item
name =name
==>
=goal>
element second
+retrieval>
isa item
group =group
position second
:recently-retrieved nil
!eval! ("grouped-response" =name))The CCM translation is doing this:
def harvest_first_item(focus='item pos:first groupname:?groupname',retrieval='name:?x'):
self.parent.say(x)
focus.modify(pos='second')
memory.request('parent:?groupname position:second')
retrieval.clear()The :recently-retrieved nil in the Lisp version doesn't mean to clear the buffer - it's a request parameter. From the ACT-R manual:
In addition to specifying slots in the request one may also include additional labels called request parameters. A request parameter is used like a slot in the request, but it is not actually the name of a slot. It is indicated with a Lisp keyword which has been specified by the module as allowed for use with its buffer to provide additional information in a request without having to use slots in chunks.
In the :recently-retrieved nil case, it's a request to the buffer to check if the item has been retrieved recently or not.
The original also uses "finst" which is related to this check.
It seems like this is a bug in the translation?