ラベル 個人調査 の投稿を表示しています。 すべての投稿を表示
ラベル 個人調査 の投稿を表示しています。 すべての投稿を表示

2021年5月26日水曜日

【番外編】DPCのワークフロー関連ウェビナー(2021-0420&22)―中途半端ですみませんなメモ

 4月20日と22日、DPCがワークフローに関するウェビナーをやるというので、申し込みました。日本時間21時スタートと、まだ覚醒している間に出られるので...

https://www.dpconline.org/events/workflow-webinars-and-cow

20日はなんだか疲れていてよくわからなかったのですが、ingest前の処理ってやっぱりけっこう大変なのねーとしみじみ感じるような報告が3本でした。メルボルン大学と、ルクセンブルク国立図書館と、LSE。メルボルン大学がおもしろそうだったのだけれども、最初音声が悪くて話が見えなかったら、最後までよくわかりませんでした。京都のiPRESで報告した人みたいです。筒井弥生さんがFBで次のリンクを教えてくださいました。

ipres2019.org/static/pdf/iPres2019_paper_113.pdf

22日はArchivematicaの話があるので、聞きながらここにメモできればと思って開いたのだけれど、ダメかもね。

あ、いまYoさんがZoomに入ってきました(実況)。

今日は疲れちゃったので2本だけ見て寝ます。

  • Ingest to Preservica using Jester with Chris Jones, State Library of South Australia
こちらはビデオ。
しょっぱなからopex fileというのがなんだかわからない。どうもこれらしい。

https://developers.preservica.com/documentation/open-preservation-exchange-opex

なんであれこれがingestのときめんどうならしく、SLSAが開発したJesterを使うとささっとPreservicaに入れられるらしい。

https://www.dpconline.org/blog/nsla-s-digital-preservation-network

対象のフォルダを選んで、Investigateボタンを置くと Droidが動いてファイル情報が出るのでingestしたいのを選ぶと、Manifestというのを出力してくれる。でそれがcsvになっていて、ハッシュ値とか全部入っていて、フォルダ構造もちゃんと親子関係で(AtoMのテンプレートみたいに)入力されているので、それがPreservicaで再現されるらしい。
とにかくJesterの仕事が終わればあとはPreservicaが全部やってくれるのだそうな。

  • Archivematica workflow with Jenny A Brook, National Library of Wales 

Libraryなので、digitizationしたものの話らしいが、画面(ビデオ)がぼやけていてなんだかよくわからない(笑)。どうも、アクセスを制限したいものが含まれているコレクションの話らしい。そして、図書館の話なので用語がわからない!とにかくArchivematicaにぶちこんで、それをFedora repositoryに入れるらしいのですが。

Alma recordsって、これのこと?

https://knowledge.exlibrisgroup.com/Alma/Product_Documentation/010Alma_Online_Help_(English)/Metadata_Management/005Introduction_to_Metadata_Management/020Record_Numbers

Active MQって??
https://activemq.apache.org/

....というわけで詳細はちんぷんかんぷんだったのですが、要するに、アクセス制限をかけなければいけないものが含まれているとき、処理のしかたを修正しなければならない、そのしかたについてのプレゼンらしい(笑)。
例えば、Archivematicaに入れるフォルダ全体がrestrictedなら、サムネール作ったりしなくていいし、フォルダの一部なら、サムネール作成やnormalizationはちゃんとやったうえで、一部のファイルだけを、アクセスできないように処理する必要がある。そこの部分を解決しましたよ、というプレゼンだったのでしょう。

結局なんだかよくわからないまま、離脱~




2021年5月22日土曜日

【85】番外編、AtoMへのsudachiインストール更新

以前、Kuromojiよりも語彙や分割能力に優れた形態素解析器sudachiをAtoM2.6に導入できた事例を報告しました。

http://irisawadojo.blogspot.com/search/label/Sudachi

これが全く無効となったことが判明しました。sudachiのバージョンが古くなったためか、git hub上でproject not foundとなって引退です。

https://github.com/WorksApplications/elasticsearch-sudachi/tree/v5.6.16-2.0.2

お疲れ様でした。

というわけで、現行最新ver. AtoM2.6.4のために使っているElasticsearchに、プラグインelasticsearch-sudachiをインストールするための手続きを新たに紹介します。以前より簡単になりました。参照したサイトはhttps://github.com/WorksApplications/elasticsearch-sudachi/blob/develop/docs/tutorial.mdhttps://js-challenge.dev/posts/elasticsearch-install-sudachi/です。

最初にElastic Search (ES)のバージョンを念のため確認。

VMなんかにAtoMをインストールした初期状態では、curlできないのでインストール。

$ sudo apt install curl

$ curl http://localhost:9200

そうしたら、

"version" : {

    "number" : "5.6.16",

    .........

と出ます(AtoM2.6.4)。

ここからSudachiをいれていきます。ESのプラグインであるanalysis-sudachiをインストールします。

めんどいのでrootユーザーになります。

$ sudo su

ES 5.6にあったバージョンのanalysis-sudachiをとってくる。

$ /usr/share/elasticsearch/bin/elasticsearch-plugin install https://github.com/WorksApplications/elasticsearch-sudachi/releases/download/v2.1.0-es5.6/analysis-sudachi-5.6.16-2.1.0.zip

本当に入ったかを確認。

$ /usr/share/elasticsearch/bin/elasticsearch-plugin list

analysis-sudachi

と表示されていたらOK。

次に辞書を入れます。

/etc/elasticsearch/sudachi/ を作成し、そこにsystem_core.dicという名前で辞書を配置します。

$ mkdir /etc/elasticsearch/sudachi

$ cd /etc/elasticsearch/sudachi

最新の辞書のコア版を入れます。フルの辞書が欲しい人は、以下coreのところをfullに書き換えてください。

$ wget https://object-storage.tyo2.conoha.io/v1/nc_2520839e1f9641b08211a5c85243124a/sudachi/sudachi-dictionary-latest-core.zip

うまくいくはずがなぜか拒否されたので、次のページ(http://sudachi.s3-website-ap-northeast-1.amazonaws.com/sudachidict/)からダウンロード。

$ wget http://sudachi.s3-website-ap-northeast-1.amazonaws.com/sudachidict/sudachi-dictionary-20201223-core.zip

$ unzip sudachi-dictionary-20201223-core.zip

$ cp sudachi-dictionary-*/system_core.dic .

Elasticsearchを起動

$ sudo /etc/init.d/elasticsearch restart

次のコマンドでanalysis-sudachiが "plugins”に入っていればOK.

$ curl -X GET 'http://localhost:9200/_nodes/plugins?pretty'

.........

 "plugins" : [

        {

          "name" : "analysis-sudachi",

          "version" : "2.1.0",

          "description" : "The Japanese (Sudachi) Analysis plugin integrates Lucene Sudachi analysis module into elasticsearch.",

          "classname" : "com.worksap.nlp.elasticsearch.sudachi.plugin.AnalysisSudachiPlugin",

          "has_native_controller" : false

        }

      ],

.........

上記のように入っていることを確認。

最後にAtoMの設定ファイルを変更。

$ sudo nano /usr/share/nginx/atom/plugins/arElasticSearchPlugin/config/search.yml

もちろん、nanoじゃなくてviでもいい。

italian:

  tokenizer: standard

  filter: [lowercase, italian_stop, preserved_asciifolding]

の下に

japanese:

  tokenizer: sudachi_tokenizer

  filter: [sudachi_baseform, sudachi_normalizedform]

を挿入。インデントを他の行とずれないように注意。

今回入れたfilterは、sudachi_baseformが形容詞と動詞を終止形にして検索。sudachi_normalizedformが、異体字などを統制して検索してくれる。

filterについては色々あるので、以下を参照。

https://github.com/WorksApplications/elasticsearch-sudachi/blob/develop/docs/tutorial.mdのフィルター説明。

https://www.ai-shift.co.jp/techblog/168 はtoken filterのところ。

https://qiita.com/sorami/items/99604ef105f13d2d472b は様々なフィルターのところ。

$ sudo nano /usr/share/nginx/atom/plugins/arElasticSearchPlugin/lib/arElasticSearchMapping.class.php 

'it' => 'italian’, の下に
'ja' => 'japanese’, を記入。こちらもインデントを他の行とずれないように注意。

Nginxを再起動し、インデックスの再読み込み。

$ sudo systemctl restart nginx

$ sudo php /usr/share/nginx/atom/symfony search:populate

これにて終了。

2020年12月17日木曜日

【74】Alfresco:番外編、レコマネ機能でUser表示

第68回<https://irisawadojo.blogspot.com/2020/10/68alfresco.html>で書かれた「アイテム読み込み時のエラー」は、レコマネ(AGS)でも解決する必要があります。

その解決策がわかったので、番外編として記します。

 バグの修正は、

  1. Dockerfileを作成:docker-compose.ymlと同じディレクトリに"vi(または、nano)"で作成し、
  2. 以下の内容を記載
    FROM alfresco/alfresco-governance-share-community:V3.3.1.x-latest

    ARG TOMCAT_DIR=/usr/local/tomcat
    # Patch for https://github.com/Alfresco/acs-community-packaging/issues/367
    RUN sed -i 's@<show-authorization-status>true</show-authorization-status>@<show-authorization-status>false</show-authorization-status>@' \
       $TOMCAT_DIR/shared/classes/alfresco/web-extension/share-config-custom.xml
  3. docker-compose.ymlの記載、
    share:
         image: alfresco/alfresco-share:6.2.0
      mem_limit: 1g
          environment:

    を、以下に修正。インデントに気をつけます。
    share:
           build:
                 dockerfile: ./Dockerfile
                 context: ./
           mem_limit: 1g
                 environment:
  4. 再度、端末からdocker-compose upで完了
  5. Administratorでログインし、管理ツール→ユーザーで"%"で検索すると、demoで入っているユーザーを含め、こちらで登録したユーザーも確認できました。
2.の最後の行は、$TOMCAT_DIR/webapps/share/WEB-INF/classes/alfresco/share-config.xmlでもおそらくOKです。
3.については、image:以下は不要です。というのも、Dockerfileに書いたFROM以下からPullするように、build:で書いているからです。



以上です。それでは皆様、寒くなってきたのでお体に気をつけて。

補足

alfresco-governance-repository-communityとalfresco-governance-share-communityのVersion指定は、OSに関係していました。
Ubuntu 18.04→V3.3.1.x-latest
macOS Catalina→V3.3.0.x-latest
です。Windows 10などお調べいただければ助かります。



2020年11月29日日曜日

【72】Alfresco:レコマネ機能追加の失敗2→その後成功!

Alfresco SDK 4.1

Alfresco SDK 4.1の設定を再確認。イージフ様のブログを再度参照。

http://labo-blog.aegif.jp/2020/08/alfresco-sdk-41.html

環境変数JAVA_HOMEの設定をしていませんでしたので、

echo "JAVA_HOME='/usr/lib/jvm/java-9-openjdk-amd64'"

を入力しました。

その後、

https://hub.alfresco.com/t5/alfresco-content-services-forum/how-to-install-records-management-in-all-in-one-aio-project-for/m-p/302322

で示される<dependency>をいったんコメントアウトし、Alfresco Community Services (ACS) 6.2が走るかを確認します。

Alfrescoのバージョンを201911GAに合わせるため、run.shやrun.batがあるディレクトリのpom.xmlを次のように設定します。もとは、6.2.0-eaになっています。

<alfresco.platform.version>6.2.0-ga</alfresco.platform.version>

<alfresco.share.version>6.2.0</alfresco.share.version>

こうしてから、

sudo ./run.sh build_start

を実行すると、成功です。ACS 6.2は無事走りました。

Alfresco Governance Services (AGS)に再度、挑戦します。

<alfresco.platform.version>6.2.0-ga</alfresco.platform.version>

にした効果があるかどうかを見てみます。
結論としては、効果がなく、前回と同じエラー。プライベート版を取りにいくという展開に。
諦めます。

Docker Compose


次に、ダメ元で、Docker Composeの方にトライしました。docker-compose.ymlを次の説明書にしたがって書き換えます。

サイトにあるのは、AGS 3.0でACS 6.0.7対応なので、以下のような設定が指示されています。

services:
    alfresco:
        #image: alfresco/alfresco-content-repository-community:6.0.7-ga
        image: alfresco/alfresco-governance-repository-community:3.0.a
        ... 
    share:
        #image: alfresco/alfresco-share:6.0.b
        image: alfresco/alfresco-governance-share-community
        ... 

現在、上の方のimageは
image: alfresco/alfresco-content-repository-community:6.2.0-ga
となっています。これに合うAGSを探します。参照したのは次のサイト。

です。

 image: alfresco/alfresco-governance-repository-community:V3.4-latest

にすると、ユーザーとパスワードを入れる画面には行けますが、入力してもエラーが表示されて、アクセスできません。
V3.3-latest
にしてみると、adminとして、アクセスできました。
しかし、サイトを作成の選択肢に現れるはずの"レコマネ"がありません。
失敗です。諦めます。

次回は、有料版の無料トライアルを試してみます。

冒頭は復習からやりますので、みなさんぜひご参加ください。

後日、成功!

失敗やと思ったら、うまいこといった。Docker Composeの方を使い、docker-compose.yml内の設定をV3.3.1.x-latestにしただけです。


サイトのタイプで、レコード管理サイトが現れました!
次回からはこいつで遊んでいきます。




2020年11月16日月曜日

【71】Alfresco:番外編、Records management機能追加の失敗

道場の一員です。

個人的にAlfrescoにレコマネ機能を加える作業をやっていましたが、失敗しました。今後の進展のため、失敗の記録を残しておきます。

色々ググってみて、Alfresco Community Services (ACS) 6.2にAlfresco Governance Services (AGS)を入れる方法を紹介しているページを見つけました。

https://hub.alfresco.com/t5/alfresco-content-services-forum/how-to-install-records-management-in-all-in-one-aio-project-for/m-p/302322 –1

です。Alfresco SDK 4.1に合わせて作ったようなので、aegif様の次のページを参照し、インストールです。すべて人任せです。

http://labo-blog.aegif.jp/2020/08/alfresco-sdk-41.html

無事終了。

上記リンク1に従い、pom.xmlファイルに追記します。

一つ目は、ディレクトリ<自分でつけた名前>-platform-dockerにあるpom.xmlに、

<dependency>

  <groupId>org.alfresco</groupId>

  <artifactId>alfresco-governance-services-community-repo</artifactId>

  <version>3.4.0</version>

  <type>amp</type>

  <exclusions>

<exclusion>

<groupId>*</groupId>

<artifactId>*</artifactId>

</exclusion>

  </exclusions>

</dependency>

を入れます。

二つ目は、ディレクトリ<自分でつけた名前>-share-dockerにあるpom.xmlに、

<dependency> 

  <groupId>org.alfresco</groupId>

  <artifactId>alfresco-governance-services-community-share</artifactId>

  <version>3.4.0</version>

  <type>amp</type>

  <exclusions>

<exclusion>

<groupId>*</groupId>

<artifactId>*</artifactId>

</exclusion>

  </exclusions>

</dependency>

を記入します。

そして、

./run.sh build_start

でAlfrescoを起動...しませんでした。

エラーメッセージは次のようなものです。

--

[ERROR] Failed to execute goal on project <自分でつけた名前>- platform-docker: Could not resolve dependencies for project dojo:<自分でつけた名前>-platform-docker:jar:1.0-SNAPSHOT: Failed to collect dependencies at org.alfresco:alfresco-governance-services-community-repo:amp:3.4.0: Failed to read artifact descriptor for org.alfresco:alfresco-governance-services-community-repo:amp:3.4.0: Could not transfer artifact org.alfresco:alfresco-governance-services-community-repo:pom:3.4.0 from/to alfresco-public (https://artifacts.alfresco.com/nexus/content/groups/public): artifacts.alfresco.com: 名前またはサービスが不明です: Unknown host artifacts.alfresco.com: 名前またはサービスが不明です -> [Help 1]

[ERROR] 

[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.

[ERROR] Re-run Maven using the -X switch to enable full debug logging.

[ERROR] 

[ERROR] For more information about the errors and possible solutions, please read the following articles:

[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException

[ERROR] 

[ERROR] After correcting the problems, you can resume the build with the command

[ERROR]   mvn <goals> -rf :<自分でつけた名前>-platform-docker

--

alfresco-governance-services-community-repoが見つかりませんとさ。https://artifacts.alfresco.com/nexus/content/groups/publicに入ったら、色々ファイルがあってよくわかりませんでした。ギブアップです。

諦めて、バイオレンス映画見ます。


続編

バイオレンス映画数本見て一週間後、上記と同じことをやってみました。すると違うエラーが出ました。

<以下、引用>

[INFO] ------------------------------------------------------------------------

[INFO] Reactor Summary for AIO - SDK 4.0 1.0-SNAPSHOT:

[INFO] 

[INFO] AIO - SDK 4.0 ...................................... SUCCESS [03:28 min]

[INFO] Alfresco Platform/Repository JAR Module ............ SUCCESS [41:14 min]

[INFO] Alfresco Share JAR Module .......................... SUCCESS [05:12 min]

[INFO] Integration Tests Module ........................... SUCCESS [  0.777 s]

[INFO] Alfresco Platform/Repository Docker Module ......... FAILURE [  8.322 s]

[INFO] Alfresco Share Docker Module ....................... SKIPPED

[INFO] ------------------------------------------------------------------------

[INFO] BUILD FAILURE

[INFO] ------------------------------------------------------------------------

[INFO] Total time:  50:19 min

[INFO] Finished at: 2020-11-21T20:11:27+09:00

[INFO] ------------------------------------------------------------------------

[ERROR] Failed to execute goal on project <自分でつけた名前> -platform-docker: Could not resolve dependencies for project dojo:<自分でつけた名前>-platform-docker:jar:1.0-SNAPSHOT: Failed to collect dependencies at org.alfresco:alfresco-governance-services-community-repo:amp:3.4.0: Failed to read artifact descriptor for org.alfresco:alfresco-governance-services-community-repo:amp:3.4.0: Could not transfer artifact org.alfresco:alfresco-governance-services-community-repo:pom:3.4.0 from/to alfresco-private-repository (https://artifacts.alfresco.com/nexus/content/groups/private): Not authorized , ReasonPhrase:Unauthorized. -> [Help 1]

[ERROR] 

[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.

[ERROR] Re-run Maven using the -X switch to enable full debug logging.

[ERROR] 

[ERROR] For more information about the errors and possible solutions, please read the following articles:

[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException

[ERROR] 

[ERROR] After correcting the problems, you can resume the build with the command

[ERROR]   mvn <goals> -rf :<自分でつけた名前>-platform-docker

<引用終わり>

alfresco-private-repository (https://artifacts.alfresco.com/nexus/content/groups/private)という有料会員向けのページにアクセスしに行っています。こっちはcommunity(無料)試してるのに、そらあかんやろ。

続いて、インストールしたAlfrescoディレクトリ内のトップにあるpom.xmlファイルをチェック。alfresco-private-repositoryにアクセスさせようとする記述があったので、コメントアウト。すると次のエラーに遭遇しました。

<引用始まり>

[INFO] BUILD FAILURE

[INFO] ------------------------------------------------------------------------

[INFO] Total time:  22.736 s

[INFO] Finished at: 2020-11-21T20:36:35+09:00

[INFO] ------------------------------------------------------------------------

[ERROR] Failed to execute goal on project <自分でつけた名前> platform-docker: Could not resolve dependencies for project dojo:<自分でつけた名前>-platform-docker:jar:1.0-SNAPSHOT: Could not find artifact org.alfresco:alfresco-governance-services-community-repo:amp:3.4.0 in alfresco-public (https://artifacts.alfresco.com/nexus/content/groups/public) -> [Help 1]

[ERROR] 

[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.

[ERROR] Re-run Maven using the -X switch to enable full debug logging.

[ERROR] 

[ERROR] For more information about the errors and possible solutions, please read the following articles:

[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException

[ERROR] 

[ERROR] After correcting the problems, you can resume the build with the command

[ERROR]   mvn <goals> -rf :<自分でつけた名前>-platform-docker

<引用終わり>
 alfresco-public (https://artifacts.alfresco.com/nexus/content/groups/public)という無料版に、入れたいモジュールがないらしい。一体どこにある?

SDKを諦めて、Dockerに戻しましたが、やはりレコマネを選択できませんでした。

腹立たしいので、またバイオレンス映画見ます。



2018年7月31日火曜日

atomにおけるcsvインポート(アップデート)について

マニュアルより
  • 上のリンク先の第2パラグラフに、「legacy ID」は「source_id」という名前でデータベースに登録されます。確認したい人はコマンドラインか、phpMyAdmin等のツールを使ってね、と記述あり。
    • atomのインタフェースからは確認できない模様
    • ということで、csvでインポートする際のlegacy IDは覚えておく必要あり(忘れた場合の対処法は後述)
    • やはり、登録時のlegacy IDをキーとして、Update時におけるマッチ判定をしていそう
  • phpMyAdmin等のツールを使ってデータベースを覗けば確認できるということで、確認してみた。

    • 上記はサンプルデータ(legacy IDが「1」と「2」)をインポートしてみた結果
    • 確かにlegacy IDの値はsource_idとして登録されており、またエクスポート時に出現するjob idに基づいて与えられるid(4XXや5XX)は、target_idとして格納されている
    • legacy IDを忘れてしまっても、上記のテーブルを参照すれば、再現可能

検証環境(Amazon AWS)

試行錯誤の内容

1.「Example_information_objects_isad-2.3.csv」をインポート
  a. 2行(1フォンド、1アイテム)
  b. legacy IDは「1」と「2」
  c.

2. 1をAtoMからエクスポート
  a. ファイル名は「isad_0000000001.csv」
  b. 2行(1フォンド、1アイテム)aaaa
  c. legacy IDは「446」「469」

3. 2でエクスポートしたファイルを「Example_information_objects_isad-2.3.csv」にRenameしてインポート
  a. ファイル名は「Example_information_objects_isad-2.3.csv」
  b. 2行(1フォンド、1アイテム)
  c. legacy IDは「446」「469」
  d. オプションは「create」
  e. 結果、2行(1フォンド、1アイテム)が新規に登録される
  f.
  g. 【わかったこと】legacy IDがsource_idとして登録される。

4.(質問への回答)source_idが469(target_id:497)の親Fondsを他のFondsにatomのインタフェース上で変更
  a. 結果、parentIdのみ変更される
  b.
  c.【わかったこと】親子関係が変わっても、source_id(legacy id)やtarget_idは変わらない => atomのUI上で親子関係を変更しても問題なさそう

5. 1でインポートしたcsvを「name_changed.csv」に変更し、インポート
  a. ファイル名は「name_changed.csv」
  b. 2行(1フォンド、1アイテム)
  c. legacy IDは「1」「2」
  d. オプションは「create」
  e. 結果、2行(1フォンド、1アイテム)が新規に登録される
  f.
  g.【わかったこと】legacy idは重複し得る。

6. 5のcsvのタイトルを変更してUpdate
  a. 

  b. ファイル名は「name_changed.csv」
  c. 2行(1フォンド、1アイテム)
  d. legacy IDは「1」「2」
  e. タイトルは「abd」「def」
  f. オプションは「update」
  g. 結果、 5で登録された2行(1フォンド、1アイテム)のみ更新される
  h.


  i.【わかったこと】legacy idが重複した場合はsource_nameが一致するもののみアップデートされる。


ここまでの考え
csv export時のlegacy ID(= keymapテーブルにおけるtarget_id)は意味なさそう
=> これがupdate時のマッチング判定には使われなさそう。やはり import時のlegacy ID(= keymapテーブルにおけるsource_id)が重要そう。
引き続き要検討です。

7. 3のcsvのファイル名とタイトルを変更してUpdate
  a.


  b. ファイル名は「名前変更.csv」
  c. 2行(1フォンド、1アイテム)
  d. legacy IDは「446」「469」
  e. タイトルは「source_nameとtitleを変えてみた。legacy idは登録時のものを参照。」「source_nameとtitleを変えてみた。legacy idは登録時のものを参照。」
  f. オプションは「update」
  g. 結果、 新たに2行(1フォンド、1アイテム)が追加される
  h.
  i. 【わかったこと】legacy idが一致しても、source nameかつtitleが違う場合にはマッチ判定されない。
       ①第一条件:legacy idは一致するが、source nameが異なるため、第一条件の
          マッチ判定は通らない
       ②第二条件:title, repository name, identifierの一致を見るが、titleが異なるため

          マッチ判定は通らない
       ③結果:新規に追加される


8. 7のcsvをベースとして、ファイル名(source_name)とlegacy id(source_id)を維持した上で、タイトルのみを変更してみた
  a. ファイル名は「名前変更.csv」
  b. 2行(1フォンド、1アイテム)
  c. legacy IDは「446」「469」
  d. タイトルは「Legacy idとsource_nameを維持した上で、titleだけ変えてみた
     fonds.」「Legacy idとsource_nameを維持した上で、titleだけ変えてみたitem.」
  e.オプションは「update」
  f. 結果、7でインポートした2つのタイトルが更新された。
  g. わかったこと】タイトル(or repository or identifier)を変更したい場合には、
      source_id(インポート時のlegacy id)とsource_name(csvファイル名)を揃える
      必要ありそう

(END)

2018年7月7日土曜日

AtoMのCSVによるupdate条件の実験


CSVを利用して、すでにある記述をupdateする際のマッチング条件

・第一条件:Legacy IDとsource_nameがマッチングすればupdate
・第二条件:第一条件を満足しなければ、tilte, repository, identifierがマッチングすればupdate


以下は実験による、kepmapテーブルの変化
kepmapテーブルでは、Legacy ID はsource_idと同一で、target_idはexport時に自動で付与されて出てくるLegacy IDと同一。

実験①
画面キャプチャーなし

実験②
画面キャプチャーなし

実験③
Legacy ID、source_nameが異なり、title、repository, identifierが同じ場合
データは問題なく更新され、keymapには新しいsource_idに元のtarget_idが付与された。

以下keymapテーブルのキャプチャー画面(phpMyAdminを利用)




※同じファイルを2回createした時
Source_idは同一で、target_idが新しく付与される。
タイトルだけを変えてデータを更新してみると、後で登録したフォンド(target_idが947,962)だけが更新された。

以上






2018年6月23日土曜日

ふたたびワークフロー問題

すみません。なんだかやはりこの問題が気になっちゃって。
ちょっと古いArchivematicaのフローを見てみると、やはりSIP段階でDCメタデータを付与しています。

https://wiki.archivematica.org/images/9/96/Archivematica-0.6-WorkflowInstructions-v3.pdf

たしかに、Archivematicaを通さないとウィルスなどチェックできないので、micro-serviceを全部通しちゃって、DIPをAtoMにuploadしちゃえば、ArchivematicaのGUIよりはずっとましです。そしてAtoMにのせてしまうと、今度はAtoMのGUIでは、アイテムレベルを一つ一つ記述するのはたいへん。そこでいったんexportして、記述し直して再インポートする、というフローを今実現しようとしているわけですよね。で、そのうえでもう一回その全体をArchivematicaに入れ直せば、Archivematicaに保存用のAIPとして大事に保存されるのは、記述メタデータつきのよいデータと言うことになる。それもわかるんですが、でもなんだか妙にムダが多いようにも思います。

デジタルオブジェクトは基本的にフラットにArchivematicaには入っていくわけで、それをDCでとりあえず最低限記述しておく(つまりアイテムのタイトルなどはついている)。それをSIP段階で編成すれば、METS上で、Structmapでしたっけ、あそこのlogicalにその編成が反映される。そうすればAtoM上には構造を持ったデータとして入っていく以上、あとはフォンドやシリーズなど上位レベルの記述を充実させるだけですから、それはGUIでもいい、という感じなのではないかなーと。なんか、その方が楽じゃないですかね。

でもやっぱり違うのかなー。悩ましいなー。

でもやっぱり(しつこいですね(笑))これでもpre-ingestでdescriptive metadataつけてる。

https://inforum.library.utoronto.ca/sites/inforum.library.utoronto.ca/files/course_files/winter2018-archivematica-slides.pdf

CCAのTim Walshも、当初BitCuratorでdescriptionつけたりもしていたようですね。
https://www.bitarchivist.net/blog/2017-05-01-buf2017/

ではまた7/5に!




2018年5月25日金曜日

AtoMでCSVのimport (自習メモ1)

AtoMのマニュアル(下記)を読んで書くメモです~
長すぎるため、どこまでできるか分からないけど…
https://www.accesstomemory.org/en/docs/2.4/user-manual/import-export/csv-import/#update-existing-descriptions-via-csv-import

CSVインポートのウェブサーバでのタイムアウトを避けるために、裏で非同期的に行われる。これはAtoMのGearmanが管理。「Manage>Jobs」ページで確認できるって。
CSVをインポートするユーザーは管理者としてログインすること。

=======================================

★★データをインポートする前にやること★★

1)インポート作業の複雑さを予想:AtoMがインストールされているサーバーのコマンドラインから、「csv:chenk-import」コマンドを利用して、CSVファイルを確認。行と列の数や、パイプ文字「|」がどのくらいあるか、サンプル行の値(?)を調べる。

2)列(column)を合わせること:CSVの最初列は項目名が入る(データを入れないこと)、項目名の順番は変えないでね。そのままAtoMで表示される。決まったテンプレートを使うこと。我々はISADを使う。

3)文字はUTF-8でなければならない。Windows, MacのスプレッドシートはUTF-8ではない。注意してね。オープンソースのLibreOffice CalcはUTF-8への変換が可能。Excelをいじりたい場合はここ↓
https://answers.microsoft.com/ja-jp/msoffice/forum/msoffice_excel-mso_winother-mso_2010/excel-%E3%81%A7-utf8-%E3%81%AE-csv/25d8bea2-f20c-4feb-9216-e06cb3bf0757

4)end-of line characterはUnix/Linuxの改行文字を使う
=Line ending、EOL(End of Line)、line breakともいう。

Unix / Linux / FreeBSD / OS X use LF (line feed, \n, 0x0A)
Macs prior to OS X use CR (carriage return, \r, 0x0D)
Windows / DOS use CR+LF (carriage return followed by line feed, \r\n, 0x0D0A)

つまり、システムによって、改行を表す文字が異なるので注意!AtoMは「\n」を使う。
ExcelだとAtoMと合わないnewline characterが沢山ある。\rを削除する方法は下記が参考になるかも(やってみてないけどできるはず…^^;)
https://linux.just4fun.biz/?%E9%80%86%E5%BC%95%E3%81%8DUNIX%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89/%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%81%8B%E3%82%89%E6%94%B9%E8%A1%8C%E3%82%92%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B#f76585db

5)データ変換
もし他のシステムからエクスポートしたCSVであれば、AtoMへ合わせて変換してね~
(当たり前だけど親切に書いてくれてる…あまり親切じゃない時もあるけど…)

6)時間を予想
例えば20,000ある場合、1000やってみて×20で時間を予測してね~

7)テスト
準備ができたらcloneを作成してテストしてから、本番サーバーに入れてね~
でもcloneの作成方法がわからないのじゃ… 
多分↓のことだろうけど。
http://www.itmedia.co.jp/enterprise/articles/0811/20/news019.html



今日はここまでかな。
時間掛かり過ぎ。しょぼん…


作成:Bee



2018年4月8日日曜日

Archivematica demoで遊んでみる

とりあえずサンプルデータで、数の少ない単純なものをつかって、複数回トランスファー→store AIPまでやってみた。最後に、test5で、backlogのSIPをarrangeするのを試してみた。2度ほど失敗(笑)。2つしかないobjectsを、新しいディレクトリを2つつくって一個ずつ入れてみた。しかし、Upload DIPのreviewから見ると、DIPのディレクトリ構造は変わっていない。

でも、METSではちゃんと分かれている。
-<mets:div TYPE="Directory" LABEL="objects">
-<mets:div TYPE="Directory" LABEL="object_jpg">
-<mets:div TYPE="Item" LABEL="Landing_zone-cbdfc906-ff07-443c-8b29-e4f96bcdf297.tif">
<mets:fptr FILEID="file-cbdfc906-ff07-443c-8b29-e4f96bcdf297"/>
 </mets:div>
-<mets:div TYPE="Item" LABEL="Landing_zone.jpg">
<mets:fptr FILEID="file-bb3bbfdb-88a5-4259-9406-f2d0c0767867"/>
</mets:div>
</mets:div>
-<mets:div TYPE="Directory" LABEL="object_others">
-<mets:div TYPE="Item" LABEL="MARBLES-31f507c7-bc3d-493a-9ca1-6235a588255e.tif">
<mets:fptr FILEID="file-31f507c7-bc3d-493a-9ca1-6235a588255e"/>
</mets:div>
-<mets:div TYPE="Item" LABEL="MARBLES.TGA">
<mets:fptr FILEID="file-0ab7311a-8564-4ce3-9d28-b99e29836af5"/>
</mets:div>
</mets:div>

AIPをダウンロードして見てみると、こちらもちゃんと分かれている。

ユーザーインターフェースで見えることと、システムの中で起こっていることとは違うということなのだろうか。うーむ。

何はともあれ、とにかくnormalizeされたファイルと、オリジナルのファイルと、サムネイルとがちゃんとAIPに入っていること、全体がbagitの定める通りの構造になっていること、そしてAIPとDIPのMETSは同じだということは自分でも確認できたのでよかったです。はい。

あと、METS structmapに出てくるFILEIDやLABELは、METSの中での関連づけや意味のわかりやすさのためにある属性で、具体的なオブジェクトの名前的なものではないようだ。オブジェクトは基本的にPREMISのobjectIdentfierで一意に識別される。当たり前といえば当たり前なのだが、あまりに情報量が多いので、心が揺れてしまう。

それから、スクリーンショットを取るならGoogleのアプリ、FireShotがおすすめ。どんなに長ーい画面でも一発でキャプチャーできます。
https://chrome.google.com/webstore/detail/take-webpage-screenshots/mcbpblocgmgfnpjjppndjkmgjaogfceg?hl=ja

最近の投稿

【108】Archives in the Digital Age: The use of AI and machine learning in the Swedish archival sectorを読む

 Gijs Aangenendt氏の修士論文、Archives in the Digital Age: The use of AI and machine learning in the Swedish archival sectorを半分読みました。 前半は、AIを扱ったアーカ...

人気の投稿