アイテムとコレクション
サイト(データベース)の中身は、すべて リソースという 1 つのモデルで表され、type(種別)で区別されます。
| 種別 | 役割 |
|---|---|
| item(アイテム) | 資料 1 点。画像・メタデータ・サムネイルを持つ、サイトの基本単位 |
| collection(コレクション) | アイテムのまとまり。主題別・資料群別の整理に使う |
| media(メディア) | アイテムに紐づく画像などの面像。アイテムの子リソース |
| page(ページ) | サイト内の固定ページ(「このデータベースについて」等) |
| annotation(アノテーション) | 画像上の注記。IIIF アノテーションとして保存・表示 |
リソースは parent_id で親子関係を作れます(media → item、item → collection など)。
メタデータ
各リソースには自由形式のメタデータを付与できます。キーは Dublin Core などの dcterms:*(例 dcterms:creator)を推奨します。メタデータは検索・ファセット(絞り込み)の対象になります。
metadata.thumbnail— 一覧・カードのサムネイル画像metadata.geo— 地図ビューに表示するための座標(マーカーの配列[{ lat, lon, label?, count? }])。 入力フォーマットに関わらず内部ではこの形に揃います(Omeka S の Mapping 相当)。TEI はstandOffの 座標つき地名から、IIIF はnavPlaceから自動で入り、IIIF マニフェストにはnavPlaceとして出力されます。 単一地点ならmetadata.lat/metadata.lngでも従来どおり地図に出ます。 地図ページには地名検索・地名一覧(クリックで移動)・ベースマップ切替(れきちず/標準/地理院/地理院写真/OpenFreeMap)・クラスタリング on/off があり、マーカーから資料ページやその地の検索結果(ファセット付き)へ辿れます。body(本文・翻刻)— 全文検索の対象になる長文
メタデータ入力を補助する RDF 語彙(用語集)はダッシュボードの「語彙」で管理できます。
登録の方法
アイテムは主に次の方法で登録します。
- CSV 一括登録(Omeka CSVImport 互換)— ダッシュボードの「サイト詳細」から CSV をアップロード。種別は
item_sets(コレクション)/items/mediaを選べ、**検証(ドライラン)**で件数・エラー行を事前確認してから取り込めます。サンプル CSV もダウンロードできます - API(プログラム連携)—
POST /dl/{db}/resourcesで 1 件ずつ、またはPOST /dl/{db}/importで一括。詳細は開発者向け
画像などのバイナリは、アップロード用の署名付き URL(presigned URL)を発行して S3 互換ストレージに直接アップロードします。media の CSV 取り込みでは、画像フォルダをまとめて選ぶとブラウザから各ファイルを直接アップロードし、CSV の file 列(相対パスまたはファイル名)と突き合わせて media 行に紐づけます。CSV を使わず、選んだ画像から media 行を自動生成することもできます(親アイテムを指定)。
アイテムのメディア管理(ダッシュボード)
「サイト詳細」→「アイテムのメディア管理」から、アイテムを開いて 画像のアップロード→添付・ ページの並び替え(ドラッグ / ▲▼)・ページ単位の公開/非公開・削除、アイテムのタイトルと 公開状態の編集 を画面から行えます。アップロードした画像は自動で IIIF 化(PTIF 変換)されます。
一括登録や、タイトル以外の詳細メタデータ(dcterms:* 等)の編集は、引き続き CSV または API を使ってください。
画像アップロードと IIIF 配信
画像をアップロードすると、IIIF Image API(ズーム・切り出し・任意サイズのタイル配信)で 配信できます。ダッシュボードの「サイト詳細」→ **「画像アップロード(IIIF 画像)」**から、 画像ファイルを選んでアップロードするだけです。
裏側では次のことが自動で行われます:
- 選んだ画像がブラウザから S3 互換ストレージへ直接アップロードされます(バイト列はサーバを経由しません)。
- サーバ側のワーカーが libvips でピラミッド TIFF(PTIF)に変換します。ピラミッド TIFF は 複数解像度をタイル状に持つため、拡大・縮小のたびに画像全体を読み直さずに済み、 大きな画像でも軽快にズーム表示できます。
- 変換が終わると自動的に配信可能になり、その画像の IIIF
info.jsonが有効になります。 画面には変換の進捗が表示され、完了するとサムネイルとinfo.jsonへのリンクが出ます。
変換はバックグラウンドで実行されるため、アップロード直後は「変換中」と表示され、 数秒〜(枚数が多いときは)しばらくで「完了」になります。配信は Cantaloupe という IIIF 画像サーバが担い、アプリはその前段で認可付きプロキシとして動きます(画像サーバ自体は 外部に公開されません)。
公開/非公開は画像ごとに管理されます。アップロード時は「その時のサイトの公開状態 × 紐付けたアイテムの公開状態」が初期値になり、以後は「アイテムのメディア管理」の 🌐/🔒 で 画像単位に切り替えられます(アイテムの公開切替は配下のページにも反映されます)。 サイトの公開設定を後から変えても、既存画像の公開状態は自動では変わりません。
API から使う
プログラムから一括で取り込む場合は、POST /dl/{db}/uploads に derivative:'ptif' を付けて presign → PUT → finalize → 状態ポーリング、という流れになります。詳細は 開発者向け。
3D 資料
アイテムのメタデータに model3d(GLB/glTF モデルの URL)を入れると、詳細ページが 自動的に 3D ビューア(<model-viewer>。ドラッグで回転・スクロールで拡大)に切り替わります。 2D 画像のアイテムと同じ DB に混在できます。関連するメタデータ:
model3d— 3D モデル(GLB)の URL。この値があると 3D ビューアになりますmodel3dOrientation— スキャンモデルの向き補正("roll pitch yaw"形式、度)。未指定でも可thumbnail— ポスター画像(読み込み中に表示)annotations— 注釈(モデル上の点に付ける説明)の配列。下記参照
注釈(アノテーション)
metadata.annotations に注釈を入れると、3D モデル上に番号付きマーカーが表示され、 タップ/ホバーでタイトルと説明文が開きます。各注釈の形:
{
"id": "a1",
"title": "牙", "title_en": "Tusks",
"lead": "マンモスの…", "lead_en": "Mammoth tusks…",
"position": [x, y, z],
"normal": [x, y, z]
}position はモデル自身の座標系の点で、モデルの向き補正に追従します。注釈は **IIIF マニフェスト(3D)**としても配信されます(下記)。
IIIF マニフェスト(3D)
3D 資料は /api/{account}/iiif/{db}/{id}/manifest/4 で IIIF Presentation 4.0 ドラフトの 3D マニフェスト(Scene + GLB + 点アノテーション)として取得できます。 manifest/2 manifest/3 は 3D 非対応クライアント向けのフォールバックです。詳細は 開発者向け。
Smithsonian 3D コレクション
スミソニアン協会のオープンアクセス(CC0)3D 資料を日本語メタデータ・注釈付きで 取り込むサンプルがあります(scripts/fetch-smithsonian-3d.ts → import:smithsonian-3d)。
公開/非公開
リソースは 1 件ごとに公開/非公開を設定できます(is_public)。非公開のリソースは、サイトが公開状態でも一覧・検索・API に現れません。サイトを公開する前に、下書き状態のアイテムを非公開のまま準備しておけます。
執筆中
CSV のカラム仕様(Omeka CSVImport 互換のマッピング)、画像アップロードの対応フォーマットと IIIF 化の流れ、TEI テキストの取り込み手順を追記予定。