Registering Resource Classes with Bulk Import and Editing Settings

Bulk Importによる一括登録および更新の方法について、以下の記事を作成しました。 nakamura196.hatenablog.com nakamura196.hatenablog.com 上記において、リソースクラスの登録方法を示していなかったため、本記事で追記します。また、Bulk Importモジュールの設定内容の編集方法についても補足します。 リソースクラスの登録 リソースクラス登録用のCSVファイルのサンプルを以下に用意しました。 https://github.com/omeka-j/Omeka-S-module-BulkImport-Sample-Data/blob/main/resource_class/sample.csv ポイントとして、列名を「o:resource_class」とします。また、セルの値は、Omeka S上でTermとして確認できる値を入力します。例えば、dctype:Collectionなどを入力します。 その他:ダミー列の用意 一部のプロジェクトにおいて、CSVファイルの1列目がうまく処理されないことがありました。そのため、1列目にダミー列を用意したほうが良い場合があります。上記のサンプルCSVでも、ダミー列を設けています。 Bulk Importモジュールの使い方の補足 以下のように、画面左のBulk ImportのCofigurationから、設定画面に遷移します。以下、ReaderとProcessorの設定方法について説明します。 なお、一般的な利用においては、この設定はデフォルトのままで問題ありません。 Readerの設定 以下がReaderの設定画面です。この設定を変更することで、各組織や研究プロジェクト等におけるデータ作成ルールに合致するようにカスタマイズできます。 例えば「Multi-value separator」の値は、セル内に複数の値を入力する際の区切り文字です。デフォルト設定では、「|(パイプ)」が与えられていますが、他の区切り文字に設定することも可能です。 なお、上記の設定はデフォルトの設定を変更するもので、CSVファイルの登録する度に、この設定(区切り文字など)を変更することもできます。 Processorの設定 以下は、Processorの設定画面です。例えば、「リソーステンプレート」を編集することで、デフォルトのリソーステンプレートを指定することができます。その他、Resource classや所有者などのデフォルト値も設定することができます。 その他、さまざまな設定が可能ですので、色々と試行錯誤してみることをお勧めします。 まとめ 上記のようにデフォルトの設定を変更することで、CSVファイルを登録する際の設定漏れを防ぐことができます。各組織や研究プロジェクト等におけるルールに応じた設定を行い、作業効率の向上や操作ミスの軽減につながれば幸いです。

March 11, 2022 · 1 min · Nakamura

How to Install Omeka S Modules

Omeka Sモジュールのインストール方法についてまとめます。 A. 公式サイトから まず、以下の公式サイトからzipファイルをダウンロードできます。 https://omeka.org/s/modules/ 上記のダウンロードボタンを押すと、zipファイルがダウンロードされますので、展開したフォルダをOmeka Sをインストールしたフォルダ内のmodulesフォルダに配置します。 これが最も基本的な方法です。説明動画も用意しておりますので、初めての方は、以下の動画も参考にしてください。 www.youtube.com B. GitHub or GitLab(その1:リリース版のダウンロード)から 全てのモジュールが上記の公式サイトに掲載されているわけではありません。開発中のモジュールなどは、GitHubやGitLabなどで公開されています。 GitHubで公開されているモジュールの一覧は以下で確認できます。 https://daniel-km.github.io/UpgradeToOmekaS/omeka_s_modules.html 一例として、以下のCustomOntologyモジュールを取り上げます。 https://github.com/Daniel-KM/Omeka-S-module-CustomOntology この場合、まず、以下のReleases項目のリンクをクリックします。 そして、以下のzipファイルをダウンロードします。 この時の注意点として、「Source code(zip)」というリンクではないほうのリンクを選択してください。「Source code(zip)」というリンクをダウンロードした場合、次の項目で説明する追加の処理が必要になります。 C. GitHub or GitLab(その2:ソースコード)から 一部のモジュールについては、リリース版のzipファイルが提供されていないケースがあります。また、開発者向けの情報として、リポジトリをクローンした際にも、この項目で説明する処理が必要になります。 例えば、以下のXmlViewerモジュールは、リリース版のzipファイルが提供されていません。 https://gitlab.com/Daniel-KM/Omeka-S-module-XmlViewer この場合、リポジトリをクローンするか、以下のソースコードのダウンロードから、zipファイルをダウンロードします。 この場合の注意点として、リポジトリによっては、展開した後のフォルダ名を変更する必要があります。 具体的には、configフォルダ内のmodule.config.phpなどの中に記載されているnamespaceの値にフォルダ名に合致するように修正します。 この場合は、フォルダ名を「Omeka-S-module-XmlViewer-master」から「XmlViewer」に修正します。 Bで取り上げたCustomOntologyについても、ソースコード版のzipファイルをダウンロードすると、「Omeka-S-module-CustomOntology-3.3.5.1」という名前で展開されるため、フォルダ名を「CustomOntology」に修正する必要があります。 さらに、ソースコードをダウンロードした場合、以下のコマンド等を使って、ライブラリを追加でインストールする必要がある場合があります。 composer install –no-dev これら必要な操作については、リポジトリのREADMEファイルなどに記載があるので、適宜ご確認ください。 まとめ 基本的な利用にあたっては、AとBの方法でほぼ対応できます。一方、モジュールの最新機能を試したい場合や追加開発を行う場合など、発展的な利用を行う際にはCの手続きが必要になります。 Omeka Sモジュールのインストールエラーなどにお困りの方の参考になれば幸いです。

March 9, 2022 · 1 min · Nakamura

Batch Updating Metadata Using CSV Files with Bulk Import

はじめに 以下の記事で、Bulk ImportによるCSVファイルを用いたメタデータと画像の一括登録方法を説明しました。 nakamura196.hatenablog.com 本記事では、すでに登録済みのメタデータに対する一括更新の方法について説明します。 進め方 Bulk Importのオプションとして、以下の5つがあります。 Create new resources Append data to resources Revise data of resources Update data of resources Replace all data of resources Delete resources 以下では、これらの挙動を確認します。 1. Create new resources まず、先に共有した一括登録の方法と同様、「Create new resources」オプションを使用します。 以下のデータを登録します。 https://github.com/omeka-j/Omeka-S-module-BulkImport-Sample-Data/blob/main/update/01_create.csv dummy dcterms:identifier dcterms:title dcterms:subject abc ダミーアイテム 1 一括登録サンプル 01-create ポイントとして、以下では「dcterms:identifier」に与えた文字列をIDとして扱います。この文字列が同じアイテムに対して、更新や削除を行います。 なお、「dcterms:identifier」に与えた文字列をIDとして扱うのが一般的ですが、任意のプロパティを選択可能です。 モジュールの登録画面において、以下のようなオプションを選択して登録します。CSVで示したメタデータを持つアイテムが登録されます。 2. Append data to resources 次に、「Append data to resources」オプションを使用します。 以下のデータを登録します。 https://github.com/omeka-j/Omeka-S-module-BulkImport-Sample-Data/blob/main/update/02_append.csv dummy dcterms:identifier dcterms:title dcterms:subject dcterms:creator abc ダミーアイテム 1 一括登録サンプル 02-append 中村覚 変更点として、「dcterms:subject」の値を変更し、また「dcterms:creator」を追加しています。また「dcterms:title」の値は変更していません。 ...

March 8, 2022 · 1 min · Nakamura

Notes on Japanese Full-Text Search in Omeka S and the Mroonga Search Module

事象 Omeka Sは全文検索機能を提供していますが、残念ながら、デフォルトの設定では日本語検索がうまく機能しません。具体的には、部分一致検索がうまく機能しません。 例えば、以下のように「校異」という文字列がタイトルに含まれるアイテムが複数登録されている場合を想定します。 この時、画面左上部の全文検索フォームに「校異」と入力すると、検索結果は0件になります。 一方、「校異源氏物語」と入力すると、正しく検索結果が得られます。 本記事では、この問題に対する対応方法を紹介します。 標準機能での対応 対応策の一つとして、全文検索機能を使用せず、詳細検索において、「任意のプロパティに対する部分一致検索」を使用することが挙げられます。 具体的には、アイテムやアイテムセット、メディアの詳細検索画面から、以下の「値を検索」項目において、「[任意のプロパティ]」「含む」を選択した上で、検索語を入力します。この方法により、例えば「校異」という検索語による部分一致検索が可能です。 テーマの修正 上記では、管理画面での対応方法について説明しました。一方、公開画面においても全文検索フォームが以下のように提供されています。この全文検索フォームをそのまま提供すると、検索の挙動から利用者に混乱を招く恐れがあります。 対応方法の一つとして、テーマのプログラム修正が挙げられます。具体的には、以下の部分です。 https://github.com/omeka/omeka-s/blob/develop/application/view/common/search-form.phtml#L15-L20 この部分の修正方法として、以下の2点が挙げられます。なお、下記の2点の修正を含むテーマを以下からダウンロードいただけます。プログラムの修正等が難しい方は、以下をダウンロードの上、ご利用ください。 https://github.com/omeka-j/default/releases/tag/v1.6.3 上記のテーマは、テーマ名を「Default (CJK)」として、設定画面に全文検索フォームを表示するか否かのオプションを追加しています。また「表示する」に設定した場合、上述した、デフォルトの全文検索フォームではなく、「任意のプロパティに対する部分一致検索」を行うように修正しています。 以下では、このテーマの改修内容を参考に、プログラムの修正方法を示します。以下、プログラムの修正が必要になるため、発展的な内容になります。 (発展)対策1:全文検索フォームを隠す 例えば、全文検索のフォームの記述を削除することで、以下のように、全文検索フォームを隠すことができます。 具体的には、以下の部分を修正します。以下の例では、テーマの設定画面で表示・非表示を選択できるようにするため、themeSettingという関数を使用していますが、単純に、idがsearchのdivを削除またはコメントアウトすることで、検索フォームが非表示となります。 https://github.com/omeka-j/default/blob/develop/view/layout/layout.phtml#L73-L77 (発展)対策2:全文検索を「任意のプロパティに対する部分一致検索」に置き換える この方法では、以下のリンク先に示すように、テーマ側でsearch-form.phtmlを用意して、デフォルトの全文検索を行う記述を、「任意のプロパティに対する部分一致検索」を行うように書き換えます。 https://github.com/omeka-j/default/blob/develop/view/common/search-form.phtml 上記の2つの対応は、根本的な解決にはつながりませんが、応急処置の策として参考になりましたら幸いです。 Mroonga searchモジュールのインストール この問題を根本的に解決する方法として、以下のMroonga searchモジュールをインストールする方法が挙げられます。 github.com 上記のREADME.mdに記載があると通り、まずMySQLまたはMariaDBのMroongaプラグインを有効化します。 mroonga.org その上で、Omeka SのMroonga searchモジュールを通常の方法でインストールすることで、本記事で課題としているCJK対応の全文検索が可能になります。この場合、本モジュールを有効化するのみで、テーマの修正等は必要ありません!有益なモジュールを公開してくださっている開発者の方に深く感謝いたします。 一方、上記のリポジトリにも記載がある通り、以下の点に注意が必要です。 We have not heavily tested the Mroonga engine with large-sized data yet. なお、私も大規模なデータに対する動作検証はできていませんが、私の環境において、本モジュールが正しく動作することを確認済みです。 本モジュールの利用にあたっては、READMEファイルの内容を十分に検討した上でご利用いただくことを推奨します。 まとめ 以上、Omeka Sの日本語による全文検索の注意点とその対応方法をまとめました。今後、標準機能での対応が望まれますが、2022年3月時点での対応策として、本記事が参考になりましたら幸いです。

March 7, 2022 · 1 min · Nakamura

How to Use the Omeka S XML Viewer Module

※ 本モジュールの使用にあたっては、一部発展的な手続きが必要となります。Omeka Sの基本的な使用を検討されている方は、その点ご注意ください。 概要 Omeka SでXMLファイルの表示を可能とするXML Viewerモジュールの使い方について説明します。TEIで作成したXMLファイルの表示といった用途などに利用できます。 gitlab.com インストール 本モジュールについては、2022年3月4日時点において、GitLabのみで公開されており、GitHubでは公開されていません。 また、リリース版のzipファイルが提供されていないため、ソースコードをダウンロードする必要があります。 具体的には、以下のURLから、ソースコード版のzipファイルをダウンロードします。 https://gitlab.com/Daniel-KM/Omeka-S-module-XmlViewer/-/archive/master/Omeka-S-module-XmlViewer-master.zip これを展開すると、リリース版のXmlViewerというフォルダとは異なり、Omeka-S-module-XmlViewerというフォルダが作成されます。なので、本フォルダ名をXmlViewerに変更する必要があります。 その後は、他のモジュールと同様、Omeka Sの管理画面からインストールを行います。 XMLファイルのアップロード XMLファイルのアップロードは、一般的なメディアの登録方法と同じです。アイテムを新規作成し、そのアイテムに紐づけるメディアとして、XMLファイルを登録します。登録方法は、画像などと同様、ローカルからアップロードする他、URLを参照して登録することもできます。 注意点として、Omeka Sのデフォルト設定では、xmlファイルのアップロードは許可されておらず、以下のようなエラーが発生します。 そのため、以下の設定画面の「セキュリティ」の項目において、「許可されるメディアタイプ」にtext/xml、許可されるファイル拡張子にxmlを追記して保存します。 もしくは、「ファイル検証を無効にする」を有効化します。 上記の設定により、以下のようにxmlファイルが登録されます。この時、下図のMIMEタイプを確認しておいてください。 なお、xmlファイルに <?[xml](http://d.hatena.ne.jp/keyword/xml) version="1.0" encoding="[UTF-8](http://d.hatena.ne.jp/keyword/UTF-8)"?> の記述がない場合、以下のように、MIMEタイプが text/html に設定されてしまう場合があります。この時、後述するxslによる変換がうまくいかない場合があるため、xmlファイルの修正を推奨します。 XML Viewerモジュールの設定 次に、以下のように、サイトの設定画面に移動します。 その中に「XML Viewer」という項目があります。ここに、先ほど確認したMIMEタイプがない場合、下図のように追記します。「xsl/xml-html.xslt」は、本モジュールでデフォルトで提供されているxsltファイルです。 具体的なxsltファイルは、以下からご確認いただけます。 https://gitlab.com/Daniel-KM/Omeka-S-module-XmlViewer/-/blob/master/asset/xsl/xml-html.xslt その結果、サイト内のメディアの詳細ページにおいて、以下のように変換されたHTMLの内容が表示されます。 具体的には、登録したXMLファイルに対して、以下のように、xsltファイルへのリンクが挿入されていることが確認できます。 まとめ 上述したように、本モジュールによって提供されるxsltファイルに基づき、Omeka Sに登録したXMLファイルの内容を表示できることを確認しました。 用途に応じたxsltファイルを作成することで、表示内容のカスタマイズが可能です。 例えば、以下のようなxsltファイルを用意し、/modules/XmlViewer/asset/xsl に配置します。 https://gist.github.com/nakamura196/a74202c691e9957938e89a36d4da319a そして、上述した設定画面で当該ファイルを指定することにより、以下のように表示スタイルを変更することができます。 少し発展的な内容を含むモジュールですが、Omeka SとTEI/XMLの連携をお考えの方などの参考になれば幸いです。

March 4, 2022 · 1 min · Nakamura

How to Use the Omeka S Mirador Module

概要 Omeka SにMiradorビューアを追加するモジュールについて紹介します。 GitHubリポジトリは以下です。 github.com Mirador2と3の両方が利用可能です。また、各種プラグインを設定画面から追加することができます。この記事では、画像の回転や左右反転を可能にする「Imgae tools」プラグインを追加する方法を紹介します。 本モジュールを利用するには、Omeka SにIIIFサーバ機能を持たせるか、外部のマニフェストファイルを参照する必要があります。前者の導入方法については、別の記事で紹介予定です。 インストール 特に注意点はありません。 使用方法 モジュールのインストール後、以下に示す各サイトの設定画面において、Miradorの設定を行うことができます。 特に、「Mirador plugins for v3」において、プラグインの追加を行うことができます。画像の回転やフリップなどを可能にする「Image tools」プラグイン等を導入可能です。 導入後、以下のように当該プラグインが表示されます。 Omeka SでMirador 3を使用する際の参考になれば幸いです。

March 1, 2022 · 1 min · Nakamura

Summary of Articles About Omeka S

Omeka Sに関する記事をまとめます。(随時更新) Zenn に移行作業中です。最新の記事は、以下をご確認ください。 zenn.dev 利用者向け Omeka Sの導入方法およびモジュールの追加方法 サイト アイテムの新規登録における各サイトへの自動追加の設定について リソース 既存の標準語彙の追加方法 メタデータの言語属性の設定方法 管理 モジュール モジュールのインストール方法 識別子 Clean Urlの使い方 [動画] Clean Urlの使い方 Clean Urlモジュールの不具合と暫定の修正方法 地図 Mappingモジュールの使い方 IIIF関連 IIIFサーバの導入方法 IIIF Serverモジュールにおいて、外部のImage Serverを利用する方法 Omeka S IIIF Serverモジュールを用いたIIIFコレクションの生成 目次を加える(その1:フラットな目次) 目次を加える(その2:階層構造を持つ目次) 目次情報の追加方法の和訳 cors policyの設定方法 [開発] ライセンスプロパティの不具合修正 動的タイル画像生成における画像サイズの上限設定 Miradorの使い方 Omeka Sで利用可能なIIIF対応ビューア [独自開発] IIIF Content Search APIを追加する AWSサーバーレスアプリケーションによるIIIF Image Serverの構築 一括登録 BulkImport CSVファイルを用いたメタデータと画像の一括登録 Bulk ImportによるCSVファイルを用いたメタデータの一括更新 Bulk Importによるリソースクラスの登録方法・設定編集ほか WindowsでBulkImportモジュールを使用する際の注意点 エクスポート OaiPmhRepository:独自語彙の作成 [独自開発] アイテムの詳細画面に各種エクスポートリンクを設置する 検索 Metadata Browse:同じメタデータを持つアイテムを検索する Advanced Search Plus:詳細検索機能を拡張する 日付データに対する範囲検索を可能にする Omeka Sの日本語による全文検索の注意点とMroonga searchモジュール 語彙 Custom Ontology:独自語彙を追加する 動画 TEI/XML XML Viewer:XMLの内容を表示する テーマ Bootstrap 5を用いたOmeka Sテーマ 開発者向け Omeka Sにダミーデータを登録する

March 1, 2022 · 1 min · Nakamura

[Omeka S Module Introduction] How to Use the Mapping Module (Especially Batch Registration via the CSV Import Module)

概要 Omeka Sに地図を追加するMappingモジュールの使い方、特にCSVインポートモジュールを用いた一括登録の方法について説明します。 Omeka S - Mapping モジュールのインストール まず、Mappingモジュールをインストールします。 また、データの一括登録にあたり、CSVインポートモジュールをインストールします。 https://omeka.org/s/modules/CSVImport/ Bulk Importモジュールをインストール済みの場合、当該モジュールを無効化する必要があります。もしくは、以下を参考にパッチの適用等を検討してください。 https://github.com/Daniel-KM/Omeka-S-module-BulkImport#installation データ準備 以下のようなCSVファイルを用意します。 https://github.com/omeka-j/Omeka-S-sampledata/blob/main/mapping.csv 「Resource location」列に緯度経度のデータを入力しています。データの入力方法は何通りかありますが、上記の例では、2つの緯度経度のデータを一つのセルに入力しています。この区切り記号として、今回の例は「|」を利用しています。この記号は、後述の設定画面で選択できます。 また緯度と経度は「/」で区切ります。 データ登録 用意したデータの登録方法について説明します。 まず、画面左側のメニューから「CSVインポート」>「インポート」をクリックし、用意したファイルを選択します。 次の画面において、データのマッピングを行います。「Resource location」列について、プラスボタンから追加オプションを開き、「Resource location」項目から「緯度/経度」を選んでください。 次に、レンチボタンから追加オプションを開き、「多値セパレータを使用する」にチェックを入れてください。一つのセルに一つのデータのみを準備している場合には、本オプションは不要です。 その後、「基本設定」タブに移動して、「多値セパレータ」の値に、「|」を入力します。他の区切り記号を使用している場合には、こちらで変更します。 上記の設定を行ったのち、画面右上の「インポート」ボタンをクリックすることで、以下に示すように、緯度経度の情報を持ったアイテムを登録することができます。 まとめ 本記事では、Mappingモジュールの使用にあたり、CSVインポートモジュールを用いた一括登録の方法について説明しました。 CSVインポートモジュールについては、Bulk Importモジュールと同様に、さまざまなオプションがあります。これらについては、また別の記事でまとめたいと思います。

February 15, 2022 · 1 min · Nakamura

[Omeka S Module Development] Developed a Module to Add Various Export Links to the Item Detail Page

アイテムの詳細画面に各種エクスポートリンクを設置するモジュールを開発しました。 github.com 本モジュールをインストールすることにより、以下に示すようなエクスポートリンクが表示されます。 具体的には、JSON-LD、テキストデータ、引用、コンテンツ共有、に関するエクスポートボタンを設置します。以下の設定画面から、それぞれ表示/非表示を設定することができます。 本モジュールの出力結果について、Omeka Sのテーマを修正することで、例えば以下に示すようなボタンと機能を実現することができます。(Omeka Sのテーマの修正方法については、別の記事で紹介できればと思います。) 以下のページで設置例をご確認いただけます。 https://diyhistory.org/nakamura196/s/main/item/3 用途が限定されたモジュールですが、同様のニーズをお持ちの方の参考になれば幸いです。 なお、より汎用的な出力モジュールとして、メタデータをCSVやJSON形式で出力可能なBulk Export、引用に関するモジュールであるBibliography、およびコンテンツ共有に関するSharing、などがあります。これらの使用方法について、改めて記事にできればと思います。

February 14, 2022 · 1 min · Nakamura

[Omeka S Module Development] Developed a Module to Add IIIF Content Search API URIs to IIIF Manifests

概要 IIIFマニフェストにIIIF Content Search APIのURIを追加するOmeka Sのモジュールを開発しました。 github.com IIIF Content Search APIを使用することにより、以下のように、Universal Viewer等でテキスト検索が可能になります。 本モジュールは、Omeka Sとは独立して提供されるIIIF Content Search APIを利用します。そのため、本モジュールを使用するには、このAPIの提供環境を別途用意する必要があります。この環境構築のコストに課題が残りますが、すでにIIIF Content Search APIの提供環境をお持ちで、かつOmeka Sでの利用を検討している方の参考になれば幸いです。 (IIIF Content Search APIの提供環境の構築については、改めて記事にできればと思います。) 背景 Omeka SのIIIF Serverモジュールは、Omeka Sに登録されたメタデータから、IIIFマニフェストファイルなどを生成するモジュールです。Omekaの様々なモジュールを開発されているDaniel-KM氏が主に開発されています。 omeka.org 本IIIF Serverモジュールの使い方については、以下で紹介しています。 youtu.be 本モジュールは、IIIF Presentation API 3.0への対応やIIIFコレクションの出力、目次の生成など、IIIF Presentation APIに関する様々な機能を提供していますが、本記事執筆時点(2022-02-11)において、IIIF Content Search APIに関する機能は提供していません。 なお、今回開発したモジュールとは別に、以下のIIIF Content Search API関連モジュールがあります。こちらはOmeka Sの内部でIIIF Content Search APIの提供環境を構築する大変便利なモジュールですが、PDFファイルに対するOCRテキストの利用が前提となっており、用途が限定的です。 github.com 機能紹介 本モジュールが提供する機能は単純で、以下に示すように、IIIF Content Search APIのURIを格納したプロパティを指定する設定機能を提供します。ここで設定したプロパティにURI形式の値を持つアイテムについて、IIIFマニフェストにIIIF Content Search APIのサービス情報を追記します。 生成されるIIIFマニフェストの例を以下に示します。(Omeka SのIIIF Serverモジュールによって生成された)IIIFマニフェスト内にIIIF Content Search APIのサービス情報が含まれていることを確認できます。 https://iiif.dl.itc.u-tokyo.ac.jp/repo/iiif/d507a810-cff7-4168-bc10-70a32a55920f/manifest ...

February 11, 2022 · 1 min · Nakamura

[Omeka S Module Info] Bug in the Clean Url Module and Temporary Fix

◆ 不具合 Omeka S3 に Clean Url モジュールをインストールし、初期設定を行なったにもかかわらず、サイトのアイテム詳細ページなどにおいて、設定したアイテムの識別子が表示されない(Omekaが自動付与するIDがそのまま表示されてしまう)不具合を確認しました。 ◆ 確認したバージョン OmekaS 3.1.1 CleanUrl 3.17.3.3 ◆ 暫定の修正方法 以下の設定画面において、まず「Skip “s/site-slug/” for default site」にチェックを入れて、画面右上の「Submit」を押します。次に、再度「Skip “s/site-slug/” for default site」のチェックを外して、画面右上の「Submit」を押します。この操作により、「Property for identifier」に設定したプロパティのIDがアイテムの識別子として表示されるようになりました。 ◆ まとめ 同様の不具合でお困りの方の参考になれば幸いです。 なお本件について、GitHubのIssueを作成済です。 https://github.com/Daniel-KM/Omeka-S-module-CleanUrl/issues/9

February 1, 2022 · 1 min · Nakamura

[Omeka S Module Introduction] IIIF-Compatible Viewers Available for Omeka S

概要 2021年9月15日時点でOmeka Sのモジュールとして提供されているIIIF対応ビューアをまとめます。 ビューア一覧 Universal Viewer github.com Mirador github.com Diva IIIF Viewer github.com まとめ 以下のページで導入イメージをご確認いただけます。Omeka Sを用いたIIIF画像配信の参考になりましたら幸いです。 diyhistory.org

September 15, 2021 · 1 min · Nakamura

[Feature Development] Added Table of Contents Functionality to the Omeka S IIIF Module (Part 2: Registering Hierarchical Tables of Contents)

概要 前回の記事では、Omeka SのIIIF Serverモジュールを用いて、フラットな目次を追加する方法について説明しました。 nakamura196.hatenablog.com 今回は、階層構造を持つ目次を追加する方法について説明します。 公式のマニュアルはこちらにありますが、このマニュアルを和訳した記事も作成しました。不完全な日本語ですが、参考になりましたら幸いです。 nakamura196.hatenablog.com 詳細 前回は、以下の情報を入力することで、フラットな目次を作成しました。 cover,表紙,1 jyo,序,4-6 legend,凡例,6-15 catalogue,總目錄,16-18 toc,目次,19-20 ch1,きりつほ,20-35 ch2,はゝき木,35 各行は、以下の意味を持ちます。 {id}, {label}, {canvasIndexOrRangeId1};{canvasIndexOrRangeId2};...; {canvasIndexOrRangeIdN} ここでは、目次(id: toc)について、その内容を構造化します。 具体的には、まず、19コマ目を目次の内容(id: toc0)として、目次(id: toc)に含まれる形とします。 また、「きりつぼ」(id: ch1)と「はゝき木」(id: ch2)についても、目次(id: toc)に含まれるように修正します。 具体的には、以下のデータを用意します。上記のマニュアルにも記載がありますが、インデントは、階層構造をみやすくするために用いており、モジュール内の処理では無視されます。 cover,表紙,1 jyo,序,4-6 legend,凡例,6-15 catalogue,總目錄,16-18 toc,目次,toc1;ch1;ch2 toc1,内容,19-20 ch1,きりつほ,20-35 ch2,はゝき木,35 このデータをIIIF Serverモジュールの「Property for structures」として設定したプロパティ(今回の例では、dcterms:tableOfContents「Dublin Core: 目次」)の値として登録することで、下図のように、階層構造を持つ目次を実現することができます。 https://diyhistory.org/nakamura196/s/main/item/15 まとめ 今回は、Omeka SのIIIF Serverモジュールを用いて、階層構造を持つ目次を追加する方法について説明しました。今回は単純な階層構造を作成する例を示しましたが、以下のマニュアルページに記載があるような、複雑な階層構造も作成することができます。 https://github.com/Daniel-KM/Omeka-S-module-IiifServer#input-format-of-the-property-for-structures-table-of-contents 本モジュールを用いた、IIIFマニフェストへの目次情報を追加にあたり、本記事が参考になれば幸いです。

August 13, 2021 · 1 min · Nakamura

[Feature Development] Added Table of Contents Functionality to the Omeka S IIIF Module (Part 1: Registering Flat Tables of Contents)

概要 Omeka SのIIIF Serverモジュールについて、IIIFマニフェストに目次を加える機能を追加開発しました。以下の、ver 3.6.5.3から本機能が利用可能です。 github.com 本記事では、本モジュールを用いて、目次を追加する方法について説明します。なお、動画でも操作方法を紹介しています。参考なれば幸いです。 youtu.be 詳細 設定 公式の説明は以下にあります。 https://github.com/Daniel-KM/Omeka-S-module-IiifServer#config-options-for-manifest まず、本モジュールの設定画面において、「Property for structures」に指定するプロパティを選択します。ここで選択したプロパティの値に、目次の情報を入力することで、IIIFマニフェストに目次情報を反映させることができます。ここでは、例えば、「Dublin Core: 目次」を選択します。 データ登録 今回は、国立国会図書館で公開されている『校異源氏物語』の一部を例とします。 ここでは、アイテムの登録とBulk Importを用いたIIIF画像の一括登録の方法についても紹介します。Bulk Importの使い方については、以下の記事を参考にしてください。 nakamura196.hatenablog.com アイテムの登録 まず、アイテムを登録します。画面左部のメニューから「アイテム」を選択し、アイテム画面の画面右上部の「新規アイテムの追加」をクリックします。そして、ここでは最低限の情報として、タイトルに「校異源氏物語」、識別子(dcterms:identifier)に「kouigenjimonogatari」を与えます。 画像(メディア)の登録 次に、画像の登録を行います。今回は、IIIF画像を登録する例を紹介します。具体的には、国立国会図書館で配信されているIIIF画像の一部(はじめの35コマ)を登録します。 一括登録用のデータとして、以下のようなCSVファイルを用意します。ポイントとして、列「iiif」にIIIF画像サービスのURL、列「item」に先に入力した「kouigenjimonogatari」を与えます。 https://github.com/omeka-j/Omeka-S-module-BulkImport-Sample-Data/blob/main/media_iiif.csv データの一括登録は、Bulk Importを用います。画面左のメニューから「Bulk Import」をクリックし、「CSV - Medias」をクリックします。そして先に作成したCSVファイルをアップロードして、「Continue」を押します。次の設定画面「Start import」はそのままで、「Continue」>「Start import」を選択して、画像を一括登録します。 アイテムの一覧画面から、先ほど登録した「校異源氏物語」を確認すると、35件の画像が登録されていることを確認できます。 目次の登録 この35件の画像について、目次情報を付与します。ここでは、1コマ目に表紙(id: cover)、4-6コマ目に序(id: jyo)、6-15コマ目に凡例(id: legend)、16-18コマ目に総目録(id: catelogue)、19-20コマ目に目次(id: toc)、20-35コマ目に「きりつぼ」(id: ch1)、35コマ目に「はゝき木」(id: ch2)を与えます。 具体的には、下図のように、プロパティ「目次」を追加して、各行が以下のフォーマットに基づく情報を入力します。 {id}, {label}, {canvasIndexOrRangeId1};{canvasIndexOrRangeId2};...; {canvasIndexOrRangeIdN} または、 {id}, {label}, {canvasIndex1}-{canvasIndexN} 具体的には、以下を入力します。 cover,表紙,1 jyo,序,4-6 legend,凡例,6-15 catalogue,總目錄,16-18 toc,目次,19-20 ch1,きりつほ,20-35 ch2,はゝき木,35 この後、アイテムの公開ページに遷移し、Universal Viewerを確認すると、正しく目次が設定されていることを確認できます。 ...

August 13, 2021 · 1 min · Nakamura

[Feature Development] Bug Fix for License Property in the Omeka S IIIF Server Module

Omeka SのIIIF Serverモジュールについて、IIIF Presentation APIのバージョン2を使用する際の、ライセンスプロパティにおける不具合を修正しました。 具体的には、以下のIIIF Serverモジュールのライセンスに関する設定において、設定内容がIIIFマニフェストに反映されない不具合を修正しました。 以下の、ver 3.6.5.3から本修正が反映されたモジュールを利用可能です。 github.com 本不具合でお困りの方の参考になれば幸いです。 なお、以下がMerge requestです。 gitlab.com

August 13, 2021 · 1 min · Nakamura

[Translation] How to Add Table of Contents Information in the Omeka S IIIF Server Module

Omeka S IIIF Serverモジュールの目次情報の追加方法に関するマニュアルの和訳です。公式のマニュアルは以下です。 github.com 本モジュールを用いて、IIIFマニフェストに目次情報を追加する際の参考になりましたら幸いです。 Config options for manifest Input format of the property for structures (table of contents) 構造(目次)のプロパティの入力形式 デフォルトの構造は、iiifメディアの単純なシーケンシャルリストです。 目次を使用して複雑なドキュメントの構造を構築するには、特定のプロパティを使用して、必要なjsonを値に入力するか、次の形式のリテラル値を入力します。各行は構造(目次)の一部です。 {id}, {label}, {canvasIndexOrRangeId1}; {canvasIndexOrRangeId2}; ...; {canvasIndexOrRangeIdN} 例: cover, Front Cover, 1 r1, Introduction, 2; 3; 4; 5 backCover, Back Cover, 6 Range ID(行の最初の部分)は、URIの作成に使用されるRangeの名前です。他のインデックスとの衝突を避けるために、数値であってはなりません。スペース、発音区別符号、またはその他の特殊文字を含まない単純な英数字の名前である必要があります(すべてのコーディング規約において非常に安定しています)。「/」を含めることはできません。とにかく、この名前は最後のuriでURLエンコードされます。 さらに、Range IDはすべてのアイテムで一意である必要があります。 入力を省略した場合、行番号が使用されます。その場合、特定のRange名がないことを示すために最初のコンマを残してください。たとえば上記でr1が指定されていない場合、Range IDはr2になります。Rangeを指すrと2行目を指す2から構成されます。ただし、新しい行が挿入されるとURIが変更されるため、この方法はお勧めしません。 各行の2番目の部分は、章などのRangeのラベルです。空の場合、IIIFマニフェスト内容には記述されますが、IIIF対応ビューアなどでは表示されません。 各行の最後の部分は、現在の範囲に含まれる上位のCanvasまたは上位のRangeのリストであるため、基本的には画像とサブセクションのリストです。 ほとんどの場合、Canvasインデックスはメディアの位置です。iiifで使用されているメディアのみが列挙され、アイテムに添付されているpdf、xmlなどの特定のメディアは列挙されないため、添付メディアのリストのOmeka内部位置とは異なる可能性がある点に注意してください。他のインデックスは、Range ID(各行の最初の部分)のリストにある場合、Rangeインデックスとして管理されます。そうでない場合は、Canvasの英数字の名前になります。 最初の行の最初のRange IDは、ツリーのルートです。ルートは1つだけです。複数のルートがある場合(以下を参照)、すべてのルートをブランチとしてメイン範囲が追加されます。 したがって、このリテラル値から複雑な階層的な目次を作成することが可能です。以下は、不完全で誤った例を使用します。 toc, Table of Contents, cover; intro; r1; r2; backcover cover, Front cover, cover intro, Introduction, 2-5 r1, First chapter, 6; r1-1; r1-2; 12 r1-1, First section, r1-1-1; r1-1-2; illustration1; illus2 r1-1-1, First sub-section, 8-9 r1-1-2, Second sub-section, 9-10 r2, Second chapter, 13 backcover, Back cover, "backcover" illustration1, First illustration non paginated, illus1 illustration3, Third illustration non paginated, illus3 iiif v2のjson出力例: ...

August 11, 2021 · 4 min · Nakamura

[Omeka S Tips] Notes on Using the BulkImport Module on Windows

概要 以下の記事で、CSVファイルを用いたメタデータと画像の一括登録を行うためのモジュール「BulkImport」について紹介しました。 nakamura196.hatenablog.com こちらの記事では、CSVファイルを作成して登録する方法を紹介していますが、macOSでは問題ないものの、WindowsでCSVファイルを作成し、Omeka Sに登録した際、以下のエラーが生じる報告がありました。 File “media_template.csv” has media type “application/vnd.ms-excel”, not “text/csv”. これに対して、ODSファイルで登録することにより、本エラーが解消されました。 以下、本件についての詳細について説明します。 不具合1 CSVファイルでは上記のエラーが発生しましたが、TSVファイルでも以下のエラーが生じました。 File “media_template.tsv” has media type “application/octet-stream”, not “text/tab-separated-values”. 解決策1 この事象に対して、GitHubに以下のIssueがありました。フランス語なので、各種翻訳ツールを利用しながらご確認ください。 github.com 上記では、ODS(OpenDocument Spreadsheet)をお勧めします、と書かれています。なので、ODSファイルで登録してみたところ、エラーが表示されなくなりました。 なお、ODSファイルは、Microsoft ExcelやGoogle スプレッドシートの保存・出力形式の一つとして選択できます。 Bulk ImportモジュールでのODSファイルを用いた登録については、以下の図で示すオプションを選んでください。その後の設定などについては、CSVファイルを用いる場合と同様です。 不具合2 ODSファイルで登録することにより、エラーメッセージは表示されなくなりましたが、WindowsのMicrosoft ExcelでODSファイルを作成した際、一部の(特に)日本語の文字列が抜け落ちてしまう事象が確認されました。 詳細な原因はわかっておらず、またすべてのWindows端末で生じる不具合かは確認できていませんが、Omeka Sを使用している複数のプロジェクトで同様の事象が報告されました。 解決策2 この課題に対する暫定的な対応策として、Google スプレッドシートを用いてデータを作成し、ODSファイル形式でダウンロードしたファイルを使用することにより、上記の一部文字列が抜け落ちてしまう不具合が解消されました。 最善の解決策かはわかりませんが、同様の事象でお困りの方がいらっしゃれば、この方法をお試しいただけますと幸いです。 まとめ 本記事では、WindowsでBulkImportモジュールを使用する際の不具合と暫定的な解決策について紹介しました。 今回ご紹介した方法で、「うまくいった」「うまくいかなかった」ということがあれば、情報共有いただけますと幸いです。 また、他によい方法などがありましたら、お知らせいただけますと幸いです。

August 7, 2021 · 1 min · Nakamura

[Omeka S Module Introduction] Numeric Data Types: Enabling Range Search for Date Data, and More

概要 特定のプロパティを数値データとして設定できるようにするモジュール「Numeric Data Types」について説明します。プロパティは、日付と時刻(ISO)、または数値として指定できます。 特に、日付データに対する範囲検索を実現できる点などがポイントです。 github.com 公式のマニュアルは以下です。 omeka.org 上記のマニュアルを参考に、本モジュールの使い方を説明します。 リソーステンプレートの作成または編集 本モジュールを利用するには、リソーステンプレートを作成または編集して、特定のプロパティを数値データ型として設定する必要があります。リソーステンプレートの使い方は、以下に記載がありますが、いずれ紹介記事を作成したいと思います。 omeka.org 今回は、動画に関するリソーステンプレートとして「動画」を作成してみます。以下に示すように、「動画」というリソーステンプレートを作成し、その編集画面を開きます。 本モジュールでは、以下のData typesが追加されます。 Timestamp(xsd:date) 整数(o-module-numeric-xsd:integer) 期間(xsd:duration) 間隔 そのため、リソーステンプレートにおいて、これらの型を持つプロパティを作成します。具体的には、以下のように設定しました。 公開日(ex:date):Timestamp バージョン(ex:version):整数 再生時間(ex:duraion):期間 準備時間(ex:prepare):間隔 なお、独自の語彙「ex」の作成については、以下の記事を参考にしてください。 nakamura196.hatenablog.com プロパティのData types(型)の設定方法について説明します。リソーステンプレートの編集画面を開き、型を設定したいプロパティの「鉛筆」アイコンをクリックします。画面右部に表示されるパネルの「その他のオプション」 > 「Data types」において、「数字」 > 「Timestamp」を選択します。 結果として、今回は以下のリソーステンプレートを使用します。 ここで設定した各プロパティについて、入力フォーム、保存されるデータを以下で説明します。 データ登録 今回は、下図のようなデータを作成します。2021年3月11日に公開された動画について、再生時間、バージョン、準備期間、などを入力します。 アイテムの登録または編集画面において、リソーステンプレートの選択フォームで、先に作成した「動画」を選択します。 それにより、先に設定した各プロパティについて、Data types(型)に応じた入力フォームが表示されます。 例えば、Timestampを設定したプロパティ「公開日」は、下図のように日付(および時刻)の入力に特化したフォームが表示されます。 検索 上記の設定により、管理者画面および公開サイトに検索フォームが追加されます。 例えば、下図のように、プロパティ「公開日」について、「2021-03」以降の値を検索する、といった使い方が可能となります。 その他 API REST APIを通じて、登録したデータ(JSON-LD)を以下で確認できます。下図のように、型がRDFによっても記述されていること(xsd:date, xsd:duration, など)を確認できます。 https://diyhistory.org/nakamura196/api/items/13 モジュール「Bulk Import」を用いた一括登録 別のモジュール「Bulk Import」を用いることで、ここで説明した型を持つデータの一括登録を行うことができます。「Bulk Import」の使い方については、以下の記事を参考にしてください。 nakamura196.hatenablog.com 具体的には、以下に示すようなCSVファイルを用意します。ポイントとして、ヘッダー行に「^^numeric:timestamp」を与えることで、Data types(型)を指定した上での一括登録が可能です。 https://github.com/omeka-j/Omeka-S-module-BulkImport-Sample-Data/blob/main/item_with_datatype.csv まとめ 今回は、特定のプロパティを数値データとして設定できるようにするモジュール「Numeric Data Types」について説明しました。 ...

August 1, 2021 · 1 min · Nakamura

[Omeka S Module Introduction] Metadata Browse: Adding Links to Search for Items with the Same Metadata

概要 今回は、Omeka Sのアイテム詳細画面に対して、同じメタデータを持つアイテムの検索を可能とするリンクを付与するモジュール「Metadata Browse」について紹介します。 omeka.org 例えば、以下のようなことが可能となります。アイテム詳細画面の「キーワード/Subject」の値に「この値の全てのアイテム一覧を表示」リンクが付与され、そのリンクをクリックすると、当該メタデータを持つ検索結果のページに遷移します。 設定 本モジュールのインストール後、またはモジュールの設定画面から、以下の設定画面が表示されます。 この設定画面については、基本的にはそのままで問題ありません。 本モジュールを初めて使用する場合にはわかりにくい説明になりますが、「管理者側でグローバル設定を使用する」については、こちらにチェックを入れない場合、管理画面では、個々のサイトで設定された検索可能なプロパティ(の集合)が使用されます。一方、チェックを入れると、本設定画面でしていたプロパティが検索プロパティとなります。プロパティの指定方法としては、画面右部のパネルから、必要なものを選択します。 Direct Linksは、チェックを入れない場合、検索可能として設定したプロパティの値の下に「この値の全てのアイテム一覧を表示」というリンクが表示されますが、チェックを入れた場合、値に直接リンクが付与されます。以下は、チェックを入れた場合の例です。 図の中にも記述していますが、Direct Linksを有効にした場合、URIとして設定した値と、Metdata Browseで検索可能にした項目の区別がつきにくいため、基本的にはDirect Linksを無効にすることをおすすめします。 サイトにおける設定 サイト毎に検索可能なプロパティ(メタデータ)を指定できます。「サイト一覧」から設定したいサイトを選び、画面左部のメニューから「メタデータを見る(Browse)」を選びます。 上記の画面において、画面右部のパネルから、必要なプロパティ(メタデータ)を選択します。 まとめ 本モジュールにより、以下のアイテム詳細ページのように、同じメタデータを持つアイテムの検索を可能とするリンクを付与することができます。 diyhistory.org 本モジュールは、東京大学工学・情報理工学図書館の工学史料キュレーションデータベースで使用されています。 curation.library.t.u-tokyo.ac.jp Omeka Sで構築するサイトの利便性の向上につながれば幸いです。

July 29, 2021 · 1 min · Nakamura

[Omeka S Module Customization] OaiPmhRepository: Creating Custom Vocabularies

ここでは、Omeka SのOaiPmhRepositoryのカスタマイズ例として、DC-NDL(Simple)にマッピングしてメタデータを公開する方法について説明します。 以下のGitLabリポジトリを適宜参考にしてください。 gitlab.com ※ 別途、OaiPmhRepositoryの紹介記事を執筆予定です。 ファイルの修正 以下のコミットを参考にしてください。 https://gitlab.com/nakamura196/Omeka-S-module-OaiPmhRepository/-/commit/702f1c693a62ae21ef03da495e3b4efd6060c561#d57ba0f1ebb8e2008538c451770f3fe535e1c2ca 具体的には、以下のファイルに対する修正を行います。 OaiPmhRepository/config/module.config.php 追加する語彙の情報を追加します。 OaiPmhRepository/src/OaiPmh/Metadata/DCNDLSimple.php 本ファイルにおいて、Omeka Sのプロパティと出力する項目とのマッピングを行います。上記のコミットの例は、あくまで当該リポジトリにおけるマッピングルールです。Omeka Sの導入機関におけるメタデータの記述ルールに基づき、適宜変更する必要があります。 結果 以下のようなOAI-PMHレコードを取得することができます。 ListRecords https://diyhistory.org/nakamura196/oai?verb=ListRecords&metadataPrefix=dcndl_simple GetRecord https://diyhistory.org/nakamura196/oai?verb=GetRecord&metadataPrefix=dcndl_simple&identifier=oai:diyhistory.org:3

July 25, 2021 · 1 min · Nakamura