SGML Handbook

SGML

[39] SGML は、マーク付け言語の共通の構文 (あるいはメタ構文) を規定したものでした。 HTMLXML をはじめ多くのマーク付け言語SGML から派生しました。また一般化マーク付け (表現と構造の分離) や DTD (スキーマ) などの思想はその後のマーク付け言語の設計にも大きな影響を与えました。

仕様書

本体仕様

[43] SGML 本体は、 ISO 8879(:1986) で規定されていました (素のSGML)。

[99] >>98 冒頭と附属書Aのみ閲覧可能。

[62] 1996年には Cor.1 で ENR 拡張が追加されています。

[63] 1999年には Cor.2 で Web SGML が追加されています。

[64] Cor.1 と Cor.2 は SGML の改訂版ではあるのですが、以前の版を廃止・変更する形ではなく、 併存する3つのモードという形になっています。

[11] >>10 は、 時点での ISO 8879 を改訂するとしたらの変更予定でした。 定義の明確化などの比較的軽微の変更に加えて、 ASN.1 によるバイナリー表現の追加などの新機能も盛り込まれていました。 しかしここでの変更はその後の拡張には反映されていません。

[41] The Sgml Handbook は、 SGML中の人による詳細な解説書です。 ISO 8879 (と N1035) をベースに解説 (注釈) を加えています。

[97] THE SGML HANDBOOK 所収の ISO 8879 出版に関するエピソードは SGMLguid 参照。

拡張仕様

[65] 文書体系特性集合公式システム識別子といった SGML への追加機能が ISO/IEC 10744 (HyTime) の附属書として規定されています。

[47] DSSSL/HyTimeENR (TC1) と WebSGML (TC2) でつぎはぎ規格と化した ISO 8879, 全文改訂したらどうよ? と素人目には映るんですが、規格の規定はできるだけいじりたくないという ISO 的事情があるようです。

[42] SGML Catalog, 9601:1996 といった周辺仕様もありました。

翻訳規格

[44] 日本では、翻訳されて JIS X 4151 となっていました。

[46] 台湾では、翻訳されて CNS 13854 となっていました。

[48]

JIS名前対応国際規格
JIS X 4151‐1992文書記述言語 SGMLISO 8879‐1986 + 同 Amendment 1
JIS X 4151:1998文書記述言語 SGML (追補 1)ISO 8879:1986/Cor.1:1996
JIS X 4151:2001文書記述言語 SGML (追補 2)ISO 8879:1986/Cor.2:1999

[49] 初版 (1992) 以来 JIS は2回の改訂で第3版 (2001) になってるけど、規格票は 1992 + 2追補という形になっている。

[45] ISO 8879 と JIS X 4151‐1992 は章立てが異なっています。

JIS翻訳規格化する際に一生懸命 JIS の体裁になるように頑張っていたわけです。 (当時は今とは違って、直接原国際規格を参照したりする機会はそんなになかったのでして。それ以前に規格なんて読む人自体ごく少数だったのですし。)

だけど今となっては負の遺産と申しましょうか。 章だけじゃなくて、語定義の番号も (語定義が五十音順になってるので) 一致してません。90年代後半に出た追補の方は出来るだけ原規格の体裁を残すという方針のために、原規格の本体の体裁を参照しているものだから、 一つの規格の中で首尾一貫していないという最悪の状況。

ISO 8879JIS X 4151CNS 13854 KS X ISO 8879:2014 (機械翻訳ベースの仮訳)
(KS としての) 序文
Clause 0Introduction参考1 SGML の背景KS X ISO 8879:2014解説 0 導入
Clause 1Scope1. 適用範囲1. 適用範囲1 適用範囲
Clause 2Field of Application2. 適用分野KS X ISO 8879:2014解説 1 応用
Clause 3References1. 備考 2. (引用規格)引用標準・相對國際標準2 引用規格
KS X ISO 8879:2014解説 2 引用規格
Clause 4Definitions3. 用語の定義2. 用語釋義3 定義
Clause 5Notation4. 表記法3. 記法4 表記法
Clause 6Entity Structure5. 実体構造5. 実體結構5 実体構造
Clause 7Element Structure6. 要素構造6. 元素結構6 要素構造
Clause 8Processing Instruction7. 処理指令7. 處理指令7 処理司令
Clause 9Common Constructs8. 共通の構成要素8. 共同構造8 共通構成要素
Clause 10Markup Declarations: General9. マーク宣言—一般9. 標示宣告 : 通用9 マーク付け宣言・一般
Clause 11Markup Declarations: Document Type Definition10. マーク宣言—文書型定義10. 標示宣告 : 文件型式定義10 マーク付け宣言
Clause 12Markup Declarations: Link Process Definition11. マーク宣言—連結処理定義11. 標示宣告 : 鍵結處理定義11 マーク付け宣言・連結処理宣言
Clause 13SGML Declaration12. SGML 宣言12. SGML 宣告12 SGML宣言
Clause 14Reference and Core Concrete Syntaxes13. 規格参照具象構文・核具象構文13. 参考與核心具體語法13 参照・中核のもの
Clause 15Conformance14. 適合4. 符合14 適合性
Annex AIntroduction to Generalized Markup参考2 一般化マーク付けの導入附録 1 通用標示的介紹附属書A(参考) 一般化マーク付けの紹介
Annex BBasic Concepts参考3 基本的概念附録 2 基本概念附属書B(参考) SGMLの基本概念
Annex CAdditional Concepts参考4 付加機構附録 3 其它觀念附属書C(参考) 追加概念
Annex DPublic Text参考5 公開文附録 4 公用文字附属書D(参考) 公開テキスト
Annex EApplication Examples参考6 応用例附録 5 應用範例附属書E(参考) 応用例
Annex FImplementation Considerations参考7 実現についての考察附録 6 實作上的考慮附属書F(参考) 実装についての考察
Annex GConformance Classification and Certification参考8 適合性の類別及び検査附録 7 符合分類與驗證附属書G(参考) 適合性の分類と認証
Annex HTheoretical Basis for the SGML Content Model参考9 SGML 内容モデルの理論的基礎附録 8 SGML 内容模型的理論基礎附属書H(参考) SGML内容モデルの理論的根拠
Annex INonconforming Variations参考10 規格外の変形附録 9 非符合的變動附属書I(参考) 規格外の変形
参考11 SGML 構文式一覧附録 10 SGML 生成規則
(JIS としての) 解説
英中名詞對照
生成規則的符記
(JIS としての) 追補1 まえがき
追補1
Annex J附属書 J (規定) 拡張命名規則
(JIS としての) 追補1 解説
(JIS としての) 追補2 まえがき
追補2
Annex KWeb SGML Adoptation附属書 K (規定) Web SGML 適応
Annex L附属書 L (参考) XML に関する追加要件
(JIS としての) 追補2 解説

[50] (原文にもあるでしょうが) 参考の章は SGML の解説書みたいになってて、そこから読み始めるのがいいかもしれません。 (規格本文は厳密な定義のためにわけわかめになってるから、そこから読み始めるのは理解不能になるかもしれない諸刃の県。)

[52] >>51 この HTML 版より、 JISC から PDF 版を入手した方がいいですね。そっちは追補も載ってるんだし。

[53] 名無しさん: JISC から入手できる PDF, 以前は1つだけだったのにいつの間にか2つになってます。1つ目の文書は WebSGML だけで、2つ目は全部。2つ目と以前入手できた唯一の文書は内容的には同じようですが、バイナリ的には異なっています。 JISC も謎なことしますね・・・

[54] 規格票、随分誤植多くない?

[55] >>54 必ずしも誤植とはいえないけど、でもってこの規格に限らないけど、 " が丁寧にも (といっても印刷屋には当然なんだろうが) に不必要に (LIT なのに) 直されていたり。 (そのくせそうでないところもあるから、やっぱり誤植だ。)

[56] 1992規格は原国際規格と章の順序が変わっていたり、用語も頑張って訳したりして日本語の規格として完成させようとしてるけど、追補は原国際規格に忠実を目指していて、用語もカタカナ率が高い気がする。規格一般の傾向の変化を反映しているみたいで面白い。

[57] >>56 当時はともかく、今では国際規格と章が対応していないと不便だもんねぇ。

[58] TC2 で急にカタカナが一杯になってわけがわからんくなったわい...

[59] >>58 解説は時代の変化云々とか称して訳を変更したとかいうけど、引数パラメタとか絶対改悪だよね。あたしゃつい最近まで、パラメタ実体参照はなにがどうパラメーターなんだい? と疑問だったけど、 SGML 本体規格で引数実体参照と呼ばれていて、しかも実際マーク宣言の引数になっているのを見て長年の疑問が氷解したね。

[60] >>59 それとかマーク宣言 (markup declaration) がマーク付け宣言に変わったり。確かに訳語の整合性 (マーク付け = markup) という意味では悪くはないんだけど、わざわざ冗長にする必要はあったのかどうか。使い慣れたマーク宣言, マーク区間という呼び名の方が良くありません?

[61] CNS 13854‐86 (1992) は、 ISO 8879 に対応する CNS の規格です。 (ISO 8879-1986 に対応すると書いてありますが、 1988 年の Amendement が反映されているように見えます。)


[76] 大韓民国では KS X ISO 8879:2014

[77] KS X ISO 8879:2014IDT ISO 8879:1986 とされています。

[78] その後の2つの Cor. は反映されていません。 の Amd. が本当に反映されていないのかは未確認。

[79] になって今更わざわざ (おそらく大韓民国でももう誰も使っていないであろう) SGML を改正してるのに中身は古いままって何考えてるんだ、 と思って KS のサイトの改正履歴を見ると、

[80] 改正履歴

[86] こういうことらしく、が初版(なのに改正)なのですが、 きっとその前の旧規格番号の頃のものを中身そのままで制定し直したのでしょう。 旧規格番号のときも改正せずに放っておいたのだと思われます。

[87] の確認のところに、 対応国際規格も改正されてないし国内からも改正要求がない、 とか書いています。後者は知らんが前者は嘘です。 国家標準化団体はどこの国でも杜撰なんですね。

[88] の改正が件の :2014 です。 KS としての体裁を改めるだけの改正だと書いてあって、 実質はただの確認に近いもののようです。 表紙にはたしかに :2014 と2015年改正と書いてあります。 KS はプロジェクト開始か原案作成完了かどちらかの段階で決めた年号を変えない感じの制度なのでしょうか。 それにしても2015年7月改正なのに :2014 っておかしいですね。 しかも中身がそのままなら、審議することも無いはずなのに。

SGML の機能

[66] SGML の機能

SGML の拡張

[95] Web SGML and HTML 4.0 Explained - Chapter 15, , https://web.archive.org/web/20040807010420/http://www.is-thought.co.uk/book/html-4.htm

[96] OOB SGML

SGML 応用

[31] SGML応用

[27] XML との関係もSGML応用を参照。

実装

[22]

SGML の構文の部分集合

[15] SGML 文書のマークの表現は具象構文によってある程度制御できますが、 逆に言えばある程度以上の制御はできません。しかし、 場合によっては完全な SGML でない、構文の部分集合のようなものが使われることがあります。

SGML
基本となる SGML の構文です。
正準グローブ表現
正準グローブ表現に必要な範囲で、 単純な文字列としての比較が可能な書式です。
XML
使用できる機能と構文を制限した簡略版 SGML です。 XML 1.0XML 1.1 があります。他にも色々なバリエーションがあります (XML 参照)。

[100] `SGML-Lite' - an easy to parse subset of SGML, , https://web.archive.org/web/20010520214040/http://odur.let.rug.nl/~bert/Stylesheets/SGML-Lite.html

[24] Formal Grammar for the TEI-Interchange-Format Subset of SGML http://www.tei-c.org/P4X/GR.html#GRIS

SGML 記法

[16] SGML 記法は、 SGML文書から他の SGML文書参照する時に使う記法です。

注意: 普通 SGML文書実体内で他の SGML文実体参照する時は、 わざわざ記法を指定する必要はありません (というより指定してはいけません)。この記法はハイパーリンクなどの目的で外部非解析対象実体として SGML文書を扱う時に使います。

[17] 仕様書:

[18]

記法形式名
SGML
公式公開識別子
ISO 8879:1986//NOTATION Standard Generalized Markup Language//EN
属性
属性名属性値既定値説明
活性DTD又はLPD (active) 属性文書型名連結型名基底DTD活性にする文書型連結型
活性体系 (arch)体系(なし)活性にする体系
代替表現 (altreps) 属性形式(共通データ属性より)
取込み実体 (included) 属性形式(共通データ属性より)
記法派生源 (superdcn) 属性形式(共通データ属性より)

[19] 活性 DTD 又は LPD 属性: SGML 記法活性 DTD 又は LPD (active DTDs or LPDs) (active) データ属性は、 文書実体構文解析するに当たって使用する文書型及び/又は連結型の名前を指定します。

完全名
活性 DTD 又は LPD (active DTDs or LPDs)
参照具象構文名
active
所属記法形式
SGML
属性型
CDATA (制約: DTDLPD の名前をいくつか)
既定値
基底DTD

複数の値の指定の仕方は ISO/IEC 10744 に明記されていませんが、他の属性と同じく空白区切りでしょう。

[90] 活性文書型を複数指定すると、 文書は各文書型それぞれについて構文解析してグローブを別個に作成します。 活性連結型を複数指定すると、各 DTD に対して全ての LPD を適用します。 ISO/IEC 10744:1997 A.7.1 NOTE 534

[20] 活性体系属性: SGML 記法活性体系 (active architecture) (arch) データ属性は、 文書を処理する時に使用する体系の名前を指定します。

完全名
活性体系 (active architecture)
参照具象構文名
arch
所属記法形式
SGML
属性型
CDATA (制約: 体系の名前 (体系記法名))
既定値
体系処理なし

属性値には体系の名前を指定します。 派生元をたどると体系が幾重にも連なっている場合、 クライアント文書基底体系から順に体系記法名を指定していきます。 (と本文に書いてありますが、 DTD注釈name と単数形になっています。本当に複数指定していいのでしょうか。) ISO/IEC 10744:1997 A.7.1

体系を指定すると、参照されるのが文書自体ではなく、 文書から得た体系的実現値グローブになります。

MIME 型

[21] SGMLのMIME型

歴史

GML

ISO

[89] SGML Syntax Summary, with Extended Naming Rules Copyright © 1996 Harvey Bingham, , https://web.archive.org/web/20150515135553/http://dox.sbnet.ru:8082/www/html/sgml/sgmlsyn/sgmlsyn.htm

[216] HTML要素概説
出典
注釈
  • SGML Standard Generalized Markup Language。 マーク付け言語の1つ。 ISO8879 これ自体はそのまま利用できる言語ではなく、適用対象ごとの文書型を作成し、 それに従い文書を作成する。 20世紀の後期に ISO/IEC国際標準となり、 電子文書の標準的で正統的な記述方法と認識されていた。 初期の HTMLSGML応用として仕様化されたのはそうした環境による。 他にも多くの SGML応用が作られた。

FIPS

[75] FIPS PUB 152

JIS

[70] 若鳥陸夫らによって JIS 化されました。

初期 Web における SGML

[91] Chapter 26 -- SGML, , http://speed.eik.bme.hu/help/html/Web_Programming_Unleashed/ch26.htm

[92] >>91 一般開発者向け解説書 (1996)。 HTML DTD を著者が拡張できる近未来の夢として描かれた SGML。

Web SGML

[32] SGMLWeb における簡易版として XML が開発されました。 それと同時に XML を含む拡張機能を含めた SGML の改訂版である Web SGML が開発されました。

[33] XML は一時は Web 関連コミュニティーで大流行しましたし、 その後も Java など一部の世界では広く使われていますが、あくまでも SGML から派生した XML という特殊形が受け入れられたに過ぎず、元の SGML は普及しませんでした。

[34] XML に対応したツールの整備が進んだことから、 DocBook など既存の SGML応用XML へと移行してゆきました。

[12] English-Chinese Glossary of XML and SGML Terms http://xml.ascc.net/en/utf-8/gloss.html

[13] SGML とか XML とかでぐぐると (日本語)、胡散臭そうなのがいっぱい上位にごろごろ並んでるなあ。 (名無しさん 2004-12-14 12:00:22 +00:00)

[14] Designing document type definition (DTD) in SGML/XML http://www.saiensu.co.jp/ct_resource/199809/On-DTD.htm#S.para (名無しさん)

[25] The Roots of SGML -- A Personal Recollection http://www.sgmlsource.com/history/roots.htm (名無しさん)

[26] A Brief History of the Development of SGML http://www.sgmlsource.com/history/sgmlhist.htm

[28] SGMLやXML:メモランダム (2007-06-28 03:28:06 +09:00 版) http://mynotes.jp/blog/2007/06/sgml_and_xml (名無しさん 2007-06-29 13:25:35 +00:00)

[29] >>28 HTML 4 の仕様書はかなり例外的でしょう。

それにしても SGML の仕様書は難しく、 その難しさは SGML 自体の難しさに起因しているのではないかと。

仕様書そのものよりも The SGML Handbook を読む方がいいかも。英語版しかありませんが。

(名無しさん 2007-06-29 13:30:01 +00:00)

[30] Re: Freezing the HTML spec Re: Comments in HTML ? ( ( 版)) http://lists.w3.org/Archives/Public/www-talk/1992NovDec/0085.html

HTML の解放

[35] HTMLHTML4 まで SGML応用として定義されていましたが、 それはあくまで IETF/W3C の仕様書と W3C Validator だけの机上の空論に過ぎず、 現実には SGML に強く影響を受けた独自のマーク付け言語としか言えないものでした。

[36] HTML が現実には SGML でないことは誰の目にも明らかでしたが、 あくまでも SGML であると仮定する、あるいは XML (XHTML) への移行が進むはずなので過去の事項として問題とも考えないことが政治的に正しいとする風潮が00年代前半にはありました。

[37] Web Applications 1.0 (HTML5) は SGML とは関係しない独自の言語である HTML構文解析器を歴史上初めて自然言語により記述することに成功し、 王様は裸であると実証しました。これによって最大の“SGML応用”は消滅しました。

終焉

[38] XML への移行と HTML 仕様書の発展により、 SGML は事実上終焉を迎えました。今後新たに SGML応用SGML の実装が登場することもないでしょう。

[23] Re: [xml-dev] SGML DTDs for HTML 5.1 () http://lists.xml.org/archives/xml-dev/201611/msg00078.html

[67] Index () http://sgmljs.net/

メモ

[93] Some commenst on SGML syntax, , https://www.w3.org/MarkUp/SGML/TimComments.html

[94] SGML and HTML Explained - Prelims, , https://web.archive.org/web/20040806185109/http://www.is-thought.co.uk/book/home.htm#contents