発表資料(Powerpoint

日本における『百科全書』パリ版デジタルアーカイブ共同研究の現状
データベースの構築
慶應義塾大学
DMC機構専任講師
大久保
成
1
まずは現物をご覧ください
http://kdde.dmc.keio.ac.jp/index.htm
l
2
従来のアーカイブ系コンテンツの
特徴
• 独自型
– 電子辞書など
– データとインターフェースが一体化
– コンテンツごとの独自性を発揮させやすい
– 他形態への応用が難しい
• 汎用型
– 図書館システムなど
– データは分野を超えて収蔵可能だが、インタ
ーフェースが貧弱
3
最近の傾向
• 「収蔵庫」と「展示場」の分離
– ウェブコンテンツのデータベース化
– 汎用的なデータを格納しつつ、個別の
インタフェースを用意
– データベース部分は汎用性を高める
– インターフェース部分は個別性を高め
る
4
KDDEの基本システム
• データベース部分
– PostgreSQL
– PHP
– UTF-8
• インターフェース部分
– Logosware社のFlipperを利用
– Macromedia(現Adobe社)Flashの応用
5
Flipper部分の作成
• DMC機構の貴重書撮影技術を
活用
– RAWデータで撮影
– 14.6MB(4922×3328 pixel)
• JPEGに変換後、Flipperへ取り
込み
6
データベース構築にあたり
• PostgreSQLを活用
– フリー(無料)
– 多言語処理が得意
• IT業界での「国際化」というのは「日本語
化」程度の意味しか持たないことが多いが、
PostgreSQLは真の意味でのマルチリンガ
ルな仕様になっている(複数の文字セット
を任意に変換可能な仕様)
• ただし、Unicode上のギリシア文字とShiftJIS上のギリシア文字(全角)は違う文字で
扱われるなど、文字コードに対する一定の
理解は必要
7
データベース構築にあたり
• データベースの基礎的考え方
– テーブル=エクセルの表
– レコード=エクセルの行
– フィールド=エクセルの列
• 「ひとつのセル」に「ひとつの情
報」
8
「ひとつの情報」とは?
• e.g.「49a-53b」
– 「49ページ」の「左段落」から「始まり」、「53ペ
ージ」の「右段落」で「終わる」
– 6つの情報
• e.g.「101a」
– 「101ページ」の「左段落」から「始まり」、「10
1ページ」の「右段落」で「終わる」
• 「見た目がひとつの情報」であって
も、複数の情報を含有している
• 構造を明らかにしないといけない
• SQLでいうところの「第2正規化」
9
どこまで分割するか?
• 細かく分ければよいか?
– →NO
– どのレベルで検索をかけたいかによる
– 機械的には決められない
– 「ART DES ESPRITS, ou ART
ANGÉLIQUE 」で「 ART
ANGÉLIQUE 」が単独で検索される必
要がある場合は、「別名フィールド」な
どを作り、検索の対象とする
10
どこまで分割するか?
• e.g.「*ARCHANGEL 」
• 2つの情報が含まれている
– 「*」:ディドロが執筆した
– 「ARCHANGEL」という項目
• 「DIDEROT」というフィールドを作り、
「*」が付いた項目にフラグを立て
た
– 検索すると以下のような順序で処理される
– 「前方一致で検索」→「DIDEROTフィールドが
OnかOffか?」→「Onの場合、*+項目名で
表示」
– 研究者からみて違和感のないようなインター
11
フェースの工夫が必要
どこまでを「同じ内容」とするか
• 「包摂」という問題
– 「Géog. 」と「Géogr.」は同じか否か?
– SQLでいうところの第一正規化
• 今回は「分類項目(現代表記)」で
のみ検索可能にした
– 「Géographie」のみが検索語に指定可能
– 「品詞と性」については 今回は正規化を見送
り
• 「adj.「adject.」「adjectif」はそれぞれ別の項
目として検索される
12
今後の課題
• メニューなどの多言語化
– トップページのみ日英仏から選択可能
• 正規化
– 入力ルールの整理と徹底化
• ユーザ管理
– 誰でも修正可能な状態
• ウェブ上での研究コミュニティ
つくり
13
(参考)フィールド一覧(basic)
フィールド名
フィールド形式
内容
des03
text
分類項目(現代表記)
id
text
レコードID
des04
text
分類項目(現代表記)
entry
text
項目名
des05
text
分類項目(現代表記)
diderot
charactervarying(1)
「ディドロマーク」
des06
Text
分類項目(現代表記)
tome
charactervarying(2)
巻数
des07
Text
分類項目(現代表記)
stpage
text
開始ページ
des08
Text
分類項目(現代表記)
stcol
text
開始ページの段落
des09
text
分類項目(現代表記)
edpage
text
終了ページ
des10
text
分類項目(現代表記)
edcol
text
終了ページの段落
des11
text
分類項目(現代表記)
genre
text
性と名
des12
text
分類項目(現代表記)
des_ori
text
分類項目(オリジナル表記)
length
text
長さ
des00
text
分類項目(現代表記)
attrib
text
執筆者同定
des01
text
分類項目(現代表記)
schwab
text
Schwab番号
des02
text
分類項目(現代表記)
ts
timestampwithouttimezone
レコードのタイムスタンプ
(参考)フィールド一覧(flipper)
フィールド名
フィールド形式
内容
stpage
text
開始ページ
flipper
integer
Flipperにおけるページ数(第一巻の場合、実物の1ページはFlipperでは72ページ)
dir
text
Flipperを呼び出すためのファイルのディレクトリ名とファイル名
ts
timestamp
レコードのタイムスタンプ
(参考)ページ遷移(ユーザから見える範囲のみ)
index.html
search.php
list.php
トップページ
検索語入力
結果一覧
(別ウィンドウで開く)
allinfo.php
book115.php
項目のメタデータ
Flipperの呼出
update_list.php
修正用ページ
(参考)ファイル一覧(ルートディレクトリ)
allinfo.php
指定項目の全メタデータ表示
attrib.php
執筆者同定一覧を生成(search.phpで利用)
common.css
表示ページに共通のデザインをCSSで指定
des_nor.php
分類項目(現代表記)一覧を生成(search.phpで利用)
genre.php
性・名の一覧を生成(search.phpで利用)
img
【ディレクトリ】ページに共通の画像部品を格納
index.html
トップページ
kdde1_flipper
【ディレクトリ】Flipperデータを格納
language.php
表示言語の対訳一覧
length.php
長さの一覧生成(search.phpで利用)
list.php
検索結果表示
MYDB.php
データベース接続のための共通部品
search.php
検索ページ
stpage.php
開始ページ一覧を生成(ローマ数字なども含まれるため、処理が必要)
tome.php
巻数一覧を生成
update.php
修正用の命令をデータベースに送信(update_list.phpから呼出)
update_list.php
修正用ページ