Natural Stories Self-Paced Reading with Comprehension Questions
Run a word-by-word moving-window reading task with a two-choice comprehension question, using trial_timing and radio schemes. The passages are illustrative.
Try it live — no install
Boot the real Potato server in your browser (WebAssembly) and annotate with this exact config. Nothing leaves your machine.
Run live in your browserGet This Design
Clone or download from the repository
Quick start:
git clone https://github.com/davidjurgens/potato-showcase.git
cd potato-showcase/text/psycholinguistics/natural-stories-self-paced-reading
potato start config.yamlAbout this dataset
The Natural Stories corpus was made by Richard Futrell, Edward Gibson, Harry Tily, Idan Blank, Anastasia Vishnevetsky, Steven Piantadosi, and Evelina Fedorenko and published in Language Resources and Evaluation in 2020. The corpus holds 10 stories of about 1000 words each, 10,245 lexical word tokens in 485 sentences. The stories were made by editing publicly available texts to contain rare or marked syntactic constructions such as object-extracted relative clauses, clefts, topicalized structures, and local structural ambiguity, while keeping the stories fluent. The corpus adds parse trees, aligned audio, and self-paced reading times from 181 native English speakers.
The paper describes the reading task this way. "Text was presented in a dashed moving window display, with masked spaces. For each word, we recorded its reading time (RT) as the amount of time taken by the reader to press the button to advance to the next word." The paper adds that "each story was accompanied by 6 comprehension questions, where participants chose the correct answer from a set of two." The design reproduces that procedure with trial_timing in moving_window mode, which masks every word with dashes, reveals one word per space press, and records each word's reading time. A radio scheme answered with F or J holds the two-choice question. Potato's response scheme has one fixed label list, so the labels read First option and Second option and the question text names the two choices. A per-item choice list would need a Potato extension.
The corpus is released under CC BY-NC-SA 4.0, so no corpus text or question appears here. The ten passages and ten questions were written for the showcase in a similar style and are illustrative. Each item is a short paragraph with one question, where the paper asked six questions per story of about 1000 words, and the paper's exclusion rules are left to analysis. The design has no model_training block, because no registered trainer predicts reading times or comprehension answers. The reading times are in the trials and regions exports.
- Stories
- 10, about 1000 words each (paper, section 3.1)
- Word tokens
- 10,245 lexical tokens in 485 sentences (paper, section 3.1)
- Readers
- 181 native English speakers (paper, section 3.3)
- Questions per story
- 6, two answer choices each (paper, section 3.3)
- Licence
- CC BY-NC-SA 4.0
- Sample items in this design
- 10 illustrative paragraphs with one question each, not corpus text
Configuration File
This Potato config reproduces the annotation task. Save it as config.yaml and run potato start config.yaml to try it.
# Natural Stories: self-paced reading with comprehension questions (illustrative passages)
#
# Dataset: The Natural Stories corpus, Futrell et al. (2020), Language Resources
# and Evaluation 55, 63-77. Ten stories edited to contain rare syntactic
# constructions, with self-paced reading times from 181 native English speakers.
# DOI: 10.1007/s10579-020-09503-7
# Dataset URL: https://github.com/languageMIT/naturalstories
# Licence: CC BY-NC-SA 4.0 (LICENSE.txt in the repository). Because of the
# NonCommercial and ShareAlike terms, NOTHING in this design is copied from the
# corpus. The ten passages and ten questions in sample-data.json were written for
# this showcase in the same style (short narrative paragraphs with relative
# clauses, clefts, topicalized objects, sentential subjects and one NP/Z
# ambiguity). They are illustrative and are not Natural Stories text.
#
# Citation (Crossref BibTeX):
# @article{Futrell_2020,
# title = {The Natural Stories corpus: a reading-time corpus of English texts containing rare syntactic constructions},
# volume = {55},
# number = {1},
# DOI = {10.1007/s10579-020-09503-7},
# journal = {Language Resources and Evaluation},
# publisher = {Springer Science and Business Media LLC},
# author = {Futrell, Richard and Gibson, Edward and Tily, Harry J. and Blank, Idan and Vishnevetsky, Anastasia and Piantadosi, Steven T. and Fedorenko, Evelina},
# year = {2020},
# pages = {63--77}
# }
#
# Protocol, quoted from section 3.3 "Self-paced reading data" of the paper:
# "Text was presented in a dashed moving window display, with masked spaces.
# For each word, we recorded its reading time (RT) as the amount of time taken
# by the reader to press the button to advance to the next word."
# "Each story was accompanied by 6 comprehension questions, where participants
# chose the correct answer from a set of two."
#
# How this design maps the protocol:
# Moving window ........ trial_timing.presentation.mode: moving_window. Every
# word starts as dashes. Space reveals the next word and
# re-masks the previous one. The time between presses is
# that word's reading time.
# Word by word ......... no region_separator is set, so the passage is split on
# whitespace into one region per word.
# Two-choice question .. a radio scheme with two labels, answered with F or J.
#
# Adaptations:
# - Illustrative text. The passages and questions are original, so this design
# reproduces the procedure and not the stimuli. Reading times collected here
# are not comparable with the corpus's.
# - The paper asked 6 questions per story of about 1000 words. Here every item
# is a short paragraph (a story is named in the story field) with one question
# after it, so reading times and answers are paired per paragraph.
# - Potato's response scheme has one fixed label list, so the two answer choices
# cannot differ per item. The labels are "First option" and "Second option"
# (keys F and J), and the question text names the two choices as (F) and (J).
# A per-item choice list in trial_timing.response is a feature request.
# - The paper's display recorded line breaks at random widths and ran on Amazon
# Mechanical Turk. This design uses Potato's own layout and its browser timer.
# - The paper excluded a pass through a story when fewer than 5 of 6 questions
# were correct, and excluded reading times under 100 ms or over 3000 ms.
# Neither rule is applied here. Apply them to the export if you need them.
#
# TRAINING: none. The labels are two-choice comprehension answers and the
# measurement is reading time per word. No trainer in potato/training/registry.py
# predicts reading times or comprehension answers, so there is no model_training
# block.
#
# Reading times are in the trials export (one row per item) and the regions export
# (one row per word):
# python -m potato.export --config <this file> --format csv --output out/
#
# Run: potato start config.yaml -p 8000
annotation_task_name: "Natural Stories: self-paced reading with comprehension questions"
task_dir: "."
data_files:
- sample-data.json
item_properties:
id_key: id
text_key: text
output_annotation_dir: "annotation_output/"
export_annotation_format: "jsonl"
require_password: false
user_config:
allow_all_users: true
users: []
assignment_strategy: fixed_order
trial_timing:
enabled: true
fixation_ms: 500
iti_ms: 500
show_response_options: true
presentation:
mode: moving_window
field: text
advance_key: space
question_field: question
response:
schema: comprehension
keys: {f: "First option", j: "Second option"}
annotation_instructions: |
You will read a short passage one word at a time. Every word starts as dashes.
Press the space bar to reveal the next word. Read at your natural pace and press
space as soon as you have understood each word. After the passage, answer one
question with F for the first option or J for the second option. The passages
here are illustrative and were written for this showcase. They are not text from
the Natural Stories corpus.
annotation_schemes:
- annotation_type: radio
name: comprehension
description: "Answer the comprehension question about the passage you just read"
labels: ["First option", "Second option"]
label_requirement:
required: true
Sample Data
[
{
"id": "nss_001",
"story": "bakery",
"text": "The baker that the villagers adored rose before dawn every day. It was her bread that the whole town came to buy, not the pastries her rival sold across the square. When the oven broke in winter, nobody knew who would fix it.",
"question": "What did the whole town come to buy? (F) The bread (J) The pastries"
},
{
"id": "nss_002",
"story": "bakery",
"text": "That the oven could be repaired at all surprised the old mechanic who had been asked to look at it. A part nobody had made in forty years was what it needed. He promised to find one, though he doubted that anyone still stocked it.",
"question": "Who had been asked to look at the oven? (F) The rival baker (J) The old mechanic"
}
]
// ... and 8 more itemsTry it live — no install
Boot the real Potato server in your browser (WebAssembly) and annotate with this exact config. Nothing leaves your machine.
Run live in your browserGet This Design
Clone or download from the repository
Quick start:
git clone https://github.com/davidjurgens/potato-showcase.git
cd potato-showcase/text/psycholinguistics/natural-stories-self-paced-reading
potato start config.yamlDataset & paper
Futrell et al., Language Resources and Evaluation 2020
- Paper DOI
- 10.1007/s10579-020-09503-7
Citation (BibTeX)
@article{Futrell_2020,
title = {The Natural Stories corpus: a reading-time corpus of English texts containing rare syntactic constructions},
volume = {55},
number = {1},
DOI = {10.1007/s10579-020-09503-7},
url = {http://dx.doi.org/10.1007/s10579-020-09503-7},
journal = {Language Resources and Evaluation},
publisher = {Springer Science and Business Media LLC},
author = {Futrell, Richard and Gibson, Edward and Tily, Harry J. and Blank, Idan and Vishnevetsky, Anastasia and Piantadosi, Steven T. and Fedorenko, Evelina},
year = {2020},
month = {Sept},
pages = {63--77}
}Details
Annotation Types
Domain
Use Cases
Tags
Found an issue or want to improve this design?
Open an Issue(opens in a new tab)Related Designs
Word-Colour Associations: Crowdsourcing a Colour Lexicon
Annotate the colour that a word evokes. For each word, annotators first answer a word-choice question (pick the phrase closest in meaning) that disambiguates the intended word sense and serves as a quality check, then select the basic colour most associated with the word and how strong that association is. Even abstract concepts and emotions (danger, envy, purity) carry strong, consistent colour associations. This is the annotation design behind Mohammad's Word-Colour Association Lexicon (ACL 2011 CMCL workshop), a design that also underlies his colour-emotion analyses.
AgentBoard Progress Scoring
Assess multi-turn LLM agent progress by identifying achieved milestones, scoring overall progress, categorizing the agent environment, and noting partial progress observations.
AnnoMI Counselling Dialogue Annotation
Annotation of motivational interviewing counselling dialogues based on the AnnoMI dataset. Annotators label therapist and client utterances for MI techniques (open questions, reflections, affirmations) and client change talk (sustain talk, change talk), with quality ratings for therapeutic interactions.