[ACT-R-users] Novice help on ACT-R's functionality

Vinay Chilukuri vinay.chilukuri at gmail.com
Wed Jun 30 03:38:54 EDT 2010


Dear Dan,
Thank you for your elaborate reply.

I have gone through the tutorial sections of units 1 & 2.
But before delving deeper into ACT-R, I was interested in knowing what
kind of tasks could be modeled using ACT-R and what could not!

As mentioned in the previous mail, my experiment consisted of a viewer
watching a movie and then a set of questions would be presented to the
viewer on a computer screen, one question at a time. The questions are
descriptive. After the viewer finishes answering, we compute a 'recall
score' based on a formula.
In our case, I agree that the recall of information depends on how the
information is represented in the model's memory. Working on this
aspect.  But, I was just wondering if an ACT-R model is capable of
handling this kind of a recall task via these type of questions?

My question about retrieving information is: How do you pose the
question to the model?
I would like to know if there is an equivalent way of asking the model
a question like: "Why did jack stop on his way to the restaurant?"
So, how do I form the query to the model so that I would address such
type of questions.

Also, intriguing among the things you've mentioned is that, the model
could be made to read the question of the screen and then converting
it to appropriate requests to the declarative memory. Is there any
tutorial section regarding this?

The information that you have given me on how to set the creation time
of the chunk was very comprehensive. That is what I needed.
I shall complete the tutorials in the rest of the units and ask further queries.
Thank you very much for your time.

On Tue, Jun 29, 2010 at 7:29 PM,  <db30 at andrew.cmu.edu> wrote:
>
>
> --On Tuesday, June 29, 2010 1:58 PM +0530 Vinay Chilukuri
> <vinay.chilukuri at gmail.com> wrote:
>
>> Hello all,
>> I have recently discovered ACT-R. I have been reading about this
>> wonderful tool and trying out some basic models on my own.
>> I understand that ACT-R is a theory in cognition and also that it can
>> be used to model behavioral experiments.
>>
>
>
> The first suggestion I would have is that if you have not yet read
> the ACT-R tutorial and worked through the models that come with it
> to do so.  The texts and models are included with the software in
> the tutorial directory of the distribution and the unit texts are
> also available as PDFs from the ACT-R web site at:
>
> <http://act-r.psy.cmu.edu/actr6/>
>
> In particular, unit 1 introduces the basics of using declarative
> memory and units 4 and 5 cover the details of the activation equation
> for chunks.
>
>
>> My question is:
>> 1) Given some knowledge in the declarative memory, can I retrieve the
>> information when queried upon?
>> If yes, how can I query it?
>>
>> Specifically,
>> my experiment consisted of assessing recall of a movie-stimulus and
>> the questions that were posed to the participants were Open-Ended.
>> Eg: "Describe what happened in Jack's apartment?"; "Why did Jack had
>> to stop on his way to the restaurant?"
>> I intend to describe the events of the movie as chunks. Each event
>> would be characterized by a set of attributes/slots.
>>
>> Though I think it is quite a challenge to query the model in the same
>> way as was done with the experiment, I would like to know how an ACT-R
>> model can be queried.
>>
>
> I'm not sure I understand exactly what you want to know.  The basic
> answer of how to retrieve information from declarative memory would
> be to make a request through the retrieval buffer.  That request
> would be done with a "+retrieval" action in a production and would look
> something like this with the appropriate details included:
>
> (p get-fact
>  =goal>
>   isa retrieve-fact
>   ...
> ==>
>  +retrieval>
>   isa movie-fact
>   ...
> )
>
>
> If instead you're asking how you would form the request to get the
> specific information as indicated then that is going to depend a lot
> on how you have represented the information and which sorts of
> activation effects (partial matching and spreading activation in
> particular) you feel are appropriate for the task.  So, I can't really
> offer any suggestions about that without knowing more details.
>
> Finally, if the question is how do you pose the question to the model
> to be answered, then again, that depends a lot on exactly how you want
> to represent the task.  One way would be to just set a particular goal
> chunk which has the details of the question in it as the starting point
> for the model (the fan model from unit 5 of the tutorial would be an
> example of something like that).  Alternatively, you could have the
> model read the question from the screen or hear it and then also model
> the internal deliberation of converting that to appropriate requests
> of declarative memory.
>
>> 2) Also, is there a way of adding chunks to the model's declarative
>> memory at a specific time duration?
>>
>
> Yes, there are essentially two ways to set the creation time for a
> chunk.
>
> The first would be to do just as you ask -- add it to the model's
> declarative memory at the time you want it created.  Here are two
> ways to accomplish that.  First you could advance the clock to the
> desired time and then add it explicitly in code which might look
> something like this in a function to create the chunks for a movie
> at times of 600 seconds and 1100 seconds (assuming this was called at
> time 0 seconds otherwise it would be 600 and 1100 seconds from the
> current time):
>
> (defun add-movie-chunks ()
>  ;;; advance the clock 600 seconds
>  (run-full-time 600)
>  ;;; add a chunk
>  (add-dm (isa movie-fact ...))
>  ;;; do that again
>  (run-full-time 500)
>  (add-dm (isa movie-fact ...))
>  ;;; more as necessary
>  ...)
>
> Alternatively, you can schedule an event to occur at a particular time
> to add the chunk and then it will be added when the model gets to that
> point in time while it is running.  Here's a function which would
> schedule two events to add chunks at times 600 and 1100 explicitly:
>
> (defun add-movie-chunks-2 ()
>  (schedule-event 600 (lambda () (add-dm (isa movie-fact ...))))
>  (schedule-event 1100 (lambda () (add-dm (isa movie-fact ...)))))
>
> The other way to change the creation time of a chunk would be to
> use the sdp command to change the chunk's parameters and directly set
> the creation time.  The creation time is set with the :creation-time
> parameter.  Thus, this would change the creation time of the chunk
> named fact-1 to be at time 600 seconds:
>
> (sdp fact-1 :creation-time 600)
>
>
> Those ACT-R commands: run-full-time, add-dm, schedule-event, and sdp
> are described in the experiment discussion texts of the tutorial and
> in the reference manual which is in the docs directory of the
> software distribution.
>
> Hope that helps, and if you have other questions or problems feel
> free to ask,
>
> Dan
>
>
>



-- 
Vinay Chilukuri
Research Student,
Cognitive Science Lab,
International Institute of Information Technology, Hyderabad.




More information about the ACT-R-users mailing list