weavin'

2005-08-190106

[][][] Multiple Accounts in Autodiscovery

昨日書こうと思っててすっかり忘れてたことを。はてなだけではなく、別のアカウント情報をAutodiscoveryにて埋め込む方法と、注意点についてです。

Account Autodiscoveryの仕様がまとまってはてなポイントを贈るなんてページができたのはいいんですが、複数のアカウントを記述する方法が書かれていないんですよ。これだとはてなの外にこの仕様が広がらないので、なんか面白くありません。というわけでここに書いてみます。

とりあえずソースをごらんくださいな。

<rdf:RDF
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:foaf="http://xmlns.com/foaf/0.1/">

<rdf:Description rdf:about="http://example.com/permalink">
  <foaf:maker rdf:parseType="Resource">

    <!-- ひとつめ -->
    <foaf:holdsAccount>
      <foaf:OnlineAccount foaf:accountName="kotastyle">
        <foaf:accountServiceHomepage rdf:resource="http://www.hatena.ne.jp/"/>
      </foaf:OnlineAccount>
    </foaf:holdsAccount>

    <!-- ふたつめ -->
    <foaf:holdsAccount>
      <foaf:OnlineAccount  foaf:accountName="kota">
        <foaf:accountServiceHomepage rdf:resource="http://example.com/"/>
      </foaf:OnlineAccount>
    </foaf:holdsAccount>

    <!-- みっつでもよっつでもいつつでも -->

  </foaf:maker>
</rdf:Description>
</rdf:RDF>

というわけで、複数のアカウント情報を記述する場合には、foaf:holdsAccountのブロックをアカウントの数だけfoaf:makerに用意しなければなりません。

「なんでふたつのfoaf:OnlineAccountを、一緒にひとつのfoaf:holdsAccountに入れられないのか」という疑問を持った方、するどいです。でもだめなんです、XML的には不思議じゃないんですが、RDF的に困るのです。

具体的な説明をすると混乱する人しか出ないような気がするので、ちょっとつっこんで理解したい方は、神崎先生の書かれた複数の知人を示すときの注意点をお読みください。文中のfoaf:knowsをfoaf:holdsAccountに、foaf:Personをfoaf:OnlineAccountに読み替えると、疑問への答えとなりますので。

というわけで、アカウントの数だけfoaf:holdsAccountを記述してください。Autodiscoveryを解析して実装する方々も、この点に関してはご注意を。

そうそう、先ほどの例は僕が一番スマートに思うものを書いたのですが、実はアカウントの数だけrdf:RDFなブロックを記述しても、意味的におかしいところはないのですよ(実装がどうなのかは知りませんが)。ただ、面倒なので複数のfoaf:holdsAccountでAutodiscoveryを記述するのをおすすめしたいです。

はてな側にもこれをどこかに書いておいて欲しいなとおもったり。

2005-04-290092

[][] Safari RSS+FOAF?

FOAF Support in Safari RSSというエントリが。FOAFが埋め込まれているRSSフィードをSafari RSSで表示したところ、そのFOAFデータまで表示されたというものなんですが、フィードのどこにあるFOAFを解析して表示させているのか気になったり。

RDFを解釈しているわけではないでしょうし、dc:creator以下のFOAFを見ているのでしょうか。

おっと、エントリにupdateが出たのでこちらも追記します。Johnがいろいろテストしたところによると、Safariは次のようなことを行っているそう。

  1. フィードのリクエスト
  2. channel (weblog)のURLをリクエスト
  3. channelのURLからFOAFのURLをリクエスト
  4. FOAFを解析し、knows以下のデータを右側に表示

FOAF内情報が表示されたSafari RSSのスクリーンショットもJohnにより提供されています。Friendsって書いてあるところですね。名前にweblogへのリンクが張られているようです。

「WeblogのURLからFOAFのURLをリクエスト」ということで、Safari RSSはFOAF Autodiscoveryを解釈しているのではないかと予想されます。FOAF Autodiscoveryの一般的な書式は以下の通りなので、自分のweblogに次のコードを埋め込めば、Safari RSSからそのフィードを通じて友達の情報を参照できるのではないかと。

<link rel="meta" type="application/rdf+xml" title="FOAF" href="http://example.com/foaf"/>

FOAFがコンシューマアプリに取り入れられたのはたぶん初めてなので、なんかわくわくします。これからもFOAFを利用するソフトウェアの登場に期待したいところ。

alimikaalimika2005/04/30 09:09RSS の中にある FOAF でなくて、純粋な FOAF (?漏れの FOAF ですが) を表示させてみたところ、例の RSS 用の表示にはならなかったです。で、漏れ FOAF には XSL スタイルシートがあてがわれているので、XSLT 変換した挙げ句、例によって日本語がメタメタに文字化けして終了しました。

2005-01-060059

[] Tag URI vs FOAF IFP

Tags, not mboxes?というrdfweb-devの投稿から。Tag URIというのがtag URI schemeというのを考えているらしく、それにより人にURIを割り振ることができるようになるので、もしRFCになったらInverseFunctionalPropertyなんかよりそっちを使った方がよくないかい、みたいなことを言ってるわけです。

そんなわけで「俺はURIじゃない」とか「だってIFPなんか信頼できないよ」みたいな言い合いがちょっと続いてます。

tag:なURIスキームはメールアドレスかドメインネームをIDの基にし、それに日付を加えてURIとするもののようです(より詳しくすることもできるみたい)。メールアドレス、ドメインネーム、、、それってFOAFのIFPにも採用されているわけだから、tag:で無理矢理URIをふってIDにする必要があんまりないんじゃないか、なんていう反論で締めくくられてます。たしかに。

ただtag:スキームができたらできたで、個人識別に強力なものとなるのは間違いないでしょうし、悪くはないかなぁと。個人のもともと持つものからURIを生成するので、人のURIをつくるサービスみたいなのではない、つまに管理されるという意識が取り払われるわけです。スマート。

まぁ双方「要らない」なんて言うよりも、あるなら使えばいいじゃないと思ったわけです、なんともRDF的ですが。

ちなみにtag:スキームはもともとAtomのatom:id用に作られているとのこと。面白いこと考えてますね。

2004-12-220055

[][] Thunderbird-FOAF

先日取り上げたX-FOAFというメールヘッダなのですが、Christopher SchmidtがThunderbirdでX-FOAFを表示するextensionを公開していました。スクリーンショットがページにあるので、どのようにX-FOAFが表示されるのかがわかると思います。

他のThunderbird用extensionをいじってX-FOAFに対応させてあるらしく、オプションなどが動かないようですが、X-FOAFを表示させたいかたはインストールしてみるといかがでしょうか。

2004-12-090053

[][] "X-FOAF" Mail Header

Ian DavisがメールヘッダにFOAFの情報を埋め込む方法について取り上げていました。FOAF and Thunderbirdというエントリが発端なのですが、vCardに続いてFOAFを使って個人の認証をするっていうのは面白いアイデアだなと思いました。

記事中ではThunderbirdでX-FOAF-URIなんていうメールヘッダを設定しています。user.jsまたはprefs.jsに次のようなことを書くとカスタムヘッダを定義できるようです。

user_pref("mail.identity.id1.headers", "foaf");
user_pref("mail.identity.id1.header.foaf", "X-FOAF-URI: []http://example.com/foaf[]");

id1という部分は複数アカウントがある場合、id2や3になる可能性があります。どのアカウントがどのidを持っているかは、prefs.jsの設定を見て推測できますので。

また、FOAFを埋め込むのであるならばその署名もあるとなおよいのではないかなんていう意見が出ています。

PGPによるFOAFの電子署名あたりに関わってくるのですが、たしかにこれらがうまく機能すれば、Web of Trustに一歩近づけるのではないかなぁと思います。

最後にMail.appでX-FOAFを埋め込む方法をみつけたので紹介しておきます。

[][] Lovelogtool+FOAF

LOVELOGツールというFirefox extensionの最新版が公開されました。FOAFの情報を別ウインドウにて表示してくれる機能付きらしいです。

残念なのはラヴログユーザのWeblogにしか対応していないという点。ソースを参考にさせてもらってFOAFerに搭載とかできるかしら。。。

sorasora2004/12/12 19:52FOAF Viewerという名前で切り出したみたいですよ。期待出来そうです。
http://blogs.dion.ne.jp/hi632/archives/340117.html

© 2004 kota.