Hatena::Grouprekken

murawaki の雑記

2009-05-31

清朝の蒙古旗人

清朝の蒙古旗人 その実像と帝国統治における役割 by 村上 信明 (2007).

八旗蒙古に属す蒙古旗人を17世紀後半から18世紀後半までの期間を対象に考察した本。著者は前々から外藩関係の官制について何本か論文を書いている。本書は一般向けの digest になっているのだろう。全部を読んだわけじゃないから推測だけど。

蒙古旗人は超マイナー。他の人が考察しているのをまず見かけない。清朝の官制一般についても、概説書だと満缺と漢缺がありましたとしか説明しない。蒙古と漢軍はどこに行ったということになるが、そういう疑問にも答えてくれる。

真面目に書評をやってるブログがあった。書評が読みたい人は、こちらの方が参考になるはず。

一点。本書は満洲史料を使って実態を解明しようとする。モンゴルチベットに赴いた蒙古旗人官僚の自己認識を明らかにする。この考察自体は新規性があって素晴らしい。しかし、物事は両面から見てはじめて分かるもの。モンゴルの王公やチベット僧が彼らを彼らをどう見ていたかもあわせて知りたいところ。モンゴルは分からないけど、チベットなら文書が残ってそうな気がする。

後は言語がらみの部分。本書によれば、蒙古旗人はモンゴルチベット統治の担い手となることが帝国から期待されており、モンゴル語能力を求められていた。しかし、モンゴル語の需要は、満洲語と漢語に比べて圧倒的に小さかった。支那と違ってモンゴルチベットも間接統治だから。

蒙古旗人のモンゴル語運用能力は急速に低下し、早くも雍正年間に表面化した。衝撃的なのは、乾隆帝の1779年の明発上諭。理藩院が作成するモンゴル語が意味をなさず、乾隆帝自ら修正して宣布していたとか、理藩院の作ったモンゴル語原稿を乾隆帝モンゴル王公に見せたところ、理解できない箇所が多かったとか。そんなに出鱈目で本当に文書行政が成り立つのか。

以前からの私の興味に、翻訳が言語に与える影響がある。清朝行政文書は満洲語、漢文モンゴル語の3本立て。年号や実録なども3言語そろっていて合わせ鏡のようになっている。そして量が膨大。前近代でこんなに翻訳しまくっている機関は他になかったのではないか。Europarl もびっくりだ。

一つの疑問は、本当にすんなり翻訳できたのか。翻訳なんてデフォルトではできないもので、対応する表現を整備してはじめてできるようになる。満洲語とモンゴル語は、漢文とは言語的にも文化的背景もまったく異なるから、最初の隔たりは大きかったはず。ただし、モンゴル語満洲語と結び付けられていたようだから、漢文との翻訳が問題となるのは満洲語だけか。本書が言うように、モンゴル語は需要が小さかったというから、モンゴル語から攻めるのは筋が良くないのだろう。しかし、蒙古旗人のモンゴル語のまずさを知った今、逆に地方のモンゴル人の満洲語能力が気になる。

しかし、翻訳の影響を調べるのは難しい。単語レベルで、例えば清文鑑に新造語が入っているというような議論ならできるだろう。一般には微妙な言語運用の問題だから、定性的な研究はネイティブじゃないと厳しい。定量的な研究は電子化されたテキストが大量にあればいけそうな気がする。しかし、画像ならともかく、テキストとして電子化するのは大変だろう。文単位とは言わないでも、記事単位ぐらいで alignment を取るのも大変そうだ。

2009-05-26

テキストじゃ書き順が分かりにくい

テキストという媒体には様々な制約がある。その制約ゆえに、言語系の論文とか語学の本を読んでいると不便に感じることがある。一番困るのが発音がよく分からないことだけど、意外と書き順も分かりにくいという話。

先に発音について。テキストには音声そのものは表現できない。語学の本の中には、音声データが付いているものがある。昔はテープ、今は CD-ROM論文だとそういうのがない。

テキストによる代替策としてよくあるのが、言葉による説明と発音記号による表記。前者は語学の本によくある。「日本語のアより奥より」とか割といい加減な記述。むしろ IPA で書いてくれたほうが分かりやすい。IPA でもいい加減な表記ができるけど、記述言語学論文だと真面目に音価を書いてあることが多い。ではそれで音声が再現できるかといえば無理だ。どう考えても情報が落ちている。

で、本題の書き順。こちらは音声と無関係だが、時間変化を持っている。テキストにあるのは書き終えた形だから、途中経過が分からない。おまけに、文字によっては印刷書体と筆記体が結構違っていて、印刷書体があてにならなかったりする。

テキストでも動きを表現する方法はある。一つは矢印で方向を示す。もう一つは複数のコマで途中状態を表現する。両方やればなお良い。これで、漢字の書き順については、少なくとも楷書は桝目ごとに独立だから解決するはず。しかし、アラビア文字モンゴル文字は続け書きするから、文字単位で説明されても分からない。実際、モンゴル文字書き順は、授業に出てみて初めてわかった。圏点をどの時点で付けるのか分からなかったけど、語ごとに軸を先にかいて最後に最後に付すのが正解だった。

ということで、やっぱり時間変化はビデオで説明するに限る。ちょうどウイグル語アルファベットの解説ビデオ群YouTube で見つけて良い感じだったので、こういうことを思い出した。このビデオは文字単位で書き順を説明している。けど、ウイグル語の正書法は、アラビア文字としてはかなり変わっていて、母音を全部表記するためか、続け字が意外と続かないのであまり問題ない。

2009-05-22

ssh-agent と screen と ForwardAgent

ssh-agentをscreenの中から使う方法(NFS,二重ログイン対応版)を使ってきたが、問題があったのでさらに改造。何とも言えないバッドノウハウ

Steps to reproduce:

  1. 計算機 A1 で ssh-agent を仕込み、ForwardAgent を yes にして B にログイン。すると $HOME/.tmp/ssh-agent/`hostname` は A1 の ssh-agent のソケットへのシンボリックリンクになる。
  2. 計算機 A2 で ssh-agent を仕込み、ForwardAgent を yes にして B にログイン。すると既に $agent がソケットとして機能しているので、これが SSH_AUTH_SOCK に設定される。
  3. A1 から B への接続を切る。A1 の ssh-agent のソケットは消される。
  4. A2 側で ssh-agent が機能しなくなる。

そこで、既にあるソケットを流用する場合には、自分のソケットへのパスを SSH_AUTH_SOCK_OLD に控えておくことにする。接続が切れたときには screen 上で新しい端末を開いたり、update_ssh_agent を直接呼び出したりして SSH_AUTH_SOCK の値を更新すればよい。

しかし、正攻法は B に ssh-agent を常駐させておく方法のはず。そうすれば、A1、A2 からの forwarding に関わらず、B から先にログインできる。そこで、ローカルssh-agent が上がっている時にはそちらを優先することにする。さらに処理がぐちゃぐちゃになった。もっと簡単に解決できる予感。

安全性については自信がない。

# ssh-agent を立ち上げるときは init_ssh_agent を呼ぶ
init_ssh_agent () {
    eval `ssh-agent`
    ssh-add
    if [ $? = "0" ]; then
	local agent="$HOME/.tmp/ssh-agent/`hostname`_local"
	ln -snf "$SSH_AUTH_SOCK" $agent && export SSH_AUTH_SOCK=$agent
    else
	echo "init failed"
	return 1
    fi
}

update_ssh_agent () {
    update_ssh_agent_ "$HOME/.tmp/ssh-agent/`hostname`_local" \
	|| update_ssh_agent_ "$HOME/.tmp/ssh-agent/`hostname`"
}

update_ssh_agent_ () {
    local agent="$1"
    if [ -z "$agent" ]; then
	return 1
    fi

    if [ -S "$agent" ]; then
	if [ ! "$SSH_AUTH_SOCK" -ef "$agent" ]; then
	    export SSH_AUTH_SOCK_OLD=$SSH_AUTH_SOCK
	fi

	export SSH_AUTH_SOCK=$agent
	return 0
    elif [ ! -S "$SSH_AUTH_SOCK" ]; then
	echo "no ssh-agent"
	if [ -L "$agent" ]; then
	    rm -rf $agent
	fi
	if [ -n "$SSH_AUTH_SOCK_OLD" ]; then
	    if [ -S "$SSH_AUTH_SOCK_OLD" ]; then
		SSH_AUTH_SOCK=$SSH_AUTH_SOCK_OLD
	    fi
	    unset SSH_AUTH_SOCK_OLD
	    update_ssh_agent
	fi
    elif [ ! -L "$SSH_AUTH_SOCK" ]; then
	# ssh-agent が無効な場合には設定しない
	ssh-add -l >/dev/null \
	    && ln -snf "$SSH_AUTH_SOCK" $agent && export SSH_AUTH_SOCK=$agent
    fi
}

2009-05-21

複合語の扱い

NAIST Japanese Dictionary複合語情報が付与されたバージョンが公開されているというので、少し調べてみる。

以前からプロジェクトの説明には

形態素解析用辞書 IPADIC の ICOT 条項をクリアするとともに表記ゆれ情報、複合語情報を付与した辞書の公開

とあったけど、以前調べた version 0.4.1 preview1 では付与されてなかった。内部的には以前から付与されていて、単に公開されてなかっただけらしい。

2009年5月21日現在、ChaSen 版はなく、MeCab 用の辞書だけが公開されている。これは活用を展開して CSV 形式にしたもの。計算機に食わせるならこの形式で良いとしても、人間が読むにはつらい。

ざっと見たところ、動詞形容詞として登録されているものを要素に分解している。複合語にも色んな種類があるが、今回対象とする複合語は、今の私の興味とずれている。分解のパターンとしては、「相手取る」のように「名詞 + 用言」型や、「追い落とす」のような「動詞 + 動詞」の複合動詞が多い。3要素以上のものもある。

そもそも何故これらが1形態素として登録されているのかという疑問が出てくる。JUMAN の辞書の歴史的経緯からすると、かつて EDR が複合語を1形態素として登録しまくったらしいので、その路線を引き継いでいるのかもしれない。

上記の疑問はもっと一般的。どういう基準で形態素の単位を認定しているのか。以前それなりに情報を探したが、驚くほど誰も基準を説明していない。元祖の『EDR電子化辞書仕様説明書』は何も言わない。JUMAN のマニュアルにも書いてないし、『基礎日本語文法』も基準を示さない。NAIST-dic にはマニュアルが見当たらないが、元になった IPAdic のマニュアル も何も触れない。ただし、最近だと『『現代日本語書き言葉均衡コーパス』形態論情報規程集』にコーパス作成用の複雑な基準が記述されているし、UniDic は単位認定もまじめにやる方針らしい。

単位認定について、言語学から言えることがあるかもしれないが、工学としてやっていると、もっと実際的な問題に取り組まなければならない。つまり、ある単位で言葉を登録した辞書を使って処理をしたとき、何がうれしいか。あるいは何が困るか。

単位認定の評価方法としてよくあるのは、情報検索に応用したときの性能。具体的には、形態素単位で indexing 時に複合語を分割するか否かで、欲しい文書の見つけやすさが変わるか。再現率を考えると細かく分割した方が良いが、適合率との兼ね合いもある。ランキングまで考えるとどうなるか予想できない。そもそも今回対象としているのは用言だが、用言が今の検索エンジンでどの程度重要なのだろうか。

直接辞書を使うのは形態素解析形態素解析で困ることといえば解析誤り。つまり、構成要素を個々に登録していると解析を誤るから複合語を1形態素として登録しておくというやっつけ処理。しかし、用言に関しては解析精度にそれほど差がでるとは思えない。この理由での登録はまずないはず。*1

最近の JUMAN 辞書の整備方針では、反対に、構成要素だけを登録していても解析誤らない場合は削除候補となる。ただし、語彙数を減らすことに言語学的な裏づけがあるわけではない。もっと実際的な理由。最近、基本語彙に人手でいろんな意味情報を付与しようとしている。このとき、語彙数が多すぎると作業量が増大して困るという理由。

しかし、その JUMAN でも、複合動詞は未整理となっている。おそらく上位の構文解析に影響があるから。構文解析をやる KNP では、動詞がどういう格 (「が」「を」「に」など) を支配し、格要素にどのような名詞が入るかという語彙知識 (格フレーム) を利用する。この際、複合動詞のどの部分が格を支配するかが問題となる。*2

複合動詞の分類方法には、統合的か語彙的かがある。統語的複合動詞は、JUMAN では1形態素扱いしない方針。例えば、「暴れまくる」は「暴れる」、「読みなおす」は「読む」と格フレームに大きな違いはないと思われる。だから、これらは登録されていない。NAIST-dic にはあるけど。その代わり、「まくる」や「なおす」に「付属動詞候補(基本)」という意味情報を与えてある。KNP は、文節をチャンクするときに、この意味情報を見て複合動詞をまとめる。格解析では「暴れる」「読む」とみなして格フレームを引く。

問題は語彙的複合動詞。意味の中心がどこにあるか。例えば、「言いよどむ」は「言う」ことの一種。「盗み見る」は「見る」こと。「溢れ出る」はどちらとも言えない。こういうものは、JUMAN でもほとんどが NAIST-dic と同様に1形態素扱いされている。ただし「盗み見る」は登録されていない。一般の連用修飾扱いとなり、格解析時に「盗む」と「見る」が格を取り合う。試しに「Xを盗み見る」の X にいろいろ入れて格解析してみると、「人」なら「見る」に、「鞄」なら「盗む」に係った。これは微妙だ。

「名詞 + 用言」型は、扱い方を把握していない。抱合と紙一重という話があったりして、ちゃんと調べれば面白いと思う。

現在のところテキスト処理しか頭にないが、複合語の特徴の一つにアクセント変化がある。これを工学的に扱う機会はあるのだろうか。今の音声認識は全然アクセントを考慮していない。曖昧性の解消にアクセントはあまり役に立たない。音声合成なら、真面目にやろうと思ったらアクセント情報が必要だろう。でも、周りに音声合成をやっている人がいないから実情がわからない。

*1:JUMAN の「連語」は解析誤りを防ぐために用いるが、出力は複数の形態素とする。それに、連語登録されているのは付属語が中心。

*2:複合動詞に限らず、受け身や使役の接尾辞が付くだけで支配する格が変わる。さらに言えば、「流れる」と「流れていた」で意味が変わるという報告が、2007年の言語処理学会の全国大会であった。この現象は興味深いけれど、精度への影響は誤差レベルだろう。それでは悲しいので、実際に格解析で誤りを起こす例を探している。

2009-05-17

「はてな」は「果てな」か

せっかくはてなを使っているのだから、研究ネタで「はてな」について語ることにする。

やっていることは、生のテキストから形態素を獲得して辞書に突っ込むという処理を計算機によって自動化すること。形態素という言葉は、言葉の最小単位という意味で使っているが、工学では扱いがいい加減なので、単に単語と思っておけばよい。

形態素の獲得とは、具体的に何をするかというと、境界と品詞の認定。生のテキストはただの文字列なので、獲得したい形態素がその中のどの範囲かを特定しないといけない。これが境界認定。一方品詞は、同じような振る舞いをする形態素をまとめてラベル付けしたもの。品詞体系はあらかじめ人が設計しているので、その中から適当なものを選ぶ。つまり分類問題。分類のための判断材料は、テキスト中の形態素の振る舞い。計算機には意味なんて分からないから、表層的な振る舞いだけで判断することになる。今のところ本当に簡単なことしかやってない。例えば、「が」、「を」、「に」などが後続していれば多分名詞だし、「遊ばない」、「遊びます」、「遊ぶとき」といった風に活用していれば動詞と判定する。

分類問題の常として、どれを割り当てればよいか迷う場合がある。「はてな」もその一つだが、先に別の例を挙げる。

まずは常に複合語の一部として現れる成分の扱い。例えば、「抗酸化」の「抗」は何なのか。日本語文法的には「接頭辞」らしい。漢語としては接頭辞というのは違和感がある。

では「国際」はどうか。名詞なのか。ものの本によれば、「国際」は「国際会議」のような複合語の一部としてしか用いられず、「*国際が」とか「*国際を」とは言わないらしい。代わりに「的」とつけないといけないとのこと。しかし、ググって見ると簡単に例外を見つけられる。例えばこれ。

娘の大親友が、国際を選び、通っています。 

このように「国際」のつく団体の省略として一般の名詞のように使える。計算機は馬鹿だから、この例文を食わせたとき、特殊な用法だなんて気づかない。

そもそもこの記事自体が示すように、すべての言葉はメタに名詞として使える。「抗」とか「国際」とか。ここではメタな用法を括弧によって明示しているけど、誰もがそんなに親切ではない。括弧抜きでも普通に使われる。だから、メタな議論をしているテキストを計算機に食わせたら、何でもかんでも名詞として獲得するかもしれない。

さて、いよいよ「はてな」である。*1はてな」には品詞だけでなく境界も絡んでくる。「はてな」の形態素数はいくつだろうか。

JUMAN に「はてな」単独で与えると、動詞「はてる」の連用形と終助詞「な」として解析される。漢字で書けば「果てな」。語源的にはこれで正しいらしい。しかし、「はて + な」では解析上都合が悪い。question mark の意味で使われるから。もとは括弧付きがふさわしいメタな用法だったのかもしれないが、今は普通名詞として使われている。実際、テキスト中では「はてなが~」や「はてなを~」が普通に使われる。

具体的にどう都合が悪いかというと、終助詞「な」と格助詞「が」、「を」との連接が文法的制約に反する。JUMAN はこの手の制約を絶対的に与えているから、終助詞「な」と格助詞「が」の連接を許さない。おかげで、「な」は名詞「名」あるいは「菜」と解釈される。*2これでは困るので、「はてな」で一つの名詞と扱うべきだということになる。*3

言葉は歴史的に変化していて、その変化はこんな感じで割りと連続的だと思う。しかし、分類問題を解こうとしたら、そこに白黒をつけないといけない。

*1:JUMAN の辞書には「はてな」が登録されていない。IPAdic/NAISTdic には感動詞として登録してある。いまどき「はてな」を感動詞として使うやつがいるとも思えないが。「さっさと登録しろよ JUMAN」というツッコミが来そうだが、基本的にこれ以上の登録はしない方針でやっている。

*2:同じような感じで、「はじめにを~」と与えると「に」が「煮る」になる。MeCab は正しく「格助詞」とみなす。

*3:最近はうちのシステムは「はてな」を獲得できるようになった。獲得しようと思ったら、処理のどこかの段階で、テキスト中のそこに未知語があると気づかないといけないのだが、「はてな」のように解釈が微妙な場合には、システムは割と気づいてくれない。JUMAN は制約の効き過ぎで変な解析結果を返すので、変だと気づきやすいけど、MeCab は利口に振る舞い過ぎて未知語を見つけづらい。

2009-05-15

閉鎖空間に飲み込まれたくない

連休中にウルムチとカシュガルを経由して、その先の某所に行って帰ってきた。*1その時思ったことのメモ。興味があるのはこの地域の言語状態。しかし判断材料が少なくて偏っている。具体的には、実際に会話した人、町の看板、それに本屋の書籍。まずはこれらの材料を並べてみる。

実際に会話した人。これは特にサンプルが偏っている。全体的に言えること。ウイグル人は英語がまったくと言っていいほど通じない。漢人も基本的に通じないが、場所によっては話せる人間が配置されている。しかし、道中、空港以外で観光客をまったく見かけなかったことを考えると、まともな観光地にいけば状況が違っているのかもしれない。行った先ではいずれも、観光客相手に商売するという概念が存在しないようだった。そもそも誰もこちらに話しかけてこない。

会話したウイグル人はタクシーの運転手ばかり。連中には英語が全く通じない。中国語は話せるようだ。ただし読み書きは怪しい。メモに「机场」と書いても理解されなかった。ウルムチではタクシーは漢人ばかり。こちらも英語が通じない。ごく基本的な単語でも受け付けない。

カシュガルの空港で客引きをやっていた観光業者の漢人のおばちゃんは英語が通じた。というか、ウイグル人のタクシー運転手に英語が通じずに往生しているところにやってきて、客 (つまり我々) を奪っていった。割と残念な光景。そして、そのおばちゃんが連れてきた漢人の運転手には英語がまったく通じないという落ち。

ホテル。フロントは漢人ばかり。安いところでは全く通じない。高いホテル*2なら通じた。

空港。インフォメーションで、便の変更について問い合わせたとき、最初の漢人は英語が通じず、ウイグル人らしき人を連れてきた。漢人以外で英語が通じたのはこの人だけ。空港の係りでも英語ができない人がかなりいる。客室乗務員はさすがに英語が通じる。しかし漢人ばかり。*3

次は町の看板。ウルムチでもカシュガルでも漢人が進出しすぎで残念な感じ。町中に集中しているので人口統計以上に存在感がある。中国語しか書いていない看板も少なくない。ただし、どちらの町にもウイグル人地区があって、そこには本当にウイグル人しかいない。しかし、そんな場所でも中国語が併記されている。需要があるとは思えないのだが。何らかの強制力が働いているのだろうか。

道路標識は2言語。しかし漢語が大きくて遠くからでも視認できるが、アラビア文字が小さくて、動きながらではなかなか読めない。ウイグル人以外の自治県で何語で表記されているのか分からなかった。中国語と英語だけの標識もあった。

本屋。*4店舗の一部が少数民族コーナーになっていて、それ以外は中国語ばかり。中国語の方は、語学としての英語の本がやたら多い。辞書も山積み。*5ウイグル語の語学は圧倒的に中国語と結びつけられている。会話本とか、専門用語の対訳集とかばかり。英語は数えるほどしかない。

さて、以上から推測できるのは、漢人がせっせと英語を勉強している一方で、ウイグル人が中国語をやっているという構図。だとすると不幸な状況だ。この世界で生きていくのに必要なのは、寄って立つべき母語と通信に必要な英語だけだ。中国語なんてやっても仕方がない。巨大な閉鎖空間に吸い込まれるのがおち。何とか中国語のかわりに英語ができるようになる体制にならないものか。

*1:本当に行って帰ってきた。というのは時間の大半を移動に費やしたから。

*2:日本と値段が変わらない。

*3:しかしなぜか coke が通じない。仕方なく「可乐」と言っていたら、最後の乗務員に coke と確認されてイラっときた。ちなみに中国語で口にしたのはこの「可乐」と道の名前の「长江路」だけ。他は Thank You を含めて英語で押し通した。

*4:余った時間でカシュガルで1軒、ウルムチで2軒の本屋に行った。結果的に、下手な観光地に行くよりもよほど正解だった。アンテナにかからない本の存在を知るには本屋に行くのが一番。しかし、やっぱり本屋は都会でないと話にならない。

*5語学のコーナーの隣が試験対策。ここもやたら充実していた。そしてなぜか数学の本が試験対策コーナーの隅に配置されていた。物理や化学は別なのに。

2009-05-10

U+0649 の表示

はじめてウイグル語を書いてみたわけだが、手元の環境では表示が正しくない。いろいろ調べたのでメモ。

問題は i。initial form や medial form が選択されるべきところで isolated form が表示される。

ウイグル語の i に対しては U+0649 ARABIC LETTER ALEF MAKSURA を使うことになっているらしい。どうもこの決定自体に問題があるようだが、アラビア語にもアラビア文字の歴史的経緯にも詳しくないので触れない。要するに元は特殊符号だったものをウイグル語では母音文字として使っていることになる。

U+0649 の presentation form は以下の通り。アラビア文字は presentation form にもコードポイントが割り当てられているから、その番号が使える。

U+FBE8 ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM
U+FBE9 ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM
U+FEEF ARABIC LETTER ALEF MAKSURA ISOLATED FORM
U+FEF0 ARABIC LETTER ALEF MAKSURA FINAL FORM 

問題が上の二つで、名前が示すように、アラビア語ペルシャ語では使わない形。この二つは、Unicode の途中のバージョン (2.0?) で追加されたが、その時点では仕様がバグっていたらしい。joining class についても、3.0.0 で right-joining となっていた。つまり isolated form と final form しかもたないという扱い。それが 3.0.1 で dual-joining に修正された。Mozilla もそれに追従 (1, 2, 3)。

Unicode の仕様はそれでいいとして、実際に文字列を受け取ったときに誰がどうやって正しい表示を選ぶのか。これが全然わからない。問題が発生した環境は Windows XP だが、Windows Vista だと Mozilla でも IE でも正しく描画される。実は Windows では Geckouniscribe の関数を呼び出しまくり (bugzilla)。Linux は Pango。Mozilla のことだから自力で頑張っているのかと思っていた。もしかしたら uniscribe とフォントを自力で新しくしたら XP でもいけるのかもしれない。

Mozilla が自力で処理していると思って調べていて見つけたのが nsBidiUtils.cppマクロ PresentationFormB を見ると、元のコードポイントから Presentation Form B の番号の計算は、対応する Presentation Form B の開始位置に form の数値を足すことで実現している。これだと、U+FBE8 と U+FBE9 のように、基点の U+FEEF と全然違う場所にある form は見つけられない。

呼び出し元をたどると ArabicShaping <- Conv_06_FE_WithReverse <- nsFormSubmission::UnicodeToNewBytes <- nsFormSubmission::EncodeVal となっている。UnicodeToNewBytes にあるように、変更先の encoding が Windows-1256 の時のために Presentation Form を作っている。この恐ろしく限定された用途なら上記のマクロで問題ないのだろう。

OpenType の仕様を眺めた感じ、フォント側がいろんな情報を持っている様子。しかし Uniscribe がブラックボックスだからこれ以上調べるのは難しい。

Pango はどうなっているのかと調べてみる。2001年の時点で joining class の修正が入っているから、Arabic_Assign_Properties は正しいプロパティを与えるはず。実際 pango-view で ئۇيغۇر تىلى を表示すると i は正しい。しかし、デフォルトフォントには ۇ が入っていない。

5月15日追記: アラビア系文字の基礎知識が計算機による処理も含めて説明しており良い。組版系の人が書いたもののようだ。

2009-05-09

Introduction to Modern Uighur

by Hamit A. Zakir, Xinjiang University Press, 2007.

ھازىرقى زامان ئۇيغۇر تىلى

ウルムチの本屋で見つけた語学の本。30元。ウイグル語を英語で説明。この本については、ググってもほとんど情報がない。そもそも Amazon が何も返さない。アフィりたくてもアフィれない罠。

移動中に最初の数章を眺めた。そのとき気付いたことのメモ。また書き足すかもしれない。

全体に言えること。とにかく不親切。自学の本としては落第点だろう。講義の教科書を想定しているのだろうか。

文字の説明から始まるが、ligature の لا について何も言っていない。読み始めた時点で文字だけは読める状態だったので気づいた。これで本当に初めて勉強するならハマるだろう。

ローマ字転写をまったくやらない。p.1 のアルファベットの表に Read と IPA という列があるだけ。アラビア文字が初学者になじみやすいとは思えないから、最初のうちは転写を添えても悪くないのに。

転写を意図的に避けているようにすら見える。ウイグル固有名詞に対応する英語表記も Xinjiang, Urumqi, Hotan, Ahmat など、ウイグル語に対応しないものばかり。何か微妙な問題でもあるのだろうか。

文をまったく英訳しない。まあ、日本語なら傍訳でも様になるけど、構造が違いすぎる英語には訳しにくいだろう。しかし、単語のリストがあるだけでは、自分の解釈があっているのか確認できない。単語のリストについても、英語が左端、ウイグル語が右端に書いてあって、真ん中に広い空きがある。おかげで行の対応を目で追うのが大変。bidi は難儀だ。

Exercise があるのだが、答えが載っていない。どうすればいいというのか。

文法事項の一覧がない。特に派生辞の一覧があれば便利なのだがそれもない。

Errata

  • p.23, 2nd table, 2nd person plural, C preceded by rounded front V の ئۆي + ۈڭ = ئۆيۈلارئۆي + ۈڭلار = ئۆيۈلار の間違い
  • p.24 bottom, my younger sister の سىڭىلىمسىڭلىم の誤り
  • p.24 bottom, your name の ئىسىمىڭئىسمىڭ の誤り
  • p.25 top, our part の قىسىمىمىزقىسمىمىز の誤り
  • p.25, 2.2, the personal noun نمەن の誤り
  • p.27, dialogue, 3rd and 4th lines の ئىسىمىمئىسمىم の誤り (p.28 の単語リストだと正しいのに)
  • p.29, 2, 2nd example の "my books" (2 + S) は "my book" (2 + S) の誤り。
  • p.34, table, 2nd person と 3rd pers. の境界が実際より1列下になっている。
  • p.38, Vocabulary, word; speech に対応する سۆز が抜けている。その下のウイグル語が一行ずつずれている。
  • p.40, 1st person, singular, tense: ت - Cv-, pp: ۈم- の example: كۆچ - ت - ۇم = كۆچتۈمكۆچ - ت - ۈم = كۆچتۈم の誤り
  • p.40, 1st person の Plural は 小文字の plural に統一
  • p.40, 1st person, Plural の V/CV+ は V/CV+
  • p.40, 1st person, Plural, 5th row の / は不要
  • p.40, 2nd person, singular-polite, 2nd row: تۇت - ت - ىڭىز = تۇتتۇڭلارتۇت - ت - ىڭىز = تۇتتىڭىز の誤り
  • p.40, 2nd person, singular-polite, 3rd row: كۆچ - ت - ۈڭلار = كۆچتتىڭىزكۆچ - ت - ىڭىز = كۆچتىڭىز の誤り
  • p.40, 2nd person, singular-polite, 5th row, 2nd example: تۇر - د - ۇق = تۇردىڭىزتۇر - د - ىڭىز = تۇردىڭىز の誤り
  • p.40, 2nd person, plural, 4th row, 1st example: يە - د - ۇڭلار = يەدىڭلاريە - د - ىڭلار = يەدىڭلار の誤り
  • p.40, 3rd person, singular & plural, 4th row: ؟؛ の誤り (このページ、いくらなんでもひどすぎる。)
  • p.52, 1.2.1, 1st line: partiele は particle の誤り
  • p.53, 1st table, negative-interrogative, 2nd row, 1st line: ئوقۇمامدىمىزئوقۇمامدىمەن の誤り
  • p.53, 1st table, positive-interrogative, last row: (1) は (ا) の誤り
  • p.53, 2nd table, futune - interrogative は future - interrogative の誤り
  • p.55, 7. 3rd line: In the dialogue of this lesson (see page 64) とあるが、p.64 は別の課で、該当する発話が載っているのは p.49
  • p.62, 1st table: 1ts person は 1st person の誤り
  • p.62, 1st table, 2nd row: singulr は singular の誤り
  • p.62, 1st table, 2nd person: singular と plural の境界が実際より一列上
  • p.62, 1st person oluntary forms は voluntary の誤り
  • p.62, 2nd table, 2nd: singular が空欄になっている
  • p.63, last line: starded は started の誤り
  • p.64, 2nd line: wel は well の誤り
  • p.68, 2nd table, 3rd row: ىليون の 1000,000, は 1,000,000 の誤り
  • p.68, 2nd table, 4th row: مىليارد の 1,000,00,000 は 1,000,000,000 の誤り
  • p.74, Vocaburaly: 7: gald は glad の誤り
  • p.74, Vocaburaly: 16 preciuos は precious の誤り
  • p.74, Vocaburaly: 16 upstanding は outstanding の勘違い?
  • p.74, Vocaburaly: 17 scarf; handkerchief の ياشلىقياغلىق の誤り
  • p.74, Vocaburary, 25: edger が謎
  • p.74, Vocaburary, 26: nigh は high の誤り
  • p.75, 1.1, 1st line: sused は used の誤り
  • p.75, 1.3, 1st line: ampificative は amplificative の誤り
  • p.76, 2.2, 4th line: attibutives は attributives の誤り
  • p.76, 2.2, 4th line: express は expresses の誤り
  • p.76, 2.2.2, 2nd line: دىكى +< تىكىدىكى +/ تىكى の誤り。次の行も同じ。
  • p.77, 2.3.2, 3rd line: attibutive は attributive の誤り
  • p.78, 2.3.4, 2nd line: 文頭の دادامدادامنىڭ の誤り
  • p.78, 3, 4th line: conjuction は conjunction の誤り
  • p.84, 3rd line: suffxes は suffix のはず (なぜ複数形?)
  • p.84, 1.3.2, 1st line: in cluding は including の誤り
  • p.84, 1.3.2, 3-5th lines: > は < の誤り (方向が逆)
  • p.84, 2.1, 1st line: declarion は declaration の誤り
  • p.85, 2.2, 1st line: inderct は indirect の誤り
  • p.85, 2.3, 1st line: the of the end word は the end of the word の誤り
  • p.85, 2.3, 5th line: chard は chart の誤り
  • p.85, 1st table: column 1 and row 5: ئوقۇغۇچىمىكەنمەنئوقۇغۇچىمىكەنسىز؟ の誤り
  • p.85, 1st table: column 1 and row 6: ئوقۇغۇچىمىكەنسىز؟ئوقۇغۇچىمىكەنسىلەر؟ の誤り
  • p.86, 1st chart: 5th line: replace You (plura) with You (plural).
  • p.86, 2.4.2, 1st line: replace applied th with applied to.
  • p.86, 2.4.2, simple future, last line: replace بارامدۇق؟ with بارامدۇ؟.
  • p.87, 3, 3rd line: replace / with <.
  • p.96, 2.4, 2nd line: delete a before hypotheses.

2009-05-02

私が老害になるとき

老害死ね」と心の中でつぶやくとき、自分もそのうち老害扱いされるのだろうと考えたりする。問題は何をもって老害になるかだが、ずっと頭にあるものの一つは携帯世代の存在。

具体的な懸念材料もいろいろある。例えば、2ちゃんねるが高年齢化しているという話。ネオ麦茶の事件が2000年だから、それから9年もたつ。道理で年を食うわけだ。こうして新規参入が少ないまま、既存の利用者が年をとっていく一方で、携帯に閉じた世界が私の知らない間に広がっているらしい。

そういう意味で、http://d.hatena.ne.jp/shi3z/20090429/1240968239 の議論が感覚的に理解できない。そもそも私は小型機器には興味がわかない。もちろん今更ブラウン管はいらないが、ユーザインターフェースは小さくすればいいってものでもないだろう。むしろもっと大きくならないかと思っているぐらいだ。そう思う理由には、ひきこもり体質だというのもあるだろう。何しろ (寝ている時間も含めて) 人生のほとんどの時間に、数メートル以内にネットに接続されたPCがある。

もうちょっとまじめに分析。機器の中身は置いておいて、入力と出力だけ考えてみる。

先に出力。聴覚系はいいとして、やはり視覚。ディスプレイ。本当に携帯の小さな画面でストレスがたまらないのだろうか。私はしばらく B5ノートを使ってきたが、A4を使いだして、もう戻れない感じがしている。でも、本当のことを言うと、A3 というか A4 見開きが欲しい。というのは本を真の意味で電子化したいから。一応は書籍は電子化されつつあるけど、紙媒体としての本には依然価値がある。音楽を収納した皿自体にはもはや何の価値もないというのに。それは、ディスプレイが紙の代替になれていないから。理由はいろいろ。サイズが小さい。長時間読むと目が疲れる。寝っ転がって読めない。そうすると、ディスプレイは、大きくて軽くて、オプションとして小さく収納できる必要がある。目が疲れるのはどうしらたいいのかわからない。こういう問題が解決したら、私の生活は一変するはず。物理的に本が置いてある場所から解放されるから。具体的な機器として有機 EL とかでそういう話がなかったかな。よく知らないけど。

入力。やっぱり音声はいいし、リモコン等のボタンには汎用性はない。残るはキーボードマウスマウスは必須でない気がする。モノによってはタッチパネルで代替できそう。関係ないが、トラックポイントの方がタッチパッドより断然使いやすいと思う私は少数派らしい。

で、問題はキーボード。小型機器が嫌いな決定的理由はこれ。携帯の小さなボタンやソフトキーボードでは耐えられない。というか何で耐えられるのかわからない。飼いならされやがって、と思う。キーボードを置き換えられそうなものは、今のところ BCI ぐらいしか思いつかない。

途中から話が変わってきてまとまりがない。結論としては、商売でやると、自分が欲しいものじゃなくて、他人が欲しいものを作らないといけないから大変そうだ。