Back
Login
Register
Login
Register
Millisecond Forums
Home
»
Millisecond Forums
»
Inquisit 4
»
RE: Remove items from stimulus pool
Remove items from stimulus pool
Post Reply
Like
43
Remove items from stimulus pool
View
Flat Ascending
Flat Descending
Threaded
Options
Subscribe to topic
Print This Topic
RSS Feed
Goto Topics Forum
Author
Message
inquisit_inquiry
inquisit_inquiry
posted 11 Years Ago
ANSWER
HOT
Topic Details
Share Topic
Group: Forum Members
Posts: 4,
Visits: 49
I have multiple conditions for stimulus sentences that I would like participants to make acceptability judgments on. However, if a participant receives sentence 1 in condition 1, I would like to make sure they do not receive sentence 1 from any other condition. The sentences will be presented in a random order each time. What's the best way to make Inquisit do this?
Additionally, I would like to make sure the proportion of sentences from each condition is balanced every time.
I've tried something like the following dummy script (using ontrialend & removeitem to eliminate same-index sentences from the stimulus pool) and it technically runs, but doesn't seem to do anything. Would it be better to use a list to store the stimulus sentences?
<item conditionOne>
/1 = sentence1
/2 = sentence2
/3 = sentence3
</item>
<item conditionTwo>
/1 = 1sentence
/2 = 2sentence
/3 = 3sentence
</item>
<item conditionThree>
/1 = sen1tence
/2 = sen2tence
/3 = sen3tence
</item>
<text conOne>
/items = conditionOne
/select = noreplace
</text>
<text conTwo>
/items = conditionTwo
/select = noreplace
</text>
<text conThree>
/items = conditionThree
/select = noreplace
</text>
<likert conOne>
/stimulusframes = [1=conOne]
/numpoints = 5
/anchors = [1="extremely unnatural"; 2="somewhat unnatural"; 3="possible"; 4="somewhat natural"; 5="extremely natural"]
/ontrialend = [text.conTwo.removeitem(text.conOne.currentindex) && text.conThree.removeitem(text.conOne.currentindex)]
</likert>
(etc, for likert conTwo/conThree)
<block practice>
/trials = [1-3 = noreplace(conOne, conTwo, conThree)]
</block>
<expt>
/blocks = [1 = practice]
</expt>
Reply
Like
43
Dave
Dave
posted 11 Years Ago
ANSWER
Post Details
Share Post
Group: Administrators
Posts: 13K,
Visits: 108K
Simply define a common selection pool for the three <text> elements:
<list mylist>
/ items = (1,2,3)
</list>
<text conOne>
/items = conditionOne
/select = list.mylist.nextvalue
</text>
<text conTwo>
/items = conditionTwo
/select = list.mylist.nextvalue
</text>
<text conThree>
/items = conditionThree
/select = list.mylist.nextvalue
</text>
Reply
Like
37
inquisit_inquiry
inquisit_inquiry
posted 11 Years Ago
ANSWER
Post Details
Share Post
Group: Forum Members
Posts: 4,
Visits: 49
Great! That makes so much sense, thank you.
One more question - is it possible to have the mouse return to the same position on the screen in between each trial?
Reply
Like
51
Dave
Dave
posted 11 Years Ago
ANSWER
Post Details
Share Post
Group: Administrators
Posts: 13K,
Visits: 108K
> is it possible to have the mouse return to the same position on the screen in between each trial?
Not automatically. You'd have to do something along the lines of
https://www.millisecond.com/forums/Topic13214.aspx#bm13217
Reply
Like
46
inquisit_inquiry
inquisit_inquiry
posted 11 Years Ago
ANSWER
Post Details
Share Post
Group: Forum Members
Posts: 4,
Visits: 49
Hi Dave, I have another question for you, about the same script/experiment.
I'd like to have the stimuli appear on the screen (without the rating scale), then have the likert scale appear below the stimulus after the participant presses a button. Is there a way to delay the appearance of the likert scale this way? I know you can do it using responseframe/time, but I want it to be triggered by the participant's response.
I tried presenting the stimuli as a trial first, and then having it branch to a likert, but the problem is that the same sentence doesn't show up for both the trial and the likert (since it selects a new list index...) Here's an example of my code:
<likert originalR>
/stimulusframes = [1 = original, likertInst]
/numpoints = 7
/anchors = [1="extremely unnatural"; 2="somewhat unnatural"; 3="a little unnatural"; 4="possible"; 5="a little natural" 6="somewhat natural"; 7="extremely natural"]
/anchorwidth = 20%
/position = (50%,70%)
</likert>
<trial original>
/stimulusframes = [1 = original, instructions]
/validresponse = (" ")
/branch = [likert.originalR]
</trial>
As always, thanks so much for your help!
Reply
Like
44
Dave
Dave
posted 11 Years Ago
ANSWER
Post Details
Share Post
Group: Administrators
Posts: 13K,
Visits: 108K
You need to set up a separate <trial> that displays the stimulus and accepts the button press and then follow that up with the <likert>.
Reply
Like
41
inquisit_inquiry
inquisit_inquiry
posted 11 Years Ago
ANSWER
Post Details
Share Post
Group: Forum Members
Posts: 4,
Visits: 49
Right - that's what I had. Anyways, I've just figured out how to solve the problem I was having, so all's well. Thanks!
Reply
Like
42
Dave
Dave
posted 11 Years Ago
ANSWER
Post Details
Share Post
Group: Administrators
Posts: 13K,
Visits: 108K
Sorry, I missed the 2nd part of the question. Several options:
(a) Set the <text> element's /erase attribute to 'false' and remove it from the <likert>'s /stimulusframes.
(b) Use <list>s, <values> and a bit of conditional logic to make sure that selection only occurs in the <trial>, but not the <likert>.
Reply
Like
48
GO
Merge Selected
Merge into selected topic...
Merge into merge target...
Merge into a specific topic ID...
Open Merge
Post Reply
Like
43
Post Quoted Reply
Reading This Topic
Login
Login
Remember Me
Reset Password
Resend Validation Email
Login
Facebook
Explore
Messages
Mentions
Search