JapanesePageName

2004-04-26 01:25:29 +0900 (1547d); rev 6

WikiName はあからさまに英語オリエンテッドなので、 日本語ユーザとしてはなんかむかつく。というばかりが理由でもないが、 名前が日本語のページを作りたいときはどうすればいいだろうか。

日本語ページ名を許可するべきか

アチラの国の人が作った Wiki だと意図せず 日本語ページ名を許さないことになるが、 日本語ユーザが作った Wiki でも あえて日本語ページは許さないポリシーの Wiki もある。 例えば KoBit とか。

許さない場合の根拠はほとんどが 「URL 表記が % まみれになる」という一点に集約できる。 しかし以下で考えるようにこれはシステムの問題であり、 「日本語ページ名を許す」ことと「URL が判別不能になる」ことはイコールではない。

他に「ページ名が長くなりがち」という問題も指摘されている。 日本語ページ名を許す場合、ページ名に何の制約もかからないのが原因だろう。 しかしこれも問題のすりかえである。 「日本語ページ名を許す」と 「任意の日本語ページ名を許す」は同義ではない。 WikiName が「大文字で始める単語二つ以上」という制約を課しているように、 日本語ページ名に対してもなんらかの制約をかければよいのである。

それから、単にページ名を URL エンコードする方式では ページ名のエンコーディングも問題になる。 EUC から UTF-8 にするだけで URL が変わるのは非常に嬉しくない。

代替策

以下の方法が提案・実装されている。

例えば [JapanesePageName|日本語のページ名について] と書いておくと 「日本語のページ名について」というテキストを使って JapanesePageName にリンクできる仕組み。

BitChannel ではやらない方針。→ BitChannelPolicy

対策の大枠

以降は日本語ページ名を許す方針で考える。

まずシステムとしての対策は二つの層に分けて考えられる。

ページ上でのリンクの表現

Wiki のソースコード上で日本語ページへのリンクを示すには 主に以下の三通りの方法がある。

  1. なにかマークを付ける
  2. リンク化する単語 (キーワード) を宣言しておく
  3. URL を明示的に記述する
  4. 文字並びの規則で判別する

1 の代表例は BracketName である。 どの記号を使うかは揺れがあるが、たいていは [[ ]] で囲む。

2 は FreeStyleWiki という例がある。 はてなダイアリーのキーワード機能も近い。 この方式は重くなるのではないかという意見を見たが、 これは実装の問題であり本質的ではない。 軽く実装するのも現実的な範囲で十分可能であろう。 より本質的な問題としては、

という二点が挙げられる。

3 は、いちおう可能であるので挙げたが、 利点は全く感じられない。以降は無視する。

4 は最近思いついた方式。 例えば「ひらがな 3 文字 + 漢字 3 文字 + カタカナ 3 文字」 のように、特定の文字種が特定のルールに従って並んだ場合にページ名とみなす。 問題は、使いやすいルールにするにはそうとう考えないといけないことがある。 ルールが覚えやすく、しかも偶然にはできにくいが意図的に作るのは簡単でないといけない。

日本語ページ名と URL のマッピング

日本語のページ名を安直に実装すると URL が % だらけになり見づらくなってしまう。 見にくいばかりでなく、何ら情報が読み取れないのもいらだたしい。 この点に関して、他の Wiki などに見られる対策には以下の四つがある。

  1. URL ではページ ID を使う
  2. 別名を使う (新しいページを作るときに人間が決定する)
  3. 自動生成

1 はそれなりに (実装が) 手軽で、URL もすっきりする。 しかし URL からページの内容が全く想像できないという点は解決できない。

2 の方法は可読性に優れている。 人間が対応関係を管理するのだから、 それなりによいページ名が付くだろう。 しかし管理が面倒なのが最大の難点だ。 特に特定のページに別名定義を集めなければ いけない方式だとめんどくさい。

3 は 1 と似ているが、kakasi などのツールを使って それなりに意味のある URL を生成する。 例えば「ソースコードを読む技術」は「so-suko-do_wo_yomu_gijutu」 と変換される。やはりまだ多少長いが、がんばれば読める。 人間が対応関係をとる必要もない。

この方式はかなりよいように見えるが、 同音異義語の扱いについてだけは実装を工夫しなければならないだろう。

余談:物理データベースとのマッピング

オリジナル Wiki がページ名と同じ名前のファイルにページを保存するからか、 ページ名とファイル名が同一視されることは多い。 しかしこれももちろん同一ではない。


system revision 1.162