01Get the data
One download gives you every domain corpus, the task files, and gold judgments for both splits.
RETECO · SemEval-2027 Task 1
A practical walkthrough: get the data, pick a sub-track, build and score a system on your own machine, and submit when the evaluation window opens.
Overview
01One download gives you every domain corpus, the task files, and gold judgments for both splits.
02Enter one, several, or all five. There is no penalty for entering only one.
03Develop against train, keep dev as your honest check, and score with the same metric the leaderboard uses.
04Upload predictions for the hidden test set during the evaluation window, 10–31 January 2027.
Step 01
Everything is in one Hugging Face repository. There is nothing to assemble from other sources: each of the 24 domains carries its own full retrieval corpus alongside its task files.
pip install huggingface_hub
hf download DataScience-UIBK/RETECO-SemEval2027 --repo-type dataset --local-dir reteco_dataReplace * with train or dev. The corpus has no split suffix — it is shared by both.
| Sub-track | You read | You produce | You score against |
|---|---|---|---|
| 1a Temporal retrieval | examples_*.jsonldocuments.jsonl | Ranked documents per query | qrels_*.txt |
| 1b Step-wise retrieval | steps_*.jsonldocuments.jsonl | Ranked documents per step | qrels_steps_*.txt |
| 2a Conversational retrieval | benchmark_*.jsondocuments.jsonl | Ranked passages per turn | qrels_*.txt |
| 2b Gold-passage generation | benchmark_*.json | An answer per turn | Five judge dimensions |
| 2c Full conversational RAG | benchmark_*.jsondocuments.jsonl | Ranked passages and an answer per turn | qrels_*.txt + judge |
Both splits ship with gold judgments. Fit, tune, and select on train; touch dev only to measure. Nothing is enforced technically — but a system tuned on dev gives you a number that will not survive the hidden test.
| Split | Track 1 | Track 2 | Use it for |
|---|---|---|---|
train | 1,211 queries · 2,762 steps | 496 conversations · 2,113 turns | Development, tuning, model selection |
dev | 519 queries · 1,214 steps | 211 conversations · 858 turns | Held-out check before you submit |
Step 02
The starter kit contains a working BM25 baseline, the official scorer, and a format checker. Use it as a reference implementation or as the skeleton for your own system.
git clone https://github.com/DataScienceUIBK/RETECO.git
cd RETECO/starter_kit
pip install -r requirements.txt# develop here
python official_baseline.py --data ../../reteco_data --out ../../baselines --splits train
# then measure here, once
python official_baseline.py --data ../../reteco_data --out ../../baselines --splits dev
# a single domain, for a fast smoke test
python official_baseline.py --track1 iota --track2 drones --splits train devEach run writes a TREC run file per domain and sub-track, plus a summary.json with per-domain and macro-averaged scores. Results are cached per domain, so an interrupted run resumes.
Reference BM25 scores for every retrieval sub-track, on both splits, are published on the data page. If your system reproduces them, your indexing, topic identifiers and scoring are wired up correctly — which is worth confirming before you tune anything. Per-domain numbers are in BASELINE_RESULTS.md.
Step 03
The official retrieval metric is nDCG@10, computed with pytrec_eval (ndcg_cut_10). You can reproduce the exact leaderboard number on your own machine before you ever submit.
Standard six-column TREC format, tab or space separated, one line per retrieved document.
124973_5 Q0 bitcoin/45eff6bd_1297.txt 1 18.4213 my_system
124973_5 Q0 bitcoin/e3e39760_1295.txt 2 16.9007 my_system
ex_3025_turn_1 Q0 drones_ex_3025_doc_0 1 11.2284 my_systemThe first column is the topic identifier, and it must match the sub-track exactly:
| Sub-track | Topic id | Example |
|---|---|---|
| 1a | id from examples_*.jsonl | 124973_5 |
| 1b | step_id from the nested steps list | 124973_5_step1 |
| 2a, 2c | <conversation_id>_turn_<turn_id> | ex_3025_turn_1 |
# structure only
python format_checker.py run.trec
# also validate topic ids and document ids against the release
python format_checker.py run.trec \
--qrels reteco_data/track1_tempo/iota/qrels_dev.txt \
--corpus reteco_data/track1_tempo/iota/documents.jsonlIt checks that every line has six columns, that ranks are unique positive integers within a topic, that scores do not increase as rank grows, and — with --qrels and --corpus — that your topic and document identifiers actually exist. It exits non-zero on failure, so it drops straight into a CI step.
python -c "
import pytrec_eval
qrels, run = {}, {}
for ln in open('reteco_data/track1_tempo/iota/qrels_dev.txt'):
q, _, d, r = ln.split(); qrels.setdefault(q, {})[d] = int(r)
for ln in open('run.trec'):
q, _, d, rank, sc, tag = ln.split(); run.setdefault(q, {})[d] = float(sc)
sc = pytrec_eval.RelevanceEvaluator(qrels, {'ndcg_cut.10'}).evaluate(run)
print('nDCG@10', sum(v['ndcg_cut_10'] for v in sc.values()) / len(sc))"The bundled scorer.py adds RETECO’s diagnostics on top — temporal precision, coverage, and per-turn-depth breakdowns — which are reported alongside the leaderboard but do not determine ranking.
System scope
Final details—including team limits, daily submission caps, hardware reporting, and late-submission policy—will be published with the competition platform.
Resources
| Resource | Status | Where |
|---|---|---|
| Training and development data | Available | Hugging Face ↗ |
| BM25 baseline | Available | Starter kit ↗ |
| Official scorer | Available | Starter kit ↗ |
| Format checker | Available | Starter kit ↗ |
| Registration form | Coming soon | This page |
| Participant mailing list | Coming soon | This page |
| Competition platform | Coming soon | This page |
| Sample submissions | Coming soon | Starter kit |
SemEval reporting
Participating teams will be invited to describe their methods and analyze their results under the official SemEval paper process. A useful paper should make the system reproducible and explain where it succeeds or fails—not merely state its leaderboard position.
FAQ
No. Teams may enter any subset of the five sub-tracks, and entering only one is a legitimate submission. A sub-track you do not enter is not ranked, not scored zero.
Yes, according to the accepted task plan, provided every proprietary model, API, prompt-based component, and relevant version is disclosed. Final competition terms still apply.
Not for an official retrieval run. Official scoring uses the organizer-provided corpus, which external retrieval corpora may not replace or augment.
No. The official retrieval leaderboard uses nDCG@10. Generation judgments for Sub-tracks 2b and 2c are reported separately.
No. The RETECO release on Hugging Face contains every corpus, task file, and qrels file you need. TEMPO and RECOR are the upstream sources it was built from; you only need them if you want to cite or inspect the originals.
No. Both train and dev come with public gold labels and are for your own development. The SemEval test set is separate, unseen, and released without judgments during the evaluation window.
Nothing prevents it technically, and the final rules will not police it. But dev is your only honest estimate of how a system will behave on the hidden test — spend it carefully.
pytrec_eval with ndcg_cut_10, macro-averaged over topics. The starter kit uses exactly this, so a local score and a leaderboard score are directly comparable.
The final competition rules will specify release requirements. Regardless, system papers must disclose enough technical detail to support reproducibility.
Participant support
Until the task mailing list opens, task-specific questions may be sent to the lead organizers. Please do not send hidden-test predictions, credentials, or private dataset copies by email.