Skip to content
⚠ Pre-1.0 — specs and API are under active development and may change without notice. Follow announcements.

Get started

A passage has one identity. The editions that carry it are many.

“Plato, Republic 514a” is the same passage in Burnet’s Oxford text, the Slings OCT that replaced it, Shorey’s Loeb, and every translation that keeps the Stephanus numbers. Pagination, apparatus and language differ. The reference does not. It is the most durable thing in the scholarly record: central to classics, theology, law and philosophy, used by every edition and commentary, and understood across centuries.

To software it is invisible. The number lives as plain text in a footnote, dependent on a reader who knows the convention. No tool can resolve it, no link can carry it, no pipeline can index it. A reference that survived four hundred years on paper breaks in a decade online, because the edition behind it sits in a repository the citation cannot reach.

TextRefs closes that gap. Every canonical reference is minted as a persistent identity of its own, a single HTTP URI for the passage a scholar means. Editions, translations, corpora and databases attach to it as curated mappings: a Stephanus locator, a CTS URN, a Wikidata QID, a DOI for the Loeb, the reading URL of the archive that holds the text. The citation becomes the doorway, and everything that carries the passage is reachable through it.

This is the interoperability scholarship has lacked. Every scholar already keeps the map privately. Bekker for the Metaphysics, Corcilius for the De anima, Rashed for On Generation and Corruption. Exact, hard-won, and gone the moment the article closes. TextRefs makes it shared and machine-readable. Oxford and the Loeb, Leipzig and Perseus, Wikidata and VIAF keep their own identifiers, their own homes, their own richer work, joined through the one reference they share. No central host. No redundancy. Authority stays with the institutions that earned it, and the archive that digitised an edition is now one mapping away from every citation of the passage it holds.

The division is deliberate. TextRefs holds the reference layer only and nothing else. It hosts no text, replaces no edition, claims no apparatus. The same model covers every field that cites by structure: a Stephanus passage in Plato, a Bekker line in Aristotle, an article in the Summa, a chapter and verse in the Vulgate, a fragment in the Digesta. Each citation system carries its own locator rules. The registry stays small, persistent and legally reusable, released under CC0 so the data flows into any tool that needs it, curated by scholars through reviewed contributions, governed as non-profit infrastructure, not owned by a press.

Four record types carry the model. Work, CitationSystem, CanonicalReference, and MappingAssertion for equivalence, published as JSON-LD against SKOS, Dublin Core and schema.org. Existing systems are layered, never displaced. A DOI still names the edition. A CTS URN still names the passage in Perseus. TextRefs holds the canonical reference they share, and makes it resolve.

Browse the registry. Read the standard. Bring your corpus in.

  • How it works — the practical model: identity, mappings, resolver targets, and examples.
  • Use cases — concrete scenarios across research, libraries, digital editions, and AI grounding.
  • Mappings and resolver targets — how to model external identifiers, reading URLs, and canonical-citation candidates.
  • Authoring registry data — the contributor YAML format and the npm run build:data pipeline.
  • Related identifier systems — how TextRefs relates to DOI, ARK, CTS, DTS, Wikidata, VIAF, and friends.
  • URL layout — how /id/, /reg/, /cite/, and /api/ fit together.
  • The standard — the normative specification text (v0.1.0-draft).
  • The association — the non-profit behind TextRefs, its statutes, and the open board search.