ACT-r: assigning a chunk as buffer slot value in a production rule












3















No sure if there's a lot of act-r programmer on here, but I can't seem to find a forum/group for that anywhere so...



I'm writing a program which as a chunk defined as (and the goal below):



(chunk-type position position-x position-y)

(chunk-type goal state last-pos)


In a production, I'm fetching the position of a thing on screen from the visual-location and then I would need to create a position chunk and put that in my goal's last-pos slot. Here's the production rule:



(P attend-projectile
=goal>
ISA goal
state nil
=visual-location>
screen-x =pos-x
screen-y =pos-y
?visual>
state free
==>
+visual>
cmd move-attention
screen-pos =visual-location
=goal>
state attended
last-pos (position pos-x screen-x pos-y screen-y)
)


Or something like that. I've tried various syntaxe. The problem boils down to:




  • I need to instantiate a chunk within a production (the position chunk) based on values recovered in the lhs,

  • then assign that chunk to a goal's slot.


Somehow I can't seem to find an equivalent example in the doc...



EDIT:



I do need this to be a chunk, not just storing the x & y position. Eventually this chunk will be extended to include an ID (which will be obtained from the visual location, e.g. a different letter will be assigned to each moving object). I will be tracking those object through time. Because I'm tracking through time, another chunk (trajectory) will contain 3 position chunks (with their IDs).



Other productions will expect to find this chunk (trajectory, once I have 3 position chunks) and make decisions based on that.



Obviously the above is a snippet of the code. But the conceptual difficulty I have is manipulating (instantiating/creating however it's called in actr nomentalture) chunks at runtime, essentially.










share|improve this question

























  • Looks like there is a mailing list for ACT-R. You could try asking there too.

    – jkiiski
    Nov 15 '18 at 9:46











  • Yeah I did write once on some other topics - I'm going to if I can't figure out or get an answer here. It's just that it's basically what seems to be a rather restrained group (or maybe just a guy I'm not sure) who support it from a technical perspective... so I'd rather only write if I have absolutely no choice. I'm guessing they could quickly end up spending a bunch of time answering what may be in the end silly questions...

    – LogicOnAbstractions
    Nov 15 '18 at 22:27


















3















No sure if there's a lot of act-r programmer on here, but I can't seem to find a forum/group for that anywhere so...



I'm writing a program which as a chunk defined as (and the goal below):



(chunk-type position position-x position-y)

(chunk-type goal state last-pos)


In a production, I'm fetching the position of a thing on screen from the visual-location and then I would need to create a position chunk and put that in my goal's last-pos slot. Here's the production rule:



(P attend-projectile
=goal>
ISA goal
state nil
=visual-location>
screen-x =pos-x
screen-y =pos-y
?visual>
state free
==>
+visual>
cmd move-attention
screen-pos =visual-location
=goal>
state attended
last-pos (position pos-x screen-x pos-y screen-y)
)


Or something like that. I've tried various syntaxe. The problem boils down to:




  • I need to instantiate a chunk within a production (the position chunk) based on values recovered in the lhs,

  • then assign that chunk to a goal's slot.


Somehow I can't seem to find an equivalent example in the doc...



EDIT:



I do need this to be a chunk, not just storing the x & y position. Eventually this chunk will be extended to include an ID (which will be obtained from the visual location, e.g. a different letter will be assigned to each moving object). I will be tracking those object through time. Because I'm tracking through time, another chunk (trajectory) will contain 3 position chunks (with their IDs).



Other productions will expect to find this chunk (trajectory, once I have 3 position chunks) and make decisions based on that.



Obviously the above is a snippet of the code. But the conceptual difficulty I have is manipulating (instantiating/creating however it's called in actr nomentalture) chunks at runtime, essentially.










share|improve this question

























  • Looks like there is a mailing list for ACT-R. You could try asking there too.

    – jkiiski
    Nov 15 '18 at 9:46











  • Yeah I did write once on some other topics - I'm going to if I can't figure out or get an answer here. It's just that it's basically what seems to be a rather restrained group (or maybe just a guy I'm not sure) who support it from a technical perspective... so I'd rather only write if I have absolutely no choice. I'm guessing they could quickly end up spending a bunch of time answering what may be in the end silly questions...

    – LogicOnAbstractions
    Nov 15 '18 at 22:27
















3












3








3








No sure if there's a lot of act-r programmer on here, but I can't seem to find a forum/group for that anywhere so...



I'm writing a program which as a chunk defined as (and the goal below):



(chunk-type position position-x position-y)

(chunk-type goal state last-pos)


In a production, I'm fetching the position of a thing on screen from the visual-location and then I would need to create a position chunk and put that in my goal's last-pos slot. Here's the production rule:



(P attend-projectile
=goal>
ISA goal
state nil
=visual-location>
screen-x =pos-x
screen-y =pos-y
?visual>
state free
==>
+visual>
cmd move-attention
screen-pos =visual-location
=goal>
state attended
last-pos (position pos-x screen-x pos-y screen-y)
)


Or something like that. I've tried various syntaxe. The problem boils down to:




  • I need to instantiate a chunk within a production (the position chunk) based on values recovered in the lhs,

  • then assign that chunk to a goal's slot.


Somehow I can't seem to find an equivalent example in the doc...



EDIT:



I do need this to be a chunk, not just storing the x & y position. Eventually this chunk will be extended to include an ID (which will be obtained from the visual location, e.g. a different letter will be assigned to each moving object). I will be tracking those object through time. Because I'm tracking through time, another chunk (trajectory) will contain 3 position chunks (with their IDs).



Other productions will expect to find this chunk (trajectory, once I have 3 position chunks) and make decisions based on that.



Obviously the above is a snippet of the code. But the conceptual difficulty I have is manipulating (instantiating/creating however it's called in actr nomentalture) chunks at runtime, essentially.










share|improve this question
















No sure if there's a lot of act-r programmer on here, but I can't seem to find a forum/group for that anywhere so...



I'm writing a program which as a chunk defined as (and the goal below):



(chunk-type position position-x position-y)

(chunk-type goal state last-pos)


In a production, I'm fetching the position of a thing on screen from the visual-location and then I would need to create a position chunk and put that in my goal's last-pos slot. Here's the production rule:



(P attend-projectile
=goal>
ISA goal
state nil
=visual-location>
screen-x =pos-x
screen-y =pos-y
?visual>
state free
==>
+visual>
cmd move-attention
screen-pos =visual-location
=goal>
state attended
last-pos (position pos-x screen-x pos-y screen-y)
)


Or something like that. I've tried various syntaxe. The problem boils down to:




  • I need to instantiate a chunk within a production (the position chunk) based on values recovered in the lhs,

  • then assign that chunk to a goal's slot.


Somehow I can't seem to find an equivalent example in the doc...



EDIT:



I do need this to be a chunk, not just storing the x & y position. Eventually this chunk will be extended to include an ID (which will be obtained from the visual location, e.g. a different letter will be assigned to each moving object). I will be tracking those object through time. Because I'm tracking through time, another chunk (trajectory) will contain 3 position chunks (with their IDs).



Other productions will expect to find this chunk (trajectory, once I have 3 position chunks) and make decisions based on that.



Obviously the above is a snippet of the code. But the conceptual difficulty I have is manipulating (instantiating/creating however it's called in actr nomentalture) chunks at runtime, essentially.







lisp common-lisp act-r






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 21 '18 at 20:04







LogicOnAbstractions

















asked Nov 13 '18 at 14:28









LogicOnAbstractionsLogicOnAbstractions

518




518













  • Looks like there is a mailing list for ACT-R. You could try asking there too.

    – jkiiski
    Nov 15 '18 at 9:46











  • Yeah I did write once on some other topics - I'm going to if I can't figure out or get an answer here. It's just that it's basically what seems to be a rather restrained group (or maybe just a guy I'm not sure) who support it from a technical perspective... so I'd rather only write if I have absolutely no choice. I'm guessing they could quickly end up spending a bunch of time answering what may be in the end silly questions...

    – LogicOnAbstractions
    Nov 15 '18 at 22:27





















  • Looks like there is a mailing list for ACT-R. You could try asking there too.

    – jkiiski
    Nov 15 '18 at 9:46











  • Yeah I did write once on some other topics - I'm going to if I can't figure out or get an answer here. It's just that it's basically what seems to be a rather restrained group (or maybe just a guy I'm not sure) who support it from a technical perspective... so I'd rather only write if I have absolutely no choice. I'm guessing they could quickly end up spending a bunch of time answering what may be in the end silly questions...

    – LogicOnAbstractions
    Nov 15 '18 at 22:27



















Looks like there is a mailing list for ACT-R. You could try asking there too.

– jkiiski
Nov 15 '18 at 9:46





Looks like there is a mailing list for ACT-R. You could try asking there too.

– jkiiski
Nov 15 '18 at 9:46













Yeah I did write once on some other topics - I'm going to if I can't figure out or get an answer here. It's just that it's basically what seems to be a rather restrained group (or maybe just a guy I'm not sure) who support it from a technical perspective... so I'd rather only write if I have absolutely no choice. I'm guessing they could quickly end up spending a bunch of time answering what may be in the end silly questions...

– LogicOnAbstractions
Nov 15 '18 at 22:27







Yeah I did write once on some other topics - I'm going to if I can't figure out or get an answer here. It's just that it's basically what seems to be a rather restrained group (or maybe just a guy I'm not sure) who support it from a technical perspective... so I'd rather only write if I have absolutely no choice. I'm guessing they could quickly end up spending a bunch of time answering what may be in the end silly questions...

– LogicOnAbstractions
Nov 15 '18 at 22:27














1 Answer
1






active

oldest

votes


















2














Why do you need another chunk? You have the chunk in the visual-location buffer with that information so why not use it:



(P attend-projectile
=goal>
ISA goal
state nil
=visual-location>
?visual>
state free
==>
+visual>
cmd move-attention
screen-pos =visual-location
=goal>
state attended
last-pos =visual-location
)


Of course, that doesn't answer the question that was asked.



To create a new chunk, the proper way to do so is through a request to the imaginal buffer which would then require a following production to harvest the result and place it into the slot of the goal buffer's chunk. Assuming that the slots you want in the new chunk are from the position chunk-type you show, and that the values are from the similarly named slots of the chunk in the visual-location buffer, this would create the new chunk in the imaginal buffer:



(P attend-projectile
=goal>
ISA goal
state nil
=visual-location>
screen-x =pos-x
screen-y =pos-y
?visual>
state free
==>
+visual>
cmd move-attention
screen-pos =visual-location
=goal>
state attended
+imaginal>
position-x =pos-x
position-y =pos-y
)





share|improve this answer
























  • No, I do need to instantiate a new chunk & store the chunk in the goal. I can already store position as-read from the visual location - the issue is to store an actual chunk, defined/instantiated at run time based on the infos. I don't really need to use the imaginal buffer either....

    – LogicOnAbstractions
    Nov 21 '18 at 2:27











  • It's also not really clear what you mean "To create a new chunk, the proper way to do so is through a request to the imaginal buffer which would then require a following production to harvest the result and place it into the slot of the goal buffer's chunk". That's already a production that's fired there. I want that production to instantiate the chunk & place it in the goal. If you tell me to store raw attributes in the imaginal buffer and to use a production to put it in the goal later without telling me why, you're just kicking the can down the road...

    – LogicOnAbstractions
    Nov 21 '18 at 2:30











  • The way to create a chunk at run time in a model is through a request to the imaginal buffer. That's not kicking the can down the road, it is how the architecture works. The important question is still really why do you need a new chunk?

    – user10675630
    Nov 21 '18 at 14:26











  • Well from the Reference manual (p251), the imaginal buffer works just like the goal buffer except it takes time to perform the operation. I'm not modeling reaction times, so I have little need for that. I agree I could put the infos in the imaginal. But you still don't answer the question - you still just store attributes you read from the visual-location, not a chunk in the imaginal. So I still don't now how to instantiate a chunk to put it anywhere are runtime (be it imaginal or goal).

    – LogicOnAbstractions
    Nov 21 '18 at 20:00













  • Yes, the imaginal buffer requests work like the goal buffer requests which is to create a new chunk. ACT-R reference manual (act-r.psy.cmu.edu/wordpress/wp-content/themes/ACT-R/actr7/…) page 252 "The request is used to create a new chunk which is placed into the imaginal buffer after :imaginal-delay seconds." That is exactly what you are asking how to do -- create a chunk.

    – user10675630
    Nov 22 '18 at 7:04











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53283236%2fact-r-assigning-a-chunk-as-buffer-slot-value-in-a-production-rule%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









2














Why do you need another chunk? You have the chunk in the visual-location buffer with that information so why not use it:



(P attend-projectile
=goal>
ISA goal
state nil
=visual-location>
?visual>
state free
==>
+visual>
cmd move-attention
screen-pos =visual-location
=goal>
state attended
last-pos =visual-location
)


Of course, that doesn't answer the question that was asked.



To create a new chunk, the proper way to do so is through a request to the imaginal buffer which would then require a following production to harvest the result and place it into the slot of the goal buffer's chunk. Assuming that the slots you want in the new chunk are from the position chunk-type you show, and that the values are from the similarly named slots of the chunk in the visual-location buffer, this would create the new chunk in the imaginal buffer:



(P attend-projectile
=goal>
ISA goal
state nil
=visual-location>
screen-x =pos-x
screen-y =pos-y
?visual>
state free
==>
+visual>
cmd move-attention
screen-pos =visual-location
=goal>
state attended
+imaginal>
position-x =pos-x
position-y =pos-y
)





share|improve this answer
























  • No, I do need to instantiate a new chunk & store the chunk in the goal. I can already store position as-read from the visual location - the issue is to store an actual chunk, defined/instantiated at run time based on the infos. I don't really need to use the imaginal buffer either....

    – LogicOnAbstractions
    Nov 21 '18 at 2:27











  • It's also not really clear what you mean "To create a new chunk, the proper way to do so is through a request to the imaginal buffer which would then require a following production to harvest the result and place it into the slot of the goal buffer's chunk". That's already a production that's fired there. I want that production to instantiate the chunk & place it in the goal. If you tell me to store raw attributes in the imaginal buffer and to use a production to put it in the goal later without telling me why, you're just kicking the can down the road...

    – LogicOnAbstractions
    Nov 21 '18 at 2:30











  • The way to create a chunk at run time in a model is through a request to the imaginal buffer. That's not kicking the can down the road, it is how the architecture works. The important question is still really why do you need a new chunk?

    – user10675630
    Nov 21 '18 at 14:26











  • Well from the Reference manual (p251), the imaginal buffer works just like the goal buffer except it takes time to perform the operation. I'm not modeling reaction times, so I have little need for that. I agree I could put the infos in the imaginal. But you still don't answer the question - you still just store attributes you read from the visual-location, not a chunk in the imaginal. So I still don't now how to instantiate a chunk to put it anywhere are runtime (be it imaginal or goal).

    – LogicOnAbstractions
    Nov 21 '18 at 20:00













  • Yes, the imaginal buffer requests work like the goal buffer requests which is to create a new chunk. ACT-R reference manual (act-r.psy.cmu.edu/wordpress/wp-content/themes/ACT-R/actr7/…) page 252 "The request is used to create a new chunk which is placed into the imaginal buffer after :imaginal-delay seconds." That is exactly what you are asking how to do -- create a chunk.

    – user10675630
    Nov 22 '18 at 7:04
















2














Why do you need another chunk? You have the chunk in the visual-location buffer with that information so why not use it:



(P attend-projectile
=goal>
ISA goal
state nil
=visual-location>
?visual>
state free
==>
+visual>
cmd move-attention
screen-pos =visual-location
=goal>
state attended
last-pos =visual-location
)


Of course, that doesn't answer the question that was asked.



To create a new chunk, the proper way to do so is through a request to the imaginal buffer which would then require a following production to harvest the result and place it into the slot of the goal buffer's chunk. Assuming that the slots you want in the new chunk are from the position chunk-type you show, and that the values are from the similarly named slots of the chunk in the visual-location buffer, this would create the new chunk in the imaginal buffer:



(P attend-projectile
=goal>
ISA goal
state nil
=visual-location>
screen-x =pos-x
screen-y =pos-y
?visual>
state free
==>
+visual>
cmd move-attention
screen-pos =visual-location
=goal>
state attended
+imaginal>
position-x =pos-x
position-y =pos-y
)





share|improve this answer
























  • No, I do need to instantiate a new chunk & store the chunk in the goal. I can already store position as-read from the visual location - the issue is to store an actual chunk, defined/instantiated at run time based on the infos. I don't really need to use the imaginal buffer either....

    – LogicOnAbstractions
    Nov 21 '18 at 2:27











  • It's also not really clear what you mean "To create a new chunk, the proper way to do so is through a request to the imaginal buffer which would then require a following production to harvest the result and place it into the slot of the goal buffer's chunk". That's already a production that's fired there. I want that production to instantiate the chunk & place it in the goal. If you tell me to store raw attributes in the imaginal buffer and to use a production to put it in the goal later without telling me why, you're just kicking the can down the road...

    – LogicOnAbstractions
    Nov 21 '18 at 2:30











  • The way to create a chunk at run time in a model is through a request to the imaginal buffer. That's not kicking the can down the road, it is how the architecture works. The important question is still really why do you need a new chunk?

    – user10675630
    Nov 21 '18 at 14:26











  • Well from the Reference manual (p251), the imaginal buffer works just like the goal buffer except it takes time to perform the operation. I'm not modeling reaction times, so I have little need for that. I agree I could put the infos in the imaginal. But you still don't answer the question - you still just store attributes you read from the visual-location, not a chunk in the imaginal. So I still don't now how to instantiate a chunk to put it anywhere are runtime (be it imaginal or goal).

    – LogicOnAbstractions
    Nov 21 '18 at 20:00













  • Yes, the imaginal buffer requests work like the goal buffer requests which is to create a new chunk. ACT-R reference manual (act-r.psy.cmu.edu/wordpress/wp-content/themes/ACT-R/actr7/…) page 252 "The request is used to create a new chunk which is placed into the imaginal buffer after :imaginal-delay seconds." That is exactly what you are asking how to do -- create a chunk.

    – user10675630
    Nov 22 '18 at 7:04














2












2








2







Why do you need another chunk? You have the chunk in the visual-location buffer with that information so why not use it:



(P attend-projectile
=goal>
ISA goal
state nil
=visual-location>
?visual>
state free
==>
+visual>
cmd move-attention
screen-pos =visual-location
=goal>
state attended
last-pos =visual-location
)


Of course, that doesn't answer the question that was asked.



To create a new chunk, the proper way to do so is through a request to the imaginal buffer which would then require a following production to harvest the result and place it into the slot of the goal buffer's chunk. Assuming that the slots you want in the new chunk are from the position chunk-type you show, and that the values are from the similarly named slots of the chunk in the visual-location buffer, this would create the new chunk in the imaginal buffer:



(P attend-projectile
=goal>
ISA goal
state nil
=visual-location>
screen-x =pos-x
screen-y =pos-y
?visual>
state free
==>
+visual>
cmd move-attention
screen-pos =visual-location
=goal>
state attended
+imaginal>
position-x =pos-x
position-y =pos-y
)





share|improve this answer













Why do you need another chunk? You have the chunk in the visual-location buffer with that information so why not use it:



(P attend-projectile
=goal>
ISA goal
state nil
=visual-location>
?visual>
state free
==>
+visual>
cmd move-attention
screen-pos =visual-location
=goal>
state attended
last-pos =visual-location
)


Of course, that doesn't answer the question that was asked.



To create a new chunk, the proper way to do so is through a request to the imaginal buffer which would then require a following production to harvest the result and place it into the slot of the goal buffer's chunk. Assuming that the slots you want in the new chunk are from the position chunk-type you show, and that the values are from the similarly named slots of the chunk in the visual-location buffer, this would create the new chunk in the imaginal buffer:



(P attend-projectile
=goal>
ISA goal
state nil
=visual-location>
screen-x =pos-x
screen-y =pos-y
?visual>
state free
==>
+visual>
cmd move-attention
screen-pos =visual-location
=goal>
state attended
+imaginal>
position-x =pos-x
position-y =pos-y
)






share|improve this answer












share|improve this answer



share|improve this answer










answered Nov 19 '18 at 15:40









user10675630user10675630

362




362













  • No, I do need to instantiate a new chunk & store the chunk in the goal. I can already store position as-read from the visual location - the issue is to store an actual chunk, defined/instantiated at run time based on the infos. I don't really need to use the imaginal buffer either....

    – LogicOnAbstractions
    Nov 21 '18 at 2:27











  • It's also not really clear what you mean "To create a new chunk, the proper way to do so is through a request to the imaginal buffer which would then require a following production to harvest the result and place it into the slot of the goal buffer's chunk". That's already a production that's fired there. I want that production to instantiate the chunk & place it in the goal. If you tell me to store raw attributes in the imaginal buffer and to use a production to put it in the goal later without telling me why, you're just kicking the can down the road...

    – LogicOnAbstractions
    Nov 21 '18 at 2:30











  • The way to create a chunk at run time in a model is through a request to the imaginal buffer. That's not kicking the can down the road, it is how the architecture works. The important question is still really why do you need a new chunk?

    – user10675630
    Nov 21 '18 at 14:26











  • Well from the Reference manual (p251), the imaginal buffer works just like the goal buffer except it takes time to perform the operation. I'm not modeling reaction times, so I have little need for that. I agree I could put the infos in the imaginal. But you still don't answer the question - you still just store attributes you read from the visual-location, not a chunk in the imaginal. So I still don't now how to instantiate a chunk to put it anywhere are runtime (be it imaginal or goal).

    – LogicOnAbstractions
    Nov 21 '18 at 20:00













  • Yes, the imaginal buffer requests work like the goal buffer requests which is to create a new chunk. ACT-R reference manual (act-r.psy.cmu.edu/wordpress/wp-content/themes/ACT-R/actr7/…) page 252 "The request is used to create a new chunk which is placed into the imaginal buffer after :imaginal-delay seconds." That is exactly what you are asking how to do -- create a chunk.

    – user10675630
    Nov 22 '18 at 7:04



















  • No, I do need to instantiate a new chunk & store the chunk in the goal. I can already store position as-read from the visual location - the issue is to store an actual chunk, defined/instantiated at run time based on the infos. I don't really need to use the imaginal buffer either....

    – LogicOnAbstractions
    Nov 21 '18 at 2:27











  • It's also not really clear what you mean "To create a new chunk, the proper way to do so is through a request to the imaginal buffer which would then require a following production to harvest the result and place it into the slot of the goal buffer's chunk". That's already a production that's fired there. I want that production to instantiate the chunk & place it in the goal. If you tell me to store raw attributes in the imaginal buffer and to use a production to put it in the goal later without telling me why, you're just kicking the can down the road...

    – LogicOnAbstractions
    Nov 21 '18 at 2:30











  • The way to create a chunk at run time in a model is through a request to the imaginal buffer. That's not kicking the can down the road, it is how the architecture works. The important question is still really why do you need a new chunk?

    – user10675630
    Nov 21 '18 at 14:26











  • Well from the Reference manual (p251), the imaginal buffer works just like the goal buffer except it takes time to perform the operation. I'm not modeling reaction times, so I have little need for that. I agree I could put the infos in the imaginal. But you still don't answer the question - you still just store attributes you read from the visual-location, not a chunk in the imaginal. So I still don't now how to instantiate a chunk to put it anywhere are runtime (be it imaginal or goal).

    – LogicOnAbstractions
    Nov 21 '18 at 20:00













  • Yes, the imaginal buffer requests work like the goal buffer requests which is to create a new chunk. ACT-R reference manual (act-r.psy.cmu.edu/wordpress/wp-content/themes/ACT-R/actr7/…) page 252 "The request is used to create a new chunk which is placed into the imaginal buffer after :imaginal-delay seconds." That is exactly what you are asking how to do -- create a chunk.

    – user10675630
    Nov 22 '18 at 7:04

















No, I do need to instantiate a new chunk & store the chunk in the goal. I can already store position as-read from the visual location - the issue is to store an actual chunk, defined/instantiated at run time based on the infos. I don't really need to use the imaginal buffer either....

– LogicOnAbstractions
Nov 21 '18 at 2:27





No, I do need to instantiate a new chunk & store the chunk in the goal. I can already store position as-read from the visual location - the issue is to store an actual chunk, defined/instantiated at run time based on the infos. I don't really need to use the imaginal buffer either....

– LogicOnAbstractions
Nov 21 '18 at 2:27













It's also not really clear what you mean "To create a new chunk, the proper way to do so is through a request to the imaginal buffer which would then require a following production to harvest the result and place it into the slot of the goal buffer's chunk". That's already a production that's fired there. I want that production to instantiate the chunk & place it in the goal. If you tell me to store raw attributes in the imaginal buffer and to use a production to put it in the goal later without telling me why, you're just kicking the can down the road...

– LogicOnAbstractions
Nov 21 '18 at 2:30





It's also not really clear what you mean "To create a new chunk, the proper way to do so is through a request to the imaginal buffer which would then require a following production to harvest the result and place it into the slot of the goal buffer's chunk". That's already a production that's fired there. I want that production to instantiate the chunk & place it in the goal. If you tell me to store raw attributes in the imaginal buffer and to use a production to put it in the goal later without telling me why, you're just kicking the can down the road...

– LogicOnAbstractions
Nov 21 '18 at 2:30













The way to create a chunk at run time in a model is through a request to the imaginal buffer. That's not kicking the can down the road, it is how the architecture works. The important question is still really why do you need a new chunk?

– user10675630
Nov 21 '18 at 14:26





The way to create a chunk at run time in a model is through a request to the imaginal buffer. That's not kicking the can down the road, it is how the architecture works. The important question is still really why do you need a new chunk?

– user10675630
Nov 21 '18 at 14:26













Well from the Reference manual (p251), the imaginal buffer works just like the goal buffer except it takes time to perform the operation. I'm not modeling reaction times, so I have little need for that. I agree I could put the infos in the imaginal. But you still don't answer the question - you still just store attributes you read from the visual-location, not a chunk in the imaginal. So I still don't now how to instantiate a chunk to put it anywhere are runtime (be it imaginal or goal).

– LogicOnAbstractions
Nov 21 '18 at 20:00







Well from the Reference manual (p251), the imaginal buffer works just like the goal buffer except it takes time to perform the operation. I'm not modeling reaction times, so I have little need for that. I agree I could put the infos in the imaginal. But you still don't answer the question - you still just store attributes you read from the visual-location, not a chunk in the imaginal. So I still don't now how to instantiate a chunk to put it anywhere are runtime (be it imaginal or goal).

– LogicOnAbstractions
Nov 21 '18 at 20:00















Yes, the imaginal buffer requests work like the goal buffer requests which is to create a new chunk. ACT-R reference manual (act-r.psy.cmu.edu/wordpress/wp-content/themes/ACT-R/actr7/…) page 252 "The request is used to create a new chunk which is placed into the imaginal buffer after :imaginal-delay seconds." That is exactly what you are asking how to do -- create a chunk.

– user10675630
Nov 22 '18 at 7:04





Yes, the imaginal buffer requests work like the goal buffer requests which is to create a new chunk. ACT-R reference manual (act-r.psy.cmu.edu/wordpress/wp-content/themes/ACT-R/actr7/…) page 252 "The request is used to create a new chunk which is placed into the imaginal buffer after :imaginal-delay seconds." That is exactly what you are asking how to do -- create a chunk.

– user10675630
Nov 22 '18 at 7:04


















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53283236%2fact-r-assigning-a-chunk-as-buffer-slot-value-in-a-production-rule%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Full-time equivalent

Bicuculline

さくらももこ