Data
The YAML files behind the EDS Research Index: the source catalog, research records, subtype registry, searches for new evidence, open questions, and the log of every change. Each file is checked against the published schema when the site builds, and every record, source, and date on the site comes from these files.
Corpus
The research records (findings, practices, events, patient-reported patterns, and programs) and the subtype registry.
/eds-corpus/subtypes.yml/eds-corpus/historiography.yml/eds-corpus/diagnosis-and-classification.yml/eds-corpus/genetics.yml/eds-corpus/comorbidities.yml/eds-corpus/management.yml/eds-corpus/community-knowledge.yml/eds-corpus/folk-and-early-management.yml/eds-corpus/patient-experience.yml/eds-corpus/research-programs.yml
Sources, searches, and the change log
The source catalog, venues, searches for new evidence, change log, open questions, collections, and publication policy.
/research/sources.yml/research/venues.yml/research/monitors.yml/research/runs.yml/research/questions.yml/research/collections.yml/research/publication-policy.yml
Read a record file
Each corpus file other than subtypes.yml has a category, a list of records, and the schema version eds-research/corpus/v1. A record's evidence list names its sources by ID, grouped by kind of evidence and evidence level. This example reads the files with the yaml package, as this site does, and lists the history records with the title of each source they cite:
curl --fail --location --remote-name https://hraness.com/eds/eds-corpus/historiography.yml
curl --fail --location --remote-name https://hraness.com/eds/research/sources.yml
bun add yaml
bun -e 'import { parse } from "yaml"; const read = async (name) => parse(await Bun.file(name).text()); const corpus = await read("historiography.yml"); const sources = new Map((await read("sources.yml")).sources.map((source) => [source.id, source])); console.log(corpus.schema, corpus.category.id); for (const record of corpus.records) for (const evidence of record.evidence) for (const id of evidence.source_ids) console.log(record.id, record.date, record.date_precision, evidence.stratum, evidence.tier, sources.get(id)?.title ?? "unknown " + id);'The output starts with eds-research/corpus/v1 historiography, then prints one line per cited source: the record ID, its date and date precision, the kind of evidence, the evidence level, and the source title. One line reads:
hist-van-meekren-1682 1682 year historical retrospective-account Ehlers-Danlos syndrome: a historical reviewsubtypesandcriteria_era: the EDS types a record covers and the diagnostic criteria in force when its sources were written. Keep both with the claim.evidence: a list of entries, each with a kind of evidence (stratum), an evidence level (tier), and thesource_idsbehind it. Compare levels only within one kind of evidence.status: how settled the claim is, as the methodology defines it.dateanddate_precision: dates are quoted text, such as1682or-0400, where a minus sign marks a year before the common era. The precision isday,month,year,decade, orcentury.reviewed_atandreassess_by: the Last checked and Reassess by dates on the record page. The source catalog explains Last checked.
The corpus schema and research schema define every field.
License
These files are licensed under CC BY 4.0. Credit them as “EDS Research Index (hraness.com/eds), CC BY 4.0” and say whether you changed them. The papers and reports they cite keep their own terms.
How the files stay consistent
Each source's ID is built from its URL and publication date, so the same source always gets the same ID and duplicates are caught. The build also checks that every record, venue, collection, and log entry points to something that exists, and that each record gives a source the same evidence level as the source catalog. A broken reference stops the build rather than breaking a page.