はじめに

本章では、Omeka Classic + IIIF Toolkit環境におけるアノテーションの付与方法を解説します。IIIF Toolkitは、SimpleAnnotationServer(SAS)と連携することで、Miradorビューア上でIIIF画像に対してアノテーションを作成・管理する機能を提供します。これにより、研究者が画像上の特定領域に対してテキストやタグを付与し、共同研究に活用することが可能になります。

アノテーションの概要

IIIF Annotationとは

IIIFにおけるアノテーションは、W3C Web Annotation Data Modelに基づいた仕様で定義されています。アノテーションは、ある「ターゲット」(画像上の領域)に対して「ボディ」(テキストやタグなどの情報)を関連付けるものです。

{
  "@context": "http://www.w3.org/ns/anno.jsonld",
  "@type": "oa:Annotation",
  "motivation": "commenting",
  "resource": {
    "@type": "dctypes:Text",
    "chars": "ここに注釈テキストを記述",
    "format": "text/html"
  },
  "on": {
    "@type": "oa:SpecificResource",
    "selector": {
      "@type": "oa:FragmentSelector",
      "value": "xywh=100,200,300,400"
    },
    "full": "https://example.com/canvas/1"
  }
}

SimpleAnnotationServer(SAS)

SimpleAnnotationServerは、IIIFアノテーションを保存・取得するための軽量なアノテーションサーバです。IIIF Toolkitと連携し、Miradorビューアからのアノテーション操作を受け付けます。

SimpleAnnotationServerのセットアップ

インストール

# Javaの確認(Cantaloupeのインストール時に導入済み)
java -version

# SASのダウンロード
cd /opt
sudo git clone https://github.com/glenrobson/SimpleAnnotationServer.git
cd SimpleAnnotationServer

設定ファイルの編集

SASの設定ファイルを環境に合わせて編集します。

sudo nano /opt/SimpleAnnotationServer/src/main/webapp/WEB-INF/sas.properties
# ストアの設定
store=JsonFileStore
json_file_store_dir=/opt/SimpleAnnotationServer/annotations

# CORS設定
cors.allowed.origins=*
cors.allowed.methods=GET,POST,PUT,DELETE,OPTIONS
cors.allowed.headers=Content-Type,Authorization

ビルドと起動

# Mavenによるビルド
cd /opt/SimpleAnnotationServer
sudo mvn package

# 起動
java -jar target/dependency/jetty-runner.jar --port 8888 target/simpleAnnotationServer.war

systemdサービスとして登録

sudo nano /etc/systemd/system/sas.service
[Unit]
Description=Simple Annotation Server
After=network.target

[Service]
Type=simple
User=www-data
WorkingDirectory=/opt/SimpleAnnotationServer
ExecStart=/usr/bin/java -jar target/dependency/jetty-runner.jar --port 8888 target/simpleAnnotationServer.war
Restart=always

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable sas
sudo systemctl start sas

IIIF ToolkitとSASの接続設定

プラグイン設定画面での接続設定

Omeka Classicの管理画面からIIIF Toolkitの設定を開き、SimpleAnnotationServerのエンドポイントを指定します。

  • Annotation Server URL: http://localhost:8888/annotation
  • Annotation Store: SimpleAnnotationServer

Miradorビューアでのアノテーション付与

アノテーションの作成手順

IIIF ToolkitとSASの設定が完了すると、Miradorビューア上でアノテーションを作成できるようになります。

  1. Omeka Classicのアイテム詳細ページを開きます
  2. Miradorビューアが表示されたら、ツールバーの「アノテーション」アイコンをクリックします
  3. アノテーションモードが有効になります

矩形アノテーションの作成

最も基本的なアノテーション形式です。

  1. ツールバーの矩形ツールを選択します
  2. 画像上で注釈を付けたい領域をドラッグして選択します
  3. ポップアップウィンドウが表示されます
  4. テキストボックスに注釈内容を入力します
  5. 「Save」をクリックして保存します

多角形・円形アノテーション

Miradorビューアは矩形以外にも、多角形や円形のアノテーションに対応しています。研究対象の形状に合わせて適切なツールを選択してください。

アノテーションのタグ付け

テキスト注釈に加えて、タグを付与することで分類や検索性を高めることができます。タグはアノテーションのmotivationフィールドにtaggingとして記録されます。

{
  "@type": "oa:Annotation",
  "motivation": "tagging",
  "resource": {
    "@type": "oa:Tag",
    "chars": "人物"
  },
  "on": "https://example.com/canvas/1#xywh=100,200,300,400"
}

アノテーションの一括登録

研究プロジェクトにおいて大量のアノテーションを登録する必要がある場合、SASのAPIを使った一括登録が効率的です。

import requests
import json

SAS_URL = "http://localhost:8888/annotation"

# アノテーションデータの作成
annotation = {
    "@context": "http://iiif.io/api/presentation/2/context.json",
    "@type": "oa:Annotation",
    "motivation": "commenting",
    "resource": {
        "@type": "dctypes:Text",
        "chars": "自動登録されたアノテーション",
        "format": "text/html"
    },
    "on": {
        "@type": "oa:SpecificResource",
        "selector": {
            "@type": "oa:FragmentSelector",
            "value": "xywh=100,200,300,400"
        },
        "full": "https://your-domain.example.com/api/iiif-items/canvas/1"
    }
}

# SAS APIへのPOST
response = requests.post(
    f"{SAS_URL}/store",
    data=json.dumps(annotation),
    headers={"Content-Type": "application/json"}
)

print(f"ステータス: {response.status_code}")
print(f"レスポンス: {response.json()}")

CSVファイルから読み込んで大量のアノテーションを一括登録するスクリプトの詳細は、関連記事を参考にしてください。

アノテーションの管理と活用

アノテーションの検索

SASのAPIを使って、特定のキャンバスに関連するアノテーションを取得できます。

# 特定のキャンバスのアノテーション一覧を取得
curl "http://localhost:8888/annotation/search?uri=https://your-domain.example.com/api/iiif-items/canvas/1"

アノテーションのエクスポート

蓄積したアノテーションデータは、JSON形式でエクスポートし、他のシステムへ移行したり分析に活用したりすることができます。

共同研究での活用

IIIF Toolkitのアノテーション機能は、複数の研究者が同一の画像資料に対してそれぞれの知見を蓄積する共同研究に特に有効です。各研究者がMiradorビューアを通じてアノテーションを付与し、それらをSASで一元管理することで、知識の共有と議論の基盤を提供します。

まとめ

本章では、SimpleAnnotationServerのセットアップから、Miradorビューアを使ったアノテーションの作成、一括登録、管理までを解説しました。Omeka Classic + IIIF Toolkitの環境に加えてアノテーション機能を導入することで、デジタル画像資料に対する研究基盤としての機能が大幅に強化されます。

本書全体を通して、Amazon Lightsail上にOmeka Classicの環境を構築し、IIIF Toolkitプラグインの導入、IIIFマニフェストの登録、そしてアノテーションの付与までの一連の流れを解説しました。これらの技術を活用することで、デジタル・ヒューマニティーズ研究における画像資料のアノテーション環境を効率的に構築できます。

関連記事