ホーム 記事一覧 ブック DH週間トピックス 検索 このサイトについて
RSS English
GCP: AI Platform Notebooksの作成時のエラー対応

GCP: AI Platform Notebooksの作成時のエラー対応

以下を参考に、ノートブックインスタンスを作成しました。 https://cloud.google.com/blog/ja/topics/developers-practitioners/pytorch-google-cloud-how-train-pytorch-models-ai-platform gcloud notebooks instances create example-instance \ --vm-image-project=deeplearning-platform-release \ --vm-image-family=pytorch-1-7-cu110-notebooks \ --machine-type=n1-standard-4 \ --location=us-central1-a \ --boot-disk-size=100 \ --accelerator-core-count=1 \ --accelerator-type=NVIDIA_TESLA_T4 \ --install-gpu-driver \ --network=default この時、以下のエラーにより、ノートブックインスタンスを作成できませんでした。 ERROR: (gcloud.notebooks.instances.create) The zone 'projects/{project}/zones/us-central1-a' does not have enough resources available to fulfill the request. '(resource type:compute)'. そのため、locationをus-central1-aからus-central1-bに変更したところ、インスタンスを作成することができました。 gcloud notebooks instances create example-instance \ --vm-image-project=deeplearning-platform-release \ --vm-image-family=pytorch-1-7-cu110-notebooks \ --machine-type=n1-standard-4 \ --location=us-central1-b \ --boot-disk-size=100 \ --accelerator-core-count=1 \ --accelerator-type=NVIDIA_TESLA_T4 \ --install-gpu-driver \ --network=default 他の方の参考になりましたら幸いです。 ...

GCP Vertex AIの特徴量(featurestore)の削除方法

GCP Vertex AIの特徴量(featurestore)の削除方法

概要 GCP(Google Cloud Platform)のVertex AIにおいて、特徴量(featurestore)の削除方法のメモです。 後から気がつきましたが、以下に公式ドキュメントがありました。 https://cloud.google.com/vertex-ai/docs/featurestore/managing-featurestores#delete_a_featurestore 方法 今回は、以下に示すように、testという特徴量(featurestore)の削除を試みます。 以下のコマンドを実行することで削除できました。(GUIからの削除方法がわかりかねました。) 値 説明 LOCATION featurestore が配置されているリージョン(us-central1 など)。 PROJECT プロジェクト ID またはプロジェクト番号。 FEATURESTORE_ID featurestore の ID。 curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://{LOCATION}-aiplatform.googleapis.com/v1beta1/projects/{PROJECT}/locations/{LOCATION}/featurestores/{FEATURESTORE_ID} Cloud Shellで実行できました。 まとめ 同様のことでお困りの方の参考になりましたら幸いです。

【使い方編】国立国会図書館「次世代デジタルライブラリー」で公開されているOCR結果をIIIFビューアで閲覧するアプリを作成しました。

概要 使い方 Miradorでの表示例 Curation Viewerでの表示例 まとめ 概要 国立国会図書館「次世代デジタルライブラリー」で公開されているOCR結果をIIIFビューアで閲覧するアプリを作成しました。 以下のURLからお試しいただけます。 https://static.ldas.jp/ndl-ocr-iiif/ 使い方 入力フォームに、「次世代デジタルライブラリー」で公開されている資料のIDを入力します。 しばらくすると、「Mirador」とCODHが公開する「Curation Viewer」のボタンが表示されます。それぞれのビューアで、OCR結果をご確認いただけます。 Miradorでの表示例 特に、「Mirador」については、「IIIF Content Search API」にも対応し、資料内検索が可能です。 https://iiif.io/api/search/1.0/ Curation Viewerでの表示例 まとめ 本記事では本アプリの使い方について説明しました。以下の記事では、本アプリの構築方法について説明しています。こちらも参考になりましたら幸いです。 nakamura196.hatenablog.com

【開発編】国立国会図書館「次世代デジタルライブラリー」で公開されているOCR結果をIIIFビューアで閲覧するアプリを作成しました。

【開発編】国立国会図書館「次世代デジタルライブラリー」で公開されているOCR結果をIIIFビューアで閲覧するアプリを作成しました。

概要 国立国会図書館「次世代デジタルライブラリー」で公開されているOCR結果をIIIFビューアで閲覧するアプリを作成しました。使用方法を以下の記事にまとめています。 今回は、上記アプリの構築方法について説明します。 構築方法 バックエンド AWSを利用しました。また、主にSAM(Serverless Application Model)を用いて構築しています。 IIIFマニフェスト&キュレーションリストの作成 次世代デジタルライブラリーで公開されているOCR結果を反映したIIIFマニフェストおよびキュレーションリストを生成する流れは以下です。 ポイントとして、AWS Lambdaが担う処理に時間がかかっため、AWS Step Functionsを導入しています。 具体的には、AWS Lambdaは、OCR結果をIIIFマニフェストおよびキュレーションリストに変換する処理、およびその変換結果をS3にアップロードする処理を行いますが、これがAPI Gatewayのタイムアウト(29秒)に引っかかってしまいました。そのため、以下の記事を参考に、Step Functionsを組み合わせた非同期処理を採用しています。 https://dev.classmethod.jp/articles/apigateway-stepfunctions-asynchronous/ IIIF Content Search APIの構築 本アプリのもう一つの工夫点として、IIIF Content Search APIを構築しています。 https://iiif.io/api/search/1.0/ こちらについては、以下に示すシンプルな構成をとっています。S3から取得したIIIFマニフェストに対して、検索語に対応したデータ(文字列および座標情報)を返却するAWS Lambda関数を作成しました。 フロントエンド フロントエンドはNuxt.jsを用いて開発しています。ソースコードは以下です。GitHub Pagesを用いて公開しています。 https://github.com/ldasjp8/ndl-ocr-iiif Step Functionsを実行後、定期的(3秒ごと)にステータスを取得し、SUCCEEDEDとなれば、MiradorとCuration Viewer(CODH提供)へのリンクを表示します。 Miradorについては、以下に示すように、デフォルトですべてのアノテーションを表示するhighlightAllAnnotations: true、かつ、サイドパネルでアノテーションを表示するdefaultSideBarPanel: 'annotations'ようにしています。 https://github.com/ldasjp8/ndl-ocr-iiif/blob/3b474ea1cb960a4d2e322ba04e131c11ed70529b/pages/_id/mirador/index.vue#L34-L40 まとめ AWS勉強中の身ですが、他の方の参考になる部分がありましたら幸いです。

国立国会図書館「次世代デジタルライブラリー」で公開されているOCR結果をIIIFビューアで閲覧するアプリを作成しました。

国立国会図書館「次世代デジタルライブラリー」で公開されているOCR結果をIIIFビューアで閲覧するアプリを作成しました。

概要 国立国会図書館「次世代デジタルライブラリー」で公開されているOCR結果をIIIFビューアで閲覧するアプリを作成しました。 以下のURLからお試しいただけます。 https://static.ldas.jp/ndl-ocr-iiif/ 使い方 入力フォームに、「次世代デジタルライブラリー」で公開されている資料のIDを入力します。 しばらくすると、「Mirador」とCODHが公開する「Curation Viewer」のボタンが表示されます。それぞれのビューアで、OCR結果をご確認いただけます。 Miradorでの表示例 特に、「Mirador」については、「IIIF Content Search API」にも対応し、資料内検索が可能です。 https://iiif.io/api/search/1.0/ Curation Viewerでの表示例 まとめ 本記事では本アプリの使い方について説明しました。別の記事では、本アプリの構築方法について説明したいと思います。

【AWS関連】AWS Lambda + Docker + pyvipsを用いたPyramid Tiled Tiffファイルの作成

概要 Amazon ECRリポジトリの作成 Lambda関数の作成 S3 バケットの作成 イベント通知設定 Lambda関数の設定 環境変数の設定 アクセス権限 基本設定 試す まとめ 概要 AWS LambdaとDockerとpyvipsを用いて、S3に格納された画像から、Pyramid Tiled Tiffファイルを作成するイメージを作成しました。 Amazon ECR Public Galleryは以下です。 https://gallery.ecr.aws/nakamura196/lambda-docker-vips-python ソースコードは以下です。 https://github.com/ldasjp8/lambda-docker-vips-python 以下、使用方法について説明します。 Amazon ECRリポジトリの作成 まず、ECRリポジトリを作成します。 次に、「プッシュコマンドの表示」から、コマンドを確認して、イメージをpushします。 以下、コマンドの例です。 git clone https://github.com/ldasjp8/lambda-docker-vips-python.git cd lambda-docker-vips-python aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin XXXX.dkr.ecr.us-east-1.amazonaws.com docker build -t lambda-docker-vips-python . docker tag lambda-docker-vips-python:latest XXXX.dkr.ecr.us-east-1.amazonaws.com/lambda-docker-vips-python:latest docker push XXXX.dkr.ecr.us-east-1.amazonaws.com/lambda-docker-vips-python:latest 結果、以下のようにイメージがECRリポジトリに表示されます。 そして、以下の「イメージのURI」をコピーしておきます。 Lambda関数の作成 次にLambda関数を作成します。今回は、my-lambda-docker-vips-pythonという関数名にしました。「コンテナイメージURI」に、先ほどコピーしたURIを入力します。 そして、「関数を作成」ボタンを押して、関数を作成します。 S3 バケットの作成 今回、画像を登録するためのバケットと、上記の関数により変換した画像を格納するバケットの2つを用意します。 今回は、my-lambda-docker-vips-python-inputとmy-lambda-docker-vips-python-outputの2つを作成しました。 ...

AWS Lambda + Docker + pyvipsを用いたPyramid Tiled Tiffファイルの作成

AWS Lambda + Docker + pyvipsを用いたPyramid Tiled Tiffファイルの作成

概要 AWS LambdaとDockerとpyvipsを用いて、S3に格納された画像から、Pyramid Tiled Tiffファイルを作成するイメージを作成しました。 Amazon ECR Public Galleryは以下です。 https://gallery.ecr.aws/nakamura196/lambda-docker-vips-python ソースコードは以下です。 https://github.com/ldasjp8/lambda-docker-vips-python 以下、使用方法について説明します。 Amazon ECRリポジトリの作成 まず、ECRリポジトリを作成します。 次に、「プッシュコマンドの表示」から、コマンドを確認して、イメージをpushします。 以下、コマンドの例です。 git clone https://github.com/ldasjp8/lambda-docker-vips-python.git cd lambda-docker-vips-python aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin XXXX.dkr.ecr.us-east-1.amazonaws.com docker build -t lambda-docker-vips-python . docker tag lambda-docker-vips-python:latest XXXX.dkr.ecr.us-east-1.amazonaws.com/lambda-docker-vips-python:latest docker push XXXX.dkr.ecr.us-east-1.amazonaws.com/lambda-docker-vips-python:latest 結果、以下のようにイメージがECRリポジトリに表示されます。 そして、以下の「イメージのURI」をコピーしておきます。 Lambda関数の作成 次にLambda関数を作成します。今回は、my-lambda-docker-vips-pythonという関数名にしました。「コンテナイメージURI」に、先ほどコピーしたURIを入力します。 そして、「関数を作成」ボタンを押して、関数を作成します。 S3 バケットの作成 今回、画像を登録するためのバケットと、上記の関数により変換した画像を格納するバケットの2つを用意します。 今回は、my-lambda-docker-vips-python-inputとmy-lambda-docker-vips-python-outputの2つを作成しました。 イベント通知設定 my-lambda-docker-vips-python-inputバケットの「プロパティ」 > 「イベント通知」から、イベント通知を作成します。これにより、S3に画像が登録された際に、上記の関数が実行されるようにします。 「イベント名」をmy-lambda-docker-vips-python-input-event、「イベントタイプ」をすべてのオブジェクト作成イベント、「送信先」の「Lambda関数」をmy-lambda-docker-vips-pythonに設定しました。 Lambda関数の設定 環境変数の設定 Lambda関数に戻り、以下のように、環境変数を設定します。 ...

pyvipsの使い方とPyramid Tiled Tiffファイルの作り方

pyvipsの使い方とPyramid Tiled Tiffファイルの作り方

概要 pyvipsを用いてPyramid Tiled Tiffファイルを作成するプログラムを作成しました。以下のGoogle Colabでお試しいただけます。 https://colab.research.google.com/drive/1VO1PgKgS3H21zXpg4g2inN-mtIrON5TQ?usp=sharing IIIFを用いた画像配信において、Pyramid Tiled Tiffファイルを作成する場面がありますが、PythonおよびVipsを用いた画像変換を行う際の参考になりましたら幸いです。 なお、パラメータ等は以下を参考にしています。 https://github.com/samvera-labs/serverless-iiif#using-vips また、変換したPyramid Tiled Tiffファイルを配信する方法の一例 として、以下の記事も参考になりましたら幸いです。 ポイント vipsのインストール pyvipsを使用するのは、vipsを事前にインストールしておく必要があります。以下が参考になります。 https://www.libvips.org/install.html pyvipsを用いたPyramid Tiled Tiffファイルの作成 以下のように使用します。 import pyvips ins = pyvips.Image.new_from_file(<入力画像ファイルのパス>) ins.tiffsave(<出力画像ファイルのパス>, tile=True, compression='jpeg', pyramid=True, tile_width=256, tile_height=256) 上記は、以下と同じ結果が得られる(はず)です。 vips tiffsave <入力画像ファイルのパス> <出力画像ファイルのパス> --tile --pyramid --compression jpeg --tile-width 256 --tile-height 256

【備忘録】Maplatの使い方

【備忘録】Maplatの使い方

古地図ビューアライブラリであるMaplatを使用してみましたので、使い方の備忘録です。 https://github.com/code4history/Maplat 上記のGitHubリポジトリのほか、以下のQiitaの記事なども参考になります。 https://qiita.com/tags/maplat?page=1 MaplatEditorのダウンロード 以下のページから、MaplatEditorの最新版をダウンロードします。 https://github.com/code4history/MaplatEditor/wiki データの作成 インストールしたMaplatEditorを立ち上げ、「新規作成」ボタンを押します。 必要なメタデータを入力します。以下の図に示す項目が必須項目です。 次に「対応点編集」タブに移動して、以下に示すように、対応点を追加します。 「データセット入出力」タブに移動して、「地図データエクスポート」ボタンを押します。 以下のように、<id名>.zipというファイルを適当な場所に保存します。 ダウンロードされたファイルを展開すると、以下に示すように、tmbs、tiles、mapsフォルダが格納されていることが確認できます。 アプリを作成する(ソースコードを利用する) 本記事では、ソースコードから利用する方法を説明します。npmコマンドが使用できる前提で話を進めます。 サンプルパッケージなどを利用して、より簡単にアプリを作成する方法が以下にまとめられています。こちらも参考にしてください。 https://github.com/code4history/Maplat/wiki/How-to-set-up-Maplat-Application 準備 適当なフォルダに移動して、以下に示すようなコマンドにより、ソースコードをダウンロードします。Maplatというフォルダが作成されます。 git clone https://github.com/code4history/Maplat.git 次に、以下のコマンドにより、ライブラリのインストールを行います。 cd Maplat npm install 次に、以下のコマンドにより、アプリケーションを立ち上げます。 npm run server 以下のURLでアプリケーションにアクセスすることができます。 http://localhost:8888/index.html アプリケーションの編集 まず、tmbs、tiles、mapsフォルダに、先にエクスポートした中身をそれぞれコピーします。 以下、mapsフォルダに追加した例を示します。 そして、<Maplatのダウンロードパス>/apps/sample.jsonを編集します。具体的には、以下に示すように、sources項目に、作成した地図のid(ここでは0001)を追加します。 その結果、以下のように、追加した画像がアプリケーションに表示されます。上記の入力値において、labelの値を変更することにより、アプリ上での表示名を変更することができます。 また、<Maplatのダウンロードパス>/public/index.htmlを編集することにより、表示内容を変更することができます。 一例として、以下に示すように、enableBorder: trueをoptionに追加してみます。 その結果、以下の図に示すように、画面右下に「地図境界表示」アイコンが表示され、選択すると、地図の境界が表示されます。 他にもさまざまな設定が可能です。設定内容については、以下が参考になります。 https://github.com/code4history/Maplat/wiki/How-to-set-up-Maplat-Application#4-appssamplejson%E3%81%AE%E8%A8%AD%E5%AE%9A%E6%96%B9%E6%B3%95 以上でアプリケーションの編集は終了です。今回は、新しく地図画像を追加しただけでした。実際には、上記のリポジトリではじめから同梱されている地図画像情報の削除等を行い、公開に必要なものだけに整理する必要があります。 参考 以下は参考情報ですが、<Maplatのダウンロードパス>/src/index.jsの以下の行をコメントアウトなどすると、コンソール画面に表示される内容を軽減できます。 https://github.com/code4history/Maplat/blob/19618d23a3d80cbde7db753cd769a41575527dd4/src/index.js#L1590 ビルド アプリケーションの編集が完了したら、ビルドを行います。以下のコマンドを実行します。 npm run build その結果、distとdist_packedフォルダが更新されます。 デプロイ ビルドした結果などをデプロイします。ここでは、AWSのS3にアップロードする方法を示します。 ...

カレンダー検索アプリを作成しました。

カレンダー検索アプリを作成しました。

概要 カレンダー形式で情報を表示するウェブアプリケーションを作成しました。以下、はてなブログの記事の一覧を対象にした表示例です。 https://static.ldas.jp/calendar/?u=https://nakamura196.github.io/json/calendar.json https://github.com/ldasjp8/calendar 以下にアクセスして、「例」ボタン、「追加」ボタンをクリックすることで、表示例をご確認いただけます。 https://static.ldas.jp/calendar/ 以下のような形式のjsonファイルのURLを引数に指定します。 https://nakamura196.github.io/json/calendar.json 以下、jsonファイルの作成方法の一例として、Excelファイルからの作成方法について説明します。 jsonファイルの作成方法 Excelファイルの作成 以下に示すようなExcelファイルを作成します。「metadata」と「items」の2つのシートを用意します。 https://docs.google.com/spreadsheets/d/14myDqZTxocwOT0Mw3ZzKLO81E6r15R-49oUh2dG9Rbo/edit?usp=sharing シート「metadata」 本シートには、A列に示す「description」「header」「footer」「link」を用意します。以下の画面に対応します。 「link」については、B列「literal」が表示文字列、C列「uri」がURLです。複数行を入力可能です。 シート「items」 本シートの以下の列が、予約済みの項目です。collectionsとdateは検索フォームに使用されます。 collections date label thumbnail url description G列以降の「Updated」などは、任意の項目です。 上記の項目は、以下のように対応します。なお、セル内に複数の値を入力したい場合には、「|(パイプ)」で区切ってください。 jsonファイルへの変換 以下のGoogle Colabを利用して、用意したExcelファイルをアップロードして、jsonファイルに変換します。 https://colab.research.google.com/drive/1aJKbJjK9Gu4SwDp6IfGCHNuhTH3pJ3hp 上記プログラムの実行後、ダウンロードされたJSONファイルをGitHub PagesやGist、レンタルサーバ等にアップロードし、そのURLを以下のカレンダー表示アプリに入力してください。 https://static.ldas.jp/calendar/ (参考)はてなブログの記事を対象とした利用例 はてなブログの記事を対象とした利用例として、はてなブログのAtomPub APIを用いて、上述したExcelファイルを生成するプログラムを作成しました。以下の記事を参考にしてください。

【AWS関連】AWS Lambdaを用いた物体検出API(Flask + yolov5)の構築

概要 AWS Lambdaを用いた物体検出API(Flask + yolov5)の構築を行います。機械学習の推論モデルをAWS Lambdaを用いて構築することにより、コストの軽減を目指します。 以下の記事を参考にさせていただいています。 https://zenn.dev/gokauz/articles/72e543796a6423 リポジトリの内容の更新や、API Gatewayからの利用方法の追記などを行なっています。 Lambdaへの関数登録 以下のGitHubリポジトリをクローンします。 git clone https://github.com/ldasjp8/yolov5-lambda.git ローカルで実行する 次に、venvを用いて仮想環境を作成して、モジュールをインストールします。 cd yolov5-lambda python -m venv venv source venv/bin/activate cd yolov5 pip install --upgrade pip pip install -r requirements.txt その後、以下を実行すると、物体検出結果のjsonデータが出力されます。 python app.py デプロイ 冒頭で述べた通り、以下の記事の成果を利用させていただいています。 https://zenn.dev/gokauz/articles/72e543796a6423 ここでは、Jupyter Notebookを利用します。 cd ../ jupyter notebook Jupyter Notebookが起動した後、以下のbuild_and_test.ipynbを選択して、手順の通りに実行します。 今回作成したリポジトリで変更した点として、まずconf.jsonファイルをロードするようにしています。 cloneしたリポジトリにconf.json.templateを格納していますので、conf.jsonに名前を変えて、profile項目に、AWS CLIにプロファイル名を与えてください。 mv conf.json.template conf.json code conf.json Notebookの実行にあたっては、dockerを起動しておく必要があります。 (オプション)AWS Lambdaでのテスト実行 以下、AWS Lambdaでのテストの実行方法を示します。なお、上記のNotebook内で推論まで実行するため、本作業は必須ではありません。(私の備忘録です。) Lambdaの関数ページにアクセスし、「テスト」タブを選択します。 そして、以下に示すように、テンプレートで「agigateway-aws-proxy」を選択し、サンプルとして利用する画像のbase64エンコードされた文字列を、body項目に与えます。画像のbase64エンコードされた文字列の作成については、上記のNotebookの「推論してみる」の項目にありますので、参考にしてください。 以下のように実行結果を確認することができます。 API Gatewayの設定 API Gatewayの「APIを作成」から、REST APIの「構築」をクリックし、 ...

AWS Lambdaを用いた物体検出API(Flask + yolov5)の構築

AWS Lambdaを用いた物体検出API(Flask + yolov5)の構築

概要 AWS Lambdaを用いた物体検出API(Flask + yolov5)の構築を行います。機械学習の推論モデルをAWS Lambdaを用いて構築することにより、コストの軽減を目指します。 以下の記事を参考にさせていただいています。 https://zenn.dev/gokauz/articles/72e543796a6423 リポジトリの内容の更新や、API Gatewayからの利用方法の追記などを行なっています。 Lambdaへの関数登録 以下のGitHubリポジトリをクローンします。 git clone https://github.com/ldasjp8/yolov5-lambda.git ローカルで実行する 次に、venvを用いて仮想環境を作成して、モジュールをインストールします。 cd yolov5-lambda python -m venv venv source venv/bin/activate cd yolov5 pip install --upgrade pip pip install -r requirements.txt その後、以下を実行すると、物体検出結果のjsonデータが出力されます。 python app.py デプロイ 冒頭で述べた通り、以下の記事の成果を利用させていただいています。 https://zenn.dev/gokauz/articles/72e543796a6423 ここでは、Jupyter Notebookを利用します。 cd ../ jupyter notebook Jupyter Notebookが起動した後、以下のbuild_and_test.ipynbを選択して、手順の通りに実行します。 今回作成したリポジトリで変更した点として、まずconf.jsonファイルをロードするようにしています。 cloneしたリポジトリにconf.json.templateを格納していますので、conf.jsonに名前を変えて、profile項目に、AWS CLIにプロファイル名を与えてください。 mv conf.json.template conf.json code conf.json Notebookの実行にあたっては、dockerを起動しておく必要があります。 (オプション)AWS Lambdaでのテスト実行 以下、AWS Lambdaでのテストの実行方法を示します。なお、上記のNotebook内で推論まで実行するため、本作業は必須ではありません。(私の備忘録です。) Lambdaの関数ページにアクセスし、「テスト」タブを選択します。 そして、以下に示すように、テンプレートで「agigateway-aws-proxy」を選択し、サンプルとして利用する画像のbase64エンコードされた文字列を、body項目に与えます。画像のbase64エンコードされた文字列の作成については、上記のNotebookの「推論してみる」の項目にありますので、参考にしてください。 以下のように実行結果を確認することができます。 ...

【Omeka S テーマ開発】Bootstrap 5を用いたOmeka Sテーマを公開しました。

【Omeka S テーマ開発】Bootstrap 5を用いたOmeka Sテーマを公開しました。

Bootstrap 5を用いたOmeka Sテーマを公開しました。 https://github.com/ldasjp8/Omeka-S-theme-Bootstrap5 以下、開発者向けの情報を含む、使用方法について説明します。 テーマの設定画面において、以下の設定が可能です。 上記の設定内容から、一部を取り上げて説明します。 Footer Content フッターに表示する文字列を入力します。以下のように、HTMLを入力することもできます。 Site Sub Title サブタイトルを設定すると、以下のように、トップページにサブタイトルが表示されます。なお、本モジュールは、「Next」モジュールが有効の場合のみ機能します。 https://github.com/Daniel-KM/Omeka-S-module-Next Top Image サイトのトップページの背景画像に使用する画像を選択します。なお、本モジュールは、「Next」モジュールが有効の場合のみ機能します。 https://github.com/Daniel-KM/Omeka-S-module-Next 当該ソースコードは以下です。 https://github.com/ldasjp8/Omeka-S-theme-Bootstrap5/blob/f9aceadfb0c50debefad080ea4bb5281b7b0a961/view/layout/layout.phtml#L68-L112 また、次のように、Nextモジュールが有効な場合のみ、isHomePage関数が使用できます。 https://github.com/ldasjp8/Omeka-S-theme-Bootstrap5/blob/f9aceadfb0c50debefad080ea4bb5281b7b0a961/view/layout/layout.phtml#L30-L36 したがっては、Nextモジュールがインストールされておらず、トップページに使用するページのURLなどが確定している場合には、独自に$isHomePage変数に値を与える関数を使用することも可能です。 Top Button url URLを設定すると、以下のように、設定したURLに遷移する「閲覧」ボタンがトップページに表示されます。 Sort properties ソートに使用する項目を入力します。 以下のように、カンマ区切りで、Termとラベルを設定します。 本設定により、以下のように設定内容が反映されていることが確認できます。 テーマのカスタマイズ内容は以下で確認できます。 https://github.com/ldasjp8/Omeka-S-theme-Bootstrap5/blob/f9aceadfb0c50debefad080ea4bb5281b7b0a961/view/omeka/site/item/browse.phtml#L17-L42 Body properties 検索結果の一覧画面に使用する項目を入力します。 以下のように、カンマ区切りで、Termとラベルを設定します。 本設定により、以下のように設定内容が反映されていることが確認できます。 テーマのカスタマイズ内容は以下で確認できます。 次は、テーマの設定をロードしている部分です。 https://github.com/ldasjp8/Omeka-S-theme-Bootstrap5/blob/f9aceadfb0c50debefad080ea4bb5281b7b0a961/view/omeka/site/item/browse.phtml#L44-L58 次は、ロードした設定に基づき、表示内容を修正している箇所です。 https://github.com/ldasjp8/Omeka-S-theme-Bootstrap5/blob/f9aceadfb0c50debefad080ea4bb5281b7b0a961/view/omeka/site/item/browse.phtml#L184-L200 Layout for Browse Pages デフォルトの表示スタイルを設定します。 (2022年3月14日時点において、バグのため「List」を設定した際にうまく動作しません。修正予定です。) Show a link to collections in item pages? アイテムの詳細画面にアイテムセットへのリンクを付与するか否かを設定します。単一のアイテムセットを使用している場合などに「いいえ」を設定します。 ...

【Omeka Sモジュール】Clean Urlの使い方

【Omeka Sモジュール】Clean Urlの使い方

概要 Omeka Sでリソース(アイテムセット、アイテム、メディア)に識別子を与える方法を説明します。 具体的には、以下のモジュール「Clean Url」の使い方を説明します。 https://github.com/Daniel-KM/Omeka-S-module-CleanUrl インストール 以下にOmeka Sがomeka-s-sandboxというフォルダ名でインストールされていることを前提とします。 /home/xxxx/www/omeka-s-sandbox/ 以下のREADMEにおいて、関連モジュール「Generic」のインストールが推奨されています。 https://github.com/Daniel-KM/Omeka-S-module-CleanUrl#installation そこで、以下を実行します。 wget https://github.com/Daniel-KM/Omeka-S-module-Generic/releases/download/3.3.34/Generic-3.3.34.zip unzip Generic-3.3.34.zip 上記は、Genericのv3.3.34をダウンロードした例です。最新版は以下にアクセスして、画面に示した箇所から、URLを取得してください。 https://github.com/Daniel-KM/Omeka-S-module-Generic 次にClean Urlモジュールをインストールします。以下を実行します。 wget https://github.com/Daniel-KM/Omeka-S-module-CleanUrl/releases/download/3.17.3.3/CleanUrl-3.17.3.3.zip unzip CleanUrl-3.17.3.3.zip 上記は、CleanUrlのv3.17.3.3をダウンロードした例です。最新版は以下にアクセスして、画面に示した箇所から、URLを取得してください。 https://github.com/Daniel-KM/Omeka-S-module-CleanUrl 管理ダッシュボードへのログイン 以下のURL(例です。ご自身の環境に応じて、変更してください。)から、管理ダッシュボードにログインしてください。 https://shared.ldas.jp/omeka-s-sandbox/login 以下、ログイン後のURLおよび画面です。 https://shared.ldas.jp/omeka-s-sandbox/admin モジュールのインストール 画面左に表示される「管理」>「モジュール」をクリックして、「Generic」と「Clean Url」がモジュール一覧に表示されることを確認します。「Generic」「Clean Url」の順に、それぞれ「インストール」ボタンをクリックします。 「Clean Url」については、インストール後、以下の設定画面に遷移します。これでインストール作業は完了です。 アイテムへの識別子の付与 Clean Urlの挙動の確認にあたり、アイテムに識別子を付与します。以下の図では、dcterms:identifierを使用しています。この項目(プロパティ)を使用することが一般的ですが、他の項目でもかまいません。後ほど、どの項目を識別子に使用するか、Clean Urlモジュールの設定画面において設定します。 以下では、「test123」という識別子を与えました。 上記のアイテムには、以下のようなURLでアクセスできます。なお、Omeka Sではその内部で複数のサイトを構築することできます。以下の例は、Omeka S内の一つのサイト「test」でアイテムを表示した例です。Omeka Sが自動で割り振る内部IDの「3」がURLに含まれています。 https://shared.ldas.jp/omeka-s-sandbox/s/test/item/3 参考:Omeka SのURLの構造例 Omeka Sでアイテムにアクセスするための構造は以下です。 <Omeka Sをインストールしたパス>/s(SiteのSの意味)/<サイトのID>/item/<Omekaの内部ID> モジュールの設定 以下のように、画面左の「モジュール」をクリックして、一覧に表示される「Clean Url」の「設定」ボタンをクリックします。先に示した設定が表示されます。 以下、いくつかの設定例を紹介します。 Sites and pages Skip “s/site-slug/” for default site こちらの項目を下図のように設定すると、 ...

Omeka Classic + IIIF Toolkitを用いたアノテーション付与環境の構築

Omeka Classic + IIIF Toolkitを用いたアノテーション付与環境の構築

Omeka ClassicとIIIF Toolkitプラグインを用いたIIIF画像へのアノテーション付与環境を構築します。Omeka Classicの基本的なインストールと合わせて説明します。 はてなブログのまとめ記事と、Zennの本の2種類を作成しました。 Zenn https://zenn.dev/nakamura196/books/2a0aa162dcd0eb はてなブログ https://nakamura196.hatenablog.com/entry/2022/03/22/234917 Omeka.net(Classic)の使い方の参考になりましたら幸いです。

Omeka Classic + IIIF Toolkitを用いたアノテーション付与環境の構築方法を説明するまとめ記事とZennの本を作成しました。

Omeka ClassicとIIIF Toolkitプラグインを用いたIIIF画像へのアノテーション付与環境を構築します。Omeka Classicの基本的なインストールと合わせて説明します。 はてなブログのまとめ記事と、Zennの本の2種類を作成しました。 はてなブログ nakamura196.hatenablog.com Zenn zenn.dev IIIF画像へのアノテーション付与に関して、参考になりましたら幸いです。

【まとめ記事】Omeka Classic + IIIF Toolkitを用いたアノテーション付与環境の構築

Omeka ClassicとIIIF Toolkitプラグインを用いたIIIF画像へのアノテーション付与環境を構築します。Omeka Classicの基本的なインストールと合わせて説明します。 チャプター1 Omeka Classicのインストール チャプター2 IIIF Toolkitプラグインのインストール チャプター3 IIIFマニフェストの登録 チャプター4 アノテーションの付与

Omeka Classic + IIIF Toolkitを用いたアノテーション付与環境の構築: チャプター4 アノテーションの付与

Omeka ClassicとIIIF Toolkitプラグインを用いたIIIF画像へのアノテーション付与環境を構築します。 Omeka Classicの基本的なインストールについては、こちらの記事を参考にしてください。 アノテーションの付与 以下の画面を使って、アノテーションの付与を行います。 基本的な方法として、まず、以下に示す「矩形で注釈」アイコンをクリックします。 そして、アノテーションを付与する対象領域をドラッグして選択します。そして、テキストフォームが表示されるため、テキストエリアとタグの入力欄に値を入力します。「Public?」と「Featured?」はオプションです。 その結果、以下のように、画像中にアノテーションが表示されます。 また、表示されたアノテーションの右上にある「編集」と「削除」リンクから、付与したアノテーションの編集と削除が可能です。 (参考)タグ 上記のフォームで登録したタグは、Omekaのタグとして使用されます。タグの使い方の詳細については、こちらを参考にしてください。 付与したアノテーションは、初期表示では「アイテム」の一覧画面に表示されませんが、以下のように、検索条件でタグ名を指定すると、 以下のように、登録したアノテーションが表示されます。

Omeka Classic + IIIF Toolkitを用いたアノテーション付与環境の構築: チャプター3 IIIFマニフェストの登録

Omeka ClassicとIIIF Toolkitプラグインを用いたIIIF画像へのアノテーション付与環境を構築します。 Omeka Classicの基本的なインストールについては、こちらの記事を参考にしてください。 IIIFマニフェストファイルの準備 次に、IIIFマニフェストの登録を行います。今回は、国立国会図書館で公開されている「和泉国絵図」を例とします。 https://dl.ndl.go.jp/info:ndljp/pid/1286201 IIIFマニフェストのURLは以下です。 https://www.dl.ndl.go.jp/api/iiif/1286201/manifest.json Omeka Classicでの操作 以下の図に示すように、画面左部の「IIIF Toolkit」をクリックし、登録画面に遷移します。そして、「タイプ」を「Manifest」、「ソース」を「From URL」、「URL」に上記のIIIFマニフェストのURLを入力します。そのほか、「Set as Public」や「Local Preview Size」などはオプションです。 「Import」を実行後、以下の画面に遷移します。インポートが完了すると、「Status」が「Completed」になります。 その後、画面左部の「コレクション」をクリックすると、IIIFマニフェストから抽出された情報が登録されていることが確認できます。 そして「Annotate」ボタンをクリックすることで、アノテーションの付与画面に遷移します。次のチャプターでは、アノテーションの付与方法について説明します。

Omeka Classic + IIIF Toolkitを用いたアノテーション付与環境の構築: チャプター2 IIIF Toolkitプラグインのインストール

Omeka ClassicとIIIF Toolkitプラグインを用いたIIIF画像へのアノテーション付与環境を構築します。 Omeka Classicの基本的なインストールについては、こちらの記事を参考にしてください。 インストール 以下のURLにアクセスして、画像に示したリンクのURLをコピーします。 https://omeka.org/classic/plugins/IiifItems/ 次に、/home/xxxx/www/omeka/hi/pluginsに移動して、ziファイルをダウンロードして、展開します。(v1.1.0をダウンロードする例です。) cd /home/xxxx/www/omeka/hi/plugins wget https://github.com/utlib/IiifItems/releases/download/v1.1.0/IiifItems.zip unzip IiifItems.zip ブラウザでの操作 ダッシュボード画面において、画面上部の「プラグイン」をクリックします。以下の画面のように、「IIIF Toolkit」が表示されます。 インストールボタンを押すと、以下の画面に遷移します。とりあえずはデフォルトの設定のまま(本画面では何も操作しない)で問題ありません。