Reply To: Scale order troubles + logging oddities

PennController for IBEX Forums Support Scale order troubles + logging oddities Reply To: Scale order troubles + logging oddities

#10846
Jeremy
Keymaster

Hi,

1) Your script waits for a selection on the first scale before printing the second and third ones in a row, then it wait for a selection on the third scale, and after that it waits for a selection on the Selector element, which contains the second and third scales. So what the participant needs to do to execute the whole script is: select a value on the first scale, then select a value on the third scale, and then select a value on the second scale (or a different value on the third scale)

Remove the .wait() on the third Scale element, and before the second Scale element create a button named, say, “next” (newButton("next")) then add a callback command both on the second and on the third Scale elements that clicks said button (.callback( getButton("next").click() )) and replace the whole Selector bit with:

getButton("next")
    .wait( getScale("acceptability2").test.selected().and(getScale("acceptability3").test.selected()) )

2) Stuff does get appended in the same columns for all the trials generated by myCustomTrialFunction. The “part2” trials, and all the other trials not generated by that function, will indeed either report blank values in the final columns, or report unrelated values if you also use .log on their newTrial (as you do for the “part2” trials)

3) You can distinguish which of the three versions a results line corresponds to by comparing the value logged in the “contextsetter” and “targetsentence” columns, with the values reported in the “contextcomparative”/”contextequative”/”contextquestion” and “comparativequestion”/”equativequestion”/”questionquestion” columns, respectively

If you want to directly log the version info in the results file, you could pass an additional parameter, say “version”, as part of row and use that in log:

new_targets = new_targets.map(t=>
    [ {contextsetter: t['contextcomparative'], targetsentence: t['comparativequestion'], version: "comp", ...t},
      {contextsetter: t['contextequative'], targetsentence: t['equativequestion'], version: "eq", ...t},
      {contextsetter: t['contextquestion'], targetsentence: t['questionquestion'], version: "qu" ...t}
    ].map(row => ["experiment_"+t.pair,"PennController", myCustomTrialFunction(row).log("version", row.version)] )
).flat();

Jeremy