👋

IIIF画像に対する多角形アノテーション支援ツールの改修

に公開

概要

IIIF画像に対する多角形アノテーション支援ツール「IIIF Annotator」の改修を行いました。具体的には、以下の2点に取り組みました。

  • Image Server未使用のマニフェストファイルへの対応
  • アノテーション付きIIIFマニフェストファイルのエクスポート機能
  • TEI/XMLファイルのエクスポート機能

以下、これらの改修について説明します。

背景

以下の記事で、アノテーション付与ツールを新規に作成した理由等を説明しました。

https://zenn.dev/nakamura196/articles/5e89dc0af23a78

今回追加した機能は他のツールでも提供されている機能群になりますが、利便性向上のため追加実装しました。

Image Server未使用のマニフェストファイルへの対応

以下の記事で紹介しているように、IIIFマニフェストファイルにおいて、Image API(Image Server)を使用しないオプションを取ることができます。デメリットもありますが、Cantaloupe Image Serverなどのソフトウェアを導入せずに使用できる点に利点があります。

https://zenn.dev/nakamura196/articles/097b31b8213ae7

IIIF Annotatorについて、これまではImage Serverの使用を前提として実装していましたが、今回の改修により、Image Server未使用のマニフェストファイルも読み込めるようにしました。

具体的には以下のように、serviceの有無に応じて、OpenSeadragonに渡すtileSourcesを調整しました。

const tileSources = canvases
  .map((canvas: Canvas) => {
    const annotationPage = canvas.items?.[0];
    const annotation = annotationPage?.items?.[0];
    if (!annotation) return null;
    const body = annotation.body as {
      id: string;
      service?: { "@id": string }[];
    };

    if (body.service && body.service.length > 0) {
      return body.service[0]["@id"] + "/info.json";
    } else {
      return {
        type: "image",
        url: body.id,
      };
    }
  })
  .filter(
    (tileSource: string | { type: string; url: string } | null) =>
      tileSource !== null
  );

エクスポート機能

アノテーション付きIIIFマニフェストファイル、およびTEI/XMLファイルとしてエクスポートする機能を追加しました。エクスポートボタンを押すと、以下のような選択肢が表示されます。

アノテーション付きIIIFマニフェストファイルの用途としては、ダウンロードしたファイルをMirador等に読み込ませることで、アノテーション結果を確認することができます。

またTEI/XMLファイルについては、Oxygen XML Editorの作者モード等を使って、アノテーション結果を確認することができます。

まとめ

IIIFのアノテーション結果の活用にあたり、参考になりましたら幸いです。

Discussion