--- license: cc-by-nc-sa-4.0 --- # ChronoQA ChronoQA is a **passage-grounded** benchmark that tests whether retrieval-augmented generation (RAG) systems can keep **temporal** and **causal** facts straight when reading long-form narratives (novels, scripts, etc.). Instead of giving the entire book to the model, ChronoQA forces a RAG pipeline to *retrieve the right snippets* and reason about evolving characters and event sequences. | | | |-------------------------------|------------------------------------| | **Instances** | 1,028 question–answer pairs | | **Narratives** | 18 public-domain stories | | **Reasoning facets** | 8 (causal, character, setting, …) | | **Evidence** | Exact byte-offsets for each answer | | **Language** | English | | **Intended use** | Evaluate/train RAG systems that need chronology & causality | | **License (annotations)** | CC-BY-NC-SA-4.0 | --- ## Dataset Description ### Motivation Standard RAG pipelines often lose chronological order and collapse every mention of an entity into a single node. ChronoQA highlights the failures that follow. Example: *"Who was jinxing Harry's broom during his **first** Quidditch match?"* – a system that only retrieves early chapters may wrongly answer *Snape* instead of *Quirrell*. ### Source Stories All texts come from Project Gutenberg (public domain in the US). | ID | Title | # Q | |----|-------|----| | 1 | *A Study in Scarlet* | 67 | | 2 | *The Hound of the Baskervilles* | 55 | | 3 | *Harry Potter and the Chamber of Secrets* | 30 | | 4 | *Harry Potter and the Sorcerer's Stone* | 25 | | 5 | *Les Misérables* | 72 | | 6 | *The Phantom of the Opera* | 70 | | 7 | *The Sign of the Four* | 62 | | 8 | *The Wonderful Wizard of Oz* | 82 | | 9 | *The Adventures of Sherlock Holmes* | 34 | | 10 | *Lady Susan* | 88 | | 11 | *Dangerous Connections* | 111 | | 12 | *The Picture of Dorian Gray* | 27 | | 13 | *The Diary of a Nobody* | 39 | | 14 | *The Sorrows of Young Werther* | 58 | | 15 | *The Mysterious Affair at Styles* | 69 | | 16 | *Pride and Prejudice* | 54 | | 17 | *The Secret Garden* | 61 | | 18 | *Anne of Green Gables* | 24 | ### Reasoning Facets 1. **Causal Consistency** 2. **Character & Behavioural Consistency** 3. **Setting, Environment & Atmosphere** 4. **Symbolism, Imagery & Motifs** 5. **Thematic, Philosophical & Moral** 6. **Narrative & Plot Structure** 7. **Social, Cultural & Political** 8. **Emotional & Psychological** --- ## Dataset Structure | Field | Type | Description | |-------|------|-------------| | `story_id` | `string` | ID of the narrative | | `question_id` | `int32` | QA index within that story | | `category` | `string` | One of the 8 reasoning facets | | `query` | `string` | Natural-language question | | `ground_truth` | `string` | Gold answer | | `passages` | **`sequence` of objects** | Each object contains:
• `start_sentence` `string`
• `end_sentence` `string`
• `start_byte` `int32`
• `end_byte` `int32`
• `excerpt` `string` | | `story_title`* | `string` | Human-readable title (optional, present in processed splits) | \*The raw JSONL released with the paper does **not** include `story_title`; it is added automatically in the hosted HF dataset for convenience. There is a single **all** split (1,028 rows). Create your own train/validation/test splits if needed (e.g. by story or by reasoning facet). --- ## Usage Example ```python from datasets import load_dataset ds = load_dataset("your-org/chronoqa", split="all") example = ds[0] print("Question:", example["query"]) print("Answer :", example["ground_truth"]) print("Evidence:", example["passages"][0]["excerpt"][:300], "…") ``` ## Citation Information ``` @article{zhang2025respecting, title={Respecting Temporal-Causal Consistency: Entity-Event Knowledge Graphs for Retrieval-Augmented Generation}, author={Zhang, Ze Yu and Li, Zitao and Li, Yaliang and Ding, Bolin and Low, Bryan Kian Hsiang}, journal={arXiv preprint arXiv:2506.05939}, year={2025} } ```