EMS-Knowledge is a lightweight, retrieval-friendly dataset distilled from
Emergency Medical Services (EMS) reference materials.
Each row contains a short section of text paired with its file name, topic, and section title,
making it easy to build search / RAG pipelines, create study aids, or ground QA systems. See more on our project page.
This repository includes:
A tabular split (single split named train) with the following columns:
file — source filename (e.g., anatomy.json)source — folder label (here: knowledge)topic — coarse topic derived from file stem (e.g., anatomy, trauma)section — section/heading within the filetext — the normalized section textThe original JSON files under raw/ for direct use:
airway, respiratory, ventilation.jsonanatomy.jsonassessment.jsoncardiovascular.jsonems_operations.jsonmedical.jsonothers.jsonpediatrics.jsonpharmacology.jsonterminology.jsontrauma.json💡 The JSON files are heterogeneous collections of (section → text) entries. The table view flattens these into uniform rows for easier indexing and filtering.
Split: train (tabular)
Columns
file (string)source (string)topic (string)section (string)text (string)Cardinality: depends on the number of sections parsed from the JSONs.
(Each JSON entry becomes one row.)
If you use EMS-MCQA in your work, please cite:
@misc{ge2025expertguidedpromptingretrievalaugmentedgeneration,
title = {Expert-Guided Prompting and Retrieval-Augmented Generation for Emergency Medical Service Question Answering},
author = {Xueren Ge and Sahil Murtaza and Anthony Cortez and Homa Alemzadeh},
year = {2025},
eprint = {2511.10900},
archivePrefix = {arXiv},
primaryClass = {cs.CL},
url = {https://arxiv.org/abs/2511.10900},
}
from datasets import load_dataset
# Load table (single split named "train")
ds = load_dataset("Xueren/EMS-Knowledge", split="train")
print(ds)
print(ds[0])
# Filter by topic
anatomy = ds.filter(lambda x: x["topic"] == "anatomy")
# Simple keyword search over section text
needle = "spinal cord"
hits = ds.filter(lambda x: needle.lower() in x["text"].lower())
print(len(hits), "matches for", needle)
# Group sections by file/topic (example)
by_file = ds.to_pandas().groupby("file").size().sort_values(ascending=False)
print(by_file.head())
8 commits
EMS-Knowledge is a lightweight, retrieval-friendly dataset distilled from
Emergency Medical Services (EMS) reference materials.
Each row contains a short section of text paired with its file name, topic, and section title,
making it easy to build search / RAG pipelines, create study aids, or ground QA systems. See more on our project page.
This repository includes:
A tabular split (single split named train) with the following columns:
file — source filename (e.g., anatomy.json)source — folder label (here: knowledge)topic — coarse topic derived from file stem (e.g., anatomy, trauma)section — section/heading within the filetext — the normalized section textThe original JSON files under raw/ for direct use:
airway, respiratory, ventilation.jsonanatomy.jsonassessment.jsoncardiovascular.jsonems_operations.jsonmedical.jsonothers.jsonpediatrics.jsonpharmacology.jsonterminology.jsontrauma.json💡 The JSON files are heterogeneous collections of (section → text) entries. The table view flattens these into uniform rows for easier indexing and filtering.
Split: train (tabular)
Columns
file (string)source (string)topic (string)section (string)text (string)Cardinality: depends on the number of sections parsed from the JSONs.
(Each JSON entry becomes one row.)
If you use EMS-MCQA in your work, please cite:
@misc{ge2025expertguidedpromptingretrievalaugmentedgeneration,
title = {Expert-Guided Prompting and Retrieval-Augmented Generation for Emergency Medical Service Question Answering},
author = {Xueren Ge and Sahil Murtaza and Anthony Cortez and Homa Alemzadeh},
year = {2025},
eprint = {2511.10900},
archivePrefix = {arXiv},
primaryClass = {cs.CL},
url = {https://arxiv.org/abs/2511.10900},
}
from datasets import load_dataset
# Load table (single split named "train")
ds = load_dataset("Xueren/EMS-Knowledge", split="train")
print(ds)
print(ds[0])
# Filter by topic
anatomy = ds.filter(lambda x: x["topic"] == "anatomy")
# Simple keyword search over section text
needle = "spinal cord"
hits = ds.filter(lambda x: needle.lower() in x["text"].lower())
print(len(hits), "matches for", needle)
# Group sections by file/topic (example)
by_file = ds.to_pandas().groupby("file").size().sort_values(ascending=False)
print(by_file.head())
8 commits