From 7996c98c1b8c35295a49b476946e3e8cb2e55017 Mon Sep 17 00:00:00 2001 From: Ronald Tse Date: Wed, 28 Oct 2026 17:48:16 +0800 Subject: [PATCH 1/3] docs: coverage and known gaps page States what the 300-map corpus covers, the fifteen held standards not yet encoded (ICS Kurdish and Chinese, five DIN standards, two BSI standards, six BGN/PCGN systems), the five languages whose neural models are deliberately withheld for lack of gold data, and the source documents the project does not hold. Linked from the maps catalogue. --- src/content/docs/Coverage_and_Gaps.adoc | 95 +++++++++++++++++++++++++ src/pages/maps/index.astro | 22 ++++++ 2 files changed, 117 insertions(+) create mode 100644 src/content/docs/Coverage_and_Gaps.adoc diff --git a/src/content/docs/Coverage_and_Gaps.adoc b/src/content/docs/Coverage_and_Gaps.adoc new file mode 100644 index 00000000..87838aa4 --- /dev/null +++ b/src/content/docs/Coverage_and_Gaps.adoc @@ -0,0 +1,95 @@ += Coverage and Known Gaps +Ribose +v1.0, 2026-10-28 + +Interscript encodes authority transliteration standards as executable maps. +Every standard the project holds has been audited against the corpus; this +page states what is covered, what is held but not yet encoded, and what is +deliberately not done. + +The authoritative reference-to-corpus inventory lives in the +https://github.com/interscript/maps/blob/main/docs/coverage/README.adoc[maps repository]. + +== What is covered + +The corpus contains 300 authority-backed systems, including ALA-LC, +BGN/PCGN, ISO, ODNI (the Intelligence Community standard), UN/UNGEGN, +ICAO, DIN, BSI, and national systems. Each map carries its standard's own +example rows and is gated by ISC parse checks, embedded tests, and +cross-runtime parity. + +The neural layer is separate from the map layer. A language can have a map +without a model; most of the corpus does. Shipped models currently cover +Hebrew, Khmer, Thai, Persian, Arabic, and Urdu. + +== Held standards not yet encoded + +Fifteen deterministic tables are held but not yet encoded. Each is a +complete table with its own example rows. None needs training data to +encode; a training corpus is required only to train a model on top of the +map. + +=== ODNI / ICS 630-01 + +* **Kurdish** (Annex G) — the Intelligence Community table for Kurdish + personal names: Perso-Arabic (Sorani) to Latin, using the 26 Latin + letters plus the apostrophe, deliberately without diacritics. It is a + different system from the BGN/PCGN Kurdish 2007 map. +* **Chinese** (Annex D) — not a Han-character romanizer. The standard + applies to names already written in Hanyu Pinyin and normalises that + rendering (surname title case, no umlauted u, spacing, apostrophes). Its + appendices include conversion tables from Wade-Giles and Yale to pinyin. + Han to pinyin is a separate problem that needs a character lexicon; the + corpus already has the BGN/PCGN Hanyu Pinyin map for that. + +=== DIN + +* **DIN 31635** — Arabic, Ottoman Turkish, Persian, Kurdish, and Urdu. +* **DIN 31636** — Hebrew. +* **DIN 32706** — Armenian. +* **DIN 32708** — Japanese. +* **DIN 1460-2** — non-Slavic Cyrillic alphabets. + +DIN 32707 (Georgian), DIN 33903 (Tamil), and DIN 33904 (Devanagari) are +already encoded. + +=== BSI + +* **BS 2979:1958** — transliteration of Cyrillic and Greek characters. +* **PD 6505:1982** — guide to the romanization of Korean. + +=== BGN/PCGN + +* **Burmese**, **Lao**, **Shan**, and **Inuktitut** — complete BGN/PCGN + tables for scripts whose maps are not yet encoded. +* **Hebrew** and **Khmer** — complete BGN/PCGN tables; Hebrew is currently + covered only by the ICAO 9303 map, and Khmer by a neural model, not by a + BGN/PCGN rule map. + +== Not doing: neural models for five languages + +Burmese, Dzongkha, Inuktitut, Lao, and Shan have complete BGN/PCGN tables, +but no gold script-to-romanization data exists to train a neural model. +Interscript withholds a model rather than ship a bad-quality one. This +blocks training, not map coverage: the deterministic maps for these +languages remain in scope. + +== Source documents not held + +Some verified maps have no archived source document in the project: + +* **ALA-LC** — one table document is archived of the 78 tables in the + official catalogue. The 55 encoded ALA-LC maps are verified corpus + entries, but their source tables are not held. +* **ISO** — ISO 9, ISO 9984, and ISO/TR 11941 are held; the other ISO + standards represented in the corpus are not. +* **UN/UNGEGN** — the schedules are not held. + +These are archival gaps, not encoding gaps. + +== How the audit works + +A system is only called missing after checking, in order: the corpus on +main, open pull requests, merged history, and maps under other authority +prefixes. The corpus is the authority for what is encoded; a diff of held +PDFs against `main` alone is not enough. diff --git a/src/pages/maps/index.astro b/src/pages/maps/index.astro index 5b63a5d3..44558302 100644 --- a/src/pages/maps/index.astro +++ b/src/pages/maps/index.astro @@ -103,6 +103,11 @@ const liveDemoable = entries.filter((e) => bundledCodes.has(e.code)).length sourceScripts={sourceScripts} destinationScripts={destinationScripts} /> + + @@ -162,4 +167,21 @@ const liveDemoable = entries.filter((e) => bundledCodes.has(e.code)).length margin-top: 3rem; margin-bottom: 6rem; } + .coverage-link { + margin-top: 2.5rem; + padding-top: 1.5rem; + border-top: 1px solid var(--color-rule); + font-size: var(--text-small); + } + .coverage-link p { + margin: 0; + } + .coverage-link p + p { + margin-top: 0.35rem; + color: var(--color-stone); + } + .coverage-link a { + color: var(--color-brand-deep); + font-weight: 600; + } From bf27df17892582cacbd489a4a568d292d7125cde Mon Sep 17 00:00:00 2001 From: Ronald Tse Date: Wed, 28 Oct 2026 17:48:16 +0800 Subject: [PATCH 2/3] fix: the ISC page whitespace-collapse regression Four text-to-tag and tag-to-text line breaks made Astro trim rendered spaces. Hand-wrap them at safe boundaries and add the file to .prettierignore so Prettier cannot reintroduce the breaks. site.test.ts: 34/34 pass (the guard was red on main). --- .prettierignore | 1 + src/pages/docs/isc-language.astro | 16 +++++++--------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/.prettierignore b/.prettierignore index e770d326..850a4e08 100644 --- a/.prettierignore +++ b/.prettierignore @@ -30,3 +30,4 @@ src/pages/api-docs.astro # hand-wrapped prose (Astro whitespace trap) — see CLAUDE.md src/pages/playground.astro +src/pages/docs/isc-language.astro diff --git a/src/pages/docs/isc-language.astro b/src/pages/docs/isc-language.astro index bc7165c1..2f05c150 100644 --- a/src/pages/docs/isc-language.astro +++ b/src/pages/docs/isc-language.astro @@ -65,10 +65,9 @@ const tests = `tests { "input" -> "expected" }`

Rules and contexts

{rules}

before/after are zero-width - lookbehind/lookahead. boundary is a zero-width word edge. - not_before/not_after negate. - There is no alternation operator — alternatives are - separate rules.

+ lookbehind/lookahead. boundary is a zero-width word + edge. not_before/not_after negate. There is no alternation operator + — alternatives are separate rules.

Aliases

{aliases}
@@ -78,9 +77,9 @@ const tests = `tests { "input" -> "expected" }`

Stages calling stages; stdlib directives

{run}

run takes no other form — stray identifiers are a - parse error (a typo'd map fails loudly). The rababa - directive invokes the ML adapter with mandatory keyword arguments; - an unprovisioned model raises a named error enumerating known ids.

+ parse error (a typo'd map fails loudly). The rababa directive + invokes the ML adapter with mandatory keyword arguments; an + unprovisioned model raises a named error enumerating known ids.

Casing targets

{casing}
@@ -96,7 +95,6 @@ const tests = `tests { "input" -> "expected" }`

Normative reference

The full specification (IS-1 v2) with the 22 frozen rulings and the - cross-runtime guarantee lives in - interscript-models/docs/IS-1-v2.md.

+ cross-runtime guarantee lives in interscript-models/docs/IS-1-v2.md.

From c9068e5cc7468a6b4a7a19b33a4480fcbdbad93f Mon Sep 17 00:00:00 2001 From: Ronald Tse Date: Wed, 28 Oct 2026 18:07:32 +0800 Subject: [PATCH 3/3] docs: clarify coverage and gaps page --- src/content/docs/Coverage_and_Gaps.adoc | 134 +++++++++++------------- 1 file changed, 62 insertions(+), 72 deletions(-) diff --git a/src/content/docs/Coverage_and_Gaps.adoc b/src/content/docs/Coverage_and_Gaps.adoc index 87838aa4..6eb3f4db 100644 --- a/src/content/docs/Coverage_and_Gaps.adoc +++ b/src/content/docs/Coverage_and_Gaps.adoc @@ -1,95 +1,85 @@ = Coverage and Known Gaps Ribose -v1.0, 2026-10-28 - -Interscript encodes authority transliteration standards as executable maps. -Every standard the project holds has been audited against the corpus; this -page states what is covered, what is held but not yet encoded, and what is -deliberately not done. - -The authoritative reference-to-corpus inventory lives in the -https://github.com/interscript/maps/blob/main/docs/coverage/README.adoc[maps repository]. +v1.1, 2026-10-28 + +Interscript encodes authority transliteration standards as executable +maps. This page states which systems the corpus covers, which reference +tables in the project's reference collection, the archive of standards +documents used to build and verify the maps, do not yet have a +corresponding map, and which source documents are not in the +collection. Each map carries the example rows of its +standard and is checked by ISC parsing, embedded tests, and +cross-runtime parity. == What is covered -The corpus contains 300 authority-backed systems, including ALA-LC, -BGN/PCGN, ISO, ODNI (the Intelligence Community standard), UN/UNGEGN, -ICAO, DIN, BSI, and national systems. Each map carries its standard's own -example rows and is gated by ISC parse checks, embedded tests, and -cross-runtime parity. +The corpus contains more than 290 authority-backed systems, including +ALA-LC, BGN/PCGN, ISO, ODNI (the Intelligence Community standard), +UN/UNGEGN, ICAO, DIN, BSI, and national systems. -The neural layer is separate from the map layer. A language can have a map -without a model; most of the corpus does. Shipped models currently cover -Hebrew, Khmer, Thai, Persian, Arabic, and Urdu. +The neural layer is separate from the map layer. A language can have a +map without a model, and most languages in the corpus have no model. +Published neural models cover Hebrew, Khmer, Thai, Persian, Arabic, and +Urdu. -== Held standards not yet encoded +== Reference tables not yet encoded -Fifteen deterministic tables are held but not yet encoded. Each is a -complete table with its own example rows. None needs training data to -encode; a training corpus is required only to train a model on top of the -map. +The project's reference collection contains complete reference tables +for the following systems, and the corpus does not yet provide a map +for them. === ODNI / ICS 630-01 -* **Kurdish** (Annex G) — the Intelligence Community table for Kurdish +* **Kurdish** (Annex G) is the Intelligence Community table for Kurdish personal names: Perso-Arabic (Sorani) to Latin, using the 26 Latin - letters plus the apostrophe, deliberately without diacritics. It is a - different system from the BGN/PCGN Kurdish 2007 map. -* **Chinese** (Annex D) — not a Han-character romanizer. The standard + letters and the apostrophe without diacritics. It is a different + system from the BGN/PCGN Kurdish 2007 map. +* **Chinese** (Annex D) is not a Han-character romanizer. The standard applies to names already written in Hanyu Pinyin and normalises that - rendering (surname title case, no umlauted u, spacing, apostrophes). Its - appendices include conversion tables from Wade-Giles and Yale to pinyin. - Han to pinyin is a separate problem that needs a character lexicon; the - corpus already has the BGN/PCGN Hanyu Pinyin map for that. + rendering, including surname capitalization, the omission of the + umlaut on u, spacing, and apostrophes. Its appendices contain + conversion tables from Wade-Giles, Yale, and Mandarin Phonetic to + pinyin. A Han-to-pinyin conversion requires a character lexicon, and + the corpus provides the BGN/PCGN Hanyu Pinyin map for that purpose. === DIN -* **DIN 31635** — Arabic, Ottoman Turkish, Persian, Kurdish, and Urdu. -* **DIN 31636** — Hebrew. -* **DIN 32706** — Armenian. -* **DIN 32708** — Japanese. -* **DIN 1460-2** — non-Slavic Cyrillic alphabets. +* **DIN 31635:2011** covers Arabic, Ottoman Turkish, Persian, Kurdish, + and Urdu. +* **DIN 31636:2018** covers Hebrew. +* **DIN 32706:2010** covers Armenian. +* **DIN 32708:2014** covers Japanese. +* **DIN 1460-2:2011** covers non-Slavic Cyrillic alphabets. -DIN 32707 (Georgian), DIN 33903 (Tamil), and DIN 33904 (Devanagari) are -already encoded. +DIN 32707:2010 (Georgian), DIN 33903:2016 (Tamil), and DIN 33904:2018 +(Devanagari) are already encoded. === BSI -* **BS 2979:1958** — transliteration of Cyrillic and Greek characters. -* **PD 6505:1982** — guide to the romanization of Korean. +* **BS 2979:1958** specifies the transliteration of Cyrillic and Greek + characters. +* **PD 6505:1982** is a guide to the romanization of Korean. === BGN/PCGN -* **Burmese**, **Lao**, **Shan**, and **Inuktitut** — complete BGN/PCGN - tables for scripts whose maps are not yet encoded. -* **Hebrew** and **Khmer** — complete BGN/PCGN tables; Hebrew is currently - covered only by the ICAO 9303 map, and Khmer by a neural model, not by a - BGN/PCGN rule map. - -== Not doing: neural models for five languages - -Burmese, Dzongkha, Inuktitut, Lao, and Shan have complete BGN/PCGN tables, -but no gold script-to-romanization data exists to train a neural model. -Interscript withholds a model rather than ship a bad-quality one. This -blocks training, not map coverage: the deterministic maps for these -languages remain in scope. - -== Source documents not held - -Some verified maps have no archived source document in the project: - -* **ALA-LC** — one table document is archived of the 78 tables in the - official catalogue. The 55 encoded ALA-LC maps are verified corpus - entries, but their source tables are not held. -* **ISO** — ISO 9, ISO 9984, and ISO/TR 11941 are held; the other ISO - standards represented in the corpus are not. -* **UN/UNGEGN** — the schedules are not held. - -These are archival gaps, not encoding gaps. - -== How the audit works - -A system is only called missing after checking, in order: the corpus on -main, open pull requests, merged history, and maps under other authority -prefixes. The corpus is the authority for what is encoded; a diff of held -PDFs against `main` alone is not enough. +The project's reference collection contains complete BGN/PCGN tables +for Adyghe, Avar, Burmese, +Chuvash, Dzongkha, Hebrew, Inuktitut, Kabardian, Karachay-Balkar, +Khmer, Lao, Modern Syriac, Ossetian, Shan, Udmurt, and Yakut. The +corpus does not yet provide a map for these systems. Hebrew is +represented by the ICAO 9303 map and Khmer by a neural model; neither +substitutes for a BGN/PCGN rule map. + +== Source documents not in the collection + +The corpus contains verified maps for several authorities whose source +table documents are not in the project's reference collection: + +* **ALA-LC** — the collection contains one table document of the 78 + tables in the official catalogue. The corpus contains 55 ALA-LC maps. +* **ISO** — ISO 9, ISO 9984, and ISO/TR 11941 are in the collection. + The corpus's other ISO maps, which implement ISO 233, ISO 843, ISO + 3602, ISO 11940, and ISO 15919, have no source document in the + collection. +* **UN/UNGEGN** — the corpus contains 32 UN maps, and the schedules are + not in the collection.