Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond
Credits:
Millisecond thanks Dr. Todd Braver and the Braver Lab for collaboration on this script!
Created: January 03, 2021
Last Modified: January 10, 2025 by K. Borchert (katjab@millisecond.com), Millisecond
Script Copyright © Millisecond Software, LLC
This script implements the Permuted Rules Operation Task by Cole et al (2018). The Permuted Rules Operation Task is used to investigate whether goal-relevant information that is learned for a 'rapid instructed task learning' (RITL) type task is actively maintained (from training) in preparation for anticipated high control tasks later on.
The implemented procedure is based on the original e-prime script (generously shared by the Braver Lab) which intermixes Novel and Practiced trials, and uses self-paced preparation (see Experiment 3 in Cole et al, 2018).
This Inquisit script implements the TEST session only.
1.5 hours.
The basic task of the Permuted Rules Operation Task is as follows: Participants are presented with two words (e.g. "computer" and "bunny") and have to respond to the 2 words as fast as they can according to three rules presented to them beforehand.
The three rules come from the following three rule dimensions (each with four rules => 12 rules total):
Sensory Semantic Rules: question to ask oneself for each of the two words a) "is it GREEN?" b) "is it SOFT?" c) "is it SWEET?" d) "is it LOUD?"
Logical Rules: evaluate the words according to the following rules a) "is your answer the SAME for both words? Then press the current yes-key (otherwise press the current no-key)" b) "is your answer DIFFERENT for both words? Then press the current yes-key (otherwise press the current no-key)" c) "is your answer true for the SECOND word? Then press the current yes-key (otherwise press the current no-key)" d) "is your answer false for the SECOND word? Then press the current yes-key (otherwise press the current no-key)"
Motor Response: the possible motor responses (defines the yes-key and the no-key; only the yes-key is explicitly provided) a) yes-key: respond with left index finger (F); no-key: respond with left middle finger (D) b) yes-key: respond with left middle finger (D); no-key: respond with left index finger (F) c) yes-key: respond with right index finger (J); no-key: respond with right middle finger (K) D) yes-key: respond with right middle finger (K); no-key: respond with right index finger (J)
Example: the rules provided to evaluate the pair "computer/bunny" are: SOFT left-index finger SAME
=> correct response is to press the left-MIDDLE finger (the implicit no-key) since the answer to both probe words is, in fact, not the same: computer = not soft, bunny = soft
There are 64 (4x4x4) total rule-combinations. In a previous practice session (permutedrulesoperationtask_practice.iqjs) participants were assigned 4 of these to practice (assignment is done by groupnumber). The assigned 4 rule combinations practiced each of the 12 rules exactly one time (so participants get familiar with each of the 12 rules).
This script briefly 'reminds' participants of the practiced rule combinations*. Afterwards participants work through several blocks in which practiced and novel rule combinations are tested within a mixed format.
• both the practice and test script have to be run with the same groupnumber!
This script counterbalances the assigment of the 4 practice rule combinations by groupnumber assignment (16 groups).
Each groupnumber runs a unique combination of rules so that each of the 12 rules is practiced exactly one time.
The practice rule combinations are assigned under the 'expt'- elements (see section EXPERIMENT):
values.practiceCombinationA, values.practiceCombinationB, values.practiceCombinationC, values.practiceCombinationD.
the groupnumber should be the same as used during practice!
Stimuli used (see Cole et al., 2010): 180 concrete semantic nouns, selected based on their
clear selectivity into the tested semantic categories.
The stimuli were selected during a previous norming study, such that each word can
be used by only 2 rules (so each word appears twice across
item.probeStimLoud/item.probeStimSoft/item.probeStimColor/item.probeStimSweet)
This was to ensure that each word is not 100% associated with a particular semantic category
while at the same time avoiding ambiguous semantic situations,
such as whether an apple is green (sometimes it is, sometimes it is not).
provided by original e-prime script - see section Editable Instructions
File Name: permutedrulesoperationtask_test_summary*.iqdat
| Name | Description |
|---|---|
| inquisit.version | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| computer.touch | 0 = device has no touchscreen capabilities; 1 = device has touchscreen capabilities |
| computer.hasKeyboard | 0 = no external keyboard detected; 1 = external keyboard detected |
| startDate | Date the session was run |
| startTime | Time the session was run |
| subjectId | Participant ID |
| groupId | Group number |
| sessionId | Session number |
| elapsedTime | Session duration in ms |
| completed | 0 = Test was not completed 1 = Test was completed |
| practiceCombinationA | The assigned index of practice Combination A (refers to index (=position) in: list.rulecombinations) |
| practiceCombinationB | The assigned index of practice Combination B (refers to index (=position) in: list.rulecombinations) |
| practiceCombinationC | The assigned index of practice Combination C (refers to index (=position) in: list.rulecombinations) |
| practiceCombinationD | The assigned index of practice Combination D (refers to index (=position) in: list.rulecombinations) |
| propCorrectOverall | ProportionCorrect responses across all test blocks and trials |
| countNROverall | The number of no responses across all test blocks and trials |
| meanCorrRTOverall | The mean response time (in ms) of correct responses across all test blocks and trials |
| propCorrectOverallP | ProportionCorrect responses for Practiced rule combinations across all test blocks |
| countNROverallP | The number of no responses for Practiced rule combinations across all test blocks |
| meanCorrRTOverallP | The mean response time (in ms) of correct responses for Practiced rule combinations across all test blocks |
| propCorrectOverallN | ProportionCorrect responses for Novel rule combinations across all test blocks |
| countNROverallN | The number of no responses for Novel rule combinations across all test blocks |
| meanCorrRTOverallN | The mean response time (in ms) of correct responses for Novel rule combinations across all test blocks |
| meanPrepRTOverall | The mean response time (in ms) for the rule cue presentation trials across Practice and Novel pairs |
| meanPrepRTOverallP | The mean response time (in ms) for the rule cue presentation trials across Practice pairs |
| meanPrepRTOverallN | The mean response time (in ms) for the rule cue presentation trials across Novel pairs ( timeout responses (10s) are included) |
Per Test Block 1-10 (Only Explained For Block1) |
|
| acc1P | ProportionCorrect responses in first test block for Practiced Rule Combinations |
| nr1P | Number of no responses in first test block for Practiced Rule Combinations |
| corrRT1P | The mean response time (in ms) of correct responses in first test block for Practiced Rule Combinations |
| acc1N | ProportionCorrect responses in first test block for Novel Rule Combinations |
| nr1N | Number of no responses in first test block for Novel Rule Combinations |
| corrRT1N | The mean response time (in ms) of correct responses in first test block for Novel Rule Combinations |
File Name: permutedrulesoperationtask_test_raw*.iqdat
| Name | Description |
|---|---|
| build | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| computer.touch | 0 = device has no touchscreen capabilities; 1 = device has touchscreen capabilities |
| computer.hasKeyboard | 0 = no external keyboard detected; 1 = external keyboard detected |
| date | Date the session was run |
| time | Time the session was run |
| subject | Participant ID |
| group | Group number |
| session | Session number |
| blockcode | The name the current block (built-in Inquisit variable) |
| blocknum | The number of the current block (built-in Inquisit variable) |
| trialcode | The name of the currently recorded trial (built-in Inquisit variable) |
| trialnum | The number of the currently recorded trial (built-in Inquisit variable) trialnum is a built-in Inquisit variable; it counts all trials run even those that do not store data to the data file. |
| practiceCombinationA | The assigned index of practice Combination A (refers to index (=position) in: list.rulecombinations) |
| practiceCombinationB | The assigned index of practice Combination B (refers to index (=position) in: list.rulecombinations) |
| practiceCombinationC | The assigned index of practice Combination C (refers to index (=position) in: list.rulecombinations) |
| practiceCombinationD | The assigned index of practice Combination D (refers to index (=position) in: list.rulecombinations) |
| phase | "demo" vs. "practice" |
| blockCounter | A counter that tracks the number of blocks run per phase demo: 8 blocks run (each block runs 4 trials) practice: 16 blocks run (each block runs 72 trials) |
| trialCounter | A counter that tracks the number of trials run for phase 'test' the counter does NOT reset after each block |
| trialCounterPerBlock | A counter that tracks the number of trials run per block |
| trialType | 1 = practiced rule combination; 2 = novel rule combination |
| selectedCombination | Stores the currently selected practice rule combination index (out of 64 possible) |
| probeType | The selected probe type: 1-4 (see values.probe1SemAnswer/values.probe2SemAnswer) 1 = yes-yes 2 = no-no 3 = yes-no 4 = no-yes |
| probe1Stim | The selected stimulus for the first probe |
| probe1Num | The itemnumber of the selected first stimulus (on its respective item list -> depends on values.sensorySemanticCue) the itemnumbers are 0-based |
| probe2Stim | The selected stimulus for the second probe |
| probe2Num | The itemnumber of the selected second stimulus (on its respective item list -> depends on values.sensorySemanticCue) the itemnumbers are 0-based |
| sensorySemanticCue | SWEET, LOUD, GREEN, SOFT |
| logicalDecisionCue | SAME, DIFFERENT, second Stim, not second Stim |
| motorResponseCue | Left middle, left index, right index, right middle |
| yesResponseKey | The assigned key for the 'yes' response (for the currently displayed probes) |
| noResponseKey | The assigned key for the 'no' response (for the currently displayed probes) |
| probe1SemAnswer | 'yes' or 'no' |
| probe2SemAnswer | 'yes' or 'no' |
| iti | The variable intertrial duration (in ms) |
| correctResponseKey | The response button assigned to the correct response for the currently presented probes |
Custom Dvs |
|
| resp | Stores the pressed response button (NR = no response) |
| answeredYes | 1 = participant pressed the assigned yes-key; 0 = participant did not press the assigned yes-key (also applies to NR) |
| wrongHand | 1 = participant responded with keys from the wrong hand; 0 = participant did not respond with keys from the wrong hand (also applies to NR) |
| answerCorrect | 1 = the response was correct; 0 = the response was incorrect (also applies to NR) |
| rt | The response time (in ms); measured from onset of probes (NR = no response) |
| prepRT | The response time (in ms) during self-paced instruction trials during the test ( timeout response = 10s) |
| list.accPerBlock.mean | The current proportionCorrect responses in the given practice block ( not meaningful for demo blocks) |
| feedback | 1 = correct 2 = incorrect 3 = wrong hand 4 = correct but too slow 5 = no response |
| respRecogPracticedRules | Y(es) vs. N(o) |
| rtRecogPracticedRules | Response time (in ms) |
Built-In Dvs |
|
| response | The participant's response (scancode of response buttons) |
| correct | Accuracy of response: 1 = correct response; 0 = otherwise |
| latency | The response latency (in ms) |
The procedure can be adjusted by setting the following parameters.
| Name | Description | Default |
|---|---|---|
Design: The Number Of Blocks X Number Of Trials Should Result In A Multiple Of 60 (To Ensure That Each Novel Combination Is Run At Least Once) |
||
| numberOfMixedTestBlocks | The number of mixed test blocks to run | 10 |
| numberOfTrialsPerTestBlock | The number of trials each mixed test block should run half the trials will present Practiced (Novel) rule combinations | 36 |
Timing Parameters |
||
| timeoutRulesCue | A long timeout (in ms) for the rules cue presentation (=> task should still be viewed as self-paced) | 10000 |
| probeDurationFinal | The probeDuration (in ms) for all trials during mixed test phase | 1500 |
| responseWindowFinal | The response window (in ms) for all trials during mixed test phase | 2000 |
| feedbackDelay | Feedback delay (in ms) after responding | 1000 |
| feedbackDuration | The feedback duration (in ms) for the practice trials | 1000 |
Response Keys |
||
| leftKeyM | The left key on the keyboard that is assigned to be used by the left middle finger | "D" |
| leftKeyI | The left key on the keyboard that is assigned to be used by the left index finger | "F" |
| rightKeyI | The right key on the keyboard that is assigned to be used by the right index finger | "J" |
| rightKeyM | The right key on the keyboard that is assigned to be used by the right middle finger | "K" |
Debugging Timings |
||
| timeoutRulesCueMonkey | A long timeout (in ms) for the rules cue presentation (=> task should still be viewed as self-paced) | 100 |
| probeDurationFinalMonkey | The probeDuration (in ms) during the first X trials during the practice phase | 150 |
| responseWindowFinalMonkey | The response window (in ms) during the first X trials during the practice phase | 200 |
| feedbackDelayMonkey | Feedback delay (in ms) after responding | 100 |
| feedbackDurationMonkey | The feedback duration (in ms) for the practice trials | 100 |