Eyes, JAPAN
FOAF(friend of a friend)
Misato Usui
最近は相手の連絡先を知りたいなと思ったとき、電話番号やメールアドレスを聞く機会って少なくなったなと感じます。「Facebookやってる?」が合言葉になってきましたね。
プライベートな場面に限らず、ビジネスの場面にもこのセリフが登場するようになり、時代の変化をしみじみ体感しています。
さて、Facebookで新しく友達申請を送るとき、初対面の人なのに共通の知人が一人二人いたりして、話題になることありませんか。「あれ?この人どうして知ってるの?」なんて、話していると友達の友達が友達だったりして・・・今日はそんなお話しです。
【FOAFを使った人物情報の記述】
今日のタイトルFOAF(friend of a friend)は、その名のとおり友達の友達という意味で、主に人物に関するメタデータを記述するための語彙です。
<rdf:RDF xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"> <foaf:Person> <foaf:homepage rdf:resource="https://www.facebook.com/usui.misato"/> <foaf:name>UsuiMisato</foaf:name> </foaf:Person> </rdf:RDF>
こちらはFOAF使って私の簡単な自己紹介をしたRDF/XMLの文章です。通常のRDFでは、記述するリソースを識別するためにrdf:aboutで主語を指定しますが、FOAFではfoaf:Personのプロパティとしてfoaf:mbox(メールアドレス)やfoaf:homepage(ホームページ)、foaf:weblog(ウェブログ)を記述し、このURIによって人物を特定するという方法を取ります。
個人を特定するという意味では、メールアドレスが最たるものですが、上記の例ではFacebookの個人ページのURLをfoaf:homepageで指定して個人を特定しています。(“foaf:facebook”というプロパティがあればいいのですが、残念ながらFOAFの語彙一覧にはそのようなプロパティはないようなので、foaf:homepageを使用しています。)
ここで重要なのはhttps://www.facebook.com/usui.misatoというURIを用いて、グローバルに唯一の個人を特定できるということです。
【友人関係の記述】
さらにFOAFでは、foaf:knowsというプロパティを使用して「知人」という関係で、人間関係のつながりを表現することができます。
<rdf:RDF ...> <foaf:Person> <foaf:homepage rdf:resource="https://www.facebook.com/usui.misato"/> <foaf:knows> <foaf:Person> <foaf:homepage rdf:resource="https://www.facebook.com/hanako.aizu"/> <foaf:name>AizuHanako</foaf:name> </foaf:Person> </foaf:knows> </foaf:Person> </rdf:RDF>
上記の文では、”https://www.facebook.com/usui.misato”と言うURIを持つ人物(私)が、https://www.facebook.com/hanako.aizuというURIを持つ架空の人物を知っているということが述べられています。
FOAFには他にもgender(性別)、nick(ニックネーム)、interest(関心をもっているもの)などなど、人物に関することを記述できる様々なプロパティが用意されています。FOAFを使えば人物詳細なプロフィールから人間関係まで記述できるということですね。
ここまでFOAFについてざっくりと説明をしてきましたが、FOAFはセマンティック・ウェブを実現させるツールのひとつです。FOAFの語彙はとてもわかりやすいので、RDF/XML構文を理解する上でとても有意義です。興味のある方は、FOAFでマシンリーダブルな自分のプロフィールを作成してみてはいかがでしょうか。
FOAF名前空間定義
http://xmlns.com/foaf/0.1/
薄井(足元が寒い…)