メインコンテンツに移動

5.4. 本文の構造化

teikemdrupaladmin に投稿

本頁の目次

1. 領域と段落、頁区切りと改行

2. 本文への注記

3. ルビの構造

4. 校訂テキストにおける校異情報の記述

5. 漢文における返り点

6. 割注/割書

7. IIIF画像との対応付け

8. 戯曲の構造化

領域と段落、頁区切りと改行

本文を構造化する上で、散文であれば段落や改行が必要となる。段落は、<p></p>タグで囲むことによって構造を示すことができる。一方、頁や行は、段落のような意味のまとまりとは関係なく発生しているため、内容の構造と共存させようとすると両者がオーバーラップしてしまう。これを共存させるために、頁や行は、区切りとして扱う手法が基本となる。すなわち、頁の始まりと行の始まりに、それぞれ空白タグとして<pb/>と<lb/>タグを置く方法である。これによって、段落の構造とオーバーラップせずに構造的な記述を行なうことが可能となる。<pb/>や<lb/>には@n属性を付与することによって頁数や行数を記述する仕組みが用意されている。

また、段落をまとめた節や章の単位で、意味の区切りとしてまとめて構造化する場合がある。これを表現するためには、<div>タグが用意されている。<div>は階層構造とすることも可能だが、この階層における層を明示するために<div1>、<div2>、<div3>…というタグも提供されている。これによって、特定の層のまとまりだけを対象として処理するプログラムが書きやすくなるといったメリットがある。

本文への注記

テキストデータの構造化において重要になることの一つは本文への注記である。注記の構造を表す場合には <note> タグを用いるのが基本である。<note> タグは、@type属性を用いることでその性質を区別することができる。

本文に対してどういう位置にあるのか、ということについては@place属性で指定できる。

また、<note>が注記する本文の任意の箇所を指定する場合には、<anchor/>タグとの組み合わせにより、注記対象の本文の終点を示し、<note>タグと属性で対応付けを行なう。

なお、注記のなかでも、具体的な役割が割り当てられている場合には、相応のタグが用意されている場合も少なくない。単語の品詞情報の注記には、<w>タグが用いられ、校異情報の注記には<app>をはじめとする一連のタグが持ちいられ、ルビは<ruby>タグ群が用いられる。

ルビの構造

TEI P5 ガイドライン4.2.0 より、ルビの構造が導入された。以下、書き方についての簡単なガイドを示す。 詳しくは、TEIガイドラインへの提案書(英語)を参照されたい。

ルビのマークアップは、 <ruby>がルビの対象になる要素<rb>とルビのテキスト<rt>を囲む、というのが基本となる。

これに加えて、 ルビの位置について、@placeで表現できる。縦書きで右側にルビがあれば@place="right"、横書きで上にルビがあれば @place="above"という風に属性をつける。さらに、ルビが手書きの場合には、@hand="筆者情報へのポインタ" によって筆写した人の情報を付与することができる。

その他、いくつかの書き方について、以下に提示する。

基本的なルビの書き方の例

<ruby>
  <rb>頼家</rb>
  <rt>よりいえ</rt>
</ruby>

ルビを文字毎に割り当てたい場合は以下のようにするのが一つの方法である。

<ruby>
  <rb>大</rb>
  <rt place="above">だい</rt>
</ruby>
<ruby>
  <rb>学</rb>
  <rt place="above">がく</rt>
</ruby>

ルビが手書きである場合の例(@hand属性で手書きであることとその筆者を示す)

<ruby>
  <rb>蘝蔓</rb>
  <rt hand="#森鴎外" style="color: red">
    ヤブカラシ
  </rt>
</ruby>
于野

典拠:森鴎外書き入れデータベースより

ルビが両側に来る例その1(入れ子構造による書き方) 典拠:国文学研究資料館・英国/龍動新繁昌記

<ruby>
  <rb>
    <ruby>
      <rb>打</rb>
      <rt place="right">ダ</rt>
    </ruby> 
    <ruby>
      <rb>球</rb>
      <rt place="right">キウ</rt>
    </ruby>
    場
  </rb>
  <rt place="left">ビリヤード</rt>
</ruby>

ルビが両側に来る例その2(<anchor/>タグを用いたStand off構造による書き方)

<ruby>
  <rb>
    <anchor xml:id="da"/>打
    <anchor xml:id="kyuu"/>球
    <anchor xml:id="ba"/>場
    <anchor  xml:id="owari"/>
  </rb>
  <rt place="left" from="#da" to="#owari">ビリヤード</rt>
  <rt place="right" from="#da" to="#kyuu">ダ</rt>
  <rt place="right" from="#kyuu" to="#ba">キウ</rt>
</ruby> 

ルビが両側に来る例その3(<c>タグと@targetを用いたStand off構造による書き方)

<ruby>
  <rb xml:id="dakyuuba"><c xml:id="chr1">打</c><c xml:id="chr2">球</c><c>場</c></rb>
  <rt place="left" target="#dakyuuba">ビリヤード</rt>
  <rt place="right" target="#chr1">ダ</rt>
  <rt place="right" target="#chr2">キウ</rt>
</ruby> 

校訂テキストにおける校異情報の記述

校訂テクスト(正確に言えば学術編集版)は、TEIガイドラインの主要ターゲットの一つであり、ユーザも多く、欧州の写本研究においては教育カリキュラムに組み込まれているところもあるようだ。TEIガイドラインに準拠して作成した学術編集版のXMLファイルをVersioning Machine http://v-machine.org/ というフリーソフトウェアに読み込ませると、各版を比較できるようにしたものを作成してくれる。たとえば『魔術師マーリンの予言』の複数の写本を比較しつつ注釈をつけた学術編集版をTEIガイドラインに沿って作成し、それをVersioning Machine に読み込ませると次のように表示してくれる。http://v-machine.org/samples/prophecy_of_merlin.html 同じことを、源氏物語の大規模な校訂テクスト『源氏物語大成』で試してみたものの一部を見てみよう。

Versioning Machineでの表示

元のXMLファイル(源氏物語大成の桐壺の最初のページ)

あるいは、東アジア/日本語資料向けに開発されたTEI古典籍ビューワを利用すると、以下のように縦書きでの表示も可能である。

TEI古典籍ビューワでの源氏物語の冒頭箇所

源氏物語の諸写本を集めて翻刻した上でTEIガイドラインに沿って記述するのは困難だが、それらを集めて校訂した『源氏物語大成』の場合、活字を用いている上に、西洋で発展した近代的な手法を援用してテクストを作成しているため、このようにしてTEIガイドラインを適用することはさほど難しくない。日本研究が手法において西洋の影響を強く受けていることの証左とみることもできるだろう。

あるいは、異文(異読)を含む画像がIIIF対応で公開されている場合、その該当箇所に <zone>を用いることでリンクすることも可能である。その表示に関してはTEI古典籍ビューワが対応しているので、その事例を以下のURLにて参照されたい。

「石清水社歌合」における異文該当箇所表示の例

欧州のDHプロジェクトDARIAHによるDigital Scholarly Editions構築を解説したMOOCに日本語字幕がついているのでそちらも参照されたい。

具体的な事例の説明

上記の源氏物語の例をもう少し説明してみよう。この本では、複数の写本を比較対照し、異なるものが注記されている。TEIガイドラインでは、その注記をXMLタグで表現するルールを定めている。それに従うと、まず、参照された写本を、TEI文書の書誌情報等を入力する箇所(teiHeader)に以下のように列挙する。

<listWit>
<witness xml:id="大成">源氏物語大成</witness>
<witness xml:id="靑大">靑表紙本系 大島本</witness>
<witness xml:id="靑肖">靑表紙本系 肖柏本</witness>
<witness xml:id="靑三">靑表紙本系 三條西家本</witness>
<witness xml:id="靑横">靑表紙本系 横山本</witness>
<witness xml:id="靑池">靑表紙本系 池田本</witness>
<witness xml:id="河">河内本</witness>
<witness xml:id="御">河内本系 御物本</witness>
<witness xml:id="別">別本</witness>
<witness xml:id="別國">別本 國冬本</witness>
<witness xml:id="別陽">別本 陽明本</witness>
<witness xml:id="別麥">別本 麥生本</witness>
</listWit>

ここでは、それぞれの写本の名称がリストされ、それに対するxml:id属性が与えられている。このxml:id属性の値を用いて、各写本をTEI文書内の別の箇所から参照することができる。その機能を利用して、異文のある箇所は以下のように記述する。

<app>
<lem wit="#大成 #別 #御 #靑肖 #靑池 #靑横 #靑三 #靑大 #河">人のよしあるにておやうちくしさしあたりて世のおほえはな</lem>
<rdg wit="#別陽">よしある人にておやうちくしさしあたりて世のおほえはな</rdg>
<rdg wit="#別麥">人のよしあるまておやうちくしさしあたりて世のおほえはな</rdg>
<rdg wit="#別國">人のよしあるにておやなしとても世のおほえはな</rdg>
</app>

ここでは、本文にあたるものは<lem>タグで示され、本文と異動のないものも同様にその写本のxml:idの値が記載されている。 そして、異文として3つの文が<rdg>タグで与えられ、それぞれに対応する写本のxml:idの値が wit="#..."という形で 記載されている。このようにして、異文(異読)情報をするのがTEI/XMLが定める記法の一つである。

なお、異文情報には、他に2つの書き方が提供されている。上記の記法はparallel segmentation methodと呼ばれるものであり、 本文中の該当箇所を<app>タグで囲み、そこにlemとrdgを並べていく書き方である。この書き方では、異文に対応する 文の後端を確認でき、処理も比較的容易である。そこで、この種の情報を記述する際に広く用いられている。いくつかの 学術編集版システムが対応しているのもこの記法である。

一方、他に、location-referenced methodとdouble-end-point-attached methodも提供されている。前者は、対応する本文の後端を 示さない記法であり、機械処理には向かないが、記述する際のコストを下げることができる。後者は、parallel segmentation methodでは オーバーラップしてしまう場合に用いられる。確実に対応する位置を示すことができることはメリットであり、東アジア/日本語資料向けには上記のTEI古典籍ビューワが対応している。

マークアップ手法に関しては、詳しくは以下を参照されたい。

https://tei-c.org/release/doc/tei-p5-doc/en/html/TC.html#TCAPLK

漢文における返り点

漢文における返り点に用いられる個々の文字に関しては、Unicodeにおいて符号化されており、そこに含まれているものに関しては、それを利用するべきである。各文字の表はこの頁の下部を参照されたい。

漢文記号はUnicodeのレベルで本文の他の文字との区別は機械的に可能だが、TEI/XMLのタグを付与しておくと、Unicodeのレベルではなくタグのレベルで処理できるため、TEI/XMLファイルの操作の一環として扱うことができ、その点で利便性を高めることができる。(具体的に言うなら、たとえば、返り点の削除や任意の返り点を取り出して分析するといった時にXMLライブラリで処理できる)。

テキスト中でマークアップする場合には、現在のTEI P5ガイドラインの枠組みでは、以下のようにしておくことを推奨する。

勝鬘應
<metamark function="kaeriten">㆑</metamark>
聞
<metamark function="kaeriten">㆓</metamark>
常住
<metamark function="kaeriten">㆒</metamark>
之時
<metamark function="kaeriten">㆖</metamark>
也。

なお、Unicodeにおける漢文記号は現時点では以下のとおりである。

記号 Unicode JIS X 0213 文字参照 名称
U+3190 - &#x3190; &#12688; IDEOGRAPHIC ANNOTATION LINKING MARK
U+3191 - &#x3191; &#12689; IDEOGRAPHIC ANNOTATION REVERSE MARK
U+3192 - &#x3192; &#12690; IDEOGRAPHIC ANNOTATION ONE MARK
U+3193 - &#x3193; &#12691; IDEOGRAPHIC ANNOTATION TWO MARK
U+3194 - &#x3194; &#12692; IDEOGRAPHIC ANNOTATION THREE MARK
U+3195 - &#x3195; &#12693; IDEOGRAPHIC ANNOTATION FOUR MARK
U+3196 - &#x3196; &#12694; IDEOGRAPHIC ANNOTATION TOP MARK
U+3197 - &#x3197; &#12695; IDEOGRAPHIC ANNOTATION MIDDLE MARK
U+3198 - &#x3198; &#12696; IDEOGRAPHIC ANNOTATION BOTTOM MARK
U+3199 - &#x3199; &#12697; IDEOGRAPHIC ANNOTATION FIRST MARK
U+319A - &#x319A; &#12698; IDEOGRAPHIC ANNOTATION SECOND MARK
U+319B - &#x319B; &#12699; IDEOGRAPHIC ANNOTATION THIRD MARK
U+319C - &#x319C; &#12700; IDEOGRAPHIC ANNOTATION FOURTH MARK
U+319D - &#x319D; &#12701; IDEOGRAPHIC ANNOTATION HEAVEN MARK
U+319E - &#x319E; &#12702; IDEOGRAPHIC ANNOTATION EARTH MARK
U+319F - &#x319F; &#12703; IDEOGRAPHIC ANNOTATION MAN MARK

割注/割書

東アジアの縦書きのテキストには、1行の中に複数行を割り付けて注釈などを行なう場合がある。

13

このような場合には、それが本文なのか注釈なのかを判断した上で、構造化を行なうことになる。

判断に迷う場合や本文と判定する場合は<seg>、注釈の場合は<note>を用いることが推奨される。あるいは、辞書の意味であれば<gloss>を利用することもあり得る。いずれかを付与した上で、@type属性で"wari"、もしくは"double"を指定することによって割注/割書であるという記述をすることが推奨される。

また、割注/割書のなかでは改行が発生することになる。このような場合に、ただ<lb/>を使ってしまうと、本文の<lb/>との区別がつかないために、表示が崩れてしまうなど様々な課題が生じる。これを解決するためにいくつかの方法が提案されている。@type="wari"、あるいは、深さを示すための@depth="2"である。

IIIF画像との対応付け

IIIF対応画像に関する記述は、TEIガイドラインによって記述することもできる。TEIガイドラインに準拠した記述は、テキストデータの構造と画像をリンクさせながら記述することができるため、特に人文学向けデータにおいては有用性が高い。

画像資料群のIIIF manifestとTEI準拠ファイルの対応付け

まず必要になるのは画像群全体の対応付けである。以下に、IIIF manifestとTEIガイドラインにおけるタグ・属性との対応を記述する。

<?xml version="1.0" encoding="UTF-8"?>
<TEI xmlns="http://www.tei-c.org/ns/1.0">
	<facsimile sameAs="https://www.dl.ndl.go.jp/api/iiif/3437686/manifest.json">
		<surface xml:id="f000" ulx="0" uly="0" lrx="6890" lry="4706" sameAs="https://www.dl.ndl.go.jp/api/iiif/3437686/canvas/1">
			<label>1</label>
			<graphic width="6890px" height="4706px" url="https://www.dl.ndl.go.jp/api/iiif/3437686/R0000001/full/full/0/default.jpg" sameAs="https://www.dl.ndl.go.jp/api/iiif/3437686/R0000001"/>
		</surface>
		<surface xml:id="f001" ulx="0" uly="0" lrx="6890" lry="4706" sameAs="https://www.dl.ndl.go.jp/api/iiif/3437686/canvas/2">
			<label>2</label>
			<graphic width="6890px" height="4706px" url="https://www.dl.ndl.go.jp/api/iiif/3437686/R0000002/full/full/0/default.jpg" sameAs="https://www.dl.ndl.go.jp/api/iiif/3437686/R0000002"/>
		</surface>
		...
	</facsimile>
</TEI>

画像上の任意の領域を指定してテキストと紐付け

あるデジタル化資料画像群における任意の画像の任意の位置を指定して表示・処理できることがIIIFの魅力の一つである。これはTEIガイドラインにおいても同様に記述可能である。この場合、<zone>タグを用いる。そして、矩形の場合は@rect属性、多角形の場合は@points属性で座標情報を記述することになる。たとえば以下のようになる。


<surface lry="3475" lrx="5460" uly="0" ulx="0" xml:id="p003" sameAs="https://dl.ndl.go.jp/api/iiif/8929980/canvas/3">
<graphic url="https://dl.ndl.go.jp/api/iiif/8929980/R0000003/full/full/0/default.jpg" width="5460px" height="3475px" sameAs="https://dl.ndl.go.jp/api/iiif/8929980/R0000003"/>
<label>3</label>
<zone xml:id="tengu_1" points="1388,629 2643,593 2697,1367 2145,1721 1065,1270"/>
<zone xml:id="text_1" points="2000,1769 2757,1586 2767,2873 1014,2865 1020,1651 1410,1624 1705,1654"/>
</surface>

ここでは、各領域の<zone>に@xml:id属性を用いてIDを付与している。この#tengu_1と#text_1は他の要素から参照可能になる。画像の場合には、たとえば以下のように、@facs属性で紐付けることになる。

<persName corresp="#眷属の天狗" facs="#tengu_1" type="天狗">
眷属の天狗
</persName>

戯曲の構造化

戯曲の構造化方法について説明する。 戯曲の構造化例はこちら

登場人物の一覧を記述する

 まずtext要素内にfront要素、p要素、listPerson要素を追加する。listPerson要素の中にperson要素を使って、各登場人物に関する情報を記述する。その際、person要素のxml:id属性に人物のIDを付与する。後ほど本文から登場人物を参照する際に利用する。登場人物の名前はpersName要素を使って記述する。その他、登場人物の職業の記述にはoccupation要素などを使用することができる。

image3.png

図. マークアップの例

段落を分ける

 段落の記述にはbody要素内にdiv要素を追加する。n属性やtype属性を使って情報を付加することもできる。段落名はhead要素を使って記述する。

image2.png

image6.png

図. オリジナルテキスト(上)とマークアップの例(下)

ト書きを記述する

 ト書きの記述にはstage要素を用いる。

image5.png

image1.png

図. オリジナルテキスト(上)とマークアップの例(下)

発話内容を記述する

 発話内容の記述にはsp要素を用いる。その際、who属性を使って発話者のIDを指定する。sp要素の中に、speaker要素を使って発話者の名称を記述し、p要素を使って発話内容を記述する。

image7.png

image4.png

図. オリジナルテキスト(上)とマークアップの例(下)

戯曲の発話内容を可視化してみる

 マークアップが完了したら、こちらのページで戯曲の発話内容を可視化することができる。登場人物は緑色、発話内容は赤色で表示される。また発話者名をクリックすると、選択した発話者の発話内容の一覧と、発話者の呼称の一覧が表示される。

image8.png

図. 可視化例