5. データベースの情報を用いての HTML ファイルの自動作成
哺乳類頭蓋の6方向からの写真を主要なデータとし、撮影記録・標本情報・生物の分類体系などの情報を組み合わせて、画像データベースの構築を行った。作成したデータベースはインターネットで公開しており、CD-R での配布も行っている。
本プロジェクトでデータ収集(写真撮影)の後に必要な作業は、利用者がデータを探索して希望の画像にたどり着けるシステムを作ることである。哺乳類頭蓋画像データベースはインターネット上で公開することに主眼をおいているので、哺乳類の分類体系に沿って画像をすばやく検索できるような Web サイトを構築することが目的となる。インターネット以外での公開方法として、CD-R ディスクでの配布も行っているが、これは Web サイトの内容をディスク上にそのまま配置したものであり、内容には Web との違いはない。
出発点となるデータ(画像、撮影記録、標本情報、分類体系など)から、公開形態である w ebサイト(哺乳類の分類体系を記述する HTML とその体系に沿って適切な位置に置かれた画像の組み合わせ)を作成するには何段階かのプロセスが必要となる。その具体的な作業の内容は、主として
の4つであり(2 から 4 は図1を参照)、この順序で説明する。
(図1)作業の流れ(データの管理は除く)
撮影したままの状態の原画像(TIFF 形式)はカメラのカードから、MO および CD-R に保管する。その際、ディスク名は通し番号、ディレクトリ名は日付と番号をつけておく。ファイル名はカメラが自動でつけた名前のままにしておく。原画像から Adobe Photoshop を用いて JPEG 形式のファイルに変換し、以後はこのファイルを使用するようにする。読み込み直す必要がないかぎり、原画像の保管してあるディスクは使用しないようにする。
Photoshop で作った JPEG ファイルは、「 nnnnn.jpg」(nnnnn は撮影番号、例: 10987.jpg)という名前で保存する。撮影番号は写真ごとにユニークな番号なので、ファイル名から画像が特定できるようになる。公開する際には画像のファイル名は変更される(後述)が、我々制作者側での画像の管理はすべて撮影番号で行われる。このファイルは原画像とは別のディスクに撮影番号順に保管する。
撮影や標本の情報はいわゆるデータベースファイル(市販のデータベースアプリケーションのファイル)に入力して利用するが、我々は以下の3種類のデータベースファイルを作成した。
データベースアプリケーションには、ファイルメーカー Pro を用いた。また、ファイルメーカー Pro サーバを導入し、LAN 内のどのコンピュータからでもデータを入力、参照できるようにした。
撮影記録データベースの内容は、撮影時につけていたノートの内容を入力したものである。1レコードが写真1ショットに対応しており、入力されるフィールドは、撮影番号・標本番号・撮影方向・撮影日・保存ディスク名・保存ディレクトリ名・ファイル名・撮影者などである(図2)。このデータベースのレコードは、前のレコードと同じ値や1増えた値などをもつフィールドが多いので、データ入力に若干の自動化を施した。
(図2)撮影記録データベースの画面
標本データベースは、以前から獨協医科大学第1解剖学教室で作成していたものを多少改変し、ファイルメーカー Pro に取り込んで使用した。このデータベース作成時に標本との突き合わせ調査を行い、データを追加、修正した。1レコードが1標本に対応しており、入力されるフィールドは、標本番号・学名・和名・性別・年齢などである(図3)。
(図3)標本データベースの画面
標本データベースの補助として、哺乳類の分類データベースを作成した。これは、種の学名から種の英名・和名、上位分類群(属・科・目)の学名・英名・和名などの情報を引き出し、HTML を作成するために必要な情報を得るためのものである。ファイルは4つあり、それぞれ種・属・科・目のリストになっている。 1レコード1タクソンになっており、入力されるフィールドには、学名・英名・和名・上位分類群などがある。このデータベースと標本データベースを組み合わせることによって、特定の標本に関するすべての分類情報を参照できるようになる。
標本番号をキーにして、撮影記録データベースと標本データベースを、標本の学名をキーにして、標本データベースと哺乳類の分類データベースを、リレートさせる。これによって、画像―標本―分類の情報がリンクされ、特定の画像中の標本の情報をすべて得ることができるようになる。これは、後述する HTML ファイルの作成と、画像のリネームや特定のディレクトリへの配置に使われる。
上述のデータベース群から Web ページで用いる HTML ファイルを自動生成するシステムを自作した。このシステムはファイルメーカー Pro、テキストエディタ(Jedit)を自作の AppleScript スクリプトで制御するという方法で実現している。スクリプトは画像をリストする HTML を作るものと分類群をリストする HTML を作るものとの2種類を作成した。
図4のような、ある種に属する標本およびその画像が一覧できる HTML を作成する AppleScript スクリプトの動作を説明する。スクリプトを実行すると、まず、標本データベースをスキャンし、1レコードずつすなわち1標本ずつ、標本番号・種名・性別・年齢などのデータを引き出す。次に、種名を HTML のファイル名にすると決めてあるので、エディタにそのファイルを開かせる(なければ新規作成させる)。そして、データベースから引き出した情報を HTML 形式に変換してエディタにペーストする。これを全標本について繰り返させると、撮影した全種の画像リストができあがる。
次に、分類体系に沿って画像を検索できるように、目・科・属・種のリストを HTML で作成する。それぞれのページは下位分類群へのリンクを持つ(図5)。図5にあるマカク属の種リストを例にとって AppleScript スクリプトの動作を説明する。スクリプトを実行すると、まず、標本データベースでマカク属の標本のみを抽出する。この抽出した標本を1レコードずつチェックし、種名を引き出す。次に、マカク属の HTML ファイルをエディタに新規作成させる。そして、種名とリンク情報をエディタにペーストする。同種の標本が多数あるので、重複している分についてはペーストしないように作ってある。これを抽出した全レコードについて繰り返すと、マカク属の種リストができあがる。同様の手法ですべての目・科・属について、そこに属する下位分類群のリストが作成できる。
(図4)Macaca radiata の画像リスト HTML
(方向の書いてある部分をクリックすると、個々の画像を見ることができる)
(図5)マカク属(Macaca)内の種リストの HTML
画像のファイル名が撮影番号でつけられていると、利用者にとっては画像の内容との対応がわかりにくい。そこで、画像ファイル名を「nnnnD.jpg」(nnnn は標本番号、D は撮影方向、例:0123L.jpg)に変換する。使用したソフトウェアはファイルメーカー Pro と自作プログラム(REALbasic で作成)である。まず、ファイルメーカー Pro で撮影記録データベースから、「撮影番号」と「標本番号&撮影方向」の対照表をテキストファイルで書き出す。この書き出しのとき、撮りなおしなどの理由で不採用になった撮影番号のデータは書き出さないようにしてある。そうすることで、同一標本・同一方向の画像は1枚のみしか存在しないようにすることができる。ここで自作プログラムを実行すると、書き出した対照表にしたがって画像ファイルの名前を変更し、変更されたファイルのみを別ディレクトリに移動する。
画像ファイルは 3060 x 2036 ものピクセル数があり、ちょっとした閲覧などには不向きなので、サイズの小さい画像( 1030 x 678, 765 x 509 , 278 x 185 など)を作成した。この作業も AppleScript と Adobe Photoshop のアクション機能を使って自動化してある。サムネール画像のファイル名は「nnnnDs.jpg」(nnnn は標本番号、D は撮影方向、例: 0123Ls.jpg)であり、オリジナル画像の名前の後ろに "s" をつけて小さい画像であることを示してある。
画像のサーバへの移動そのものは、サイト管理ソフトで簡単にできるのだが、移動の前に画像ファイルの振り分け作業が必要になる。Web および ftp サイトでは、画像ファイルは属(genus)ごとに別ディレクトリに格納されているので、アップロードする前に、サイトと同じディレクトリ構成を作り、画像をそれぞれの属すべきディレクトリに振り分けコピーしなければならない。
この作業は自作のプログラム(REALbasic)とファイルメーカー Pro の連携によって処理した。この自作プログラムは画像のファイル名から抽出した標本番号を使って、標本データベースからその標本の属を調べ、その属名のディレクトリへ画像ファイルを移動させる。すべての画像を所定のディレクトリに振り分け終えたところで、サイト管理ソフト(Adobe SiteMill)を使って画像ファイルをアップロードし、作業は完了する。
ここでは、本データベースを作成中に気づいた注意点などを述べる。
作業量が膨大になってくると、作業のあらゆる段階でミスが生じるようになる。ミスの予防法の一つとしてデータベースソフトに備わっている入力値の制限機能などを用いることで、誤入力をある程度防ぐことができる。また、データベースのマクロなどでデータの不整合を洗い出すようなプログラムを作っておいて頻繁に実行することも有効なミスの発見法となる。しかし、最終的にやはり人間の目と手で一つ一つチェックすることが必要なケースもある。我々の場合でいうと、撮影者が標本番号を正しくノートに記入しているかどうかをチェックしようとしたときには、画像を一枚一枚開いて、標本に書いてある標本番号を見なければならなかった。我々のデータベースでは撮影番号や標本番号に相当するような基準となる重要な項目については、二重三重の厳しいチェック機構が必要であろう。
データ量が膨大になってくると手作業での処理は不可能に近くなるので、プログラムやスクリプトを自作することで対処する必要がある。最近では、マクロユーティリティや手軽なプログラミング言語なども増えてきているので、以前ほど GUI 環境でのプログラミングも敷居の高いものではなくなってきていると思われる。我々は Macintosh 上でプログラミングを行ったが、Microsoft Windows などでも同様のツールは用意できるであろう。
データ管理のためにも、また前項の自動化のためにも、データ、ファイル名などの形式を統一する必要がある。その際注意すべきなのは、番号に対して用意する桁数などに余裕を持たせることである。我々の失敗を例に挙げると、データベース関連のプログラムを書くときに、撮影番号を4桁としてコーディングしておいたところ、撮影番号が 10000 を越えたため、プログラムの書き換えを余儀なくされた、といったことがあった。
データベース構築の際に用いたソフトウェアの一覧を以下に示す。「ファイルメーカー Pro サーバ」は WindowsNT 用、それ以外はすべて Macintosh 用である。
データベースデータベース構築に関して、法政大学の木原 章さんの web ページ(http://ant.fujimi.hosei.ac.jp/www/kihara/)を参考にさせていただきました。謹んで感謝いたします。(山下)