Skip to content

WF-1 pilots: Thai leading-vowel machinery as shared ruleset + per-map overrides - #261

Merged
ronaldtse merged 1 commit into
mainfrom
feat/isc-wf1-pilots
Nov 8, 2026
Merged

ronaldtse merged 1 commit into
mainfrom
feat/isc-wf1-pilots

Conversation

@ronaldtse

Copy link
Copy Markdown
Contributor

Summary

ISC-WF-1 corpus pilot (WO16 step 6): the ALA-LC / BGN/PCGN Thai leading-vowel machinery becomes one shared ruleset with per-map overrides.

  • New dependency library libs/thai-latn.isc: ruleset leading_vowel_digraphs — the 327 from-strings common to alalc-tha-Thai-Latn-2011 (738 digraph rows) and bgnpcgn-tha-Thai-Latn-2002 (344 rows): 159 byte-identical rows plus the 168 convention-differing rows in BGN/PCGN form (ALA-LC uses the c-cedilla/circumflex forms č/ē/ō; BGN/PCGN the plain ch/e/o).
  • bgnpcgn-tha-Thai-Latn-2002: its whole digraph pass becomes use thailatn.leading_vowel_digraphs override { 17 map-only rows }.
  • alalc-tha-Thai-Latn-2011: use ... override { 168 ALA-LC replacement rows + 1196 map-only rows } — child-wins replacement on byte-exact from-equality (§4.2), all in one pass (§4.2.5).
  • Spec amendment §4.2.6: pin where O lands — overrides join the expansion's trailing parallel block when there is one (so replacement acts on the source-script pass, §4.3); otherwise append as stage-level rows. This wording was left implicit before; the runtime implementations exposed the ambiguity.

Verification

  • Compiled IR before/after is set-identical per pass for both maps (alalc 5 passes, bgnpcgn 9; row multisets equal, pass count equal) — the refactor is provably pass-structure-preserving.
  • All 11,048 golden-capture rows re-transliterated through the refactored corpus: zero new deltas (only the 5 known alalc-ell-Grek-Latn-2010 executor rows, fixed in interscript-ts#124, unrelated).
  • Pilot maps' embedded golden rows (15 rows across both maps) byte-identical through a full runtime on the freshly built artifact.

…ed ruleset

The Thai leading-vowel digraph machinery (เ แ โ ไ ใ precede their
consonant but romanize after it, encoded as one C+vowel row per
consonant) existed twice: alalc-tha-Thai-Latn-2011 (738 digraph rows)
and bgnpcgn-tha-Thai-Latn-2002 (344 rows), with 327 from-strings common
to both — 159 byte-identical, 168 differing by convention (ALA-LC
c-cedilla/circumflex forms č/ē/ō vs BGN/PCGN plain ch/e/o).

New dependency library libs/thai-latn.isc carries those 327 rows (BGN/
PCGN forms) as ruleset leading_vowel_digraphs, one parallel block.
bgnpcgn-tha replaces its whole digraph pass with a use of the ruleset
plus its 17 map-only rows in the override block; alalc-tha does the
same with the 168 ALA-LC forms as child-wins replacements and its 1196
map-only rows as additions.

Spec amendment (§4.2.6): pin where O lands — overrides join the
expansion's trailing parallel block so the whole expansion shares one
longest-match pass; otherwise they append as stage-level rows.

Verification: compiled IR before/after is set-identical per pass for
both maps (alalc 5 passes, bgnpcgn 9, row multisets equal); all 11,048
golden-capture rows re-transliterated through the refactored corpus
show zero new deltas (the only 5 deltas are the known alalc-ell-2010
constraint rows, tracked in interscript-ts#124).
@ronaldtse
ronaldtse merged commit e58e94a into main Nov 8, 2026
9 of 11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant