PennController for IBEX › Forums › Support › conditions in self-paced reading experiment
- This topic has 30 replies, 2 voices, and was last updated 4 years, 2 months ago by
iasmaa.
-
AuthorPosts
-
April 15, 2020 at 8:11 pm #5062
iasmaa
ParticipantHi,
Thank you for your replay. You are helping me a lot with this. I really appreciate it.The context is the “S”.
So that’s what I did:Template(row => newTrial("trials", newText("content", row.S) .print() , newKey(" ") .wait() , getText("content") .remove() , newController("DashedSentence", {s: row.DS}) .print() .wait() .remove() , newKey(" ") .wait() , newText("Answer the following question based on the dashed sentence you have just read") .print() , newScale("yesnocorrect", "Yes","No" ) .labelsPosition("right") .keys() .before( newText(row.CQ) ) .print() .wait() .remove() .log( "correct" , row.Correct1) , newText("Was the dashed sentence grammatically correct?") .print() , newKey(" ") .wait() , newScale("correct", 5) .keys() .before(newText("completely incorrect")) .after(newText("completely correct")) .print() .wait() .remove() .log( "correct" , row.Correct2) , getText("Was the dashed sentence grammaticlly correct?") .remove() , newText("would you replace the article used in the dashed sentence with another one?") .print() , newScale("correct", "The", "A", "An", "No Article") .labelsPosition("top") .before(newText(row.BMC)) .after(newText(row.AMC)) .print() .wait() .log( "correct" , row.Correct3) ) )
So, I have now three columns for the corrects answers of three questions.
Correct1 = the correct answer of the comprehension question.
Correct2 = the correct answer of the rating question.
Correct3 = the correct answer of the multiple choice question.Is that correct?
April 15, 2020 at 8:28 pm #5063Jeremy
KeymasterHi,
The use .log is admittedly confusing, as there are two main types of .log commands: the .log command on an element and the .log command on newTrial(). The first type will add one or more rows to your results file reporting information about the relevant event(s) associated with the element in question, the second type will add a column to every row corresponding to the trial in question.
In your code, you should move the three lines .log( "correct" , row.Correct1), .log( "correct" , row.Correct2) and .log( "correct" , row.Correct3) and stack them immediately after the closing parenthesis of your newTrial command (ie. before your last closing parenthesis, which corresponds to your Template command). You can take a look at the code on this page of the tutorial for an illustration of how .log is used. You should also use unique strings instead of re-using "correct" three times, as those will correspond to column names in your results file, and having multiple columns with the same name will be confusing when analyzing your data.
In addition to that, you also want to use .log() (nothing between the parentheses) on all three of your Scale elements, so they each add a row to your results file when a selection happens.
Finally, I see that you renamed your first Scale element, but your two last Scale elements still share the same name (“correct”) which, again, will be confusing when analyzing your data as you’ll have multiple rows reporting events about similarly-named elements. I suggest your use something like "whicharticle" as the name of your last Scale element.
Jeremy
April 15, 2020 at 8:56 pm #5064iasmaa
ParticipantWhat about now?
Template(row =>
newTrial(“trials”,
newText(“content”, row.S)
.print(),
newKey(” “).wait()
,
getText(“content”)
.remove(),
newController(“DashedSentence”, {s: row.DS})
.print()
.wait()
.remove(),
newKey(” “).wait()
,
newText(“Answer the following quesion based on the dashed sentence you have just read”)
.print(),
newScale(“yesnocorrect”, “Yes”,”No” )
.labelsPosition(“right”)
.keys()
.before( newText(row.CQ) )
.print()
.wait()
.remove()
.log(),
newText(“Was the dashed sentence grammaticly correct?”)
.print(),
newKey(” “)
.wait()
,
newScale(“correct”, 5)
.keys()
.before(newText(“completely incorrect”))
.after(newText(“completely correct”))
.print()
.wait()
.remove()
.log()
,getText(“Was the dashed sentence grammaticly correct?”)
.remove(),
newText(“would you replace the article used in the dashed sentence with another one?”)
.print()
,
newScale(“correct”, “The”, “A”, “An”, “No Article”)
.labelsPosition(“top”)
.before(newText(row.BMC))
.after(newText(row.AMC))
.print()
.wait()
.log())
.log( “correct” , row.Correct1)
.log( “correct” , row.Correct2)
.log( “correct” , row.Correct3)
)April 15, 2020 at 9:06 pm #5065Jeremy
KeymasterAlmost there, you just didn’t change the "correct" column names, nor did you use a different name for your last Scale element
April 15, 2020 at 9:11 pm #5066iasmaa
ParticipantYou mean like this?
.log( “correct” , row.Correct_CQ)
.log( “correct” , row.Correct_RQ)
.log( “correct” , row.Correct_MC)or the “correct”?
April 16, 2020 at 11:13 am #5069Jeremy
KeymasterNo, I was referring to "correct", not row.CorrectN. By column names I meant the columns that get added to each line of your results file, as I describe above in my explanations of how newTrial().log works.
Jeremy
June 16, 2020 at 10:40 am #5651iasmaa
ParticipantThank you for this.
I have a problem with the timestamp for the self-paced reading times as it is not there. It is done automatically in the original IBEX interface.
June 16, 2020 at 1:13 pm #5654Jeremy
KeymasterHi,
Did you use log on the Controller element? It should report one line per word in the results file, the same way that the original IBEX controller does, including reading times
Jeremy
June 18, 2020 at 10:15 am #5673iasmaa
ParticipantHi,
Yes I did. It shows only some of the dashed sentences but not all! I do not know why.
Template(row => newTrial("trials", newText("content", row.S) .print() , newKey(" ") .wait() , getText("content") .remove() , newController("DashedSentence", {s: row.DS}) .print() .wait() .remove() .log() , newText("Answer the following question based on the dashed sentence you have just read <br/> <br/>") .print() , newScale("yesnocorrect", "Yes","No" ) .labelsPosition("right") .keys() .before( newText(row.CQ) ) .print() .wait() .remove() .log() , newText("Was the dashed sentence grammatically correct? <br/> <br/>") .print() , newScale("correct", 5) .keys() .before(newText("completely incorrect")) .after(newText("completely correct")) .print() .wait() .remove() .log() , getText("Was the dashed sentence grammatically correct? <br/> <br/>") .remove() , newText("Would you replace the article used in the dashed sentence with another one? <br/> <br/>") .print() , newScale("correct", " the ", " a ", " an ", "(No Article)") .labelsPosition("top") .before(newText(row.BMC)) .after(newText(row.AMC)) .print() .wait() .log() ) .log("DashedSentence", row.DS) .log( "CQcorrect" , row.Correct1) .log( "RQcorrect" , row.Correct2) .log( "MCcorrect" , row.Correct3) .log("group", row.group) )
June 18, 2020 at 11:14 am #5674Jeremy
KeymasterHi,
Not sure what is happening in your case, as in mine it works just fine. Here are four (non-consecutive) lines from my results file:
1592492904,MD5,PennController,0,0,trials,NULL,Controller-DashedSentence,test,4,first,1592492877807,This is the first dashed sentence,C1,C2,C2,A,227,false,This is the first dashed sentence,Any addtional parameters were appended as additional columns 1592492904,MD5,PennController,1,0,trials,NULL,Controller-DashedSentence,test,4,second,1592492884440,This is the second dashed sentence,C1,C2,C2,A,174,false,This is the second dashed sentence,Any addtional parameters were appended as additional columns 1592492904,MD5,PennController,2,0,trials,NULL,Controller-DashedSentence,test,4,third,1592492891879,This is the third dashed sentence,C1,C2,C2,A,191,false,This is the third dashed sentence,Any addtional parameters were appended as additional columns 1592492904,MD5,PennController,3,0,trials,NULL,Controller-DashedSentence,test,4,fourth,1592492900624,This is the fourth dashed sentence,C1,C2,C2,A,1142,false,This is the fourth dashed sentence,Any addtional parameters were appended as additional columns
As you can see, and as described in the comments of the results file, column 18 (the one after “A”—the group) reports reading times. In this case, I spend 227ms reading “first” in the sentence “This is the first dashed sentence,” 174ms reading “second” in “This is the second dashed sentence,” etc.
When you say it shows only some of the dashed sentence, do you mean that the RTs get reported fine but you’re missing lines corresponding to an entire DashedSentence element in your results file?
Jeremy
June 18, 2020 at 6:59 pm #5676iasmaa
ParticipantHi,
This is what I got:
1592488880,d6628004c21ed07c08eddc862a664f03,PennController,28,0,trials,NULL,Controller-DashedSentence,DashedSentence,1,But…,1592488766484,262,false,But… Bill sold used cars for twenty years.,Any addtional parameters were appended as additional columns
1592488880,d6628004c21ed07c08eddc862a664f03,PennController,28,0,trials,NULL,Controller-DashedSentence,DashedSentence,2,Bill,1592488766484,276,false,But… Bill sold used cars for twenty years.,Any addtional parameters were appended as additional columns
1592488880,d6628004c21ed07c08eddc862a664f03,PennController,28,0,trials,NULL,Controller-DashedSentence,DashedSentence,3,sold,1592488766484,253,false,But… Bill sold used cars for twenty years.,Any addtional parameters were appended as additional columns
1592488880,d6628004c21ed07c08eddc862a664f03,PennController,28,0,trials,NULL,Controller-DashedSentence,DashedSentence,4,used,1592488766484,261,false,But… Bill sold used cars for twenty years.,Any addtional parameters were appended as additional columns
1592488880,d6628004c21ed07c08eddc862a664f03,PennController,28,0,trials,NULL,Controller-DashedSentence,DashedSentence,5,cars,1592488766484,245,false,But… Bill sold used cars for twenty years.,Any addtional parameters were appended as additional columns
1592488880,d6628004c21ed07c08eddc862a664f03,PennController,28,0,trials,NULL,Controller-DashedSentence,DashedSentence,6,for,1592488766484,264,false,But… Bill sold used cars for twenty years.,Any addtional parameters were appended as additional columns
1592488880,d6628004c21ed07c08eddc862a664f03,PennController,28,0,trials,NULL,Controller-DashedSentence,DashedSentence,7,twenty,1592488766484,268,false,But… Bill sold used cars for twenty years.,Any addtional parameters were appended as additional columns
1592488880,d6628004c21ed07c08eddc862a664f03,PennController,28,0,trials,NULL,Controller-DashedSentence,DashedSentence,8,years.,1592488766484,244,false,But… Bill sold used cars for twenty years.,Any addtional parameters were appended as additional columns
1592488880,d6628004c21ed07c08eddc862a664f03,PennController,28,0,trials,NULL,Controller-DashedSentence,DashedSentence,1,But…,1592488766484,262,false,But… Bill sold used cars for twenty years.,Any addtional parameters were appended as additional columns
1592488880,d6628004c21ed07c08eddc862a664f03,PennController,28,0,trials,NULL,Controller-DashedSentence,DashedSentence,2,Bill,1592488766484,276,false,But… Bill sold used cars for twenty years.,Any addtional parameters were appended as additional columns
1592488880,d6628004c21ed07c08eddc862a664f03,PennController,28,0,trials,NULL,Controller-DashedSentence,DashedSentence,3,sold,1592488766484,253,false,But… Bill sold used cars for twenty years.,Any addtional parameters were appended as additional columns
1592488880,d6628004c21ed07c08eddc862a664f03,PennController,28,0,trials,NULL,Controller-DashedSentence,DashedSentence,4,used,1592488766484,261,false,But… Bill sold used cars for twenty years.,Any addtional parameters were appended as additional columns
1592488880,d6628004c21ed07c08eddc862a664f03,PennController,28,0,trials,NULL,Controller-DashedSentence,DashedSentence,5,cars,1592488766484,245,false,But… Bill sold used cars for twenty years.,Any addtional parameters were appended as additional columns
1592488880,d6628004c21ed07c08eddc862a664f03,PennController,28,0,trials,NULL,Controller-DashedSentence,DashedSentence,6,for,1592488766484,264,false,But… Bill sold used cars for twenty years.,Any addtional parameters were appended as additional columns
1592488880,d6628004c21ed07c08eddc862a664f03,PennController,28,0,trials,NULL,Controller-DashedSentence,DashedSentence,7,twenty,1592488766484,268,false,But… Bill sold used cars for twenty years.,Any addtional parameters were appended as additional columns
1592488880,d6628004c21ed07c08eddc862a664f03,PennController,28,0,trials,NULL,Controller-DashedSentence,DashedSentence,8,years.,1592488766484,244,false,But… Bill sold used cars for twenty years.,Any addtional parameters were appended as additional columnsJune 18, 2020 at 11:29 pm #5678Jeremy
KeymasterThe reading time for “But…” (first line) was 262ms, the one for “Bill” (second line) was 276ms, etc.
Jeremy
June 24, 2020 at 10:46 am #5707iasmaa
ParticipantHi,
Thank you for this.
one more question and hopefully the last: Is there any way to change the presentation of my items (in the experiment) which are already in a tamplet? because it comes as a one long sentence like this:
I really like going to this museum. It’s a small museum. Usually, it’s almost empty. But yesterday, I came to the museum and I heard lots of voices.and I want it to be like this:
I really like going to this museum.
It’s a small museum.
Usually, it’s almost empty.
But yesterday, I came to the museum and I heard lots of voices.but I can’t change that in the CSV file.
Is there any other way than write each item seperatly in the main file and use the <br/> code?
June 24, 2020 at 11:06 am #5708Jeremy
KeymasterHi,
If you want to insert a linebreak after each period, then you’ll need to implement an alternative method, because DashedSentence does not support linebreaks. If you’re only concerned that the sentence is too wide though, you can easily control your element’s width using size, like this:
newController("DashedSentence", {s: row.DS}) .print() .size("30em") .wait() .remove() .log()
Jeremy
June 24, 2020 at 11:10 am #5709iasmaa
ParticipantHi,
I do not mean the dashed sentence. I have a context sentence comes before and it appears as a block not dashed.
-
AuthorPosts
- You must be logged in to reply to this topic.