DTS Viewerの開発とデジタル源氏物語プロジェクトにおける応用の過程をまとめています。
校異源氏物語テキストDBに対するDTS(Distributed Text Services) API
はじめに 本章では、校異源氏物語テキストDBで公開しているTEI/XMLファイルに対するDTS(Distributed Text Services)APIの設計と実装について解説します。DTSは、構造化されたテキストコレクションへの統一的なアクセス手段を提供するAPI仕様であり、TEI/XMLで符号化されたテキストの配信に特に適しています。 DTS(Distributed Text Services)とは DTSは、デジタル・ヒューマニティーズの分野で策定されたテキスト配信のためのAPI仕様です。古典テキストの配信規格として広く用いられてきたCTS(Canonical Text Services)を発展させたもので、以下の3つのエンドポイントから構成されます。 3つのエンドポイント Collection エンドポイント (/collection): テキストのコレクション情報を提供します。階層構造を持つコレクションの一覧やメタデータを返却します。 Navigation エンドポイント (/navigation): テキストの内部構造(巻、章、段落など)の情報を提供します。テキストのどの部分をどのように参照できるかを示します。 Document エンドポイント (/document): テキスト本体を取得するためのエンドポイントです。特定の範囲を指定してTEI/XMLのテキストデータを返却します。 CTSとの関係 DTSは、CTSの概念を継承しつつ、JSON-LDやLinked Dataの仕組みを取り入れた現代的なAPI仕様です。CTSがXML-RPCベースのプロトコルだったのに対し、DTSはRESTful APIとしてWebの標準的なアーキテクチャに沿った設計になっています。CTSで使われていたURNベースのテキスト参照体系もDTSでサポートされています。 校異源氏物語テキストDBの構造 校異源氏物語テキストDBは、源氏物語の校異(テキストの異同)をTEI/XMLで符号化したデータベースです。 TEI/XMLファイルの構造 校異源氏物語のTEI/XMLファイルは、TEI Critical Apparatusの仕様に基づいてマークアップされています。 <TEI xmlns="http://www.tei-c.org/ns/1.0"> <teiHeader> <fileDesc> <titleStmt> <title>校異源氏物語 桐壺</title> </titleStmt> </fileDesc> </teiHeader> <text> <body> <div n="1" type="巻"> <div n="1" type="章段"> <p> <app> <lem wit="#大島本">いづれの御時にか</lem> <rdg wit="#河内本">いづれの御ときにか</rdg> </app> </p> </div> </div> </body> </text> </TEI> <app>要素が校異情報を、<lem>が底本の読みを、<rdg>が異本の読みをそれぞれ示しています。 コレクション構造 校異源氏物語は全54帖(巻)から構成されており、DTS APIにおけるコレクション階層は以下のようになります: 校 ├ ├ ├ ├ └ 異 ─ ─ ─ ─ ─ 源 ─ ─ ─ ─ ─ 氏 物 桐 帚 空 夢 語 壺 木 蝉 浮 ( 橋 ル ー ト コ レ ク シ ョ ン ) DTS APIの実装 技術スタック DTS APIは以下の技術スタックで実装しています: ...