本文 編集 履歴 ソース 差分 最近の更新 VikiWikiとは

VikiWiki - InterWikiLink

まだ実装していません。

InterWikiLinkとは 

InterWikiLinkは、InterWikiName(サイト間WikiName)とWikiLink?(バックリンク)をあわせたものです。 自分のページにInterWikiNameで他のサイトのページへのリンクを書くと、リンクしたサイトに 自分のサイトへのリンクが追加されるしくみです。 InterWikiLinkを表示するには【InterWikiLinkを表示】のようなアンカーをクリックすることで、 表示できるようにしておく必要があります。

  1. AサイトのXページで、BサイトのYページへのリンク[[B:Y]]を貼ると、
  2. Bサイトに対して、AサイトのXページからYページにリンクしたという情報が流れます。
  3. このとき、Aサイトは自分のサイト名、URI、エンコーディング、言語、リンクしたページ名(複数あり)などをBサイトに送りつけます。
  4. Bサイトはこれらの情報を受け取って、自分のInterWikiNameにAサイトを登録します。
  5. BサイトはYページのバックリンクに[[A:X]]を加えます。

これで、相互間のバックリンクが作成されます。 ポイントは、勝手にInterWikiNameを登録してくれることです。 勝手にInterWikiNameが登録されると送信先のサイトで自分のページへのリンクが含まれる ページを変更したときに、逆に自分のサイトにリンクを登録してくれます。

これで完全な双方向リンクのできあがりです。

説明 

トラックバックを真似るのがいいと思うんですが、WikiはWikiなりの仕組みが必要と思っています。

以下はバックリンクを作る際に送ってほしいものリストです。

interwikiname
送信元のInterWikiName(※)

登録してほしいInterWikiNameWikiNameの形式で指定する。

title
送信元のサイト名(△)

登録してほしいサイトの名前を指定する。 interwikinameと同じ場合は省略してかまわない。

url
送信元のサイトのURL(△)

送信元のサイトのページにアクセスするためのURL。 XMLと同じくこのURLが名前空間の一意性を保証する。

  http://www14.org1.com/~mopia/dynamic/vikiwiki.cgi?p=
tburl
送信元のトラックバックURL(△)

トラックバックURLも送信先に送る必要がある。

page
送信元のリンク元ページ(※)

以下のlinkのリンク元となるページと指定する。

alias
送信元のリンク元ページのエイリアス

pageのエイリアスを指定する。

link
リンクを追加した送信先のページ(※)

送信元のページでどのページをリンクしたかを表す。 順不同で複数指定することができる。

※は必須のパラメタです。 interwikinameに指定した名前が登録されている場合、△は登録済みの情報を使用します。 登録済みというのは、相手先のサイトかInterWikiNameを管理するサイトに登録されている ことをいいます。

指定したパラメタの重複チェックと重複した場合の動作については規定しない方がいいと思います。

差分送信とunlinkの考察については、 Tumiki:InterWikiLink の意見を参考にして削除しました。

メッセージの形式 

トラックバックと同様にクエリを使用するのがいいようです。 レスポンスもXMLで返すのをそのまま使うようにします。

いろいろ方法はあると思うけど、どうせ作るなら他のWikiに聞いてみないと。 こういうコミュニケーション系は一人でやってても面白くもなんともないし。 もしかしたら、もうすでにあるのかもしれないし。

InterWikiNameの拡張 

自動的にリンク先に送信するには、送信先のトラックバックURLが必要です。 ページを更新したら、ページの更新内容にしたがってトラックバックURLに 自動的にメッセージを送信するのです。

普通のWikiでは、以下の3つしか管理していませんが、 これにトラックバックURLを追加します。

  1. InterWikiName
  2. URL
  3. エンコーディング(ない場合もある)
  4. トラックバックURI ★追加

トラックバックURIがないInterWikiNameにはトラックバックを送りません。

IWACエージェント 

IWACの利用をイメージしてみます。

  1. Mさんが、Aサイトに訪れます。
  2. 目に付いたXページを編集したくなりました。
  3. 「その情報ならBサイトのYページにあるんだよね~」っていいたくてB:YとInterWikiNameを使用して書き込みます。
  4. でも、AサイトにはBサイトのInterWikiNameは登録されていません。

そこでIWACの登場です。

  1. AサイトはIWACに「Bサイトってどこよ?」って問い合わせます。
  2. IWACはURIやその他の行儀(encodingなんか)を教えてあげます。
  3. Aサイトは自分のInterWikiNameにBサイトを登録します。
  4. そしてさらにBサイトにAサイトのXページからBサイトのYページにリンクを張ったということを通知します。
  5. BサイトはAサイトのことは知りません。「SPAMじゃないでしょうねぇ」なんて思ったりします。

そこでIWACの登場です。

  1. BサイトはIWACに「Aサイトってどこよ?」って問い合わせます。
  2. でも、IWACにも登録されていないので「知らんよ」と返ってきます。
  3. BサイトはIWACに「Aサイトのこと調べてきてよ」と問い合わせます。
  4. IWACはしぶしぶAサイトに出かけて情報を収集してきて、Bサイトに教えて上げます。
  5. Bサイトは自分のInterWikiNameにAサイトを登録します。
  6. そして、YページにA:Xへのバックリンクを張ります。
  7. でも、バックリンクでいっぱいになるので、サマリか詳細を見るためのリンクだけを表示しておきます。

これはまさに、AサイトとBサイトをつなげ、自律的にサイト登録数を増やしていく、IWACエージェントです。

で、どうするか? 

他のWiki開発者に聞いてみよう! (ricaさんにしか聞いてないけど...あれ?ricaさんはWiki開発者なのか?)

興味をもたれた方は、コメントをください。

名前
コメント