第２3回公開シンポジウム 「人文科学とデータベース」 発表論文集 ２０１7

上智大学「日本の人名データベース」の構築について
Constructing the Sophia University “Japanese Biographical Database”
ボルン 礼於Leo Born
ハイデルベルグ大学 計算言語学部, Im Neuenheimer Feld 325, ハイデルベルグ, ドイツ
Heidelberg University, Department of Computational Linguistics, Im Neuenheimer Feld 325,
Heidelberg, Germany

あらまし： 上智大学の「日本の人名データベース」は、日本の歴代人物の伝記と、その個人を超える人間関係のネットワーク情報の提供を目的として作成された。本データベース構築は、頼春水（1746〜1816）の研究から始まり、現在は人物約 2,200 人、人物間のイベント約 7,000 件を年月日・身分・出典などで検索し閲覧することができる。ハーバード大学の China Biographical Database の構築をモデルにして、本データベースの改善の上、データベースをアクセスするウェブアプリケーションの開発をすすめている。将来的に人物のデータを蓄積するとともに、各人物のもつ姻戚・交友関係を詳細にモデル化することで、通史的検討に止まらない社会変遷の模様を追っていきたい。
本報告では、本データベース構築の概要と、様々なオープンソースツールを用いたウェブアプリケーションの作成及びネットワーク可視化方法、今後の課題について述べる。
Summary： The Sophia University “Japanese Biographical Database” (JBDB) was constructed with the purpose ofproviding bibliographical information on Japanese historical figures and their personal, social, and political networks.
Starting with research on Rai Shunsui (1746-1816), the database currently encompasses entries on ca. 2,200 individuals
and ca. 7,000 events pertaining to these individuals and their interactions, allowing to search and visualize these entries
by date, social status, sources, and other filters. Building upon the architecture of the Harvard University China
Biographical Database, we are currently refining our own database, while also developing a new web application toaccess the database. With the addition of further biographical data, we aim to study patterns of societal changes thatemerge out of familial and social relations among people. This paper focuses on the database design, the developmentof the web application with particular emphasis on the visualization component, and future directions for the project.
キーワード： データベース, ネットワーク研究, 集団履歴調査, 可視化
Keywords： database, network studies, prosopography, visualization

１．はじめにタベースは、これまで集団履歴調査を含む分析の現在、本研究グループは近世日本の人物につい手法があまり適用されていない近世日本という研ての伝記や、関係を取り扱うデータベースを構築究対象にしている。これにより、近世日本の研究にし、あわせてデータベース上で動作される情報検ネットワーク分析が導入される契機になるのでは索と可視化用のウェブアプリケーションを作成中ないかと考えている。

である。本研究グループでは社会の構成要素とし本プロジェクトの第一歩は、儒学者頼春水（広て「集団」に着目し、その実態をとらえるため、集島藩儒）を取り巻くネットワークに着目すること

団履歴調査（プロソポグラフィー）やネットワークである。具体的には、ネットワーク分析や集団履歴分析（Social Network Analysis）の手法を検討し調査の手法を用いた分析を行うため、頼春水の日ている。歴史学における先行研究では、主に欧州史記や書簡など、史料上で確認できる人名のデータ[1]や中国史[2]に焦点が置かれているが、本デーベースを作成する。本プロジェクトは、個人の思想

51

トップ階層

テーブル数

件数

人物

52,209

文通

51,918

集会

44,982

アクティビティ

36,736場所

85,699127

文献

表 1. データ移動以前のデータ数

的評伝の形成のみならず、近世の人物の交流の様図 1. トップページ

態をネットワーク分析の手法を用いて解明することで、伝記的研究からだけでは見えてこない同時「中国伝記データベース」）[4]をモデルにして、代の学者交流および知の体系の蓄積像を明らかに本データベース改善をすすめている。2016 年後期

しようとするものである。にハーバード大学から CBDB のデータベーステンプ

そのため、過去 5 年にわたって人物数約 2,200 人、レートを頂き、それをもとに今までのデータを新しい構

人物間のイベント数約 7,000 件がデータベースに入力築にマッピングし、データ移動を行なっている。具体的された。このデータベースをもとに、ある人物が行動には、データ移動以前の 26 テーブルのデータを、する時代的・場所的背景、またその人物が社会的にCBDB のテンプレートに基づいた 90 テーブルに移はたす役割を分析することが可能である。

す作業である。

本報告では、上智大学の「日本の人名データベー今まで表現の面で限界があった点も細かく区ス」の構築やウェブアプリケーション、およびネッ別をできるようになり、特に家族関係と仕事に関トワーク可視化ツールの概要について述べてみたするテーブルが最も詳細である。その他にも、今まい。

でアクティビティで保存された住所変更や、身分変更も専用テーブルに記入できるようになる。今２．データベース構築

までモデル化されていなかった物事の購入・交換・

本プロジェクトは日本の歴代人物の伝記と、個人を獲得、又は執筆作品についての情報も、新データベ超える人間関係のネットワークに関する情報を提供すース構築で適切にモデル化されている。

ることを目的としているため、データの管理システムと更に、「イベント」というものも、個人のイベして PostgreSQL[3]の関係データベースを用いた。デントと数人が関係するイベントに適当にモデル化

ータ入力は 27 件の参考文献に基づき手動で行っていされている。それによって、各データカテゴリーにるが、デジタル化された文献を取得できる場合も考慮応じた属性を定義することができ、クエリと可視し、自動的な情報抽出方法も検討中である。

化に関する表現力が拡張される。

始めは、6 つのデータ内容で分類されたテーブル

データ移動と同時期に、データベースにアクセス階層を中心に、合計 26 データベーステーブルを作成するウェブアプリケーションをモダン化する必要性に応し、5 年間の期間でそこにデータが入力されてきた。そじて、新ウェブアプリケーション開発を開始し、2017 年の 6 つのトップ階層の統計を表１で示す。

秋に「日本の人名データベース」（JBDB）として公開ししかし、データ記入の作業によって、特に件数た[5]。以下でそのウェブアプリケーションについて述が多いアクティビティという階層に問題があるこべてみたい。とが明らかになった。アクティビティというのは

３．ウェブアプリケーション

個人の家族、仕事、あるいは趣味に関わる情報をまとめて集めたテーブルである。そのためデータ属データベースはインターネット上で公開する性や必然的なキーが大幅に異なってしまっている。

ものであるため、Node.jsで動作するJavaScriptのこの問題を解消するために、データベース構築をウェブアプリケーションを実装している。オープ改善し、データ移動を重点化することが決定されンソースツールを利用し、バックエンドはた。

Express.jsに基づくLoopBack[6]というフレーム

東亜史学圏でパイオニア的な役割を持つ、ハーワーク、フロントエンドはAngularJS 1.X[7]で実行

バード大学の China Biographical Database（CBDB、52されている。

図２. 人物のリスト

図３. 人物の詳細ページ

LoopBackはオブジェクト関係マッピング（ORM）ある。現在、プロジェクトメンバーのみにアカウンの導入と、REST APIの作成を容易にするため、デートがあり、そのメンバーには特別なアドミン権限タベース用とサーバー用のクエリデザインを統一が与えられている。なお、大学の授業でも活用してさせている。AngularJSではプラグインを取り込み、いくために（５「おわりに」参照）、学生用の制限様々な機能を提供することができる。UI開発に主付きのアカウントも準備中である。

として利用しているプラグインはAngularJS制御

画面のヘッダーにはウェブアプリケーション用BootstrapのUI Bootstrap[8]である。多様な端末のロゴと題名以外に、アプリケーション全画面にに対応させるため、レスポンシブデザインやWebフ共通のナビゲーションメニュー（右側）を配し、ロォントを可能にするフレームワークを導入するこ

グインユーザー専用のメニュー（左側）をクリックとが重要である。

でドロワーとして提供できるようにしている。

ウェブアプリケーションはトップページ（図１）

各データリストについては属性に対する簡易にアクセスするとデータベースUIへのリンクと、検索機能が用意され、リスト表示の対象を絞り込スクロールダウンすると、研究グループの簡単なむことができる。例えば人物データは人名、または紹介が表示される。アプリケーションUIは２ヶ国生まれの身分で検索することが可能である。検索

語（日本語と英語）であるため、スイッチ（トップ結果を保存する簡易機能もあるが、現在.txtフォページでは右上に配置）をクリックすることでUIーマットに限られている。(2)

言語を変更することができる。既定言語は日本語表示されたリストの項目をクリックすると閲であるが、変更の場合、他の設定と一緒に言語の設覧ページに飛ぶ形態となっている（図３）。人物の定はクッキーに保存される。

場合は、表示される情報は三つの画面に分けてあり、既定では基本情報が表示される。データリスト

データベースUIは既定では人物リストを表示し（図２ ）、メニューバーでは人物、イベント（現に記載されている情報以外に、人物の画像、他名の在、文通と集会を含む）、出典のリストを選択できリスト（通称や諱）、データ入力に参考された文献る。イベントと出典も、以下で述べる人物の表示とのリスト、そしてコメントボックスが表示されて同様、基本情報が記載されているリスト表示と、詳いる。基本情報の画面から関連するイベント（その細ページに分かれている。

人物が関わっているイベントのリスト）、そして履(1)

人物リストで示されている情報は漢字とロー

歴と家族関係に関わる情報が記載されている画面

マ字の書き方での名前、出身地（藩・国・郡・村）、に飛ぶ仕組みであるが、後者のデータはまだ移動

生まれの身分（武士と非士の身分を合わせて18の中であるため、非公開である。編集作業も図４に似選択肢）、生没年、データの更新日時、そしてログた画面で行われ、多くの属性（身分や出身地）はドインユーザーのみが選択できるアクションである。

ロップダウンリストを利用し、入力する。

生没年はUI言語の設定により、和暦又は西暦でのUI の目標はスムーズな UX を提供することであ表示である。生没年をマウスでホバーすると相互るため、多数のサードパーティーライブラリーをの紀年法が表示される。

加えたコードデザインを用意した。以上述べた通り、中心は Bootstrap だが、それ以外に導入されてデータの閲覧にはログインすることは不要だ

いるプラグインは表２で示す。

が、データ編集にはユーザーアカウントが必要で53

プラグイン名機能

bootstrap-drawer [9]メニューオーバーレイ用

angular-translate [10]多言語 UI 用

angular-table [11]ソート機能付きテーブル用

AngularJS Dropdown
Multiselect [12]ドロップダウン用

ng-file-upload [13]ファイルアップロード用Lightbox2 [14]画像表示用

Angular File Saver[15]
Angular-xeditable[16]

検索結果保存用

図 4. ネットワーク可視化ツールのフロントページ

インライン編集用

Animate.css [17]一般 UI アニメーション用

AngularJS Slider [18]スライダーUI 用

４.1．可視化ツールの使い方
ネットワーク可視化ツールのネットワーク画面の説明に具体例として、頼春水の息子である頼表 2. 利用中のサードパーティープラグイン山陽（1780〜1832）のネットワーク可視化を取り上げてみたい（図５）。
可視化ツールはフロントページ（図４）にアク４．ネットワーク可視化

セスすると可視化設定画面が示される。その設定画面において、人物選択の手法とネットワークのデータベース構築の目的は、個人を超える情報表示に関する設定が行われる。の上で、集団ネットワークを明らかにすることである。そのため、様々なネットワーク的アプローチ

人物選択には現在以下の三つの手法がある。選の調査手法を研究ツールとして提供し、インタラ択された手法によって、ネットワークは異なる人クティブなネットワークを可視化させる必要があ物に基づいて可視化される。
一）「全員」を選択すると、データベース内のる。

全人物が考慮される。(3) この設定ではデータベー

本ウェブアプリケーションのコードデザイン

スの完全ネットワークが作成される。の特徴は、基盤となるデータベースレイヤー上で行われる、モジュール化された多様コンポーネン

二）「名前で選択」を選択すると、人物検索窓トの総合化にある。ネットワーク可視化は、モジュと人物リストが示される。そのままリストから人ール化されたコンポーネントの一例として挙げら物を選ぶこと、又は検索にて人物リストを絞り込れるが、地理情報システム（GIS）等もそのようなむことで、考慮される人物が絞り込まれる。この設コンポーネントとして考えられる。

定では、選択された人物から始まり、その人物との本ウェブアプリケーションにおける、ネットワ関係性を持つ他の人物がデータベースからクエリーク可視化ツールのコンポーネントは、オープンされる。ネットワーク可視化はクエリ結果と元々ソースである vis.js[19]という可視化ライブラリ選択された人物のセットの和集合に基づく。図５

ーを用いて実装している。D3.js[20]等の他の可視はこの設定で「頼山陽」を検索して選んだことに基化プラグインよりも、vis.js は機能が少ないようづき作成された。に見えるが、ネットワークとタイムラインの可視三）「出典で選択」を選択すると、出典のドロ化を中心としているため、本プロジェクトには最ップダウンが表示される。既定設定としては、選択適である。

された出典に伝記情報が書かれてある人物から始

また、ネットワーク可視化において、vis.js はまり、その人物との関係性を有する他の人物がデ様々なカスタマイズのオプションを提供しており、ータベースからクエリされる。ネットワーク可視

多様な物理的シミュレーションアルゴリズムを導化はクエリ結果と選択された出典に現れる人物の入しており、特にダイナミックなネットワーク可セットの和集合に基づく。

視化用に便利である。データベース内のデータ量

現在、クエリで人物の間の関係性を定めるには、は今後拡大されるため、全ネットワーク共通のノイベント（文通と集会）のみが考慮される。しかし、ード数とエッジ数は確定数ではない。

今後はネットワークを家族関係や仕事関係の情報にも基づくようにする予定である。

54

図 5. 頼山陽のネットワーク可視化

人物の選択手法が決定された後、ネットワークのリセットボタンをクリックする。最後に、画面のでノードの付属グループをどの属性に基づいて強左上の検索メニューによって、ネットワークで表調表示するか選択できる。付属グループを示す属示されている人物を検索することができる。
以上で述べた基本設定以外の複数の追加設定

性は現在、性別と生まれの身分のみだが、データベ（図７）について、次で説明していきたい。

ース内のテーブル属性に任意に基づくため、他の属性も今後追加することができる。図５は性別のグループ付属にて作成された。(4)４.2．共通追加設定

可視化のレンダリングが終了した状態は、図５

この共通追加設定は、人物の選択手法に関わらで示している。画面の左下にはノード数とエッジず選択できるものである。図５は追加設定の「接合強数を示すオーバーレイがある。ネットワーク自体度を可視化」、「人物の重要性を可視化」、「タイはインタラクティブで、自由にノードを動かし、ズム・スライダーを追加」で作成された。

ームレベルや表示フレームも自由に変更すること最初の設定、「接合強度を可視化」では、ネッが可能である。

トワークで二人の人物の間の接合強度が可視化さひとつのノードを選択すると、繋がっているノれる。接合強度とは、ある二人の人物の間の接合数ードとそのエッジが強調される上に、選択された（現在、共通のイベント数）にて定められる。接合ノードの詳細情報が別のオーバーレイで表示され数が多い人物ペアの間のエッジは接合数が少ないる。オーバーレイは人物の基本情報と、どの他の人人物ペアの間のエッジより太くレンダリングされ物と繋がっているかをリストで示し、その関係人る。

物を一クリックで全員選択して、グループとして次の設定、「人物の重要性を可視化」では、ノ動かせる。さらに、密接人物のリストからは、他のードの大きさが人物の重要性（接合度）によって可人物との共通イベントを Bootstrap モーダルで表視化される。重要性とは、ある人物のネットワーク示し（図６）、画面フレームを他の人物の方に動かでの次数（エッジ数）で定められる。接合数が多いすことができる。人物オーバーレイやモーダルリ

人物は接合数が少ない人物より大きく示される。

ストから新しいタブで、直接データベースでのエこの設定が選択されない場合でも、可視化画面のントリーに飛ぶ形態となっている。ネットワーク

設定メニュー（歯車シンボルをクリックしてアクを変更状態から初期状態に戻すには、画面の左下セス）でスライダーを使い、ネットワークでの人物

55

図 6. ネットワークで選択した人物の詳細モーダル

図 7. ネットワーク可視化ツールの追加設定

４.3．出典限定追加設定を最低字数で強調表示することができる。この設定を選択せずに、次のタイム・スライダーの設定を以上で述べた共通の追加設定以外に、「出典で選択すると、次数スライダーとタイム・スライダー選択」の手法に限られる、二つの追加設定がある。の使用は選言的となる。

この設定では、出典の範囲を確定することによっ第３の共通追加設定、「タイム・スライダーをて、ネットワークを段階で出典中心的に作成する追加」では、ネットワークでのエッジ（現在、イベことになるので、この追加設定は選言的である。

ント）を年でフィルターできるスライダーが可視

一段目は、出典限定追加設定が選択されていな化画面に追加される。このタイム・スライダーを使い、デフォルトの状態である。この段階では、これうことで、ネットワークの構造を年ごとに分析すまで述べた通り、選択された出典に伝記情報が記ることができる（図８）。

される人物から始まり、その人物との関係性を有最後の共通追加設定、「グラフで未接合のノーする人物がクエリされ、クエリ結果と選択されたドを表示」では、エッジのないノードも表示される。

出典に現れる人物のセットの和集合に基づき、ネ

この設定により、データベース内で他の人物と関ットワークがレンダリングされる。

係ない人物も考慮させることができる。人物全員

次の段階は、「接合を選択された出典に基づく」とこの設定を選択すると、データベース内の全人の第１の選択肢である。この設定では、ネットワー物がネットワークでレンダリングされる。

クのエッジ（接合）に基づくデータが選択された出共通設定とは言え、追加設定の使用やコンビネ典に限られる。選択された出典に基づくイベントーションには制限がある。選択手法ごとに述べてに参加する人物のセットと、既定設定と同様に、選みたい。「全員」の選択手法では、タイム・スライ

択された出典に伝記情報が載る人物のセットの和ダーが低速であるため、利用不可である。ノード数、集合に基づき、ネットワークが表される。このよう又データベース内のイベント年の範囲において、な仕組みでは、伝記情報が記されてある人物だけ計算が複雑になるためである。

ではなく、イベントのコンテキストのみで選択された出典で現れる人物も考慮される。

「名前で選択」の手法では、未接合のノードを表示することが不可能である。この設定のクエリ

最後の段階は、「可視化の全データを選択され構築では、選択された人物と必ず関係を持つ他のた出典に基づく」の第２の選択肢で、出典において人物のみが考慮されるため、未接合のノードは発一番狭い範囲でネットワークを作成する設定であ生しない。

る。この設定では、ネットワーク全体に基づくデー

最後に、「出典で選択」の手法では、タイム・タが、選択された出典に限られる。選択された出典スライダーと未接合ノードの追加設定は選言的でに伝記情報が記されてある人物のみが考慮され、ある。タイム・スライダーを表示することで、ネッ更にある二人の人物の間の接合も選択された出典トワークをイベントの日時で閲覧するため、イベに限られて定められる。この設定では、選択されたントなしの未接合ノードは無用となる。また、未接出典のみのデータがネットワークのインプットと合ノードを示す設定では、日時でフィルターするなるため、出典自体がもたらすネットワークが可ことが困難である。

視化されることになる。

56

注釈
(1)

↓

図表ではログインされた状態が表示されるため、画像は編集されている。

(2)

CSV と XML フォーマットでも保存できることを予定している。

(3)↓

この点は可視化の追加設定にて制限される場合もある（項 4.2 参照）。計算の複雑性とパフォーマンスのため、既定では未接合のノード（データベース内で他の人物と関係ない人物）が表示されないが、追加設定にて未接合のノードも考慮させることができる。後者の方を選択する場合のみにデータベース内の全人物がネットワークで考慮される。

(4)

グループ数は属性にて異なり、確定ではない
ため、強調用の色の選択はランダム化されている。

図 8. 図 5 でタイム・スライダーを使用した結果

参考文献
[1]

５．おわりにPadgett, J. F. and Ansell, C. K.. Robust Action andthe Rise of the Medici, 1400-1434. The American

本プロジェクトの一部をなす「近世日本の知的Journal of Sociology, 1993, vol. 98, no. 6, p. 1259-

ネットワークの研究」では、頼春水のグループを含1319.

め、様々な集団に焦点を当てる。そして、ネットワ[2]ークにかかわった人々の書きものを幅広く取り上

Berman, M. L.. Boundaries or Networks in
Historical GIS: Concepts of Measuring Space andげ、総合的な分析を加えていく。人物が藩政や国政

Administrative Geography in Chinese History.にかかわっている場合、各藩内また藩の枠を超えHistorical Geography, 2005, vol. 33, p. 118-133.て広がる思想的ネットワークを研究することは、[3]

近世日本で政治改革がどのように論じられ、実施されたかを理解する重要な手掛かりとなるだろう。
ネットワーク的アプローチは、近世日本の政治がPostgreSQL. https://www.postgresql.org, ( 参 照2018-01-30).

[4]

Harvard University, Academia Sinica, and Peking
University.

幕府、諸藩、またそれ以下のレベルで、具体的にどChina

Biographical

Database.

https://projects.iq.harvard.edu/cbdb, ( 参照 2018-

う動いていたのかを理解する上でも有用な見方を01-30).

提供してくれる。

[5]

データベースの構築の上、ウェブアプリケーシ

SophiaUniversity.

Japanese

Biographical

Database. https://network-studies.org, ( 参 照ョン及びネットワーク可視化ツールの運用によっ2018-01-30).て、この目標に近付くことができる。ウェブアプリ
ケーションのデザインの利点としてモジュール化されたコンポーネントの導入が挙げられる。今後、ネットワーク可視化用のコンポーネント以外にも、空間的なデータの分析に用いられる地理情報シス[6]

LoopBack. https://loopback.io, (参照 2018-01-30).

[7]AngularJS. https://angularjs.org, (参照 2018-0130).

[8]

UI

Bootstrap.

https://angular-ui.github.io/bootstrap/, (参照 2018-01-30).

テム(GIS)をコンポーネントとして取り入れる見[9]

込みである。

bootstrap-drawer.
https://github.com/clineamb/bootstrap-drawer, (参さらに、本研究プロジェクトでは、長期的には照 2018-01-30).

同様の研究手法を用いて、近世日本以外にも異な[10] angular-translate. https://angular-translate.github.io,る時代や地域を対象とした研究を進めていく予定(参照 2018-01-30).

である。このような時空間情報及び文化横断的ア[11] angular-table.

プローチに基づくツールの提供は研究だけではな

https://github.com/samu/angular-table, (参照 2018-01-30).

く、教育にも役立つだろう。

57

[12] AngularJS

Dropdown

Multiselect.

http://dotansimha.github.io/angularjs-dropdownmultiselect/docs/#/main, (参照 2018-01-30).
[13] ng-file-upload.

https://github.com/danialfarid/ng-

file-upload, (参照 2018-01-30).
[14] Lightbox2.

http://lokeshdhakar.com/projects/lightbox2, ( 参 照2018-01-30).
[15] Angular File Saver. http://alferov.github.io/angular-file-saver/, (参照 2018-01-30).
[16] Angular-xeditable.

https://vitalets.github.io/angular-xeditable/#, (参照2018-01-30).
[17] Animate.css.

https://daneden.github.io/animate.css/,( 参 照2018-01-30).
[18] AngularJSSlider.

http://angular-slider.github.io/angularjs-slider/, ( 参 照 2018-0130).
[19] Almende B.V. vis.js. http://visjs.org, (参照 2018-01-30).
[20] D3.js. https://d3js.org, (参照 2018-01-30).

58