About

About Interscript

One map format for every authority-backed romanization system — running in any language runtime.

Partners & supporters

The Interscript project has received extensive support from the following organizations and individuals, in no particular order:

Individual support: Prof. Lyubomir Ivanov (profile) of the Bulgarian Academy of Sciences, and the Working Group on Romanization Systems of UNGEGN.

Mission

Interscript exists to make transliteration between writing systems interoperable. Where most romanization tools implement one system or one authority, Interscript encodes the complete corpus of major authority-backed systems (BGN/PCGN, ISO, UN, ALA-LC, ODNI, ICAO, DIN, and others) using a single map format that runs in any language runtime.

Why it matters

Names, places, and historical records exist in dozens of scripts. Whether you're a librarian cataloguing foreign-language works, a government agency standardising romanisation, or a developer building multilingual search, you need predictable, auditable conversion. Interscript maps are checked into git, versioned, and independently testable against the published authority documents.

What the measurements show

For conversions no authority document covers — restoring the diacritics a scribe left out, or reading unwritten Thai as phonemes — we train neural models and measure them the same way we test maps. On the public Arabic benchmark SadeedDiac-25, our Arabic model scores 2.29% error with 580 million parameters: better than every general-purpose language model we measured it against (one vendor-published figure is lower; we could not reproduce it), and about three times better than the 1.5-billion-parameter system the benchmark was published with. The newest general-purpose models we tested were three to five times worse than their predecessor on this task. One of our models is small enough (95 MB) to run in a web browser.

Every score, the method used to produce it, and the full results table are on the neural layer page.

History

Interscript was started at Ribose in 2019 as a Ruby library and has since grown to include TypeScript and Python engines, a public reference site, and an optional phonological layer — interscript-ml (the contract and model zoo) run by the secryst crystal family (Ruby · Python · TypeScript). The map corpus now covers 289 systems.

The ecosystem

Interscript is deliberately layered. The core is deterministic maps and engines. When a map needs undiacritized text vocalized first, it dispatches to an optional crystal:

  • Maps + enginesinterscript-ruby, interscript-ts, interscript-py — pure deterministic conversion.
  • Contract + zoointerscript-ml — the models.yaml index, IMF v1 model format, and golden sets.
  • Crystalssecryst (gem install secryst · pip install secryst · npm install interscript) — local ONNX inference implementing the contract. A crystal has no interscript dependency; an engine without a crystal simply cannot execute maps that declare a vocalization step.
  • Traininginterscript-ml-train — teachers whose students enter the zoo.

Team

Interscript is an open-source project maintained by Ribose Inc. and a community of contributors. Source code is on GitHub; issues and pull requests are welcome.