testing subset of items


Author
Message
lir1995
lir1995
Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)
Group: Forum Members
Posts: 40, Visits: 190
Hi, 

Working on an experiment where I want to test participants' memory for only items seen during the experiment. Let's say I have a list of words that is 10 items long. However, participants only view 5 of them during the experiment. Is there a way to indicate in my memory test trial/block to only show the 5 words seen during the experiment? These 5 words would be unique for each participant. 

Thanks!
Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 12K, Visits: 98K
lir1995 - 3/11/2020
Hi, 

Working on an experiment where I want to test participants' memory for only items seen during the experiment. Let's say I have a list of words that is 10 items long. However, participants only view 5 of them during the experiment. Is there a way to indicate in my memory test trial/block to only show the 5 words seen during the experiment? These 5 words would be unique for each participant. 

Thanks!

You can write the shown words to an empty <item> element at runtime and then use that in the recall part as needed.

<expt>
/ blocks = [1=show5; 2=recall]
</expt>

<block show5>
/ trials = [1-5 = show]
</block>

<block recall>
/ preinstructions = (recallpage)
</block>

<page recallpage>
^You were shown the following 5 words:
<%item.shownwords.item(1)%>, <%item.shownwords.item(2)%>, <%item.shownwords.item(3)%>, <%item.shownwords.item(4)%>, and <%item.shownwords.item(5)%>.
</page>


<trial show>
/ ontrialend = [
    item.shownwords.appenditem(text.word.currentitem);
]
/ stimulusframes = [1=word]
/ validresponse = (0)
/ trialduration = 2500
/ posttrialpause = 500
</trial>

<text word>
/ items = words
</text>

<item words>
/ 1 = "Apple"
/ 2 = "Bird"
/ 3 = "Cloth"
/ 4 = "Dam"
/ 5 = "East"
/ 6 = "Frost"
/ 7 = "Gain"
/ 8 = "Hope"
/ 9 = "Island"
</item>

<item shownwords>
</item>



lir1995
lir1995
Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)
Group: Forum Members
Posts: 40, Visits: 190
Dave - 3/11/2020
lir1995 - 3/11/2020
Hi, 

Working on an experiment where I want to test participants' memory for only items seen during the experiment. Let's say I have a list of words that is 10 items long. However, participants only view 5 of them during the experiment. Is there a way to indicate in my memory test trial/block to only show the 5 words seen during the experiment? These 5 words would be unique for each participant. 

Thanks!

You can write the shown words to an empty <item> element at runtime and then use that in the recall part as needed.

<expt>
/ blocks = [1=show5; 2=recall]
</expt>

<block show5>
/ trials = [1-5 = show]
</block>

<block recall>
/ preinstructions = (recallpage)
</block>

<page recallpage>
^You were shown the following 5 words:
<%item.shownwords.item(1)%>, <%item.shownwords.item(2)%>, <%item.shownwords.item(3)%>, <%item.shownwords.item(4)%>, and <%item.shownwords.item(5)%>.
</page>


<trial show>
/ ontrialend = [
    item.shownwords.appenditem(text.word.currentitem);
]
/ stimulusframes = [1=word]
/ validresponse = (0)
/ trialduration = 2500
/ posttrialpause = 500
</trial>

<text word>
/ items = words
</text>

<item words>
/ 1 = "Apple"
/ 2 = "Bird"
/ 3 = "Cloth"
/ 4 = "Dam"
/ 5 = "East"
/ 6 = "Frost"
/ 7 = "Gain"
/ 8 = "Hope"
/ 9 = "Island"
</item>

<item shownwords>
</item>



Thank you so much! I understand how the code you sent is working, however I am struggling to implement it in a trial/block fashion (rather than putting the "shown words" in the instructions). For example, if my memory trial looked like:

<trial memorytask>
/ stimulustimes = [0 =scene1_1, scene2_2, word]
/ validresponse = ("m", "n")
/ posttrialpause = 500
/ timeout = 5000
/ beginresponsetime = 0
</trial>

<block memory>
/ trials = [1-5 = memorytask]
</block>

The task is for participants to match the words they have seen in the experiment (from a large word pool) to the picture (scene 1 or 2) it was paired with. I am having difficulty modifying the code to only show the shown words, as opposed to all of them. 

Thanks again!!
Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 12K, Visits: 98K
lir1995 - 3/12/2020
Dave - 3/11/2020
lir1995 - 3/11/2020
Hi, 

Working on an experiment where I want to test participants' memory for only items seen during the experiment. Let's say I have a list of words that is 10 items long. However, participants only view 5 of them during the experiment. Is there a way to indicate in my memory test trial/block to only show the 5 words seen during the experiment? These 5 words would be unique for each participant. 

Thanks!

You can write the shown words to an empty <item> element at runtime and then use that in the recall part as needed.

<expt>
/ blocks = [1=show5; 2=recall]
</expt>

<block show5>
/ trials = [1-5 = show]
</block>

<block recall>
/ preinstructions = (recallpage)
</block>

<page recallpage>
^You were shown the following 5 words:
<%item.shownwords.item(1)%>, <%item.shownwords.item(2)%>, <%item.shownwords.item(3)%>, <%item.shownwords.item(4)%>, and <%item.shownwords.item(5)%>.
</page>


<trial show>
/ ontrialend = [
    item.shownwords.appenditem(text.word.currentitem);
]
/ stimulusframes = [1=word]
/ validresponse = (0)
/ trialduration = 2500
/ posttrialpause = 500
</trial>

<text word>
/ items = words
</text>

<item words>
/ 1 = "Apple"
/ 2 = "Bird"
/ 3 = "Cloth"
/ 4 = "Dam"
/ 5 = "East"
/ 6 = "Frost"
/ 7 = "Gain"
/ 8 = "Hope"
/ 9 = "Island"
</item>

<item shownwords>
</item>



Thank you so much! I understand how the code you sent is working, however I am struggling to implement it in a trial/block fashion (rather than putting the "shown words" in the instructions). For example, if my memory trial looked like:

<trial memorytask>
/ stimulustimes = [0 =scene1_1, scene2_2, word]
/ validresponse = ("m", "n")
/ posttrialpause = 500
/ timeout = 5000
/ beginresponsetime = 0
</trial>

<block memory>
/ trials = [1-5 = memorytask]
</block>

The task is for participants to match the words they have seen in the experiment (from a large word pool) to the picture (scene 1 or 2) it was paired with. I am having difficulty modifying the code to only show the shown words, as opposed to all of them. 

Thanks again!!

The shown words are stored in an item element. You use this <item> element just like any other. I.e. set up a <text> element referencing that <item> element and have a <trial> display that.

<text shownword>
/ items = shownwords
</text>

<item shownwords>
</item>

<trial memorytask>
/ stimulustimes = [0 =scene1_1, scene2_2, shownword]
/ validresponse = ("m", "n")
/ posttrialpause = 500
/ timeout = 5000
/ beginresponsetime = 0
</trial>

<block memory>
/ trials = [1-5 = memorytask]
</block>
lir1995
lir1995
Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)
Group: Forum Members
Posts: 40, Visits: 190
Dave - 3/12/2020
lir1995 - 3/12/2020
Dave - 3/11/2020
lir1995 - 3/11/2020
Hi, 

Working on an experiment where I want to test participants' memory for only items seen during the experiment. Let's say I have a list of words that is 10 items long. However, participants only view 5 of them during the experiment. Is there a way to indicate in my memory test trial/block to only show the 5 words seen during the experiment? These 5 words would be unique for each participant. 

Thanks!

You can write the shown words to an empty <item> element at runtime and then use that in the recall part as needed.

<expt>
/ blocks = [1=show5; 2=recall]
</expt>

<block show5>
/ trials = [1-5 = show]
</block>

<block recall>
/ preinstructions = (recallpage)
</block>

<page recallpage>
^You were shown the following 5 words:
<%item.shownwords.item(1)%>, <%item.shownwords.item(2)%>, <%item.shownwords.item(3)%>, <%item.shownwords.item(4)%>, and <%item.shownwords.item(5)%>.
</page>


<trial show>
/ ontrialend = [
    item.shownwords.appenditem(text.word.currentitem);
]
/ stimulusframes = [1=word]
/ validresponse = (0)
/ trialduration = 2500
/ posttrialpause = 500
</trial>

<text word>
/ items = words
</text>

<item words>
/ 1 = "Apple"
/ 2 = "Bird"
/ 3 = "Cloth"
/ 4 = "Dam"
/ 5 = "East"
/ 6 = "Frost"
/ 7 = "Gain"
/ 8 = "Hope"
/ 9 = "Island"
</item>

<item shownwords>
</item>



Thank you so much! I understand how the code you sent is working, however I am struggling to implement it in a trial/block fashion (rather than putting the "shown words" in the instructions). For example, if my memory trial looked like:

<trial memorytask>
/ stimulustimes = [0 =scene1_1, scene2_2, word]
/ validresponse = ("m", "n")
/ posttrialpause = 500
/ timeout = 5000
/ beginresponsetime = 0
</trial>

<block memory>
/ trials = [1-5 = memorytask]
</block>

The task is for participants to match the words they have seen in the experiment (from a large word pool) to the picture (scene 1 or 2) it was paired with. I am having difficulty modifying the code to only show the shown words, as opposed to all of them. 

Thanks again!!

The shown words are stored in an item element. You use this <item> element just like any other. I.e. set up a <text> element referencing that <item> element and have a <trial> display that.

<text shownword>
/ items = shownwords
</text>

<item shownwords>
</item>

<trial memorytask>
/ stimulustimes = [0 =scene1_1, scene2_2, shownword]
/ validresponse = ("m", "n")
/ posttrialpause = 500
/ timeout = 5000
/ beginresponsetime = 0
</trial>

<block memory>
/ trials = [1-5 = memorytask]
</block>

Ah, I forgot to add the text element. Thank you!
lir1995
lir1995
Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)
Group: Forum Members
Posts: 40, Visits: 190
lir1995 - 3/12/2020
Dave - 3/12/2020
lir1995 - 3/12/2020
Dave - 3/11/2020
lir1995 - 3/11/2020
Hi, 

Working on an experiment where I want to test participants' memory for only items seen during the experiment. Let's say I have a list of words that is 10 items long. However, participants only view 5 of them during the experiment. Is there a way to indicate in my memory test trial/block to only show the 5 words seen during the experiment? These 5 words would be unique for each participant. 

Thanks!

You can write the shown words to an empty <item> element at runtime and then use that in the recall part as needed.

<expt>
/ blocks = [1=show5; 2=recall]
</expt>

<block show5>
/ trials = [1-5 = show]
</block>

<block recall>
/ preinstructions = (recallpage)
</block>

<page recallpage>
^You were shown the following 5 words:
<%item.shownwords.item(1)%>, <%item.shownwords.item(2)%>, <%item.shownwords.item(3)%>, <%item.shownwords.item(4)%>, and <%item.shownwords.item(5)%>.
</page>


<trial show>
/ ontrialend = [
    item.shownwords.appenditem(text.word.currentitem);
]
/ stimulusframes = [1=word]
/ validresponse = (0)
/ trialduration = 2500
/ posttrialpause = 500
</trial>

<text word>
/ items = words
</text>

<item words>
/ 1 = "Apple"
/ 2 = "Bird"
/ 3 = "Cloth"
/ 4 = "Dam"
/ 5 = "East"
/ 6 = "Frost"
/ 7 = "Gain"
/ 8 = "Hope"
/ 9 = "Island"
</item>

<item shownwords>
</item>



Thank you so much! I understand how the code you sent is working, however I am struggling to implement it in a trial/block fashion (rather than putting the "shown words" in the instructions). For example, if my memory trial looked like:

<trial memorytask>
/ stimulustimes = [0 =scene1_1, scene2_2, word]
/ validresponse = ("m", "n")
/ posttrialpause = 500
/ timeout = 5000
/ beginresponsetime = 0
</trial>

<block memory>
/ trials = [1-5 = memorytask]
</block>

The task is for participants to match the words they have seen in the experiment (from a large word pool) to the picture (scene 1 or 2) it was paired with. I am having difficulty modifying the code to only show the shown words, as opposed to all of them. 

Thanks again!!

The shown words are stored in an item element. You use this <item> element just like any other. I.e. set up a <text> element referencing that <item> element and have a <trial> display that.

<text shownword>
/ items = shownwords
</text>

<item shownwords>
</item>

<trial memorytask>
/ stimulustimes = [0 =scene1_1, scene2_2, shownword]
/ validresponse = ("m", "n")
/ posttrialpause = 500
/ timeout = 5000
/ beginresponsetime = 0
</trial>

<block memory>
/ trials = [1-5 = memorytask]
</block>

Ah, I forgot to add the text element. Thank you!

To follow-up: during the first part of the experiment, a word is paired with either a park or a market scene. During the memory test I am testing whether they remember that association. Is there a way in inquisit to mark whether they are correct or not based on the actual pairing during the first part? For example, if the word was paired with park and they chose park in the test, that would be marked correct. Right now, it marks any response as correct and I would have to manually go back and check the original pairing. 

Here is some code below (excluding some naming of items). 


<text shownword>
/ items = shownwords
</text>

<item shownwords>
</item>

<trial scene1>
/ ontrialend = [
  item.shownwords.appenditem(text.noun.currentitem);
]
/ stimulustimes = [0 =park, word; 3000 = blank]
/ posttrialpause = 1000
/ trialduration = 4000
/ responseinterrupt = frames
/ beginresponsetime = 0
</trial>

<trial scene2>
/ ontrialend = [
  item.shownwords.appenditem(text.noun.currentitem);
]
/ stimulustimes = [0=market, word; 3000 = blank]
/ posttrialpause = 1000
/ trialduration = 4000
/ responseinterrupt = frames
/ beginresponsetime = 0
</trial>


<trial memorytask>
/ stimulustimes = [0 =park, market, shownword]
/ validresponse = ("m", "n")
/ posttrialpause = 500
/ timeout = 5000
/ beginresponsetime = 0
</trial>

<block memory>
/ trials = [1-5 = memorytask]
</block>
Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 12K, Visits: 98K
lir1995 - 3/18/2020
lir1995 - 3/12/2020
Dave - 3/12/2020
lir1995 - 3/12/2020
Dave - 3/11/2020
lir1995 - 3/11/2020
Hi, 

Working on an experiment where I want to test participants' memory for only items seen during the experiment. Let's say I have a list of words that is 10 items long. However, participants only view 5 of them during the experiment. Is there a way to indicate in my memory test trial/block to only show the 5 words seen during the experiment? These 5 words would be unique for each participant. 

Thanks!

You can write the shown words to an empty <item> element at runtime and then use that in the recall part as needed.

<expt>
/ blocks = [1=show5; 2=recall]
</expt>

<block show5>
/ trials = [1-5 = show]
</block>

<block recall>
/ preinstructions = (recallpage)
</block>

<page recallpage>
^You were shown the following 5 words:
<%item.shownwords.item(1)%>, <%item.shownwords.item(2)%>, <%item.shownwords.item(3)%>, <%item.shownwords.item(4)%>, and <%item.shownwords.item(5)%>.
</page>


<trial show>
/ ontrialend = [
    item.shownwords.appenditem(text.word.currentitem);
]
/ stimulusframes = [1=word]
/ validresponse = (0)
/ trialduration = 2500
/ posttrialpause = 500
</trial>

<text word>
/ items = words
</text>

<item words>
/ 1 = "Apple"
/ 2 = "Bird"
/ 3 = "Cloth"
/ 4 = "Dam"
/ 5 = "East"
/ 6 = "Frost"
/ 7 = "Gain"
/ 8 = "Hope"
/ 9 = "Island"
</item>

<item shownwords>
</item>



Thank you so much! I understand how the code you sent is working, however I am struggling to implement it in a trial/block fashion (rather than putting the "shown words" in the instructions). For example, if my memory trial looked like:

<trial memorytask>
/ stimulustimes = [0 =scene1_1, scene2_2, word]
/ validresponse = ("m", "n")
/ posttrialpause = 500
/ timeout = 5000
/ beginresponsetime = 0
</trial>

<block memory>
/ trials = [1-5 = memorytask]
</block>

The task is for participants to match the words they have seen in the experiment (from a large word pool) to the picture (scene 1 or 2) it was paired with. I am having difficulty modifying the code to only show the shown words, as opposed to all of them. 

Thanks again!!

The shown words are stored in an item element. You use this <item> element just like any other. I.e. set up a <text> element referencing that <item> element and have a <trial> display that.

<text shownword>
/ items = shownwords
</text>

<item shownwords>
</item>

<trial memorytask>
/ stimulustimes = [0 =scene1_1, scene2_2, shownword]
/ validresponse = ("m", "n")
/ posttrialpause = 500
/ timeout = 5000
/ beginresponsetime = 0
</trial>

<block memory>
/ trials = [1-5 = memorytask]
</block>

Ah, I forgot to add the text element. Thank you!

To follow-up: during the first part of the experiment, a word is paired with either a park or a market scene. During the memory test I am testing whether they remember that association. Is there a way in inquisit to mark whether they are correct or not based on the actual pairing during the first part? For example, if the word was paired with park and they chose park in the test, that would be marked correct. Right now, it marks any response as correct and I would have to manually go back and check the original pairing. 

Here is some code below (excluding some naming of items). 


<text shownword>
/ items = shownwords
</text>

<item shownwords>
</item>

<trial scene1>
/ ontrialend = [
  item.shownwords.appenditem(text.noun.currentitem);
]
/ stimulustimes = [0 =park, word; 3000 = blank]
/ posttrialpause = 1000
/ trialduration = 4000
/ responseinterrupt = frames
/ beginresponsetime = 0
</trial>

<trial scene2>
/ ontrialend = [
  item.shownwords.appenditem(text.noun.currentitem);
]
/ stimulustimes = [0=market, word; 3000 = blank]
/ posttrialpause = 1000
/ trialduration = 4000
/ responseinterrupt = frames
/ beginresponsetime = 0
</trial>


<trial memorytask>
/ stimulustimes = [0 =park, market, shownword]
/ validresponse = ("m", "n")
/ posttrialpause = 500
/ timeout = 5000
/ beginresponsetime = 0
</trial>

<block memory>
/ trials = [1-5 = memorytask]
</block>

It's possible in much the same way you already store the shown words. Simply store the paired scene type in the same way. You can then evaluate the correctness in the memory part by pulling up the paired scene type in /iscorrectresponse. I would give you a running example, but the code snippet you provided is not useful or complete enough for me to do so. It's not even clear which response --  "m" or "n" -- maps to park and market respectively
lir1995
lir1995
Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)
Group: Forum Members
Posts: 40, Visits: 190
Dave - 3/18/2020
lir1995 - 3/18/2020
lir1995 - 3/12/2020
Dave - 3/12/2020
lir1995 - 3/12/2020
Dave - 3/11/2020
lir1995 - 3/11/2020
Hi, 

Working on an experiment where I want to test participants' memory for only items seen during the experiment. Let's say I have a list of words that is 10 items long. However, participants only view 5 of them during the experiment. Is there a way to indicate in my memory test trial/block to only show the 5 words seen during the experiment? These 5 words would be unique for each participant. 

Thanks!

You can write the shown words to an empty <item> element at runtime and then use that in the recall part as needed.

<expt>
/ blocks = [1=show5; 2=recall]
</expt>

<block show5>
/ trials = [1-5 = show]
</block>

<block recall>
/ preinstructions = (recallpage)
</block>

<page recallpage>
^You were shown the following 5 words:
<%item.shownwords.item(1)%>, <%item.shownwords.item(2)%>, <%item.shownwords.item(3)%>, <%item.shownwords.item(4)%>, and <%item.shownwords.item(5)%>.
</page>


<trial show>
/ ontrialend = [
    item.shownwords.appenditem(text.word.currentitem);
]
/ stimulusframes = [1=word]
/ validresponse = (0)
/ trialduration = 2500
/ posttrialpause = 500
</trial>

<text word>
/ items = words
</text>

<item words>
/ 1 = "Apple"
/ 2 = "Bird"
/ 3 = "Cloth"
/ 4 = "Dam"
/ 5 = "East"
/ 6 = "Frost"
/ 7 = "Gain"
/ 8 = "Hope"
/ 9 = "Island"
</item>

<item shownwords>
</item>



Thank you so much! I understand how the code you sent is working, however I am struggling to implement it in a trial/block fashion (rather than putting the "shown words" in the instructions). For example, if my memory trial looked like:

<trial memorytask>
/ stimulustimes = [0 =scene1_1, scene2_2, word]
/ validresponse = ("m", "n")
/ posttrialpause = 500
/ timeout = 5000
/ beginresponsetime = 0
</trial>

<block memory>
/ trials = [1-5 = memorytask]
</block>

The task is for participants to match the words they have seen in the experiment (from a large word pool) to the picture (scene 1 or 2) it was paired with. I am having difficulty modifying the code to only show the shown words, as opposed to all of them. 

Thanks again!!

The shown words are stored in an item element. You use this <item> element just like any other. I.e. set up a <text> element referencing that <item> element and have a <trial> display that.

<text shownword>
/ items = shownwords
</text>

<item shownwords>
</item>

<trial memorytask>
/ stimulustimes = [0 =scene1_1, scene2_2, shownword]
/ validresponse = ("m", "n")
/ posttrialpause = 500
/ timeout = 5000
/ beginresponsetime = 0
</trial>

<block memory>
/ trials = [1-5 = memorytask]
</block>

Ah, I forgot to add the text element. Thank you!

To follow-up: during the first part of the experiment, a word is paired with either a park or a market scene. During the memory test I am testing whether they remember that association. Is there a way in inquisit to mark whether they are correct or not based on the actual pairing during the first part? For example, if the word was paired with park and they chose park in the test, that would be marked correct. Right now, it marks any response as correct and I would have to manually go back and check the original pairing. 

Here is some code below (excluding some naming of items). 


<text shownword>
/ items = shownwords
</text>

<item shownwords>
</item>

<trial scene1>
/ ontrialend = [
  item.shownwords.appenditem(text.noun.currentitem);
]
/ stimulustimes = [0 =park, word; 3000 = blank]
/ posttrialpause = 1000
/ trialduration = 4000
/ responseinterrupt = frames
/ beginresponsetime = 0
</trial>

<trial scene2>
/ ontrialend = [
  item.shownwords.appenditem(text.noun.currentitem);
]
/ stimulustimes = [0=market, word; 3000 = blank]
/ posttrialpause = 1000
/ trialduration = 4000
/ responseinterrupt = frames
/ beginresponsetime = 0
</trial>


<trial memorytask>
/ stimulustimes = [0 =park, market, shownword]
/ validresponse = ("m", "n")
/ posttrialpause = 500
/ timeout = 5000
/ beginresponsetime = 0
</trial>

<block memory>
/ trials = [1-5 = memorytask]
</block>

It's possible in much the same way you already store the shown words. Simply store the paired scene type in the same way. You can then evaluate the correctness in the memory part by pulling up the paired scene type in /iscorrectresponse. I would give you a running example, but the code snippet you provided is not useful or complete enough for me to do so. It's not even clear which response --  "m" or "n" -- maps to park and market respectively

I apologize for the unhelpful code! Please see attached for expanded code, as an example would be useful if you are able. For the memory test, an "n" response is for park, and an "m" response is for market. It does not matter what response they made when they first saw the image, but rather just what image the word was paired with.

If this is still unhelpful I can try to figure it out based on what you provided. Thank you very much!! 
Attachments
test.iqx (224 views, 8.00 KB)
Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 12K, Visits: 98K
lir1995 - 3/18/2020
Dave - 3/18/2020
lir1995 - 3/18/2020
lir1995 - 3/12/2020
Dave - 3/12/2020
lir1995 - 3/12/2020
Dave - 3/11/2020
lir1995 - 3/11/2020
Hi, 

Working on an experiment where I want to test participants' memory for only items seen during the experiment. Let's say I have a list of words that is 10 items long. However, participants only view 5 of them during the experiment. Is there a way to indicate in my memory test trial/block to only show the 5 words seen during the experiment? These 5 words would be unique for each participant. 

Thanks!

You can write the shown words to an empty <item> element at runtime and then use that in the recall part as needed.

<expt>
/ blocks = [1=show5; 2=recall]
</expt>

<block show5>
/ trials = [1-5 = show]
</block>

<block recall>
/ preinstructions = (recallpage)
</block>

<page recallpage>
^You were shown the following 5 words:
<%item.shownwords.item(1)%>, <%item.shownwords.item(2)%>, <%item.shownwords.item(3)%>, <%item.shownwords.item(4)%>, and <%item.shownwords.item(5)%>.
</page>


<trial show>
/ ontrialend = [
    item.shownwords.appenditem(text.word.currentitem);
]
/ stimulusframes = [1=word]
/ validresponse = (0)
/ trialduration = 2500
/ posttrialpause = 500
</trial>

<text word>
/ items = words
</text>

<item words>
/ 1 = "Apple"
/ 2 = "Bird"
/ 3 = "Cloth"
/ 4 = "Dam"
/ 5 = "East"
/ 6 = "Frost"
/ 7 = "Gain"
/ 8 = "Hope"
/ 9 = "Island"
</item>

<item shownwords>
</item>



Thank you so much! I understand how the code you sent is working, however I am struggling to implement it in a trial/block fashion (rather than putting the "shown words" in the instructions). For example, if my memory trial looked like:

<trial memorytask>
/ stimulustimes = [0 =scene1_1, scene2_2, word]
/ validresponse = ("m", "n")
/ posttrialpause = 500
/ timeout = 5000
/ beginresponsetime = 0
</trial>

<block memory>
/ trials = [1-5 = memorytask]
</block>

The task is for participants to match the words they have seen in the experiment (from a large word pool) to the picture (scene 1 or 2) it was paired with. I am having difficulty modifying the code to only show the shown words, as opposed to all of them. 

Thanks again!!

The shown words are stored in an item element. You use this <item> element just like any other. I.e. set up a <text> element referencing that <item> element and have a <trial> display that.

<text shownword>
/ items = shownwords
</text>

<item shownwords>
</item>

<trial memorytask>
/ stimulustimes = [0 =scene1_1, scene2_2, shownword]
/ validresponse = ("m", "n")
/ posttrialpause = 500
/ timeout = 5000
/ beginresponsetime = 0
</trial>

<block memory>
/ trials = [1-5 = memorytask]
</block>

Ah, I forgot to add the text element. Thank you!

To follow-up: during the first part of the experiment, a word is paired with either a park or a market scene. During the memory test I am testing whether they remember that association. Is there a way in inquisit to mark whether they are correct or not based on the actual pairing during the first part? For example, if the word was paired with park and they chose park in the test, that would be marked correct. Right now, it marks any response as correct and I would have to manually go back and check the original pairing. 

Here is some code below (excluding some naming of items). 


<text shownword>
/ items = shownwords
</text>

<item shownwords>
</item>

<trial scene1>
/ ontrialend = [
  item.shownwords.appenditem(text.noun.currentitem);
]
/ stimulustimes = [0 =park, word; 3000 = blank]
/ posttrialpause = 1000
/ trialduration = 4000
/ responseinterrupt = frames
/ beginresponsetime = 0
</trial>

<trial scene2>
/ ontrialend = [
  item.shownwords.appenditem(text.noun.currentitem);
]
/ stimulustimes = [0=market, word; 3000 = blank]
/ posttrialpause = 1000
/ trialduration = 4000
/ responseinterrupt = frames
/ beginresponsetime = 0
</trial>


<trial memorytask>
/ stimulustimes = [0 =park, market, shownword]
/ validresponse = ("m", "n")
/ posttrialpause = 500
/ timeout = 5000
/ beginresponsetime = 0
</trial>

<block memory>
/ trials = [1-5 = memorytask]
</block>

It's possible in much the same way you already store the shown words. Simply store the paired scene type in the same way. You can then evaluate the correctness in the memory part by pulling up the paired scene type in /iscorrectresponse. I would give you a running example, but the code snippet you provided is not useful or complete enough for me to do so. It's not even clear which response --  "m" or "n" -- maps to park and market respectively

I apologize for the unhelpful code! Please see attached for expanded code, as an example would be useful if you are able. For the memory test, an "n" response is for park, and an "m" response is for market. It does not matter what response they made when they first saw the image, but rather just what image the word was paired with.

If this is still unhelpful I can try to figure it out based on what you provided. Thank you very much!! 

Thanks. Here's how you can achieve what you want.

(1) Add another empty <item> element to the script to store the paired scene type for each word.

<item pairedscene>
</item>

(2) Add either "n" or "m" to that <item> element ,depending on the type of show trial:

<trial parks>
/ ontrialend = [
  item.shownwords.appenditem(text.noun.currentitem);
    item.pairedscene.appenditem("n");
]
/ stimulustimes = [0 =park, noun; 3000 = blank]
/ posttrialpause = 1000
/ trialduration = 4000
/ responseinterrupt = frames
/ beginresponsetime = 0
</trial>

<trial markets>
/ ontrialend = [
  item.shownwords.appenditem(text.noun.currentitem);
    item.pairedscene.appenditem("m");
]
/ stimulustimes = [0=market, noun; 3000 = blank]
/ posttrialpause = 1000
/ trialduration = 4000
/ responseinterrupt = frames
/ beginresponsetime = 0
</trial>

(3) Add the following /iscorrectresponse logic to your source <trial>

<trial source>
/ stimulustimes = [0 =scene1_1, scene2_2, shownword]
/ validresponse = ("m", "n")
/ iscorrectresponse = [
    computer.scancodetochar(trial.source.response)==item.pairedscene.item(text.shownword.currentindex);
]

/ posttrialpause = 500
/ timeout = 5000
/ beginresponsetime = 0
</trial>
lir1995
lir1995
Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)
Group: Forum Members
Posts: 40, Visits: 190
Dave - 3/18/2020
lir1995 - 3/18/2020
Dave - 3/18/2020
lir1995 - 3/18/2020
lir1995 - 3/12/2020
Dave - 3/12/2020
lir1995 - 3/12/2020
Dave - 3/11/2020
lir1995 - 3/11/2020
Hi, 

Working on an experiment where I want to test participants' memory for only items seen during the experiment. Let's say I have a list of words that is 10 items long. However, participants only view 5 of them during the experiment. Is there a way to indicate in my memory test trial/block to only show the 5 words seen during the experiment? These 5 words would be unique for each participant. 

Thanks!

You can write the shown words to an empty <item> element at runtime and then use that in the recall part as needed.

<expt>
/ blocks = [1=show5; 2=recall]
</expt>

<block show5>
/ trials = [1-5 = show]
</block>

<block recall>
/ preinstructions = (recallpage)
</block>

<page recallpage>
^You were shown the following 5 words:
<%item.shownwords.item(1)%>, <%item.shownwords.item(2)%>, <%item.shownwords.item(3)%>, <%item.shownwords.item(4)%>, and <%item.shownwords.item(5)%>.
</page>


<trial show>
/ ontrialend = [
    item.shownwords.appenditem(text.word.currentitem);
]
/ stimulusframes = [1=word]
/ validresponse = (0)
/ trialduration = 2500
/ posttrialpause = 500
</trial>

<text word>
/ items = words
</text>

<item words>
/ 1 = "Apple"
/ 2 = "Bird"
/ 3 = "Cloth"
/ 4 = "Dam"
/ 5 = "East"
/ 6 = "Frost"
/ 7 = "Gain"
/ 8 = "Hope"
/ 9 = "Island"
</item>

<item shownwords>
</item>



Thank you so much! I understand how the code you sent is working, however I am struggling to implement it in a trial/block fashion (rather than putting the "shown words" in the instructions). For example, if my memory trial looked like:

<trial memorytask>
/ stimulustimes = [0 =scene1_1, scene2_2, word]
/ validresponse = ("m", "n")
/ posttrialpause = 500
/ timeout = 5000
/ beginresponsetime = 0
</trial>

<block memory>
/ trials = [1-5 = memorytask]
</block>

The task is for participants to match the words they have seen in the experiment (from a large word pool) to the picture (scene 1 or 2) it was paired with. I am having difficulty modifying the code to only show the shown words, as opposed to all of them. 

Thanks again!!

The shown words are stored in an item element. You use this <item> element just like any other. I.e. set up a <text> element referencing that <item> element and have a <trial> display that.

<text shownword>
/ items = shownwords
</text>

<item shownwords>
</item>

<trial memorytask>
/ stimulustimes = [0 =scene1_1, scene2_2, shownword]
/ validresponse = ("m", "n")
/ posttrialpause = 500
/ timeout = 5000
/ beginresponsetime = 0
</trial>

<block memory>
/ trials = [1-5 = memorytask]
</block>

Ah, I forgot to add the text element. Thank you!

To follow-up: during the first part of the experiment, a word is paired with either a park or a market scene. During the memory test I am testing whether they remember that association. Is there a way in inquisit to mark whether they are correct or not based on the actual pairing during the first part? For example, if the word was paired with park and they chose park in the test, that would be marked correct. Right now, it marks any response as correct and I would have to manually go back and check the original pairing. 

Here is some code below (excluding some naming of items). 


<text shownword>
/ items = shownwords
</text>

<item shownwords>
</item>

<trial scene1>
/ ontrialend = [
  item.shownwords.appenditem(text.noun.currentitem);
]
/ stimulustimes = [0 =park, word; 3000 = blank]
/ posttrialpause = 1000
/ trialduration = 4000
/ responseinterrupt = frames
/ beginresponsetime = 0
</trial>

<trial scene2>
/ ontrialend = [
  item.shownwords.appenditem(text.noun.currentitem);
]
/ stimulustimes = [0=market, word; 3000 = blank]
/ posttrialpause = 1000
/ trialduration = 4000
/ responseinterrupt = frames
/ beginresponsetime = 0
</trial>


<trial memorytask>
/ stimulustimes = [0 =park, market, shownword]
/ validresponse = ("m", "n")
/ posttrialpause = 500
/ timeout = 5000
/ beginresponsetime = 0
</trial>

<block memory>
/ trials = [1-5 = memorytask]
</block>

It's possible in much the same way you already store the shown words. Simply store the paired scene type in the same way. You can then evaluate the correctness in the memory part by pulling up the paired scene type in /iscorrectresponse. I would give you a running example, but the code snippet you provided is not useful or complete enough for me to do so. It's not even clear which response --  "m" or "n" -- maps to park and market respectively

I apologize for the unhelpful code! Please see attached for expanded code, as an example would be useful if you are able. For the memory test, an "n" response is for park, and an "m" response is for market. It does not matter what response they made when they first saw the image, but rather just what image the word was paired with.

If this is still unhelpful I can try to figure it out based on what you provided. Thank you very much!! 

Thanks. Here's how you can achieve what you want.

(1) Add another empty <item> element to the script to store the paired scene type for each word.

<item pairedscene>
</item>

(2) Add either "n" or "m" to that <item> element ,depending on the type of show trial:

<trial parks>
/ ontrialend = [
  item.shownwords.appenditem(text.noun.currentitem);
    item.pairedscene.appenditem("n");
]
/ stimulustimes = [0 =park, noun; 3000 = blank]
/ posttrialpause = 1000
/ trialduration = 4000
/ responseinterrupt = frames
/ beginresponsetime = 0
</trial>

<trial markets>
/ ontrialend = [
  item.shownwords.appenditem(text.noun.currentitem);
    item.pairedscene.appenditem("m");
]
/ stimulustimes = [0=market, noun; 3000 = blank]
/ posttrialpause = 1000
/ trialduration = 4000
/ responseinterrupt = frames
/ beginresponsetime = 0
</trial>

(3) Add the following /iscorrectresponse logic to your source <trial>

<trial source>
/ stimulustimes = [0 =scene1_1, scene2_2, shownword]
/ validresponse = ("m", "n")
/ iscorrectresponse = [
    computer.scancodetochar(trial.source.response)==item.pairedscene.item(text.shownword.currentindex);
]

/ posttrialpause = 500
/ timeout = 5000
/ beginresponsetime = 0
</trial>

Thank you so much for this, and it works great in inquisit 5! However, when I run this exact same code in inquisit 6 web it no longer works. I received the error "'computer.scancodetochar(trial.source.response)==item.pairedword.item(text.shownword.currentindex)' An argument with an invalid value was passed to a function." Additionally, I received "This command is obsolete and will be ignored." Unfortunately, I do not have a inquisit 6 lab license, so it is difficult to test this out more specifically. 

Does this code no longer work with inquisit 6? If so, is there a way to do the same thing in inquisit 6? Thank you!!  
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search