1 TEIの基礎構造
Contents
- « vi 言語と文字集合
- » 2 TEIヘダー
- Home | 目次
この章では,本ガイドラインで定義されている符号化スキームの基礎構造を解説する. 以下に続く章を理解する為の概念的枠組みや,それがどのように実装されているのかを紹介するものである. 本章の内容は,XMLやXMLスキーマ( v XML入門を参照) を既に知っている読者を想定しているが,それを知らなくとも理解できるように書かれている. 他の章では,より技術的な詳細が論じられる事になる. 例えば, 22 ドキュメンテーション向け要素 では,このガイドライン自体を定義するXMLスキームについて解説 されていたり,また, 23 TEIの使い方 では,ODDプロセッサを使うことを想定しながら,スキームの変更 や適合性の問題について解説している. この2つの章は,新たにTEI準拠のスキームを作る利用者が読むべ き内容になる.
TEI符号化スキームは,複数のモジュールから構成されている. 各モジュールの定義では,XML要素と属性が宣言されている. また,それら要素宣言の中では,ひとつ以上の要素クラス が定義されている. また,可能な要素内容や属性が,当該クラスへの参照と共に定義さ れている. この様な,間接的な定義が,TEIのシステムの堅固さと柔軟性を生 んでいる. 要素は,ある要求に相応しいスキーマを,自由に定義す るために組み合わされることになる. これにより,既存のクラスや要素を参照する新しい要素を付 け加えることも容易であるし,あるスキーマに含まれているモジュー ルが定義する要素を除外する為にも使うことができる.
TEIスキーマは,他のモジュールの組み合わせを使い, 構成されているかもしれない. その中でも,いくつかのTEIモジュールはとりわけ重要であり,例外 を除いて,常に使用されるべきである. 例えば,TEI基盤モジュール(tei)は,他のモジュールで使用されるクラス,マクロ, データ型を定義する,重要なものである. また,3 コアモジュール で定義されているコアモジュー ル(core)には,ほぼ全ての文書で使われるだろう要素が 定義されており,グローバルに使われることが推奨されている. 2 TEIヘダーで定義されて いるヘダーモジュールは,TEIヘダーで使用される,メタデータ向 けの要素や属性が含まれている.TEIヘダーは,TEI文書で必須であ る. また,4 テキスト 構造モジュールで定義されているテキスト構造モジュールでは, 書籍に準じるものを符号化する際に必要となる,基本構造向けの要 素が宣言されている. 従って,ほぼ全てのスキーマで,上記4つのモジュールは必須であろう.
TEIスキーマを定義する文書自体も,TEI文書になっている. そこでは,22 ドキュメ ンテーション向け要素で解説されているモジュールにある要 素が使われている. この文書を,非公式にはODD文書と呼ばれている. ODDとは,‘One Document Does it all(ひとつの文書で全てに対応 する)’という意味である. ODD文書を維持または処理するためのスタイルシートは,TEIコンソー シアムがメインテナンスをしている. このTEIガイドラインも,ODD文書で管理されている. ODD文書に関する詳細は, 23.4 Implementation of an ODD Systemにある. ODD文書からは,代表的な3種類のスキーマ言語,XML DTD,ISO RELAX NG, W3C XML Schemaで使用されるスキーマを生成することができる. また,同時に,本書のようなドキュメントやwebページを生成する ことができる.
本章では,TEI基盤モジュールについて解説する. 本章を読み飛ばしたとしても, 23.2 Personalization and Customizationにあるよう, TEIを独自に修正して使う場合には,本章で紹介されている内容の 理解が必要になってくる.
本章は,はじめに,TEIスキームで使われている,各モジュールに ついて解説をする. 1.2 TEIスキーマの定義 では,TEIスキーマを作り上げる方法を,XML DTD,RELAX NG, W3C Schemaの3つのスキーマ言語を使いながら紹介する.
次に,本章で一番大きな節として,要素とその特性を定義するため に使われる要素や属性を紹介する( 1.3 TEIのクラス).
最後に,1.4 TEIのマクロでは,マクロの考え方を紹介す る. マクロとは,共通してて使われる内容モデルを定義したものである. また,マクロには,TEIの属性で採られる属性値の定義域を制限す るデータ型を定義したものもある.
- » 1.2 TEIスキーマの定義
- Home | 目次
1.1 TEIのモジュール TEI: TEIのモジュール¶
- 散文による解説
- 形式的定義.本ガイドラインで定義されている特別なXML 表現と,RELAX NGの要素を組み合わせて表現されたもの.
- 用例
ガイドライン中の各章では,関連する要素が紹介され,必要な宣 言が定義されている. この宣言のまとまりを,通称モジュールと呼んでいる. 全ての定義は,付録としてある,参照章に一覧がまとめられてい る. また,各章で示されている形式的定義も,対応するモジュール内 でまとめられている. 利便性を考えて,各要素には,1つのモジュールが割り当てられ ている. これは,とりわけ,特定の領域での利用や,特定の利用法を想定 してのことである. 従って,モジュールには,関連する要素宣言がまとめられている. この場合,TEIスキーマは,少数のモジュールを集めて構成され ることになる. この詳細は,以下にある 1.2 TEIスキーマの定義 にある.
モジュール名 | 公開識別子 | ガイドラインの章 |
分析モジュール(analysis) | Analysis and Interpretation | 17 簡易分析機能 |
確信度モジュール(certainty) | Certainty and Uncertainty | 21 確信度・責任 |
コアモジュール(core) | Common Core | 3 コアモジュール |
コーパスモジュール(corpus) | Metadata for Language Corpora | 15 Language Corpora |
辞書モジュール(dictionaries) | Print Dictionaries | 9 Dictionaries |
舞台芸術モジュール(drama) | Performance Texts | 7 Performance Texts |
図表式モジュール(figures) | Tables, Formulae, Figures | 14 図,表,式 |
外字モジュール(gaiji) | Character and Glyph Documentation | 5 標準化されていない文字と字形の表現 |
ヘダーモジュール(header) | Common Metadata | 2 TEIヘダー |
素性構造モジュール(iso-fs) | Feature Structures | 18 素性構造 |
リンクモジュール(linking) | Linking, Segmentation, and Alignment | 16 リンク,分割,統合 |
手書きモジュール(msdescription) | Manuscript Description | 10 Manuscript Description |
名前モジュール(namesdates) | Names, Dates, People, and Places | 13 名前,日付,人物,場所 |
グラフモジュール(nets) | Graphs, Networks, and Trees | 19 グラフ,ネットワーク,木 |
発話モジュール(spoken) | Transcribed Speech | 8 Transcriptions of Speech |
タグ定義モジュール(tagdocs) | Documentation Elements | 22 ドキュメンテーション向け要素 |
(TEI)基盤モジュール(tei) | TEI Infrastructure | 1 TEIの基礎構造 |
校合モジュール(textcrit) | Text Criticism | 12 校本 |
テキスト構造モジュール(textstructure) | Default Text Structure | 4 テキスト構造モジュール |
転記モジュール(transcr) | Transcription of Primary Sources | 11 Representation of Primary Sources |
韻文モジュール(verse) | Verse | 6 韻文 |
上記の各モジュールを選択した際にスキーマに取り込まれる,クラス,要素, マクロについては,該当する各章で詳しく解説されている. 上記以外の章では,TEIスキームを使う際の他の内容が解説され ている.
- « 1.1 TEIのモジュール
- » 1.3 TEIのクラス
- Home | 目次
1.2 TEIスキーマの定義 TEI: TEIスキーマの定義¶
XML文書が妥当であることは知るには,当該文書の構造をスキー マに従い検証することが必要となる(その必要がないものは,整 形式扱いとなる). この詳細は,v XML入門にあ る. 妥当なXML文書では,スキーマはTEIスキーマに準拠していなけれ ばならない. この詳細は, 23.3 Conformance にある. ローカルで使う際には,自分たちで使うスキーマを,暗黙のうち に想定することも許されるが,そのデータを交換する場合には,関 連する文書は明示される必要がある. これに関して,本ガイドラインで推奨する手法は,当該文書を妥 当なものにする為に必要なTEIスキーマの規定を明示する手法である.
TEI準拠のスキーマとは,TEIモジュールを使ったものであるが, そこに各モジュールにある要素や属性を修正して,例えば,名前を変え るような変更を加えたものも可能である. TEIスキーマを指定するための方法として, 22 ドキュメンテーション向け要素で紹介されている 要素 schemaSpec を使い,アプリケーションに依存しない手法がある. この手法を使い,TEIのスキーマを拡張することができる. 例えば,新しく要素を追加したり,別のXMLアプリケーションを 参照することができる. このどちらの例でも,それを定義した文書をソフトウェアで処理 することで,XML DTDやRELAX NG,W3C Schemaなどのスキーマ言 語で 定義された,形式的なスキーマが生成される. これら,自動生成されたスキーマは,検証ソフトやエディタといっ た,XML処理ソフトで使用することができる.
- » 1.2.2 大きなカスタマイズ
- Home | 目次
1.2.1 簡単なカスタマイズ TEI: 簡単なカスタマイズ¶
<moduleRef key="tei"/>
<moduleRef key="header"/>
<moduleRef key="core"/>
<moduleRef key="textstructure"/>
</schemaSpec>
ここでは,4つのモジュールの定義が,参照として記述されており,それらは, 要素 moduleRefの属性keyで指定されている. このスキーマの定義自体にも,IDは付与されている(TEI-minimal参照). ODD処理ソフトは,ここにある宣言から,XML DTDやRELAX NG, W3C Schemaなどによる適切なスキーマを生成することになる. 原理上は,どのようなスキーマ言語にも対応することが出来る. 結果として得られたスキーマは,様々な文書インスタンスと共に使うこと が出来る. この詳細は, v XML入門にある. スキーマに従った妥当な文書インスタンスの開始点(すなわち, ルート要素)は,属性startで指定さ れる. ODDの処理についての詳細は,23.4 Implementation of an ODD Systemにある.
- « 1.2.1 簡単なカスタマイズ
- Home | 目次
1.2.2 大きなカスタマイズTEI: 大きなカスタマイズ¶
- 異なる種類のテキストがまとめられているテキスト.例えば,散文,韻文,脚本などの 作品集.
- 短いテキストが埋め込まれているテキスト.例えば,散文中にある詩や歌詞.
- 章ごとに形式が異なっているテキスト.例えば,散文形式や辞書の形式,脚本 の形式など章ごとに持つ小説.
- 詳細な注釈を含んでいるテキスト.例えば,修辞や言語学的な素性についての 注釈を含むもの.
- ある資料について,外形までの情報ももれなく記述する編集方針で作られ たテキストと,文字データに焦点を当 てたテキストデータを同時に持つもの.
- 特別な付加メタ要素を含んでいるテキスト.例えば,手書き資料を詳細に符号 化したもの.
- 1つのTEIヘダーの元に,複数のTEI文 書を持つコーパスまたはコレクションの定義( 15 Language Corporaを参照).
- 前付や後付が選択的に付随するテキストの集合体といった,構成的テキストの 定義( 4.3.1 複合テキストを参照).
- テキスト中に自在に出現可能な,埋め込みテキストを表現する要素. ( 4.3.2 自在テキストを参照).
本ガイドラインの以下の章では,これらの素性向けのマークアップ構造を,詳 細に解説している. マークアップ構造は,プロジェクトや利用場面に合わせて,組み合わせて作る ことが出来る.
<moduleRef key="tei"/>
<moduleRef key="header"/>
<moduleRef key="core"/>
<moduleRef key="textstructure"/>
<moduleRef key="msdescription"/>
<!-- manuscript description -->
<moduleRef key="transcr"/>
<!-- transcription of primary sources -->
<moduleRef key="namesdates"/>
<!-- names, dates, people, and places -->
</schemaSpec>
<moduleRef key="tei"/>
<moduleRef key="core"/>
<moduleRef key="textstructure"/>
<moduleRef key="transcr"/>
</schemaSpec>
また,TEIでは,より細かなカスタマイズもサポートしている. 例えば,スキーマは,あるモジュールにある要素や属性を外したり,名前を変 更したり,新しい要素や属性を追加する場合である. この様な修正に関する解説は, 23.2 Personalization and Customization にある.また,この適合性に関する解説は 23.3 Conformance. にある. これらの機能は,全てのスキーマ言語に対応している(但し,ある機 能は,言語によっては使えないかもしれない). ODD言語により,TEIのモジュールと非TEIモジュールを統合して,1 つのスキーマを作ることが出来る. 但し,この場合,非TEIモジュールはRELAX NGで定義されている必要 がある( 22.6 Combining TEI and Non-TEIのモジュールを参照).
- « 1.2 TEIスキーマの定義
- » 1.4 TEIのマクロ
- Home | 目次
1.3 TEIのクラスTEI: TEIのクラス¶
TEIスキームには,400を超える要素がある. これらの要素を知り,分類し,修正していく為に,多くの要素は,形式的にあ る方法で区分されている. クラスは,要素中の共通要素を,2種類の弁別区分にまとめ上げた ものである. あるクラスに属する要素同士は,属性集合を共有するか,または同じ内容 モデル中に出現するものである. クラスには,属性クラスとモデルクラスがあり,前者は,属性を共有 するもの,後者は,同じ場所に出現するものである. どちらのクラスでも,そこに所属する要素はクラスから特性を継承 することになる.
クラス(または,そのクラスに属する要素)は,他のクラスから特性 を継承することもある. 例えば,クラスAが,クラスBのメンバー(すなわち,サブクラス)で ある場合,クラスAに属するどの要素も,クラスAで定義された特性 に加えて,クラスBで定義されている特性を継承することになる. この場合,クラスBは,クラスAの上位クラス(スーパークラス)であ る,とも表現できる. 上位クラスの特性は,そのサブクラスのどのメンバーにも継承され る.
TEIスキームを構成することになるクラスの基本的な理解は,強く 推奨され,また,カスタマイズの際には,その理解は必須となる.
- » 1.3.2 モデルクラス
- Home | 目次
1.3.1 属性クラスTEI: 属性クラス¶
属性クラスは,属性を共通して持つ要素をまとめたものである. 属性クラスの名前は,att.で始まっている. 例えば,クラスatt.naming は,属性keyを共通して持つものがメ ンバーである. これにより,各要素が独自にそれを定義することなく,継承する だけで済ませることができる. この属性は,クラス att.naming により定義(から継承)されていることになる. 例えば,属性keyを持った方がよい別 の要素をTEIスキーマに埋め込む際には,クラス att.naming のメンバーに,その要素を追加するのが一番簡単な方法である.
属性クラスのいくつかは,TEI基盤モジュールで定義されている. 従って,それらの属性クラスは,グローバルに使うことができる. 他の属性クラスは,特定のモジュール向けに用意されており,詳 しくは各章で定義してある. そのようなクラスで定義されている属性は,当該モジュールがス キーマに組み込まれていなければ,使うことは出来ない.
属性クラスの属性は,当該クラス中で定義されている他にも,間 接的に,他のクラスにある定義を継承することで定義されること がある. 例えば,属性クラス att.pointing.group には,属性domainsと targFuncがあるが, このクラスは, 別の属性クラス att.pointing の下位クラスであることから, その属性クラス att.pointing で定義されている属性 typeと evaluateも 継承している. 属性クラス att.pointing には,上記2つの属性がメンバーとしてであるが, 属性クラス att.pointing.group には,4つの属性全てがメンバーとしてある.
あるモジュールでは, 上位クラスを定義することがある. 例えば,グローバル属性クラスである att.divLike には,属性 org, uniform, (訳注:原文の間違い.正しくはpart) sample がメンバーとして, 韻文モジュール向けの 属性クラス att.metrical では,属性 met real rhyme がメンバーとしてある. 属性クラス att.metrical は,属性クラス att.divLike の上位クラスとして定義されているので, もし仮に,韻文モジュールが当該スキーマに既に含まれている場合には, 属性クラス att.divLike の要素は,6つ全ての属性を使うことができる. しかし,もし,韻文モジュールがスキーマに含まれていないときには, 属性クラス att.divLike の要素は,そのメンバーとしてある3つの属性しか使うことが出来ない.
特定モジュール向けの属性については,当該モジュールの章で解 説されている. 特別な属性クラス att.global は,全てのモジュールで使うことが出来る. 従って,この詳細は,続く節で解説する. 全属性クラスのリストは, 付録 B 属性クラス にある.
1.3.1.1 グローバル属性 TEI:グローバル属性¶
-
att.global
は,TEIスキーム中の全ての要素で使うことができる属性をまとめている.
xml:id 要素にユニークなIDを与える属性をまとめている. n 当該文書内でユニークである必要はない,番号やラベルを要素に与える属性を まとめている. xml:lang 要素内容で使われている言語を, BCP 47に従い付与する属性 をまとめている. rend 当該要素が元資料でどのように表示されているのかを示す属性をまとめている. rendition 当該要素が元資料でどのように表示されているのかの解説への参照を示す属性 をまとめている. xml:base 相対URIを絶対URIへと変換する際に使われるベースURIを示す属性をまとめて いる.
上記の属性は,どのTEIの要素中でも任意に使うことができる. 全く使わなくとも良い.
- » 1.3.1.1.2 言語識別
- Home | 目次
1.3.1.1.1 要素識別子とラベル TEI: Element Identifiers and Labels¶
属性xml:idの値は, W3Cで定義されている XML として正当な名前である必要がある. すなわち,名前は文字または下線(‘_’)ではじめられ,続い て,文字,数字,ハイフン,下線,ピリオド統合文字から構成される必要がある(訳注:正確な記述ではない.正しい定義は,XML規格を参照のこと). 1
XMLの名前(すなわち,属性 xml:idの値)では, 大文字と小文字を分けて考えるので,例えば, partTimeと parttimeは 別の名前になり,異なる要素を示すことになる.
<p xml:id="PAGE1">There was me, that is Alex, and my three droogs,
that is Pete, Georgie, and Dim, ... </p>
要素にユニークな識別子を付与する方法については, 3.10.2 オリジナルの参照システム を参照のこと.
<item n="1">About These Guidelines</item>
<item n="2">A Gentle Introduction to SGML</item>
<item n="9">Verse</item>
<item n="10">Drama</item>
<item n="10">Spoken Materials </item>
<item n="12">Print Dictionaries</item>
</list>
<!-- ....-->
<div type="stanza" n="xlii">
<!-- ... -->
</div>
</div>
<!-- ....-->
</l>
<l n="2">
<!-- ....-->
</l>
<l n="3">
<!-- ....-->
</l>
<!-- ....-->
<l n="100">
<!-- ....-->
</l>
1.3.1.1.2 言語識別TEI: 言語識別¶
属性xml:langは,要素やその要素内容に関する言語,書記システム,文字集合の情報を示している. この属性値が指定されていなければ,親要素中の直近の属性から, 属性値を継承することになる. 従って,テキストで中心となる言語を規定する簡単な方法は,要素 TEI でそれを規定することで,子要素にある xml:langのデフォルト値を決めてしまうことである. 中心となる言語とは異なる言語である時には,明示的に属性値が与えればよい. 言語が変わったときには,それを明示的に xml:langで示すことが強く推奨されている. この詳細については vi 言語と文字集合 を参照のこと.
属性xml:langの値は,規格としてある値を付与しなくてはならない. この詳細は, vi.i 言語の識別 を参照のこと.
them would <emph xml:lang="en">make</emph> war rather than let
the nation survive, and the other would <emph xml:lang="en">accept
</emph> war rather than let it perish, and the war came.</p>
them would <emph>make</emph> war rather than let
the nation survive, and the other would <emph>accept</emph>
war rather than let it perish, and the war came.</p>
or <term xml:lang="la">ex post facto</term> law shall be passed.</q> ... </p>
ヘダー中の要素 language で指定されている言語に関する付加情報については注すること( 2.4.2 言語を参照).
- « 1.3.1.1.2 言語識別
- Home | 目次
1.3.1.1.3 表示識別 TEI: 表示識別 ¶
pure and pious; but he was equally alarmed by his knowledge
of the ambitious <name rend="italics">Bohemond</name>, and
his ignorance of the Transalpine chiefs: ...</p>
属性 rend の値は,自由記述であるが,符号化するひとは,テキストの字体や手書きの表現方法を示す,よう准的な用語を使うべきである.
<!-- define italic style using CSS --><rendition xml:id="IT" scheme="css">text-style: italic</rendition>
<!-- set italic style as default for the emph and hi elements -->
<tagUsage gi="emph" render="#IT"/>
<tagUsage gi="hi" render="#IT"/>
<!-- indicate that a specific p element is also in italic style -->
<p rendition="#IT"/>
属性renditionは,1つ以上の要素 rendition を示すことになる. その各要素では,元資料中のテキストの表示に関する側面が定義されている. この詳細は,形式言語,例えば,CSS (Lie and Bos (eds.) (1999) )やXSLFO (Berglund(ed.)(2006)) や,そのほか,プロジェクトが開発した形式言語などを使い記述することができる. または,自由記述でも構わない. CSSやXSL-FOは,一般には,文書を画面に表示したり紙に印刷したり する際に使われるが,印刷の様子や手書きの様子など,様々な元資料 の外形を記述する形式表現としても使うことができる. 例えば,CSSやXSL-FOは,字形,太さ,スタイル,字間,行間などを記述すること ができる.
属性renditionと 属性rendが両方使われている場合,後者が常に優先される. 属性 renditionは, X/HTMLにある属性classと似たもので,CSSによる スタイル宣言の参照するようなものである. 属性 rend は,XHTMLまたはHTMLにある属性styleと似たもので, 文書中で使われる,インラインで表現を指定するためのものである. このいずれの場合に置いても,TEIの属性は,元資料における表現を記 述するために使われており,それと似てはいるが,何らかの出力の表現 方法を指定するものではない.
- « 1.3.1 属性クラス
- Home | 目次
1.3.2 モデルクラスTEI: モデルクラス¶
TEIのモデルクラスでは,ある文書中に同じく出現する素性を共有 するものを,そのメンバーとしている. TEIにおける要素の内容モデルでは,特定の要素が直接定義されることは なく,あるモデルクラスを介して,間接的に要素が定義されている. これにより,内容モデルを簡単にでき,さらに一貫性も保つことが 容易になる. また,理解したり,修正したりすることも容易になる.
属性クラスと同様に,モデルクラスにおいても,下位クラスと上位 クラスというものがる. 要素が,それが属するクラスから,文書中に出現するための規定を 継承するように,下位クラスのメンバーは,上位クラスの規定を全 て継承することになる. 時に,このようなクラスは,TEIが使える多くの要素を,小さな構造に収 めてしまうために使うことも可能である. 但し,これは一般的な用法ではない.
事実,要素が所属するクラスは,2つの側面から捉えることができ る. ひとつは,文書構造中に出現できる場所を規定することである. もうひとつは,同じ種類の意味を示唆することである. 例えば,段落中に出現する要素をまとめたある大きなクラスでは, 複数の他のクラスを含んでいる. このような子クラスは,構造上同じ特性を共有はしているが,その 利用場面は異なるものである. 例えば,あるクラスは,強調と関連し,あるクラスは名前や場所と 関連するなどである. 「クラスメンバーの出現が認められる場所の集合」とするのは, かなり制約のきつい表現である. ある特定の要素中,または要素のクラスに出現することが出来るも のといえる. または,要素は,多くの場所,または場所の集合で出現が認められ ているといえる.
この種の要因は,モデルクラスに与えられた名前とも関連している. 名前にpartという言葉が含まれている モデルクラス,例えば, model.divPartや model.biblPartは, その構造上の場所に関連して定義されたものである. 例えば,要素 div の内容として出現する要素(または要素のクラス)は,クラス model.divPartを構成している. また,要素 bibl の内容として出現するものは,クラス model.biblPart を構成している. また,モデルクラスの名前にlikeと いう言葉が含まれている場合,例えば,モデルクラス model.biblLikeや model.nameLikeでは, そのメンバーにはそれぞれ共通して,例えば,書誌情報を含むこと や,ある種の名前を含むことなどの特性を持つことが示唆されてい る. この様に,意味的にまとめられたクラスは,構造上まとめられた 大きなクラスを分割する,便利な手段にもなる. 例えば,一般的な構造に関するクラスである model.pPart.data (段落を構成する要素をまとめたもの) には,4つの意味的にまとめられたクラス model.addressLike, model.dateLike, model.measureLike, model.nameLikeが, メンバーとしてある. ちなみに,4番目のメンバーは,それ自身が上位クラスであり,3つのメンバーを含んでいる.
多くのクラスは,TEI基盤モジュールで定義されているが, 一般に,クラスは,モジュールがスキーマに含まれていなければ, 使われることはない. 何故ならば,要素宣言は,モジュールに含まれているからである. クラスは,トップダウン的に宣言されてはいない. むしろ,そのメンバーの要素宣言をまとめて,メンバーとしている. 従って,同じクラスでも,使われるモジュールが異なることで,異 なるメンバーで構成されることも可能である. すなわち,当該要素の(クラスで定義されている)内容モデルは,使 われるモジュールにより異なる.
いくつかのクラスは,全てのモジュールが使われている環境においても,1つのメンバーしか含まれていないものがある. そのようなクラスの存在により,例えば,特定の場所,とりわけ,TEIが十分に貢献できていないような領域に,新しい要素メンバーを付加することが簡単にできる. 具体的には,クラスmodel.rdgLikeは,元々は 中身が空であるけれども, 要素rdgを 使うために,校合モジュールをにより,拡張することも可能である. 校合の情報を構造化する新たな手段を追加したいのであれば,そ の要素を定義して,このクラスに追加することでできる.
1つのメンバーしか持たないクラスを使う,もう一つの背景として, クラスのメンバーが全ての文書で使われる必要はないが,とてもよ く使われる要素として,ある同じ場所では使われるケースを想定し ている. 例えば,特別な要素である gは, ユニコードにない文字やグリフを示すために使われるが,これは,クラス model.gLikeのメンバーとして, 外字モジュールがスキーマに取り入れられた時にのみ使われる. このクラスへの参照は,どの内容モデルにも含まれている. 理由は,これが使われたとき, 要素 g は,テキスト中のどの場所でも使うことができるようにしなくては ならないからである. しかし,そのようなクラスへの参照は,外字モジュールが取り込ま れない限りは,生かされることはない.
一方,TEI基盤モジュールで定義されているクラスの中には,結果 として,多くのメンバーで使われているものもある. 例えば,クラス model.pPart は,要素 p,すなわち,段落の中に出現する要素のクラス を全てまとめている. コアモジュールでは,50を超える要素が,このクラスに追加される ことになる. また,名前モジュールとタグ定義もじゅー津では,これに加えて, 20もの要素を追加することになる. 要素 pは, TEI文書の中で,基本的なブロックを構成する要素のひとつであることから, 各モジュールがこれを取り入れることは,驚くことではない. このようなクラスシステムにより,複雑な制御を可能にする便利な 手法を実現している. 一般に,要素は,よく使われるクラスには直接追加されることはな く,意味的にまとめられた,中間的なクラスを通して追加される.
1つしかメンバーを持たないクラスに加えて,1度しかTEI内で 使われないクラスというものもある. このようなクラスには,上位クラスは存在しない. 従って,このようなクラスには,クラス階層というものがない. このクラスは,高階な構造を持ち,外部からは同一のものとみなされる要素を管理するための,便利な手段となる. 2 この様なクラスのメンバーは,ひとつの要素または要素のクラス内で出現する ことはできない. 例えば,クラス model.addrPart は,要素 address の内容モデルを表現するためだけに使われている. このクラスは,他の要素クラス,例えば,どこでも使える要素や,住所の内容 としてしか出現しない要素などのクラスも参照している.
1.3.2.1 主なモデルクラスTEI: 主なモデルクラス¶
- 区分
- テキストの,主たる分類で,自身をメンバーにすることが可能 で,高階な構造を取り得る. このような要素は,クラス model.divLike, model.div1Likeなどをとる.
- 塊
- 段落や段落レベルの要素で,テキスト内に直接出現できる. または,区分内で出現できる. 但し,塊内には出現することが出来ない. このような要素は,クラス model.divPart を,直接,または クラス model.pLike や model.entryLikeなどのクラスを介 して,取りうる.
- 句レベル要素
- 塊(段落または段落レベル)の中でのみ出現するが,塊の間では(従って,区分直下にも)出現しない,例えば,強調された句,書籍の題目,編集上の施釉制など向けの要素. このような要素は,クラス model.phrase をとる. 3
- 挿入レベル要素
- リスト,注釈,引用など向けの要素. 塊の間で出現する(例えば,要素 div の子要素) か,または塊の中で出現する要素. クラス model.inter をとる. このクラスは,クラス model.phraseや model.chunk の上位クラスではないことに注意すること. 3つのクラス model.phrase, model.pLike, model.interは選択的である.
- 構成要素
- テキストやテキスト区分中に直接出現する要素. 上記の句レベルまたは塊要素の組み合わせ. この要素は,クラス model.commonを取る. このクラスは,クラス model.divPart, model.inter, model.entryLike(辞書モジュールが使われている時) の上位クラスとして定義されている.
ある要素や要素クラスは,これらのグループには属さない. しかし,本ガイドラン中にある500を超える要素のうち,3分の2 は上記の分類に属している. 今後も,この分類スキームは,拡張される予定である.
全てのモデルクラスをアルファベット順にまとめたものが 付録 A モデルクラス にある.
- « 1.3 TEIのクラス
- » 1.5 TEI基盤モジュール
- Home | 目次
1.4 TEIのマクロ TEI: TEIのマクロ¶
本章で規定されたTEI基盤モジュールでは,マクロも定義している. マクロとは,宣言中でよく使われる名前をまとめたものである. TEIのマクロは,TEIスキーマ中,2つの方法で使われる. ひとつは,頻出の内容モデルまたはその部分を表現するもの( 1.4.1 標準的な内容モデル)で, もう1つは,属性のデータ型を表現するものである ( 1.4.2 データ型マクロ).
- » 1.4.2 データ型マクロ
- Home | 目次
1.4.1 標準的な内容モデルTEI: 標準的な内容モデル¶
- macro.paraContent 段落やそれ相当の要素の内容を定義する.
- macro.limitedContent 現存する資料の転記で使われるものではない散文要素の内容を定義す
- macro.phraseSeq 一連の文字列と句レベル要素を定義する.
- macro.phraseSeq.limited 一般には,現存資料の転記に使われることはない,一連の文字列と句レベル の要素を定義する.
- macro.schemaPattern 選択されたスキーマ言語による,要素にマッチするパタン.
- macro.specialPara 一連の句レベルまたは挿入レベルの要素と共に,一連の構成要素レベルの要 素,または段落相当の構造を持つ,注釈やリスト項目となる要素の内容モデ ルを定義する.
- macro.xtext 一連の文字列や外字要素を定義する.
内容モデル | 要素数 | 解説 |
macro.phraseSeq | 83 | クラス model.gLike, model.global, model.phrase にある要素とテキストの組み合わせ. |
macro.paraContent | 49 | クラス model.inter を加えたmacro.phraseSeq. |
empty | 39 | 内容を持たない要素. |
macro.specialPara | 24 | クラス model.divPart を加えたmacro.paraContent. |
macro.phraseSeq.limited | 24 | 転記できない内容中で使われるクラス model.phraseSeqの部分集合. |
text | 21 | タグ付けされていない素テキスト. |
macro.xtext | 19 | クラス model.gLike の要素とテキストの組み合わせ. |
- « 1.4.1 標準的な内容モデル
- Home | 目次
1.4.2 データ型マクロTEI: データ型マクロ¶
TEIスキーマ中の属性値は,TEIデータ型を参照することで定義さ れている. 各データ型は,他の原始データ型,例えば, W3C Schema データ型やリテラル値などを使い,定義されている. このような間接的な定義を採用することにより,TEIに準拠した独自のスキームでは,データ型を再定義したり,定義への参照を修正したりすることが容易になる. TEIデータ型では,時に,スキーマ言語では制御できない,使用 に関する制限を付加的に含むことがある. TEI準拠のソフトウェアは,データ型の検証をすべきである( 23.3 Conformance ).
リテラル値または名前トークンがデータ型定義で使われている場 合,関連する値のリストは,推奨または可能な値の重要度を定義 している.
TEI規定のデータ型は,量を示す数値,可能性を示す数値,各種 の省略コードまたはキー,そしてポインタまたはリンクのグルー プに分けることができる.
- data.certainty 確信度を示す属性値の程度を示す.
- data.probability 出現度を示す属性値の範囲を定義する.
- data.numeric 数値をとる属性値の範囲を定義する.
- data.count 非負整数値を採る属性値の範囲を定義する.
data.probability のデータ型の例としては, 要素 damage や 要素 certainty にある属性 degree で採る値である. data.numeric のデータ型の例としては,クラス att.measurement のメンバーにある属性 quantity や,要素 numeric にある属性 value で採る値である. data.count のデータ型の例としては,要素 cellや要素 tableにある属性 cols で採る値である.
- data.duration.w3c W3Cのデータ型を使い,時間幅を表現する当該属性値の範囲を定義する.
- data.duration.iso ISO 8601にある標準形式を使い,時間幅を表現する当該属性値の範囲を定義する.
- data.temporal.w3c 日付や時間などの時間表現をとる属性値の範囲を定義する.これは,W3Cの XML Schema Part 2: データ型に従ったものになる.
- data.temporal.iso 日付や時間などの時間表現をとる属性値の範囲を定義する.これは,次の国際標準に準拠したものになる. Data elements and interchange formats - Information interchange - Representation of dates and times
- data.truthValue 真偽値を示す属性値の範囲を定義する.
- data.xTruthValue 不明の場合もある真偽値をとる属性値の範囲を定義する.
- data.language 自然言語や書記システムを示す属性値の範囲を定義する.
- data.sex 人間または動物の性を示す属性値の範囲を定義する.
これらの属性値は,既存の国際規格類が使われることになる. 例えば,時刻,時間,日付については, XML Schema Part 2: Datatypes Second Edition でも採用されたISO 8601を,真偽値にはW3C Schema datatypesを,言語の表記にはBCP 47を,性別にはISO 5218を使うなどである.
- data.outputMeasurement webページ上で表示する際の大きさを定義する値の範囲を定義する.
- data.namespace W3CのXML名前空間で定義されている名前空間を示す属性値の範囲を示す.
- data.pattern 正規表現を属性値として定義する.
- data.pointer 他の資源へのポインタをとる属性値の範囲を定義する.
- data.key 任意の識別子により属性値の範囲が定義される.典型例は,外部で定義されているものから値がとられる.
- data.word いち単語またはトークンをとる属性値の範囲を定義する.
- data.name XML名前としてある属性値の範囲を定義する.
- data.enumerated 符号化されている記述にある,ひつとのXML名前を示す属性値の範囲を定義する.
- data.code ポインターにより,コードの値を示す当該属性値の範囲を定義する.
クラス att.namingにある属性 keyは,現在のところ,データ型クラス data.key を採る唯一の属性である. これは,外部で定義された識別子,例えば,データベースのキーやファイル名などを示すために使われている. 外部で定義されているため,可能な値に制約は課せられない. 値には,ユニコード文字を使うことができる. もし,属性値に何らかの制約,例えば,特定システム下のデータベースキー作 成規則などを設ける時は,TEIヘダー中の要素 tagUsage にそれを記述することができる. その場合には,ここで示した各種データ型の使用を強要するものではない. そのような,特別な制約は, 23.2 Personalization and Customizationにある カスタム化の手法を使い,TEIスキーマに追加することが出来る.
要素 personにある属性 age で採られるデータ型 data.wordでは, トークンや単語の識別子を規定している. TEIでは,この様な用途で使われる文字に,次のような制約を課 している. The TEI places a fewconstraints on the characters which may be used for this purpose: すなわち,ユニコード文字のうち,文字,数字,句読点記号のみを,属性値 として使うことが出来る. このような属性値には,いわゆる空白文字は取れないことに注意 して欲しい. 例えば, cholmondeley, été, 1234, e_content, xml:idなどは,正当な属性値であるが, grand wazooは正当な属性値ではない. この種の属性は,異なる種対の要素と(総合参照により)関連して使われることがある.
この意味で,データ型 data.nameの属性値は単語ともいえる. 但し,XML 1.0で規定された正当なXMLの識別子であるという制約はついている. 従って,そのような属性値は,数値や句読点記号で始まることはない. 例えば, cholmondeley, été, e_content, xml:idなどは,正当な属性値であるが, grand wazooや 1234などは,正当な属性値ではない. この種の属性値は,XMLの要素名や属性名として使われている.
要素 shift の属性 newや,クラス att.editLikeの属性 evidence 等で採られるデータ型 data.enumeratedには, データ型data.wordと同じ定義が与えられている. 但し,当該単語は,選択肢がまとめられた特定のリスト中から選ばれるという制約がある. いずれの場合でも,当該属性を含む要素やクラスには,可能な値のリストが,散文による解説と共に,規定されている. この値のリストは,オープンなもの(つまり,参考程度のもの),クローズなもの(つまり,選択が必須のもの),どちらも可能である. 後者の場合,当該データ型は,ata.enumeratedではなく,選択肢のリストを明示したものとなる.
データ型data.codeも,別の場所で詳細が定義されている符号化名を示していることから,これと似た機能を持つ. この場合,その詳細な定義は,一般には,同じ文書中の別のXML 要素内容に書かれていて,それをポインタで参照することになる.
属性は,例えば,ポインタや単語のリストから,1つ以上の属性値を取ることになる. TEIスキームでは,この種の特性は, 個々にデータ型として示されるのではなく,当該属性を解説するための要素 datatype で示されることになる. 詳しくは, 22.4.5.1 データ型を参照のこと.
- « 1.4 TEIのマクロ
- Home | 目次
1.5 TEI基盤モジュールTEI: TEIの基礎構造 Module¶
- クラス: att.ascribed att.damaged att.datable att.datable.w3c att.declarable att.declaring att.dimensions att.divLike att.duration.w3c att.editLike att.global att.handFeatures att.internetMedia att.interpLike att.measurement att.naming att.placement att.segLike att.spanning att.tableDecoration att.timed att.transcriptional att.translatable att.typed att.xmlspace model.addrPart model.addressLike model.biblLike model.biblPart model.castItemPart model.catDescPart model.choicePart model.common model.dateLike model.div1Like model.div2Like model.div3Like model.div4Like model.div5Like model.div6Like model.div7Like model.divBottom model.divBottomPart model.divGenLike model.divLike model.divPart model.divTop model.divTopPart model.divWrapper model.egLike model.emphLike model.entryPart model.entryPart.top model.featureVal model.featureVal.complex model.featureVal.single model.frontPart model.frontPart.drama model.gLike model.global model.global.edit model.global.meta model.glossLike model.graphicLike model.handDescPart model.headLike model.hiLike model.highlighted model.imprintPart model.inter model.lLike model.lPart model.labelLike model.limitedPhrase model.listLike model.measureLike model.milestoneLike model.msItemPart model.nameLike model.nameLike.agent model.noteLike model.oddDecl model.oddRef model.offsetLike model.orgStateLike model.pLike model.pLike.front model.pPart.data model.pPart.edit model.pPart.editorial model.pPart.msdesc model.pPart.transcriptional model.persEventLike model.persStateLike model.persTraitLike model.personLike model.personPart model.phrase model.phrase.xml model.physDescPart model.placeEventLike model.placeLike model.placeNamePart model.placeStateLike model.placeTraitLike model.ptrLike model.publicationStmtPart model.qLike model.quoteLike model.resourceLike model.respLike model.segLike model.settingPart model.specDescLike model.stageLike model.textDescPart model.titlepagePart
- マクロ: data.certainty data.code data.count data.duration.iso data.duration.w3c data.enumerated data.key data.language data.name data.namespace data.numeric data.outputMeasurement data.pattern data.pointer data.probability data.sex data.temporal.iso data.temporal.w3c data.truthValue data.word data.xTruthValue macro.limitedContent macro.paraContent macro.phraseSeq macro.phraseSeq.limited macro.specialPara macro.xtext
宣言の順番は,重要である. いくつかのクラスは,他の定義を参照している. その場合は,依存する定義を前に宣言しておく必要がある. TEIスキームのモジュール性から派生する,宣言の順番に関する制 約は,スキーマ言語毎に異なっている. 例えば,XML DTDではパラメータエンティティとマーク付きセクショ ンが,この機能のために使われている. また,RELAX NGでは,事前に多くのパタンが,null値(つまり,認 められない)と共に宣言されている. この種の問題については, 23.4 Implementation of an ODD System を参照のこと.
↑ Contents « vi 言語と文字集合 » 2 TEIヘダー