Sequence of trials


Author
Message
nm
nm
nm
posted 7 Years Ago HOT
Partner Member (518 reputation)Partner Member (518 reputation)Partner Member (518 reputation)Partner Member (518 reputation)Partner Member (518 reputation)Partner Member (518 reputation)Partner Member (518 reputation)Partner Member (518 reputation)Partner Member (518 reputation)
Group: Awaiting Activation
Posts: 3, Visits: 22
Hi,

I'm editing a transitive inference task and right now it's programmed to randomly select from 8 trials:

<list trialselection_phase1>
/items = (1, 2, 3, 4, 5, 6, 7, 8)
/poolsize = parameters.trialnumber_learning
</list>

/ontrialbegin = [
values.counttrials_phase1 += 1;
values.nexttrial = list.trialselection_phase1.nextvalue;
]

/branch = [
if (values.nexttrial == 1) trial.ab
else if (values.nexttrial == 2) trial.ba
else if (values.nexttrial == 3) trial.bc
else if (values.nexttrial == 4) trial.cb
else if (values.nexttrial == 5) trial.cd
else if (values.nexttrial == 6) trial.dc
else if (values.nexttrial == 7) trial.de
else if (values.nexttrial == 8) trial.ed

]

I need to edit it so that trials bc and cb never follow trials ab or ba, for trials cd and dc to never follow trials bc and bc, and for trials de and ed to never follow trials cd and dc. Does anyone have any suggestions for how to do this?

Thank you!
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
nm - Wednesday, January 11, 2017
Hi,

I'm editing a transitive inference task and right now it's programmed to randomly select from 8 trials:

<list trialselection_phase1>
/items = (1, 2, 3, 4, 5, 6, 7, 8)
/poolsize = parameters.trialnumber_learning
</list>

/ontrialbegin = [
values.counttrials_phase1 += 1;
values.nexttrial = list.trialselection_phase1.nextvalue;
]

/branch = [
if (values.nexttrial == 1) trial.ab
else if (values.nexttrial == 2) trial.ba
else if (values.nexttrial == 3) trial.bc
else if (values.nexttrial == 4) trial.cb
else if (values.nexttrial == 5) trial.cd
else if (values.nexttrial == 6) trial.dc
else if (values.nexttrial == 7) trial.de
else if (values.nexttrial == 8) trial.ed

]

I need to edit it so that trials bc and cb never follow trials ab or ba, for trials cd and dc to never follow trials bc and bc, and for trials de and ed to never follow trials cd and dc. Does anyone have any suggestions for .how to do this?

Thank you!

Given that you use <parameters> in your <list>'s /poolsize, you are designing this in Inquisit 5 apparently. Since you posted this to the Inquisit 4 forum, however, I have to ask whether you plan on administering the script via Inquisit 5 or Inqusit 4. This is importatnt because (a) Inquisit 4 syntax does not have a <parameters> element, and (b) what viable solution(s) may exist for your actual trial-selection problem will depend on whether you are using Inquisit 4 or Inquisit 5 as well.

Would you please clarify? Thanks.

nm
nm
Partner Member (518 reputation)Partner Member (518 reputation)Partner Member (518 reputation)Partner Member (518 reputation)Partner Member (518 reputation)Partner Member (518 reputation)Partner Member (518 reputation)Partner Member (518 reputation)Partner Member (518 reputation)
Group: Awaiting Activation
Posts: 3, Visits: 22
Hi Dave,

Thanks for your reply - I meant to ask about Inquisit 5.

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
nm - Wednesday, January 11, 2017
Hi Dave,

Thanks for your reply - I meant to ask about Inquisit 5.

Thanks.

Thanks for the clarification. Then I would recommend specifying two /not constraints in your <list>

<list trialselection_phase1>
/ items = (1, 2, 3, 4, 5, 6, 7, 8)
/ poolsize = 24
/ not = [values.blocked_1]
/ not = [values.blocked_2]

</list>

and setting values.blocked_1 and values.blocked_2 to the numerical trial identifiers that are impermissible to follow a given <trial>-type. I.e.

<trial ab>
...
/ ontrialend = [values.blocked_1 = 3; values.blocked_2 = 4]
...
</trial>

meaning the values representing trial.bc (3) and trial.cb (4) would be blocked from being selected for the next trial and so forth. Does this make sense or need I elaborate more?

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
Dave - Wednesday, January 11, 2017
nm - Wednesday, January 11, 2017
Hi Dave,

Thanks for your reply - I meant to ask about Inquisit 5.

Thanks.

Thanks for the clarification. Then I would recommend specifying two /not constraints in your <list>

<list trialselection_phase1>
/ items = (1, 2, 3, 4, 5, 6, 7, 8)
/ poolsize = 24
/ not = [values.blocked_1]
/ not = [values.blocked_2]

</list>

and setting values.blocked_1 and values.blocked_2 to the numerical trial identifiers that are impermissible to follow a given <trial>-type. I.e.

<trial ab>
...
/ ontrialend = [values.blocked_1 = 3; values.blocked_2 = 4]
...
</trial>

meaning the values representing trial.bc (3) and trial.cb (4) would be blocked from being selected for the next trial and so forth. Does this make sense or need I elaborate more?

This example might be worth looking at: https://www.millisecond.com/forums/FindPost20200.aspx

While it concerns stimulus selection (opposed to trial selection as in your case) and the constraint is slightly different, the general approach -- storing categories "blocked" from selection in <values>, using /not constraints -- is the same.

nm
nm
Partner Member (518 reputation)Partner Member (518 reputation)Partner Member (518 reputation)Partner Member (518 reputation)Partner Member (518 reputation)Partner Member (518 reputation)Partner Member (518 reputation)Partner Member (518 reputation)Partner Member (518 reputation)
Group: Awaiting Activation
Posts: 3, Visits: 22
Hi Dave,

Thanks for your help. Currently the experiment is set up to select numbers randomly from the trialselection_phase1 list, and then specifies the type of trial based on those numbers.

<trial learningtrialselection>
/ontrialbegin = [
values.counttrials_phase1 += 1;
values.nexttrial = list.trialselection_phase1.nextvalue;
]
/branch = [
if (values.nexttrial == 1) trial.ab
else if (values.nexttrial == 2) trial.ba
else if (values.nexttrial == 3) trial.bc
else if (values.nexttrial == 4) trial.cb
else if (values.nexttrial == 5) trial.cd
else if (values.nexttrial == 6) trial.dc
else if (values.nexttrial == 7) trial.de
else if (values.nexttrial == 8) trial.ed
]

Do you know how I could specify the conditions for trial ab specifically like you mentioned above?

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
nm - Thursday, January 12, 2017
Hi Dave,

Thanks for your help. Currently the experiment is set up to select numbers randomly from the trialselection_phase1 list, and then specifies the type of trial based on those numbers.

<trial learningtrialselection>
/ontrialbegin = [
values.counttrials_phase1 += 1;
values.nexttrial = list.trialselection_phase1.nextvalue;
]
/branch = [
if (values.nexttrial == 1) trial.ab
else if (values.nexttrial == 2) trial.ba
else if (values.nexttrial == 3) trial.bc
else if (values.nexttrial == 4) trial.cb
else if (values.nexttrial == 5) trial.cd
else if (values.nexttrial == 6) trial.dc
else if (values.nexttrial == 7) trial.de
else if (values.nexttrial == 8) trial.ed
]

Do you know how I could specify the conditions for trial ab specifically like you mentioned above?

<trial ab>
...
/ ontrialend = [values.blocked_1 = 3; values.blocked_2 = 4]
...
</trial>

as in

<block myblock>
/ trials = [1-24=learningtrialselection]
</block>

<trial learningtrialselection>
/ontrialbegin = [
values.counttrials_phase1 += 1;
values.nexttrial = list.trialselection_phase1.nextvalue;
]
/branch = [
if (values.nexttrial == 1) trial.ab
else if (values.nexttrial == 2) trial.ba
else if (values.nexttrial == 3) trial.bc
else if (values.nexttrial == 4) trial.cb
else if (values.nexttrial == 5) trial.cd
else if (values.nexttrial == 6) trial.dc
else if (values.nexttrial == 7) trial.de
else if (values.nexttrial == 8) trial.ed
]
/ trialduration = 0
/ recorddata = false
</trial>

<list trialselection_phase1>
/ items = (1, 2, 3, 4, 5, 6, 7, 8)
/ poolsize = 24
/ not = (values.blocked_1)
/ not = (values.blocked_2)
</list>

<values>
/ nexttrial = 0
/ counttrials_phase1 = 0
/ blocked_1 = 0
/ blocked_2 = 0
</values>

- trials bc and cb never follow trials ab or ba,
<trial ab>
/ ontrialend = [values.blocked_1 = 3; values.blocked_2 = 4]
/ stimulusframes = [1=mytext]
/ validresponse = (0)
/ trialduration = 100
</trial>

<trial ba>
/ ontrialend = [values.blocked_1 = 3; values.blocked_2 = 4]
/ stimulusframes = [1=mytext]
/ validresponse = (0)
/ trialduration = 100
</trial>

- for trials cd and dc to never follow trials bc and cb,
<trial bc>
/ ontrialend = [values.blocked_1 = 5; values.blocked_2 = 6]
/ stimulusframes = [1=mytext]
/ validresponse = (0)
/ trialduration = 100
</trial>

<trial cb>
/ ontrialend = [values.blocked_1 = 5; values.blocked_2 = 6]
/ stimulusframes = [1=mytext]
/ validresponse = (0)
/ trialduration = 100
</trial>

- and for trials de and ed to never follow trials cd and dc.
<trial cd>
/ ontrialend = [values.blocked_1 = 7; values.blocked_2 = 8]
/ stimulusframes = [1=mytext]
/ validresponse = (0)
/ trialduration = 100
</trial>

<trial dc>
/ ontrialend = [values.blocked_1 = 7; values.blocked_2 = 8]
/ stimulusframes = [1=mytext]
/ validresponse = (0)
/ trialduration = 100
</trial>

<trial de>
/ ontrialend = [values.blocked_1 = 0; values.blocked_2 = 0]
/ stimulusframes = [1=mytext]
/ validresponse = (0)
/ trialduration = 100
</trial>

<trial ed>
/ ontrialend = [values.blocked_1 = 0; values.blocked_2 = 0]
/ stimulusframes = [1=mytext]
/ validresponse = (0)
/ trialduration = 100
</trial>

<text mytext>
/ items = ("<%script.currenttrial%>")
</text>


GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search