[ACT-R-users] Question on new visual objects and accessing in productions

Dan Bothell db30 at andrew.cmu.edu
Fri Jul 1 16:52:47 EDT 2005


--On Friday, July 01, 2005 3:32 PM -0400 Shawn Nicholson 
<shawn.nicholson at dnamerican.com> wrote:

>
> Now, everything works.  But I am wondering if what I have done is the
> proper method for manipulating specialized icon objects in the vision
> module. My questions (in summary):
>
> 1)    Is this the proper way to be adding new visual object types to the
> system for accessing special slots and such?  (ie adding that feat-to-dmo
> method specialized on aircraft-icon??)
>

I think you mean build-features-for instead of build-group-features-for,
but otherwise, yeah, that's basically how it's done:

Write a build-features-for to return a custom icon-feature and then
write a feat-to-dmo to convert that icon-feature into a dme/chunk.

There are details in the docs at 
<http://chil.rice.edu/projects/RPM/docs/index.html>
for others that are interested, in particular the device interface and
vision module sections.


> 2)    Those two lines that I placed in my model seem like they should be
> somewhere in the code where the aircraft-icon feature is defined.
> However, unless I put them in the model, anytime (clear-all) is called,
> the chunk types go away and they no longer exist for use in the
> productions.  I could put and advice function around the function
> reset-vision-module (which is where all the basic vision chunks are
> defined) but that doesn't seem to be a clean way to change things.
>

Right, clear-all (or a reset) deletes all chunk-type definitions.  The
chunk-type should probably stay in the model. Generally, I would advise
against modifying or extending the main functions of the vision module
(or really any of the modules) unless it's really necessary.

The definition of the chunk named aircraft-object isn't really
necessary because it will get created automatically. [To those that
don't recognize the define-chunks function, it's an ACT-R 6 command for
creating chunks without putting them into DM.]  I'm assuming you got a
warning that there wasn't such a chunk since you use it as the value
for kind and then added that to avoid the warning.


One general comment is that I would recommend against using keywords as
slot values i.e. chunk names.  In previous versions of ACT-R it could
lead to some really hard to debug code, for example, in ACT-R 5:

CG-USER(3): (add-dm (g isa visual-location value foo kind :foo))
(G)
CG-USER(4): (dm g)
 G    0.000
    isa VISUAL-LOCATION
    screen-x nil
    screen-y nil
    distance nil
    attended nil
    kind Foo
    color nil
    value Foo
    size nil
    nearest nil

note that it doesn't show the difference in the output. While ACT-R 6
will show that correctly in that case I can't guarantee that it will
treat them correctly everywhere.

Dan





More information about the ACT-R-users mailing list