Standard Generalized Markup Language
MIMEタイプ |
application/sgml, text/sgml |
---|---|
UTI | public.xml |
開発者 | ISO |
種別 | メタ言語 |
派生元 | GML |
拡張 | HTML, XML |
国際標準 | ISO 8879 |
Standard Generalized Markup Language(スタンダード ジェネラライズド マークアップ ランゲージ、略:SGML)は、マニュアルなどの文書のためのマークアップ言語である。SGMLとXMLの対応(比較)については、ジェームズ・クラークによる「Comparison of SGML and XML」というタイトルの、1997年12月15日に議論のためにまとめられた(何らかの公式のものではない)ノートがあり[1]、それによれば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 が存在する。
背景
1980年代、軍艦や軍用機などの際限の無い高度化は、マニュアルの際限の無い膨張という結果をもたらした。改良が加えられた時などにもマニュアルを書き直す作業が発生して業務の負担となっていた。このことから、マニュアルを電子化して容易に書き換えられるようにし、印刷用紙を大幅に削減することで、メンテナンスの簡素化をはかるための技術が必要とされた。
ただし、軍艦や軍用機などは数十年という長期間の保有が必要になるため、長期間にわたりデータが利用可能とならなければならない。電子文書は特定の企業のワープロソフトを用いるとそのソフトのバージョンが上がったり、最悪の場合そのソフトを開発している会社が開発を中止したり、倒産したりしてソフトウェアが無くなった場合は、今まで作成したデータが読めなくなるという問題が発生してしまう。そこで、プレーンテキストのみを用いて、「タグ」を使うことによってデータに意味を持たせることが考えられた。なお実際には、データ形式の仕様が明確で、かつ自由に公開されていれば、そのエディタがプロプライエタリだろうがバイナリだろうが全く何も問題はない。[注 1]
ただし以上は正確にはSGML(の原形にあたるもの)が軍関係に「採用」された経緯である。
歴史
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) の規格が定められた。[注 2]
簡単な例
<!DOCTYPE memo PUBLIC "-//SuzukiCorp//DTD Memo//JP">
<memo>
<from>木村
<to>富田様
<date>2001/10/01
<subject>役員会議
<para>役員会議の場所は会議室Bに変更になりました。
</memo>
パーサ
SGML文書を、人間が読めるように、レイアウトして表示することは、SGMLパーサという名のプログラムが行う。つまり構文解析およびレイアウトを行うプログラムである。SGMLパーサの最も初期の市販品としては、ブリュッセルのSOBEMAP社のものおよび、シカゴのDatalogics データロジックス社[注 3]のものがあった。[注 4]
問題
SGMLは機能が満載されていたことにより、そのままでは全てを実装することは困難であった。また、タグの構造が原因で、パーサのアルゴリズムが比較的複雑になることも難点だった。そこで後に、SGMLを簡略化および改良した形のXMLが開発され、普及してゆくことになった。SGML文書はXML文書へと順次、変換・移行されることになった。
貢献
- 上記のごとく、SGMLをもとにして、XMLが開発された。
- SGMLを基にした応用技術の一つが、HTML である。ウェブページを記述する言語HTMLなくしては現在の爆発的なインターネットの普及は考えられない。
SGMLはこれら2つのマークアップ言語の源流であり、現在のインターネット利用者は皆SGMLの恩恵に浴しているのである。
参考文献
- 『SGML入門』Martin Bryan 著、山崎俊一、福島誠 訳、アスキー出版局、1991年 ISBN 4-7561-0069-4
脚注
注
- ↑ しばしばXMLの優越性としてプレーンテキストであることなどが主張されているが、例えばバイナリエディタが存在しない世界である等という仮定があればそのような優越性も正しいものと思われる。
- ↑ HTMLでのスタイルの記述は CSS (Cascading Style Sheets) による。
- ↑ http://www.datalogics.com/
- ↑ 注:SGMLパーサは、SGML文書の文法が規則に適合しているか検証する機能も持っており、そうした機能のためにだけ使われることもある。出典 http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/sgml/intro.html#h-19.1
出典
関連項目
- Document Type Definition (DTD)
- Document Style Semantics and Specification Language (DSSSL)
- Extensible Markup Language (XML)
- HyperText Markup Language (HTML)
- マークアップ言語
- SGML実体