メインコンテンツに移動

スキーマのカスタマイズ

teikemdrupaladmin に投稿

XMLで文書データを扱う場合には、どのような要素や属性を使用できるのか、また、それらをどのような構造で配置すべきかを定める仕組みが必要となる。この仕組みがスキーマである。スキーマは、文書の書き方に一定の規則を与えるものであり、単に記述上の誤りを防ぐだけでなく、複数の作成者のあいだで記述方法を共有し、さらに機械による処理を可能にするうえで重要な役割を果たす。すなわち、XML文書にタグが付されているだけでは十分ではなく、どのタグがどのような意味を持ち、どのような文脈で使用されるべきかが、スキーマによって明確にされてはじめて、そのデータは安定して共有・再利用できるものとなるのである。

現在のTEIガイドラインはXMLに準拠したテキスト記述の枠組みとなっているため、このスキーマの仕組みが前提となっている。TEIガイドラインは、多様なテキスト資料に対応できるように、非常に多くの要素や属性を備えているが、それらを実際にどの範囲で、どのような方針のもとに用いるかは、スキーマを通じて具体化される。したがって、TEIにおけるスキーマは、文書の妥当性を検証するための技術的手段であるにとどまらず、データ共有のためのルールを明示し、記述の一貫性と相互運用性を支える基盤として重要な意味をもつ。

このような観点から見ると、スキーマをカスタマイズすることの意義は理解しやすいだろう。TEIは包括的な規格であり、その柔軟性は大きな利点であるが、個々の研究プロジェクトにとっては、すべての要素や属性が必要となるわけではない。むしろ、必要以上に広い要素集合をそのまま用いると、記述方針が曖昧になり、入力上の揺れが増え、結果としてデータの一貫性が損なわれるおそれがある。スキーマのカスタマイズは、そのような状況に対して、必要な要素のみを選択し、必要に応じて制約を加えた独自のスキーマを作成するための枠組みであり、TEI協会では、それを支援する簡便なWebアプリケーションとしてRomaを開発し提供している。Romaを用いることで、各プロジェクトは自らの目的や対象資料に即した記述規則を明確にしたり、データ作成の安定性を向上させることを比較的容易に実現できる。また、そのカスタマイズ内容をODD形式(One Document, Does it all. 詳しくは下記参照)のファイルとして出力できるため、どのような設計判断にもとづいてそのスキーマが構築されたのかを明示しやすい点も重要である。

ただし、このようなスキーマのカスタマイズには場合によっては代償が生じる場合もある。プロジェクトごとに独自の要素選択や制約を行えば、同じTEIにもとづくデータであっても、相互の互換性は低下しやすい。とりわけ、新たな要素や属性を独自に追加する場合には問題となりやすいので特に慎重な検討が必要である。人間の読解においては、多少異なる構造や運用方針であっても文脈から理解できる場合があるが、機械処理においては、要素名、属性、出現位置、内容モデルなどが少し異なるだけでも、同一の処理や変換をそのまま適用できなくなることがある。したがって、Romaによるスキーマカスタマイズは、TEIを現実の研究プロジェクトにうまく対応させるための有力な手段である一方で、データ共有の基盤そのものを弱める可能性を孕んでいる。個別最適化の利点と、標準化によって得られる相互運用性とのあいだで、適切な均衡をいかに保つかを判断していくことが重要となる。

ODDについての補足

TEIにおける ODD とは、One Document Does it all の略であり、TEIのスキーマやその説明を一体的に記述するための仕組みである。

簡単に言えば、ODDは「このプロジェクトではTEIをどのように用いるか」を定義するための設計書である。TEIは非常に多くの要素や属性を備えた柔軟な規格であるが、実際の研究やプロジェクトにおいては、そのすべてを使用するとは限らない。そこでODDを用いることで、

どの要素を用いるか/ どの要素を用いないか/ 特定の要素にどのような属性を認めるか/ 要素や属性をどのように説明するか

といった事項を、一つの文書の中で定義することができる。

ODDの大きな特徴は、機械可読なスキーマ定義と人間向けの説明文書を、同じ元データから生成できる点にある。たとえばODDからは、Relax NG、DTD、W3C Schema などのスキーマを生成できるだけでなく、そのカスタマイズ内容を説明する文書も作成できる。すなわちODDは、単なる技術的設定ファイルではなく、運用方針や設計意図も含めて共有するための仕組みでもある。

TEIに詳しい人がいるプロジェクトの場合には、必要に応じて要素や属性を選択し、独自のカスタマイズを行うことがある。そのような場合には、ODD形式のファイルがTEIカスタマイズのために作成されることになる。Roma などのツールは、このODDを作成・編集するためによく用いられる。

つまり、ODDとは、TEIの使い方を定義し、その定義からスキーマと説明文書の両方を作成するための仕組みであると言える。