Return to the Wason Rule Discovery Test page
___________________________________________________________________________________________________________________	

										WASON RULE DISCOVERY TEST
___________________________________________________________________________________________________________________	

Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software, LLC
Date: 12-12-2016
last updated:  11-06-2019 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC

Script Copyright © 11-06-2019 Millisecond Software

___________________________________________________________________________________________________________________
BACKGROUND INFO 	
___________________________________________________________________________________________________________________
This script implements the Wason Rule Discovery Test, a test of confirmation bias.

Reference:

Wason, P.C. (1960). On the failure to eliminate hypotheses in a conceptual task.
Quarterly Journal of Experimental Psychology, 12, 129-140.

___________________________________________________________________________________________________________________
TASK DESCRIPTION	
___________________________________________________________________________________________________________________	
Participants get a sequence of 3 numbers (e.g. 248) and are asked if they can guess the underlying rule
(default rule: increasing numbers) of the sequence by selecting different sequences of 3 numbers until they feel reasonably
sure they know the rule. Once participants are relatively sure they know the rule,
they are asked to describe it. The computer evaluates each response and gives preliminary feedback (optional). 

___________________________________________________________________________________________________________________	
DURATION 
___________________________________________________________________________________________________________________	
the default set-up of the script takes appr. XXX minutes to complete
(if no task duration is provided, please contact Millisecond Software
(katjab@millisecond.com)

___________________________________________________________________________________________________________________	
DATA FILE INFORMATION 
___________________________________________________________________________________________________________________
The default data stored in the data files are:

(1) Raw data file: 'wasonrulediscoverytest_raw*.iqdat' (a separate file for each participant)*

build:							The specific Inquisit version used (the 'build') that was run
computer.platform:				the platform the script was run on (win/mac/ios/android)
date, time, 						date and time script was run 
subject, group, 					with the current subject/groupnumber
script.sessionid:					with the current session id

blockcode, blocknum:				the name and number of the current block (built-in Inquisit variable)
trialcode, trialnum: 				the name and number of the currently recorded trial (built-in Inquisit variable)
										Note: trialnum is a built-in Inquisit variable; it counts all trials run; even those
										that do not store data to the data file such as feedback trials. Thus, trialnum 
										may not reflect the number of main trials run per block. 
										
									
values.countRounds:				counts the number of rounds started
latency: 							the response latency (in ms); measured from onset of trial
response:						the participant's response (selected button)					
values.targetNumber:				the number that is currently entered
values.number1:					stores the value of number1
values.number2:					stores the value of number2
values.number3:					stores the value of number3
values.evaluate:					stores the evaluation of the entered sequence in regard to the tested rule (yes/no)
values.guess:					1 = 'yes' guess; 0 = 'no' guess
values.countGuesses:				counts all guesses made for a given rule
values.countPosGuesses:			counts all guesses that resulted in a "yes"
expressions.countNegGuesses:		counts all gueesses that resulted in a "no"

values.confirmationBias:			1 = participant only selected rule-confirming sequences (no sequences that received a "no" feedback)
								0 = participant selected at least one sequence that received a "no" feedback								
								empty = participant did not select any sequences
								
values.proposedRule:				stores the openended response 

values.ruleDetection:				1 = based on preliminary computer analyses of the given openended response based on keyword searches 
								(keywords such as increase, grow, larger, bigger etc.) participant likely narrowed down the rule successfully
								0 = otherwise
								NOTE: the preliminary computer analyses are based on keyword searches and might have missed a correct result
								or falsely identified a 'correct' rule. Manual coding is advised.								

Sequence Analysis: 
categorization of the sequences in terms of several categories, such as "only positive numbers", "mixed numbers", "only even numbers" (etc))
and keeps a count of how often participant used sequences that fall in those categories.

onlyPositive:						1 = the entered sequence contains only positive numbers or 0; 0 = otherwise
onlyNegative:						1 = the entered sequence contains only negative numbers; 0 = otherwise
onlyIntegers:						1 = the entered sequence contains only integers; 0 = otherwise
onlyDecimals:					1 = the entered sequence contains only decimals; 0 = otherwise
onlyEvenNumbers:				1 = the entered sequence contains only even numbers; 0 = otherwise (applies only to integers)
onlyOddNumbers:					1 = the entered sequence contains only odd numbers; 0 = otherwise (applies only to integers)
sameRatios:						1 = the entered sequence contains only numbers of the same ratios of number1number2 = number2number3; 0 = otherwise
sameIntervals:					1 = the entered sequence contains only numbers that are separated by equal distances number2-number1=number3-number1; 0 = otherwise
onlyIncrease:						1 = the entered sequence contains only numbers that increase; 0 = otherwise
onlyDecrease:					1 = the entered sequence contains only numbers that decrease; 0 = otherwise
onlyDifferent:						1 = all numbers are different from each other; 0 = otherwise (at least two numbers are the same)
count_onlyPositive:				counts all sequences that only contain positive numbers
count_onlyNegative:				counts all sequences that contain only negative numbers
count_mixedPositiveNegative:		counts all sequences that contain a mixture of positive and negative numbers
count_onlyIntegers:				counts all sequences that contain only integers
count_onlyDecimals:				counts all sequences that contain only decimals
count_mixedIntegerDecimals:		counts all sequences that contain a mixture of integers and decimals
count_onlyEvenNumbers:			counts all sequences that contain only even numbers (applies only to integers)
count_onlyOddNumbers:			counts all sequences that contain only odd numbers (applies only to integers)
count_mixedOddEvenNumbers:		counts all sequences that contain a mixture of odd and even numbers (applies only to integers)
count_sameRatios:				counts all sequences that contain only constant ratios (like doubling numbers)
count_differentRatios:				counts all sequences that have different ratios
count_sameIntervals:				counts all sequences that contain only numbers that are separated by equal distances (number2-number1 = number3-number2)
count_differentIntervals:			counts all sequences that contain numbers that are not spread equally
count_onlyIncrease:				counts all sequences that only increase from number to number; 0 = otherwise
count_onlyDecrease:				counts all sequences that only decrease from number to number; 0 = otherwise
count_mixedIncreaseDecrease:		counts all sequences that contain a mixture of increases and decreases; 0 = otherwise
count_onlyDifferent:				counts all sequences that contain only different numbers
count_someEquals:				counts all sequences that contain at least 2 numbers that are the same


(2) Summary data file: 'wasonrulediscoverytest_summary*.iqdat' (a separate file for each participant)*

computer.platform:				the platform the script was run on (win/mac/ios/android)
script.startdate:					date script was run
script.starttime:					time script was started
script.subjectid:					assigned subject id number
script.groupid:					assigned group id number
script.sessionid:					assigned session id number
script.elapsedtime:				time it took to run script (in ms); measured from onset to offset of script
script.completed:				0 = script was not completed (prematurely aborted); 
								1 = script was completed (all conditions run)

values.countGuesses:					number of all guesses made for a given rule
values.countPosGuesses:				number of all guesses that resulted in a "yes"
expressions.countNegGuesses:				number of all gueesses that resulted in a "no"

values.confirmationBias:					1 = participant only selected rule-confirming sequences (did not enter any sequence that received a "no" feedback)
								0 = participant selected at least one sequence that received a "no" feedback
								empty = participant did not select any sequences
								
values.proposedRule:					stores the openended response 

values.ruleDetection:					1 = based on preliminary computer analyses of the given openended response based on keyword searches 
								(keywords such as increase, grow, larger, bigger etc.) participant likely narrowed down the rule successfully
								0 = otherwise
								NOTE: the preliminary computer analyses are based on keyword searches and might have missed a correct result
								or falsely identified a 'correct' rule. Manual coding is advised.

Sequence Analysis: 
categorization of the sequences in terms of several categories, such as "only positive numbers", "mixed numbers", "only even numbers" (etc))
and keeps a count of how often participant used sequences that fall in those categories.
=> to contradict the rule "doubeling numbers", participant needed to test at least one sequence that 
used different ratios

														
count_onlyPositive:				counts all sequences that only contain positive numbers and/or zero (=> positive+)
count_onlyNegative:				counts all sequences that contain only negative numbers
count_mixedPositiveNegative:		counts all sequences that contain a mixture of positive+ and negative numbers
count_onlyIntegers:				counts all sequences that contain only integers
count_onlyDecimals:				counts all sequences that contain only decimals
count_mixedIntegerDecimals:		counts all sequences that contain a mixture of integers and decimals
count_onlyEvenNumbers:			counts all sequences that contain only even numbers (applies only to integers)
count_onlyOddNumbers:			counts all sequences that contain only odd numbers (applies only to integers)
count_mixedOddEvenNumbers:		counts all sequences that contain a mixture of odd and even numbers (applies only to integers)
count_sameRatios:				counts all sequences that contain only constant ratios (e.g. like doubling numbers)
count_differentRatios:				counts all sequences that have different ratios
count_sameIntervals:				counts all sequences that contain only numbers that are separated by equal distances (number2-number1 = number3-number2)
count_differentIntervals:			counts all sequences that contain numbers that are not spread equally
count_onlyIncrease:				counts all sequences that only increase from number to number; 0 = otherwise
count_onlyDecrease:				counts all sequences that only decrease from number to number; 0 = otherwise
count_mixedIncreaseDecrease:		counts all sequences that contain a mixture of increases and decreases; 0 = otherwise
count_onlyDifferent:				counts all sequences that contain only different numbers
count_someEquals:				counts all sequences that contain at least 2 numbers that are the same

* separate data files: to change to one data file for all participants (on Inquisit Lab only), go to section
"DATA" and follow further instructions

___________________________________________________________________________________________________________________	
EXPERIMENTAL SET-UP 
___________________________________________________________________________________________________________________	
sequence selection -> feedback -> sequence selection ->...-> until 'I think I know' button is selected
-> textbox that collects the description of the rule
-> Summary Feedback

___________________________________________________________________________________________________________________	
STIMULI
___________________________________________________________________________________________________________________	
provided by Millisecond Software - can be edited under section Editable Stimuli

___________________________________________________________________________________________________________________	
INSTRUCTIONS 
___________________________________________________________________________________________________________________	

Instructions are not original to the task. They are provided by Millisecond Software
as htm/html pages and can be edited by changing the provided htm/html files.
To edit htm/html-files: open the respective documents in simple Text Editors such as TextEdit (Mac)
or Notepad (Windows).

___________________________________________________________________________________________________________________	
EDITABLE CODE 
___________________________________________________________________________________________________________________
check below for (relatively) easily editable parameters, stimuli, instructions etc. 
Keep in mind that you can use this script as a template and therefore always "mess" with the entire code to further customize your experiment.

The parameters you can change are:

/exampleNumber1:			the first example number given (default: 2)
/exampleNumber2:			the second example number given (default: 4)
/exampleNumber3:			the third example number given (default: 8)
/rule:						the rule tested
							1: increase in value (default); no other rule is implemented at this point!
							
/ruleDescription:				describes the rule in simple words (used in instruction pages) (default: "increasing numbers")
							Note: only rule = 1 is implemented at this point.
							
/skipFeedback:				true = no feedback/explanations about the task are provided at the end
							false = (preliminary) feedback/explanations about the task are provided at the end