【機能開発】Omeka SのIIIFモジュールで、目次を加える機能を追加しました。(その2:階層構造を持つ目次の登録)

概要

前回の記事では、Omeka SのIIIF Serverモジュールを用いて、フラットな目次を追加する方法について説明しました。

 

nakamura196.hatenablog.com

 

今回は、階層構造を持つ目次を追加する方法について説明します。

 

公式のマニュアルはこちらにありますが、このマニュアルを和訳した記事も作成しました。不完全な日本語ですが、参考になりましたら幸いです。

 

nakamura196.hatenablog.com

 

詳細

前回は、以下の情報を入力することで、フラットな目次を作成しました。

 

cover,表紙,1
jyo,序,4-6
legend,凡例,6-15
catalogue,總目錄,16-18
toc,目次,19-20 ch1,きりつほ,20-35 ch2,はゝき木,35

 

各行は、以下の意味を持ちます。

 

{id}, {label}, {canvasIndexOrRangeId1};{canvasIndexOrRangeId2};...; {canvasIndexOrRangeIdN}

 

 

ここでは、目次(id: toc)について、その内容を構造化します。

具体的には、まず、19コマ目を目次の内容(id: toc0)として、目次(id: toc)に含まれる形とします。

また、「きりつぼ」(id: ch1)と「はゝき木」(id: ch2)についても、目次(id: toc)に含まれるように修正します。

 

具体的には、以下のデータを用意します。上記のマニュアルにも記載がありますが、インデントは、階層構造をみやすくするために用いており、モジュール内の処理では無視されます。

 

cover,表紙,1
jyo,序,4-6
legend,凡例,6-15
catalogue,總目錄,16-18
toc,目次,toc1;ch1;ch2
toc1,内容,19-20 ch1,きりつほ,20-35 ch2,はゝき木,35

 

このデータをIIIF Serverモジュールの「Property for structures」として設定したプロパティ(今回の例では、dcterms:tableOfContents「Dublin Core: 目次」)の値として登録することで、下図のように、階層構造を持つ目次を実現することができます。

 

f:id:nakamura196:20210811181404p:plain

 

https://diyhistory.org/nakamura196/s/main/item/15

 

まとめ

今回は、Omeka SのIIIF Serverモジュールを用いて、階層構造を持つ目次を追加する方法について説明しました。今回は単純な階層構造を作成する例を示しましたが、以下のマニュアルページに記載があるような、複雑な階層構造も作成することができます。

 

https://github.com/Daniel-KM/Omeka-S-module-IiifServer#input-format-of-the-property-for-structures-table-of-contents

 

本モジュールを用いた、IIIFマニフェストへの目次情報を追加にあたり、本記事が参考になれば幸いです。