古典テキスト入力のためのXMLツール [XML]
古典テキスト、と言えば、僕の場合チベット語のテキストだが、これの校訂テキストを作成するのに便利なツールを作るにはどうしたらいいか、ということを随分前に書いた。その後、他の先生と話をして、希望などを聞いてみたところ、少し方針を変更するにした。まだ、具体的にどう作るかの見通しはないので、ここで少し考えてみたい。
最終的なツールの見え方としては、HTMLによるWebページにする。処理のためには、PHPとXML、XSLTを使用する。データはXMLで保存しておく。XSLTで処理できる部分はXSLTで処理し、それではできないところはPHPを使用する、という組み合わせで作る。この点は以前と変わらない。
問題は、XMLのデータ構造である。これは前にも色々と揺れていた。今度、他の先生と話をして、大きく方針を変えた。前は、校注を本文テキストの中にタグを付けて、混在させていて、表示するときだけ、見やすく分離することを考えていた。しかし、これでは、見せるにはいいが、編集支援という部分が弱くなる。少なくとも、画面表示では、テキスト本文と注記の部分は、フィールド分けて表示をした方がいいということになった。
それでは、データ、すなわちXMLをどのような形式にしておいたらいいだろうか。
以前とは異なり、オリジナルのテキスト一ページごとに、データも一つのファイルにするか、あるいは少なくとも、XMLの一つの単位を一ページに設定し、その中に注記も含めておくようにする。ただし、テキスト本文に入れるのではなく、本文の後ろに付けるようにする。あるいは、本文の中に入れる形式と、本文の後に付ける形式は、XSLTで変換できるようにする。
<p no="123a">abcd efgh ijkl mnt opq rstu vwx yz / zyxw vuts rqpo tnm lkji P: lkji, D:LKJI. hgfe cdba /mnt </p>P: mnt; D: mno. rtst efht vwxy ijkl abcd opq /
これをXHTMLに変換する。ページ番号などのデータはXHTMLの要素ではなく、直接テキストに書き込む。
<div class="p"> [123a1] abcd efgh ijkl mnt opq rstu vwx yz / [123a2] zyxw vuts rqpo tnm lkji [*1] hgfe cdba / [123a3] mnt[*2] rtst efht vwxy ijkl abcd opq / </div> <div class="nt"> <ol> <li> P: lkji, D:LKJI.</li> <li>P: mnt; D: mno.</li> </ol> </div>
XMLからXHTMLへの変換はXSLTを使えば可能なように思う。しかし、その逆はPHPなどのスクリプトの席表現を使わなければならないだろう。正規表現を使えば十分可能な範囲だと思う。
本当はもう少しよく考えて、より簡潔な表記を可能にできるかもしれない。それはまた後日考え直すことにしよう。
コメント 0