Millisecond Forums

Experiments and sub-experiments

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

By jbfleming - 12/23/2013

I continue to work on creating an experiment to be run next year via the web. It consists of a series of surveys and tasks.  So far it has been very easy to string surveys together, and some of my tasks only have one block of items, so that's easy enough to add to an <expt>.

However, I have two IATs that are part of this sequence and each has several defined blocks.  It doesn't appear that I can define them as an <expt> and then reference that expt name in another <expt> block.  So do I have to list all the separate blocks of each IAT in the /blocks section of my top level <expt> tag?  Can I somehow create some other intermediate block-of-blocks to include there instead?

Thanks,
John
By jbfleming - 12/23/2013

I should add, I am using a main script that does a lot of Includes, and then has 4 <expt> blocks, one for each group.

It looks like I could use Batch instead of Include, and then have a main script with 4 <batch> blocks, one for each group, each which ran a different subset of other scripts, each with their own <expt> element.

Is that what I want to do?  I chose Include over Batch originally because of something I read in the documentation that made it seem like it was better, but now I feel like the <batch> tag is more appropriate for my purposes.

John
By Dave - 12/23/2013

> So do I have to list all the separate blocks of each IAT in the /blocks section of my top level <expt> tag?

Yes. You either need to do that or use the <batch> element. You'll find this covered in the "How to Combine Multiple Scripts" and "Running Sequences of Inquisit Scripts and Other Applications" topics in the documentation.

> Can I somehow create some other intermediate block-of-blocks to include there instead?

No, there is no such thing as a block of blocks. In fact that's what an <expt> essentially is already. Just as a <block> is a collection of trials, an <expt> is a collection of <blocks>. The only other thing you can possibly do is to have several, differently named <expt>s in the same file. Inquisit will run them in alphabetical order. Example:

<expt a>
/ blocks = [1=ablock]
</expt>

<expt b>
/ blocks = [1=bblock]
</expt>

<block ablock>
/ trials = [1=atrial]
</block>

<block bblock>
/ trials = [1=btrial]
</block>

<trial atrial>
/ stimulusframes = [1=atext]
/ validresponse = (57)
</trial>

<trial btrial>
/ stimulusframes = [1=btext]
/ validresponse = (57)
</trial>

<text atext>
/ items = ("A")
</text>

<text btext>
/ items = ("B")
</text>

NB: I do not recommend the above approach. I personally think it is ugly, confusing and error-prone.
By jbfleming - 12/23/2013

Looks like I was adding my supplemental post as you were responding to my first one--you're fast!

It looks like <batch> is what I want.  Are there downsides to <batch>? I just know that I didn't choose it originally based on something I read in the documentation.  However, it seems to me that it's exactly what I want to do.
By Dave - 12/23/2013

Can you define "downside" or at least point to why you decided against using <batch>?
By jbfleming - 12/23/2013

I just took a look at the documentation and I'm pretty sure I used <include> originally because of the statement "For web experiments requiring randomized ordering, the <include> element described below is likely a better option."

However, I have since decided to do my randomization separately from Inquisit, so that no longer applies to me, and <batch> seems like a much better option.
By Dave - 12/23/2013

Also note that the <batch> element has /subjects and /groupassignment attributes (just like <expt>), which means you can assign people to different script sequences based on subject #, group # or randomly. E.g.

<batch>
/ subjects = (1 of 2)
/ file = "A.iqx"
/ file = "B.iqx"
</batch>

<batch>
/ subjects = (2 of 2)
/ file = "B.iqx"
/ file = "A.iqx"
</batch>