公式システム識別子

公式システム識別子 (SGML)

[14] SGMLシステム識別子は、 システム依存の方法によって実体識別することができます。 システムは与えられたシステム識別子を使ってシステム依存の蓄積域蓄積されている蓄積域物体を読込み、 実体として提供します。 この部分の処理は完全にシステムに依存しますから、 ISO 8879システム識別子の構文や意味もまったく規定していませんでした。 これでは互換性のために不便なこともあるので、 ISO/IEC 10744 は標準化された公式システム識別子 (formal system identifier) を規定しています。 なお、公式システム識別子でないものを非公式システム識別子と呼びます。

[15] 公式システム識別子は、 SGMLタグのような構文で蓄積域物体指定 (SOS) を記述します。蓄積域物体指定は複数記述できますが、 そのそれぞれが特定の蓄積域管理器と対応します。 蓄積域管理器は実際の蓄積域 (ファイル, データベース, 包含子など) に蓄積されている物体実体管理器に提供する役割を果たします。

代替

[16] 公式システム識別子は、結局普及しませんでした。 システム識別子を使う SGMLXML 自体が廃れてしまいました。

[17] 公式システム識別子が解決しようとしていた問題は、現在ではおおむね URL が解法とされています。

仕様書

構文

[2] 公式システム識別子の構文は次の通りです FSIDR A.6.4.3 NOTE 505 改

[3] 公式システム識別子は主として蓄積域物体指定の列 (SOS 列) で構成されます。各 SOS を解決して得られた文字列を連結したものが識別される実体の文字列となります。

[4]

仕様書本文 FSIDR を ABNF に翻訳するとこうなりますが、 どう考えてもおかしいですよね (>>5 の規定もあるし)。 通常の SGML開始タグにもっと似た形になっているはずです。

[5] 属性値表記および SOI (SOS タグの間にある内容) では数値文字参照が使えます。 FSIDR A.6.4.3 NOTE 503

[6] SOI では記録開始記録終了が SGML の内容と同じように扱われます。 (記録開始は削除され、開始タグ直後および SOI 末尾の記録終了は削除されます。) FSIDR A.6.4.3

[7] 代替 SOS 列として指定されている各 SOS 列はすべて同一の文字列が得られることが期待されています。 システムは好きなものを選ぶことができます。 FSIDR A.6.4.3

[8] 実体用法開始タグは、実体のすべてに適用される属性を指定できます。 実体用法開始タグは代替 SOS 列のいずれかの一部とはみなしません。 実体用法記法は蓄積域管理器ではなく、 属性の宣言・指定のためだけに使います。なお、終了タグは存在しません。 FSIDR A.6.4.3

公式システム識別子定義要件体系

[12] 公式システム識別子定義文書FSIDR 体系から派生させるらしいです FSIDR A.6 が、肝心の体系DTD もその公式公開識別子ISO/IEC 10744:1997 のどこにも含まれていません。 (体系DTD 片は仕様書のあちこちに散りばめられてはいますが・・・。)

[13] 公式システム識別子支援属性: 公式システム識別子支援属性 (FSI support attribute) なるものが存在するらしく、 その値が仕様書で定義されています FSIDR A.6.8 が、なんと(!)それをどこに指定するのかが書かれていません。 話の流れからするとシステム公式システム識別子定義文書 (>>11) の中の体系支援宣言で指定する、 FSIDR 体系体系支援属性なのではないかと思われますが・・・。

属性は

fsism="altsos smalias validate"

のように指定します。と書いてあります FSIDR A.6.8 が、 3つの字句を適宜選んで指定できると解釈するのが妥当でしょう。 (それくらいちゃんと定義してくださいな。)

この例(?)で属性名らしきものは fsism となっていますが、その直前の本文には fsidr と書かれています。一体何が何やらさっぱり。

属性値の字句:

altsos
代替蓄積域物体指定列公式システム識別子で使うことができます。
smalias
公式システム識別子定義文書宣言された蓄積域管理器の別名を公式システム識別子で使うことができます。
validate
システムは FSIDR の要件が満たされない時に誤りを報告します。

しかし別名ってどうやって定義するのやら(藁

適合性

[10] 公式システム識別子を使う文書システムは、 ISO/IEC 10744 の他の機能とは別個に FSIDR に関して適合性を主張できます。 FSIDR では公式システム識別子で使う標準の蓄積域管理器を色々と定義していますが、 いずれも実装は必須ではなく、必要に応じて選択できます。 FSIDR A.6.8

[11] 適合するシステムは、 システム公式システム識別子定義文書 (system FSI definition document) に次の文を掲載しなければなりません。 FSIDR A.6.8

A Formal System Identifier implementation conforming to the FSIDR requirements of International Standard ISO/IEC 10744.

システム公式システム識別子定義文書には実際にシステムがどのような蓄積域管理器に対応しているかを宣言します。

安心できることに FSIDR は他の機能とは違って宣伝条項がありません(藁。

と思いましたが、 SGML拡張機能の一つなのでそちらの適合性の規定 ISO/IEC 10744:1997 A.1.1 も適用されます。 したがってやはり宣伝条項があります。

メモ

[9]

SP の説明書。 ISO/IEC 10744:1992 TC 1 附属書 D に基づくとあります。

非公式システム識別子のことを単純システム識別子と呼んでいますが、 旧版規格ではそうだったのでしょうか。