Millisecond Forums

presenting questions in random order

https://forums.millisecond.com/Topic24475.aspx

By jono.david - 3/26/2018

Hi there,

I have only been using inquisit for a few weeks, so I'm still new to things. I need some help with a recognition task that I'm trying to code.

In each trial of the task, I want to present a scenario description and a question.
(The question is the same for all trials - "How similar is this to THE ORIGINAL SCENARIO you read?" - rate on a scale from 1-4)

But the scenario description is the thing I am having issues with. I have 10 sets of 4 scenario descriptions that I want to present - that makes 40 trials in total.
For each set of 4 scenarios, the scenarios are similar in theme, but have key differences.
For example: scenarios 1-4 all begin with "Title: The Photo, You are looking at a photo..." but then each of those scenarios ends slightly differently.
scenarios 5-8 all being with "Title: The Ball, You are playing with a ball..." but then each of those scenarios ends slightly differently.
etc

So for this task, I want the 10 sets of scenario descriptions to be presented in random order (eg sometimes the scenarios with "The Ball" are presented first, and sometimes the scenarios with "The photo" are presented first)
AND, within each set of scenarios, I want the different versions of each scenarios to be presented in random order.

I'm not really sure how to do this... All I know is how to use the 'select' attribute and specify 'noreplace', but that doesn't help me here, because I want each 'theme' of scenarios to be presented together.

I have attached my script so far (which includes a practice item, but I haven't put in all of my scenario descriptions yet). Any help is appreciated!

Cheers,
Jonathan
By Dave - 3/27/2018

jono.david - Tuesday, March 27, 2018
Hi there,

I have only been using inquisit for a few weeks, so I'm still new to things. I need some help with a recognition task that I'm trying to code.

In each trial of the task, I want to present a scenario description and a question.
(The question is the same for all trials - "How similar is this to THE ORIGINAL SCENARIO you read?" - rate on a scale from 1-4)

But the scenario description is the thing I am having issues with. I have 10 sets of 4 scenario descriptions that I want to present - that makes 40 trials in total.
For each set of 4 scenarios, the scenarios are similar in theme, but have key differences.
For example: scenarios 1-4 all begin with "Title: The Photo, You are looking at a photo..." but then each of those scenarios ends slightly differently.
scenarios 5-8 all being with "Title: The Ball, You are playing with a ball..." but then each of those scenarios ends slightly differently.
etc

So for this task, I want the 10 sets of scenario descriptions to be presented in random order (eg sometimes the scenarios with "The Ball" are presented first, and sometimes the scenarios with "The photo" are presented first)
AND, within each set of scenarios, I want the different versions of each scenarios to be presented in random order.

I'm not really sure how to do this... All I know is how to use the 'select' attribute and specify 'noreplace', but that doesn't help me here, because I want each 'theme' of scenarios to be presented together.

I have attached my script so far (which includes a practice item, but I haven't put in all of my scenario descriptions yet). Any help is appreciated!

Cheers,
Jonathan

You do something like this

<values>
/ scenarioset = 1
/ currentscenario = 1
</values>

<block myblock>
/ trials = [1-5=sequence(selectset, scenariotrial, scenariotrial, scenariotrial, scenariotrial)]
</block>

// select a set at random by randomly sampling a set's base item number from a list:
<trial selectset>
/ ontrialbegin = [
    values.scenarioset = list.scenarioset.nextvalue;
]
/ validresponse = (0)
/ trialduration = 0
/ recorddata = false
</trial>

// randomly iterate through the four versions / item numbers comprising the selected set
<trial scenariotrial>
/ ontrialbegin = [
    values.currentscenario = values.scenarioset + list.scenarioversion.nextvalue;
]
/ stimulusframes = [1=scenariotext]
/ validresponse = (57)
</trial>

<text scenariotext>
/ items = scenariosets
/ select = values.currentscenario
</text>

Set A starts at item #1
Set B starts at item #5
Set C starts at item #9
...
<list scenarioset>
/ items = (1, 5, 9, 13, 17)
</list>

<list scenarioversion>
/ items = (0,1,2,3)
</list>

<item scenariosets>
/ 1 = "Scenario A: V1"
/ 2 = "Scenario A: V2"
/ 3 = "Scenario A: V3"
/ 4 = "Scenario A: V4"

/ 5 = "Scenario B: V1"
/ 6 = "Scenario B: V2"
/ 7 = "Scenario B: V3"
/ 8 = "Scenario B: V4"

/ 9 = "Scenario C: V1"
/ 10 = "Scenario C: V2"
/ 11 = "Scenario C: V3"
/ 12 = "Scenario C: V4"

/ 13 = "Scenario D: V1"
/ 14 = "Scenario D: V2"
/ 15 = "Scenario D: V3"
/ 16 = "Scenario D: V4"

/ 17 = "Scenario E: V1"
/ 18 = "Scenario E: V2"
/ 19 = "Scenario E: V3"
/ 20 = "Scenario E: V4"
</item>

i.e. at the start of each sequence, select a given set's "base" item number at random from <list scenarioset>. Then you can simply randomly iterate through the four "versions" comprising that set by sampling a random value from <list scenarioversion>. The item number of the scenario you select / display is given by values.scenarioset (i.e. the base item number) plus the value randomly sampled from  <list scenarioversion>.

By jono.david - 3/27/2018

Dave - Tuesday, March 27, 2018
jono.david - Tuesday, March 27, 2018
Hi there,

I have only been using inquisit for a few weeks, so I'm still new to things. I need some help with a recognition task that I'm trying to code.

In each trial of the task, I want to present a scenario description and a question.
(The question is the same for all trials - "How similar is this to THE ORIGINAL SCENARIO you read?" - rate on a scale from 1-4)

But the scenario description is the thing I am having issues with. I have 10 sets of 4 scenario descriptions that I want to present - that makes 40 trials in total.
For each set of 4 scenarios, the scenarios are similar in theme, but have key differences.
For example: scenarios 1-4 all begin with "Title: The Photo, You are looking at a photo..." but then each of those scenarios ends slightly differently.
scenarios 5-8 all being with "Title: The Ball, You are playing with a ball..." but then each of those scenarios ends slightly differently.
etc

So for this task, I want the 10 sets of scenario descriptions to be presented in random order (eg sometimes the scenarios with "The Ball" are presented first, and sometimes the scenarios with "The photo" are presented first)
AND, within each set of scenarios, I want the different versions of each scenarios to be presented in random order.

I'm not really sure how to do this... All I know is how to use the 'select' attribute and specify 'noreplace', but that doesn't help me here, because I want each 'theme' of scenarios to be presented together.

I have attached my script so far (which includes a practice item, but I haven't put in all of my scenario descriptions yet). Any help is appreciated!

Cheers,
Jonathan

You do something like this

<values>
/ scenarioset = 1
/ currentscenario = 1
</values>

<block myblock>
/ trials = [1-5=sequence(selectset, scenariotrial, scenariotrial, scenariotrial, scenariotrial)]
</block>

// select a set at random by randomly sampling a set's base item number from a list:
<trial selectset>
/ ontrialbegin = [
    values.scenarioset = list.scenarioset.nextvalue;
]
/ validresponse = (0)
/ trialduration = 0
/ recorddata = false
</trial>

// randomly iterate through the four versions / item numbers comprising the selected set
<trial scenariotrial>
/ ontrialbegin = [
    values.currentscenario = values.scenarioset + list.scenarioversion.nextvalue;
]
/ stimulusframes = [1=scenariotext]
/ validresponse = (57)
</trial>

<text scenariotext>
/ items = scenariosets
/ select = values.currentscenario
</text>

Set A starts at item #1
Set B starts at item #5
Set C starts at item #9
...
<list scenarioset>
/ items = (1, 5, 9, 13, 17)
</list>

<list scenarioversion>
/ items = (0,1,2,3)
</list>

<item scenariosets>
/ 1 = "Scenario A: V1"
/ 2 = "Scenario A: V2"
/ 3 = "Scenario A: V3"
/ 4 = "Scenario A: V4"

/ 5 = "Scenario B: V1"
/ 6 = "Scenario B: V2"
/ 7 = "Scenario B: V3"
/ 8 = "Scenario B: V4"

/ 9 = "Scenario C: V1"
/ 10 = "Scenario C: V2"
/ 11 = "Scenario C: V3"
/ 12 = "Scenario C: V4"

/ 13 = "Scenario D: V1"
/ 14 = "Scenario D: V2"
/ 15 = "Scenario D: V3"
/ 16 = "Scenario D: V4"

/ 17 = "Scenario E: V1"
/ 18 = "Scenario E: V2"
/ 19 = "Scenario E: V3"
/ 20 = "Scenario E: V4"
</item>

i.e. at the start of each sequence, select a given set's "base" item number at random from <list scenarioset>. Then you can simply randomly iterate through the four "versions" comprising that set by sampling a random value from <list scenarioversion>. The item number of the scenario you select / display is given by values.scenarioset (i.e. the base item number) plus the value randomly sampled from  <list scenarioversion>.


Ahhh cool! I thought this could be done with the list function or some selection mode thing, but I wasn't sure how to do it.
Thank you so much Dave! You're a miracle worker! :)