はじめに

TEI(Text Encoding Initiative)でデジタル画像のメタデータを記述する際、facsimile要素を使用します。特にIIIF(International Image Interoperability Framework)対応のデジタルアーカイブでは、マニフェストやキャンバス、Image APIへの参照を適切に記述することが重要です。

本記事では、ODD(One Document Does it all)を使用して、ファクシミリ記述に必要な制約をスキーマとして定義する方法を紹介します。

準拠するガイドライン

本ODDは、日本語TEIガイドラインで紹介されている「IIIF画像とのリンク」仕様をベースにしています:

このガイドラインに準拠したデータを作成することで、TEI Viewer for EAJでの画像表示が可能になります。TEI Viewerは、TEIテキストとIIIF画像を連携して表示できるビューアであり、facsimile要素の情報を利用してテキストと画像の対応付けを行います。

設計目標

以下の要件を満たすスキーマを設計しました:

  1. 必須情報の明確化 : 画像の座標情報や識別子など、最低限必要な情報を必須属性として定義
  2. IIIF対応 : マニフェスト、キャンバス、Image APIへの参照をオプショナルに記述可能
  3. 再利用性 : 独立したODDファイルとして、複数プロジェクトで共有可能
  4. ビューア互換性 : TEI Viewer for EAJでの表示に必要な情報を確実に記録

最小限の記述例

<facsimile sameAs="https://example.org/iiif/manifest.json">
    <surface ulx="0" uly="0" lrx="5600" lry="4000" xml:id="p1">
        <graphic sameAs="https://example.org/image/001.tif"/>
    </surface>
</facsimile>

完全な記述例(IIIF参照を含む)

<facsimile sameAs="https://example.org/iiif/manifest.json">
    <surface ulx="0" uly="0" lrx="5600" lry="4000"
             sameAs="https://example.org/canvas/p1" xml:id="p1">
        <graphic url="https://example.org/image/001.tif/full/full/0/default.jpg"
                 sameAs="https://example.org/image/001.tif"/>
    </surface>
</facsimile>

ODD定義の解説

1. facsimile要素

<elementSpec ident="facsimile" mode="change">
  <desc>ファクシミリ画像情報。IIIFマニフェストへの参照を含む。</desc>
  <classes mode="replace"/>
  <content>
    <elementRef key="surface" minOccurs="1" maxOccurs="unbounded"/>
  </content>
  <attList mode="replace">
    <attDef ident="sameAs" mode="replace" usage="opt">
      <desc>IIIFマニフェストへの参照URL</desc>
      <datatype>
        <dataRef key="teidata.pointer"/>
      </datatype>
    </attDef>
  </attList>
</elementSpec>

ポイント :

  • surface要素を1つ以上含むことを必須化(minOccurs="1"
  • sameAs属性でIIIFマニフェストへの参照をオプショナルに設定

2. surface要素

<elementSpec ident="surface" mode="change">
  <desc>画像面。座標情報とIIIFキャンバスへの参照を含む。</desc>
  <classes mode="replace"/>
  <content>
    <elementRef key="graphic" minOccurs="1" maxOccurs="unbounded"/>
  </content>
  <attList mode="replace">
    <attDef ident="xml:id" mode="replace" usage="req">
      <desc>画像面を一意に識別するID(必須)</desc>
    </attDef>
    <attDef ident="ulx" mode="replace" usage="req">
      <desc>左上X座標(必須)</desc>
      <datatype><dataRef key="teidata.numeric"/></datatype>
    </attDef>
    <attDef ident="uly" mode="replace" usage="req">
      <desc>左上Y座標(必須)</desc>
      <datatype><dataRef key="teidata.numeric"/></datatype>
    </attDef>
    <attDef ident="lrx" mode="replace" usage="req">
      <desc>右下X座標(必須)</desc>
      <datatype><dataRef key="teidata.numeric"/></datatype>
    </attDef>
    <attDef ident="lry" mode="replace" usage="req">
      <desc>右下Y座標(必須)</desc>
      <datatype><dataRef key="teidata.numeric"/></datatype>
    </attDef>
    <attDef ident="sameAs" mode="replace" usage="opt">
      <desc>IIIFキャンバスへの参照URL(オプション)</desc>
      <datatype><dataRef key="teidata.pointer"/></datatype>
    </attDef>
  </attList>
</elementSpec>

ポイント :

  • xml:idと座標属性(ulx, uly, lrx, lry)を必須化(usage="req"
  • graphic要素を1つ以上含むことを必須化
  • sameAs属性でIIIFキャンバスへの参照をオプショナルに設定

3. graphic要素

<elementSpec ident="graphic" mode="change">
  <desc>画像参照。IIIF Image APIのURLまたは画像ファイルへの参照。</desc>
  <classes mode="replace"/>
  <attList mode="replace">
    <attDef ident="sameAs" mode="replace" usage="req">
      <desc>画像ファイルへの参照URL(必須)。IIIF Image APIのベースURLを指定。</desc>
      <datatype><dataRef key="teidata.pointer"/></datatype>
    </attDef>
    <attDef ident="url" mode="replace" usage="opt">
      <desc>IIIF Image APIの完全なURL(オプション)。</desc>
      <datatype><dataRef key="teidata.pointer"/></datatype>
    </attDef>
  </attList>
</elementSpec>

ポイント :

  • sameAs属性を必須化:画像ファイルの正規URLを常に記録
  • url属性はオプショナル:IIIF Image APIのパラメータ付きURL(/full/full/0/default.jpgなど)を記述可能

属性の設計思想

sameAs属性の役割

sameAs属性は、リソースの正規識別子(canonical identifier)を記録するために使用します:

要素sameAs属性の内容
facsimileIIIFマニフェストURL
surfaceIIIFキャンバスURL
graphic画像ファイルのベースURL(.tifなど)

url属性との使い分け

graphic要素ではsameAsurlを併用できます:

  • sameAs : 画像の正規URL(例: https://example.org/image/001.tif
  • url : IIIF Image APIの完全なURL(例: https://example.org/image/001.tif/full/full/0/default.jpg

これにより、画像の識別と実際のアクセスURLを分離して管理できます。

バリデーション結果の例

このスキーマでバリデーションを行うと、不完全な記述は以下のようなエラーで検出されます:

error: element "surface" missing required attributes "lrx", "lry", "ulx" and "uly"
error: element "graphic" missing required attribute "sameAs"

TEI Viewer for EAJでの活用

本ODDに準拠したTEIデータは、TEI Viewer for EAJで画像と共に表示することができます。ビューアは以下の機能を提供します:

  • TEIテキストとIIIF画像の連携表示
  • pb要素のfacs属性による画像切り替え
  • surface要素の座標情報を利用した画像領域の特定

スキーマで必須属性を定義することで、ビューアでの表示に必要な情報が確実に記録されることを保証できます。

まとめ

TEI ODDを使用することで、IIIF対応のファクシミリ記述に対して以下の制約を実現できました:

  1. 必須情報の保証 : 座標情報や画像参照の欠落を防止
  2. 柔軟な拡張性 : IIIF関連情報はオプショナルとして段階的な対応が可能
  3. 再利用性 : 独立したODDモジュールとして複数プロジェクトで共有
  4. ビューア互換性 : TEI Viewer for EAJでの表示を保証

ODDによるスキーマ設計は、XMLデータの品質管理と標準化に有効なアプローチです。日本語TEIガイドラインに準拠することで、エコシステム内のツールとの相互運用性も確保できます。

参考リンク