---
title: "Omeka Sとは？Omeka Classicとの違い・4.2系のインストール手順とREST APIを解説"
url: "https://www.issoh.co.jp/tech/details/7891/"
published: 2025-07-28
updated: 2026-10-15
categories: ["CMS"]
publisher: "株式会社一創"
---

# Omeka Sとは？Omeka Classicとの違い・4.2系のインストール手順とREST APIを解説

Omeka Sは、大学・ギャラリー・図書館・アーカイブ・博物館がデジタル化した資料を管理し、Webで公開するためのオープンソースのシステムです。1つのインストールに資料（アイテム）とメタデータを集約し、そこから複数の展示サイトを切り出せる点が、同じ開発元のOmeka Classicとの最大の違いです。

この記事では、2026年10月時点の現行版4.2.1を前提に、Omeka Classic・Omeka.netとの違い、システム要件とインストール手順、Dockerで手元に立てる方法、データモデル、モジュール、REST APIの使い方を整理します。要件と機能はOmeka公式の[ユーザーマニュアル](https://omeka.org/s/docs/user-manual/install/)・[開発者文書](https://omeka.org/s/docs/developer/api/rest%5Fapi/)・[GitHubのリリースノート](https://github.com/omeka/omeka-s/releases)で確認しました。インストール・モジュール導入・APIの挙動は、ローカルのDocker環境に4.2.1を立てて実行した結果を載せています。

## まとめ：Omeka Sの要点と採用判断

- **現行版は4.2.1（2026年6月18日公開）**：ライセンスはGPL-3.0。4.2.0で最低PHPが8.1に上がり、4.2.1でPHP 8.5に対応しました。
- **Omekaは3系統**：組織向けのOmeka S、1インストール1サイトのOmeka Classic、Classicをホスティングで使うOmeka.netです。小規模で手軽に始めるならOmeka.net、資料を複数の展示で使い回すならOmeka Sが候補です。Omeka SもClassicも、サーバーの保守は公式のマネージドホスティングに委託できます。
- **サーバー要件はLAMP**：公式要件はLinux・Apache（mod\_rewrite有効）・MySQL 5.7.9以上またはMariaDB 10.2.6以上・PHP 8.1以上です。Omeka S専用のデータベースが必要です。
- **試すだけならsandboxかDocker**：公式のsandboxはサンプル入りで、週4回リセットされます。手元で触るなら、公式PHPイメージとMariaDBを使うCompose構成で起動できます。
- **データはREST APIで取り出せる**：公開資料の読み取りは認証不要です。ただしPATCHで一部の値だけを送ると、送らなかった値が消えます（実測で再現）。

以下、比較、導入、使い方、採用判断の順に根拠を示します。

## Omeka Sの開発元と現行版

Omeka Sは、Digital Scholarのプロジェクトとして、Omeka Teamが開発・保守しているソフトウェアです。ソースコードはGitHubの `omeka/omeka-s` で公開されています。リリース履歴を見ると、4.1.1（2024年6月）から4.2.0（2025年12月4日）まで1年半ほど間が空き、4.2.1が2026年6月18日に出ました。2026年10月15日時点でも4.2.1が最新です。

4.2.0は互換性の変更を含むリリースで、リリースノートは冒頭で「The new minimum required version of PHP is 8.1」と明記しています。同じリリースで、日々の入力作業に効く機能が入りました。

- **item stubs**：アイテムの編集中に、関連付けたい別のアイテムがまだ無ければ、選択用のサイドバーから画面を離れずに新しいアイテムを作れます。リソーステンプレート・クラス・公開範囲もその場で指定できます。
- **データ型の一括変換**：一括編集で、値のデータ型を別の型へまとめて変換できます。
- **既定の公開範囲の分割**：これまで1つだった「既定で非公開にする」設定が、アイテム・アイテムセット・サイト・ページで別々に設定できるようになりました。
- **IIIFのページブロック**：IIIF画像とIIIFプレゼンテーションを、アイテムに登録せずにページへ直接置けます。同梱のMiradorビューアはサイト単位で設定できます。

4.2.1ではPHP 8.5への対応に加え、カスタムページのナビゲーションに `javascript:` URLを設定できてしまう問題や、閲覧権限の無いサイトの結果がサイト横断検索に混ざる問題が修正されています。4.2.0以前を運用している場合は、4.2.1へ上げる理由になる修正です。

国内では、国立国語研究所の「国立国語研究所デジタルアーカイブNINDA」が、[利用ガイド](https://ninda.ninjal.ac.jp/guide)で「このアーカイブは、Omeka Sというシステムを使って作られています」と明記しています。後の章でAPIを叩く東京大学工学・情報理工学図書館の公開インスタンスもOmeka Sです。

## Omeka S・Omeka Classic・Omeka.netの違いと選び方

Omekaには3つの系統があり、どれも現役です。開発者文書によれば、Omeka SとOmeka Classicはコードベースがまったく別で、データベースも共有できません。[Omeka.netの説明ページ](https://info.omeka.net/about/)は「uses Omeka Classic」と書いており、Omeka.netはClassicをホスティングで提供するサービスです。Omeka Sには、Omeka Teamがインストールと保守を代行する公式の[Omeka Managed Hosting](https://omeka.org/services/hosting/)があります。専用サーバーに置かれ、料金は容量で決まる年額制で、Omeka Sは100GBで年3,000ドル、Classicは同じ容量で年2,500ドルからです。

| 項目      | Omeka S               | Omeka Classic    | Omeka.net          |
| ------- | --------------------- | ---------------- | ------------------ |
| 提供形態    | 自己ホスト・管理委託            | 自己ホスト・管理委託       | ホスティング             |
| 現行版     | 4.2.1                 | 3.2.2            | Classic系           |
| 最低PHP   | 8.1                   | 7.1              | 不要                 |
| 最低MySQL | 5.7.9（MariaDB 10.2.6） | 5.5.5            | 不要                 |
| サイト数    | 複数                    | 1                | プランで1〜無制限          |
| メタデータ   | 複数のRDF語彙              | Dublin Core中心    | Dublin Core中心      |
| 拡張の呼び名  | モジュール                 | プラグイン            | プラグイン（プランで上限）      |
| 費用      | 無料・委託は年3,000ドルから      | 無料・委託は年2,500ドルから | 無料プランあり・有料は年35ドルから |

Classicは2026年9月25日に3.2.2が出ています。[3.2.2のリリースノート](https://github.com/omeka/Omeka/releases/tag/v3.2.2)は、パスワード再設定とアカウント有効化のトークンが予測できる方法で生成されていた問題や、ログイン済みのユーザーが他人のAPIキーを削除できた問題などを修正したとし、「All users should upgrade.」と求めています。Classicを使っているなら、こちらは先に上げるべき更新です。

Omeka.netの有料プランは、[申込ページ](https://www.omeka.net/signup)の表示でPlusが年35ドル（2サイト・2GB）、Silverが年75ドル（5サイト・5GB）、Goldが年350ドル（10サイト・10GB）、Platinumが年1,000ドル（サイト数無制限・50GB）で、いずれも税別です。

判断の軸は2つです。1つ目はサーバーの保守を自分たちで担うかどうかです。保守を委託するなら、Omeka.netのほか、Omeka Sにも対応する公式マネージドホスティングが候補になります。2つ目は資料を複数の展示や部署で使い回すかどうかで、1つの資料群から「常設展示」「企画展」「授業用ページ」のように複数サイトを作るならOmeka Sが向きます。実例として、東京大学工学・情報理工学図書館の公開インスタンスは、1つのOmeka Sで「工学史料キュレーションデータベース」と「蔵書印・蔵書票データベース」の2サイトを運用しています（APIの `/api/sites` で確認）。ゼミや個人の研究プロジェクトで1つの展示サイトを作るだけなら、Classicのほうが設定項目が少なく済みます。

## Omeka Sのデータモデル：リソースと語彙

### アイテム・アイテムセット・メディアの関係

Omeka Sで管理する単位はアイテム（資料1点）です。画像やPDF、音声などのファイルはアイテムに付くメディアとして扱い、アイテムを束ねる入れ物がアイテムセットです。1つのアイテムは複数のアイテムセットに属せます。各サイトは、インストール全体のアイテムのうち自分が表示する範囲（アイテムプール）を持ち、サイト同士でアイテムを複製せずに共有します。

公開インスタンスのAPIで1件目のアイテムを見ると、`o:item_set` に2つのアイテムセット、`o:site` に1つのサイトが入っていました。1資料を複数の文脈に同時に置けるという設計が、データにそのまま表れています。

### 語彙の追加とリソーステンプレートによる入力項目の統一

メタデータの項目（プロパティ）と分類（クラス）は、RDF語彙から取り込みます。インストール直後に入っている語彙は、Dublin Core、Dublin Core Type、Bibliographic Ontology（BIBO）、Friend of a Friend（FOAF）の4つです。ローカルに4.2.1を入れた直後のデータベースを数えると、次の通りでした。

| 語彙               | 接頭辞     | プロパティ | クラス |
| ---------------- | ------- | ----- | --- |
| Dublin Core      | dcterms | 55    | 22  |
| Dublin Core Type | dctype  | 0     | 12  |
| BIBO             | bibo    | 67    | 58  |
| FOAF             | foaf    | 62    | 13  |

Dublin Coreの55プロパティ・22クラスと、Dublin Core Typeの12クラスは、ユーザーマニュアルの記載と一致します。この2つは編集も削除もできません。

語彙はRDF/XMLやTurtleのファイルを読み込ませて追加できます。2025年8月には、国際アーキビスト評議会のRecords in Contexts（RiC-O 1.1）をOmeka Sに語彙として登録した手順が国内のブログで公開されました。国立国会図書館ダブリンコアメタデータ記述（`dcndl:`）も同じ方法で入れられ、先の東京大学のインスタンスは `dcndl:materialType` や `dcndl:holdingAgent` を使っています。語彙の考え方そのものは[RDFとOWLで意味を定義するオントロジーの記事](/tech/details/17449/)が参考になります。

語彙を追加すると、アイテムの入力画面でそのプロパティを選べるようになりますが、どの項目を埋めるかは入力者任せです。そこで使うのがリソーステンプレートです。クラスと、入力させたいプロパティの組み合わせを事前に定義しておくもので、「古文書用」「写真用」のように資料種別ごとに作ると、入力者による項目のばらつきを抑えられます。

## Omeka Sのインストール手順とシステム要件

### 4.2系のシステム要件

| 対象        | 公式要件（4.2）                              |
| --------- | -------------------------------------- |
| OS        | Linux                                  |
| Webサーバー   | Apache（AllowOverride All・mod\_rewrite） |
| データベース    | MySQL 5.7.9以上 または MariaDB 10.2.6以上     |
| PHP       | 8.1以上（8.4は4.2以降、8.5は4.2.1以降）           |
| PHP拡張     | PDO・pdo\_mysql・mbstring・xml            |
| サムネイル（任意） | ImageMagick 6.7.5以上・imagick・gdのいずれか    |

マニュアルの一覧には無い要件が1つあります。4.2.1の `composer.json` は、上の4つに加えて `ext-fileinfo` も必須として宣言しています。多くのディストリビューションのPHPでは既定で有効ですが、最小構成のコンテナイメージでは外れていることがあるので、インストール前に `php -m` で確認します。サムネイルは、`config/local.config.php` の `service_manager` の `aliases` にあるキー `Omeka\File\Thumbnailer` の設定値を `Omeka\File\Thumbnailer\Gd` に書き換えればgdでも作れます。ただし、gdが扱えるのはJPEG・GIF・PNGなど一般的な形式だけで、TIFFやPDFのサムネイルが要るならImageMagickを入れます。

### サーバーへのインストール手順

先にMySQLでOmeka S専用のデータベースとユーザーを作っておきます。そのうえでGitHubのリリースからzipを取得して展開します。4.2.1のzipは18,955,412バイトで、展開すると `omeka-s/` ディレクトリの中に `config`・`files`・`modules`・`themes`・`vendor` と `.htaccess` が入っています。

```
curl -L -o omeka-s-4.2.1.zip https://github.com/omeka/omeka-s/releases/download/v4.2.1/omeka-s-4.2.1.zip
unzip omeka-s-4.2.1.zip
```

次に `omeka-s/config/database.ini` を開き、作成したデータベースの接続情報を書きます。配布時点の中身は次の通りで、先頭4行を埋めます。

```
user     = ""
password = ""
dbname   = ""
host     = ""
;port     =
;unix_socket =
;log_path =
```

ディレクトリをサーバーの公開領域に置き、`files/` をApacheの実行ユーザーが書き込める権限にします。あとはブラウザで `/admin` を開くと `/install` に転送され、最初のユーザー（メールアドレス・パスワード・表示名）と、インストール名・タイムゾーン・ロケールを入力する画面が出ます。zipには日本語の翻訳ファイル（`application/language/ja.mo`）が同梱されているので、ロケールで `ja` を選べば管理画面は日本語になります。送信するとデータベースに31個のテーブルが作られ、ログイン画面に移ります。

インストール後に見落としやすいのがPHP CLIのパスです。Omeka Sは大量のアイテムを処理する一括編集やCSV取り込みを、`php` コマンドのバックグラウンドジョブで実行します。パスの自動検出に失敗するとジョブが止まるため、管理画面の「システム情報」ページで「PHP CLI path」が取れているかを確認します。同じページに、アップロードできるファイルの上限（File Upload Limit）も出ます。

### Dockerで4.2.1を手元に立てる手順

Docker Hubの `omeka/omeka-s` は、タグが `latest` だけで、2017年5月22日を最後に更新されていません（2026年10月15日にDocker HubのAPIで確認）。第三者のイメージも複数ありますが、版の追従は配布者次第です。手元で試すなら、公式PHPイメージ（`php:8.4-apache`）に公式zipを入れる構成が、版を自分で固定できて確実です。次の3ファイルを同じディレクトリに置きます。

```
# Dockerfile
FROM php:8.4-apache
RUN apt-get update \
 && apt-get install -y --no-install-recommends unzip imagemagick \
 && docker-php-ext-install pdo_mysql \
 && a2enmod rewrite \
 && sed -ri 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf \
 && rm -rf /var/lib/apt/lists/*
ADD https://github.com/omeka/omeka-s/releases/download/v4.2.1/omeka-s-4.2.1.zip /tmp/omeka-s.zip
RUN unzip -q /tmp/omeka-s.zip -d /tmp \
 && cp -a /tmp/omeka-s/. /var/www/html/ \
 && rm -rf /tmp/omeka-s /tmp/omeka-s.zip \
 && chown -R www-data:www-data /var/www/html/files
RUN printf "upload_max_filesize = 64M\npost_max_size = 80M\n" > /usr/local/etc/php/conf.d/uploads.ini
COPY database.ini /var/www/html/config/database.ini
```

```
# database.ini
user     = "omeka"
password = "omeka"
dbname   = "omeka"
host     = "db"
```

```
# compose.yaml
services:
  db:
    image: mariadb:11.4
    environment:
      MARIADB_DATABASE: omeka
      MARIADB_USER: omeka
      MARIADB_PASSWORD: omeka
      MARIADB_ROOT_PASSWORD: root
    healthcheck:
      test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
      interval: 5s
      retries: 20
  omeka:
    build: .
    ports:
      - "127.0.0.1:8080:80"
    depends_on:
      db:
        condition: service_healthy
```

`docker compose up -d --build` で起動し、`http://localhost:8080/admin` を開くとインストール画面が出ます。Docker 29.5.2（MacではColima上）で実行したところ、システム情報ページの表示はOmeka S 4.2.1・PHP 8.4.26・MariaDB 11.4.13、PHP CLIのパスは `/usr/local/bin/php` で自動検出されていました。MacでDocker Desktopを使わずに動かす方法は[ColimaでDocker Desktopを外す導入手順](/tech/details/17842/)にまとめています。

この構成で効いている設定は3つです。

- **拡張は `pdo_mysql` だけ足せばよい**：`php:8.4-apache` では `fileinfo`・`mbstring`・`xml` が最初から有効でした。
- **アップロード上限を上げる**：`uploads.ini` を置かないと、システム情報ページの表示は「File Upload Limit 2M」「POST Size Limit 8M」でした。2Mを超えるファイルは、この設定のままではアップロードできません。
- **`AllowOverride All` に書き換える**：Omeka Sの `.htaccess` が全リクエストを `index.php` へ回すため、これが無いと `/admin` などのURLが404になります。

ただし、このcomposeは試用向けです。`files` と `modules` をボリュームにしていないため、`--build` でコンテナを作り直すと、入れたモジュールが消えました。データベースはdbコンテナを残している間だけ保たれます。匿名ボリュームは `docker compose down` 後の `up` では自動的に再接続されないためです。続けて使うなら、omeka側の `/var/www/html/files`・`modules`・`themes` と、db側の `/var/lib/mysql` を名前付きボリュームに切り出します。インストールせずに画面を触るだけなら、[公式のダウンロードページ](https://omeka.org/s/download/)にあるsandboxが使えます。アイテム・アイテムセット・リソーステンプレートと複数のサイトが入っており、内容は毎週月・水・金・日曜にリセットされます。

### アップデート時に退避するファイル

手動アップデートでは、まずサイト全体のファイルとデータベースをバックアップします。次に、`config/local.config.php` と `config/database.ini`、変更していれば `.htaccess`、そして `modules`・`themes`・`files` の各ディレクトリを退避します。その後Omeka S本体のファイルを新しいzipの中身に置き換え、退避したものを戻します。仕上げは `/admin` を開いてのデータベースのマイグレーションです。大きなバージョンアップではモジュールとテーマの更新も必要になり、対応していないものはモジュール一覧とテーマ一覧に表示されます。

## サイト構築：ページブロック・テーマ・ユーザー権限

### ページブロックによる構成とサイト単位のテーマ設定

サイトのページは、ブロックを上から並べて組み立てます。コアに入っているブロックは、アイテム一覧を埋め込む「Browse preview」、アイテムのメディアを表示する「Media embed」、自由記述の「HTML」、外部動画などを埋め込む「oEmbed」、目次を出す「Table of contents」、4.2.0で追加された「IIIF image」「IIIF presentation」など14種類です。モジュールを入れると、地図や検索フォームなどのブロックが増えます。

テーマは `/themes` にフォルダを置き、サイトごとの設定画面で選びます。インストール全体ではなくサイト単位で選ぶため、同じインストールの中でサイトごとに異なるデザインにできます。ナビゲーションもサイトごとに設定します。

### 6段階のユーザーロール

| ロール                  | 主な権限              |
| -------------------- | ----------------- |
| Global Administrator | インストール全体・モジュール管理  |
| Supervisor           | ユーザー管理・サイトとコンテンツ  |
| Editor               | コンテンツの作成・編集全般     |
| Reviewer             | 他者の編集は可・削除は自分の分のみ |
| Author               | 自分のコンテンツを作成       |
| Researcher           | 検索と閲覧のみ           |

ユーザーを作成・編集・削除できるのはSupervisorとGlobal Administratorだけで、モジュールのインストールと設定はGlobal Administratorに限られます。展示を学生に作らせる授業用途では、学生をAuthorにして特定サイトの権限だけを渡し、資料そのものの登録はReviewer以上の職員が行う、という分担が権限表に沿った形です。

## Omeka Sのモジュールと導入手順

Omeka Sのコアは意図的に機能を絞っており、CSVでの一括登録や地図表示もモジュールで足します。主なモジュールと、2026年10月15日時点でGitHubに出ている最新リリースは次の通りです。

| モジュール           | 用途                | 最新版     | 配布元             |
| --------------- | ----------------- | ------- | --------------- |
| CSV Import      | CSVからの一括登録        | v2.6.2  | omeka-s-modules |
| Mapping         | 地図表示・位置情報         | v2.3.0  | omeka-s-modules |
| Collecting      | 公開フォームでの資料収集      | v1.13.0 | omeka-s-modules |
| Value Suggest   | 外部典拠からの入力候補       | v1.21.0 | omeka-s-modules |
| Faceted Browse  | ファセット絞り込みページ      | v1.10.0 | omeka-s-modules |
| IIIF Server     | IIIFマニフェスト・画像配信   | 3.6.34  | Daniel-KM       |
| Advanced Search | 検索フォーム・ファセットの拡張   | 3.4.65  | Daniel-KM       |
| SearchSolr      | Apache Solrでの全文検索 | 3.5.74  | Daniel-KM       |

配布元が2系統ある点に注意してください。`omeka-s-modules` はOmeka開発チームの組織で、ライセンスはコアと同じGPL-3.0です。Daniel-KMは個人開発者のリポジトリで、Advanced SearchとSearchSolrのライセンスはCeCILL-2.1です。リリース頻度も高く、IIIF Server・Advanced Search・SearchSolrはいずれも2026年10月7〜8日に新版が出ています。組織で導入するなら、ライセンスと保守者が別になる点を記録に残しておくべきです。

導入は、zipを `/modules` に展開し、管理画面の「モジュール」で「インストール」を押します。ここで取るzipを間違えると壊れます。上のDocker環境で試した結果は次の通りです。

| 置いたもの                       | 展開後のフォルダ            | 結果                     |
| --------------------------- | ------------------- | ---------------------- |
| リリースの `CSVImport-2.6.2.zip` | `CSVImport`         | インストール成功               |
| Mappingの「Source code (zip)」 | `Mapping-2.3.0`     | 一覧には出るがインストールでHTTP 500 |
| 同上をMappingに改名               | `Mapping`（vendor無し） | 入るが、次のモジュールのインストールが失敗  |
| リリースの `Mapping-2.3.0.zip`   | `Mapping`（vendor有り） | インストール成功               |

改名して入れたMappingは、その後にCSV Importをインストールしようとした時点で `modules/Mapping/vendor/autoload.php` を開けないというエラーを出しました。GitHubが自動で付ける「Source code」のzipには、Composerで入る依存ライブラリ（`vendor`）が含まれていないためです。リリースのアセットとして置かれた `Mapping-2.3.0.zip` には `vendor` 配下に478ファイルが入っており、差し替えると解消しました。GitHubから取るときは、ページ下部の「Assets」にあるモジュール名のzipを選び、展開したフォルダ名がモジュール名そのものになっていることを確かめます。

## Omeka SのREST APIによるデータ取得・更新

### エンドポイントと認証

REST APIはインストールの直下の `/api` にあります。`/api/items`・`/api/item_sets`・`/api/media`・`/api/sites` などのリソースに対してGETで検索と取得、POSTで作成、PUTで全体更新、PATCHで部分更新、DELETEで削除を行います。公開されている資料の読み取りは認証なしでできます。非公開データの読み取りや書き込みには、ユーザー編集画面の「APIキー」タブで発行したキーを、`key_identity` と `key_credential` の2つのクエリパラメータで毎回渡します。発行直後の画面には「”key\_credential” will be unretrievable after you navigate away from this page」と出ます。`key_credential` は画面を離れると二度と表示されないので、その場で控えます。

既存の業務システムや収蔵品データベースから定期的に登録・更新する場合は、このAPIを呼ぶ連携処理を別に作ることになります。連携の設計から任せたい場合は[API開発・システム連携の支援](/service/system/api/)で相談を受けています。

### ローカルの4.2.1で確かめた挙動

Docker環境に発行したキーで、アイテムを1件作りました。以下の例を再現するには、curlとjqを用意し、発行した値をシェル変数 `KEY_ID` と `KEY_CRED` に設定します。最初のJSONは `item.json` として保存してください。先頭の `$` はプロンプトで、その後に示す応答結果は入力しません。プロパティの値は常に配列で渡し、各値に型・プロパティID・値を持たせます。`property_id` はインストールごとに振られる番号で、今回の環境では `dcterms:title` が1、`dcterms:creator` が2、`dcterms:date` が7でした。

```
$ cat item.json
{
  "dcterms:title": [{"type": "literal", "property_id": 1, "@value": "相生橋工事写真", "@language": "ja"}],
  "dcterms:creator": [{"type": "literal", "property_id": 2, "@value": "東京市"}],
  "dcterms:date": [{"type": "literal", "property_id": 7, "@value": "1903"}]
}
$ curl -s -X POST -H "Content-Type: application/json" \
    "http://localhost:8080/api/items?key_identity=$KEY_ID&key_credential=$KEY_CRED" \
    -d @item.json | jq '{"o:id", "o:is_public", "o:title"}'
{
  "o:id": 1,
  "o:is_public": true,
  "o:title": "相生橋工事写真"
}
```

ここで、タイトルの表記だけを直すつもりでPATCHを送ると、送らなかった作成者と日付が消えました。開発者文書にある「プロパティの値を1つでも送ると、送らなかった値はすべて削除される」という挙動がそのまま再現します。

```
$ curl -s -X PATCH -H "Content-Type: application/json" \
    "http://localhost:8080/api/items/1?key_identity=$KEY_ID&key_credential=$KEY_CRED" \
    -d '{"dcterms:title":[{"type":"literal","property_id":1,"@value":"相生橋工事写真 一"}]}' \
  | jq '{"o:title", creator: ."dcterms:creator", date: ."dcterms:date"}'
{
  "o:title": "相生橋工事写真 一",
  "creator": null,
  "date": null
}
```

値を直すときは、GETで現在のJSONを取り、該当箇所だけ書き換えて全プロパティを送り返します。一括で直すスクリプトを書く前に、テスト用のアイテムでこの挙動を確かめておくべきです。

残り2つの挙動も確かめました。

- **RDFでの出力**：`format=turtle` を付けると `text/turtle;charset=UTF-8`、`format=rdfxml` では `application/rdf+xml` が返りました。付けない場合のContent-Typeは `application/ld+json` です。開発者文書は `format` を4.1.0以降の機能としています。
- **非公開アイテム**：`o:is_public` をfalseにすると、キー無しの `GET /api/items/1` は403ではなく404を返しました。一覧の件数ヘッダーもキー無しでは0、キー付きでは1です。「APIで見えない」ことは、存在しないことの証明になりません。

### 公開インスタンスで実行した結果

東京大学工学・情報理工学図書館のOmeka Sに対して、2026年10月15日に実行した結果です。検索結果の総件数は `Omeka-S-Total-Results` ヘッダー（3.0.0以降）に入り、次ページのURLは `Link` ヘッダーに入ります。

```
$ curl -s -D - -o /dev/null "https://curation.library.t.u-tokyo.ac.jp/api/items?per_page=1" | grep -i -E "^(omeka-s-total-results|content-type)"
content-type: application/json; charset=utf-8
omeka-s-total-results: 1700
```

特定のプロパティで絞り込むときは `property[{index}]` を使います。`type` には完全一致の `eq`、部分一致の `in`、前方一致の `sw` などを指定でき、先頭に `n` を付けると否定になります。タイトルに「橋」を含むアイテムを3件取ると、次のようになりました（総件数は55件）。

```
$ curl -s -G "https://curation.library.t.u-tokyo.ac.jp/api/items" \
    --data-urlencode 'property[0][property]=dcterms:title' \
    --data-urlencode 'property[0][type]=in' \
    --data-urlencode 'property[0][text]=橋' \
    --data-urlencode 'per_page=3' | jq -r '.[] | "\(."o:id")\t\(."o:title")"'
75900	[山ヶ野金山. 九郎太郎橋、左手に三番瀧坑の竪坑櫓]
86925	相生橋工事寫眞　二
86926	相生橋工事寫眞　三
```

このインスタンスでは、`format=turtle` を付けても `application/json` のJSONが返りました。ローカルの4.2.1とは応答が異なり、版や設定によって変わる部分です。取り込み先のサーバーでは、まず1件取得したときのContent-Typeを確認してください。4.2.1のコアにはSPARQLのエンドポイントがありません。SPARQLで問い合わせたい場合は、Daniel Berthereau氏が配布するSparqlモジュールでトリプルストアを作るか、TurtleやJSON-LDで出したデータを[Apache Jena Fusekiのようなトリプルストア](/tech/details/10916/)に入れて[SPARQLのクエリ](/tech/details/3428/)で検索する構成になります。

## Omeka Sを選ばない方がよい条件

Omeka Sは「資料を構造化して長く公開し続ける」ための道具で、どんなWeb公開にも合うわけではありません。次の条件に当てはまるなら、別の選択肢を先に検討すべきです。

1つ目は、公開したいのが1つの展示だけで、資料の再利用予定が無い場合です。複数サイトとRDF語彙の仕組みは、そのまま設定作業の増加になります。サーバーを持たずに始めるならOmeka.net、自前で1サイトならOmeka Classic、ページ作成が中心なら[django CMSのような汎用CMS](/tech/details/17115/)も比較対象になります。

2つ目は、Apacheと専用のMySQLデータベースを用意できない場合です。公式要件はApacheのmod\_rewriteと `.htaccess` を前提にしています。共用のレンタルサーバーでは、SoftaculousやInstallatronのワンクリックインストールに対応した事業者を選ぶのが現実的です。

3つ目は、IIIFでの高精細画像配信が必須なのに、追加モジュールや画像サーバーを構築・保守する体制を用意できない場合です。4.2.0でIIIFを表示するブロックは入りましたが、画像をIIIF Image APIで配信する側はモジュール（IIIF Server等）と画像サーバーの構成次第です。そのIIIF Serverは個人開発者の配布で、月に複数回の更新があります。東京大学文書館のデジタル・アーカイブは2018年8月にOmeka Sで本公開しましたが、2019年のカレントアウェアネスの報告では、IIIF画像サービスに対応しない単純なJPEGを使っていたため、提供するIIIFマニフェストを一部のビューアで読み込めない課題が挙げられています。画像配信の方式は、資料を登録し始める前に決めておくべきです。

なお、紙資料をデジタル化する段階でテキストを検索可能にしたい場合は、事前にOCRをかける方法のほか、Omeka SのExtract TextモジュールとTesseractを使い、画像の登録時に文字を抽出する方法があります。日本語の古い印刷物なら、国立国会図書館が公開したNDLOCR-Liteのモデルをブラウザで動かせる[NDLOCR-Lite Web](/tech/details/11281/)で、登録前に下処理する手もあります。

## よくある質問

### Omeka Sはどこからダウンロードできますか？

公式サイトのダウンロードページか、GitHubの `omeka/omeka-s` のリリースから取得できます。2026年10月時点の最新は4.2.1で、ファイル名は `omeka-s-4.2.1.zip` です。無料で、ライセンスはGPL-3.0です。

### Omeka Sの管理画面は日本語で使えますか？

使えます。配布zipに日本語の翻訳ファイルが同梱されており、インストール画面か管理画面の設定でロケールに `ja` を選ぶと切り替わります。ただし、モジュールやテーマの翻訳は、それぞれの配布物に含まれているかどうかで決まります。

### インストールせずにOmeka Sを試せますか？

公式のsandboxで試せます。ダウンロードページに共用のデモアカウントが3つ載っており、サンプルのアイテムやサイト、多数のモジュールとテーマが入った状態で操作できます。内容は毎週月・水・金・日曜にリセットされるので、自分のデータを残す用途には使えません。

### WindowsやMacで動かせますか？

公式のシステム要件はLinuxとApacheです。WindowsやMacで手元に立てるなら、本文の「Dockerで4.2.1を手元に立てる手順」の構成のように、Linuxのコンテナの中でApache・PHP・MariaDBを動かします。本番運用は、公式要件どおりLinuxとApacheの構成を選ぶのが安全です。

### Omeka ClassicのデータをOmeka Sに移せますか？

移せます。Omeka Sのユーザーマニュアルは、Classicのデータを取り込む手段として「Omeka Classic Importer」モジュールを案内しています。別のOmeka Sからの取り込みには「Omeka S Item Importer」、表形式のデータには「CSV Import」を使います。

## 関連記事

- [オントロジーとは？RDFとOWLで意味を定義する実装手順【2026年版】](/tech/details/17449/)
- [SPARQLとは？RDFを検索するクエリ言語の書き方とSQLとの違いを実行例で解説【2026年版】](/tech/details/3428/)
- [Apache Jena Fusekiとは？Jena 6の変更点とインストール・Docker運用を実装目線で解説](/tech/details/10916/)
- [NDLOCR-Lite Webの使い方と精度・商用利用｜インストール不要の無料ブラウザOCR](/tech/details/11281/)
- [Colimaとは？MacでDocker Desktopを外す導入手順と設定の落とし穴【0.10系】](/tech/details/17842/)

---

出典: [Omeka Sとは？Omeka Classicとの違い・4.2系のインストール手順とREST APIを解説](<https://www.issoh.co.jp/tech/details/7891/>)（株式会社一創）
