RECOR: Reasoning-focused Multi-turn Conversational Retrieval Benchmark
0
13 commits
2 linked in READMEs
updated Jan 13, 2026
A benchmark for evaluating reasoning-intensive conversational information retrieval systems.
| Metric | Value |
|---|---|
| Total Conversations | 707 |
| Total Turns | 2,971 |
| Domains | 11 |
| Avg. Turns per Conversation | 4.2 |
| Source | Domains |
|---|---|
| BRIGHT | biology, earth_science, economics, psychology, robotics, sustainable_living |
| StackExchange | Drones, hardware, law, medicalsciences, politics |
| Domain | Conversations | Turns |
|---|---|---|
| biology | 85 | 362 |
| earth_science | 98 | 454 |
| economics | 74 | 288 |
| psychology | 84 | 333 |
| robotics | 68 | 259 |
| sustainable_living | 78 | 319 |
| Drones | 37 | 142 |
| hardware | 46 | 188 |
| law | 50 | 230 |
| medicalsciences | 44 | 183 |
| politics | 43 | 213 |
| Subset | Description |
|---|---|
benchmark | 707 multi-turn conversations |
corpus | Document corpus (positive + negative) |
Each subset has 11 domain splits:
| Source | Splits |
|---|---|
| BRIGHT | biology, earth_science, economics, psychology, robotics, sustainable_living |
| StackExchange | Drones, hardware, law, medicalsciences, politics |
Benchmark (conversations):
| Field | Description |
|---|---|
id | Unique conversation identifier |
task | Domain name |
original_query | Initial user question |
original_answer | Answer to the initial question |
turns | List of conversation turns |
metadata | Conversation metadata (see below) |
Metadata fields:
| Field | Description |
|---|---|
num_turns | Number of conversation turns |
gold_doc_count | Total number of relevant documents |
version | Dataset version |
created_at | Timestamp of creation |
source | Data source (bright or annotated_data) |
method | Generation method |
Each turn contains:
| Field | Description |
|---|---|
turn_id | Turn number (1-indexed) |
query | User question for this turn |
answer | Gold answer |
gold_doc_ids | List of relevant document IDs |
conversation_history | Previous turns context |
subquestion_reasoning | Reasoning for the follow-up question |
subquestion_reasoning_metadata | Structured reasoning metadata (see below) |
subquestion_reasoning_metadata:
| Field | Description |
|---|---|
target_information | What information the query seeks |
relevance_signals | Keywords/concepts indicating relevance |
irrelevance_signals | Keywords/concepts indicating irrelevance |
Corpus (documents):
| Field | Description |
|---|---|
doc_id | Unique document identifier |
content | Document text |
from datasets import load_dataset
# Load a specific domain
biology_benchmark = load_dataset("RECOR-Benchmark/RECOR", "benchmark", split="biology")
biology_corpus = load_dataset("RECOR-Benchmark/RECOR", "corpus", split="biology")
# Load all domains for a subset
all_benchmarks = load_dataset("RECOR-Benchmark/RECOR", "benchmark") # Returns all splits
all_corpus = load_dataset("RECOR-Benchmark/RECOR", "corpus") # Returns all splits
# Access specific domain: all_benchmarks["biology"], all_corpus["economics"], etc.
# Get relevant documents for a conversation turn
conv = biology_benchmark[0]
turn = conv["turns"][0]
gold_ids = turn["gold_doc_ids"]
relevant_docs = [doc for doc in biology_corpus if doc["doc_id"] in gold_ids]
# Available splits (domains):
# biology, earth_science, economics, psychology, robotics, sustainable_living
# Drones, hardware, law, medicalsciences, politics
for conv in biology_benchmark:
print(f"ID: {conv['id']}")
for turn in conv["turns"]:
print(f" Turn {turn['turn_id']}: {turn['query']}")
data/
βββ benchmark/ # Conversations (11 files)
β βββ {domain}_benchmark.jsonl
βββ corpus/ # Documents (11 files)
βββ {domain}_documents.jsonl
For evaluation code and metrics, see the GitHub Repository.
MIT License
RECOR: Reasoning-focused Multi-turn Conversational Retrieval Benchmark
0
13 commits
2 linked in READMEs
updated Jan 13, 2026
A benchmark for evaluating reasoning-intensive conversational information retrieval systems.
| Metric | Value |
|---|---|
| Total Conversations | 707 |
| Total Turns | 2,971 |
| Domains | 11 |
| Avg. Turns per Conversation | 4.2 |
| Source | Domains |
|---|---|
| BRIGHT | biology, earth_science, economics, psychology, robotics, sustainable_living |
| StackExchange | Drones, hardware, law, medicalsciences, politics |
| Domain | Conversations | Turns |
|---|---|---|
| biology | 85 | 362 |
| earth_science | 98 | 454 |
| economics | 74 | 288 |
| psychology | 84 | 333 |
| robotics | 68 | 259 |
| sustainable_living | 78 | 319 |
| Drones | 37 | 142 |
| hardware | 46 | 188 |
| law | 50 | 230 |
| medicalsciences | 44 | 183 |
| politics | 43 | 213 |
| Subset | Description |
|---|---|
benchmark | 707 multi-turn conversations |
corpus | Document corpus (positive + negative) |
Each subset has 11 domain splits:
| Source | Splits |
|---|---|
| BRIGHT | biology, earth_science, economics, psychology, robotics, sustainable_living |
| StackExchange | Drones, hardware, law, medicalsciences, politics |
Benchmark (conversations):
| Field | Description |
|---|---|
id | Unique conversation identifier |
task | Domain name |
original_query | Initial user question |
original_answer | Answer to the initial question |
turns | List of conversation turns |
metadata | Conversation metadata (see below) |
Metadata fields:
| Field | Description |
|---|---|
num_turns | Number of conversation turns |
gold_doc_count | Total number of relevant documents |
version | Dataset version |
created_at | Timestamp of creation |
source | Data source (bright or annotated_data) |
method | Generation method |
Each turn contains:
| Field | Description |
|---|---|
turn_id | Turn number (1-indexed) |
query | User question for this turn |
answer | Gold answer |
gold_doc_ids | List of relevant document IDs |
conversation_history | Previous turns context |
subquestion_reasoning | Reasoning for the follow-up question |
subquestion_reasoning_metadata | Structured reasoning metadata (see below) |
subquestion_reasoning_metadata:
| Field | Description |
|---|---|
target_information | What information the query seeks |
relevance_signals | Keywords/concepts indicating relevance |
irrelevance_signals | Keywords/concepts indicating irrelevance |
Corpus (documents):
| Field | Description |
|---|---|
doc_id | Unique document identifier |
content | Document text |
from datasets import load_dataset
# Load a specific domain
biology_benchmark = load_dataset("RECOR-Benchmark/RECOR", "benchmark", split="biology")
biology_corpus = load_dataset("RECOR-Benchmark/RECOR", "corpus", split="biology")
# Load all domains for a subset
all_benchmarks = load_dataset("RECOR-Benchmark/RECOR", "benchmark") # Returns all splits
all_corpus = load_dataset("RECOR-Benchmark/RECOR", "corpus") # Returns all splits
# Access specific domain: all_benchmarks["biology"], all_corpus["economics"], etc.
# Get relevant documents for a conversation turn
conv = biology_benchmark[0]
turn = conv["turns"][0]
gold_ids = turn["gold_doc_ids"]
relevant_docs = [doc for doc in biology_corpus if doc["doc_id"] in gold_ids]
# Available splits (domains):
# biology, earth_science, economics, psychology, robotics, sustainable_living
# Drones, hardware, law, medicalsciences, politics
for conv in biology_benchmark:
print(f"ID: {conv['id']}")
for turn in conv["turns"]:
print(f" Turn {turn['turn_id']}: {turn['query']}")
data/
βββ benchmark/ # Conversations (11 files)
β βββ {domain}_benchmark.jsonl
βββ corpus/ # Documents (11 files)
βββ {domain}_documents.jsonl
For evaluation code and metrics, see the GitHub Repository.
MIT License