ヤー、ハムザの問題 - コンピュータとアラビア語


 * ホームに戻る.
 * ユニコード / 符号化法のページに戻る.

このページは、2006 年 8 月上旬に利用者:Oibaneによって執筆されました. 文中「私」とあるのは Oibane です.

前置き
ユニコードのアラビア文字部分には色々と問題があります. 特にヤー ي の問題は大きく、以下では主にこれについて述べていきます. ハムザ等の問題も切り離せずに存在しますので、これについても記述します.

これは、あるメーリングリスト (英語) にて 2005 年末に現われたものを、私が要約、加筆したものです. 断定的に書かれた事柄は、引用であり、必ずしも調査して確認した訳ではありません. また私自身は初級学習中ですので、誤解があるかも知れない事をあらかじめ断わります. 知識と意欲の不足により、議論された中で、ここに記載しなかった事柄もあります. 元の議論はここ にあります. また私はアラビア文字を使う言語で、アラビア語以外の知識はほとんどありません.

議論の中で、 al-nahw al-wafy النحو الوافي とあるのは、文法書の名前です. (各巻 800 ページで 4 巻 !) Abbas Hasan 著. Wright は William Wright Grammar of the Arabic Language です. madinah mushaf とは、 مدينة مصحف でしょうか.

ユニコードのヤーの問題
ユニコード 4.1.0 には、点なしヤーの U+0649 「アリフ・マクスーラ」 ى と、 U+064A 「ヤー」(点あり) ي があります. 実は他にも幾つかありますが、これはおいおい述べます.

ユニコードで「アリフ・マクスーラ」と呼ばれる文字も、「ヤー」と呼ばれる文字も、歴史的には一つのヤーそのものだという事を説明します. 昔は、ヤーは語末では点がありませんでした. そして、今日の語末長母音の /aa/ も、普通の子音 (例: نسي 彼は忘れた) も、一つのヤーでした. そして、長母音を示す場合は、短剣アリフが添えられました. とはいえ、それより前は点も、短剣アリフもありませんでしたが. ですから、ムスハフ (本としてのクルアーン) 等古典では、ヤーは語尾では点が無い文字です. エジプトなどでは、今日でも語末のヤーは点を打ちませんが、これについての歴史的な経緯は私は知りません.

時代は未確認ですが、読みやすくする為に、弁別点が加えられていく長い歴史の中で、語末のヤーも、子音を表わす時は点を加えるようになりました. そうすると、長母音の時は点が無く、区別できるので、短剣アリフは書かれなくなりました. これが、「ヤー」と「アリフ・マクスーラ」の分岐です.

本筋からはやや脱線しますが、7 世紀頃までは、ヤーのみならず、ワーウも、用途が単一ではない文字でした. たとえば /aa/ の長母音を表わすのに、今日ではアリフを使うところを、ワーウで書く場合がありました. (例: صلوة = صلاة salaahun) ワーウについてはこういった用法は廃れましたが、ヤーについては、残った訳です.

ところで、そもそも「アリフ・マクスーラ」とは、文法上の概念です. al-nahw al-wafy によると、アリフ・マクスーラとは格変化する名詞語尾の一種です. ヤーのみならず、アリフで書かれるものも含みます. 語末で長母音 /aa/ を示すヤーは動詞や不変化詞にも使われますが、これらは名詞ではないので、アリフ・マクスーラではありません.

つまり、「アリフ・マクスーラ」とは文字の名前ではありません. ユニコードでは点なしヤーの U+0649 ى をアリフ・マクスーラと呼んでいますが、この名称は不適切です. 正しくは、「点なしヤー」とでも呼ぶべきです.

しかし、実際には「アリフ・マクスーラ」と呼ぶ慣習はあるようです. NHK のラジオ講座のテキスト (2003年木下、2004年新妻) を見ると、語末の点なしヤーを、やはり「アリフ・マクスーラ」と呼んでいます. ウィキペディアの、アラビア文字の項を見ても、点なしヤーをアリフ・マクスーラと呼んでいます. こんにち、日本で普通に手に入る文法書の中を見ると、「語末の /aa/ をヤーで書く場合もある」と、陰にヤーと呼んでいるものもあります. また、名前を書いていないものもあります. 推測に過ぎませんが、初学者の為に、あえて困難を避けてふれないでおいているのかも知れません. なお、語末のヤーには、エジプト系なのでしょうか、全て点が無い文法書もあります.

さて、問題はまだ途中です. ユニコードには U+06CC "arabic letter farsi yeh" という文字があります. これは、ヤーそのものですが、語尾と独立形では点がありません. 名前の通り、ペルシャ語で使われる文字です. ペルシャ語キーボードでは、この文字を普通に一番普通にタイプ、出力します. (前述の二つのヤーも打てます. ) この文字は、規格書の註釈を見ると、名前に反して、「アラビア語、ペルシャ語、ウルドゥー語」と、アラビア語も含んでいます. (ユニコードの規格書の註釈が、規定なのか非公式な補足なのかは分かりません. )

そもそもこの議論が始まった発端は、古典アラビア語に詳しくなく、現代アラビア語も話さない方が、ある用途でクルアーンをタイプしていて、アリフ・マクスーラとヤーの違い、ハムザをユニコードでどうコードするべきか、等について質問した事でした. U+06CC "arabic letter farsi yeh" こそが正しいヤーなので、これを使ってクルアーンをタイプするべきだろうという人もいました. また、このように定義されたヤーを、「ペルシャ語及び古典アラビア語のヤー」もしくは、単に「ヤー」と呼ぶのが、適切だろう、という結論になりました. (私は反対です. 後述. )

また、この文字は、ハムザや、短剣アリフが付いても、点を失なわないという事になっていますが、それは、単に規格が間違っているのだろう、と考えられます. 規格として本来想定されていると考えられるペルシャ語では、点が失くなるのが正しいです.

ある人は、以前にユニコード協会 (consortium) に、「このアリフ・マクスーラという名前を訂正してくれ」と言って、断わられたそうです. 代わりに、誤った説明として、「どの位置でも点の無い、ヤーの形の文字」という註釈が加えられた、と. (私は、この註釈こそが正しいと思っています. )

ユニコードに、「アリフ・マクスーラ」が入った理由は、規格書を見れば容易に分かります. ユニコード以前にあった、そしてあまり使われなかった符号化法 encoding である ISO-8859-6 には、この文字があるからです. (今でもよく使われる cp-1256 にもあります. ) ユニコードは、ISO や各国の文字コードをつぎはぎする事から出発したのでした.

ヤーの点も、上付きハムザのように、独立したコードを与える方が良い、と考える人も居ます. (ハムザについては後の節で、点に独立したコードは最後の方で述べます. ) かなり大胆な解決策である事を認めた上で. ハムザの上 / 下付きとの組み合わせも合わせて都合が良く、また頑健な方法としては唯一だろう、と. 同時に、「もう少し現実的な方法」として、クルアーン的なロカール (locale 後述) を定め、その下では語尾のヤーは点を落とし、またハムザ上付きヤーは、ハムザを下に付ける事にする、という方法も提案されています. ペルシャ語か、アラビア語か、という問題も、ヤーに関しては、ロカールとの組み合わせで解決できます.

「ロカール locale」は Unix の用語かも知れませんが、言語、地域/国、文字コード、通貨単位に日付の表記法、等々の設定の組、といえるでしょうか.

ヤーの不備は、哲学的な命題ではなく、実害があります. エジプトでは語末のヤーを点ありでタイプするか、点なしで打つかについて、ばらばらのようです. 聞くところでは、今日のエジプト人は普通、名前 `alii علي をコンピュータでタイプする時に、語末に点ありのヤーを使うそうです. ある方が、これは、「多くのソフトでは、 U+0649 "alef maksura" は頭・中形を持たないためだ」と理由を述べていました. (私には、これ、意味が分かりませんでした. )

補足しますと、古いユニコードでは U+0649 "alef maksura" は頭・中形は無いと定義されていますが、 ユニコード 3.0 以降では 4 つ全ての形を持ちます.

見た目が同じ文字は、なぜいけないか
ここまで見て分かったように、見た目が全く同一の二組のヤーがあります. つまり、頭・中形で U+064A "Arabic letter yeh" と U+06CC "arabic letter farsi yeh" 、末・独立形で U+0649 "Arabic letter alef maksura" と U+06CC "arabic letter farsi yeh" です. この話題は少し脱線するので、興味の無い方は次のハムザの問題の節に進んで下さい.

同じ形の文字が、もしも二つの codepoint を与えられていたら、どうなるでしょう. 単純な例として、商品にメーカーの URL が書いてあるとき、それを見た通りにタイプしたつもりでも、その会社のサイトにたどり着けない、という事も考えられます. この話の出典はここ です.

ですから、形が同じものは同じ文字として、形が異なるもの同士は別々の文字として扱われなければいけません. 見て区別ができること、これが条件です.

ユニコードのハムザの問題
ヤーの問題もまだ全部は終わっていませんが、一旦ハムザの問題に移ります. ユニコードには、


 * 独立した上付き、下付きのハムザ、U+0654 上付きハムザ ـٔــ と U+0655 下付きハムザ ـٕــ があり、
 * 一方で、ハムザと台がセットになった文字、U+0623 ハムザ上付きアリフ أ、 U+0624 ハムザ上付きワーウ ؤ 、 U+0625 ハムザ下付きアリフ إ 、 U+0626 ハムザ上付きヤー ئ

が、一個の、コードを割り当てられた文字 (codepoint) として提供されています. 後者は、ISO-8859-6 や CP-1256 からユニコードに入りました. 規格では、台になる文字と上 / 下付きハムザを二文字続けたものと、一文字のものは等価である、と定義されています.

この規格は不十分です. 等価とされているのは、点ありのヤーと上 / 下付きのハムザとの組み合わせだけで、上述の他の 2 つのヤーについては記述がありません. また、クルアーンでは存在する下付きハムザとヤーの組合せが、ユニコードでは、一文字としては含まれません. これだけは、ヤーと下付きハムザの二文字でタイプするべきなのでしょうか.

元の議論では、以下のような意見が出ました: 台が何にせよ、本来はハムザが音価を表わし、同じ事ですが語根を成します. 台は活用で変わる事もあり、本質的ではありません. ですから、アリフ、ワーウ、(適切な)ヤーと、上 / 下付きハムザを、別の字としてタイプする方が、望ましい、また、検索の上でも、都合が良いでしょう、と.

一人は、U+066E 「点なしバー」にハムザを付けてはどうかと、別の議論で提案された事がある、と言いましたが、これはおかしい、という結論になりました. 点なしバーは、弁別点が無い時代の、バー、ター、サー (thaa') を表わすもので、頭形、中形ではヤーに似ても、関係は無い、と. 私の考える解決策

私の考える解決策
この節では、私 (利用者:Oibane) の考える解決策を述べます. ここまで述べてきた事は、これで完璧に解決されるはずです. 実は、アラビア文字を完璧にユニコードで扱おうとすると、もっと色々な困難があり、これだけでは十分では無いのですが、これは次の節で述べます. とはいえこの考え方は、とられるべき方策の一端を示すはずです.

まず、何が必要か考えましょう. U+06CC "arabic letter farsi yeh" で、全て押し通すべきだ、という意見があった事は紹介しましたが、これは無理です. 多くの国での現代アラビア語では、点を打つものと打たないもの、語尾のヤーとして両方が必要だからです. ですから、最低二つのヤーが必要です.

私は、こういう事に気がつきました. 書記素 (書かれる単位、 grapheme. 文字の体系の中で、構成要素としての、個々の文字のこと. 言語学での名称. 素朴には文字の事) としては、点ありと点なしのヤーがあります. 一方で今のユニコード 4.0.0 は、素朴な文字としてのヤーを扱おうとして、混乱しています. これを改め、裸のヤーだろうと、ハムザや短剣アリフが付こうと、点なしは U+0649 、ありは U+064A ということにし、名前も「点なしヤー」「点ありヤー」にします.

ユニコードが規格として定めるのは以上です. 後の面倒はユニコードとは関係ありません. つまり、キーボードからの入力や、検索では、二つの文字を適宜、同一視したり違う文字だと思ったりする必要がありますが、そういった事柄はユニコード自体の規格ではありません.

具体的には、例えばこうなります. エジプトやペルシャ語の鍵盤では、ヤーのキーは一つだけあるべきです. そして、自動的に、語尾に来たら点を外し、後に文字が追加されたら点を打ちます. そうで無い入力システムは、規格外である、と.

簡単ですよね ? 論理的には、これで正しいと思います.

問題は、移行に必要な社会的なコストでしょう. 多分、今日のアラビア語やペルシャ語の日常的な用途では、不備がある、というほどのことでも無さそうです. そこに変更を加えるとなると、一般の人にも面倒な思いをさせそうです. 古い Windows を使っていて、それに対してマイクロソフト社が更新を用意してくれない、とか.

上の議論には、日本語人等特有の死角があることも、指摘しておきます. 世界には、一つのキーを押すと一つの文字、もしくは文字コードが出力される、と思っている人も多いようです. タイプライター式です. だから上の提案は、気持ち悪いと思われる可能性もあります. Unix ならば、X Window System だけでは無理で、 input method が必要でもあります.

以上の事を、元の議論が出たメーリングリストで提案したのですが、全く応答がありませんでした. うーむ.

もっと難しいこと
現代及び古典アラビア語、ペルシャ語を考えて、問題が色々と出てきました. 実は、特にヤーには、言語、地域、それに歴史上の変種が多く、もっと難しい事柄があります. この節ではその辺りについて述べます.

歴史
まず、アラビア文字の歴史をもう少し復習します. 以下では西暦を使用します. 最初は、アラビア文字は線だけで、点はありませんでした. ですから、見た目にはバーもターも区別がありませんでした. バーとターを区別する類の点を、弁別点と呼びます. 現存する 4 世紀の文書には、点は無いようです. これ (英語) を参照すること. 一方 7 世紀の初め頃、イスラームの最初期の頃には、既に点はあったようです. (用法が確定していたかどうかは、知りません. ) ハムザと 3 つの母音、それにタンウィーンの記号に関しては、6 世紀後半に使われ始めたようです.

第三代正統カリフのウスマーンがクルアーンの編纂を命じ、書籍 (ムスハフ) として完成したと伝えられるのが 650 年代です. 当時の写本は発見されていませんが、これは、ほとんど、弁別点や母音記号を含まなかったようです. クルアーンに点や記号を付加する事が始まったのは 700 年頃で、収束したのは 900 年頃とか. 一方、現代の文字体系が完成したのは、786 年頃とされています. 参考:


 * (日本語) 図解アラビア語文法 -> 現在用いられている母音記号の元になった文字
 * (英語) wikipedia->History_of_the_Arabic_alphabet

様々なヤー
ヤーのやっかいな点について、以下では述べます. 今日のムスハフ (本としてのクルアーン) では、語尾のヤーは、全て点無しです. しかし、ある時期においては、語尾のヤーには自由に点が打たれたり、打たれなかったりしました. つまり、点は純粋に装飾として存在し、文字としての機能はありませんでした. 書家によって、まるまる一冊のクルアーンで、全ての語尾のヤーに点が打たれたり、全く点無しだったりしました. あるいは一貫した方針が無い写本もあります.

これに加え、語尾のヤーは変種が色々あります. たとえば、「右下に折れ返るヤー」があります. ウルドゥー語ではこれが独立した文字として使われます. ユニコードでは、 U+06D2 "Arabic letter yeh barree" ے として存在します. これには点はありません. 一方アラビア語でも、この形は書道ではヤーとして使われる事がありますが、アラビア語では常に点が打たれます. ウルドゥー語で使われる為には、ユニコードとしては codepoint が与えられてしかるべきですが、アラビア語では、これが現われたとき、どうエンコードされるべきでしょうか.

なお、この形はクルアーンの付加記号として使われる、 U+06D7 "Arabic small high ligature qaf with lam with alef maksura" の一部でもあります.

他にもヤーの変種はもろもろが存在するようです.

点と骨格を分ける解決法
簡単に、Decotype 社の Thomas Milo 氏の考える解決策について、この節では説明します. 氏は、2005 年 9 月の第 25 回ユニコード協議会 (conference) 用に、アラビア文字問題の手引 (英語) を書きました. (以下、これを「手引」と呼びます. ) これは、アラビア語についても、アラビア文字の知識が無い人でも読めるように書かれていますが、氏が現在のユニコードに抱く問題意識が、どの辺りにあるのか、良く表われています. とても読み易いです. これは既に発表された訳ですから、こういった論点が、現にユニコード協議会で意識されている、という事を知っておくのも良いでしょう.

ところで、用語について. 英語では、付加記号 (例: ä の上の点々) の事を一般に diacritical mark / symbol / ... と呼びます. Diacritical とは弁別、つまり区別する為の、という意味ですが、注意が必要です. というのは、今日のアラビア文字が話題の時は、 diacritical mark と言ったら、母音記号やシャッダの事を指すのが普通です. 弁別点のことは、「点」 dot などと呼ぶほうが、混乱がありません.

「手引」の中では特に、文字の点 (点々) と線を分離して、コード化する利点が書かれています. 上付きの点一つ、二つ等々、各々に codepoint を割り振り、またバー、ター、サーの骨格、ファー、カーフの骨格各々にも codepoint を割り振ります. 「手引」では、この骨格を archigrapheme と呼んでいます.

著者はこの方法を導入する事で、研究者が古い時代の弁別点の無い文字を扱えるようにしたいようです. これ自体は容易ではありませんが、 理解できます. 一方で、これがヤーの困難を解決するとも主張しています. (なお、今のユニコードにも点なしバーとカーフがありますが、これらは全く無意味で、使いものになりません. )

蛇足ながら、ユニコードは古今の全ての文字を網羅したいらしいですが、それは無理です. 歴史を長い時間で見れば、一つの文字が分岐して別々の文字になったり、幾つかが混同されたりし、何が文字か、という事を断定できないのは明らかです. どこかで線を引き、そしてユニコードに加えて、「文字」をある程度統一的に扱う様々な方法が開発され、併用されるべきと思いますが、どうでしょう.


 * ホームに戻る.
 * ユニコード / 符号化法のページに戻る.