[ACT-R-users] Comparing chunk types

Dan Bothell db30 at andrew.cmu.edu
Wed Mar 26 11:17:19 EST 2003


--On Tuesday, March 25, 2003 4:31 PM -0700 Jerry.Ball at williams.af.mil wrote:

> Conjunctions in English can conjoin almost any linguistic type, but both
> conjuncts must (almost always) be of the same type. I need to be able to
> compare the chunk before the conjunction to the chunk after the conjunction
> to see if they are the same chunk type (e.g. noun, verb, NP, PP, etc.) and
> can be combined. The production that does this doesn't need to know what the
> chunk types are, just that they are the same type. Is there a mechanism in
> ACT-R for comparing chunk types (similar to the mechanism for comparing slot
> values)? If not, would such a mechanism fit in with the current
> architecture? Currently, I have separate productions for conjoining each
> linguistic type, but I would like very much to generalize these productions.



There isn't a specific mechanism built in for doing so, but there's always 
!eval!.  Here's an example production that would test that the chunk in the 
goal buffer is of the same type as the chunk in the retrieval buffer.

(p example-1
    =goal>
       isa word
    =retrieval>
       isa word
    !eval! (eql (wme-type (get-safe-wme =goal))
                (wme-type (get-safe-wme =retrieval)))
 ==>
 )

The one other piece to that is that you have to have a chunk-type hierarchy 
such that all words share a supertype, the word chunk-type in the example, but 
if the words in question are in slots of the goal for instance that isn't even 
really necessary, as shown in example production 2.

(p example-2
    =goal>
       isa goal
       slot1 =a
       slot2 =b
    !eval! (eql (wme-type (get-safe-wme =a))
                (wme-type (get-safe-wme =b)))
 ==>
 )

Those productions only match if the chunk-types of the tested chunks are the 
same.

Allowing for the chunk-types (and slot names as well) to be specified with 
variables is something that comes up every now and then and is currently one 
of the things to be considered for inclusion in ACT-R 6.  It adds a lot of 
flexibility to the kinds of productions that can be written which seems like a 
good thing from the modeling perspective, but the issue to consider is whether 
that much flexibility is really a desired situation from the theory stand 
point.

Dan




More information about the ACT-R-users mailing list