SGML

SGML（、スタンダード ジェネラライズド マークアップ ランゲージ）は、マニュアルなどの文書のためのマークアップ言語である。

 背景 
1980年代、軍艦や軍用機などの際限のない高度化は、マニュアルの際限のない膨張という結果をもたらした。改良が加えられた時などにもマニュアルを書き直す作業が発生して業務の負担となっていた。このことから、マニュアルを電子化して容易に書き換えられるようにし、印刷用紙を大幅に削減することで、メンテナンスの簡素化をはかるための技術が必要とされた。

ただし、軍艦や軍用機などは数十年という長期間の保有が必要になるため、長期間にわたりデータが利用可能とならなければならない。電子文書は特定の企業のワープロソフトを用いるとそのソフトのバージョンが上がったり、最悪の場合そのソフトを開発している会社が開発を中止したり、倒産したりしてソフトウェアが無くなった場合は、今まで作成したデータが読めなくなるという問題が発生してしまう。そこで、専用のソフトウェアでなくとも編集可能なプレーンテキストを元に、タグを使うことによってデータに意味を持たせることが考えられた。

 歴史 
1979年、IBMでプロジェクトマネージャをしていた は、Edward MosherおよびRaymond Lorieらとともに、「GML」(Generalized Markup Language) を発表し、それは「DCF」(Document Composition Facility) の名で商業化された。この成功でゴールドファーブは有名になり、IBMを退職してGMLの後継言語であるSGMLを開発することになったのである。

ISOのSGML規約は1986年の出版後2ヶ月も経たないうちにベストセラーとなった（その10年前に発売されたFORTRANのISO規約の部数を2ヶ月で超えた）。

SGMLは、ISOから正式に承認される以前から、すでに、アメリカ国防総省やECの公式出版事務局など、数々の公的機関で使用され始めていた。ゴールドファーブの古巣のIBM社でも導入され、同社の文書システムに大変革をおこした。ヨーロッパでもCERN（欧州原子核研究機構）など、広く採用され、例えばフランスを例に挙げると、エアバス社、SNECMA（フランス国営の航空機エンジンメーカー）およびフランス軍などで採用されることになった。

日本においては、厚生省への新薬申請のデータ形式としてSGMLが採用された。それに伴い製薬会社やその関連企業においても導入された。他にも特許庁などでも導入された。航空機産業・防衛産業、自動車産業においても海外との共同開発や部品供給時の情報交換やマニュアル・報告書の電子化などに利用されることとなった。

 特徴 
 SGMLは「インスタンス」、「DTD」、「SGML宣言」の3つで構成されている。
 SGMLのデータ自体はプレーンテキストで作られている。
 レイアウト情報はスタイルシートを組み合わせて記述される。
 スタイルシートは「スタイルシート言語」で記述されている。
 通常、人が読む時は、上記スタイルシートに沿って、レイアウトを整えられたうえで表示(出力)される。
 SGMLで使うことができるスタイルシート言語として、DSSSL (Document Style Semantics and Specification Language) の規格が定められたHTMLでのスタイルの記述は CSS (Cascading Style Sheets) による。。

 簡単な例 
<!DOCTYPE memo PUBLIC "-//SuzukiCorp//DTD Memo//JP">
<memo>
<from>木村
<to>富田様
<date>2001/10/01
<subject>役員会議
<para>役員会議の場所は会議室Ｂに変更になりました。
</memo> 

 パーサ 
SGML文書を、人間が読めるように、レイアウトして表示することは、SGMLパーサという名のプログラムが行う。つまり構文解析およびレイアウトを行うプログラムである。SGMLパーサの最も初期の市販品としては、ブリュッセルのSOBEMAP社のものおよび、シカゴのDatalogics データロジックス社https://www.datalogics.com/のものがあった。注：SGMLパーサは、SGML文書の文法が規則に適合しているか検証する機能も持っており、そうした機能のためにだけ使われることもある。出典 https://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/sgml/intro.html#h-19.1

 問題 
SGMLは機能が満載されていたことにより、そのままでは全てを実装することは困難であった。また、タグの構造が原因で、パーサのアルゴリズムが比較的複雑になることも難点だった。そこで後に、SGMLを簡略化および改良した形のXMLが開発され、普及してゆくことになった。SGML文書はXML文書へと順次、変換・移行されることになった。

 貢献 
 上記のごとく、SGMLをもとにして、XMLが開発されたSGMLとXMLの対応（比較）については、ジェームズ・クラークによる「Comparison of SGML and XML」というタイトルの、1997年12月15日に議論のためにまとめられた（何らかの公式のものではない）ノートがあり、それによればSGML (ISO 8879) とXMLの関係はスーパーセットともサブセットとも結論付けられてはいない。XML 1.0のAppendix CではNon-Normative（参考）として、XMLはSGMLのサブセットとなるべく設計され（designed to be）、全てのXML文書は同時にSGMLにもconforming（準拠）でもあるべき（should）と書かれており、前述のノートを参照せよとされている。国際標準は ISO 8879:1986 であり、対応するJISとして JIS X 4151:1992 が存在する。。
 SGMLを基にした応用技術の一つが、HTMLであるHTML4までのHTMLはSGML応用系とされていたが、HTML5以降はSGML応用系ではない。。ウェブページを記述する言語HTMLなくしては現在の爆発的なインターネットの普及は考えられない。 

SGMLはこれら2つのマークアップ言語の源流であり、現在のインターネット利用者は皆SGMLの恩恵に浴しているのである。

 参考文献 
 『SGML入門』Martin Bryan 著、山崎俊一、福島誠　訳、アスキー出版局、1991年 ISBN 4-7561-0069-4

 脚注 
 注釈 


 関連項目 
 Document Type Definition (DTD)
 文書型宣言
 Document Style Semantics and Specification Language (DSSSL)
 Extensible Markup Language (XML)
 HyperText Markup Language (HTML)
 マークアップ言語
 SGML実体

 外部リンク 
 The SGML History Niche
 SGML: In memory of William W. Tunnicliffe
 JIS X 4151-1992 文書記述言語SGML

Category:マークアップ言語
Category:データモデリング
Category:JIS
Category:ISO標準