Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -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
85 changes: 85 additions & 0 deletions src/content/docs/Coverage_and_Gaps.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
= Coverage and Known Gaps
Ribose
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 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, and most languages in the corpus have no model.
Published neural models cover Hebrew, Khmer, Thai, Persian, Arabic, and
Urdu.

== Reference tables not yet encoded

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) is the Intelligence Community table for Kurdish
personal names: Perso-Arabic (Sorani) to Latin, using the 26 Latin
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, 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: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:2010 (Georgian), DIN 33903:2016 (Tamil), and DIN 33904:2018
(Devanagari) are already encoded.

=== BSI

* **BS 2979:1958** specifies the transliteration of Cyrillic and Greek
characters.
* **PD 6505:1982** is a guide to the romanization of Korean.

=== BGN/PCGN

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.
16 changes: 7 additions & 9 deletions src/pages/docs/isc-language.astro
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,9 @@ const tests = `tests { "input" -> "expected" }`
<h2>Rules and contexts</h2>
<pre><code>{rules}</code></pre>
<p><code>before</code>/<code>after</code> are zero-width
lookbehind/lookahead. <code>boundary</code> is a zero-width word edge.
<code>not_before</code>/<code>not_after</code> negate.
<strong>There is no alternation operator</strong> — alternatives are
separate rules.</p>
lookbehind/lookahead. <code>boundary</code> is a zero-width word
edge. <code>not_before</code>/<code>not_after</code> negate. <strong>There is no alternation operator</strong>
— alternatives are separate rules.</p>

<h2>Aliases</h2>
<pre><code>{aliases}</code></pre>
Expand All @@ -78,9 +77,9 @@ const tests = `tests { "input" -> "expected" }`
<h2>Stages calling stages; stdlib directives</h2>
<pre><code>{run}</code></pre>
<p><code>run</code> takes no other form — stray identifiers are a
parse error (a typo'd map fails loudly). The <code>rababa</code>
directive invokes the ML adapter with mandatory keyword arguments;
an unprovisioned model raises a named error enumerating known ids.</p>
parse error (a typo'd map fails loudly). The <code>rababa</code> directive
invokes the ML adapter with mandatory keyword arguments; an
unprovisioned model raises a named error enumerating known ids.</p>

<h2>Casing targets</h2>
<pre><code>{casing}</code></pre>
Expand All @@ -96,7 +95,6 @@ const tests = `tests { "input" -> "expected" }`

<h2>Normative reference</h2>
<p>The full specification (IS-1 v2) with the 22 frozen rulings and the
cross-runtime guarantee lives in
<a href="https://github.com/interscript/interscript-models/blob/main/docs/IS-1-v2.md">interscript-models/docs/IS-1-v2.md</a>.</p>
cross-runtime guarantee lives in <a href="https://github.com/interscript/interscript-models/blob/main/docs/IS-1-v2.md">interscript-models/docs/IS-1-v2.md</a>.</p>
</div>
</Base>
22 changes: 22 additions & 0 deletions src/pages/maps/index.astro
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,11 @@ const liveDemoable = entries.filter((e) => bundledCodes.has(e.code)).length
sourceScripts={sourceScripts}
destinationScripts={destinationScripts}
/>

<div class="coverage-link">
<p><a href="/docs/Coverage_and_Gaps">Coverage and known gaps →</a></p>
<p>What is held but not yet encoded, and which neural models are deliberately withheld.</p>
</div>
</section>
</Base>

Expand Down Expand Up @@ -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;
}
</style>
Loading