Back to corpus
research noteexperiment writeup candidatescore 24
NKO-1.3 Complete — `nko.transliterate` Canonical Engine
`nko/transliterate.py` — the canonical, unified transliteration engine for the N'Ko Unified Platform. Consolidates **6 scattered implementations** into one authoritative module.
Full HTML reader
Read the full artifact
Extracted abstract or opening context
`nko/transliterate.py` — the canonical, unified transliteration engine for the N'Ko Unified Platform. Consolidates **6 scattered implementations** into one authoritative module.
| # | Source | Type | Status | |---|--------|------|--------| | 1 | `core/transliteration/` (Bridge + NkoHandler + ArabicHandler + LatinHandler) | Python — IPA intermediary arch | **Primary source** — most structured | | 2 | `core/prediction/translation_bridge.py` | Python — keyboard-ai with dictionary + SQLite | Superseded (duplicate transliteration logic) | | 3 | `tools/telegram-bot/bridge_core.py` | Python — standalone fallback bridge | Superseded | | 4 | `tools/pwa/js/bridge-core.js` | JavaScript — client-side bridge | Reference only (JS, different runtime) | | 5 | `core/audio/phoneme.py` | Python — PhonemeMapper with char maps | Phoneme maps referenced | | 6 | `core/pipeline/stages.py` | Python — TransliterationStage wrapping Bridge | Pipeline consumer, not source |
**Canonical source chosen:** `core/transliteration/` — best architecture (IPA intermediary), most complete character maps, cleanest separation of concerns. Enhanced with corrections from other implementations.
| Direction | Status | |-----------|--------| | N'Ko → Latin | ✅ Full (7 vowels, 19+ consonants, digits, tone marks, punctuation) | | Latin → N'Ko | ✅ Full (single chars + digraphs: ny, ng, gb, ch, sh, dj, rr) | | N'Ko → Arabic | ✅ Via IPA intermediary | | Arabic → N'Ko | ✅ Via IPA intermediary | | Arabic → Latin | ✅ Full Arabic consonants + vowel diacritics | | Latin → Arabic | ✅ Via IPA intermediary | | Script detection | ✅ Unicode-range voting (NKO: U+07C0-07FF, Arabic: U+0600-06FF+) |
- **7 vowels:** ߊ(a) ߋ(o) ߌ(i) ߍ(e) ߎ(u) ߏ(ɔ) ߐ(ɛ) - **19 consonants:** ߒ(n) ߓ(b) ߔ(p) ߕ(t) ߖ(dʒ) ߗ(tʃ) ߘ(d) ߙ(r) ߚ(rr) ߛ(s) ߜ(gb) ߝ(f) ߞ(k) ߟ(l) ߡ(m) ߢ(ɲ) ߣ(n) ߤ(h) ߥ(w) ߦ(j) ߧ(ŋ) - **3 alternates:** ߠ(na) ߨ(p) ߩ(r) ߪ(s) - **10 digits:** ߀-߉ - **5 tone marks:** ߫(high) ߬(low) ߭(falling) ߮(rising) ߯(long) - **4 punctuation:** ߸(,) ߹(.) ߷(!) ߺ(-) - **2 combining:** ߲(nasalization) ߳(tilde)
Promotion decision
What has to happen next
Attach run IDs, datasets, metrics, and reproduction commands.
Why this is not always a full paper yet
Corpus pages are public-safe readers for discovered workspace artifacts. They are not automatically final papers. A corpus item becomes a polished paper only after the editable source, evidence checkpoints, references, figures, render path, and release status are attached through the paper schema.