表紙へ             次の記事

全文データベースのための技術: SGML

石塚英弘

注:本稿は図書館報Vol.10のNo.3とNo.4の2回に分けて掲載されたものの No.3掲載分である。なお、このテキストの作成に当たり、両者をリンクで つないだほか、用語等に関する説明を付け加えている。


1. はじめに

全文データベースの作成・保守・交換のための技術として、また電子出版の基 礎技術として、SGML (Standard Generalized Markup Language) が注目されて いる。SGML は 1986 年に ISO の規格 8879 になり、欧米では広く使われてい る。また日本でも、92 年には JIS 規格 X-4151 となり、最近特に注目される ようになってきた。そこで本稿では、SGML の効用と適用事例、SGML の基本概 念と機能などを簡単に解説することにしたい。

2. SGML の効用と適用事例

SGML は全文データベース (DB) を作成・保守するための技術である。また、 SGML 方式で作成された全文 DB は別のハード・ソフト上に移植しやすいから、 全文 DB の交換にも適している。そして、テキスト (文字) だけでなく、図表・ 写真なども含めて扱える。その点、従来のテキストのみの DB ではなく、正し く全文 DB のための技術と言えるだろう。

SGML の基本概念の所で述べるように、SGML は文書を構造化して観る。そのた め、SGML 方式の全文 DB では文書の構造が明示され、CD-ROM や検索システム に載せる場合も変換処理は容易である。また、文書構造に対する SGML の見方 はハイパーテキストとも近いから、ハイパーテキスト形式にも容易に変換でき る。これらの特徴から SGML は電子出版の基礎技術にもなっている。

SGML の適用対象は現時点でも、1) マニュアルほかの技術文書、2) 政府機関 作成の文書、3) 古典テキストの全文 DB 、4) 学術書・学会誌など多岐に亙る。 分野は問わず、文書一般と言えよう。

紙面の都合上、適用例を挙げる余裕は無いが、図書館関連で言えば、Oxford English Dictionary, Elsevier の出版物、日本化学会欧文誌などがある。学 術情報センターも SGML 実験誌など多くの研究開発プロジェクトを実施してい る。また、変わったところでは、Internet 上で動 くハイパーテキスト・システム Mosaic がある。 Mosaic は、データ入力の仕様に SGML 方式を採用している。

なお、SGML の適用例として有名な CALS (米国の電子文書化のプロジェクト) が昨年、民生化された。これにより、SGML は商取引の分野でも広く使われそ うになってきた。

3. SGML の基本概念

SGML とは、全文DBの構造を明示的に表現するための言語である。データベー スの用語で似たものを挙げれば、データベースの構造を定義する DDL がある。 ただし、SGML は出版印刷の分野から出てきた技術であるため、その分野の用 語、たとえば、markup が使われている。そのため、データベースと出版印刷 の両面から理解する必要がある。

まず、SGML という言葉から説明する。実は、SGML は、出版印刷の分野から出 発し、文字の大きさ・レイアウトなど印刷に関わる細かな事柄から脱却して、 全文 DB の構造表現に至ったのだが、その道を説明することになる。次に、 SGML による全文 DB の構造表現の考え方を説明する。

3.1 標準汎用マーク付け言語

SGML (Standard Generalized Markup Language) を直訳すれば「標準汎用マー ク付け言語」となるが、これではよく分からないであろう。実は、IBM 社で社 内文書の作成に使われていた GML (Generalized Markup Language) があり、 この GML を概念的・機能的に拡張して、ISO の標準 (standard) としたので ある。

markup は辞書にない言葉で ``mark up'' から作った造語である。``mark up'' とは編集者や印刷デザイナーが、見出し、テキストおよびその他の部分 について書体やサイズなど体裁に関する指定を原稿上に手書きで書き込むこと である。そこで、同様の指示を手書きではなく、電子的に与えることを ``markup'' (マーク付け) と一語で言うことにしたそうである。

そして ``generalized'' であるが、これは markup には固有と汎用 (generalized) の二種があり、後者の方だからである。ここで、「固有」の markup は、文書の体裁を記述するためのコマンド (命令) であり、使用する 印刷機器やそのソフトウェア専用である。そのため、固有と言われる。一方、 「汎用」の方は文書の体裁ではなく、構造を記述する markup で、見出し、注、 引用テキストなど文書を構成する要素の始点と終点をマークする。ソフトウェ アは、そのマークを判定して、要素ごとに書体、サイズ、体裁を指定し、印刷 する。こうすれば、markup は機器に依らなくなるから汎用となる。

最後に ``language'' についてであるが、汎用マーク付けの仕方は、それを判 定するソフトウェアが誤り無く判定できるように、厳密な必要がある。コンピュー タ科学的に厳密な枠組みとしては、文法 (syntax) を持った ``language'' と するのが普通であり、この場合もそれを採用したため、language となったわ けである。

GML の意味は以上のとおりであるが、GML という文字自体は、その開発者 Charles Goldfarb, Edward Mosher, Raymond Lorie の 3 人の姓の頭文字を並 べたものにもなっている。

3.2 文書構造の表現

JIS では SGML のことを「文書記述言語 SGML」と言う。これは、SGML が文書 (document) をその構造に基づいて記述するからである。SGML では、テキスト だけでなく、図表や写真など全てを含む物を「文書」という。なお、SGML で 言う文書とは本稿で言う全文 DB と同じ意味になる。

文書には、章、節、段落などの階層構造と、注、文献参照、図表の参照などの 非階層構造 (参照関係構造) とがある。そこで SGML では、この 2 種類の構 造を表現できるようにしている。そして、文書を記述するには、その構造を記 述した部分 (DTD) と文書のデータそれ自体とが必要と考える。

DTD は Document Type Definition の略で、JIS では文書型定義と訳している。 DTD は文書構造を SGML の構文を使って定義・記述し、その文書の場合のマー ク付けの仕方を記述したものである。文書は、単行本、論文、レポートなど文 書の種類によって、その構造が異なるから、種類ごとに DTD は異なる。DTD を自分で書くには SGML の構文を知る必要があるが、種類によっては DTD が 既に用意されていることがある。その場合は、それを使えばよく、自分で書く 必要はない。

SGML は文書構造に関する国際規格と聞いて、全ての文書に適用する規格を決 めるのかと誤解する人が少なくない。しかし、SGML では文書の種類によって 構造は異なると考えている。そして、その文書の関係者が必要に応じて DTD を決めることとし、DTD を書くための文法を SGML として規格化したのである。 そこで、個々の DTD は SGML のアプリケーションと言える。また、マーク付 けの仕方を書いた DTD を文書構造記述言語と観れば、SGML はメタ言語と言え る。

文書のデータとしては、DTD に従ってマーク付けされたテキスト (文書テキス ト) と、図や写真をビットパターン化したファイル (外部エンティティ) が ある。外部エンティティも DTD に従っており、本文からの参照関係は文書テ キスト中に書き込まれている。なお、表や数式は文字で書けるため、文書テキ ストの中に書くことができる。

                                     (以下、次号に続く)

用語集:
Internet:
Network of Network で表現されるように世界をカバーする Computer network です。 詳しくは、インターネットについての情報 あるいは インターネットとはなにか (For Your Information)を参照して下さい。
Mosaic:
World Wide Web のビューアの一つで、 Motif で書かれている。 World Wide Web Frequent Asked Questionを参照して下さい。

Author:ishizuka@slis.tsukuba.ac.jp, compiled: itaru@slis.tsukuba.ac.jp