簡単な仕組みによりFOAFの輪をつなげる
説明
RNA 1.8より導入された新しい機能。
仕様
はじめに
- 申し訳ないのですが、FOAF_Trackback の仕様は確定していないのが現状です。
- RNA1.9.x と RNA1.8 とでは、foaf.cgi の 「Add to my FOAF」リクエストのフォーマットに互換性がありません。
- 以下の事柄は、「仕様」ではなく、RNAの現バージョン1.9.2における「実装」を文書化したものです。予告無く変更される可能性がありますので、ご容赦ください。
文中の表記について
Aさんの設置したRNAを「RNA(A)」、RNA(A)に含まれるfoaf.cgiを「foaf.cgi(A)」とします。
おおまかな処理の流れについて
おのひろきさんの日記 を参考にさせていただきました。
- Aさんが自分のFOAF(A)の<knows>リストにBさんを加えたいと思う。
- Aさんは、foaf.cgi(B) に対し、foaf.cgi(A)から「helloメッセージ」を送信する。
- AさんのFOAF(A)の<knows>リストに、FOAF(B)が加わる。
- Bさんの 「knownリスト(B)」に、Aさんから受信した「helloメッセージ」が追加される。
- Bさんが、「knownリスト(B)」の受信メッセージ一覧から、foaf.cgi(B)を用いて Aさんを FOAF(B)の<knows>に加える。
helloメッセージについて
- helloメッセージとは、「私はあなたと友達であると認識している」というメッセージ。
自分のFOAFのURIなどを相手に伝えるのみ。相手が自分をFOAF<knows>に加えることを、要求しないのが原則。
- helloメッセージの正体は、HTTP POSTリクエスト。
項目は、「mode」「name」「hoge」「foaf_uri」「trackback_uri」。ちなみに、「trackback_uri」はhelloメッセージ送信元のCGIのURI。
POST http://xxxx/rna/foaf.cgi HTTP/1.0
Content-Length: xx
mode=hello&name=hoge&foaf_uri=http://yyy/rna/foaf.rdf&trackback_uri=http://yyy/rna/foaf.cgi
knownリストから自分のFOAF<knows>への追加について
- knownリストには、受け取った helloメッセージ のリストが保持される。日時, name, FOAF URI, FOAF Trackback URI が記録される。name はhelloの送信者を示す名前だが、FOAFの<name>や<nick>と同一とは限らない。
- knownリストにあるhelloメッセージ一覧から、自分のFOAFに加えてもよいと思うものを選定。foaf.cgi を用いて、helloメッセージ送信者のFOAFファイルにアクセスし、自分のFOAF<knows>リストに加える。
課題
使われる語彙
用語
言及リンク集
RNA/FOAF言及リンク集
rnafoaf ... Moved Temporarily
※RNAのClipを活用して作りました。
編集可能なように、ファイルをwikiに置きました。