[34] 欧米の計算機業界はエチオピアの言語に対応したシステムを販売してこなかったようで、 国家の標準規格もなく、アジアの多くの地域と同様に互換性のない雑多な実装が乱立していたらしい。
[35] ただしエチオピア文字が他の地域の文字と異なるのは、 8ビット符号にフィットする文字数に収まらなかったことで、 他の地域に見られない独特の手法が発展することになった。
[36] 1つはフォント依存符号化によるもので、それ自体は多くの地域で行われたが、 エチオピア文字の場合はワープロ等の機能によって2つ以上のフォントを切り替えることで文字数の制約を解決している。
[37]
1つは ASCII の翻字を通信に用いる手法で、それ自体はやはり多くの地域で行われたが、
エチオピアでは HTML要素の拡張として
Webブラウザーに実装された事例がある。
[38] 1つは日本の漢字コードの構造の流用で、 日本の国立研究所の協力で日本の技術と整合的な方法でエチオピア文字が利用できる環境が作られた。 8ビット符号で収まらない文字数があるなら2バイト符号でとなるのは当然発想されるべきで、 他の地域でほぼ見られないのは意外なことだが、やはり技術的・経済的な障壁があるのだろう。 実際エチオピアでも日本技術のシステムが普及したとは言い難い。
[17] The Ethiopic Unicode Resource Page, , https://web.archive.org/web/20000816232335/http://www.abyssiniacybergateway.net/fidel/unicode/
[41] 2nd DP ISO 10646 では、 33 × 8 の組み合わせの各音節を符号化していた。 ただし当時の ISO/IEC 10646 の符号構造は94文字集合を基礎単位にしていたので、 ビット組合せとしては不連続になっていた。 >>40
[42] 版 Unicode 案は、 >>41 を参照しつつ独自に定めていた。 33 × 8 の組合せの各音節を基本に、 その他を配置していた。 >>40
U+0700-0807: Basic Ge'ez syllabary U+0808-081B: Numbers U+081C-081F: Punctuation
[44] Extended Ethiopian ブロックは >>40:
U+0820-082F: Variant letters U+0830-0832: Additional punctuation U+0833-083F: Diacritical marks U+0840-089E: Additional letters U+089F-08FF: Currently unassigned
[46] の Unicode 1.0.0 第1巻の本体ではエチオピア文字は完全に削除されている。
[59] ただし Unicode 1.0.0 第1巻の附属書Eで Proposed Scripts としてエチオピア文字の記述があり、 符号表や符号位置の記載こそないものの、従来案とほぼ同じ本文が掲載されている。 >>58
[45] の ISO/IEC DIS 10646-1.2:1992 ではエチオピア文字は完全に削除されている。
[48] UTC でに提案され、 , に改定されたという案に由来するという付けメール収録案。 >>47
[49] ここから推測するに、 UTC に於いて、もしかしたら WG2 に於いても、 従来案の音節符号化案ではなく、 音素に分解して符号化するべき (インド系文字などのように) という意見が有力になり、 全体の進行を遅らせないために ISO/IEC 10646 の初版から削除することになったのだろう。
[56] >>55 は付けで発行されに改定されたといい、 著作権表記がの UTR #1 に収録されたエチオピア文字案。 内容はおおむね >>47 と同じであるが、 こちらがやや古い時点の案らしい。
[52]
>>51 は付けの意見募集で、
添付されていたらしい肝心の符号表が欠けているが、文中の説明から
U+1100
から少なくても U+1138
までの領域に音素が割り当てられていたらしいことがわかる。
,
の UTC
で議論されるとのこと。
[57] >>47, >>55 は U+1200
からの領域を使っている。 >>51 の誤りでないとすれば、
平成4年年始時点ではまだ U+1100
からの領域を使っており、
平成4年の秋には U+1200
からに変わっていたということか。
* The Ethiopian proposal was written by Joe Becker. Ethiopian U+1200 U+125F
based on UTC/1991-026 On the Extended Ethiopic Alphabet of February 26, 1991 and its later adjustments by Lloyd Anderson, unioned with features of the Xerox Amharic implementation by Joe Becker. The character names are based on those in DP 10646, which came from WG2/N459 "Ethiopian character sets" by Michael Mann.
Draft October 30, 1992; rev 93/01/08
[61] >>53 = >>87 は付けのエチオピア人グループの提案書であり、 Unicode 1.0.0 附属書E案と UTR #1 案に触れつつ、 具体的な音節文字案を提示している。
[64] >>54 は案。から始まった作業とある。 >>61 の系統。
[76] なお >>75 は >>54 に付属するが「NOT UPDATED」とあり、 作業途中のある時点の版と思われる。
[90] >>89 は作業途中の版。 Mar 26 とだけあり、 かか検討を要する。
[72] の 「UTC-95-055A Proposal of Becker et.al.」 という案があったとのこと。非公開。 >>71 >>63 の系統。 の WG2 会議に提出された >>73。
[74] >>73 は案。 >>72 を踏まえた >>64 の改訂版。
[79] >>75 >>78 を比較すると >>72 によると思われる符号位置の入れ替えがあったことがわかる。
[120] >>119 は >>74 の表の PDF 版と思われる。
[91] その後に出版された Unicode 3.0 には基本部分 (>>80, >>82 を除いた部分) が追加された。
[66] >>65 には他の文字の異体字の一覧と画像がある。
[69] そのうち欧文にもある句読点については、
エチオピア文字用の書体差の需要があるとして、
PUA [ U+E300
, U+FDFF
]
を使うのが良いと述べ、
[ U+FDFC
, U+FDFF
]
の文字画像を示している。 >>67
@ Unassigned ** Addition to UTC-95-055A **
から始まる U+1380
からの領域があり、 >>75 にも >>72 にもなかった新規追加分かと思われる。
[81] この領域は Unicode 3.0 には反映されず、その後の追加で対応されているが、 このときの符号位置とは異なる。
@ Private ** Addition to UTC-95-055A ** FDF0 ETHIOPIC PAGE ORNAMENT (\~X) FDF1 ETHIOPIC ICON ETHIOPIA-ERITREA (\~e) FDF2 ETHIOPIC ICON INVERTED ETHIOPIA-ERITREA (\~E) FDF3 ETHIOPIC ICON AFRICA (\~a) FDF4 ETHIOPIC ICON INVERTED AFRICA (\~A) FDF5 ETHIOPIC SYLLABLE WWA (wWe) FDF6 ETHIOPIC SYLLABLE WWI (wWi) FDF7 ETHIOPIC SYLLABLE WWAA (wWa) FDF8 ETHIOPIC SYLLABLE WWEE (wWE) FDF9 ETHIOPIC SYLLABLE WWE (wW) FDFA ETHIOPIC NON-SPACING GEMINATION MARK ('') = tebeq / x (spacing diaeresis -> 00A8) x (non-spacing diaeresis -> 0308) FDFB ETHIOPIC SARCASM MARK (`!) = temhert slaq / x (inverted exclamation mark -> 00A1) FDFC ETHIOPIC STYLIZED DOT (.) = neteb / netbi = (period -> 00A8) FDFD ETHIOPIC STYLIZED LEFT GUILLEMETS (<<) = kagn timret teqes / = (left guillemet -> 00AB) FDFE ETHIOPIC STYLIZED RIGHT GUILLEMETS (>>) = gra timret teqes / = (right guillemet -> 00BA) FDFF ETHIOPIC STYLIZED QUESTION MARK (?) = teyaqay melket / = (question mark -> 003F)
と PUA への割当もあって、 >>69 より更に拡充されている。
[108] の WG2 N1846 は、符号位置は未定としているが、 順序はおおむね >>80 を踏襲していると思われる Michael Everson の追加案。
[97] libeth の付ファイルに次のような記述がある >>96。
/* defined extensions */ #define MYA 0x1358 #define RYA (MYA + 1) #define FYA (RYA + 1) /* define punctuation addresses */ #define SPACE 0x1360 #define WORDSPACE 0x1361 #define FULLSTOP 0x1362 #define COMMA 0x1363 #define SEMICOLON 0x1364 #define COLON 0x1365 #define PREFACECOLON 0x1366 #define SOSTNETEB 0x1367 #define PARAGRAPH 0x1368 #define SOFTSADIS 0x1360 /* I'm putting this at SPACE for now which I think creates no problems */ /* define number addresses */ #define ONE 0x1369 #define TEN ONE + 9 #define HUNDRED TEN + 9 #define TENTHOUSAND HUNDRED + 1 /* undefined extensions */ #define NUM_EXTENDED 64 #define EXTLAST 0x13bf /* 5,055 */ #define QYAE (TENTHOUSAND + 4) /*`qe */ #define KYAE (QYAE + ROW + ROW) /*`ke */ #define XYAE (KYAE + ROW + ROW) /* Xe */ #define GYAE (XYAE + ROW + ROW) /*`ge */ #define MWAE (QYAE + ROW) #define BWAE (MWAE + 1) #define GYWAE (BWAE + 1) #define FWAE (GYWAE + 1) #define PWAE (FWAE + 1) #define CCAE (GYAE + ROW + ROW) #define SSAE (CCAE + ROW + ROW) #define CCHAE (SSAE + ROW + ROW) #define ZZAE (CCHAE + ROW + ROW) /* Private Use Additions */ #define PRIVATE_USE_BEGIN 0xe300 #define PRIVATE_USE_END 0xfdff #define NUM_SPECIAL 16 /* define glyph codes */ #define ORNAMENT (PRIVATE_USE_END - 15) #define FIDELLAND (PRIVATE_USE_END - 14) #define INVFIDELLAND (PRIVATE_USE_END - 13) #define AFRICA (PRIVATE_USE_END - 12) #define INVAFRICA (PRIVATE_USE_END - 11) /* define letter */ #define WWAE (PRIVATE_USE_END - 10) /* wWe */ /* define punctation */ #define GEMINATION (PRIVATE_USE_END - 5) /* stylized 0x0308 */ #define TEMHERTESLAQ (PRIVATE_USE_END - 4) /* stylized */ #define NETEB (PRIVATE_USE_END - 3) /* stylized 0x002e . */ #define LEFTQUOTE (PRIVATE_USE_END - 2) /* stylized 0x00ab << */ #define RIGHTQUOTE (PRIVATE_USE_END - 1) /* stylized 0x00bb >> */ #define EQUESTIONMARK PRIVATE_USE_END /* stylized 0x003f ? */
[99] これらの定義の undefined extension 以下が >>80 >>82 に相当する。
[101] libeth はこれらの追加部分を含む Unicode と既存の各種文字コードとの変換を実装している。 libeth のこれより古い版は見当たらず、詳細は不明だが、 Unicodeエチオピア文字の提案と同時期に開発されていたとみられ、 Unicodeエチオピア文字の提案にも既存フォントにどの字形があるとの記述が一部含まれている。
[103]
libeth 0.34 の時点の fidel.h
では
>>102:
/* define punctuation addresses */ #define SPACE 0x1360 #define WORDSPACE 0x1361 #define FULLSTOP 0x1362 #define COMMA 0x1363 #define SEMICOLON 0x1364 #define COLON 0x1365 #define PREFACECOLON 0x1366 #define SOSTNETEB 0x1367 #define PARAGRAPH 0x1368 #define SOFTSADIS 0x1360 /* I'm putting this at SPACE for now which I think creates no problems */ /* define number addresses */ #define ONE 0x1369 #define TEN ONE + 9 #define HUNDRED TEN + 9 #define TENTHOUSAND HUNDRED + 1 /* undefined extensions */ #define NUM_EXTENDED 64 #define EXTLAST 0x13bf /* 5,055 */ #define QYAE (TENTHOUSAND + 4) /*`qe */ #define KYAE (QYAE + ROW + ROW) /*`ke */ #define XYAE (KYAE + ROW + ROW) /* Xe */ #define GYAE (XYAE + ROW + ROW) /*`ge */ #define MWAE (QYAE + ROW) #define BWAE (MWAE + 1) #define GYWAE (BWAE + 1) #define FWAE (GYWAE + 1) #define PWAE (FWAE + 1) #define CCAE (GYAE + ROW + ROW) #define SSAE (CCAE + ROW + ROW) #define CCHAE (SSAE + ROW + ROW) #define ZZAE (CCHAE + ROW + ROW) /* Private Use Additions */ #define PRIVATE_USE_BEGIN 0xe300 /* Change to 0xe000 later */ #define PRIVATE_USE_END 0xfdff /* Change to 0xf8ff later */ #define NUM_SPECIAL 16 /* define glyph codes */ #define ORNAMENT (PRIVATE_USE_END - 15) #define FIDELLAND (PRIVATE_USE_END - 14) #define INVFIDELLAND (PRIVATE_USE_END - 13) #define AFRICA (PRIVATE_USE_END - 12) #define INVAFRICA (PRIVATE_USE_END - 11) /* define letter */ #define WWAE (PRIVATE_USE_END - 10) /* wWe */ /* define punctation */ #define GEMINATION (PRIVATE_USE_END - 5) /* stylized 0x0308 */ #define TEMHERTESLAQ (PRIVATE_USE_END - 4) /* stylized 0x00a1 ¡ */ #define NETEB (PRIVATE_USE_END - 3) /* stylized 0x002e . */ #define LEFTQUOTE (PRIVATE_USE_END - 2) /* stylized 0x00ab << */ #define RIGHTQUOTE (PRIVATE_USE_END - 1) /* stylized 0x00bb >> */ #define EQUESTIONMARK PRIVATE_USE_END /* stylized 0x003f ? */
[104]
古い版と微妙に変更されている。特に注目されるのは PUA の範囲の注釈。
これに関係するのであろうが、 ROADMAP
というファイルに
libeth-0.34b0.tar.gz System modules are overhauled for Extended Ethiopic as per n1846 and the current private use range is relocated to the Unicode 1.1+ private use range. Rework set/get form number for Extended Ethiopic to be locale aware.
とある。 PUA が relocate されたとあるが、注釈にメモしただけで実施まではされなかった?
[109] N1846 (>>108) に合わせて変更されたように書かれているので、 これらより前にはまた違った配置になっていたものか。
[105] なおこのファイルは古い版の 0.33.1 の方にも付で入っているから、 0.33 と 0.34 は並行してメンテナンスされていたのだろう。
[113] これら関連ソフトウェアと Unicode 追加案の開発の詳細な過程については、更に精密な考究が必要である。
[123] UniGeez のソースコードにも同様の定義がある。 >>122
b_qe = 0x1380, b_qu = 0x1381, b_qi = 0x1382, b_qa = 0x1383, b_qE = 0x1384, b_q = 0x1385, b_qo = 0x1386, //reserved 0x1387, mWe = 0x1388, bWe = 0x1389, GWe = 0x138A, fWe = 0x138B, pWe = 0x138C, //reserved 0x138D, //reserved 0x138E, //reserved 0x138F, b_ke = 0x1390, b_ku = 0x1391, b_ki = 0x1392, b_ka = 0x1393, b_kE = 0x1394, b_k = 0x1395, b_ko = 0x1396, //reserved 0x1397, mWi = 0x1398, bWi = 0x1399, GWi = 0x139A, fWi = 0x139B, pWi = 0x139C, //reserved 0x139D, //reserved 0x139E, //reserved 0x139F, Xe = 0x13A0, Xu = 0x13A1, Xi = 0x13A2, Xa = 0x13A3, XE = 0x13A4, X = 0x13A5, Xo = 0x13A6, //reserved 0x13A7, mWE = 0x13A8, bWE = 0x13A9, GWE = 0x13AA, fWE = 0x13AB, pWE = 0x13AC, //reserved 0x13AD, //reserved 0x13AE, //reserved 0x13AF, b_ge = 0x13B0, b_gu = 0x13B1, b_gi = 0x13B2, b_ga = 0x13B3, b_gE = 0x13B4, b_g = 0x13B5, b_go = 0x13B6, //reserved 0x13B7, mWu = 0x13B8, bWu = 0x13B9, GWu = 0x13BA, fWu = 0x13BB, pWu = 0x13BC, //reserved 0x13BD, //reserved 0x13BE, //reserved 0x13BF, b_le = 0x13C0, b_lu = 0x13C1, b_li = 0x13C2, b_la = 0x13C3, b_lE = 0x13C4, b_l = 0x13C5, b_lo = 0x13C6, //reserved 0x13C7, b_me = 0x13C8, b_mu = 0x13C9, b_mi = 0x13CA, b_ma = 0x13CB, b_mE = 0x13CC, b_m = 0x13CD, b_mo = 0x13CE, //reserved 0x13CF, b_re = 0x13D0, b_ru = 0x13D1, b_ri = 0x13D2, b_ra = 0x13D3, b_rE = 0x13D4, b_r = 0x13D5, b_ro = 0x13D6, //reserved 0x13D7, b_ne = 0x13D8, b_nu = 0x13D9, b_ni = 0x13DA, b_na = 0x13DB, b_nE = 0x13DC, b_n = 0x13DD, b_no = 0x13DE, //reserved 0x13DF, LLESSER = 0xFDFD, GGREATER = 0xFEFE
# Unicode mapping table for ISO 8859-1 fonts with ISO 10646 Ethiopic # [use: unicode_start unigoha-16.psf ethiopic.uni]
という注釈があり、 [ 0x000
, 0x1FF ]
を使ったフォント符号化と Unicode の対応関係を示しているものですが、
# # Private Use Maps will have to be reset later # 0x1FA U+FFFA 0x1FB U+FFFB 0x1FC U+FFFC # 0x1FD U+FFFD 0x1FE U+FFFE 0x1FF U+FFFF
とあります。
[112] >>108 はその後 >>111、 >>110 と大きな変更を加えられた上で、 Unicode に追加された。
[16] EMUFI (Ethiopic Manuscript Unicode Font Initiative)。 Unicode に不足分を追加したフォントのプロジェクト。
[6] GitHub - geezorg/evd: Ethiopic Variation Database, https://github.com/geezorg/evd
[7] >>6 Ethiopic Variation Database (EVD)。 エチオピア文字の異体字を VS を使って表現するもの。
[10] >>6 には3つのファイルがある。そのうちの2つはエチオピア文字に IVS 用 VS を付けたもの。1つは PUA に VS を付けたもの。
[12] >>10 の前者のうちの1つは PUA のグリフ名が示されており、 >>10 の後者も同様。つまり PUA の一連のグリフのうち、 エチオピア文字や PUA の他のグリフの異体に当たるものを VS として表すもの。
[14] GitHub - geezorg/eld, https://github.com/geezorg/eld
[15] >>14 Ethiopic Ligation Database (ELD)。
エチオピア文字の合字を ZWJ
を使って
OpenType Feature File
形式で一覧している。
また、
Microsoft Word
ファイルで字形例と出典を示している。
[30] The LiveGe'ez Remote Processing Protocol が各種文字コードの識別子を規定している。
<option value=FirstTime>Choose A Font!</option> <option value=Addis>Addis One</option> <option value=Addis98>Addis98</option> <option value=AddisWp>AddisWP</option> <option value=Agaw>Agaw</option> <option value=AGF-Dawit>AGF - Dawit</option> <option value=AGF-Zemen>AGF - Zemen</option> <option value=AGF-Ejji-Tsihuf>AGF - Ejji Tsihuf</option> <option value=AGF-Rejim>AGF - Rejim</option> <option value=AGF-Yigezu-Bisrat>AGF - Yigezu Bisrat</option> <option value=ALXethiopian>ALXethiopian</option> <option value=AmharicKechin>Amharic Kechin</option> <option value=AmharicYigezuBisrat>Amharic Yigezu Bisrat</option> <option value=AmharicGazetta>Amharic Gazetta</option> <option value=Amharic>Amharic 1</option> <option value=AmharicBook>Amharic Book 1</option> <option value=Amharic_Alt>Amharic_Alt</option> <option value=Amharisch>Amharisch</option> <option value=Brana>Brana I</option> <option value=Amharic-A>Amharic-A</option> <option value=AmharQ>AmharQ</option> <option value=ET-NCI>ET-NCI </option> <option value=ET-NEBAR>ET-NEBAR</option> <option value=ET-Saba>ET-Saba</option> <option value=ET-SAMI>ET-SAMI</option> <option value=Ethiopia>Ethiopia Primary</option> <option value=EthiopiaSlanted>Ethiopia Slanted Primary</option> <option value=EthiopiaAnsiP>EthiopiaAnsiP</option> <option value=EthioSoft>EthioSoft</option> <option value=Ethiopic>ETHIOPIC</option> <option value=Fidel>FIDEL~`SOFTWARE</option> <option value=Geez>Geez</option> <option value=GeezA>GeezA</option> <option value=Geez-1>Ge'ez-1</option> <option value=Geez-2>Ge'ez-2</option> <option value=Geez-3>Ge'ez-3</option> <option value=GeezAddis>GeezAddis</option> <option value=geezBasic>geezBasic</option> <option value=GeezBausi>GeezBausi</option> <option value=Geezigna>Geezigna</option> <option value=geezLong>geezLong</option> <option value=GeezNewA>GeezNewA</option> <option value=GeezDemo>Geez Demo</option> <option value=GeezNet>GeezNet</option> <option value=GeezSindeA>GeezSindeA</option> <option value=GeezThin>GeezThin</option> <option value=GeezTimesNew>GeezTimeNew</option> <option value=GeezType>GeezType</option> <option value=GeezEditAmharicP>GeèzEdit Amharic P</option> <option value=GFZemen>GF Zemen Primary</option> <option value=HahuLite>Hahu Lite</option> <option value=HahuGothic>Hahu Lite Gothic</option> <option value=HahuSerif>Hahu Lite Serif</option> <option value=HahuTimes>Hahu Lite Times</option> <option value=JIS>JIS</option> <option value=JUNET>JUNET</option> <option value=TfanusGeez01>TfanusGeez01</option> <option value=UTF7>UTF7</option> <option value=UTF8>UTF8</option> <option value=java>\\uabcd</option> <option value=Java.uppercase>\\uABCD</option> <option value=clike>\\xabcd</option> <option value=Clike.uppercase>\\xABCD</option> <option value=VG2-Agazian>VG2 Agazian</option> <option value=VG2-Main>VG2 Main</option> <option value=VG2-Title>VG2 Title</option> <option value=Washra>Washra Primary</option> <option value=Washrasl>Washrasl Primary</option> <option value=Wookianos>Wookianos Primary</option> <option value=Yebse>Yebse Primary</option>
[2] >>1 元は変換器込みの Java 実装。現在は別ライブラリー >>4 に分離され、 GUI のみ。
[5] >>4 変換器の Java 実装。 Unicode との対応付けは ICU と Transform Rule による。 それだけで済ませられない部分は Java の独自実装。
[32]
>>31 の
libeth/libeth-0.34/systems
は >>2 より更に前の世代の実装で、 C言語。 >>2 より多くの文字コードに対応している。