ホーム 記事一覧 ブック DH週間トピックス 検索 このサイトについて
English
Omeka Sで独自の検索ページを作成する

Omeka Sで独自の検索ページを作成する

概要 Omeka Sで以下のような独自の検索ページを作成する方法について紹介します。 背景 Omeka Sでの検索ページの作成にあたり、詳細検索画面で絞り込み項目を限定する方法を紹介しました。 一方、概要で紹介したように、指定した項目だけを列挙した検索画面を作成したい場合もあります。このような検索ページの作成にあたり、「Advanced Search」モジュールを使うことができます。 https://omeka.org/s/modules/AdvancedSearch/ 以下のページで使い方を説明しています。以下ではApache Solrとの連携を行っていますが、Referenceモジュールなどと組み合わせて、Omeka S単体で使用することもできます。 ただし、「Advanced Search」モジュールは機能が豊富なゆえに、使いこなすのが難しい面があります。そこで、今回は簡単に上記のようなカスタム検索ページを作成する方法について紹介します。 作成方法 具体的には、検索用の独自ページを作成します。 以下のように、特定のサイトで、ページを作成します。 「HTML」ブロックを追加します。 「ソース」ボタンをクリックして、以下のHTMLをコピペします。 <div id="dynamic-fields"></div> <button id="submit" class="btn btn-primary">検索</button> <script> const params = [ { label: "キーワード検索", type: "in", placeholder: "すべてのフィールドに対して検索します。", help: "部分一致", }, { label: "タイトル", property: 1, type: "in", help: "部分一致" }, { label: "資料番号", property: 10, type: "eq", help: "完全一致" }, { label: "主題", property: 3, type: "in", help: "部分一致" }, ]; // 以下はそのまま document.addEventListener("DOMContentLoaded", () => { initializeSearchForm(); setupFormSubmission(); }); function initializeSearchForm() { const container = document.getElementById("dynamic-fields"); params.forEach((param, index) => { container.appendChild(createFormGroup(param, index)); }); } function createFormGroup(param, index) { const formGroup = document.createElement("div"); formGroup.className = "form-group mb-4"; formGroup.appendChild(createLabel(param.label)); formGroup.appendChild( createInput( `property[${index}][text]`, "form-control", param.placeholder ) ); formGroup.appendChild(createHelpText(param.help)); formGroup.appendChild( createHiddenInput(`property[${index}][type]`, param.type) ); if (param.property) { formGroup.appendChild( createHiddenInput(`property[${index}][property][]`, param.property) ); } formGroup.appendChild( createHiddenInput(`property[${index}][joiner]`, "and") ); return formGroup; } function createLabel(text) { const label = document.createElement("label"); label.className = "mb-1"; label.textContent = text; return label; } function createInput(name, className, placeholder) { const input = document.createElement("input"); input.type = "text"; input.name = name; input.className = className; input.placeholder = placeholder || ""; // set value const urlParams = new URLSearchParams(window.location.search); const value = urlParams.get(name); if (value) { input.value = value; } return input; } function createHelpText(text) { const small = document.createElement("small"); small.className = "form-text text-muted"; small.textContent = text; return small; } function createHiddenInput(name, value) { const input = document.createElement("input"); input.type = "hidden"; input.name = name; input.value = value; return input; } function setupFormSubmission() { document.getElementById("submit").addEventListener("click", () => { const form = document.createElement("form"); form.method = "GET"; form.action = "../item"; form.style.display = "none"; Array.from( document.querySelectorAll("#dynamic-fields input") ).forEach((input) => { form.appendChild(input.cloneNode(true)); }); document.body.appendChild(form); form.submit(); }); } </script> 結果、以下のように、ボタンのみが表示されます。 ...

Omeka SのCleanUrlモジュールインストール時の不具合対応

Omeka SのCleanUrlモジュールインストール時の不具合対応

概要 以下の環境で構築したOmeka SにClean Urlモジュールをインストールしようとしたところ、 PHP Version: 8.3.2 Omeka S Version: 4.0.4 Clean Url Version: 3.17.7 以下のメッセージが表示されました。 Deprecated: Creation of dynamic property CleanUrl\Router\Http\CleanRoute::$priority is deprecated in /var/www/html/vendor/laminas/laminas-router/src/SimpleRouteStack.php on line 285 この課題に対して、以下に記載したように、/modules/CleanUrl/src/Router/Http/CleanRoute.phpファイルを一部修正することにより、上記メッセージを非表示にすることができました。 https://github.com/Daniel-KM/Omeka-S-module-CleanUrl/issues/19 .htaccessファイル内のSetEnv APPLICATION_ENV "production"という記述を、SetEnv APPLICATION_ENV "development"に設定していない場合には、そもそも上記メッセージが表示されないかもしれませんが、参考になりましたら幸いです。 補足 Clean Urlモジュールでは、インストール時に、/configフォルダにcleanurl.config.phpというファイルを作成するようです。 https://gitlab.com/Daniel-KM/Omeka-S-module-CleanUrl#installation そのため、configフォルダの権限によっては、以下のようなメッセージが表示され、インストールができないケースがありました。 The file “cleanurl.config.php” in the config directory of Omeka is not writeable. このような場合、いったんconfigフォルダの権限をfilesなどを同じにして、インストールを行い、その後、元に戻す、といったプロセスが必要になるかと思われます。 こちらも参考になりましたら幸いです。

File Sideload: Omeka Sで画像を一括アップロードする

File Sideload: Omeka Sで画像を一括アップロードする

概要 Omeka Sで画像を一括アップロードするためのモジュール「File Sideload」について説明します。 https://omeka.org/s/modules/FileSideload/ 以下で公式のマニュアルが公開されています。 https://omeka.org/s/docs/user-manual/modules/filesideload/ モジュールのインストール 通常の方法でインストールできます。 https://omeka.org/s/docs/user-manual/modules/#installing-modules モジュールの設定 インストール後、以下のような設定画面に遷移します。ここで、一括登録用の画像をアップロードするためのフォルダへのパスを指定します。権限によるかと思いますが、任意のパスを指定することができるかと思います。 画像のアップロード 先に指定したフォルダに画像をアップロードします。これは、Omekaの機能を使用するのではなく、WinSCPやFileZillaなどのツールを使って、Omekaがインストールされているサーバに直接ファイルをアップロードしておきます。 メディアの登録 以下のように、右のメニューから「サイドロードするディレクトリ」を選択し、ディレクトリを選択します。 指定したディレクトリ内のファイルを再帰的に登録したい場合には、「Ingest directory recursively」オプションを有効化します。 まとめ Omeka Sへの画像の一括アップロードにあたり、「Bulk Import」モジュールを用いる方法や、REST APIと各種プログラミング言語を用いる方法、などがありますが、本記事で紹介した「File Sideload」モジュールを使用する方法も参考になりましたら幸いです。

Omeka ClassicとOmeka Sの違い

Omeka ClassicとOmeka Sの違い

Omeka ClassicとOmeka Sの違いについて、ChatGPT4による回答を共有します。参考になりましたら幸いです。 OmekaとOmeka Sは、デジタルコレクションと展示を構築するためのオープンソースのウェブパブリッシングプラットフォームです。どちらも学術機関、図書館、博物館、アーカイブ、教育者、および文化遺産を扱う組織によって広く使用されています。しかし、OmekaとOmeka Sは設計と使用目的において異なる点があります。 Omeka (Classic) 対象 : 個人や小規模プロジェクトに最適です。学校のプロジェクト、個人の研究、小規模なアーカイブコレクションに適しています。 機能 : インストールが簡単で、直感的な管理インターフェイスを提供します。個々のウェブサイトやプロジェクトに焦点を当て、単一のサイトの管理と展示作成に特化しています。 使用シナリオ : 小規模なデジタルコレクションの展示や教育目的のプロジェクトに最適です。プラグインとテーマを使用してカスタマイズが可能ですが、複数のプロジェクトやコレクションの統合管理には向いていません。 Omeka S 対象 : 大学、図書館、博物館など、複数のプロジェクトやコレクションを持つ組織に最適です。 機能 : Omeka Sは、複数のサイトの作成と管理を可能にするよう設計されています。一つのインストールで、異なるプロジェクトやコレクションを跨いだリソースの共有、再利用、および関連付けが可能です。 使用シナリオ : 複数のデジタルコレクションや展示を持ち、それらを統合して管理したい大規模な機関に最適です。API、高度な検索機能、そしてLinked Open Dataのサポートを含む、より高度な機能を提供します。 主な違い 使用目的 : Omeka Classicは小規模なプロジェクトや個人ユーザー向け、Omeka Sは複数のプロジェクトやサイトを持つ組織や機関向けに設計されています。 機能性 : Omeka Sは、複数のサイト管理、Linked Open Dataのサポート、API経由でのデータアクセスなど、より高度な機能を提供します。 拡張性と相互運用性 : Omeka Sは、コレクション間でアイテムを共有し、より広範なデータの統合と相互運用性を目指しています。 選択はプロジェクトの規模、目的、および管理するデータの種類に依存します。小規模なプロジェクトや個人的な使用にはOmeka Classicが、複数のプロジェクトや大規模なデータセットを扱う組織にはOmeka Sが適しています。

Omeka Sの詳細検索画面で絞り込み項目を限定する

Omeka Sの詳細検索画面で絞り込み項目を限定する

概要 Omeka Sで構築したサイトごとの詳細検索画面において、ユーザがプロパティを選択した上で、特定の値などで検索することができます。 この機能について、デフォルトの設定では、Omeka Sに登録されているすべてのプロパティが表示されてしまうため、利用しづらいことがあります。 この課題に対して、以下のように、選択肢として表示するプロパティを限定する方法について紹介します。 本記事は、Omeka Sのversion 4.0.4を対象にしています。 マニュアル 以下に記載があります。 https://omeka.org/s/docs/user-manual/sites/site_settings/#:~:text=Advanced search vocabulary members 最新ではないですが、機械翻訳によって作成した日本語版マニュアルでは、以下に記載があります。 https://nakamura196.github.io/omeka-s-enduser/ja/sites/site_settings/#:~:text=選択できます。-,高度な検索語彙メンバー,-では、プロパティと 方法 以下にアクセスして、設定 タブを選択します。 /admin/site/s/<サイト名> 検索 という見出しを持つ箇所において、Advanced search vocabulary members という項目があります。 このフォームを使って、詳細検索に使用するプロパティを限定することができます。 まとめ Omeka Sのバージョンによって一部操作方法が異なる可能性がありますが、参考になりましたら幸いです。

Omeka Sの一括登録用モジュール: Bulk Importの使い方(2024-02版)

Omeka Sの一括登録用モジュール: Bulk Importの使い方(2024-02版)

概要 Omeka Sのアイテムやメディアの一括登録用モジュールとして、Bulk Importがあります。 https://github.com/Daniel-KM/Omeka-S-module-BulkImport 継続的な更新が行われており、色々と便利になっていたので、備忘録です。 インストール 通常の方法でインストールできます。ただし、Logモジュールを事前にインストールしておく必要があります。 https://github.com/Daniel-KM/Omeka-S-module-Log 使い方 ここでは、CSVファイルを使った登録例を紹介します。 設定 まず、以下にアクセスして、編集アイコンをクリックします。 /admin/bulk/importer “Importer"タブの"Mapper"項目について、“マニュアル/Manual"を選択します。これにより、CSVのカラム名とOmeka Sの項目の手動での対応付けが可能になります。 次に、“Processor"というタブに移動します。ここでの設定はあとから(CSVファイルをアップロード後)でも変更可能ですが、ここでデフォルト値を設定しておくと、間違いや設定漏れがなくなり、効率的かと思います。 設定例として、例えば"Action"を"Revise data of resouces"にします。これにより、部分的な更新(PATCH)が可能になります。具体的には、CSVのカラムにないOmeka Sの項目があった場合、Omeka Sでは当該項目の値が残り、CSVにあるカラムに対応するOmeka Sの項目のみが更新され、比較的安全な更新方法かと思われます。 その他、“Action on unidentified resources"を"Create a new resource"にしておくと、既存のリソースがあれば更新され、ない場合には新規作成される、といった処理になります。この 既存のリソースがあれば を判断する基準として、“Identifier to use for linked resources or update"を設定します。例えば、dcterms:identifierに識別子を与えている場合、その値に基づき、既存リソースの有無がチェックされます。 また、“可視性"を"非公開"にしておくと、新規登録されたリソースは非公開の設定になり、後から個別に公開/非公開を切り替えることができます。 インポート 以下にアクセスして、“CSV - Items"をクリックします。(Mediaなど、他のリソースを登録する場合には、該当するタイプを選択します。) /admin/bulk/bulk-import Step 2/4: Mapper 次の画面でCSVファイルをアップロード後、“Step 2/4: Mapper"画面に遷移します。ここで、CSVファイルとOmeka Sの項目のマッピングを行います。 上記では、visibilityのような予約語が一部使われていますが、これらは以下のファイルで確認できます。 https://github.com/Daniel-KM/Omeka-S-module-BulkImport/blob/master/data/mappings/fields_to_metadata.php 例えば、以下のように設定されており、visibilityまたはpublicは、Omeka Sのo:is_publicにマッピングされる、ということがわかります。 'visibility' => 'o:is_public', 'public' => 'o:is_public', 上記のようなルールに当てはらないカラムについては、手動でOmeka Sの項目とマッピングを行うことができます。 ...

Mirador 3でPresentation API v2のマニフェストが表示できない時の対処例

Mirador 3でPresentation API v2のマニフェストが表示できない時の対処例

概要 以下のようなPresentation API v2のマニフェストファイルをMirador 3にロードした際、表示エラーが生じました。 https://gist.githubusercontent.com/nakamura196/42fb6bca6a9fa137234c334cb313fc58/raw/4188ebccb7406ff5132331a4fecc4ace8bdd7ebc/ng.json 以下、Mirador 3での表示です。 この原因と対処法について調べたので、共有します。 原因 以下のエラーメッセージが表示されていました。IIIF v2を入力しているにもかかわらず、v3と判断されているようでした。 Error: A IIIF v3 localized property value must have an array as the value for a given language. at PropertyValue.ts:126:20 at Array.map (<anonymous>) at t.parse (PropertyValue.ts:123:29) at t.getLabel (ManifestResource.ts:35:28) at canvases.js:162:12 at index.js:67:25 at h (defaultMemoize.js:123:20) at index.js:81:40 at h (defaultMemoize.js:123:20) at Function.mapToProps (OpenSeadragonViewer.js:39:12) これは、以下のように、canvasのlabelがオブジェクトの形で記述されている際に発生するようでした。 canvases": [ { "@id": "https://islamic-architecture.aa-ken.jp/omekas/iiif/2/monument1/canvas/p1", "@type": "sc:Canvas", "label": { "type": "literal", "property_id": 1, "property_label": "Title", "is_public": true, "@value": "0001-01" }, ... } ] なお、上記の記述方法は、Presentation API ValidatorではOKでした。 ...

Omeka SのモジュールIIIF Viewersの更新

Omeka SのモジュールIIIF Viewersの更新

概要 IIIF ViewersはOmeka Sのモジュールの一つです。 https://github.com/omeka-j/Omeka-S-module-IiifViewers 最新版のリリースは以下です。 https://github.com/omeka-j/Omeka-S-module-IiifViewers/releases/latest 今回、いくつかの更新を行いましたので、備忘録です。 Universal Viewerのバージョン更新 Universal Viewerのバージョンをv4.0.25に更新しました。 合わせて、READEME.mdの以下の箇所に、Universal Viewerの更新方法を記載しました。 https://github.com/omeka-j/Omeka-S-module-IiifViewers?tab=readme-ov-file#compilation-of-universal-viewer これは、以下のモジュールの記載を参考にしています。 https://github.com/Daniel-KM/Omeka-S-module-UniversalViewer また、Miradorの更新方法も記載しましたが、既に最新版が導入されていたので、更新は行われていません。 バグ修正 以下に加えて、細かなバグを修正しました。 Module.php 以下のエラーが生じていました。 Deprecated: Creation of dynamic property IiifViewers\Module::$dependencies is deprecated in /var/www/html/modules/IiifViewers/Module.php on line 147 以下のように修正しました。 namespace IiifViewers; use Omeka\Module\AbstractModule; use IiifViewers\Form\ConfigForm; use Laminas\Mvc\Controller\AbstractController; use Laminas\EventManager\Event; use Laminas\EventManager\SharedEventManagerInterface; use Laminas\Mvc\MvcEvent; use Laminas\View\Renderer\PhpRenderer; use Laminas\ServiceManager\ServiceLocatorInterface; use Omeka\Module\Exception\ModuleCannotInstallException; use Omeka\Stdlib\Message; class Module extends AbstractModule { protected $dependencies = []; // Define the property at the beginning // Rest of your code... iiif-viewers.phtml 以下のWarningが生じていたので、いずれも修正しました。 ...

Amazon Lightsail上に立てたOmeka SからAmazon SESでメールを送信する

Amazon Lightsail上に立てたOmeka SからAmazon SESでメールを送信する

概要 Amazon Lightsail上に立てたOmeka Sからメールを送るには、メールの送信設定が必要なようです。今回は、Amazon SESを使用する方法を紹介します。 https://aws.amazon.com/jp/ses/ 以下のフォーラムでのやりとりが参考になりました。 https://forum.omeka.org/t/configuring-sendmail-or-smtp-for-omeka-s-on-amazon-lightsail/19335/1 Amazon SESの設定 以下のサイトなどを参考にして、Amazon SESの設定を行います。 https://qiita.com/Shun_konno/items/f51ae599b68e0d2d36ea Omeka Sの設定 Omeka S の local.config.php ファイルを以下のように編集します。 <?php return [ 'logger' => [ // ログ設定(必要に応じて) ], 'mail' => [ 'transport' => [ 'type' => 'smtp', // SMTP を使用 'options' => [ 'name' => 'ses-smtp-user', // 任意の名前 'host' => 'email-smtp.us-east-1.amazonaws.com', // SES SMTP サーバーエンドポイント 'port' => 587, // SES がサポートするポート(例: 587) 'connection_class' => 'plain', // 認証タイプ 'connection_config' => [ 'username' => 'your-ses-smtp-username', // SES SMTP ユーザー名 'password' => 'your-ses-smtp-password', // SES SMTP パスワード 'ssl' => 'tls', // SSL タイプ('tls' 推奨) 'use_complete_quit' => true, ], ], ], ], // その他の設定... ]; host には、使用している AWS リージョンに応じた Amazon SES SMTP サーバーのエンドポイントを指定してください。例では us-east-1 リージョンのエンドポイントを使用していますが、必要に応じて変更してください。 username と password は、Amazon SES で生成した SMTP クレデンシャルを使用してください。 まとめ Amazon Lightsailを用いたOmeka Sの利用にあたり、参考になりましたら幸いです。 ...

【Omeka S モジュール紹介】BulkExport:アイテムの詳細画面にエクスポート機能を追加する

【Omeka S モジュール紹介】BulkExport:アイテムの詳細画面にエクスポート機能を追加する

概要 BulkExportモジュールについて、以下の記事で、データを一括エクスポートする方法を紹介しました。 本モジュールではアイテムの詳細画面にエクスポートボタンを表示する機能も提供されています。この機能の使い方について紹介します。 使い方 インストールの方法は一般的なモジュールの方法と同様です。上記の記事でも簡単に説明しています。 モジュールを有効化すると、以下のように、アイテムの詳細画面に各種フォーマットでのエクスポートリンクが表示されます。 表示する項目は、サイトごとの設定画面で変更できます。設定画面には以下のようにアクセスします。 設定画面で下のほうにスクロールすると、Bulk Exportに関する設定画面が表示され、Formatters to display in resource pagesなどの項目で設定を変更することができます。 エクスポートリンクの見た目を変更する ここではエクスポートリンクの見た目を変更する方法について説明します。本来は新たなテーマを作成して、本モジュール用のファイルを作成すべきですが、今回はdefaultのテーマを使用します。 defaultのテーマは、以下のような場所にあります。 {Omeka Sのインストールディレクトリ}/themes/default まず、このdefaultテーマの中に、BulkExportモジュールのファイルのコピーします。例えば以下です。 cd {Omeka Sのインストールディレクトリ} mkdir themes/default/view/common cp modules/BulkExport/view/common/bulk-export.phtml themes/default/view/common バージョンによって内容は異なるかと思いますが、bulk-export.phtmlは以下のような内容になっています。 // Fake or invisible ids or no exporters. if (!count($urls)) return; $plugins = $this->getHelperPluginManager(); $url = $plugins->get('url'); $escape = $plugins->get('escapeHtml'); $assetUrl = $plugins->get('assetUrl'); $translate = $plugins->get('translate'); $escapeAttr = $plugins->get('escapeHtmlAttr'); $route = $this->status()->isAdminRequest() ? 'admin/resource-output' : 'site/resource-output'; $this->headLink()->appendStylesheet($assetUrl('css/bulk-export.css', 'BulkExport')); ?> <div class="bulk-export <?= $divclass ?>"> <?php if ($heading): ?> <h4><?= $escape($heading) ?></h4> <?php endif; ?> <ul class="exporters"> <?php foreach ($exporters as $format => $label): $labelFormat = in_array($format, ['ods', 'xlsx', 'xls']) ? sprintf($translate('Download as spreadsheet %s'), $label) : (in_array($format, ['bib.txt', 'bib.odt']) ? $translate('Download as text') : sprintf($translate('Download as %s'), $label)); ?> <li><a download="download" class="exporter download-<?= str_replace('.', '-', $format) ?>" href="<?= $escapeAttr($urls[$format ]) ?>" title="<?= $escapeAttr($labelFormat) ?>"><?= $label ?></a></li> <?php endforeach; ?> </ul> </div> ここで、aタグの内容をボタンに変更してみます。 ...

【Omeka S モジュール紹介】Scripto:転写や翻訳を行う

【Omeka S モジュール紹介】Scripto:転写や翻訳を行う

概要 Omeka Sに登録したメディア(画像など)に対して、転写や翻訳を可能にするモジュール「Scripto」について紹介します。 https://omeka.org/s/modules/Scripto/ インストール 本モジュール自体のインストールは、他の通常のモジュールと同じです。 一方、本モジュールのインストールに加えて、mediawikiをセットアップする必要があります。 Omeka Sが動作している環境であれば、mediawikiのセットアップに必要な環境も揃っているはずですので、以下のコマンドなどにより、mediawikiのダウンロードやセットアップを行います。 wget https://releases.wikimedia.org/mediawiki/1.40/mediawiki-1.40.0.zip unzip mediawiki-1.40.0.zip mv mediawiki-1.40.0 /home/bitnami/htdocs/mediawiki セットアップの環境後、例えば以下のようなURLから、mediawikiのAPIのURLにアクセスできます。 https://omekas.aws.ldas.jp/mediawiki/api.php 上記のURLをScriptoモジュールの有効後に表示される設定画面に反映します。 アイテムセットの作成 本モジュールの利用にあたっては、transcribeの対象とするアイテムを含むアイテムセットを指定する必要があります。 今回は、以下のアイテムセットを例に使用します。 https://omekas.aws.ldas.jp/omeka4/s/bootstrap/item-set/9 プロジェクトの追加 管理画面右下のモジュールに「Scripto」が追加されます。そのリンクから以下のダッシュボードを開き、プロジェクトを作成します。 タイトルとアイテムセット、および転写したテキストをインポートするためのプロパティを指定します。本モジュールでは、プロジェクトにおいて転写内容が承認されるまではアイテムのメタデータとして記録されず、転写内容が承認され、プロジェクトにおいて後述するコンテンツのインポートを実行後、ここで指定したプロパティの値として登録されます。 右上のActionsボタンからSync projectを選択する。 以下のように、アイテムが登録されます。 サイトに追加 転写のプロジェクトは独立したページが用意されます。そのため、当該ページにアクセスするため、Omeka Sの公開サイトのナビゲーションなどにプロジェクトへのリンクを設置します。 プロジェクトの公開ページ プロジェクトは以下のような公開ページを提供します。 各メディアは、以下のような編集画面を持ちます。画面左にメディアが表示され、画面右にエディタが表示されます。また承認済みか、完了済みか、等のフラグを持ちます。 https://omekas.aws.ldas.jp/omeka4/scripto/s/default/1/1/8/10/edit 管理画面では、更新履歴等が閲覧できます。 各アイテムの編集履歴も閲覧できます。 データはmediawikiに保存されます。 https://omekas.aws.ldas.jp/mediawiki/index.php?title=1:8:10 管理画面においても、以下のように登録したテキストデータを確認できます。 インポート 状態がApprovedになったメディアについては、「Import content」から、mediawikiから、Omeka Sのメタデータとして登録できます。 結果、以下のように、テキストデータがメタデータとして登録されます。 まとめ プロジェクトごとに、以下のようにReviewer等を設定することができます。 他にも様々な機能が提供されていますので、柔軟にプロジェクトの設定を変更することができそうです。Omeka Sを用いた転写・翻訳等を行う際の参考になりましら幸いです。

【Omeka S モジュール紹介】IiifPresentation:IIIF Presentation APIの追加

【Omeka S モジュール紹介】IiifPresentation:IIIF Presentation APIの追加

概要 IIIF Presentation APIを追加するIiifPresentationモジュールを試しましたので、その備忘録です。 https://omeka.org/s/modules/IiifPresentation/ なお、簡単に試した限りでは、以下のIIIF Serverモジュールが提供する機能と大きな違いはないように思いました。 https://omeka.org/s/modules/IiifServer/ 違いとして、今回のモジュールはOmeka Teamによって開発されたモジュールであり、さらに細かな設定をせずに利用できる点が利点として考えられました。 インストール 通常のモジュールのインストール手順と同じです。 使い方 アイテムIDが8であるリソースを対象に、本モジュールが提供する機能を試してみます。 以下がベースのURLです。 https://omekas.aws.ldas.jp/omeka4/ 以下のURLにアクセスすると、IIIF manifestを取得できます。 https://omekas.aws.ldas.jp/omeka4/iiif-presentation/3/item/8/manifest 次に、以下のURLにアクセスすると、Miradorのビューアへリダイレクトされます。 https://omekas.aws.ldas.jp/omeka4/iiif-presentation/3/item/8 その他、複数のアイテムIDやアイテムセットのIDを指定することで、IIIFコレクションの取得や閲覧が可能なようです。詳細については、以下をご確認ください。 https://omeka.org/s/docs/user-manual/modules/iiifpresentation/ まとめ IIIFモジュールやビューアに関するモジュール(MiradorやUniversal Viewer)をインストールせずに、本モジュールのみでマニフェストの生成とビューアによる閲覧を実現できる点は有効だと思いました。 一方、カスタマイズ性はIIIFモジュールなどのほうが優れているように思われますので、用途に応じて使い分けるのがよさそうに思いました。 他の方の参考になりましたら幸いです。

【Omeka S モジュール紹介】HistoryLog:変更履歴の記録

【Omeka S モジュール紹介】HistoryLog:変更履歴の記録

概要 2023/07/20時点において、まだベータ版のようですが、Omeka Sで変更履歴を記録するモジュール「Omeka-S-module-HistoryLog」を試す機会がありましたので、備忘録です。 https://github.com/Daniel-KM/Omeka-S-module-HistoryLog インストール 以下に記載がありますが、事前にGenericモジュールをインストールする必要がある場合があります。 https://github.com/Daniel-KM/Omeka-S-module-HistoryLog#installation その他は通常のモジュールのインストール手順と同じです。インストール後、モジュール一覧に以下のように表示されます。 使い方 例えば、特定のアイテムのタイトルを以下のように更新してみます。 保存すると、画面の右下に「History Log」という項目が表示され、最終更新日と更新イベントへのリンクが表示されます。 リンクをクリックすると、変更イベントの一覧が表示され、いつ・誰が・どのような更新を行なったかを確認できます。 まとめ StrapiやDrupalなどのCMSでは標準的な機能ですが、変更履歴を記録できるようになると、さらに便利になるように思います。 まだ開発中のモジュールのため、ご利用される際は注意が必要ですが、参考になりましたら幸いです。

Omeka Sでアイテムセット毎のページに表示されるアイテムのデフォルトソートを設定する

Omeka Sでアイテムセット毎のページに表示されるアイテムのデフォルトソートを設定する

概要 Omeka Sでアイテムセット毎のページに表示されるアイテムのデフォルトソートを設定する方法について記載します。 具体的には、以下のような画面の初期ソートについてです。デフォルトでは「登録日」「降順」に設定されています。 以下、Omeka v4とv3で方法が異なりますので、それぞれについて説明します。 v4 以下のサイト毎の設定画面にアクセスします。 /admin/site/s/<URLスラッグ>#site-settings そして、以下の「Item browse defaults」で、フィールドと昇順・降順を設定します。 注意として、ここで設定したソートは、アイテムセットのページだけでなく、アイテムの一覧ページの初期ソートも変更されてしまいます。 そこで、以下のように、ナビゲーションのクエリ設定から、アイテム一覧については、別途デフォルトソートを設定することで、それぞれ異なるデフォルトソートを設定することができます。 /admin/site/s/<URLスラッグ>/navigation 他にも良い方法があるかもしれませんが、一つの方法として参考になりましたら幸いです。 v3 v3の場合、以下のモジュールを追加します。 https://github.com/Daniel-KM/Omeka-S-module-Next インストール後、サイト毎の設定画面に以下の項目が追加されます。 /admin/site/s/<URLスラッグ>#site-settings 以下のように説明があります。 Set order for item set, one by row, format “id,id,id property order”. Use “0” for the default. 例えば、0 dcterms:title ascと入力すると、アイテムセットにおけるアイテムのデフォルトソートがdcterms:titleに対する昇順になります。アイテムセット毎に設定を変更したい場合には、当該アイテムセットのIDを指定します。例75532 dcterms:title asc まとめ Omeka Sでアイテムセット毎のページに表示されるアイテムのデフォルトソートを設定する方法について記載しました。より良い方法があるかもしれませんが、一つの方法として参考になりましたら幸いです。

Omeka SにGoogle Analytics 4 gtag.jsを追加する

Omeka SにGoogle Analytics 4 gtag.jsを追加する

概要 Omeka SにGoogle Analyticsを設定するモジュールとして以下があります。 https://omeka.org/s/modules/GoogleAnalytics/ 2023年4月時点では上記のモジュールもGA4に対応していますが、2022年4月時点では以下の記事にある通り、非対応だったようです。 https://forum.omeka.org/t/google-analytics-4-gtag-js/15034 そこで、以下のモジュールが紹介されていたので、試してみます。 https://omeka.org/s/modules/AnalyticsSnippet/ なお、繰り返しになりますが、2023年4月時点では、冒頭のモジュールもGA4に対応していますので、Google Analyticsの設定にあたり、どちらのモジュールを使用してもよさそうです。 インストール 一般的なインスール方法と同様です。今回は、version=3.3.3.4をインストールします。 cd /modules version=3.3.3.4 wget https://github.com/Daniel-KM/Omeka-S-module-AnalyticsSnippet/releases/download/$version/AnalyticsSnippet-$version.zip unzip AnalyticsSnippet-$version.zip 設定 サイトの設定画面で、コードを貼り付けます。 コードは、Google Anayticsの設定画面から取得です。 まとめ Omeka SにGA4を設定する際の参考になりましたら幸いです。

Omeka Sを用いて、IIIF Presentation API v3のマニフェストファイルを作成する

Omeka Sを用いて、IIIF Presentation API v3のマニフェストファイルを作成する

概要 IIIF Presentation API v3のマニフェストファイルを作成する必要がありましたので、Omeka Sを用いて作成する方法について紹介します。 Omeka SとIIIF Serverモジュールのインストール 以下などを参考にインストールしてください。 https://zenn.dev/nakamura196/books/f4f87f9730e12e Omeka Sでのアイテム作成 今回は国立国会図書館で公開されている、以下の画像を対象にします。 https://dl.ndl.go.jp/api/iiif/2585098/R0000003/full/full/0/default.jpg アイテムの新規作成を行い、適当なタイトルを与えます。 次に、「メディア」タブを選択して、続けて、画面右のメニューで「URL」を選択します。そして、「URL」に画像のURLを入力します。 そして、画面右上の「追加」ボタンをクリックして、アイテムを登録します。 IIIFマニフェスト 今回は、https://omekas.aws.ldas.jp/omeka4/というサイトに対してアイテムを作成し、Omekaの内部IDとして19が与えられました。 v2 このとき、以下のURLでIIIF Presentation API v2のマニフェストファイルにアクセスできます。 https://omekas.aws.ldas.jp/omeka4/iiif/19/manifest またはAPIのバージョン/2を追加して、以下のURLでもアクセスできます。 https://omekas.aws.ldas.jp/omeka4/iiif/2/19/manifest v3 上記の/2となっている箇所を/3に変更することで、IIIF Presentation API v3のマニフェストファイルにアクセスできます。 https://omekas.aws.ldas.jp/omeka4/iiif/3/19/manifest または、IIIF Serverモジュールの設定画面において、デフォルトのバージョンを3に変更することで、バージョンを指定しない場合に、v3のマニフェストファイルが生成されます。 まとめ IIIF Presentation API v3(および Image API v3)の生成において、参考になりました幸いです。

Omeka Sのユーザ権限と非公開リソースへのアクセス

Omeka Sのユーザ権限と非公開リソースへのアクセス

概要 Omeka Sにおいて、非公開リソースに対する閲覧権限を持つユーザを作成する必要がありましたので、その備忘録です。 Omeka Sのユーザ権限 Omeka Sでは複数のユーザ権限が用意されています。具体的には、以下のページで紹介されています。 https://omeka.org/s/docs/user-manual/admin/users/#users 以下、日本語訳をまとめましたので、参考になりましたら幸いです。 英語 日本語 Global Administrator full installation privileges. グローバル管理者 完全なインストール権限 Supervisor robust site and content privileges. Supervisor 堅牢なサイトおよびコンテンツ権限 Editor (Content Expert) full privileges for content creation. 編集者 コンテンツ制作のための完全な権限 Reviewer robust content privileges but can only delete own content. レビュアー 強力なコンテンツ権限を持っているが、自分のコンテンツを削除することしかできない。 Author create own content. 著者 自分のコンテンツを作成することができます。 Researcher search and read privileges only. 研究者 検索と読み込みの権限のみ 非公開リソースへのアクセス: View Private Resourcesモジュール 上記の表において、Researcher(研究者)は検索と読み込みの権限しか持たないため、非公開リソースのレビュー等を依頼する際に使用し得る権限の一つです。(加えて、Guestモジュール等を使用することで、権限を追加することもできます。) しかしデフォルト設定では、Author(著者)およびResearcher(研究者)は非公開リソースへのアクセス権限を持っていません。 ...

Omeka Sのカスタムオントロジーを用いて作成した語彙を更新する

Omeka Sのカスタムオントロジーを用いて作成した語彙を更新する

概要 Custom Ontologyは、LOV、schema.org、W3Cといった標準的なオントロジーが利用できないときに、独自の語彙を追加することができるモジュールです。以下で使用方法を紹介しています。 https://nakamura196.hatenablog.com/entry/2021/07/24/235050 上記の記事では語彙の作成までを扱っていますが、既存の語彙の更新方法については扱っていませんでした。本記事では、既存の語彙の更新方法について説明します。 語彙の作成 例として、以下の語彙を作成します。 https://omekas.aws.ldas.jp/omeka4/ns/myprefix/ 上記にアクセスすると、以下のttlファイルがダウンロードされます。今回、myprefix:mySpecificPropertyという独自のプロパティを追加しています。 @prefix dcterms: <http://purl.org/dc/terms/> . @prefix owl: <http://www.w3.org/2002/07/owl#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix vs: <http://www.w3.org/2003/06/sw-vocab-status/ns#> . @prefix o: <http://omeka.org/s/vocabs/o#> . @prefix myprefix: <https://omekas.aws.ldas.jp/omeka4/ns/myprefix/> . <https://omekas.aws.ldas.jp/omeka4/ns/myprefix/> a owl:Ontology ; dcterms:title "My label" ; dcterms:description "A specific ontology for my documents." . myprefix:mySpecificProperty a rdf:Property ; rdfs:label "My specific property" ; rdfs:comment "A property to use for my specific documents." ; rdfs:domain o:Resource ; vs:term_status "experimental" . 語彙の更新 今回、myprefix:mySpecificPropertyのラベルを私のプロパティに変更してみます。 ...

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

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

概要 Omeka Sへのメタデータ(アイテム)と画像(メディア)等の一括登録を行うためのモジュール「Bulk Import」の使い方について、以前に以下の記事を作成しました。 https://nakamura196.hatenablog.com/entry/2021/07/28/080952 ただし、Omeka Sやモジュールのアップデートにより、2023年3月時点では、一部挙動が異なる点があります。そこで本記事では、詳細な説明は上記の記事に譲りつつ、アイテムセットからメディアの登録までの一連の流れを再度紹介します。 モジュールのインストール 関連モジュールのインストール まず、以下の2つのモジュール「Log」と「Generic」をインストールしてください。 https://github.com/Daniel-KM/Omeka-S-module-Log https://github.com/Daniel-KM/Omeka-S-module-Generic (オプショナル)ログの設定 Logモジュールのインストール後に、以下のようなアラートが表示されます。config/local.config.phpの設定を変更しておくことで、Bulk Importを使用する際のエラー内容などを確認することができて便利です。 具体的には、/config/local.config.phpについて、logをtrueに設定します。 return [ 'logger' => [ 'log' => true, //ここをtrueに変更する 'priority' => \Laminas\Log\Logger::NOTICE, ], 'http_client' => [ 'sslcapath' => null, 'sslcafile' => null, ], ... ] この設定を行うことにより、後述する一括登録の際に、以下のようなログが表示されます。特に、意図したとおりに一括登録できない場合に、その原因を調べる上で参考になります。 Bulk Importのインストール 以下のリポジトリからインストールしてください。 https://github.com/Daniel-KM/Omeka-S-module-BulkImport インストール後に以下のような設定画面が表示されますが、とりあえずそのままで構いません。 アイテムセットの登録 まず、アイテムセットの登録を行います。インポートの画面から、以下の「CSV - Item sets」を選択します。 サンプルデータとして、以下のcsvファイルをダウンロードしてください。 https://github.com/omeka-j/Omeka-S-module-BulkImport-Sample-Data/blob/main/item_set.csv ダウンロードしたファイルを選択します。 次の画面では、いろいろな設定項目がありますが、とりあえずデフォルトのままでOKです。 登録が完了すると、以下のように、タイトル(dcterms:title)とIdentifier(dcterms:identifier)が登録されます。 アイテムの登録 次に、アイテムの登録を行います。以下のcsvファイルを使用します。 ...

Omeka Sへの画像一括登録用プログラム

Omeka Sへの画像一括登録用プログラム

概要 Omeka Sでメタデータ(Omeka用語でアイテム)や画像(Omeka用語でメディア)を一括する場合、Bulk Importモジュールなどを使用することが多いです。 https://github.com/Daniel-KM/Omeka-S-module-BulkImport 一方、Omeka Sが提供するREST APIを介して登録することも可能です。 今回は、本APIを用いた画像の一括登録用プログラムを作成しましたので、その紹介です。 開発した理由 最新のBulk Importモジュールでは、エラーが発生した際に、停止するか継続するか等を選択できますが、古いバージョンのモジュールでは、この設定ができません。そのため、画像を一括登録した際に、画像の取得に失敗する都度、その画像が抜けてしまうケースがありました。 そこで、上記への対応のため、APIを用いた画像の一括登録用プログラムを作成しました。 使い方 以下のノートブックでサンプルをご確認いただけます。 https://colab.research.google.com/github/nakamura196/ndl_ocr/blob/main/Omeka_Sへの画像一括登録用プログラム.ipynb まず、登録用のcsvファイルを作成します。本プログラムのIIIF画像の一括登録のみを対象としており、Media Urlには、IIIF画像のURL(info.jsonを含む)を指定します。 Item Identifier Media Url post_226 https://nakamura196.github.io/iiif_static/files/tile/kunshujo/info.json Google Colabで実行する場合には、csvファイルをアップロードします。 次にAPIの認証情報やエンドポイントのURLを設定します。 property_idの値については、上記csvのItem Identifierで指定した値をもつプロパティのIDを指定します。ここでは、dcterms:identifierを使用するため、そのOmekaの内部IDにあたる10を指定します。 処理内容 入力したcsvファイルと数の齟齬がある場合のみ、登録を行います。 例えば、アイテムに2件のメディアを紐づけるようにcsvファイルで指定されているにも関わらず、Omeka上では1件のメディアしか紐づいていないアイテムがあった場合、当該アイテムの紐づいたメディアを削除し、再度csvファイルの内容に基づいて登録します。 これにより、メディアの新規の一括登録や、登録漏れが発生していたメディアの修正等を行うことができます。 まとめ BulImport以外での画像の一括登録方法として、参考になりましたら幸いです。