前回・前々回に引き続き、TEIの話です。前回、ごく基本的なマークアップでもOKだということを少し書きましたが、それでは試しに、ということで、青空文庫の『走れメロス』をTEIにて書いてみました。それがこちらになります。
特に説明するようなことはあまりないのですが、TEIのタグ付けルールに従って、本文にパラグラフごとに<p>タグをつけていっているのと、書誌情報のところで、青空文庫としての入力者情報や訂正情報などを書いています。これには、電子版としての位置づけをどう考えるかによって色々な書き方があり、これが正解というものはないようですので、最終的には電子版作成者の側でどうするかを決めることになります。今回は、上記のリンク先のXMLファイルに載っていることを改めて部分的に引用しますが、少し検討した結果、以下のようにしてみています。青空文庫のファイルのフッタの情報を抜き出して置き換えています。
<TEI xmlns="http://www.tei-c.org/ns/1.0">
<teiHeader>
<fileDesc>
<titleStmt>
<title>走れメロス</title>
<author>太宰治</author>
</titleStmt>
<publicationStmt>
<distributor>青空文庫</distributor>
<authority>金川一之</authority>
<authority>高橋美奈子</authority>
<date when="2011-01-17"> 2011年1月17日</date>
</publicationStmt>
<sourceDesc>
<bibl>
<author>太宰治</author>
<title>走れメロス</title>
<publisher>筑摩書房</publisher>「太宰治全集3」ちくま文庫、
<date when="1988-10-25">1988(昭和63)年10月25日</date>初版発行
<date when="1998-06-15">1998(平成10)年6月15日</date>第2刷
</bibl>
</sourceDesc>
</fileDesc>
<revisionDesc>
<list>
<item>
<date when="2011-01-17">2011年1月17日</date>修正 </item>
<item> 入力金川一之 校正高橋美奈子 <date when="2000-12-04"> 2000年12月4日</date>作成 </item>
</list>
</revisionDesc>
</teiHeader>
これはもちろん、完全ではなくて、様々な情報に関して典拠情報などを参照することができます。典拠情報に関しては、基本的には、タグの属性として ref="典拠情報のURL"という風に書くことになるようです。
XMLの操作を知っている人ならこれだけでも一目瞭然だと思いますが、タグがついている情報に関しては、タグを指定した上でその内容を検索することができます。たとえば、入力者名を検索したいと思えば、TEI->teiHeader->fileDesc->publicationStmt->authorityの中を指定して検索することができます。あるいは、元になった本の刊行年を抜き出したければ、TEI->teiHeader->fileDesc->sourceDesc->bibl->dateで抜き出しできます。この事例では2つ<date>がありますが、この場合は、新しい方のみを抜き出せばよさそうです。
これは、検索するだけでなく、抜き出して統計処理をしたりするのにも使えます。抜き出したものをCSVファイルに書き出せば、エクセル等に読み込ませて処理することもできますね。
次に、本文を見てみますと、これはもう本当に単純です。パラグラフで区切っているだけです。しかし、これでもTEI準拠と言うことができますし、その意味が十分にあります。というのは、このTEI/XMLファイルを流通させることによって、どの文章が何番目のパラグラフにあって、さらに、パラグラフのなかの何番目の文字から始まる文章か、ということも共有できます。その場合、TEI->text->body->pという風に見ていきますが、ここでは<p>が複数(多数)存在するということになります。EPUB等で言えばリフロー型ということになると思いますが、それがより様々な発展の可能性を秘めた形で作成されていると考えていただくとよいのではないかと思います。
<人名と発話をタグ付けしてみる>
さて、これだけですとあまり面白くないので、もう少し話を進めたいと思います。
青空文庫には「ルビ」がありますね。そのルビはどこに行ったのか、という話がありますが、それは一応実現していますがかなり高度な話になってしまうので、少し先で御説明したいと思います。というのは、TEIガイドラインではルビのルールをまだ持っていないからです。これは現在、ルビのルールをTEIガイドラインに入れてもらうべく準備をしております。(それも含めて日本語の問題を十分に解決するために、昨年、TEI協会に東アジア/日本語分科会が設立されました。)もちろん、では全然日本語に対応できないのかといえばそうではなく、TEIではスキーマをカスタマイズするための手立ても用意しておりますので、スキーマをカスタマイズすることによってルビも実現可能です。ただ、その準備が少しややこしいので、まずはその前にできそうなことを少しみていきましょう。
とりあえず、人名と会話が色々出てくるので、それを整理してみたいと思います。この場合、人名については<persName></persName>というタグが用意されていて、corresp=""といった属性で人物名IDを与えることによって、略称などが出てきた場合でも統一的に処理できるようにしています。もちろん、これにはタグをつけた人の判断が入り込む余地があり、人によって判断が異なる場合もありますので、それを誰が行ったかということは本来きちんと残しておくべきです。それも、そういう書き方がいくつか用意されています。が、まだそこまでは踏み込みません。
ということで、用意してみたのがこちら(dazai_persName.xml)です。(このファイルを見てびっくりしないでいただきたいのですが、このように色々タグをつける場合には、普通のエディタだとちょっと難しく、XML Editorを使う必要があります。このブログでもご紹介したoXygen XML Editorがおすすめです。その使い方についても近々このブログでご紹介します。)
このなかで、たとえば、最後の方に
<persName corresp="#メロス">勇者</persName>
という記述があります。このような感じで、corresp="#メロス"となっているエレメントは、ファイルの最初の方に用意されている以下の<person xml:id="メロス"> ~</person>を参照していることになります。(XMLのルールとして、属性の値に「#」がついている場合は、同じファイル内で#以下の文字列のIDを持っているエレメント(タグとその内容)を指す、ということになっています。)
なお、このような<persName>のエレメント使い方は本来の使い方からはちょっと違っているかもしれないのですが、とりあえずどういう風に使えるかを示すための例ということでご容赦ください。
次に、dazai_persName.xmlの中で、<said who="#メロス">~</said>というタグを探してみてください。これは発話を表すタグで、ここでは「誰の発話か」を明確にするためのwhoという属性が使えることになっています。ここでも、「#メロス」となっていますので、やはり、「メロス」というxml:idを持つエレメントを参照する、ということになります。TEIは、このXMLのID参照機能を活用して利便性を高めています。
さて、このようにしてタグをつけていくと、どの発話が誰によるものか、ということをきちんと残すことができるようになります。そんなものはAIでできるようになるからよいのではないか、と思う人も最近は多いと思いますが、基本的に、コンピュータ処理ではわからない部分をどうするかということは常に課題であり、分量がそれほど多くない場合はむしろ人手でやってしまった方がよく、人手で作業する場合にはなるべく共通フォーマットにしておいた方が色々と後々安全である、ということで、TEIに落ち着くのが一つの有力な手段になるようです。
これだけでもかなり大変そうですが、このようにしてタグを付けたとして、付けたらそれで終わりなのか…というわけにもいきません。そこで、試しにこういうものを作ってみました。このページの「ファイル選択」ボタンを押して、先ほどのdazai_persName.xmlを選択して開くと、(あるいはそのファイルをこのボタンにドラッグすると)、このファイルを開くとともに、発話のところを茶色にしたり、人名を靑色にしたりしています。そして、人名をクリックすると、その人名の発話内容と呼称が右側のウインドウにリストされます。たとえば以下のような感じです。
ここら辺の技術をわかっている人には当たり前すぎる話で恐縮ですが、とりあえず、あくまでも一つの利用例として、このようなことができるということで提示しております。基本的に、TEI/XMLで肝心なのは、「一つ書いておけば色々な形で活用できる」ということです。たとえば、セリヌンティウスの発話だけを取り出して何かと比較したい、と思ったときなど、これを利用すればいちいちコピペなどせずとも割と簡単に抜き出せます。あるいは、太宰作品における発話をすべて拾い出して傾向を見たい、と思ったときなどは、<said>~</said>を全部抜き出すことになるでしょう。もし、他の太宰作品もすべて<said>~</said>タグがついていたなら、それは割と簡単に実現できますし、それがたとえば青空文庫の本すべてに行われていたらさらに幅は広がります。発話だけなら、鉤括弧を探せば大体みつかるかもしれませんが、鉤括弧に囲まれていない発話もある場合には、やはりこのようにしてタグで発話であるとつけておくことが後々有益でしょうし、そこに誰の発話かということももし記述しておくことができれば、もっと有益になるでしょう。
とりあえず、固有名詞やそれに類する言葉の扱いは、比較的わかりやすい例かもしれないと思いまして、挙げさせていただきました。他にも、辞書や校訂テクスト、コーパス、そして、「ルビ」など、色々ありますので、徐々に採り上げていきたいと思います。今後ともよろしくお願いいたします。