Millisecond Forums

RSPAN Task not working properly?

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

By fksmo07 - 6/27/2022

Hi, I don't know if its me or script from library for RSPAN Task is not working properly, especially part with sentence feedback. During the practice session it always shows sentence answer as correct even if its not and during the test session it counts correct sentences as incorrect.

I just wanted to report this issue.

By Dave - 6/27/2022

fksmo07 - 6/27/2022
Hi, I don't know if its me or script from library for RSPAN Task is not working properly, especially part with sentence feedback. During the practice session it always shows sentence answer as correct even if its not and during the test session it counts correct sentences as incorrect.

I just wanted to report this issue.


Thanks for the report. You are correct, evidently two mistakes snuck in when the script was last revised. The fixes are as follows:

(1) In <trial prac_solve_sentence>, change

<trial prac_solve_sentence>
/ pretrialpause = 200
/ stimulusframes = [1=BlackFrame, GrayFrame, PracSentenceAnswer, TRUE, FALSE]
/ validresponse = (TRUE, FALSE)
/ iscorrectresponse = [
    return list.PracSentenceCorrect.nextvalue;
]

/ responsemessage = (anyresponse, PracSentenceAnswer, 800)
/ correctmessage = true(correcttext, 800)
/ errormessage = true(incorrecttext, 800)
/ ontrialend = [
    values.sentenceaccuracy=round(((values.sentenceproblemcount-values.sentencetotalerrors)/values.sentenceproblemcount)*100);
    values.correctSentences_perTrial += trial.prac_solve_sentence.correct;
]
/ branch = [
    if (trial.prac_show_sentence.trialcount >= list.PracSentencelist.itemcount) {
        return trial.prac_sentence_feedback;
    } else {
        return trial.prac_show_sentence;
    };
]
/ recorddata = true
</trial>

either to

<trial prac_solve_sentence>
/ pretrialpause = 200
/ stimulusframes = [1=BlackFrame, GrayFrame, PracSentenceAnswer, TRUE, FALSE]
/ validresponse = (TRUE, FALSE)
/ iscorrectresponse = [
  return trial.prac_solve_sentence.response == list.PracSentenceCorrect.nextvalue;
]

/ responsemessage = (anyresponse, PracSentenceAnswer, 800)
/ correctmessage = true(correcttext, 800)
/ errormessage = true(incorrecttext, 800)
/ ontrialend = [
  values.sentenceaccuracy=round(((values.sentenceproblemcount-values.sentencetotalerrors)/values.sentenceproblemcount)*100);
  values.correctSentences_perTrial += trial.prac_solve_sentence.correct;
]
/ branch = [
  if (trial.prac_show_sentence.trialcount >= list.PracSentencelist.itemcount) {
   return trial.prac_sentence_feedback;
  } else {
   return trial.prac_show_sentence;
  };
]
/ recorddata = true
</trial>

or to

<trial prac_solve_sentence>
/ pretrialpause = 200
/ stimulusframes = [1=BlackFrame, GrayFrame, PracSentenceAnswer, TRUE, FALSE]
/ validresponse = (TRUE, FALSE)
/ correctresponse = (list.PracSentenceCorrect.nextvalue)
/ responsemessage = (anyresponse, PracSentenceAnswer, 800)
/ correctmessage = true(correcttext, 800)
/ errormessage = true(incorrecttext, 800)
/ ontrialend = [
    values.sentenceaccuracy=round(((values.sentenceproblemcount-values.sentencetotalerrors)/values.sentenceproblemcount)*100);
    values.correctSentences_perTrial += trial.prac_solve_sentence.correct;
]
/ branch = [
    if (trial.prac_show_sentence.trialcount >= list.PracSentencelist.itemcount) {
        return trial.prac_sentence_feedback;
    } else {
        return trial.prac_show_sentence;
    };
]
/ recorddata = true
</trial>

(both will work)


(2) In <trial solve_sentence>, change

<trial solve_sentence>
/ ontrialend = [
    if (trial.solve_sentence.correct==0) {
        values.sentencecurrenterrors +=1;
        values.sentenceaccerrors +=1;
        values.sentencetotalerrors +=1;
    };
]
/ pretrialpause = 200
/ stimulusframes = [1=BlackFrame, GrayFrame, SentenceAnswer, TRUE, FALSE, sentencedebug]
/ validresponse = (TRUE, FALSE)
/correctresponse = (item.SentenceCorrect.item(text.SentenceAnswer.currentitemnumber))
/ ontrialend = [
    values.sentenceaccuracy=round(((values.sentenceproblemcount-values.sentencetotalerrors)/values.sentenceproblemcount)*100);
    values.correctSentences_perTrial += trial.solve_sentence.correct;//compute the number of correct sentences per trial
]
/ branch = [
    return trial.show_letter;
]
/ recorddata = true
</trial>

to

<trial solve_sentence>
/ ontrialend = [
    if (trial.solve_sentence.correct==0) {
        values.sentencecurrenterrors +=1;
        values.sentenceaccerrors +=1;
        values.sentencetotalerrors +=1;
    };
]
/ pretrialpause = 200
/ stimulusframes = [1=BlackFrame, GrayFrame, SentenceAnswer, TRUE, FALSE, sentencedebug]
/ validresponse = (TRUE, FALSE)
/correctresponse = (item.SentenceCorrect.item(text.SentenceProblem.currentitemnumber))
/ ontrialend = [
    values.sentenceaccuracy=round(((values.sentenceproblemcount-values.sentencetotalerrors)/values.sentenceproblemcount)*100);
    values.correctSentences_perTrial += trial.solve_sentence.correct;//compute the number of correct sentences per trial
]
/ branch = [
    return trial.show_letter;
]
/ recorddata = true
</trial>