Since 2005/9/26 Last Updated 2006/12/23
ウルドゥー語のソート、ヒンディー語のソートに引き続き、サンスクリットおよびパーリ語のソートの方法を考える。 前2編の引き続きなので、共通するようなことは割愛する。だからサンスクリットにしか興味のない人も、前2編、特にヒンディー語のソートのほうは目を通しておいてもらいたい。 パーリ語にはサンスクリットに存在しないという子音があるが、辞書ではと一緒くたにしている。そこでにはと同じコードを設定し、よりも後に来るように重みをつければよい。そもそもは出現頻度が少なく、しかもの読み方の変種といったところがある(、のように、たいていの場合は部分をにした語が存在し、しかも同語扱いになる)ので、状況によっては重み処理も不要になるだろう。 パーリ語の特殊事情はこれだけであり、あとはサンスクリットの話とまったく同じである。パーリ語にはが存在しないので、以下の「の扱い」は無視してもらえばよい。それからとに関しては短母音もありうるが、これは、、などのように次に子音の重なりが来る場合に必ず短く発音されるというだけの問題であり、短母音と長母音が音韻的に対立しているわけではない。そこで、以下は単にサンスクリットの話だけをする。 サンスクリットはヒンディー語と同じデーヴァナーガリーを用いるので、ヒンディー語のソートと全く同じではないかと思う人もいるかもしれない。実際、ほとんど同じなのだが、次の点が違う。 あとの2つの問題はそれぞれ多少やっかいである。そこでゆっくりと説明する。 ヒンディー語同様にサンスクリットでもの扱いは特殊である。しかもサンスクリットでは非常にややこしい問題があるので、ゆっくりと説明する。 ヒンディー語ではのついた母音は、つかない母音よりも前に来るという奇妙なきまりになっていたが、サンスクリットではそうではなく、は独立した文字として扱い、母音のあと、子音の前にならべる。だから、、、とあれば、 では、と書かれているものは何でもかんでもこの位置にもってくればいいわけではない。 実は、には「真性アヌスヴァーラ」「代用アヌスヴァーラ」の2種類があるのだ。サンスクリットでは真性アヌスヴァーラのみをとみなすが、代用アヌスヴァーラは扱いせず、もとの鼻子音と同様に扱うのだ。 代用アヌスヴァーラとは何か、よくわかっている人なら、もう上記の説明でわかってしまうと思うので次に行っていいが、よくわからない人のためにゆっくり説明しよう。 デーヴァナーガリーでは子音が連続するときには結合子音字を用いる。せっかく、子音に含まれるを消すヴィラーマという印があるのだから、子音連続のときにはそれを有効利用すればいいような気がするのだが、子音字を奇妙に組み合わせた結合子音字を用いるのである。デーヴァナーガリーに慣れないうちは、ただでさえデーヴァナーガリーは文字の種類が多くてなかなか覚えられないのに、この結合子音字のおかげでさらに文字の種類が増えてしまうので非常にわずらわしく感じる。 しかし、結合子音字をわずらわしく思うのはインド人も同様のようだ。そこで、子音字の前に同系列の鼻子音が来る場合は、結合子音字にせず、+子音字という書き方をしてしまう。具体的には、 このように、結合子音字を用いずにアヌスヴァーラ()で表す方法を「代用アヌスヴァーラ」と呼ぶ。 「代用」というといかにもいい加減な響きに聞こえるが、現代ヒンディー語ではむしろこの代用アヌスヴァーラのほうを一般的な表記法と定めており、辞書では代用アヌスヴァーラを用いたほうだけを載せるのが普通である。そして、代用だろうが何だろうが、ともかくアヌスヴァーラがついた母音は、つかない母音よりも前に出してしまうのである。 これに対してサンスクリットでは、代用アヌスヴァーラはあくまで「代用」という扱いである。何らかの理由で代用アヌスヴァーラが用いられた語は、もとの鼻子音に戻してしまう。だからたとえと書かれていても、と書かれているかのような扱いにしてしまうのである。 では、サンスクリットではアヌスヴァーラを認めていないのかというと、そうではない。上記以外の子音の前に出てくるアヌスヴァーラは、アヌスヴァーラ扱いするのである。具体的には、 ここで「真性」「代用」という言葉に惑わされてはいけない。「代用」というと「本来でない、いい加減な、ニセモノの」という感覚になるが、本来になるはずのものも「代用アヌスヴァーラ」とみなされる場合がある。 それはのつく語である。はサンスクリットの動詞前綴りであるが、子音の前では当然になる。たとえば母音の前ではだが、子音の前では、、、、、、となるわけである。 ではこれらの語はどういう順にソートされるかというと、、、は真性アヌスヴァーラなので先。ついで、、、となる。これらはそれぞれ、、、とみなされるわけだ。実際にそう書かれることは(いい加減な写本ならともかく)絶対にないし、モトということならば前三語は、、のようにのはずなのだが、そうではなく、機械的に、、扱いしてしまうのである。だから「真性」「代用」という言葉を文字通りにとらえてはならない。 なお、は当然、(扱い)の前になる。 このように、のつく語は、次がどういう子音かによって、ずいぶん異なる位置に並ぶことになる。モニエルのような大辞典の場合はの項はけっこうページ数がかさむので、なれないとなかなか目的の語を発見できないということになってしまう。 長くなったが、実際の処理としては、ソート用コードを作る前に、代用アヌスヴァーラを鼻子音に置換しておけばいい。具体的には、上記の代用アヌスヴァーラの表を逆にして、 の扱いはヒンディー語と同じで、記号ではなく一個の独立した文字として扱い、母音字のあと、子音字の前に並べる。これではと同じ順序ということになるが、よりは後になる。 これでおしまいならば簡単で、実際、モニエルやアプテではそのようにしている。 しかし、マクドネルや荻原では、、の扱いが異なる。これら3つを、まるで、、であるかのように扱うのだ。これは、サンディを考慮したものだろう。、、は、サンディのバリエーションとして、、と記され、発音される場合がある。そのうちのどちらを本来とみなすかということである。モニエルやアプテは前者を、マクドネルや荻原は後者を本来としているのである。 コンピュータでソートする場合は、モニエルやアプテの方式ならばヒンディー語同様で特に何もしない、マクドネルや荻原の方式ならば、、、→、、という置換を事前にしてからソート用コードを作る(もちろんソート用コードを作る際にこれを考慮してもよい)ようにすればいい。 サンスクリットのソートで注意を要するのはこれだけで、あとはヒンディー語と同じである。 あとはせいぜい、複合語の第一要素のあとに、それを用いる複合語をすべて並べるやり方をとるかどうか(さらにこの場合、動詞前綴を複合語の第一要素とするかどうか)、動詞前綴のついた語を、動詞前綴を抜いて本体語のあとに配列する方式にするかどうか、という話があるが、それは高度な話になってくるので割愛する。 以上、ウルドゥー語、ヒンディー語、サンスクリットについて、語彙集などのデータベースをコンピュータでソートする方法を考えてみた。もっとも、特定のプログラム言語に依存しないようにするため、プログラム例をまったくあげず、考え方のみを書いたので、コンピュータの話っぽくなかったかもしれない。 念のためいうと、「私はコンピュータは苦手だから、こんなことは知らなくてもいい」と思ってはならない。ソートのきまりを知っておかないと、上記のの話のように、大辞典で目的の語をなかなか探せないということになってしまうからである。 |