[Fswiki-dev] Re: ページ名のID化

Back to archive index

Naoki Takezoe takez****@aa*****
2005年 4月 2日 (土) 20:42:43 JST


竹添です。

ISHIDA Naoto wrote:

>>よく考えたら、これまでのURLでもIDでもアクセスできるようにするのは
>>いいのですが、日本語ページ名だと
>>
>>wiki.cgi?page=URLエンコードされたページ名
>>wiki.cgi?page=ID
>>
>>でしかアクセスできないということになりますよね。で、IDは今のところ
>>シーケンシャルなIDを振ることを考えています。自分で言っておいてなん
>>ですが、これはちょっと今いちかなぁという気がします。
> 
> 
> ここで仰られている「ちょっと今いち」と感じる部分を具体的にすることができ
> ると、逆にどうすればよいかが見えてくるかもしれません。
> 単にシーケンシャルなIDを全否定されると、論を進めづらくなってしまう気がし
> ます。

IDがダメと言ってるわけではないです。IDを導入することで、

・ページ名をあとから変更することが容易になる
・ファイルシステムの制限を回避することができる

というメリットはありますが、これだけだと

・ページに日本語のタイトルをつけたい場合に、
  URLが見づらいものになってしまう

という問題は回避できないので、ページ名とタイトルを別々に設定できる
ようにしたほうがいいよね、という話です。

わかりにくくてすいません。

>>・IDは廃止。ページ名とタイトルを別に設定できるようにする。
>>  →これまで通りページ名が一意な識別子になります
>>  →1ページ=1ページ名(エイリアスはありかも)
>>  →IDは廃止といってもデータファイルの保存にはIDを使用する
> 
> 
> これは上で述べた、ページIDは内部的なものとしてユーザに意識させない、とい
> う考えと一致するもののようですね。この部分はいいと思います。
> 
> 
>>・IDに加えて、ページ名とタイトルを別に設定できるようにする
>>  →IDでのリンクも可能(Wiki的には不要かも…)
>>  →1ページ=複数ページ名も可能(ただしページ名の衝突は不可)
>>要は、ページ名と別にタイトルを設定できるようにしようということです。
>>ページ名は英数字、タイトルは日本語、というような使い方を想定してます。
> 
> 
> 議論はこちらの方面前提に話が進んでいるようですが、これを否定的に捕らえる
> とすると、
> 
> ・非URI文字のページ名は不可とする
> ・各ページに、日本語もつかえる「1行description」を強制的につけさせる
>   →ユーザの負担、特に新規ページ作成の障壁が非常に高い
> と言っているのと実際上変わらなくなってしまうのではないですか?
> 
> #YukiWiki系だと、Wikiテキストの最初の1行が自動的に1行descriptionになります
> 
> 
>>で、2つの案の違いはIDが表面に出てくるかどうかというところです。
> 
> 
> この部分は前記の疑問(いまいち)とつながっているんですよね。

最初にIDを導入しようと考えた時点では

・IDはページの識別子であり、一度作成したら変更不可
・ページ名はページのタイトルのようなものであり、あとからの変更も
  できるようにする

という認識だったのですが、ページ名とタイトルを別々に設定することが
できれば、

・ページ名には短くわかりやすい命名を行う
・タイトルはあとから自由に変更可能

という運用が可能になるので、ページ名を識別子として使って、
IDをユーザに見せる必要はないんじゃないかな、と考えました。

この場合でもページ名は変更可能にするつもりですが、タイトルも自由に
変更可能なので、少なくとも3.5系のように「タイトルを変えるために
ページ名を変更する」という必要はなくなるので、まぁ、Wiki的には充分
ではないかと。

> その疑問に対する私の考えを書いてみます。
> ・ランダムな英数字や記号が13文字
> ・単純なインクリメンタルの数字
> のようなものは、使いたくないと考えます。1つ目のほうは、人によっては6文字
> でさえもNGかもしれませんね。
> 
> 単純なインクリメンタルの数字が悪いのは、UI以前の問題で、spamのような絨毯
> 攻撃に晒されやすいであるとか、新規ページ作成での衝突が起こりやすいという
> 技術的な問題です。
>
> ここで提案したいのが、次のような方法です。
> 
> 前提
> 内部だけで使われるID(ページID)に関してはもっと別に冗長な方法をとっても
> いいと思っています。
> 以下の案はPermalinkで用いるための識別子です。
> 
> ・0000〜9999までの1万個要素をもつ数列を、ひとつのまとまりとする
> ・この数列をランダムな順で並べ、それをIDとして使う
>   ・ランダムな4桁数字を生成→コリジョン検出→衝突したら再生成、などをAPI化
> 
> これだけだと、特殊ページも含めて最大1万ページしか扱えません。しかしなが
> ら、殆どのユーザにとっては十分な広さを持った空間と言えるのではないでしょ
> うか。
> #現時点で公開されているfswikiのサイトの99%はカバーできそう(推量)

結局この方法でもファイルをきちんとロックしなければ衝突の危険はある
わけで、そういう意味ではインクリメンタルなIDと変わらないのではない
でしょうか。

スパムにしても仰るようなIDの振り方をしても絨毯爆撃は可能でしょう。

将来的にはメタデータとしてページの情報を提供することも考えていますし
現在でも上位の数ページに関してはRSSで情報を取得することが可能ですから
機械化されたスパムへの対策という意味ではあまり意味がないような気が
します。まぁ、スパマーがそこまでやるかという問題はありますが…。

また、少なくとも公式サイトの度重なるスパムに関しては機械的なものでは
なく手動で投稿している節が伺えます。

防御手段は他にも考えられますし、あまり神経質になる必要はないと思います。

-- 
Naoki Takezoe <takez****@aa*****>



Fswiki-dev メーリングリストの案内
Back to archive index