【Omeka S モジュール紹介】Bulk Import:CSVファイルを用いたメタデータと画像の一括登録

更新履歴

2021-08-07

本記事で紹介した方法をWindowsで用いる場合に、一部不具合が生じることが確認されました。対応策などについて、以下の記事で紹介しています。同様の不具合が生じた際には、参考にしてください。

 

nakamura196.hatenablog.com

 

概要

今回は、Omeka Sへのメタデータ(アイテム)と画像(メディア)等の一括登録を行うためのモジュール「Bulk Import」の使い方について説明します。

 

github.com

 

なお、Omeka Sへの一括登録用の代表的なモジュールとして、「CSV Import」もありますが、以下のような違いがあると述べられています。

 

スプレッドシートでは、モジュールのCSV Importとは異なり、特定のヘッダー形式に基づいてユーザーが定義したリソースを作成するプロセッサを使用しています。

 

The spreadsheet uses a processor that creates resources based on a user-defined based on a specific header format, unlike the module CSV Import.

 

https://github.com/Daniel-KM/Omeka-S-module-BulkImport#bulk-import-module-for-omeka-s

 

具体的な内容については後述しますが、このプロセッサにより、CSV Importモジュールと比べて、より効率的な一括登録を行うことができます。

 

ただし、本モジュールは様々な機能を提供しているため、ここでは基本的な使用方法について説明します。また、記事が長くなってしまうため、今回は新規登録作業のみを扱います。更新作業については、別の記事で取り上げます。

 

なお、本記事と取り扱うデータは異なりますが、以下の動画でも「Bulk Import」の使い方を説明しています。参考になりましたら幸いです。

 

youtu.be

 

 

 

インストール

本モジュールのインストールに当たっては、事前に「Log」モジュールをインストールする必要があります。GitHubリポジトリは以下です。

 

omeka.org

 

この「Log」モジュールについても、さまざまな設定を行うことができるため、詳細については改めてご紹介します。「Bulk Import」モジュールを利用するにあたっては、通常のインストールを行うのみでかまいません。

 

なお、「Log」モジュールのインストール後に、以下のような黄色のwarningが表示されますが、そのままで構いません。

 

f:id:nakamura196:20210727223749p:plain

 

「Bulk Import」モジュールのインストール後、以下の画面が表示されますが、こちらもそのままで構いません。別のページに移動するか、画面右上の「送信」ボタンを押してください。

 

f:id:nakamura196:20210727223704p:plain

 

事前準備・設定の説明

今回も「いらすとや」さんを利用させていただき、そこで公開されている「人物」 > 「赤ちゃん」 の複数画像に関する情報を一括登録することとします。

 

www.irasutoya.com

 

以下の記事において、すでにアイテムセット「赤ちゃん」を作成済みですので、このアイテムセットに対して、複数のアイテムを登録し、それぞれのアイテムに画像(メディア)を登録することとします。

 

nakamura196.hatenablog.com

 

なお、今回はアイテムを登録する際に、アイテムセットのID(識別子)を指定するため、以下のように、アイテムセットの編集画面から、アイテムセット「赤ちゃん」に対して、「dcterms:identifier」の値に「baby」を与えておきます。

 

f:id:nakamura196:20210727224538p:plain

 

また、今回は一括登録するアイテムのそれぞれに、Omeka Sの固有の概念である「リソーステンプレート」と「所有者」に関する情報も付与することとします。それぞれ、以下にマニュアルがありますが、改めて日本語による説明記事を用意したいと思います。

 

Resource Templates - Omeka S User Manual

 

Users - Omeka S User Manual

 

Omeka Sの導入後は、リソーステンプレートについては「Base Resource」、ユーザについては「グローバル管理者」が一人、デフォルトで作成されています。今回はこれらをアイテムに割り当てることとしますが、環境に応じて、適宜変更してください。

 

f:id:nakamura196:20210727225402p:plain

 

f:id:nakamura196:20210727225338p:plain

 

登録

「Bulk Import」(および「CSV Import」)では、アイテムとメディアを一緒にしたCSVファイル等を用意して登録することもできますが、基本的には、アイテムとメディア、それぞれのCSVファイルを用意して、別に登録する方がわかりやすいと思います。

そのため、今回もアイテムとメディアのそれぞれについて、登録用のデータを用意します。なお、このフォーマットは、CSV、TSV、ODSをサポートしていますが、CSVファイルの利用をお勧めします。

2021年7月時点において、十分に検証できていませんが、ODSファイルで登録する場合、日本語が一部登録できない不具合が生じる可能性があります。

 

アイテム

データ準備

「いらすとや」では、個々の画像について、以下のようなページを持っています。

 

www.irasutoya.com

 

このページから、以下の情報を取得できます。

 

  • タイトル(dcterms:title):横から見たオムツ姿の赤ちゃんのイラスト
  • 内容記述(dcterms:description):オムツだけを履いた裸の赤ちゃんを横から見たイラストです。
  • 公開日(dcterms:date):2020-12-17
  • カテゴリ(dcterms:subject):あかちゃん、リクエス
  • 関連イラスト(dcterms:relation):子守唄のイラスト(お父さん)、タオルを使ってうつ伏せになる赤ちゃんのイラスト
  • 利用条件(dcterms:rights):

    https://www.irasutoya.com/p/terms.html

 

したがって、各アイテムに上記の情報を持たせた上で、複数のアイテムを登録することとします。

加えて、「Bulk Import」の使い方を学ぶ意味で、以下の条件を加えます。

  1. 公開日について、非公開メタデータとして登録する
  2. カテゴリは「日本語」表記に加えて、「英語」表記(Baby, Request)を追加する
  3. 関連イラストは、Omeka Sに登録済みのアイテムを関連づける
  4. 利用条件は、文字列ではなく、URLとして登録する
  5. 各アイテムは、アイテムセット「赤ちゃん」(dcterms:identifier = baby)に登録する
  6. リソーステンプレートとして「Base Resource」を割り当てる
  7. 各アイテムは公開アイテム(is_public = 1)として登録する。(非公開アイテムとしては登録したい場合には、is_public = 0 として進めてください。)
  8. 各アイテムの所有者は、グローバル管理者(id = 1)を割り当てる

 

上記の条件に基づき、まず 条件3 以外の情報を登録するためのCSVファイルを以下に示します。

 

https://github.com/omeka-j/Omeka-S-module-BulkImport-Sample-Data/blob/main/item.csv

 

ヘッダー行の作成方法にポイントがあります。詳細については、以下で述べられています。

 

https://github.com/Daniel-KM/Omeka-S-module-BulkImport#spreadsheet

 

今回は、先にあげた条件に対して、以下のようなヘッダー行を用意しています。

  1. §private」を付与して、当該メタデータの可視性を非公開とする。
  2. 「@ja」「@en」を付与して、言語毎のメタデータを登録する。また、複数の値を持つため、「| (パイプ)」記号を用いて値を区切る。
  3. (後述)
  4. 「^^uri」を付与して、「URI」として登録することを指定する。
  5. ヘッダー名を「item set」として、アイテムセットのID「baby」を与える。
  6. ヘッダー名を「resource template」として、リソーステンプレート名「Base Resource」を与える。
  7. ヘッダー名を「public」として、公開設定「1」を与える。非公開にしたい場合には、「0」を与える。
  8. ヘッダー名を「owner」として、ユーザのID(今回の例では、初期ユーザの「1」)を与える。

 

なお、2021年7月時点での不具合として、1列目にダミー列を入れていただく必要がある点にご注意ください。

 

登録

上記で説明したCSVファイルを使って、以下の示す手順で登録を行います。以下のURLからダウンロードできます。

 

https://raw.githubusercontent.com/omeka-j/Omeka-S-module-BulkImport-Sample-Data/main/item.csv

 

まず、画面左部のメニュー「モジュール」 > 「Bulk Import」をクリックし、「CSV - Items」をクリックします。

 

f:id:nakamura196:20210727232224p:plain

 

以下のように、ファイルを選択する画面が表示されますので、上述したCSVファイルを選択します。なお、本画面で、複数の値を区分するための区切り文字などを設定することができますので、必要に応じて修正してください。(ただし、はじめのうちは、デフォルトのままで使用することをお勧めします。)

 

f:id:nakamura196:20210727232304p:plain

 

次の画面「Start import」において、登録方法の設定(今回はデフォルトのまま利用します。)や、マッピングに関する設定画面が表示されます。CSVファイルが正しく作成されている場合、1列目のダミー列以外、Omeka Sの用語にマッピングされていることが確認できます。

正しくマッピングされていない場合には、1列目のダミー列のように、選択フォームが「未選択」の状態となります。

本「Bulk Import」の、「CSV Import」と比較した際の利点は、このマッピング設定についてのほぼすべてを、CSVファイルの作成時に設定することができることです。「CSV Import」モジュールを使用する場合、一部の項目を人手でマッピングする必要があり、選択漏れなどの人的ミスが生じるリスクがあります。属人性を軽減できる点が、「Bulk Import」を用いる利点の一つです。

 

f:id:nakamura196:20210727232343p:plain

 

次は確認画面となるため、画面下部の「Start Import」を押して、登録作業を開始します。

 

f:id:nakamura196:20210727232415p:plain

 

その結果、以下のアイテム一覧画面に戻ると、登録した2件のアイテムが正しく登録されていることが確認できます。

 

f:id:nakamura196:20210727232444p:plain

 

また、個々のアイテムをクリックすることにより、「リソーステンプレート」「アイテムの可視性」「タイプ(文字列またはURI)」「言語(jaとen)」および「メタデータの可視性(dcterms:date のみ非公開となっている)」等が正しく登録されていることを確認できます。

 

f:id:nakamura196:20210727232809p:plain

 

ここまでで、基本的なアイテムの一括登録は完了です。

 

発展:アイテムの関連づけ

上記の作業では、特定のアイテムに文字列(Omeka Sでは「テキスト」)とURL(Omeka Sでは「URI」)を登録しました。Omeka Sでは、さらに「Omeka リソース」という形で、Omeka Sに登録済みのアイテムを関連づけることができます。関連づけられたデータは、Linked Dataとして利用可能なものとなります。

 

そこで、今回は前プロセスの条件3であげたように、関連するイラストを登録する作業について説明します。具体的には、今回登録したアイテムに対して、以下のようなアイテムを関連づけます。

 

 

id = post_69: 横から見たオムツ姿の赤ちゃんのイラスト

  • id = post_299: 子守唄のイラスト(お父さん)
  • id = post_279: タオルを使ってうつ伏せになる赤ちゃんのイラスト
  • id = post_226: 赤ちゃんの胸囲の測定のイラスト

 

なお、アイテム「post_226」は今回登録したアイテムですが、「post_299」「post_279」は過去の記事で登録したアイテムです。dcterms:identifierを使用したアイテムの指定を行うため、ID(識別子)が未付与の場合は、以下のようにIDを付与してください。

 

f:id:nakamura196:20210728070442p:plain

 

そして、以下のようなCSVファイルを作成します。以下の画面の「Raw」というボタンから、CSVファイルのダウンロードが可能です。

 

https://github.com/omeka-j/Omeka-S-module-BulkImport-Sample-Data/blob/main/relation.csv

 

ポイントとしては、関連されるアイテムのID(識別子)を指定した列において、ヘッダー名に「^^resource」を付与している点が重要です。これにより、登録する情報が「Omeka リソース」として登録されます。

 

基本的な登録の流れは、先ほどのプロセスと同じですが、1点異なる点として、ファイルの登録後に表示される設定画面「Start Import」の「Action」という項目について、以下の図のように「Append data to resources」を選択してください。これは、すでに登録済みのアイテムに対して、追加で関連するアイテムを登録するためです。その他の選択肢は更新や削除のためのオプションのため、更新作業を取り扱う別記事でご紹介します。

 

また、画面下部のマッピングが正しく行われている(ダミー列以外、空になっていない)ことを確認した上で、登録作業を継続してください。

 

f:id:nakamura196:20210728071226p:plain


結果、id = post_69 のアイテムについて、以下のように関連アイテムが登録されます。

 

f:id:nakamura196:20210728071044p:plain

 

公開サイトについては、以下からご確認いただけます。

 

diyhistory.org

 

以上でアイテムの登録作業は完了です。なお、今回はアイテムのメタデータに関するcsv「item.csv」と、アイテム同士の関連づけを行うcsv「relation.csv」を分けて扱いましたが、一つのファイルとして登録することも可能です。ただし、その場合の注意点としては、「xxx:yyy ^^resource」で指定したIDのアイテムが事前にOmeka Sに登録されている必要があるため、CSVファイルの行の順番等に注意する必要があります。したがって、今回のように、それぞれを分けて登録する方法もお勧めです。

 

メディア

データ準備

画像(Omeka Sでは「メディア」と呼びます。)を登録する方法は、いくつかオプションがありますが、今回は「いらすとや」さんで公開されている画像のURLを指定してコピーを行う方法を使います。このオプションについては、以下に公式のマニュアルがあります。いずれ紹介記事を書きたいと思います。特に、別途IIIF Image Serverを導入している場合、「IIIF画像」オプションが有用です。

 

https://omeka.org/s/docs/user-manual/content/items/#media

 

今回のURL指定によるメディア登録にあたり、以下のようなCSVファイルを用意します。以下の画面の「Raw」というボタンから、CSVファイルのダウンロードが可能です。

 

https://github.com/omeka-j/Omeka-S-module-BulkImport-Sample-Data/blob/main/media.csv

 

ヘッダー行について、画像のURLを指定した列には「url」、画像を登録するアイテムのID(識別子)を指定した列には「item」を入力します。

 

これらは最低限の設定で、その他、画像のタイトルや利用条件、可視性等を、アイテムの登録時と同様に指定することができます。

 

登録

登録にあたっての作業は、基本的にアイテムの新規登録の時と同様です。違いとしては、「Available importers」を選択する画面で「CSV - Medias」をクリックします。それ以降は、デフォルト設定のまま進めてください。

 

f:id:nakamura196:20210728075952p:plain

 

結果、以下のように、画像を一括登録することができます。

 

diyhistory.org

 

まとめ

この記事では「Bulk Import」を用いたアイテムとメディアの一括登録方法について説明しました。

ただ本モジュールは多機能なため、あくまで基本的な使い方のみを扱いました。ご要望等に応じて記事を追加していきたいと思いますので、ご不明な点などがございましたらお知らせください。

以上、本記事がOmeka Sへのリソース一括登録の参考になれば幸いです。