Millisecond Forums

branching: after memory, comes inference

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

By willeminquisit - 12/16/2013

Dear Dave,

I'm designing an experiment where participants first see four pairs of individuals, presented sequentially, where for each pair we indicate which individual is socially dominant.  Next, we ask participants to recall, for each pair, which individual is dominant.  I would like to repeat this sequence (i.e., first presenting all four pairs, next asking participants to recall) until a criterion is reached; specifically, until participants accurately recall who is dominant in all four pairs in a row, twice.  Then I would like to move on the an inferential question (as opposed to recall).  

I'm new to Inquisit but I think I will need the branching attribute (which I have been reading about in the documentation the Inquisit website provides).  Below you can see I made some progress, but now I'm stuck.  I'm not sure (a) how to make branching work without obtaining errors, and (b) whether it would be wiser for me to code the inferential question as a new trial or as new block.  If possible, I would appreciate your help.  

With regards,

Willem

*********Study Design************

<expt>
/ preinstructions = (intro)
/ blocks = [1=learning; 2=memory]
/ postinstructions = (outro)
</expt>

********Welcome********

<page intro>
^^Dear participant
</page>

*****************learnings: Learning****************

<block learning>
/ preinstructions = (learningpage)
/ trials = [1-4 = learning]
</block>

<page learningpage>
^^^^In this task, you will see four pairs of individuals.  For each pair, we indicate which individual is dominant.^^We ask you to memorize, AS BEST YOU CAN, which individual is dominant in each pair.^^Once you have correctly recalled who is dominant in each pair, twice in a row, we ask you who is dominant is a new pair.^^The survey takes about XX MINUTES. If you choose to participate, you will be free to stop at any time (by notifying the experimenter).</page>

<picture learning>
/ items = learning
/ position = (50,50)  
/ select = sequence  
</picture>

<item learning>
/1="1.jpg"
/2="2.jpg"
/3="3.jpg"
/4="4.jpg"
</item>

<trial learning>
/ stimulusframes = [1=learning]
/ timeout = 1000

</trial>

*****************learnings: Memory****************

<block memory>
/ preinstructions = (memorypage)
/ trials = [1-4 = memory]
</block>

<page memorypage>
^^XXX
</page>

<picture memory>
/ items = memory
/ position = (50,50)  
/ select = sequence  
</picture>

<item memory>
/1="5.jpg"
/2="6.jpg"
/3="7.jpg"
/4="8.jpg"
</item>

<likert memory>
/ anchors = [1="focal"; 2="other"]
/ correctresponse=("1")
/ stimulusframes = [1=memory]
/ anchorwidth = 60
/ numpoints=2
/ position= (50, 50)
</likert>

<trial criterion>
/ stimulusframes=[1=memory]
/ validresponse=("1", "2")
/ correctresponse=("1")
/ branch=[if (correctresponse = 4) trial.inference]
/ branch=[if (correctresponse < 4) trial.criterion]
</trial>

<trial inference>
/ stimulusframes=[1=memory]
/ validresponse=("1", "2")
</trial>

<trial further>
/ stimulusframes=[1=memory]
</trial>

*****************Photos: Inference****************

<page outro>
^^Thank you for participating!
</page>

By Dave - 12/16/2013

Willem,


<trial criterion>
/ stimulusframes=[1=memory]
/ validresponse=("1", "2")
/ correctresponse=("1")
/ branch=[if (correctresponse = 4) trial.inference]
/ branch=[if (correctresponse < 4) trial.criterion]
</trial>


- What is correctresponse supposed to mean here? There is no such thing in Inquisit syntax that would apply here. If you invent syntax constructs, it's not going to work (no offense intended). Look at the available *properties* for the respective element in the language reference. Candidates you'll want to look at are correctcout, totalcorrectcount, correctstreak etc.


- Also, please adopt proper syntax from the start: The way to reference a property is element.name.property as in trial.criterion.correctcount.


- Finally, pay attention to the *operators* you are using. = is an *assignment* operator. You don't want assignment. You want a logical operator: ==. See the operators topic in the documentation for further details.


- You will also want to consider using /stop or /skip attributes as an alternative or in addition to /branch.


#2: As for the <trial> vs. <block> inferential question: There is no clear answer, the proper approach will depend on any number of factors as well as personal preference.