ピュイが語る!COTEN世界史データベース | 歴史データの整理方法 (1)
こんにちは!株式会社COTENの千咲(Twitter: @seekmyffy)です。
世界史データベース開発チームにヒアリングした内容をすべて忘れてしまった千咲。
そこに現れたのは、COTENの「あの鳥」だったーー!?
ちさき(以下、ち):世界史データベース事業のなかで4つのプロジェクトが動いてることはわかったけど・・・そもそもデータベースってなに?私的には、人里離れた場所に施設があって、そこで稼働してる超でっかいスーパーコンピュータ、みたいなのがデータベースのイメージだったわ。
ピュイ(以下、ピ ):それは多分サーバルームとか、データセンターのイメージじゃない? じゃあ、今日はそもそもデータベースとは何なのかから説明していくね!
そもそもデータベースとは?
ピ:データベースっていうのは、決まった形式で情報を集めて整理したもののこと。通常はコンピューター上に電子データとして格納され、システムによって管理されているんだ。
ち:ほうほう。じゃあ、少なくともコンピュータそれ自体のことでは無いんだね(笑)
ピ:そうそう。 COTENでは、リレーショナルデータベースという種類のデータベースを開発しているよ。 リレーショナル・データベースの各項目は、列と行を持つテーブル(表)の集合として編成されている。
ち:タテの列とヨコの行を持つテーブル・・・じゃあ、スプレッドシートもデータベースってこと?
ピ:ある程度まではスプレッドシートもデータベースと同じ機能を果たせるね。実際、現状COTENのデータ入力は、Googleスプレッドシートで行っている。
でも、極めて複雑で大規模なデータの構築集合を複数人で安全に進めるためには、データベースが必要になってくる・・・そんなイメージかな。
ち:データベースへの解像度、高まった。じゃあいよいよ、COTENが今歴史情報をデータベース上でどのように整理しようとしているのか、教えてくださーい!
ピ:OK!でも結構難しいから、分からなかったら質問してね。
歴史概念をデータベース上で整理するための4要素
ピ:まず先に、今どうやって歴史データを整理しようとしているかを図で見せてしまうよ。
ち:わ、いかにもって感じでテンション上がる……!
ピ:歴史データの整理方法なんだけど、大きく分けて4つの構成要素があるよ。1つ1つ説明していくね。
あっ、以下の言葉は全て株式会社COTENで定義し直して使っている用語だから、世間一般的なデータベース開発の場で使われる意味とはまた違う時がある。留意してね。
ち:あい!
Entity(エンティティ)
ピ:時間の概念を持つ歴史的事実のまとまり、情報のこと。
上の図で言うと、青い四角で囲まれたもの。 「人物」「出来事」「エピソード」「王朝」「ロケーション」「著作物」などがEntityだね。
例えば、ナポレオン関連のEntity。「ナポレオン」は人物、「ナポレオンがフランス第一帝政の皇帝に即位」は出来事。それぞれ別Entityとして存在すると定義しているよ。
ち:(いきなりすげえの来たな・・・)えーとまず、Entityはテーブル上における一行のデータである、という理解であってる?
ピ:そうだね、合ってるよ。
ち:それで、人も、エピソードも、著作物も?全部いっしょの1単位なの???何というか……直感に反していて、どシンプルですごい(笑)
ピ:うん、時間の概念を持つものは何でもEntity。超シンプルだよね。
ち:あとさ、ロケーションって時間の概念を持つ歴史的事実のまとまりって言えるの?つまり・・・時代によって呼び名は変わるかもだけど、日本列島は昔からずーっと存在するよね?
ピ:うん、ロケーションに関しては議論中。人は寿命があるし、出来事は期間が決まってるよね。でもちさきが言うように、土地は物理的にはずっと存在する。一方で所有=領土の概念はあるよね。
旧国名や過去の地名などはEntityとして扱うことは決まっているんだけど、過去の国境線や領土の範囲など、歴史上の地理情報はあいまいな部分も多いので、どのようにデータベースに格納するかについては、今もまだまだ議論中なんだ。
ち:なるほど、今後も議論が必要な段階、って感じなのか。
Relation(リレーション)
ピ:Entity同士の関係性のことをRelationと呼んでる。上図で言うと黄色い四角で表されているもの。 人物と出来事の関係性・出来事とロケーションの関係性などなど、Category(後述)の数だけたくさん種類がある。 例えば、「織田信長」と「本能寺の変」は「人物と出来事」という種類のRelationを持っている、と表現できるね。
ち:Entity同士をつなぐ矢印みたいなものって考えればいいのかな。
Category(カテゴリー)
ピ:それぞれのEntityを意味や概念に応じてグループ分けするのがCategoryだね。Categoryが、EntityのPropertyを定義する。
ち:……?すでにややこしくて分からんのだけどw
ピ:今あるCategoryの種類は、人物・戦争・発明・政治・王朝・エピソード・死・誕生・著作物・統治者・建築物・文化・反乱・ライフイベント・・・ロケーションは先ほど言ったように議論中。
ち:うーん、とりあえず次行こ次!全部出揃ってから整理しよう。
Property(プロパティ)
ピ:はい、これが旧「タグ」の概念を包含するPropertyだね。 EntityのCategoryが何かによって、格納したいデータって変わるよね? たとえば「人物」なら「氏名」や「生年月日」「生まれた場所」などのデータを持たせたい、というように。 この、テーブルにおける列のことをPropertyと呼んでいるよ。
ち:ふんふん。Entityが行、Propertyが列ね!ちょっとだけ整理されてきたぞ。
ピ:そうそう。Propertyは「ずっとあるもの、時間の経過を通して変わらないもの」というイメージを持っておくと良いと思う。
例えば、もしもEntityのCategoryが「人物」だった場合、「誕生時の社会的階級」「生涯での最高位」「死因」なんかは、時間の経過を通しても変わらないよね?そういう項目がPropertyになる。
今日のまとめ
ち:今までの話をまとめると・・・〇〇というEntityは、□□というCategoryに分類されるので、△△ / ■■ etc.といったPropertyを持つ、ということだね。
ピ:まさに!
ち:まだまだ分かんないことだらけだ〜。ていうか、あんなにずっとタグ付けって言ってたのに、なんでタグの概念無くなったの?
ピ:そうだよね。次回は、そのあたりについて説明するね!
ここまでお読みいただきありがとうございました。
引き続きよろしくお願いいたします!
COTEN CREWに参加しませんか?
■ 「個人CREW」として、COTENの活動を応援してくれる人を募集しています!ご参加はこちらから
・限定エピソードの配信
・COTEN RADIOをいち早く聞けるアーリーアクセス
■ 「法人CREW」になって、企業のあり方を一緒に探求しませんか?ご参加はこちらから
・法人CREW限定のSlackコミュニティ
・COTENメンバーとの対談
・限定勉強会の開催
🌱 皆様へのお願い 🌱
現在、オウンドメディア試運転中です。
本格ローンチに向けて、ぜひ、皆様からの率直なフィードバックをいただければ幸いです。 ご意見・ご感想は
①「Twitterにてハッシュタグ #cotenmedia をつけてツイート」
②https://coten.channel.io にチャットを送る
どちらかの方法でお願いいたします!