見出し画像

ピュイが語る!COTEN世界史データベース | 歴史データの整理方法 (2)

こんにちは!株式会社COTENの千咲(Twitter: @seekmyffy)です。
世界史データベース開発チームにヒアリングした内容をすべて忘れてしまった千咲。
そこに現れたのは、COTENの「あの鳥」だったーー!?

前回の記事はこちら↓

ちさき(以下、ち):前回は、Entity, Relation, Category, Propertyという4つの概念で整理していることを説明してくれたよね。
今日は、タグ付けという概念がその中でなぜ消えていったのか等、もっと詳しい話が聞きたい〜!

ピュイ:(以下、ピ)「OK!」


元々の構想

ピ:龍之介たちが元々考えていたのは、「歴史の年表のようなデータ(=Entity)に、タグを付与すればいのでは?」ということだった。 それこそハッシュタグのようなイメージで、
織田信長 #部下に殺された上司
といった感じにね。

ち:時間的情報をもった情報のまとまりであるEntityに、Entityとは別の概念であるタグをつけていこうとしていたってことだよね。

ピ:そうそう。ただ、歴史情報の整理が進むにつれ、タグでは表現が難しいいくつかのことが明らかになり始めたんだ。

タグの問題点①Entityごとの「観点」を表現しづらい

ピ:先ほどと同じ、織田信長の例で考えてみよう。 本能寺の変は、織田信長にとっては「#部下に殺された」出来事になる一方、明智光秀にとっては「#上司を殺した」出来事になる。
つまり、同じ出来事を、誰から見るかによって記述方法が変わってしまう。

「あー、視点の数だけ増えてしまうってことね。そうなると、豊臣秀吉にとってはどうだったんだ?とか、ほぼ無限にタグをつけないといけないことになるよね……」

ピ:そう。もちろん、頑張ればその方法で歴史情報を整理できないことはないんだけど、あまりにも情報量が多くなりすぎて現実的ではないのと、データが汚くなってしまう。

ち:世界史データベース開発チームが大切にしている、Simpleの思想からも外れてしまうよね。

前回も登場した、現行のデータ構造整理図。
Relationを使うと、「織田信長が明智光秀に本能寺で討たれる」という出来事が、織田信長の視点・明智光秀の視点双方から表現できる。

タグの問題点②時系列で変化する情報を記述しにくい

ピ:もう一つ。タグは、「地位」「役職」「結婚/離婚」「領土拡大/縮小」「政策」のような、時間の経過によって変化する情報を表現することが難しい。

ち:おーん……例えば、同じ一人の人に、#係長・#課長・#部長・#社長というハッシュタグを全部つけるのはややこしい、みたいなイメージかぁ?

ピ:そうだね、結局、時間的情報をもっているものは、シンプルにみなEntityとして扱おうという話になったんだよね。

ち:確かに。仮に役職のことだけ考えるにしても、xx.xx~xx.xxの期間に〇〇の役職だった、っていうタグを作るのは、世界史に出てくる人物の数が多すぎて無理ゲーっぽいよね。

CategoryとPropertyが生まれた経緯

ピ:さっきも言ったように、詳細な年表の情報群にタグをつけていくことは、可能といえば可能なんだ。 ただ、ハッシュタグの中にもう一つ情報を入れていく、みたいな感じになってしまう。

ち:中?どゆこと?

ピ:例えば、#戦争 のタグがついている歴史データを考えてみよう。戦争なら、情報として交戦戦力や動員人数を入れたいよね。
同じように、 #人物 のタグがついている歴史データなら、誕生した場所や年月などなど、 #戦争のタグがついているデータとはまた別の情報を入れ込みたい。
まとめると、そのタグ特有のデータというものが存在する。つまり……タグの種類によって、入れたいデータの種類が大体決まるということに開発チームが気付いたんだ。
そして、それならCategoryでPropertyを定義するやり方の方が良くない?という方向性に転換したんだよね。

ち:これって、頭の動かし方的にはどういうことだったの?つまり、CategoryとPropertyっていう概念は、タグが多くなりすぎるという課題から思いついた感じなの?

ピ:そうだね。CategoryとPropertyは、タグをもう少し細分化したもの、というイメージでいいと思う。
タグだと全てを包含してしまって整理しづらいんだけど、CategoryとPropertyという切り分け方をすると、どちらの概念も扱いやすい数量になる、というイメージ。

例:誕生日の記述方法
Entityが「誕生」というカテゴリーに分類されたとき、Propertyが「発生した日」「起こった場所」etcになる、という風に整理している。

すごいぞ!Relation

ピ:前回の記事で説明したように、Entity同士の関係性のことをRelationと呼んでいる。 家系図・技術ツリー・人物と人物の関係性・王朝と人物の関係性(王朝ができてから滅びるまでの世代交代とか)・哲学や思想の系譜などなど、データベース上では全て同じ表現方法で表せるんだ。

ち:おお、すごい……技術ツリーって何?

ピ:この技術があったからこの技術が生まれた、という情報を構造化したもの。技術の家系図みたいなもの、と言えるね。
(下で引用させてもらったツイート内の画像はコンピュータ言語の家系図だけど、見た目としてはこのようなイメージだよ。)

ピ:RelationもEntityと同じように、Propertyを持っている。
ある関係性について、「x年からy年まで続いた」とか、「関係が始まったきっかけ」とか……関係にまつわるデータも持てるようになったから、色々なものを表現できるようになったんだ。

今日のまとめ

ち:今まで謎に包まれていた世界史データベースのことが少しでも知れて嬉しいな〜。

ピ:ピュイもずっと、これまで見てきたことを話したかったから嬉しいや。

ち:サラッと書いてるけどさ、こういう一つ一つのことが決まるまでにめちゃくちゃ議論しないといけなくて、すごく時間がかかるよね。
一瞬だけ、ShangYang(データルール決定会議)に参加していた時期があったけど、高度すぎて何も発言できず、参加をやめたことを思い出したわ(笑)

ピ:そうなんだよねー。なぜ時間がかかっているか、みたいなことも、議論内容の面白さとともにどんどん伝えて行けたらいいよね。


ここまでお読みいただきありがとうございました。
引き続きよろしくお願いいたします!

COTEN CREWに参加しませんか?
「個人CREW」として、COTENの活動を応援してくれる人を募集しています!ご参加はこちらから
・限定エピソードの配信
・COTEN RADIOをいち早く聞けるアーリーアクセス

「法人CREW」になって、企業のあり方を一緒に探求しませんか?ご参加はこちらから
・法人CREW限定のSlackコミュニティ
・COTENメンバーとの対談
・限定勉強会の開催

🌱 皆様へのお願い 🌱
現在、オウンドメディア試運転中です。
本格ローンチに向けて、ぜひ、皆様からの率直なフィードバックをいただければ幸いです。 ご意見・ご感想は
①「Twitterにてハッシュタグ #cotenmedia をつけてツイート」
https://coten.channel.io にチャットを送る
どちらかの方法でお願いいたします!