ディジタル図書館における基本出版技法:SGML

石塚英弘
図書館情報大学
〒305 茨城県つくば市春日1-2
Tel: 0298-52-0511, Fax: 0298-52-4326, E-mail: ishizuka@ulis.ac.jp

概要

 SGML(Standard Generalized Markup Language)は電子出版のための基本技法で あり、電子図書館ないしディジタル図書館を支える重要な技術である。著者はま ずSGML方式の電子出版の概要と現状を紹介し、次いで文書データベースの構造の 表現方法を例を示して説明した。また、SGMLの機能の特徴と名前の由来も解説し た。さらにMosaicのHTMLも解説し、SGMLとHTMLの違いを示した。また、例として 日本化学会の欧文論文誌のSGML方式電子出版を紹介した。さらに、SGML関連ツー ルとそれを使った仕事についても解説した。

SGML: a fundamental technology for publication in a digital library

Hidehiro Ishizuka
University of Library and Information Science
1-2, Kasuga, Tsukuba, Ibaraki, 305, Japan
Phone: +81-298-52-0511, Fax: +81-298-52-4326, E-mail: ishizuka@ulis.ac.jp

Abstract

SGML(Standard Generalized Markup Language) is a fundamental technology for electronic publishing, and is a key technology supporting an electronic library or a digital library. The present author introduces the outline and the state-of-the-art of electronic publishing based on SGML (EP/SGML). He illustrates how SGML represents a structure of a document database. He also explains other features of SGML and why it is called "SGML". He also illustrates Mosaic HTML and the difference between SGML and HTML. EP/SGML of a primary English journal of the Chemical Society of Japan is introduced. He explains some SGML tools and some jobs using them.

Keywords

SGML, electronic publishing, electronic library, digital library, document database, WWW, Mosaic, HTML

1.はじめに

 本稿では、SGML(Standard Generalized Markup Language)[1,2]とSGML方式に よる電子出版について解説する。その理由は、1)電子図書館ないしディジタル図 書館ではSGML方式による電子出版物が重要な位置を占めるからであり、2)SGMLは 欧米では以前から各方面で使われていたが、日本では漸くこの1・2年は様々な 方面で使われるようになってきた程度であり、未だ知らない人あるいは誤解して いる人が少なくないからである。なお、ここでいう電子出版物とは、CD-ROMだけ でなく、コンピュータ・ネットワーク環境で動くシステム(たとえば、WWW Mosaic )上の出版物も含むこととする。著者(石塚)は数年来、SGML方式の電子出版、 特に学術雑誌の電子出版の研究開発に従事し、そのプロジェクトの殆どに参画し てきた。そこで本稿では、その経験に基づいて、実例も交えながらSGMLとSGML方 式による電子出版について解説する。

 なお、未だSGMLが知られていない、あるいは誤解されている理由も理解できる 。それは、1)SGMLは直訳すると「標準汎用マーク付け言語」となるが、これだけ では内容が分からない、2)SGMLが直接関連する事柄だけでも、印刷・出版、文書 データベースないし全文データベース、文書記述法、規格など多方面に渡るため 、全体像を把握し難い、2)適用対象は文書一般で、マニュアルなどの技術文書か ら、議会の議事録、シェークスピア全集まで分野を問わないため、そのような異 質なものが扱えるのかという疑問を持たれることがある、3)具体的・実務的な部 分だけでなく、抽象的な概念も含むため分かりにくい、4)Mosaicのデータ入力形 式でHTML(HyperText Markup Language)があるが、それがSGMLと似ているため、SGML とHTMLが同じものと誤解されることがある、などの特徴をSGMLは持っているから である。そこで本稿では、この種の誤解を解くことを主眼として、SGMLを解説す ることにした。

2.SGML方式出版の成立と普及

 SGML方式による出版の事例として、欧米では、SGMLの解説書[3,4]、マサチュ ーセッツ医学会によるAIDSの教科書、EU(欧州共同体)の議会の議事録などの先駆 的事例に加えて、最近では、大手出版社Elsevier Scienceが1993年から始めた大 学図書館向け雑誌論文配信サービス実験TULIPなどがある。また、SGML方式出版 のためには、DTD(Document Type Definition、文書型定義)を決める必要がある が、DTDを設計した所としては、AAP(米国出版協会)、大手出版社の WileyやElsevier などがある。さらに、AT&Tの主催する電子図書館実験 Red Sage でも、参加して いるSpringer、Wiley、マサチューセッツ医学会など21出版者の中でSGML方式採 用の機運が高まり、94年11月にはRed SageのためのDTD即ち"Red Sage DTD"を正 式決定し、95年中にこのDTDを使って雑誌出版を行う予定となった[5]とのことで ある。この事例は、SGML方式が電子ないしディジタル図書館で有効なことが認め られ、広く使われるようになってきたことを示している。なお、DTDについては 後で解説する。

 日本でのSGML方式出版[6]は、90年12月の情報知識学会誌[7,8]、91年3月に出 版された訳本「SGML入門」[9]、同時期に学術情報センターによって試作された 「SGML実験誌」[10]などを先駆とし、92年4月出版の訳本「実践SGML」[11]、慶 応大学図書館によるCD-ROM版三田商学研究(和文誌と欧文誌の最近5年分150論文 )の試作[12](92年7月)、学術情報センター紀要の第5巻(92年12月)を経て、93年1 月からの日本化学会欧文論文誌(Bulletin of the Chemical Society of Japan, BCSJ) の定期印刷刊行[13-17]に至る。BCSJは月刊で毎号60論文を収録する大論文誌で ある。日本化学会という大学会が、SGML方式を採用したことは、日本でもSGML方 式が実用化したことを示している。なお、BCSJのCD-ROM版[14,15,18]も試作され た。そしてWWW Mosaic版も試作され、94年10月末から95年1月末まで期間限定で テスト公開されている。

 またDTDの設計では、上記のプロジェクトに加えて、学術情報センターが学術 論文用の汎用DTDを設計したこと[6]が挙げられる。このDTDは、BCSJの全文DBを 学術情報センター全文DB検索サービスに載せる際に使用されている。

 なお、著者は情報知識学会誌、SGML実験誌、学術情報センター紀要、日本化学 会欧文論文誌、学術情報センターによる学術論文用汎用DTDのプロジェクトに参 画した。

3.SGMLとSGML方式電子出版

3.1.SGML方式電子出版

 全体像を把握してもらうため、SGML方式電子出版の方から解説する。SGML方式 では、印刷出版を1)文書データベース(document database,文書DB)の作成と、2) 文書DBからの印刷ないし電子出版物の作成の二段階に分ける。まず、文書DBを作 り、それを基に、印刷、CD-ROM作成、検索システム用の全文データベースの生成 などを行うのである。印刷で言えば、2)は如何にレイアウトするかということに なる。そして、SGMLが対応するのは1)の段階である。この考え方の基はISOの電 子印刷出版モデルで、そのモデルでは2)のレイアウトはさらに、element(要素) 単位の処理と、ページ単位の処理とに別れる。ISOでは前者をDSSSL、後者をSPDL に対応させている[19-21]。ただし、実際の処理系、たとえば、LaTeX[22,23]な どでは、DSSSLとSPDLの機能を併せ持っているので、本稿では1)と2)の二つに分 けて説明した。

 ここで、文書DBやelementはSGML特有の用語なので、簡単に説明しておく。「 文書」とは、たんなるテキストだけでなく、図表、写真、数式等々、文書に現れ る全てを含むことを表している。「文書DB」とは、文書を構造を持ったDBと考え ることを示す。文書には、章、節、段落などの階層構造があり、また、本文から 図、表、文献、注などへの参照といった参照関係がある。これらの構造を表現し たものを文書DBという。そして、elementとはDBの構成要素である。ただし、章 も節も段落もelementと言い、章は節で、節は段落で構成されていると言うから 、elementといっても最小単位ではない。

 なぜ、文書DBを導入したか。その理由は、印刷物、CD-ROM、検索用DBなど多様 な電子出版を行うには文書DBを基にした方が効率的だからである。以前は、印刷 といえば電算写植(CTS)で、全文DBを作る場合は電算写植データからプログラム で変換して作っていた。しかし電算写植では、1)図表、写真などは別扱いのため 、プログラムで生成できるのはテキスト部分のみとなる、2)電算写植データは印 刷・レイアウトのためのデータ(ゴチック、14ポイント、センタリング等の印刷 制御コマンド込みのテキスト)であって、それがどの項目(たとえば、章のタイ トル)かは書いてないため、どの項目かを判定しきれない場合もあり得るし、レ イアウトが異なってタイトルでも左寄せになればプログラムの書き直しになる、3) 印刷制御コマンドはハード・ソフト個別のため、それごとに変換ソフトを作る必 要がある、などの欠点があった。SGML方式はこれらの欠点を解消する。

 以上説明したように、SGMLの技術は文書DB構築のための技術であって、印刷の 機能やデータベース検索機能とは切り離されている。このことは、SGMLに対する 誤解を呼ぶ種となった。たとえば、印刷出版だけに興味を持つ人は、印刷機能を 持たないことに失望を感じたかもしれない。また、データベースのみに興味を持 つ人は、検索機能がないことに意外な感じを持っただろう。しかし、今ではこの 機能分担は寧ろ正解であったといえる。その後に進歩した印刷ソフトや検索ソフ トの多くがSGML文書DBに対応するようになったからである。

3.2.文書DBの構造表現の概略

 文書DBの構造は、DTD、テキスト・データ、図や写真を収めた外部エンティテ ィの3つで表現される。DTDは文書DBの構造を定義する。一般的なデータベース の用語でいえば、DTDはスキーマに相当する。そして、テキスト・データはDTDに 従って書かれる。テキスト・データには、文章だけでなく、表や式も含まれる。 なぜなら、表や式も文字で書けるからである。図や写真は別ファイルにビット・ データで表現され、その形式はTIFF, PICT, EPS(encapsulated PostScript)などSGML とは別の規格となるので、外部エンティティといわれる。なお、その図や写真の 表現形式が何かは、DTDの中で該当する図や写真ごとに書く。本文と図や写真の 参照関係については、DTDに参照関係の表示法を定義し、テキスト・データ中に 参照関係を記述する。

 前節(3.1)に述べたように、文書DBの構造には階層構造と参照関係があるが、 階層構造にはelement間の前後関係も存在する。たとえば、文書では、「本のタ イトル」、「本体」、「索引」の順になり、これが逆転することはない。また、 「章」は「章のタイトル」と「章の本体」から構成されるが、「章のタイトル」 の方が先に来る。

 ここで「ディジタル図書館における基本出版技法:SGML」というタイトルの解 説(仮にreviewと名付ける)があるとして、これを例にしてDTDとテキスト・デー タを説明する。この解説が収録されている逐次刊行物「ディジタル図書館」の印 刷様式から推定して、文書は図1に示す 階層構造を持つとする。すなわち、review はfront matter(前付, fmと略), body(本文, bdy), back matter(後付, bm)という3つの要素(element)が、こ の順で並んでいるとする。また、fmは要素:title,author, affiliation, abstractの順で構成される。bdy は章で、章は節で、節は段落で構成される。 あるいは直接段落となってもよい。等々とする。

             図1. 解説"review"の階層構造

3.3.DTDとSGML

 図1の構造をDTDとして書けば、図2となる。DTDはDocument Type Definitionの 略で、JISでは文書型定義と訳している。なお、DTDは文書構造をSGMLの構文を使 って定義・記述したものである。言い換えれば、SGMLはDTDを書くための言語で ある。SGMLの説明が中々出てこないと思われたであろうが、その理由はDTDの後 で説明した方が分かりやすいと思ったからである。

 図2の各行はELEMENT文で、個々の要素がどの要素から構成されるかを定義して いる。なお、図1では章のタイトル(chpti)は省略したが、DTDでは要素に加えて ある。また、refのELEMENT文は省略してある。

          <!ELEMENT  review  - -     (fm, bdy, bm?)>
          <!ELEMENT  fm     - O   (ti, aut, afl, abs)> 
          <!ELEMENT  bdy    - O   (chp+|sec+|p+)>
          <!ELEMENT  bm     - O   (ref?)>
          <!ELEMENT  chp    - O   (chpti, (sec+|p+))> 
          <!ELEMENT  p      - O   (#PCDATA)+>

              図2. "review"の階層構造を表現したDTD 

 SGMLの文法では、大文字小文字は同じものとして扱われる。ここでは要素の名 前が目立つように小文字にしてみただけである。ここで使われている要素名は省 略した名前で分かりにくいと思う読者も少なくないだろう。要素名はDTDのELEMENT 文で定義するのであるから、分かりやすい名前を定義してもよい。通常は名前の 長さは8文字以下と定められているが、DTDで長さを変えることも可能である。 また名前の頭の文字はAからZ(小文字でもよい)であるが、その後ろにはAからZの ほかに、数字、ピリオド、ハイフンなども使うことができる。この範囲で適当な 名前を考えればよい。

 ELEMENT文の形式は、<!、ELEMENT、要素名、開始・終了タグ省略の有無、開始 タグから終了タグの間に出現できる構成要素、> である。図2の1行目の記述は 、reviewという要素はfm, bdy, bmという3つの要素で構成され、また、この順 で出現することを示している。fm, bdy についても同様である。なお、#PCDATA とは解析対象文字データという意味で、予約語である。データ中に実体参照や開 始タグなどのマークを含んでいるかどうかをSGMLパーサが解析する必要があるこ とを示す。#は予約語を示す記号である。SGMLパーサについては後で説明する。

 これらELEMENT文の記述は図と同じことを表現しているが、DTDの方が構造をよ り厳密に記述できる。例えば、存在しなくともよいもの(optional,出現頻度0ま たは1)は"?"で示す。bm, refなどはoptionalである。また、章や段落などは一回 以上繰り返し出現する(1からN回)が、これは"+"で示す。なお、無いこともあり 、繰り返すこともある場合(0-N回)は"*"で示す。また、構成要素によっては順に 現れるのではなく、どちらかが現れる場合もある。これは|(OR記号, 縦棒)で 表現する。このほか &(AND記号)もあるが、これは&の両側の要素が必ず現れるこ と、ただし順序はどちらでもよいことを示す。

 開始・終了タグ省略の有無についても説明しておく。2行目は"- -" 、3行目 は"- O" となっている。左は開始タグ、右は終了タグを示し、"-"は省略できな いことを、"O"はomitted を示す。たとえば、要素reviewは開始・終了タグとも に省略できないことを、fmは終了タグは省略できることを示す。なお、開始タグ 、終了タグは文書テキストの所で説明する。

 なお、文書は、単行本、論文、レポートなど文書の種類によって、その構造が 異なるから、種類ごとにDTDは異なる。DTDを自分で書くにはSGMLの構文を知る必 要があるが、種類によってはDTDが既に用意されていることがある。その場合は 、それを使えばよく、自分で書く必要はない。

3.4.テキスト・データ

 reviewのテキスト・データを図3に示す。ここで、<review>, <ti>, <aut>など 、<要素名>の形式になっているものは、それぞれ、要素名が、review, ti, aut の要素の始点を示すマークであり、これを開始タグという。また、要素の終点は</review> のように、</要素名>で示す。これを終了タグという。この例で<ti>や<aut>の終 了タグ</ti>や</aut>が無いのは、この文書テキスト用のDTDで、これらの省略が 許されているからである。なぜ、許されるかと言えば、tiの次はaut, autの次はafl と定義されており、そのため<aut>が来ればtiの終了が、<afl>が来ればautの終 了が判定可能だから省略できるのである。一方、</review>の方は全体の終わり を示しており、これがないとreviewの終わりが判定できない。そのため、省略で きないのである。

 なお、文章中に記号として"<"や">"を使いたくなることもある。その時は、DTD で"<"を&lt;、">"を&gt;と定義しておけば、&lt;や&gt;と書けばよい。ここで、lt はlower than、gtはgreater thanを意味している。この手法は、外字を定義する のにも使える。

 ところで、図3のようなマーク付き原稿を作るのは面倒と思われるであろう。 実際には、<要素名>, </要素名>無しにテキストを入力する方法があるから安心 してほしい。たとえば、「SGML対応エディタ」の使用、自分で違和感のない記号 をDTDで定義し、その記号を正規の開始・終了タグにソフトで変換する方法など があるし、最近ではワープロ原稿からの自動変換[24]もある。

    <review>
    <fm>
    <ti>ディジタル図書館における基本出版技法:SGML
    <aut>石塚英弘
    <afl>図書館情報大学
       (中略) 
    <abs>SGMLは電子出版のための基本技法で........
       (中略) 
    <bdy><chp><chpti>はじめに
    <p>本稿では、SGML.....(中略).....について解説する。
    <p>なお、未だSGMLが.....(中略).....することにした。
   <chp><chpti>SGML方式出版の成立と普及
    <p>SGML方式による出版の事例.....(中略).....後で解説する。
       (中略) 
   <chp><chpti>SGMLとSGML方式電子出版
    <sec><secti>SGML方式電子出版
    <p>全体像を把握してもらうため、.....(中略).....説明した。
       (中略) 
   </review> 

              図3. "review"のテキスト・データ

3.5.非階層構造の表現

 文書の構造には、章・節・段落といった階層構造と、注・参照文献・図表など の非階層構造とがある。節は章の中に、そして段落は節または章の中に必ず存在 する。章が節の中に存在することは原理的にない。しかし、注・参照文献・図表 などの存在場所は自由度が高い。たとえば、注は脚注として同じ頁の下に置く方 式もあるし、章の終わりにまとめて置く方式もある。参照文献も脚注のように下 に置く方式と、章の終わりに置く方式とがある。図や表はどこにも存在しうる。SGML ではこの種の要素をfloating element(浮動要素)という。また、注・参照文献 図表などは存在場所の自由度が高いだけでなく、本文との間の参照関係もある 。重要な文献や図表は何度も参照されることがある。注・参照文献・図表などは 存在場所の点でも参照関係の点でも非階層的なのである。

 そこでSGML方式では次のようにして非階層構造も表現できるようになっている 。

1)浮動要素の定義

 まず、図や注などが文書データベース中の任意の場所に存在できることをDTD で定義しておく必要がある。これは例えば次のようにして行う。

    <!ENTITY % floats "fig|fn"> 
    <!ELEMENT  review - - (fm, bdy, bm?) +(%floats;)> 
ここで、%はパラメータ・エンティティを示す記号である。第1行は %floatsと いう名前のパラメータの値はfigまたはfnであることを定義しており、%floatsの 内容は図や脚注とするという意味になる。2行目の"+"は包含(inclusions)を示 し、任意の場所に()内のものが存在してよいことを意味する。%floatsの後ろに";" が付いているのは、%など記号で始まるエンティテイを引用する時は最後に;を付 けることになっているからである。

2)IDを使った参照

 これは、被参照データと参照指示データとをIDを使ってリンクする方法である 。IDの操作はSGMLの属性機能を使って行う。note(注)を例として説明する。

 DTDのうち、被参照データについては、

   <!ELEMENT  note  - -  (p)>
    <!ATTLIST  note  id  ID  #IMPLIED>
と定義する。ここで、ATTLIST 文は属性リストを宣言する文で、その形式は、 <!、ATTLIST、要素名、属性名、属性の宣言値、属性の省略時値、> である。ま た、属性名から属性の省略時値までは組で繰り返し可能である。noteの場合は、 要素noteがidという属性名を持ち、それはID (identifier value、識別子値) で あり、属性値が与えられていない場合は #IMPLIED(アプリケーションが省略時値 を決める)であることを示す。

 参照指示データは、noteのreferという意味で要素名をntref にすれば、

   <!ELEMENT  ntref  - O  EMPTY> 
    <!ATTLIST  ntref refid IDREF #IMPLIED>
と定義される。ここで、EMPTYとは構成要素が無いことを示し、IDREF(identifier reference value、識別子参照値)は被参照データの識別子を参照することを示す 。

 そして、被参照データの記述は、たとえば、

    <note id=note1>開発者3人の頭文字を並べたものでもある。</note> 
となり、本文の方の記述は
  ....汎用マーク付け言語GML<ntref refid=note1> はマニュアルや仕様書....
となる。この方式ならば、
  ....GML<ntref refid=note1> 以外でもシステムの命名の仕方には....
のように、本文の別の所で同じ注を参照することができる。

3)図や画像の取り扱い

 図や画像は、その番号・キャプション・図や画像の本体で構成される。番号や キャプションは文字データである。しかし、図や画像の本体はドット・データす なわちビット・データであることが多く、SGMLによる解析の対象外である。その ため、次に示すように取り扱いが少し異なる。

a)図や画像のデータは別ファイルに置く。

b)図や画像の表現形式には、PICT, EPS, TIFFなどがあるので、それを区別する 必要がある。

c)図や画像の大きさを指定する必要がある。

              <!ELEMENT figure  - - (nf?, figcp?, figbdy?)>
              <!ATTLIST figure  id     ID     #IMPLIED
                                file   CDATA  #IMPLIED
                                type   CDATA  #IMPLIED
                                sizex  CDATA  #IMPLIED
                                sizey  CDATA  #IMPLIED>
              <!ELEMENT figref  - O    EMPTY          >
              <!ATTLIST figref  refid  IDREF  #IMPLIED>

                            図4.  図のDTD

 図4に図の場合のDTDを示したが、画像でも基本的に同じである。nfは図の番号 、figcpはキャプション、figbdyは図本体である。キャプションには図のタイト ルと説明が含まれている。fileはファイル名で、その値は例えば、"b:¥figure¥figure1.dat" のようになる。ここで、"b:¥..."はディスクドライブB のディレクトリfigureに あるfigure1.dat というファイルとして保管されていることを示す。なお、CDATA とは予約語でSGMLの解析対象外の文字データのことである。typeはPICTほか表現 形式を示す。図の大きさはsizexとsyzeyで表す。要素figrefとその属性について は既に述べた手法と同じである。

4)その他の非階層構造

 表はDTDで定義し、それに従って表そのもののデータを書き、属性を用いて参 照すればよい。紙面の都合上、説明は割愛する。また、それ以外の非階層的な構 造の定義も属性を用いて行う。Bryanの本[9]に詳しく書かれているので、詳細に ついてはそれを参照されたい。

3.6.SGMLの機能と名前の由来

 SGMLは国際標準ISO 8879であるが、これまで解説したように、SGMLはDTDを書 くための言語であるから、文書の構造・構成を標準化した、すなわちDTDを標準 化した訳ではない。SGMLの考え方としては、全ての文書を記述できるDTDを決め るのではなく、対象とする文書とそれを扱う人々とに対してDTDを定めようとい う訳である。SGML方式の文書DBは、DTDとそれに従ったテキスト・データや外部 エンティティから構成されているから、他のDTDに基づく文書DBにプログラムで 変換できる。それがSGML方式の謙虚な点であり、実際的・現実的なアプローチと 言える。最近、SGMLが注目されている理由もその点にあると思っている。

 ところで名前の由来であるが、SGMLでは文書を構造化するためにelementを識 別するが、それに開始タグと終了タグを用いた。これがgeneralized markupであ る。本来mark upとは、センタリング、フォントや字の大きさの指定などを編集 者が赤字で書き込むことであった。これを電子的に指定するのでmarkupと一語に し、また構造を指定することにより、印刷用のハード・ソフトの個別のコマンド から自由になり、一般化(generalized)された。そこで、generalized markupと なった。languageは言語を、standardはISOのような標準となったことを示す。 確かに分かりにくい名前ではある。

4.WWW MosaicとHTML

 阪口の解説[25]にもあるように、MosaicはSGMLに準拠しており、そのためのデ ータ入力言語がHTMLである。MosaicのDTDは文書の種類に依らず一つで、DTDその ものは公開されておらず、テキスト・データの書き方がHTMLとして公開されてい る。HTMLは文書の階層構造は表現しておらず、ハイパーテキスト[26]のリンク機 能で代わりをするようになっている。また、elementの種類は少なく、DTDを直せ ないため追加もできない。一方、Mosaicの強力なハイパーテキスト機能が使える 点は便利である。

 SGML文書DBとHTMLの違いを示すために、先程示した解説のSGMLのテキスト・デ ータをHTML形式に書き換えて、図5に示す。文書のタイプは一つしかないから、 最初は<HTML>で最後は</HTML>となる。<H1>, <H2>はヘディング(見出し)で、1, 2, 3の3段階ある。1の方が字が大きい。<B>を使えば、ボールド(太字)にな る。どう使い分けるかはデザインの問題である。段落は終わりに<P>を付けるこ とになっている。

 参照関係は、参照箇所の文字列を<A HREF="refid.html">と</A>で挟む。ここ で、Aはアンカー(錨の意味、ハイパーテキストのリンク元を示す)のAである。 また、""内は被参照データの場所を示す。

 ここに示した例は説明用のごく簡単なもので、もっと凝ればより良いものがで きることを指摘しておく。

 SGML文書DBの方がDBとしてより詳しい情報を持っている。そのため、SGML文書DB からHTMLはプログラムで生成することができる。しかし、その逆は難しい。その ため、HTMLで文書を保持するよりも、SGML文書DBで持っていた方がよい。HTMLの 方は検索表示用と考えるのが妥当であろう。

    <HTML>
    <TITLE>ディジタル図書館における基本出版技法:SGML</TITLE>
    <H1>石塚英弘</H1> 
    <H2>図書館情報大学</H2> 
       (中略) 
    <H2>概要:</H2> 
    SGMLは電子出版のための基本技法で........<P> 
       (中略) 
    <H1>はじめに</H1> 
    本稿では、SGML.....(中略).....について解説する。<P> 
    なお、未だSGMLが.....(中略).....することにした。<P> 
   <H1>SGML方式出版の成立と普及</H1> 
    SGML方式による出版の事例.....(中略).....後で解説する。<P> 
       (中略) 
   <H1>SGMLとSGML方式電子出版</H1> 
    <H2>SGML方式電子出版</H2> 
    全体像を把握してもらうため、.....(中略).....説明した。<P>
       (中略) 
   </HTML> 

              図5. "review"のHTML形式データ

5.SGML文書DBの一例としての日本化学会欧文論文誌

 日本化学会欧文論文誌は93年1月号からSGML文書DBとなっている。印刷はプロ グラムでLaTeXに変換して行っている。また、このDBは学術情報センターの全文 検索システムへも提供[18]されている。学情センターのシステムは学術論文用の 汎用DTDを持つことにより、SGML文書DBへのインターフェースを持っているので 、日本化学会と学情センターの二つのSGML文書DB間の自動変換が行われている。 これ以外に、MS Window上のハイパーテキスト・システム Multimedia Viewerで 動くCD-ROMも試作[18]されている。このビューアはRTF(Rich Text Format)のイ ンターフェースを持っているので、SGML文書DBからRTFへのプログラムによる変 換を行って実現した。また、94年10月末から95年1月末まではMosaic版もテスト 公開している。これもプログラムによる変換で実現した。なお、Mosaic版には93 年1月号から94年6月号までしか載せていない。DBが有りながら、新しい号を載せ なかった理由は、印刷物の売れ行きの邪魔を避けるためである。また、これはあ くまでテストであり、継続は今のところ考えていない。

6.SGML関連ツール

 ここでは、SGML方式の全文データベースを作って利用する時に、どのような仕 事があるのか、また、それはどのSGML関連ツールを使って行うのかを説明する。

1)DTDの作成

 自分が扱う全文データベース用のDTDが既に存在する場合は、それを利用すれ ばよいので、作る必要はない。そうでない場合は、既存のDTDを改良するか、あ るいは自作すればよい。作ったDTDがSGMLの文法に合っているかはSGMLパーサ(parser) でチェックする。

 パーサとしては、たとえば、SEMA GroupのMark-It, ExotericaのOmniMark, 富 士通のSGML/Baseなどがある。また、public domain のソフトとしては、sgmls がある。

2)文書テキストの作成

 DTDに従った文書テキストを作る方法は、A)SGMLエディタを使う、B)既存のワ ープロ・ソフトを使うの二つに大別される。SGMLエディタを使えば、プロンプト に従って該当データを入力することによって容易に文書テキストを作ることがで きる。BにはB1)特定の記号をDTDで設定して入力し、SGMLパーサを通して変換す る、B2)ワープロ・ソフトのスタイル・シートの機能を使う、B3)同じくマクロ機 能を使う、B4)変換ソフトを使うなどの方法がある。このようにすれば、Bでも開 始タグや終了タグの入力無しで文書テキストを作ることができる。日本化学会で は94年4月からMS Word, WordPerfect, PageMakerで使用できるスタイルシートを 使った電子投稿の実験も行っている。なお、B2, B3などの場合はSGMLパーサを通 してチェックした方がよい。

 SGMLエディタとしては、たとえば、SoftQuadのAuthor/Editor, 松下電送のSGML-Plus などがある。また、ワープロ形式からSGML形式への変換ソフトも最近いろいろ出 てきている。

3)文書テキストの印刷

 SGML文書用のフォーマッタを使うか、SGML形式から変換してLaTeXで印刷する か、または印刷ソフトでSGML対応機能を持ったものを使えばよい。たとえば、LaTeX 出力が可能なものとしては、Mark-It, SGML/Base, SGML-Plusなどがある。また 、SGML対応の印刷ソフトとしては、日本ユニテックのGRACE, InterleafのInterleaf5<SGML> などがある。

4)電子図書の作成

 SGMLに対応しているものとしては、DynaText, WWW, Guideなどがある。それ以 外でもそのソフトへの変換プログラムを書けばよい。

7.おわりに

 SGMLによる全文データベースは欧米では広く使われるようになっているし、日 本でも漸くその傾向が出てきた。これは、SGML関連のツールがいろいろと出てき たこと、紹介の文献や本が出版されるようになったことなどによると思われる。 また、SGMLに動画や音声を取り入れたHyTimeもISO規格になり、94年夏にはJIS規 格にもなった。

 さらに注目されることとして、アメリカのCALSの民生化がある。CALSはこれま でSGMLの普及を進める原動力となっていたが、CALSが国防省のプロジェクトであ ったため、SGMLは自分には関係ないと思う人も少なくなかった。しかし、93年CALS の本称がContinuous Acquisition and Life-cycle Supportに変更され、一般官 庁、民間企業間の取引にも適用しようとする動きが活発になってきた。そして、CALS はネットワーク環境NII(情報ハイウェイ)と結びつき、新たな展開を見せている 。

 今後、SGMLの浸透は必然となろう。特に電子図書館ないしディジタル図書館で はSGMLは必要不可欠となっていくだろう。今後の進展に期待したい。

 なお、本稿は頁数の関係もあり、触れずに終わった点も少なくない。そこで最 後に解説書を紹介しておこう。SGMLとは何かを手短に知るには文献[27]が良い。 また、各分野の専門家が「SGMLは如何に有効か」を書いた本[28]も参考になろう 。Herwijnen[11]はSGML方式を実行するにはどうしたらよいかを書いている。Bryan の本[9]はSGMLの機能に詳しい。SGMLの元祖Goldfarbの本[29]はSGMLの全貌を明 らかにしようとした本である。そして、本稿がSGMLの理解の一助になれば幸いで ある。

文献

[1]ISO 8879-1986, Information processing - Text and office systems - Standard Generalized Markup Language (SGML), Oct. 15, 1986.

[2]JIS X 4151,文書記述言語SGML, 日本規格協会, 1992年7月, 231p.

[3]Martin Bryan. SGML: An Author's Guide to the Standard Generalized Markup Language. Addison-Wesley, 1988.

[4]Eric van Herwijnen. Practical SGML. Kluwer Academic Publishers, 1990.

[5]根岸正光, 私信.

[6]H.Ishizuka. The reception of SGML based electronic publishing by Japanese scientific community. Proc. 47th FID(Int. Fed. Inf. Doc.) Conf. Cong., pp.505-508 (Oct. 1994, Omiya).

[7]情報知識学会誌, Vol.1, No.1, 1990 年12月, 98pp.

[8]石塚英弘. SGML形式による学会誌全文データベースの構築と印刷. 情報知識 学会誌, Vol.2, No.1, pp.23-48(1991).

[9]Martin Bryan 著, 山崎俊一監訳, 福島誠訳. SGML入門. アスキー出版局, 1991 年3月, 378pp.

[10]根岸正光. 『SGML実験誌』の出版について. SGML実験誌 1991, p.i-iii(1991), 学術情報センター.

[11]Eric van Herwijnen著, SGML懇談会実用化WG監訳. 実践SGML. 日本規格協会, 1992 年4月, 305pp.

[12]斉藤雅. 学術論文CD-ROMシステム. 情報処理学会人文科学とコンピュータ研 究会資料, 15-1, pp.1-7(1992).

[13]伊藤卓. 日本化学会欧文誌の全文データベース化と電子出版化への移行につ いて. 化学と工業, 46巻1号, pp.92-95 (1993).

[14]石塚英弘, 伊藤卓, 榎敏明, 千原秀昭, 中西敦男, 田中洋一. 日本化学会欧 文誌のSGML形式全文データベースの構築・印刷そして検索. 情報処理学会情報学 基礎研究会資料, 29-1, pp.1-8 (1993.5).

[15]斉藤伸雄. オブジェクト指向による論文誌ビューアの開発. 日本印刷学会年 会 (1993.5).

[16]伊藤卓, SGMLを用いた学術論文誌の電子出版化−日本化学会欧文誌の場合−. 情報の化学と技術, Vol.43, No.12, pp.1089-1096(1993).

[17]上嶋邦義, 学術論文誌の全文データベース化と電子出版の実際. 医学図書館, Vol.41, No.1, pp.38-45(1994).

[18]石塚英弘, 伊藤卓, 千原秀昭, 根岸正光, 中西敦男, 田中洋一. 全文検索シ ステムのリーソースとしてのSGML方式データベース. 情報処理学会情報学基礎研 究会資料, 33-6, pp.29-34 (1994.5).

[19]安達淳「国際規格; 文書スタイル意味指定言語(DSSSL) の概要」情報処理, Vol.33, No.2, pp.176-184(1992).

[20]高橋亨「標準ページ記述言語(SPDL)とその動向」情報処理, Vol.33, No.6, pp.689-697(1992).

[21]小町祐史編著. 電子出版技術入門. オーム社, 1993年, 175pp.

[22]Donald E. Knuth. The TeXbook. Addison-Wesley, 1984. ( 斉藤信男監修, 鷲谷好輝訳. TeX ブック. アスキー出版局, 1989).

[23]Leslie Lamport. LaTeX: A Document Preparation System. Addison-Wesley, 1986, 242pp. (E. Cooke・倉沢良一監訳, 大野俊治・小暮博道・ 藤浦はる美訳. 文書処理システムLaTeX. アスキー出版局, 1990).

[24]石塚英弘, 伊藤卓, 竹内敬人, 千原秀昭, 中野英彦, 眞野倖一, 吉村忠与志, 中西敦男, 田中洋一. 電子投稿によるSGML方式全文データベースの作成ー日本化 学会の実験ー. 情報処理学会情報学基礎研究会資料, 35-1, pp.1-8 (1994.11).

[25]阪口哲男. Internetにおける情報資源の利用と提供の実際. ディジタル図書 館, No.1, pp.43-50 (1994.8).

[26]Jakob Nielsen. HYPERText & HYPERMedia. Academic Press, 1990.斉藤孝訳. HYPERText & HYPERMedia. HBJ出版局, 1991, 257pp.

[27]吉岡誠編著. SGMLのススメ. オーム社, 1993年11月, 167pp.

[28]根岸正光・石塚英弘編. マルチメディア選書, SGMLの活用. オーム社, 1994 年12月刊行予定.

[29]C.F.Goldfarb. The SGML Handbook. Oxford University Press, 1990, 633pp.