まだ実装していません。
InterWikiLinkとは
InterWikiLinkは、InterWikiName(サイト間WikiName)とWikiLink?(バックリンク)をあわせたものです。 自分のページにInterWikiNameで他のサイトのページへのリンクを書くと、リンクしたサイトに 自分のサイトへのリンクが追加されるしくみです。 InterWikiLinkを表示するには【InterWikiLinkを表示】のようなアンカーをクリックすることで、 表示できるようにしておく必要があります。
- AサイトのXページで、BサイトのYページへのリンク[[B:Y]]を貼ると、
- Bサイトに対して、AサイトのXページからYページにリンクしたという情報が流れます。
- このとき、Aサイトは自分のサイト名、URI、エンコーディング、言語、リンクしたページ名(複数あり)などをBサイトに送りつけます。
- Bサイトはこれらの情報を受け取って、自分のInterWikiNameにAサイトを登録します。
- BサイトはYページのバックリンクに[[A:X]]を加えます。
これで、相互間のバックリンクが作成されます。 ポイントは、勝手にInterWikiNameを登録してくれることです。 勝手にInterWikiNameが登録されると送信先のサイトで自分のページへのリンクが含まれる ページを変更したときに、逆に自分のサイトにリンクを登録してくれます。
これで完全な双方向リンクのできあがりです。
説明
トラックバックを真似るのがいいと思うんですが、WikiはWikiなりの仕組みが必要と思っています。
以下はバックリンクを作る際に送ってほしいものリストです。
- interwikiname
- 送信元のInterWikiName(※)
登録してほしいInterWikiNameをWikiNameの形式で指定する。
- 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を追加します。
- InterWikiName
- URL
- エンコーディング(ない場合もある)
- トラックバックURI ★追加
トラックバックURIがないInterWikiNameにはトラックバックを送りません。
IWACエージェント
IWACの利用をイメージしてみます。
- Mさんが、Aサイトに訪れます。
- 目に付いたXページを編集したくなりました。
- 「その情報ならBサイトのYページにあるんだよね~」っていいたくてB:YとInterWikiNameを使用して書き込みます。
- でも、AサイトにはBサイトのInterWikiNameは登録されていません。
そこでIWACの登場です。
- AサイトはIWACに「Bサイトってどこよ?」って問い合わせます。
- IWACはURIやその他の行儀(encodingなんか)を教えてあげます。
- Aサイトは自分のInterWikiNameにBサイトを登録します。
- そしてさらにBサイトにAサイトのXページからBサイトのYページにリンクを張ったということを通知します。
- BサイトはAサイトのことは知りません。「SPAMじゃないでしょうねぇ」なんて思ったりします。
そこでIWACの登場です。
- BサイトはIWACに「Aサイトってどこよ?」って問い合わせます。
- でも、IWACにも登録されていないので「知らんよ」と返ってきます。
- BサイトはIWACに「Aサイトのこと調べてきてよ」と問い合わせます。
- IWACはしぶしぶAサイトに出かけて情報を収集してきて、Bサイトに教えて上げます。
- Bサイトは自分のInterWikiNameにAサイトを登録します。
- そして、YページにA:Xへのバックリンクを張ります。
- でも、バックリンクでいっぱいになるので、サマリか詳細を見るためのリンクだけを表示しておきます。
これはまさに、AサイトとBサイトをつなげ、自律的にサイト登録数を増やしていく、IWACエージェントです。
で、どうするか?
他のWiki開発者に聞いてみよう! (ricaさんにしか聞いてないけど...あれ?ricaさんはWiki開発者なのか?)
興味をもたれた方は、コメントをください。
- 2008-03-18 23:25 Nice site! - Nice site!
- 2008-03-18 21:34 Nice site! - Nice site!
- 2005-03-31 21:57 mopia - いや、違いますね。もともとのIWACのサービスをベースに考えてた(自分の妄想を取り込まない)形の実装を練り直してみようと思う。
- 2005-03-31 21:52 mopia - Bサイトの登録名をInterWikiNameで知るのはやっぱり難しいですね。URIを貼り付けたら勝手にInterWikiNameに置き換えが現実的でしょうかねぇ。美しくないですが。
- 2005-03-26 17:13 mopia - レスありがとうございます。最初IWACの現配信情報(RSS)を頼りにWiki側で解決していくってストーリーで書いてたんですが、火がついてしまって...エージェントまで出してしまいました。プロトコルとかサイト名の解決とかはまだイメージでしかないです。
- 2005-03-26 08:02 SHIMADA - あと各WikiサイトがIWACから情報収集を受けるためのプロトコルが必要になりますね。
- 2005-03-26 07:59 SHIMADA - 素朴な疑問です。MさんはBというサイトがIWACにどんなサイト名で登録されているかをどうやって知るのでしょうか。
- 2004-12-10 21:54 mopia - 書き込みテスト