TEI公開の選択肢
TEIドキュメントを作成した後、それをどのようにWeb上で公開し、利用者に届けるかは重要な課題です。TEI/XMLはそのままではWebブラウザで読みやすく表示されないため、何らかの変換・レンダリング処理が必要になります。
筆者はこれまで、さまざまな公開方式を試してきました。本章では、それらの経験に基づいて、TEIドキュメントの公開方法を実践的に解説します。
| 方式 | 特徴 | 適したケース |
|---|---|---|
| TEI Publisher | フル機能の公開プラットフォーム | 大規模プロジェクト |
| CETEIcean | クライアントサイドJS、軽量 | 小規模プロジェクト、静的サイト |
| XSLT → 静的HTML | 事前変換、サーバ不要 | シンプルな公開 |
| DTS API | プログラマティックなアクセス | データ提供、研究基盤 |
| PDF/ePub変換 | オフライン閲覧 | 印刷物・電子書籍 |
TEI Publisher
概要
TEI Publisher(https://teipublisher.com/ )は、TEIドキュメントをWeb上で公開するための最も包括的なプラットフォームです。eXist-db(XMLネイティブデータベース)上で動作し、TEI Processing Model(TEI PM)を活用した宣言的なレンダリング定義が最大の特徴です。
筆者はDocker版のTEI Publisherを使用するで、Dockerを使ったTEI Publisherのセットアップ方法を紹介しています。
# Dockerでの起動
docker run -p 8080:8080 existdb/teipublisher:latest
TEI PublisherのODD設定
TEI Publisherの表示をカスタマイズするには、ODDファイル内のProcessing Modelを編集します。筆者はTEI PublisherのODDの設定例①で、具体的なODD設定例を紹介しています。
<elementSpec ident="persName" mode="change">
<model behaviour="alternate">
<param name="default" value="."/>
<param name="alternate" value="@ref"/>
<outputRendition>
color: #0066cc;
text-decoration: underline;
</outputRendition>
</model>
</elementSpec>
また、TEI Processing Modelで実現する宣言的なマルチフォーマット変換では、Processing Modelの詳細な仕組みとマルチフォーマット変換の実現方法を解説しています。
TEI Publisher Demo Collection
筆者はTEI Publisher: TEI Publisher Demo Collectionの可視化例①で、TEI Publisherのデモコレクションに含まれるさまざまな可視化例を紹介しています。TEI Publisherでどのような表現が可能かを把握するための参考になります。
CETEIceanによるWeb公開
CETEIceanを使えば、サーバサイドの環境構築なしにTEIドキュメントをWeb公開できます。GitHub Pagesでの公開が特に手軽です。
筆者はCETEIceanを使った公開について複数の記事を書いています。
- Gatsby CETEIceanを試す - GatsbyベースのサイトでCETEIceanを利用
- CETEIceanとNuxt3を使ったサンプルリポジトリを作成しました。 - Nuxt3との組み合わせ
- Next.js + CETEIcean + React TEI Routerを使ったビューア開発 - Next.jsでのビューア開発
- Miradorで画像を表示し、CETEIceanでテキストを表示するサンプルアプリ - Miradorとの連携
CETEIceanはTEI要素を tei- プレフィックス付きのHTML Custom Elementsに変換するため、CSSで直接スタイリングできます。
tei-persname { color: #0066cc; border-bottom: 1px solid #0066cc; }
tei-placename { color: #339933; border-bottom: 1px dotted #339933; }
tei-teiheader { display: none; }
XSLTによる変換と公開
XSLTを使ってTEIドキュメントを事前に静的HTMLに変換し、Web公開する方式も広く使われています。
筆者はVSCodeとXSLTを用いたTEI/XMLのリアルタイムプレビューで、VSCodeでXSLT変換結果をリアルタイムに確認する方法を紹介しています。また、Node.js で XSLT を実行するサンプルリポジトリを作成しました。では、Node.jsでXSLTを実行する方法を紹介しています。
XSLTを使ってIIIFとTEIの対照表示を実現するでは、XSLT変換の応用例として、IIIFとTEIの対照表示の実現方法を解説しています。
DTS(Distributed Text Services)によるAPI提供
DTS(https://distributed-text-services.github.io/specifications/ )は、テキストコレクションへのAPIアクセスを標準化する仕様です。TEIコレクションの公開において、機械可読なアクセスを提供する手段として重要です。
筆者はDTSについて多くの記事を執筆しています。
DTS APIの構築
- DTS(Distributed Text Services)を使ってみる - DTSの基本的な使い方
- 校異源氏物語テキストDBで公開するTEI/XMLファイルに対するDTS APIを作成する - 校異源氏物語のDTS API構築
- 校異源氏物語テキストDBで公開するTEI/XMLファイルに対するDTS APIのGitHubリポジトリ - GitHubリポジトリの公開
- 校異源氏物語テキストDBのDTS(Distributed Text Services) APIの更新 - API の更新
- TEI/XMLから検索システムを構築する際のDTS(Distributed Text Services)のdts:wrapperの応用例 - dts:wrapperの活用
DTS関連技術
- DTSとCTSの関係 - DTSとCTS(Canonical Text Services)の関係
- Canonical Text Serviceを試す - CTSの使い方
- MyCapytainライブラリを試す - CTS/DTSクライアントライブラリ
- DTS (Distributed Text Services)のビューア開発 - DTSビューアの開発
- DTS Viewerの更新:ページネーションへの対応 - ビューアの改善
APIデプロイ
- Vercelにデプロイしたexpressについて、vercel.jsonによるcors対応を行う - DTS APIのVercelへのデプロイとCORS対応
PDF/ePub変換
TEIドキュメントをPDFやePubに変換して配布する方法も重要です。
PDF変換
筆者は以下の記事でPDF変換の方法を紹介しています。
- 校異源氏物語テキストDBのTEI/XMLからPDFを作成する - XSLTを使ったLaTeX経由のPDF生成
- TEI/XMLファイルを縦書きPDFに変換する方法の1例 - Quartoを使った縦書きPDF変換
- TEI Critical Apparatus Toolboxを用いてTEI XMLをLaTeXに変換してみる - 校異情報を含むPDFの生成
ePub変換
- Pythonを用いてTEI/XMLファイルをEPUBに変換する - PythonによるEPUB変換
Word/DOCX変換
- WordをTEI/XMLに変換する - Word→TEI変換
- WordファイルをTEI XMLに変換する方法:TEIgarage APIの活用ガイ - TEI Garage APIを使った変換
- TEI Garage APIを使って、DOCX → TEI/XML 変換ツールをブラウザだけで作った - ブラウザベースの変換ツール
- python-docxを用いた両側ルビ - TEI/XMLからWordへの変換時のルビ処理
GitHubでの公開
TEI/XMLファイルをGitHubリポジトリで公開することは、データの共有と再利用性を高める上で有効です。筆者はTEI/XMLファイルをGitHubで公開する手順書で、GitHubでのTEI/XML公開手順を詳しく解説しています。
MediaWikiでの公開
筆者はMediaWikiのTEI拡張を試す(結果:うまくいきませんでした。)で、MediaWikiのTEI拡張による公開も試みています。結果的にうまくいかなかった報告ですが、さまざまな公開方式を検討する際の参考になります。
まとめ
本章では、TEIドキュメントのWeb公開について、TEI Publisher、CETEIcean、XSLT静的変換、DTS API、PDF/ePub変換という主要な方式を紹介しました。
筆者の経験から言えば、小規模なプロジェクトではCETEIceanとGitHub Pagesの組み合わせが手軽で効果的です。大規模なコレクションや高度な検索機能が必要な場合はTEI Publisherが適しています。API提供が目的であればDTSの採用を検討するとよいでしょう。PDF変換は、印刷物としての配布や学術論文への引用に有用です。
いずれの方式を選んでも、明確なライセンス表示、永続的なURL設計、適切なメタデータの提供を心がけましょう。
次章では、筆者の関連記事をトピック別に整理したリソース集を提供します。
関連記事
- Docker版のTEI Publisherを使用する
- TEI PublisherのODDの設定例①
- TEI Publisher: TEI Publisher Demo Collectionの可視化例①
- TEI Processing Modelで実現する宣言的なマルチフォーマット変換
- DTS(Distributed Text Services)を使ってみる
- DTSとCTSの関係
- DTS (Distributed Text Services)のビューア開発
- 校異源氏物語テキストDBのTEI/XMLからPDFを作成する
- TEI/XMLファイルを縦書きPDFに変換する方法の1例
- Pythonを用いてTEI/XMLファイルをEPUBに変換する
- TEI/XMLファイルをGitHubで公開する手順書
- TEI Garage APIを使って、DOCX → TEI/XML 変換ツールをブラウザだけで作った