SGML (Standard Generalized Markup Language 、スタンダード ジェネラライズド マークアップ ランゲージ)は、マニュアル などの文書 のためのマークアップ言語 である。
オックスフォード英語辞典 の電子版を記述するのに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) の規格が定められた[ 注 1] 。 <!DOCTYPE memo PUBLIC "-//SuzukiCorp//DTD Memo//JP"> <memo> <from> 木村<to> 富田様<date> 2001/10/01<subject> 役員会議<para> 役員会議の場所は会議室Bに変更になりました。</memo> SGML文書を、人間が読めるように、レイアウトして表示することは、SGMLパーサ という名のプログラムが行う。つまり構文解析 およびレイアウトを行うプログラムである。SGMLパーサの最も初期の市販品としては、ブリュッセルのSOBEMAP 社のものおよび、シカゴのDatalogicsデータロジックス 社[ 注 2] のものがあった。[ 注 3]
SGMLは機能が満載されていたことにより、そのままでは全てを実装することは困難であった。また、タグの構造が原因で、パーサのアルゴリズムが比較的複雑になることも難点だった。そこで後に、SGMLを簡略化および改良した形のXML が開発され、普及してゆくことになった。SGML文書はXML文書へと順次、変換・移行されることになった。
SGMLはこれら2つのマークアップ言語 の源流であり、現在のインターネット利用者は皆SGMLの恩恵に浴しているのである。
^ HTMLでのスタイルの記述はCSS (Cascading Style Sheets) による。 ^ https://www.datalogics.com/ ^ 注:SGMLパーサは、SGML文書の文法が規則に適合しているか検証する機能も持っており、そうした機能のためにだけ使われることもある。出典https://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/sgml/intro.html#h-19.1 ^ 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 が存在する。 ^ HTML4までのHTMLはSGML応用系とされていたが、HTML5 以降はSGML応用系ではない。