[1] グローブは抽象データ表現であり、 グローブを処理するシステムは内部データ構造にグローブをそのまま反映させる必要はありません。 しかし、共通のグローブ表現形式があれば検証、虫取り、 応用間情報交換などに有用です。そのため、 グローブやハイパーグローブを一意に表現できる正準グローブ表現 (CGR) 文書型が定義されています。
正準グローブ表現文書型は HyTime 体系から派生した SGML の文書型です。ただし、節点の特性の値が異なる場合にのみ異なる文書となるような制約が加えられています。 ですから、正準グローブ表現文書は SGML 文書として扱うこともできますが、 単純な文字列として同一性を確かめることもできます。 また、多くのプログラム言語の標準の文字列構文解析機能を使って構文解析できるようにも配慮されています。
[2] 仕様書:
[3] 正準グローブ表現文書型では、次の要素型が定義されています ISO/IEC 10744:1997 A.4.5.1。
grove
node
, urefloc
*
)node
nodeprop
*
)
id
属性 (必須, ID
)
は節点の識別子です。
class
属性 (必須, NAME
)
は節点の規格参照具象構文の級名です。nodeprop
(#PCDATA | slsep
| node
)*
(node
は noderel
が subnode
の場合のみ。))
datatype
属性 (必須, NAME
)
は特性のデータ型の規格参照具象構文名を、
rcsnm
属性 (必須, NAME
)
は特性の規格参照具象構文名を、
noderel
属性 (必須) は特性の節関係型
(subnode
, irefnode
,
urefnode
, primitive
のいずれか)
を表します。 isnull
属性 (真偽値属性)
は特性値が null の時に指定します。urefloc
#PCDATA
)
正準グローブ表現文書がハイパーグローブとは独立に生成された場合は、
節点番地名不詳を表す文字列 UNKNOWN
を内容とします。ハイパーグローブ全体の正準グローブ表現文書生成過程でこの文書が生成された場合には、
参照された節点を含んでいる正準グローブ表現文書の節点の識別子を内容とします。
id
属性 (ID
) は必須です。
locsrc
属性 (ENTITY
) は必須です。
この要素型は特性位置番地要素形式 (proploc
要素形式)
から派生しています。
HyTime
属性は nmsploc
に固定です。 namespc
属性は elements
に固定です。 notname
属性は ignore
に固定です。slsep
[4] 正準グローブ表現文書は、名前の長さ制限が 32
であることを除き、規格参照具象構文に従います
ISO/IEC 10744:1997 A.4.5.1。
[6] 正準グローブ表現文書型は HyTime 体系
(体系仕様文書 ISO/IEC 10744:1997//NOTATION AFDR ARCBASE Hypermedia/Time-based Structuring Language (HyTime)//EN
)
から派生しています。
体系支援属性は次の通りです。
属性名 | 固定属性値 |
体系的形式属性名 | HyTime |
体系属性改名子属性名 | HyNames |
体系文書要素形式名 | HyDoc |
体系DTD | HyTime |
体系橋梁属性名 | HyBrid |
体系自動写像 | ArcAuto |
体系選択肢支援属性群 | locs |
locs | nmsploc |
[5] 正準グローブ表現文書型の公式公開識別子は
ISO/IEC 10744:1997//DTD Canonical Grove Representation//EN
です ISO/IEC 10744:1997 A.4.5.1。
[7] 正準グローブ表現文書型では、次の一般実体が定義されています。
実体名 | 公開識別子 | 記法 |
HyTime | ISO/IEC 10744//DTD AFDR Meta-DTD Hypermedia/Time-based Structuring Language (HyTime)//EN | CDATA ISO/IEC 10744//NOTATION AFDR Meta-DTD Notation//EN |
実体名 | 置換文 |
amp | & |
apos | ' |
gt | < |
lt | < |
[8] 正準グローブ表現原始文書には、次の制限が課されます ISO/IEC 10744:1997 A.4.5.2。
SPACE
を1つだけ使います。CDATA
属性値だけが小文字を混ぜられます)。DOCTYPE
宣言の
dso
(ある場合。) の手前までは、1行で
<!DOCTYPE GROVE PUBLIC "ISO/IEC 10744:1997//DTD Canonical Grove Representation//EN"
と記述しなければなりません。DOCTYPE
宣言の
mdc
は、
それだけを1行に記述しなければなりません。[9] 特性値は、次のように表現します ISO/IEC 10744:1997 A.4.5.2。
[10] 識別子は、次のように生成します ISO/IEC 10744:1997 A.4.5.3。
node
要素ごとに、
文字 X
の後に計数器の値の10進数文字列表現をつけたものを識別子とします。計数器の値を1増やします。urefnode
孤ごとに、内部節同様の節識別子を生成します。
更に、その識別子を持った対応する urefloc
要素を生成します。 urefloc
要素は生成順に
(つまり最初に参照された位置順に) 根要素の子供とします。
locsrc
属性は対応する正準グローブ表現文書の実体とします。
内容は参照先文書での節の識別子とします。
(この正準グローブ表現がグローブ単独ではなくハイパーグローブの一部として生成された場合。)外部実体宣言の生成: