2008年1月21日月曜日

ブログに見られる人間関係を UML で概念モデリング 1

ブログには、網の目状に広がる人間関係の連鎖が見られる。知合いのブログを見ていると、コメントやトラックバックに、その人を中心とした人のつながりが見えてくる。

Google Reader のような RSS リーダーを使っていると、「自分から見たブログ同士のつながりを記録できたらいいのになぁ」と思うことがある。例えば、ある人のブログの RSS を読んでいて、同じ日付にその人の知合いは何をして何を考えていたのがわかったり。

以下のようなインターフェイスを持ったアプリがあったらおもしろい。各四角はブログを表わしており、同じ日付のブログの内容を眺めることができるとする。

080120-011

仲のよい友人とだけ、人間関係のネットワーク図を共有し、「これこれこういうつながりのあるあの人が、こんなこと言っているけど、どうなんだろう?」という具合な話ができるかもしれない。それをブログのような形にすれば、特定の人間関係のレイヤーにのみ存在するコミュニケーションが Web 上で可能になる。その他にも、「関心の対象となるブログを書いている人」の「友だちのパートナー」の一覧を取得して、その人たちの物の考え方や感じ方を比較してみたり、いろいろできそう。

結局、おもしろそうな点は何かと言えば、特定の点 (関心対象のブログ) から、ネットワークを辿り、そこにおける集団がどのようなことを考えているか把握できること。特定の点を考えずに抽出すると、その点 (人) というバイアスがかからず、平坦で均一化された情報に目が行ってしまう。特定の点があるからこそ、情報が歪み、その歪みがおもしろさをもたらす。

話が拡散してズレてしまった。 (+_+) モデリングしよう。

 

080115-004A くんは、毎日、 B  さんのブログを読んでいる。B さんのブログには、たくさんのコメントが寄せられる。コメントをしている人の中には、自分でブログを持っている人もおり、B さんの実生活における知合いも含まれている。

A くんは、B さん経由でいろいろな人のブログを読むようになった。例えば次のような場合がある。

  • C さんは、B さんの高校時代の友人である。
  • D さんは、C さんの旦那である。

B, C, D の 3 人のブログを読んでいるときは、その人のハンドルネームを見れば、B さんとどのような関係なのかすぐにわかった。

080115-005

しばらくして、徐々に興味の対象が広がってきた。

  • E さんは、C さんの妹で、Bさんにとっては中学時代の友人 (部活の後輩) である。ブログの内容がともておもしろい。
  • F さんは、B さんのブログによくコメントをしているが、B さんとの関係はわからない。
  • D さんは、もう一つ別のブログを別のハンドルネームではじめた。

080115-006

 

要求

このように、網目のように読む対象が増えてきてしまった。今では、ブログにおけるハンドルネームと、誰がどういう関係なのかわからりにくくなってしまった。今後も増加していくと考えられる。これを把握できるように整理したい。

 

分析

人とブログ

080116-005最初は、「人」と「ブログ」との関係。

「D さんは、もう一つ別のブログを別のハンドルネームではじめた。」

「E さんは、C さんの妹で、中学時代の友人であり、いつも記事がおもしろい。 」

上記の例より、「人」は複数の「ブログ」を持つことができる。

また、ブログに対して「おもしろさ」という観点から評価していることより、ブログに対する評価項目が必要となる。右の図は、それを表現したクラス図。

 

抽象的な「関係」

人と人との関係には、「友人」「夫婦」「姉妹」などのように種類がある。これを示したのが下図の左側。

関係の種類として「不明」があるが、これは「F さんは、B さんのブログによくコメントをしているが、B さんとの関係はわからない。 」という場合があるためだ。

080116-003 080116-005

人と人との関係は、「高校時代の友人」や「中学時代の親友」と言うように、ある一定の時期 (期間) 形成さされる。人の一生において、特定の時期には「幼児期」や「思春期」のように呼び名がある。時期という視点で種類に分け、これを表わしたのが上図の右側。

 

具体的な「関係」

080116-002

上記の関係が「抽象的な関係」だとすると、個別の人と人の間で成立する「具体的な関係」というものを考えることができる。例で述べた

「C さんは、B さんの高校時代の友人である。」

という文をオブジェクト図で表現したのが左図である。

ここでは、「関係」というオブジェクトが中心となって B さんと C さんをつなげている。この「関係」は、B さん・ C さんの間においてのみ成立している特定の「関係」を表わしている。「友人」などの「関係の種類」という抽象レベルから見ると、一段階、具体的なものと言える。

 

具体例でチェック

例で挙げれられていた関係を、全て表現できるか確かめてみた。

080117-001-2

  • C さんは、B さんの高校時代の友人である。
  • D さんは、C さんの旦那である。
  • E さんは、C さんの妹で、Bさんにとっては中学時代の友人 (部活の後輩) である。ブログの内容がともておもしろい。
  • F さんは、B さんのブログによくコメントをしているが、B さんとの関係はわからない。
  • D さんは、もう一つ別のブログを別のハンドルネームではじめた。

 

ここで表現されていないのは次の点である。

  • D さんは、C さんの「旦那」であるか判別できない
    • →  「人」の属性に「性別」の項目を加える。
  • E さんは、C さんの姉か妹かわからない
    • → 「人」の属性に「年齢」の属性を加える。または、姉妹の分類を分け、「関係」に方向性を持ったサブクラスを作る。( ← 今、思いついたので、あまり検討してない ^^; )

 

とりあえず、要求に対して必要性の低いものは、置いておくことにする。

 

クラス図

ここまでをクラス図にしたのが以下のもの。

080121-001

「関係」の「時期の種類」に対する多重度が「多」なのは、ある関係が複数の時期に渡って継続することがあるためである。

 

続く... CCC