Hiroaki Sakuma
hiroa****@sakum*****
2005年 4月 2日 (土) 20:35:28 JST
佐久間です. > > たけぞうさんも仰ってましたが、この永続化レイヤにおけるID(仮にページ > > IDとでも呼びましょうか)を表面に出す必要は必ずしもないでしょう。 > > Wikiの外の世界からあるページにリンクするURLを示すもの(Permalinkです。 > > 恒久的URL用と同義)は別にあってもいいと私は考えています。 > > あとで出る竹添さんがいまいちと思った事がこの考えにつながると思います。私 > は竹添さんの考えを、「恒久的URLとしてなら自分で付けた意味ある英字のペー > ジ名を使いたい」と読みとりましたが、いかがですか?>竹添さん Permalinkに意味ある文字列は必要ないと思います. Blogや掲示板でPermalinkを示すことがありますが,多くは単なる数字だったりしま す.Blogやサイトで引用したりしてリンクを張るのに,わざわざURLに意味のある文 字列を入れる必要はありません.また,多くのユーザはリンク先のURLが意味のある 文字列かどうかは見ていないと思います. # 私もリンク先のホスト名は見ても,パスまでは気にしません 最近ではCMSの普及で,サイト全体が意味の無いパスばかり,というサイトも多々あ るので,URLに意味を持たす必要はあまり感じられません. # 掲示板のログ,MLの過去ログなどもシーケンシャルな番号が使われることが多いで # すよね > この時の前提はタイトル=ページ名で短いURLを実現しようと思うと、 > > - 日本語ページ名=日本語タイトルではなく英字ページ名=英字タイトルにしな > くてはならない > - もしくは関連性が全くないIDを使用しなくてはならない > > といった意味で「いまいち」だと。そこでタイトルとページ名を独立にし、 > > - リンクはわかりやすい英字ページ名 > - タイトルはわかりやすい日本語タイトル > > を実現できれば解決する。そうするとIDを表に出す意味はないかも?と、なった > のでは? IDを使うかどうかは別として,なぜIDやページ名の話が出てきてるかというと, ・Permalink(恒久的URL)が欲しい ・タイトルを変えても,リンク元からリンクが切れないようにして欲しい ということだと思うので,リンクは別に関連性の無いIDでもいいでしょう.各ページ の下の方に,[Permalink]と表示しておけば,リンクする人は分かります. IDとは別にリンク用の文字列を使うのもアリですが,3つの識別用文字列があるとや やこしくなるので,IDとリンク用の文字列は同じものを使い, ・ID(&恒久的URL) ・タイトル の2つだけにして,これで管理したら楽じゃないでしょうか? Wiki内部のリンクに関しては,内部で適当にコンバートすればいい話なので,ユーザ が, [[日本語でリンク]] とか書いても,自動的に, href="wiki.cgi?id=5pel5pys6Kqe44Gu44Oa44O844K4" とリンクしてしまえばいいですよね. (Wikiの)ユーザにとって重要なのはURLではなくて,内部リンクをどう張るか,です よね.内容を示すのにページ名では心許なく,意味のある文字列にする必要性は感じ られません. # アンカーリンクでURLを見ないのは私だけでしょうか? > > ユーザにとってはページの内容(コンテンツ)が主眼であり、それを指し示す > > ものとしてページ名があるわけです。そのうえIDまで意識しなければならない > > となると使い勝手は低いかと思われます。 > > > > 「IDも使える」というのは「IDが使われることがある」ということですから、 > > 結局はユーザがIDを意識せざるを得なくなります。始めから、「IDはユーザが > > 意識しなくても良いもの」という前提をもって作るといいのではないでしょう > > か。 > > > > iノードやページIDの概念が有効であると言うのとは別次元の話です。否定し > > ているわけではないので、その点は申し添えておきます。 > > たしかにページIDをユーザが意識しなければならないのは本末転倒ですね。 > ページIDをcgiの外に出すか出さないかは議論の余地がありそうです。 ユーザがIDを使わないとWiki内部でリンクできないならともかく,現行と書き方が変 わらないのであれば,どんなリンクでもユーザは気にしないと思います. > > > で、2つの案の違いはIDが表面に出てくるかどうかというところです。 > > > > この部分は前記の疑問(いまいち)とつながっているんですよね。 > > > > その疑問に対する私の考えを書いてみます。 > > ・ランダムな英数字や記号が13文字 > > ・単純なインクリメンタルの数字 > > のようなものは、使いたくないと考えます。1つ目のほうは、人によっては6文 > > 字でさえもNGかもしれませんね。 > > 3文字ならいかがでしょうか?私も計算して驚いたのですが(^^; > [A-Za-z0-9]の62文字 ** 3文字(3乗) = 238,328ページ > 十分でしょう。 MS系OSを考えると,A-Za-zは止めた方がよさそうですね. > > 単純なインクリメンタルの数字が悪いのは、UI以前の問題で、spamのような絨 > > 毯攻撃に晒されやすいであるとか、新規ページ作成での衝突が起こりやすいと > > いう技術的な問題です。 > > たしかにそうかも知れません。あと、面白くない(ぉ > ただ、(関連のない)次のページを見るというユーザの楽しみが生まれます:-) そんな楽しみのために,セキュリティホールの根源を作ったり,絨毯攻撃を受けそう なパターンを作るのは反対です. Thumbnailを使った画像サイトですら,パスのパターンを見て危険を感じることがあ りますが,ドキュメントであるWikiでそんなことをやったら大問題になりそうです. > ファイルシステムだとmktempがあります。RDBMは詳しくないですが、Accessは > シーケンシャルもしくはランダムなIDを自動的にふることが出来ますね。他の > RDBMもそういったID生成機能はありそうです。この場合、使用できる文字の限 > 定はあまりしない方がやりやすいですね。 > #ただしURLエンコードされない文字、[A-Za-z0-9_.*-]に限りたい > ##mozilla以外で"_.*-"がエンコードされないかどなたか確認していただけません > ? RDBMSではシーケンシャルに付ける方法が多いと思います. RDBMSでは,データ構造を設計する際,使う,使わないは関係なく,シーケンシャル なIDを付けるのがコツです.単純なSELECT(行選択)だけなら関係ないのですが,LEFT JOINのようなTABLEを超えたリレーショナルな操作をする際に,シーケンシャルなID を付けておいて,INDEXを生成すると動作が速くなるためです. なお,Operaでは_.*-はエンコードされません. > > これだけだと、特殊ページも含めて最大1万ページしか扱えません。しかしな > > がら、殆どのユーザにとっては十分な広さを持った空間と言えるのではないで > > しょうか。 > > #現時点で公開されているfswikiのサイトの99%はカバーできそう(推量) > > > > 1万件を超えたら、次の1万件を収容する空間を確保します。例えば、 > > 「10000〜1999」を使うようにします。このあたりは検討の余地アリ。 > > #Y10k problem(RFC 2550)が参考になるかも > > 個人的には1万ページを越えるようなものをFSwikiで管理するのがそもそも間違 > いと思わなくもない(笑) Wikiと連携した独自のアプリケーションを書くと,そうとも言えないかもしれません ね.わざわざ制限を低く設置する必要も無いと思うので,可能なら無制限にしておく べきでしょう. > なお、ここまではあくまでURLで使われる可能性があるという前提での話です。 > その場合はIDとページの実体との関係が永続化される必要があるため、性質的に > ファイル名と同じなのでファイル名から単純な変換で求まる方が効率的なだけで > す。 URLを使う,というのはブラウザに打ち込んでアクセスする,のではなく,サイト作 成者やBlogなどで,リンクを張るのに使うのではないでしょうか. 私は比較的URLを覚えて,手で打ち込んでアクセスする方ですが,一般ユーザは Yahoo!JAPANのURLすら知らないのが普通です. ===================== Sakuma,Hiroaki hiroa****@sakum*****