WORTKLAU (German UNRAVEL Task)

Technical Manual

Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond

Created: January 25, 2017

Last Modified: August 03, 2026 by K. Borchert (katjab@millisecond.com), Millisecond

Script Copyright © Millisecond Software, LLC

Background

This script implements the German UNRAVEL paradigm called WORTKLAU. The UNRAVEL/WORTKLAU task is a test of placekeeping ability: the ability to perform the steps of a complex task in a prescribed order without skipping or repeating steps.

Because the UNRAVEL paradigm relies entirely on an English mnemonic acronym to help participants memorize the order of the cognitive operations, researchers in other languages may have to completely redesign the acronym and the corresponding ruleset to fit their own language. The German WORTKLAU version was published by Radovic & Manzey (2019).

Each letter in the acronym WORTKLAU ('word-theft') stands for one of eight distinct categorization tasks that need to be performed in repeated sequences without external reminders of the target task at any one point - even after distractor tasks. Each of the tasks has designated response keys. The use of a particular response key is thus indicative of the task being performed.

This task requires the use of a keyboard. If the script cannot find a keyboard, an alert is given and the script is automatically terminated.

Note: the Inquisit WORTKLAU version uses the framework of the original UNRAVEL task (including the type of interruption tasks used by Altmann et al, 2014). The individual tasks, however, follow the logic of the Radovic & Manzey (2019) WORTKLAU task.

References

Wortklau
Radović T and Manzey D (2019) The Impact of a Mnemonic Acronym on Learning and Performing a Procedural Task and Its Resilience Toward Interruptions. Front. Psychol. 10:2522. doi: 10.3389/fpsyg.2019.02522

Unravel
Altmann, E. M., Trafton, J. G., & Hambrick, D. Z. (2014). Momentary interruptions can derail the train of thought. Journal of Experimental Psychology: General, 143, 215–226

Duration

30 minutes

Description

On each trial participants see a character (a digit or a letter) inside a box and another character (letter or digit) outside of it (above or below the box). The character inside the box is placed on the left side of the box. A black or white dot rests on the right side of the box. The outside character is presented above or below the dot.

One of the characters is a letter (default letters used: A, B, U, X) and the other a digit (default digits: 1, 2, 8, 9). One of the characters is colorful (red or blue), the other is black. The letter is either underlined or not. The dot is either black or white. The box is either framed by a continuous line or by a dotted line.

Participants are asked to work through 8 categorization tasks in sequence without prompts telling them which task to perfrom on any given trial other than the acronym 'WORTKLAU' as a sequence guide: 1 W: Dot is white or black? W (weiss/White) S (schwarz/black) 2 O: Letter is without or with line? O (ohne/without) M (mit/with) 3 R: Letter/number is red or blue? R (rot/red) B (blau/blue) 4 T: Letter/number is below or above the box? T (tiefer/below) H (hoeher/above) 5 K: Letter is consonant or vowel? K (Konsonant/consonant) V (Vokal/vowel) 6 L: Box consists of lines or dots? L (Linien/lines) P (Punkte/dots) 7 A: Letter is at the beginning or end of alphabet? A (Anfang/beginning) E (Ende/end) 8 U: Number is odd or even? U (ungerade/odd), G (gerade/even)

Because each task uses unique response keys, the choice of response key on any given trial indicates the type of task (and its place in the WORTKLAU sequence) performed. On average, every 6 trials a distractor task (interruption) is presented: twice participants are asked to enter a displayed code into a textbox. Only if the code is entered correctly, is the participant returned to the current place in the WORTKLAU trial sequence.

Procedure

1. Demo Tutorial: Participants Learn About The Meaning Of The Acronym Wortklau While Working Through Each Task In Sequence.
During the tutorial, participants are told the correct responses to the task at hand (and only those responses advance the tutorial).

2. Practice: 16 Practice Trials With 2 Semi-Randomly Placed Interruptions (By Default, Interruptions Occur Randomly After 3, 6, Or 7 Trials)
In this script, the average number of trials before an interruption = 5.3333 (see list.uninterruptedPracticeTrials under section Editable Lists for more detail)
During practice, errorfeedback in the form of a white flash is provided for incorrect responses and participants have to correct the incorrect response
before advancing.

3. Test: 4 Blocks With ~66 Test Trials Per Block
- there is no errorfeedback during the test trials
- each block starts with the U task but participants are never reminded of their place in the WORTKLAU sequence
(they can, however, view the rules during each trial by pressing the Tab-key)
- Accuracy is based on:
a) Did the participant stay in sequence (being in sequence is based on the last performed task)? AND
b) was the selected response key correct given the current stimuli (irrespective of sequence standing)?
- at the end of each block: performance feedback and -if appropriate- reminder to a) be faster or b) be more accurate


- 10 randomly placed interruptions per block.
in this script, the sampling process to sample the number of WORTKLAU trials before an interruptions is determined as follows:

N = B + floor(-ln(U(0, 1))/R) (see expressions.generateNextInterruption)

N = number of trials before an interruption occurs
B = 3 (see parameters.MinTestRun)
R = .288 is the rate parameter for the exponential distribution,
U(0, 1) is a random sample from a uniform distribution bounded by 0 and 1.

The average number of trials before an interruption as calculated with this equation is ~6.

- interruption task: 2 code trials - each trial presents a 14 letter code that needs to be entered correctly into a textbox
if the code was entered incorrectly, the trial gets repeated (the code stays the same) before it moves on
See list.lengthInterruptCode and list.interruptCode for more detail and to change the length/nature of the code.
Example code: 'icvafuobermyln'

Wortklau Trial Sequence:
overview: (START) WORTKLAU trials -> interruption 1 -> WORTKLAU trials -> interruption 2->..........->WORTKLAU trials-> interruption 10 -> WORTKLAU trials (END)

in more detail:
WORTKLAU prep (prepares the stims) -> WORTKLAU test trial (presents the stims and waits for response) ->
{optional if Tab is pressed: -> help: rules are presented until the finger is lifted off the tab key -> return to WORTKLAU test trial (presents the stims and waits for response) ->}
-> randomly, on average after every 6 WORTKLAU trials: interruption -> {if incorrect code is entered: another interruption trial until the correct code is entered} ->
-> WORTKLAU test trial -> etc. until end is reached

Stimuli

1. WORTKLAU trials:
each trial
- randomly (with replacement) samples whether the trial is a W(eiss) or a S(schwarz) trial (white or black dot)
- randomly (with replacement) samples whether the trial is a O(hne) or a M(it) trial (letter without or with line)
- randomly (with replacement) samples whether the trial is a R(ot) or a B(lau) trial (red or blue character)
- randomly (with replacement) samples whether the trial is a T(ief) or a H(och) trial (below or above box)
- randomly (with replacement) samples whether the trial is a K(onsonant) or a V(okal) trial (consonant or vowel)
- randomly (with replacement) samples whether the trial is a L(inie) or a P(unkt) trial (line or dot)
- randomly (with replacement) samples whether the trial is a A(nfang) or an E(nde) trial (start or end of alphabet)
- randomly (with replacement) samples whether the trial is a U(ngerade) or a G(erade) trial (odd digit or even one)

letter selection: based on the selected value for the A-task AND the selected value for the K-task, a specific letter is selected
(Example: the letter needs to be at the start of the alphabet and needs to be a consonant: B is selected)
digit selection: based on the selected value for the U-task:
(Example: the digit needs to be odd: 9 or 1 is selected)

Letter/Digit Location: the nature of the character inside the box is selected randomly (with replacement):
If the letter is selected to be inside the box, the digit is placed outside the box.

- the inside character in the german WORTKLAU task is always to the left of the box and the dot is placed to the right
- the outside character in the german WORTKLAU task is always to the right of the box (opposite the inside one)

Placement of Colored Character: it is randomly (with replacement) decided whether the colorful character is the inside
or the outside character.

!!! ALL random selections are done independently of each other

2. Interruption Code:
The code to enter is assembled based on a randomly sampled length of characters (default: always 4) and a random
assortment of characters (default: letters used in WORTKLAU) -> Example code: 'lura'
The length as well as the character selection can be manipulated under section Editable Lists:
list.lengthInterruptCode (stores the lengths) and list.interruptCode (stores the pool of possible characters)

Instructions

- follow the original English UNRAVEL tutorial generously provided by Dr. Eric Altmann
with changes made for the respective German tasks
- can be edited under section Editable Instructions

Summary Data

File Name: unravel_summary*.iqdat

Data Fields

NameDescription
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
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
completed 0 = Test was not completed
1 = Test was completed
list.interruptions.mean Mean number of trials before an interruption (across all testblocks)
acca1 Proportion correct (response correct AND in sequence) of all WORTKLAU test trials in block 1
acca2 Proportion correct (response correct AND in sequence) of all WORTKLAU test trials in block 2
acca3 Proportion correct (response correct AND in sequence) of all WORTKLAU test trials in block 3
acca4 Proportion correct (response correct AND in sequence) of all WORTKLAU test trials in block 4
pass 0=failed accuracy check (default: less than 3 test blocks with WORTKLAU performance >= 0.7), 1=passed accuracy check
blkAcc Number of ok (=blocks with WORTKLAU performance >= 0.7) test blocks
totalTrialCount The number of all test WORTKLAU trials run
okTrials Number of ok test trials (ok = trials from blocks with block performance >= 70% correct)
acc1 Proportion correct (response correct AND in sequence) of ok WORTKLAU test trials in block 1
acc2 Proportion correct (response correct AND in sequence) of ok WORTKLAU test trials in block 2
acc3 Proportion correct (response correct AND in sequence) of ok WORTKLAU test trials in block 3
acc4 Proportion correct (response correct AND in sequence) of ok WORTKLAU test trials in block 4
p1Acc Number of ALL post-interruption WORTKLAU trials without sequence errors (regardless of task performance)
( trials where participant made a correct response (errorType = 0) or a nonsequence Error (errorType = 3))
pracEr Number of incorrect (but valid) keystrokes during practice (regardless of type of error)
does not count using keys other than the response keys
invKey Number of invalid keystrokes on All WORTKLAU test trials (neither trial response nor help)
introT Time for introduction (tutorial + practice) (in seconds)
testT Time for test blocks (in s)
totalT Total time for session in s (IntroT + TestT)
serrA Proportion of All WORTKLAU test trials with sequence errors
nErrA Proportion of All WORTKLAU test trials with nonsequence errors
serr Proportion of ok WORTKLAU trials with sequence errors (ok = trials from blocks with block performance >= 70% correct)
nerr Proportion of ok WORTKLAU trials with nonsequence errors (ok = trials from blocks with block performance >= 70% correct)
pserr Proportion of ok WORTKLAU post-interruption trials with sequence errors (ok = trials from blocks with block performance >= 70% correct)
bserr Proportion of ok WORTKLAU baseline trials with sequence errors (ok = trials from blocks with block performance >= 70% correct)
rta Mean correct latency (in ms) of All WORTKLAU test trials
rt Mean correct latency (in ms) of ok WORTKLAU test trials
prt Mean correct latency (in ms) of ok WORTKLAU post-interruption test trials
brt Mean correct latency (in ms) of ok WORTKLAU baseline test trials
intLag Mean lag time (in ms) between onset of interruption and input of first char
( if interruption trial repeats due to errors, only the lag from the first interruption trial is measured)
helps Number of (ok) test trials on which the rule list was displayed at least once
helpP Proportion of correct ok test trials on which the rule list was displayed at least once
intErr Mean number of entered passcodes that contained some error (in ok blocks, across code1/code2 trials)
=> interpreted as: mean number of entered passcodes PER INTERRUPTION that contained some error (in ok blocks)
intErrCount1 Mean number of entered passcodes that contained some error (in ok blocks, code1 trials only)
=> interpreted as: mean number of entered passcodes PER INTERRUPTION that contained some error (in ok blocks)
intErrCount2 Mean number of entered passcodes that contained some error (in ok blocks, code2 trials only)
=> interpreted as: mean number of entered passcodes PER INTERRUPTION that contained some error (in ok blocks)
intDur Mean interruption duration (seconds) (in ok blocks)
Per Block Performance (Block 2-4; Explained Only For Block 1)
ok1 1 = block performance >= 70%correct; 0 = otherwise
trials1 Number of test trials block1
serr1 Proportion of WORTKLAU trials with sequence errors in block1
nerr1 Proportion of WORTKLAU trials with nonsequence errors in block1
pserr1 Proportion of WORTKLAU post-interruption trials with sequence errors in block1
bserr1 Proportion of WORTKLAU baseline trials with sequence errors in block1
rt1 Mean correct latencies of WORTKLAU test trials in block1
prt1 Mean correct latencies of WORTKLAU post-interruption test trials in block1
brt1 Mean correct latencies of WORTKLAU baseline test trials in block1
intLag1 Mean time (in ms) between interruption onset and first passcode key in block1
helps1 Number of WORTKLAU test trials on which the rule list was displayed at least once in block1
helpP1 Proportion of correct ok WORTKLAU test trials on which the rule list was displayed at least once in block1
Interruption Errors: Mean Number Of Entered Passcodes That Contained Some Error Interpreted As: Mean Number Of Entered Passcodes Per Interruption That Contained Some Error In Block1
IntErr1 Collects errors across code1/code2
IntErr1_1 Collects errors for code1
IntErr1_2 Collects errors for code2
Duration
intDur1 Mean interruption duration (seconds) in block1

Raw Data

File Name: unravel_raw*.iqdat

Data Fields

NameDescription
date Date the session was run
time Time the session was run
subject Participant ID
group Group number
session Session number
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
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.
testBlockCount Counts the number of WORTKLAU test blocks run
trialCount Counts the WORTKLAU trials in each block (demo, practice, testblocks)
during practice and test, the same WORTKLAU trial can be called several times
due to errors made (practice) or help menu calls (test).
The actual trialCount is only updated for each new trial.
Only WORTKLAU test trials with testTrialCode < 3 (baseline and post-interruption trials)
are considered for summary data.
testTrialCode 1 = baseline WORTKLAU test trial (WORTKLAU trials that follows a WORTKLAU trial OR is the first trial in a block)
2 = post-interruption WORTKLAU test trial (after code-interruption)
3 = 'invalid' WORTKLAU test trial (no WORTKLAU response: participant pressed Tab-key to see RULES)
4 = code-interruption during testing
"" (empty) for demo trials and practice trials
Stimulus Make-Up Variables
w 1 = dot is white (weiss); 2 = dot is black
o 1 = letter is not underlined (ohne); 2 = letter is underlined
r 1 = character is red (rot); 2 = character is blue
t 1 = character is below the box (tief); 2 = character is above the box
k 1 = letter is a consonant (konsonant); 2 = letter is a vowel
l 1 = line around box (linie); 2 = punkte
a 1 = letter is at start of alphabet (anfang); 2 = end
u 1 = digit is odd (ungerade); 2 = digit is even
letter Stores the sampled letter for the current trial (letter needs to be in accordance with K and A)
digit Stores the sampled digit for the current trial (digit needs to be in accordance with U)
inside Stores the actual character (letter or digit) that is selected to be presented inside the box
outside Stores the actual character (letter or digit) that is selected to be presented outside the box
locationColorChar 1 = colored character is inside character
2 = colored character is outside character
outsideY Stores the y-coordinate of the outside character (needs to be in accordance with T)
descInsideChar Stores a description of the inside characters (Example: letter:X,blue,withLine| dot:white)
descOutsideChar Stores a description of the outside character (Example: digit:9,black,below)
Interruption-Related Variables
code The code of the current Interruption Trial
interruption 1 = an interruption should be run after this WORTKLAU trial; 0 = no interruption will be run
counterUninterruptedTrials Counts the number of consecutive trials run without an interruption
uninterruptedTrials Stores the current number of trials that should be run in between interruptions
countBlockInterruptions Counts the number of interruptions run in a block
DV-Variables
response The participant's response: scancode of response button (or entered code for interruption trials)
responseKeyLabel The interpreted key response (Example: 22 = U)
latency The response latency (in ms)
WORTKLAU Trials: measured from onset of trial until response key is hit
Interruption Trials: measured from onset of trial until the Return button is hit
correct The correctness of the response (1 = correct (no sequence error and no nonsequence error); 0 = otherwise)
performedTaskAcc 1 = currently performed task is performed correctly (regardless of sequence)
0 = otherwise
blockAcc Proportion of trials in a block where response was correct AND in sequence (per block)
lastTask Stores the preceding task that participant performed (W, O, R, T, K, L, A, U)
expectedTask The expected task based on the last Task performed (W, O, R, T, K, L, A, U)
currentTask Stores the currently performed task (W, O, R, T, K, L, A, U) based on response key used
wrongTask 1 = the currently performed task is out of sequence with the preceding task (regardless of accuracy)
0 = otherwise
errorType 0 = correct response (sequence correct & task performance correct)
1 = sequence Error (correct): wrong task (out of sequence) was performed BUT the task was performed correctly
2 = sequence Error (incorrect): wrong task was performed AND it was performed incorrectly
3 = insequence Error: in sequence task was performed BUT the task was performed incorrectly
sequenceError 1 = sequence Error; -> errorType = 1 and 2
0 = otherwise
nonSequenceError 1 = nonsequence Error; -> errorType = 3
0 = otherwise
performedTaskSequence Stores the performed tasks in sequence (per block)
intLag Time (in ms) between interruption onset and first passcode key
showRule 0 = WORTKLAU test trial without a rule call
1 = WORTKLAU test trial with at least one rule call
invKey Cumulative sum of invalid keystrokes on WORTKLAU test trials (neither trial response nor help)

Parameters

The procedure can be adjusted by setting the following parameters.

NameDescriptionDefault
Design
minProportionCorrect Sets the minimum proportion correct that a participant has to obtain in a testblocks to pass0.7
minNrPassedBlocks The minimum number of passed Testblocks that needs to be obtained to pass Accuracy check3
minRunLength Minimum number of trials to run before the next interruption 3
testTrialRuns Number of interruptions in the test block 11
Sizing Parameters
charSize The size of the presented characters in canvas height percentage12%
Response Key Assignments
keyLine Letter is without or with line: O (ohne/without) M (mit/with)"M"
keyNoLine "O"
keyStart Letter is at the beginning or end of alphabet: A (Anfang/beginning) E (Ende/end)"A"
keyEnd "E"
keyRed Colorful character is red or blue: R (rot/red) B (blau/blue)"R"
keyBlue "B"
keyAbove Character is below or above the box: T (tiefer/below) H (hoeher/above)"H"
keyBelow "T"
keyVowel Letter is consonant or vowel: K (Konsonant/consonant) V (Vokal/vowel)"V"
keyConsonant "K"
keyEven Number is odd or even: U (ungerade/odd) G (gerade/even)"G"
keyOdd "U"
keyDotWhite Dot is white or black: W (weiss/White) S (schwarz/black)"W"
keyDotBlack "S"
keyBoxLine Box consists of lines or dots: L (Linien/lines) P (Punkte/dots)"L"
keyBoxDots "P"
Debugging
debugmode 1 = script runs in debugmode and presents a text stimulus that contains the expected task and correct response key
0 = no debug stim is presented
0