5
情報処理
5.1
データベース化 小野 芳彦
5.2
データベース利用法
小野 芳彦
5.3
画像処理 川口 洋
情報処理班の役割は、1) データベース化:歴史的データを計算機で利用可能にすること、2)所在リスト:資料の所在などをとりまとめておくこと、3)公表:成果を公表するための準備をすること、の3点である。
世帯登録タイプ(Xavier・macro・Shuma・Ryoma)および 家譜タイプ(Kansei)のデータをデータベース化する。
世帯登録タイプのデータとは、個人の記録が年毎にあつめられているものをいい、日本では宗門改帳を対象とする。本プロジェクトの分析の中心としているデータである。世帯登録タイプの下位タイプ前3者は、長期間の登録が利用可能である史料を対象としたもので、longitudinalデータである。世帯登録タイプの下位タイプRyomaは、単年あるいは数年しか残存していない史料を対象に、広域をカバーするように作成するもので、cross-sectionalデータである。いずれも、徳川時代のおもに農民階層の動態・静態を分析することができるようになる。
家譜タイプのデータとは、個人の一生の記録がある時点でまとめられ、家系として編纂されたものをいい、本プロジェクトでは寛政重修諸家譜を対象とする。徳川時代の大名家と直参の家臣だけという限定があるものの、武士階層の静態を分析することができるようになる。ただし、本プロジェクトで入力し終えたのは全体の20%に過ぎないが、それだけでも武士階層の人口動態や家族構造をある程度知ることが可能になった。
データの入力方式の違いにより、Xavier・macro・Shumaの下位タイプがある。
データベース化はa)収集:史料のマイクロフィルムへの複写と一部の焼き付け、b) BDS化:資料のBDSシートへの転記、c) 入力:コンピューターへの入力、d) クリーニング:入力あやまりなどのチェック、e) 登録:データベースシステムのテーブルに登録して実際の統計計算に役立つ形態にテーブルを加工、の5つの工程からなる。統計のためのデータは、データベーステーブルからデータベースプログラムにより取り出され、統計処理プログラムにより分析検討が行われる。
a) 収集:宗門改帳・宗門人別帳などの資料のマイクロフィルムは、速水代表の継続的収集活動によりすでに収集されていたものに加え、新たに所蔵を確認した博物館などに依頼して作成したり、西日本研究班などが実際に所蔵地にでかけて作成したりした。収集史料のマイクロフィルム化・冊子化などに関する情報の一覧を付録に収録した。
b)BDS化:古文書読解力を有するものより宗門帳タイプのデータをBDSシートへ転記する作業を行った。BDSシートのフォーマットは、速水代表の以前のプロジェクトでつかわれたものを継承し、macroタイプでの入力に使った。後期では、BDSシートのフォーマットを改定し、Shumaタイプでの入力に使用した。フォーマット改定の主な点は、入力項目の統一である。詳細は省略する。
c) 入力:前期では、既存のBDSシートを入力するためのプログラムとして、マイクロソフト・エクセルのマクロ機能を使った宗門帳マクロを開発し、データ入力オペレータにBDSシートをExcelのワークシート(VBDS)に転記する作業を委託した。後期では、処理スピードを高め、さらにエラーチェックの機能を強化した専用プログラム(Shumaプログラム)を開発し、それによりデータ入力オペレータの転記作業を行った。
d) クリーニング:前期は、速水代表の以前のプロジェクトでのコンピュータデータを、形式などの変換を施して、データベースのテーブルにする作業からはじめた。このデータを前プロジェクト名からXavierタイプと呼ぶ。Xavierタイプの元データは、すべて数値コード化されたものであるため、コードの解釈などのプログラムを開発し、計算機による一貫性のチェックを行った。後期は、前期で行ったmacroタイプおよびShumaタイプの入力のクリーニングを行った。入力オペレータがBDSから転記するに際して、両者とも(後者は特に)、できるだけ判断に迷わなくてもすむように設計しているが、単純な操作ミスはどうしても混入してしまう。入力作業後の目視によるチェックも行っているが、入力の操作ミスの検出を入力システム自身が自動化することを(試行錯誤であるが)一部開発した。また、次の工程である登録作業に付随して、データベースのための一貫性チェック機能を利用して、論理的な入力誤りを検出する作業も行った。これらは、入力作業員にフィードバックされ、訂正作業が行われる。
e) 登録:BDSに記載されたデータを(ほぼ)そのままワークシートに入力したものをソースにして、人口学・家族史研究に役立つデータベースのテーブルに再編成する工程である。概要を次節に示す。
テーブルの再編成は入力タイプ別に次のようにおこなった。
xavierタイプ:旧プロジェクトの素データからテーブルデータを作成するプログラムによる自動化
macroタイプ:シートからのエキスポートマクロによるインポートデータ抽出の自動化
shumaタイプ:入力専用システムの作業ファイルからのインポートデータ抽出の自動化
それぞれのテーブルの定義コマンドとテーブルへのインポートコマンドを、データベースシステムで走らせる作業がまず必要である。
次に、データ操作言語であるSQLを使って、親子・配偶者などの家族関係を利用しやすい形に編成する。詳細は次節に記す。
宗門帳データベースから統計のデータを容易に(自在に)取り出せるようにするために、宗門帳データベースはリレーショナルデータベースの形態とする。データベースは基本的に以下の7種類のテーブルに再編成する。
(ア)村の時間不変の情報
(イ)村の時間可変の情報
(ウ)戸の時間不変の情報
(エ)戸の時間可変の情報
(オ)個人の時間不変の情報
(カ)個人の時間可変の情報
(キ)個人に起きる生誕・死亡・結婚・移動などのイベント情報
なお、「村」とは宗門改めの単位を意味し、郡山のように上町と下町に分割されて宗門改めが実施されている場合はそれぞれを単位としている。また、「戸」とは宗門改帳などで記載の一区切りとして扱われている単位で世帯を意味すると考えられているものである。
この中で、(カ)が年単位のアトリスク(at risk)を直接表すものとなっており、分析の基礎となるデータである。たとえば、人口動態は(カ)のうち“現住であるもの”の集計で得られ、死亡率は(カ)を分母として(キ)の“死亡イベント”を分母とすることで得られる。
入力タイプや宗門帳の記載内容によって、データベースのテーブルの項目に多少の異同はあるが、基本的にテーブルの構造などは統一されている。
作成済および作成中の宗門帳データベースは以下の表のとおりである。
表1 時系列データベース
地域 |
国 |
郡 |
村 |
入力 プログラム |
データベース名 |
作成経過 |
東北地方 |
出羽 |
村山 |
山口 |
Shuma |
MICHINOKU |
作成中 |
|
出羽 |
村山 |
山家 |
Shuma |
MICHINOKU |
作成中 |
|
陸奥 |
安積 |
郡山下町 |
Shuma |
GAMO0000 |
作成中 |
|
陸奥 |
安積 |
郡山上町 |
なし |
XAVIER01 |
作成済 |
|
陸奥 |
安積 |
下守屋 |
なし |
XAVIER01 |
作成済 |
|
陸奥 |
安積 |
笹原 |
なし |
XAVIER01 |
作成中 |
|
陸奥 |
安積 |
日出山 |
なし |
XAVIER01 |
作成中 |
|
陸奥 |
安達 |
仁井田 |
なし |
XAVIER01 |
作成済 |
|
陸奥 |
会津 |
石伏 |
なし |
XAVIER01 |
作成中 |
|
陸奥 |
会津 |
金井沢 |
なし |
XAVIER01 |
作成中 |
|
陸奥 |
会津 |
桑原 |
なし |
XAVIER01 |
作成中 |
|
陸奥 |
田村 |
上行合 |
Shuma |
MICHINOKU |
作成中 |
|
陸奥 |
安積 |
駒屋 |
Shuma |
MICHINOKU |
作成中 |
関東地方 |
常陸 |
茨城 |
有賀 |
Shuma |
KANTO |
作成中 |
中部地方 |
美濃 |
安八 |
西条 |
VBDS/Shuma |
NOBI0000、MINO |
作成中 |
|
美濃 |
安八 |
小泉 |
VBDS |
MINOVBDS |
作成中 |
|
美濃 |
安八 |
笠木 |
VBDS |
MINOVBDS |
作成中 |
|
美濃 |
安八 |
中須 |
Shuma |
MINO |
作成中 |
|
美濃 |
安八 |
楡又 |
Shuma |
MINO |
作成中 |
|
美濃 |
加茂 |
神土 |
VBDS |
MINOVBDS |
作成中 |
|
美濃 |
多芸 |
有尾新田 |
Shuma |
MINO |
作成中 |
|
美濃 |
多芸 |
根古地新田 |
Shuma |
MINO |
作成中 |
|
美濃 |
不破 |
山中 |
Shuma |
MINO |
作成中 |
|
美濃 |
不破 |
徳光 |
VBDS |
MINOVBDS |
作成中 |
近畿地方 |
山城 |
京都 |
筋違橋 |
Shuma |
KINKI |
作成中 |
九州地方 |
肥前 |
彼杵 |
野母 |
VBDS |
KYUSHU_V |
作成中 |
|
肥後 |
天草 |
高浜 |
Shuma |
KYUSHU |
作成中 |
地域(将来的には全国規模)の人口静態や家族構成を研究することができるように、単年の世帯登録を広域で採取しデータベース化する。
表2 RYOMAデータベース
国郡 |
史料名 |
お調べ年 |
総人口 |
総世帯数 |
村数 |
作成経過 |
常陸国真壁 |
五人組人別改帳,五人組人別帳,人別宗門帳,宗門人別帳,宗門人別改帳 |
1860-1869 |
3881 |
658 |
13 |
作成済 |
武蔵国多摩 |
武蔵国多摩郡戸籍 |
1871 |
13969 |
3534 |
34 |
作成済 |
飛騨国 |
飛騨国宗門人別帳 |
1871 |
11385 |
2052 |
55 |
作作成済 成済 |
越前国 |
越前国宗門人別御改帳 |
1857-1870 |
13128 |
2880 |
58 |
作成済 |
伊勢国久居 |
伊勢国宗門帳 |
1850-1855 |
10061 |
2644 |
24 |
作成済 作成済 |
紀伊国尾鷲 |
戸口帳 |
1870 |
863 |
209 |
4 |
作成中 作成中 |
備中国 |
切支丹宗門御改判形帳 |
1870 |
8895 |
1985 |
24 |
作成済 作成済 |
石見国 |
宗門人別改帳 |
1863,
1864 |
28846 |
6394 |
63 |
作成済 作成済 |
肥前国野母 |
宗旨御改絵踏帳 |
1871 |
3581 |
626 |
1 |
作成済 作成済 |
データベース化は宗門帳データベースと同様a)収集、b) 転記:資料シートへの転記、c) 入力、d) クリーニング、e) 登録、の5つの工程からなる。統計のためのデータは、データベーステーブルからデータベースプログラムにより取り出され、統計処理プログラムにより分析検討が行われる。
a) 収集:多摩戸籍などの資料のマイクロフィルムは、速水代表の継続的収集活動によりすでに収集されてる。そのほかに、地方史研究や自治体の地方史編纂などで出版されている宗門帳の翻刻、および、すでに得られている宗門帳の特定の1年を抜き出すなどで、できるだけ広範囲のデータを収集した。
b) 転記:古文書専門家ほかに、個人単位の世帯番号・名前・年齢・続き柄(および、移動履歴)をシートへ転記する作業を委託した。シートのフォーマットは、速水代表の以前のプロジェクトでつかわれたものを継承した。
c) 入力:シートをExcelのワークシートに入力する作業を入力業者に委託した。
d) クリーニング:速水代表の以前のプロジェクトでのコンピュータデータを、形式などの変換を施して、データベースのテーブルにする作業からはじめた。このデータを前プロジェクト名から継承してRyomaタイプと呼ぶ。次の工程である登録作業に付随して、データベースのための一貫性チェック機能を利用して、論理的な入力誤りを検出する作業を行った。これらはフィードバックされ訂正作業が行われた。
e) 登録と再編成:ワークシートに入力したものをソースにして、人口学・家族史研究に役立つデータベースのテーブルに再編成する工程である。多摩地区34ヵ村を対象にして、次項に述べる3種類の新しい分析法を開発し、そのためのテーブルを作成した。
Ryomaタイプのデータベースは、基本的に、宗門帳タイプのデータベーステーブルの(イ)・(エ)・(カ)の時間可変の情報から特定の1年の情報を抜き出してきたものに相当する。ただし、(キ)は史料によって記載されているものが異なるが、おおむね直近の(移動)イベントが記されたものである。宗門帳タイプのように時間可変・時間不変と分ける必要はなく、結果として「村」・「戸」・「個人」の情報の3種類となる。
・世帯構造
続柄は戸主との関係を記述するもので、世帯の構造を分析するため
のソースであり、世帯を単位とした分析に有用である。世帯員の続き柄の集合から、ハンメル・ラスレット分類を作成するプログラムが研究協力者侯楊方により開発され、それを利用して分析が可能になった(家族史班報告を参照のこと)。
・個人間の関係
さらに、家族を個人単位で分析することもまた重要であるが、続柄だけでは、個人が世帯に対してどういう位置をしめるかという分析しかできない。新しい方式として、続柄と記載順(正確には直前に記載されている個人の続柄)から親子関係を再現し、それを元に、同一世帯の個人間の関係を表すテーブルを作成するプログラムを開発した。これにより、老齢期にケアが可能などういう関係の家族と同居しているかなどの分析が可能になった。
・移動の照合
移動元での移動先の記録と移動先での移動元の記録を照合させることにより、広域の人口移動を追跡することができる。それぞれの移動記録が年月を経ているため、名前・年齢・移動年・出身世帯の世帯主名・移動理由などが多少誤差や変化を含んでいる。これらのゆるい照合を、プログラムと目視の共同作業で行うシステムを開発し、それにより、移動の履歴を再現することができた。また、この移動のテーブルから、地区全体を1村のように取り扱うことも可能になった。
データベース化を完了した多摩34ヵ村のほか、データベース化のための入力が完了したものが多数ある。また、1860年以降のデータがある宗門帳タイプのデータベースから、最終年付近のデータを移動することで、東北地方の5カ村と郡山上町・下町、濃尾地方の5カ村、長崎の野母村などを加えることができる。これらの内訳を、表2に記載した。
家譜に記された個人のデータは、編纂者の手により添削が加えられており、また、時代がさかのぼるほど記録があやふやになる傾向があり、情報量に多寡がある。たとえば、女性については、生年・没年・享年などが記載されていない、家を継がなかった男性については家を継いだ男性に比べて記録が少ないなど、人口学的には欠陥の多い記録といわざるをえない。しかし、没年と享年や家督継承・初御目見などの儀礼の発生年と当時の年齢から計算される生年がほとんど狂いがない、結婚・養子に関する記録が元と先でほとんど対応させることができる、などの史料の信憑性の高さから、武士階層の男子の人口学的指標や武士階層内での結婚養子の実態の解明などが期待できるデータである。
データベース化を検討するにあたって、人口学・家族史だけでなく日本史や民俗史でも利用できるように、名前・知行地石高・役職などの変遷もデータベース化することにしたが、これらを人口学的な分析に利用する方法も探ることができた。
データベース化は宗門帳データベースと同様a)収集、b) 転記、c) 入力、d) クリーニング、e) 登録、の5つの工程からなる。統計のためのデータは、データベーステーブルからデータベースプログラムにより取り出され、統計処理プログラムにより分析検討が行われる。プロジェクト終了の時点では、データベース化が登録の段階にいたったばかりであったため、統計処理プログラムによる分析はごくわずかである。
a) 収集:出版されている寛政重修書家譜の翻刻を利用した。
b)転記:日本史専攻の学生ほかに、個人単位の情報をシートへ転記する作業を委託した。シートのフォーマットは、当主となった男子、養子・役職などが当主に準ずる男子(A)、記載が簡略な男子(B)、情報の多い女子(A)、記載が簡略な女子(B)の4種類に集約した。
c)入力:シートをExcelのワークシートに入力する作業を入力業者に委託した。
d)クリーニング:翻刻本の活字字体を転記者が手書きするという工程のため、文字を入力業者がうまく判別できなかったため、漢字の誤りが数多く見られた。また、入力項目のカラムずれや数字の読み取りあやまりなど単純なエラーも散見された。さらに、転記の際に和年号を適切に補っていない場合など、転記者のエラーもかなり見られた。和年号やIDなどは、専用にチェックするプログラムにより検出した。次の工程である登録作業に付随して、データベースのための一貫性チェック機能を利用して、論理的な入力誤りを検出する作業を行った。これらは入力業者に戻さず、クリーニング作業の一環として、ワークシートを直接訂正した。
e)登録と再編成:ワークシートに入力したものをソースにして、人口学・家族史研究に役立つデータベースのテーブルに再編成する工程である。概要を次節に示す。
宗門帳タイプで設定した「村」「戸」「個人」という単位のうち、村という地理的集まりと戸という個人のまとまりの連続を系譜データから再現することはできない。村に変わるものとして居住地を候補とすることが考えられるが、居住地が時系列として明確に記載されている個人はごく少数であるため、宗門帳の村のように全員の必須のデータ項目とすることはできない。必須のデータ項目であるという条件を満たすものとして、血縁に基づく「一族」を考えることが可能である。村単位の人口の動態から地域全体の人口の動態が推定できるように、武士階層の人口の動態を一族単位で見ることによって、武士のある種の経済的階層全体の人口動態を推定することが可能になると考えられる。したがって、資料の全体が入力されなくても、武士階層の人口動態などをある程度把握できることが期待できる。
戸に相当するものは、当主に対応する本家・分家であり、必須のデータ項目としての条件を満たしている。これを「家」と呼ぶが、必ずしも同居していることを意味しないという点で宗門帳の戸とは異なっている。
家譜データベースは宗門帳タイプと整合させるためリレーショナルデータベースの形態とする。データベースは基本的に以下の6種類のテーブルに再編成する。
(ア)一族の時間不変の情報
(イ)家の時間不変の情報
(ウ)家の時間可変の情報
(エ)個人の時間不変の情報
(オ)個人の時間可変の情報
(カ)個人に起きる生誕・死亡・結婚・移動などのイベント情報
本プロジェクトの終了段階で、寛政重修諸家譜のほぼ20%、約3700ページ分をデータベース化することができ、延べ24,318人の経歴を検索することができる。
宗門帳タイプの場合、個人の時間可変の情報を年単位に展開してアトリスクを顕在化させることができた。しかし、家譜タイプの場合、生誕や死亡が確定しない個人が多数存在するため、このようなテーブル構成をとることができない。したがって、関連するイベント情報からある程度の時間幅をもつアトリスクとして個人の時間可変の情報を表現することになる。これは、年を確定すればアトリスクがある確率できまるという取り扱いと同等であり、宗門帳データベースタイプに適用したイベントヒストリー分析を拡張して適用できると考えられる。本プロジェクトの終了段階では、データベースの部分的作成までしかできなかったが、本データベースをイベントヒストリー分析に適用できる可能性がいくつか見出されている。詳細は別稿に報告したい。
本節では、作成されたデータベースの具体的利用の実際を報告する。
人口動態を計測するに際して、資料が「本籍地主義」によって記されたものか「現住地主義」によって記されたものかの区別は重要である。特に、出稼ぎがかなりの割合でみられる農村部では、どちらのデータを使うかによって、生産年齢人口や有配偶率といったデータに大きな差が生まれることは周知のことである。単なる人口動態を出すだけであっても、一年ごとに個人が対象の村にいるのかどうか、またどういう資格で世帯にいるのかという情報が必要になってくる。そこで、基本となる個人のテーブルには、各調査年ごとに、
1)世帯ID(記載されている単位)
2)続柄(世帯の中でのものか奉公人か)
3)年齢(記録されている数え歳)
4)所在(世帯にいると記されているか、いない[外部にいる]と記載されているか)
を登録する。個人を識別するためのa)村名、b)個人IDと、c)調査年の西暦を先頭に加えて、7つの項目を持ったテーブルを作成している。
テーブルの定義のコマンドは以下のとおりである。
create table tmv ( \
Vil_name varchar(12) not null, \
Ego char(13) not null, \
Year smallint not null, \
HHid char(10) not null, \
Relation char(20) not null, \
rec_age smallint not null, \
present char(1) not null, \
primary key(Vil_name, HHid, Year, Ego))
これらの項目は、すべてBDSシートから抽出することができる。また、Xavierタイプの場合も原理的には変換プログラムによって生成することができる。(現在はまだpresent=”N”のデータを世帯に所属させてはいない点が異なっているだけである。)
たとえば、人口動態の例として、西條村のすべての年の現住人口を出稼ぎ人も含めて計数することなどは簡単に行える。以下に示すSQLはそのプログラム例であり、得られた数値を表計算ソフトウエアなどでグラフ化することも容易である。
select Year, count(Ego) from tmv \ tmvテーブルから抽出
where Vil_name=”西条” \ Vil_nameが西条であり
and present=”Y” \ かつ世帯にいる
group by Year \ Yearごとに集計すること
order by Year Yearの昇順に並べること
現在までに作成されたデータベースから得られる人口動態を図1(1〜4)に示す。都市部と農村、東北日本と中部西部日本とでは人口動態のパターンに差異があることが見て取れる。
個人のデータには、時間不変のものがあり、それは、性別・出生年・出生地・実父・実母などである。これらを、個人のデータとして毎年の分テーブル化しておくのは無駄であり、個人IDを共通にした別テーブルとするのが、リレーショナルデータベースの方法である。
性別は、BDSシートから直接得られるが、出生年・出生地・実父・実母などを直接得ることは難しい。
出生年・出生地については、宗門帳に出生の記事が日付つきで記されていれば、まず確実なものと考えられる。たとえ日付がついていなくても、記載された年齢が1歳あるいは2歳であれば、直近の記載であり、出生年・出生地は確定的とみなせる。同様に、初出の記載年齢が低い場合には、そこから逆算した出生年はかなりの程度信頼できるものと考えられる。それに対して、史料の開始年や転入時点にはすでに大人になっていたような場合は、信頼できるかどうかは判断の分かれるところである。ここでは、10歳以上での初出の場合は、記載年齢から計算される出生年の平均値(整数に四捨五入)をとることで推定することにした。個々の利用者が独自の方法を用いて出生年を計算すること(たとえば、最後のケースでは最頻値をとるといった方法)ももちろん可能である。
実親についても、宗門帳の記録から直接得られるものは多くない。出生時に○○の子と書かれていて、同時に○○の妻が明記されていれば、その両親はほぼ確実に実親であるといえるが、妾腹であった可能性がないともいえない。しかし、そこまで懐疑的である必要はなかろう。ただ、初出の場合はいくつかのチェックが必要である。例として、下守屋村の世帯番号1を取り上げてみよう。(図2)
1685年(以下、この節では西暦年を用いる)が史料の最初であるが、その後は1699年・1708年・1716年と14年、9年、8年、7年の史料の欠がある。連続して利用できるのは1716年からである。この長期の欠年のため、実際に統計データを取り出すのは1716年からにするのが通常である。1716年の記載続柄だけからは、ID005番の女子/娘“でん”やID008番の男子/倅“祐介”・ID009番の男子/倅“幸介”の実母はID007番の妻/女房“まん”であるように見える。事実、ID009番の男子/倅“幸介”は「去十月出生」となっていて、確実である。ただし、1708年の記載を参照すれば、“でん”は実は先妻“きん”の子であることがわかり、“祐介”はどちらの子である可能性もある。(“祐介”の出産で先妻が死亡したという可能性が高いが、“まん”の妊娠のために“きん”が離婚されたという可能性も考えられる。後に、“祐介”は最初の妻“こん”が子“喜藤太”を出産3月後に死亡したため、同年に後妻“もん”をむかえている。)1708年の史料がないとしても、“まん”と“でん”の年齢差は9歳しかないので、まず、実母ということはないと判断できるが、“まん”と“祐介”の差は13歳であり、この点も微妙なところである。
ところで、母“たん”と家主“幸右衛門”の年齢差も11歳と少な目であり、実の親子であるかどうか疑わしい。1699年の記録を見てみると、“幸助”(“幸右衛門”の前の名前)が先妻“きん”の入婿であったことがわかる。
これら、確実に訂正できるものや疑わしい親子関係をどのようにチェックするかは、データベースの利用者に基本的にはまかされるべきものと考えるが、利用の便を勘案して、実親関係を基本テーブルとして提供することにした。その際、厳密にするならば、初出の親子関係にもとづくものはすべて不明としなければならないが、そうすると、利用できる期間が著しく少なくなるので、そのような立場はとらないことにした。年齢差のチェックなどの情報を提供できる体制にする予定であるが、基本テーブルの親子関係を厳密な親子関係としてスクリーニングしたい利用者は、本データベース管理者に相談されたい。
例に示した下守屋村はXavierタイプであるが、これらはすでに調査して入力されていた親子関係のデータをそのまま採用した。macroタイプとShumaタイプは(V)BDSシートから抽出してできた基本テーブルから、SQLプログラムによって自動的に親子テーブルを構築するようにした。親子テーブルの作成方法の解説を図3に示した。
上の親子関係を表すものをはじめ、配偶者関係や養子関係など家族の構造を、データベースでは本人と一人ひとりの個人とをペアにしたテーブルとして表現するのが便利である。
宗門帳の場合、家族の相互の関係は、戸主から見た親族関係として続き柄として表現されるのが一般的である。記載の表記法はかなりのバラエティーがある。親子の例に示したように、同じ村であってもゆれが見られる。しかし、ほぼ常識で判断可能な範囲である。BDSは続き柄をある程度規格化しており、Xavierタイプではそれをコード化して変化年とともに入力してある。macroタイプでは、それを個人間の関係に還元して入力してもらい、プログラムで続柄コード(文化人類学コード)に変換し、毎人年のデータを発生するようにしている。Shumaタイプでは、これらの変換(=続柄の解釈)が利用者の責任で行えるように、記載したままの続柄(「右の女房」のように名前として書かれている場合も含む)を毎人年入力してもらっている(変化がなければ前年の継続とできるような仕組みが組み込んであるので真に毎年入力しなければならないわけではない)。
続柄は、戸主の交替にともなって、ほぼ全員が変化するが、個人間の関係は変化しない。macroタイプでは、戸主の交替のみを入力すれば、続柄は自動的に変化するようになっている。入力数を少なくするとともに、基本として入力する個人間の関係から、基本テーブルを構成するのが容易になる。
実の親子の場合は時間不変の情報であるが、配偶者関係と養子関係は時間可変であるため、その事態の開始年、終了年などがテーブルに必要である。詳細は結婚の解説を参照されたい。
結婚に係わる指標には結婚率(結婚件数÷人口)、有配偶率(有配偶者数÷人口)、既婚率(結婚経験者数÷人口)、平均結婚(初婚)年齢、平均結婚継続年数、などがある。これらは、結婚の記録(イベントタイプ)から求められるものと、家族の関係を継続して観察しなければならないものとがある。前者はBDSに記録された結婚の記事をそのままテーブルとしたものの集計から簡単に求めることができる。後者には、有配偶率などのように、調査時点での婚姻状態が判明していればよいものと、平均結婚継続年数のように、最初と最後を結びつけたテーブルが必要なものとがある。この二つは、相互に変換することができるが、利用者の便を考慮して、両者を基本テーブルとして作成した。
結婚イベントは夫婦のいずれかに世帯の移動を伴うことが多い。macroタイプでは、結婚を世帯移動理由の理由としてシートに記録する。同時に、世帯への登場で新たにつけられる続柄(relation to head)をシートに記録する。
図4のBDSシートに示すように、この村では結婚を「呼取(る)」とか「婿ニ遣(る)」のように書いている。別の村では「縁付(く)」のように書いているが、その場合養子なのか結婚なのか不明のケースもある。Xavierタイプでは、研究者が判断してその種類をコード化した数字が移動理由として入力されているので、それを取り出してテーブルとした。macroタイプでは入力者が判断してVBDSシートに入力する。移動理由の中に類別した項目をメニュー項目として固定的に設定してある。結婚・養子に関するものは、嫁入りか婿入り、養子入りか里子入りが移動理由となる。しかし、試行の結果、入力オペレーターがその判断を行うことは難しいことから、BDSに類別のコードを研究者に付記してもらうことになった。この点を改善するため、Shumaタイプでは記録されたとおりを移動理由に入力している。あとの移動理由の集計で、データ処理を行う研究者が自らの判断で記録を類別するという基本方針にした。
ここではmacroタイプで入力された基本テーブルから配偶者を求める方法を示す。
世帯に登録された人は、そこで新しい続柄を得る。VBDSでは、戸主との関係に依存する続柄をある種の関数で求めるようにしている。戸主自身も年とともに交替するものであるので、この関数はすでに世帯にいる一人とその関係およびその変化の(西暦)年をパラメータとするようにしている。結婚では、世帯に入る人の続柄関数に、その配偶者を夫妻関係の相手として参照するように入力する。(入力者の実際の操作は、付録に示すように妻または夫のセルをクリックするだけである。)婿養子の場合、養子関係を鮮明にするために、戸主などに対して養子として登録するが、さらに家の娘の方に、その養子の妻になったという登録をも加えるので、結婚があれば、結果として“夫妻”という関係のペアがその年に発生したというデータがVBDSの続柄関数上に作られる。この続柄関数を分解して抽出し、基本テーブルとしている。
たとえば、図6−2−4に示すBDSを入力したVBDSでは、ID1−011の続柄欄には、「1726年からID1−008と夫妻関係にある」と、ID108−004の続柄欄には、「1736年からID1−009と夫妻関係にある」と、ID1−013の続柄欄には、「1739年からID1−008と夫妻関係にある」という意味の関数が書かれている。それぞれから、直接抽出された“続柄イベント”テーブルrevを経由して、上3行が配偶者テーブルSPOUSE0に作られ、さらに配偶者の対称性から抽出される下3行が同じく配偶者テーブルSPOUSE0に作られる。
村 |
個人 |
配偶者 |
下守屋 |
1−011 |
1−008 |
下守屋 |
108−004 |
1−009 |
下守屋 |
1−013 |
1−008 |
下守屋 |
1−008 |
1−011 |
下守屋 |
1−009 |
108−004 |
下守屋 |
1−008 |
1−013 |
既に結婚した状態で世帯全体が登録される場合には、直接配偶者関係ではなく、戸主である子を介して父や母、祖父や祖母として登場する。このような場合は必ず子が存在するはずであるから、前節の親子として抽出されたテーブルparentsから配偶者関係を抽出することができる。この補充プロセスも含めた配偶者の検出アルゴリズムを図6−2−5に示す。
上記のプロセスで得られた配偶者について、婚姻期間を求める。婚姻期間を開始年と終了年、および次の結婚までの期間を示すための次回開始年の3つ組であらわす。
ただし、婚姻期間が史料の有効期間を外れている場合には、厳密な婚姻期間を求めることはできない。結婚の開始年が記されていれば、史料の有効期間を外れていても開始年はわかるが、必ず記されている史料はまれであり、それを期待することはできない。そういう事情であるから、結婚開始年は史料の利用期間内で最初の結婚(かつ同居)状態が観測された年という意味であり、結婚終了年は同じく最後の観測された年という意味である。
このように定義すれば、得られた配偶者関係にある個人のすべてのペアについて、同じ世帯に属している個人年情報のペアの集合を取り出すことができる。その集合にある年の最小値が開始年(正確にはそれより1年未満前)、最大値が終了年(正確にはそれから1年以内)となる。上の配偶者のペアの場合以下の表のようになる。
村 |
個人 |
配偶者 |
開始年 |
終了年 |
次回待機年 |
下守屋 |
1−011 |
1−008 |
1726 |
1738 |
1738 |
下守屋 |
108−004 |
1−009 |
1736 |
1737 |
1738 |
下守屋 |
1−013 |
1−008 |
1739 |
1785 |
1785 |
下守屋 |
1−008 |
1−011 |
1726 |
1738 |
1785 |
下守屋 |
1−009 |
108−004 |
1736 |
1737 |
1742 |
下守屋 |
1−008 |
1−013 |
1739 |
1785 |
1785 |
次回待機年は、それぞれの個人についてデフォルトで、本人の史料上の最終観測年とする。さらに、終了年よりあとで開始する配偶者ペアが同一の本人についてあれば、その(最小の開始年)−1を次回待機年とすることで全体を開始年順に整理することができる。上の表では、ID1−008が2度結婚をしていて、このプロセスで4行目の次回待機年は1738となる。
上述の婚姻期間に示された開始年(含む)から終了年(含む)までの毎年は、本人は既婚(married)の状態である。終了年に本人および配偶者にどのようなイベントが起きたかによって、終了年(含まない)から次回待機年(含む)までの毎年の婚姻状態が決まる。そこで、婚姻終了の原因をイベントから求めるプロセスをまず行う。
原因として優先順位が高い方から説明すると、第一は本人の死亡であり、この場合、その後の婚姻状態を考慮することはない。次に本人が嫁入・婿入・(婿)養子から戻ると記された嫁入戻などのケースで、その後の婚姻状態は離縁(divorced)であるとする。かりに離縁の原因が配偶者の死亡であっても、家を出たことがdivorcedの原義であると考えられるからである。次に、配偶者の死亡や行方不明が原因の場合は、前者は寡婦/夫(widowed)であり、後者は不明(div or wid)である。さらに、奉公などの移動が原因の場合は別居となるが、奉公先から配偶者が帰らなかったような場合だけがこれに該当し、帰った場合にはその中間にあったはずの別居期間は無視されてしまうのは一貫性を欠いた処置であろう。このような別居のほか、史料の欠年中に婚姻期間が終了した場合も明確な婚姻終了の原因を見つけることはできない。自動化するのは、このような終端を不明(disappear)として抽出するまでに留めておく。必要ならば研究者それぞれがあとの経過を調べて、詳細な原因を調査することにした。
初婚以前の状態は、未婚(unmarried正確にはnever married)となるが、成長してから史料に登場する個人の婚姻状態については、出生年の推定とよく似た困難が生じる。東北地方の記録に4歳の女子の結婚があるが、通常の意味の結婚とはみなせない。このため、何歳から登場した場合から婚姻状態を未婚(never married)ではなく不明とするかは、研究者によって分かれるところである。今回の基本テーブルではかなり大きく見積もり、14歳以下を未婚としそれ以上を不明(unknown)とした。
養子は結婚と同様の方法で養子期間という形式でも養子状態という形式でもあらわすことができる。また、養子・婿養子・実子の区別を取捨した親子関係なども同様の取り扱いができる。
奉公も結婚と同様の方法で2種類の形式が利用できる。たとえば、奉公に出る危険率をロジスティック分析にかけたり、奉公の継続を生命表としてあらわすなど、応用の道は幅広く用意されている。
筆者は、「宗門改帳」と総称される古文書史料から人口学的指標を計算する史料整理の研究過程をできるかぎり自動化するために、「江戸時代における人口分析システム(DANJURO ver.2.0)」を構築して、インターネット上に公開した。システム構築の目的は、@史料読解から人口学的指標算出に至る作業時間の短縮、A研究過程の再現性の確保、B古文書史料の保存、C研究者間における史料と分析方法の共有の4点である。@について、作業時間をいっそう短縮するため、古文書文字の自動認識に関する実験を開始した。
本システムのURLは、http://kawaguchi.tezukayama-u.ac.jp/である。本システムは、Oracle 8.03をDBMS、Oracle Web Application Server 4.0をWeb Serverとして構築されている。利用者側のコンピュータには、Microsoft Internet Explorer 3.0以上、Netscape Navigator 3.0以上などのブラウザーとMicrosoft Excel 97以上を準備する必要がある。インターネットを通じて本システムを共同利用することにより、研究者間で史料と分析方法を共有できる。
本システムは、@「宗門改帳」古文書画像データベース、A人口分析プログラム、およびBシステムの概要から構成されている(図1)。現在のところ、「宗門改帳」古文書画像データベースには、陸奥国奥会津地方の4ヶ村、摂津国八部郡の1ヶ村、延べ69494人16272世帯が登録されている(表1)。また人口分析プログラムを用いて、60項目の人口学的指標をグラフ表示することができる(表2)。
「宗門改帳」古文書画像データベースは、ア)個人情報テーブル、イ)世帯情報テーブル、ウ)古文書画像情報テーブル、エ)史料書誌情報テーブルの4テーブルから構成されている。ウ)には入力史料本文の画像データ、エ)には史料表紙、奥付の画像データが登録されている。古文書史料の散逸、劣化が進行する前に史料の現況を画像データとしてコンピュータに蓄積することにより、史料の保存を図った。
ア)、イ)、ウ)の検索結果詳細表示画面には、対応する他のテーブルを検索・表示するためのボタンを付した。利用者が文字データに誤読の疑いを抱いた場合、あるいは史料のレイアウト、文字の配列、筆跡、印形といった文字データとして登録することのできない画像情報を調べたい場合などには、ア)、イ)の文字データとウ)、エ)の画像データを同一画面上で比較対照することができる。このようにして、利用者がシステム構築者の研究過程を再現、検討できる研究環境を構築した。
「宗門改帳」古文書画像データベースを構築する場合、最も長時間の作業を必要とするのが史料読解、文字データ入力である。この過程の一部を自動化できれば、「宗門改帳」読解から人口学的指標算出までの作業時間を一層短縮することができる。そこで、年齢を表記した16種類の古文書文字(ツ、一、二、三、四、五、六、七、八、九、十、壱、弐、年、拾、廿)を対照として、古文書文字の自動認識に関する実験を開始した。
まず、「宗門改帳」古文書画像データベースから、「廿」を66個、「廿」以外の15種類の文字を各200個、手作業で採字した。次に、入力層、中間層、出力層の3層から構成されるニューラルネットの範疇でバックプロパゲーション法により、結合係数を出力層各PEの教師付き学習によって求めた。入力層は濃度特徴計算の結果正規化された10*10の100点多値データ、中間層PE数は30、出力層は16種類の文字に各1ビットを当て16とした。
実験では、16種類、3066個の古文書文字から各80個(「廿」は33文字)を教師データとして学習させ、 残りの未学習文字の認識率を求めた。その結果、未学習文字1833のなかで正しく認識されたのは1689、認識率は92%となった。
古文書文字の判読を支援するため、学習結果を組み込んだ古文書文字判読インターフェースをwindows上に試作した。古文書読解に習熟していない研究補助者であっても、このインターフェースを利用することにより、辞典を検索する目安を得ることができる。
表1 「宗門改帳」古文書画像データベースに登録されているデータ
集落名 |
現在地 |
史料の年代 |
延べ人数 |
延べ世帯数 |
古文書画像の有無 |
陸奥国会津郡石伏村 |
福島県南会津郡只見町 |
1752-1812 |
11,593 |
2,321 |
無 |
陸奥国会津郡小松川村 |
福島県南会津郡下郷町 |
1792-1868 |
7,338 |
1,771 |
有 |
陸奥国会津郡鴇巣村 |
福島県南会津郡南郷町 |
1790-1859 |
18,155 |
4,349 |
無 |
陸奥国大沼郡桑原村 |
福島県大沼郡三島町 |
1750-1834, 1840-1858 |
11,486 |
2,518 |
無 |
攝津国八部郡花熊村 |
兵庫県神戸市 |
1789-1869 |
20,722 |
5,313 |
無 |
表2 「人口分析プログラム」から出力できる人口学的指標
人口 |
世帯数 |
平均世帯規模 |
世帯規模別世帯数 |
世帯規模別世帯数の構成比 |
持高 |
世帯規模と持高との相関 |
持高別世帯数 |
持高別世帯数の構成比 |
下人・同家人同居世帯数 |
下人・同家人同居世帯の構成比 |
同居世代数別世帯数 |
同居世代別世帯数の構成比 |
家族形態別世帯数 |
家族形態別世帯数の構成比 |
平均年齢 |
年齢階層別人口 |
年齢構造係数 |
従属人口指数 |
性比 |
年齢階層別性比 |
宗教・宗派別人口 |
宗教・宗派別人口の構成比 |
有配偶率・未婚率 |
配偶関係別人口(男性) |
配偶関係別人口(女性) |
出生数 |
普通出生率 |
総出生率 |
出生性比 |
子供と女性の比率 |
奉公人数 |
奉公年齢 |
改名者数 |
改名年齢 |
改名回数 |
養子数 |
養子年齢 |
流入数 |
流出数 |
流入率 |
流出率 |
純移動率 |
婚姻者数 |
結婚年齢 |
初婚年齢 |
結婚回数 |
平均夫婦組数 |
出産年齢 |
出産回数 |
筆頭者となった人数 |
筆頭者となった年齢 |
死亡数 |
普通死亡率 |
死亡性比 |
死亡年齢 |
自然増加率 |
人口増加率 |
牛数 |
馬数 |