conditions in self-paced reading experiment

PennController for IBEX Forums Support conditions in self-paced reading experiment

This topic contains 30 replies, has 2 voices, and was last updated by Avatar iasmaa 1 week, 6 days ago.

Viewing 15 posts - 16 through 30 (of 31 total)
  • Author
    Posts
  • #5062
    Avatar
    iasmaa
    Participant

    Hi,
    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?

    #5063
    Jeremy
    Jeremy
    Keymaster

    Hi,

    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

    #5064
    Avatar
    iasmaa
    Participant

    What 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)
    )

    #5065
    Jeremy
    Jeremy
    Keymaster

    Almost there, you just didn’t change the "correct" column names, nor did you use a different name for your last Scale element

    #5066
    Avatar
    iasmaa
    Participant

    You mean like this?

    .log( “correct” , row.Correct_CQ)
    .log( “correct” , row.Correct_RQ)
    .log( “correct” , row.Correct_MC)

    or the “correct”?

    #5069
    Jeremy
    Jeremy
    Keymaster

    No, 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

    #5651
    Avatar
    iasmaa
    Participant

    Thank 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.

    #5654
    Jeremy
    Jeremy
    Keymaster

    Hi,

    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

    #5673
    Avatar
    iasmaa
    Participant

    Hi,

    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)
    )
    #5674
    Jeremy
    Jeremy
    Keymaster

    Hi,

    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

    #5676
    Avatar
    iasmaa
    Participant

    Hi,

    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 columns

    #5678
    Jeremy
    Jeremy
    Keymaster

    The reading time for “But…” (first line) was 262ms, the one for “Bill” (second line) was 276ms, etc.

    Jeremy

    #5707
    Avatar
    iasmaa
    Participant

    Hi,

    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?

    #5708
    Jeremy
    Jeremy
    Keymaster

    Hi,

    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

    #5709
    Avatar
    iasmaa
    Participant

    Hi,

    I do not mean the dashed sentence. I have a context sentence comes before and it appears as a block not dashed.

Viewing 15 posts - 16 through 30 (of 31 total)

You must be logged in to reply to this topic.