メインコンテンツに移動

5.2. TEI文書の基本的構造

teikemdrupaladmin に投稿

このページの項目

もっとも基本的な構造は、文書本体に加えてヘッダ(<teiHeader>)が必須となっている点である。 ヘッダを必須とすることで、テキストファイルを見た時にファイルがなんであるかわからなくなってしまうという事態を避けることを目指している。 これを踏まえたもっとも基本的な形式は、以下の図1のとおりである。
(図1)

なお、汎用XMLエディタであるOxygen XML Editorでは、メニューバーの「ファイル」⇒「新規作成」⇒(ダイアログが開くので)「フレームワーク テンプレート」⇒「TEI P5」⇒「All」を選んでから「作成」ボタンをクリックすると作成される。

ヘッダの書き方


(図2)

TEIヘッダ(<teiHeader></teiHeader>, 上の図では3~15行目)の中には、

  • そのファイル自体の書誌情報(電子版作成情報を含む)
  • 元になった資料の書誌情報
をそれぞれ定められた場所に記述する。この中で、どこにどういう情報を書けばよいのか、ということを以下にみてみよう。

<titleStmt>

このエレメントには、当該作品のタイトルと、内容についての責任を持つ者の情報が記載される。たとえば、青空文庫の「走れメロス」をTEIに準拠して構造化したファイルでは、青空文庫テキストの作成者の情報を踏まえて以下のように記述されている。


(図3)

これを部分的に見ていくと、まず、通常書かれるべきタイトルと著者名は以下のようになっている。
(図4)

次に、青空文庫における翻刻者と校正者の名前が記載されている。


(図5)

ここで注目しておきたいのが、<resp>エレメントである。ここには、この資料の内容について、どのような責任を持っているのか、ということが記述される。その上で、<name>でその人の名前が書かれ、<respStmt>で囲まれて一つの要素となる。

次に、青空文庫がテキストデータを作成したという記述を見てみよう。


(図6)

ここでは、青空文庫は組織の名前であるため、<orgName>エレメントが用いられている。そして、作成の日付がわかっているため、それを機械可読にしておくべく、<resp>エレメントにwhen属性が付与され、そこにISOの書式に準拠した日付が記述されている。さらに、詳しい注記が<note>によって付けられている。この<note>は、ここでの暫定的な措置として、青空文庫ファイルに付与されているフッタ情報における書誌・作成関連情報をそのままもってきている。ただし、元のHTMLにおける<br>はそのままではTEIでは使えないため、<lb/> (line beginning)に置き換えられている。

<publicationStmt>

次に、刊行に関する情報を書く<publicationStmt>エレメントを見てみよう。


(図7)

ここでは、TEI協会東アジア/日本語分科会が刊行しているという形をとっているので、<distributor>にはその旨が書かれている。日付は<date>で、本文としては日本語の年月日の書式で書かれているが、機械可読性を高めるために、<date>エレメントにwhen属性をつけてISO書式の日付情報(つまり、 YYYY-MM-DDの形式)が記述されている。

次に、図7中の<availability>を見てみよう。ここでは、パブリックドメインであることを示すために、クリエイティブ・コモンズ・ライセンスのCC0であることを記述するとともに、それを<ref>タグで囲った上で、target属性でクリエイティブ・コモンズのCC0ライセンスのURLを指定している。このルールが共有できていれば、このファイルのライセンスがパブリックドメインであることが自動的に確認できる。クリエイティブ・コモンズ・ライセンスはグローバルに広く用いられているため、Web上でデータを処理するプログラムの多くがこれを知っている。したがって、これに従って記述しておくことで、機械可読性を高めることができるようになる。

<sourceDesc>

<sourceDesc>も見てみよう。これは、元になった資料の情報を記述するためのエレメントである。


(図8) この場合は、一冊の刊本からデジタル翻刻したものだが、比較的容易に記述可能である。<bibl>エレメント中に1冊の刊本の情報が記述され、さらに著者名タイトル等の各要素がマークアップされている。日付のマークアップの仕方は、これまで見てきたいくつかの例を参考にされたい。

テキスト <text> の書き方

書誌情報 <teiHeader> に対して、テキスト部分には、<text>が来るのが通常だが、この中では、本文要素 <body> 以外に、<front> と <back>も含むことができる。登場人物一覧等は <front> か<back>に、用語索引等の付録は <back> に入れるのが通例である。TEIガイドラインでは、文化的背景に応じてfrontかbackかを決める、とされている。

登場人物のマークアップ:人物リスト

登場人物をマークアップしておくと後々様々な面で有益なので、時間的に可能そうな場合にはぜひ挑戦してみたい。その場合は、<back>以下で<listPerson>を用いて人物要素をリストしておいて、個々の<person>にxml:id属性を付与しておく。これは、作業しながら後から追加していったり、あるいは本文中にタグを一通りつけた後に自動的に本文から抽出することもできるので、必ずしも最初に人物リストを作成する必要はにあ。あくまでも、マークアップの例として見ておいていただきたい。


(図9)

本文での段落マークアップ

次に、本文 <body> でのマークアップをみてみよう。<front> を作成した場合には、それに続けて書くことになる、<front> がない場合には、<text> の直下にすぐに書くことになる。なお、TEI_BPTlibレベル3(*)の最低限のマークアップとしては、 <p> をつけて段落を明記することによる構造化だけでも十分である。その場合は、以下のようになる。


(図10)

登場人物のマークアップ:本文の場合

登場人物のマークアップは、戯曲の場合にはそれに特化された手法がありますが、通常の散文では、<persName> というタグをつけることで行う。人物名は別名や略称になっていることもあるので、いずれかの人物であることを同定できる場合は、人物リスト中のxml:idを属性値として付与することで自動的に同定できるようにする。


(図11)

(図12)

ただし、先にも述べたように、人物リストは、このようにして本文にタグをつけながら、あるいはつけた後で作成することもできる上に、ある程度自動化することも可能であるため、「先に人物リストをきちんと作ってから本文データに着手しなければならない」と考える必要はない。

以上が、ごく基本的な本文マークアップの例である。

なお、TEIガイドラインに準拠したテキストデータの全体的な構造については、詳しくは、TEIガイドライン第四章日本語訳(https://dhportal.ac.jp/?p=978)を参照されたい。