ちょっとしたメモ

FOAFを拡張した信頼度評価の実験

メリーランド大学の博士課程の学生Jennifer Golbeckが、Trust and Reputation in Web-based Social Networksと題した研究で、FOAFを拡張した仕組みを用いて、ある人の信頼度を記述して統計的に分析するという試みを行っている。なかなかタイムリーではあるが、考えさせられる企画だ。

Jenniferのプランは、trust1trust10という10段階のプロパティを使って、ある人物が別の人物をどの程度信頼しているかを記述し、それを集約して統計解析しようというもの。全面的に信頼している(trust10)という場合、シンプルな記述は次のようになる。

(例)

<foaf:Person rdf:ID="me">
 <foaf:mbox>test@example.com</foaf:mbox>
 <foaf:name>example</foaf:name>
 <trust:trust10 rdf:resource="#friend1"/>
</foaf:Person>
 
<foaf:Person rdf:ID="friend1">
 <foaf:mbox rdf:resource="mailto:trusted@example.org"/>
</foaf:Person>

こんな具合に記述したFOAFのURLをmindswapのサーバーに登録するか、あるいはフォーム入力することで(FOAFを生成すると同時に)データベースに登録するという方法を採る(とりあえずアグリゲートはしないらしい)。知人の信頼度を10段階で評価するとは、なかなか大胆というか普通はためらうんじゃないかと思うのだが、どこかのソーシャル系サービスでも似たようなことをやっているので、非公開ならそれなりにデータは集まるのかな。1年半前に実施したプロトタイプでは、それなりの分析ができているようだ。

人の全般的な信頼度を単純に10段階評価するというのはさすがに乱暴だと考えたか、あるジャンルにおける信頼度、たとえば「XMLのことについてどれだけ信頼できるか」というアプローチも考慮している。これならばかなり現実的な評価が可能と思われるが、残念ながら、いまのところ記述方法があまりきちんとしていない。説明ページに記載されている例は、次のようなものだ。

(例)

<trust:trust10>
 <foaf:Person rdf:about="#jenGolbeck">
  <dc:subject rdf:resource="http://trust.mindswap.org"/>
 <foaf:Person>
</trust:trust10>

最初はRDFとして成り立たないものだったのが、修正されてこうなったのだが、foaf:Personに対してdc:subjectというプロパティを与えるのは無理があるだろう(dc:subjectの目的語をどこから選ぶかという問題は別にして)。プロトタイプの調査の時のモデルをベースにする方が、多少煩雑ではあるものの、意味としては分かりやすい。

(例)

<trust:trust10>
 <trust:TrustsRegarding>
  <trust:trustsPerson rdf:resource="#jenGolbeck"/>
  <dc:subject rdf:resource="http://trust.mindswap.org"/>
 </trust:TrustsRegarding>
</trust:trust10>

モデルの難点は別としても、こういうネットワーク上での評価というのは、いろいろ考えるべき問題を孕んでいる。良くも悪くもこのプロジェクトがどんな形で動いていくのか、注目しておこうと思う。

関連メモ:
map - genre: foaf. at