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年12月11日金曜日

【73】Alfresco:レコマネ機能を試してみよう!

 今日は、前回から今日までのあいだに、優秀なエンジニアH氏が成功したレコマネ機能を追加するところから始めました。

♪♪さ~いってみよう♪♪

が!!あれれ???何故かエラー・・・

どうやら、【68】10月24日付本ブログの問題にあたった??ようですが、うまくいかずでして。。。

われわれはそんなことでは負けません。スキップスキップ、問題はスキップです。H氏が成功したマシーンでレコマネ機能を試していきます。

気を取り直して!! docker-compose up !!


マニュアルを参照しながら取り組んだのですが。。。実際のところ問題なく動きました。よね?
マニュアルは、”Alfresco Governance Services 3.2”を参照しました。アプリの日本語訳が英語のニュアンスと合致しないことから、いろいろと議論しながら進めました。具体的には、

"Getting started with Governance Services""Life cycle of a record""Getting started for Records Managers"の機能を試してみました。
手順毎に、操作方法について動画が添付されていますので、それを確認しながら進めることができます。
(※道場のメンバーはなぜか、こういったところでこだわりを出し、結果、仮称や仮の設定で揉め出す。。。あれってなんなんすかね)

Records Managers”を始める前に、サイトの作成など、事前設定を行います。
管理ツール”にある“ユーザー”から”新しいユーザー”を追加していきます。
次いで、“サイトの作成”で適当なサイトを作成します。その際、サイトタイプ??で“DOD5015.2”を選択しました。これで、サイトが作成され、ユーザーの追加・追加したユーザーの役割を設定していきます。

ここから、本日の本題にはいっていきます。
”整理保管プラン”(File Plan)で適当なプラン、ここでは動画にならって「健康管理」を作成し、それに保管スケジュール、保管スケジュールの段階、フォルダの追加やユーザーの権限を設定していきます。
この作業については、マニュアル以上に書きようが無いのですが。。。とにもかくにも、この作業で困ったのは、重複しますが、原点がどの日本語訳に当てられているのかとても分かりにくく、その照合が大変でした。
そして、意味?区分け?がよく分からない点もいくつかありました。例えば、

”title””name”

などなど。日本語にすると、同一になるものもあり、実際、重複する選択項目があったりしてその点はとても分かりにくいです。

全く身の無い、内容ですみません。とはいえ、ユーザーの検索がエラーになった以外は、一歩進められることができ、有料版ではなくてもレコードマネージメントで使用できそうな感じ?が見えたので今日は充実してたなと思います。
感想を書いている感じですが。。。そもそもこれを書いている拙H(優秀エンジニアとは別人)は、途中で主夫業に戻る必要があったので、退出してしまったことがこうした感想文になったことの最大の要因かと。。。出しゃばってすみませんでした。

次回は、来年1月8日です。来年は本当に良いお年を!と祈るばかりです。


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に戻しましたが、やはりレコマネを選択できませんでした。

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



2020年11月15日日曜日

【70】Alfresco:アスペクト管理機能とスマートフォルダ設定を中心に

今日は橋本さんのAlfresco Community Editに現Alfresco Governance Services(RM=」Records Management」)Moduleを追加する作業!の失敗事例の紹介から始まりました。

なんか...OSSのコミュニティ版にもOSSのガバナンス版が組み立てることができなすが、2020年11月現在、双方どちらかのバージョンが合わないようです。またどちらかのバージョンをダウングレードしようとしても、公開されているデータが0kbになっていたり、頻繁に書き換えられているため、イージフさんやアルフレスコハブのインドの方の投稿など、様々参照し、最後まで努力したけど、うまく立ち上がらなかった。

ということでした。詳しい内容については川田さんがメモしてくれましたが、ここでは割愛させていただきます。もしこのサイトを見て「私はできたよ!」という方は、hub.alfresco.com等にわかりやすくアップロードしてくださるか、このチームに助け舟をお送りいただくと、とても助かります(涙)橋本さん、お疲れ様でした!


というので、docker-compose.ymlファイルが入っているディレクトリにCDし、「docker-compose up」で、Alfrescoを起動させましょう!

アドレスlocalhost:8080/share/に接続。

どなたかのIDでログインします。

先週はワークフローの試しをやってみました。


今回は「アスペクト」という機能を試しました。

ホーム→マイファイル→ファイルごとの「…その他」→アスペクトの管理


各機能の説明や使い方等については、以下のマニュアルを参照しながら試してみました。

https://docs.alfresco.com/6.2/concepts/admintools-using-cmm.html

例えば、以下の画像に出ている項目を追加・排除することができます。

「変更を適用」し、その後、マイファイルのファイルごとの「プロパティの編集」をクリックすると、プロパティの項目に先ほど追加したアスペクト項目が追加され、設定できるようになります。例えば、上の図の「法令順守可能」項目を追加したら、以下の図のような法令順守可能期間などの設定ができる項目が追加されます。SMTPでe-mailをつなげることなどもできるし、スマートフォルダを設定することができたり、必要な項目を設定することができます。

さて、ここで「スマートフォルダ」って何だろうということで、調べてみると「スマートフォルダは、Alfresco Share内のあちこちにあるファイルを1つのフォルダにまとめる機能で、同類のファイルを一度にすばやく見つける時に便利です。スマートフォルダを開くと検索が実行され、その結果が表示されます。画面上ではフォルダですが、リポジトリ内に物理フォルダが作られるわけではないので、"スマート"と呼ばれます。(出典:https://docs.alfresco.com/using-ja/concepts/sf-using-intro.html)」と書かれています。早速、試してみたい。
しかし、アスペクトで追加し、プロパティを編集しても、スマートフォルダは選択できませんでした。


スマートフォルダはデフォルトで設定されていなかったため、選択できませんでした。少し面倒ですが、マニュアルを調べて、アルフレスコの設定ファイルを修正する必要があります。Enabling Smart Folders(https://docs.alfresco.com/6.2/concepts/smart-video-02.html)のビデオを見ながら「\tomcat\shared\classes\alfresco-global.properties」ファイルの最後あたりの修正します。「smart.folder.enabled=false→true」にし、アルフレスコを再起動させます。その後、adminアカウントでログインし、「レポジトリ」タブをクリック、その中にスマートフォルダができているかを確認し、必要な設定を行えば、アルフレスコの利用者がスマートフォルダを使うことができるようになります。

とのことでしたが!!adminの設定が足りなかったのか、スマートフォルダが選択できなかったため、躓いてしまいました。


ということで、次回の道場は再来週の11月27日(金)19:00からです。もしご参加ご希望の方や、ご不明な点、内容にご指摘がありましたら、いつでも当道場にお声掛けください。



2020年10月31日土曜日

【69】Alfresco:ワークフローを中心に

今日もAlfrescoの続きです。
前回の続きということで、今日はワークフローを触ってみます。

前回「コロナ政策」というサイトを作り、メンバーも追加して、いくつか文書を登録している状態ですので、今日は登録されている文書を編集→起案(ワークフロー開始)→レビューしてもらうという流れを想定してみます。

まず、ファイル編集する方法はマニュアルの通りに進めます。
Alfresco documentation
チュートリアル

チュートリアルがわかりやすかったのですが、(Google Docsで編集する場合は)編集後、(Google Docsは自動保存なのでそのままタブを閉じて)Alfrescoに戻り、Google Docsをチェックインすると、編集したファイルのバージョンをどうするか選択。そうするとAlfrescoに反映されます。

ただ登録されているファイルの中を見ると、日本語が文字化けしました。これは日本語フォントがないためなので、大きい問題ではなさそうです。方法は以下のブログが詳しい。

Alfrescoのプレビューで日本語が文字化けする問題

では、タスクとワークフローに進みます。
マニュアルはここ↓
https://docs.alfresco.com/using-ja/concepts/mytasks.html

やり方はマニュアルやチュートリアルに譲り、ここでは迷ったことを中心に書きましょう。タスクがあって、それをみんなで進めるために、ワークフローを開始するわけですが、どうもそのやり取りが上手く理解できませんでした。今日想定していた、ファイルを編集し、それを見てくれと渡し、その返事が帰ってくる。このような流れです。

全体的には以下のような流れで進めます。
  1. タスクを作成
  2. ワークフローを開始
  3. 確認してほしい内容をメッセージ欄に記入
  4. レビュアーを選択
  5. アイテム(ここでは文書)を添付
  6. ワークフローを開始

そうすると、レビュアーのところには確認を待っているタスクが表示され、以下のような画面から確認結果を戻すわけです。



ここでよくわからないのが、ステータスと承認と却下の使い方です。

ステータスには、開始前、進行中、保留中、キャンセル済み、完了済みで選択可能です。これはレビュアーが変更しても起案者には見えませんでした。起案者のところにも、タスクの管理には同じステータスメニューがあります。これは、おそらく自分でタスクの状況を管理するためなのではないかという話になりましたが、なんだか仕組みがよくわかりません。

承認と却下ですが、却下の場合通常であれば再度提案できるかなと思うわけですが、そうではなく完全に終了するみたいです。マニュアルを読むと、承認か却下をすると、レビュアーのタスクリストからは完了したということで消える。起案者(ワークフローを開始した人)に戻るらしいですが、なんだかやり取りが簡単過ぎて冷たい。何度かやり取りする場合にはどうするんだろうという話になりました。

マニュアルを見ても、この両者のやり取りがどう行われるのか、ちょっとわかりにくいです。

タスクを管理する

このやり取りについては、以下に例が書いてありました。(後日調べ、Hさん、サンキュ!)
次回はこれがちゃんとシステムに反映されることを確認ですかね。

オープンソース徹底活用 Alfrescoによるドキュメント管理入門

とにかく以下は、却下されたワークフローの事例です。
Igarashiさんが起案して、Horiuchさんがこんなもん出せるか!とコメントし、3分後に却下したことがわかります(画質悪くてすみません!)。きちんと確認もせず、こんなコメントを出すなんて、もはやパワハラです。(これはもしかしてパワハラの証拠としても使える?笑)


ちなみに、可愛そうなサラリーマンIgarashiさんはこちら(あまり見えませんが…笑)パージョン履歴もこのように表示されます。



なんとなくここまで来ました。Alfrescoは他と違って、有料版があるので参考書籍が出ているようですね。商売になるとやはりこうなりますか…お金は大事ですね。

ではでは、次回は11月13日(金)19時ころ〜です。
次回は、ワークフローの再確認と、Community版は記録管理機能があるのか?(後日の質問)などを確認しましょう。

後日追加

記録管理機能(Alfresco Governance Services (AGS))の無料版モジュールがありました。以下のサイトを参照。

Alfresco Governance Services Community Edition 3.0

AGS 3.0インストールのページ

Alfresco Community Services (ACS) 6.2(今試しているソフト)リリースの説明文
ACS6.2に合うのはAGS3.2と説明されている。

ACS 6.2に合うAGS 3.2は入手可能か?という質問
なさそうなので、ACSのダウングレードがいるかも。そうでないといいなあ。

2020年10月24日土曜日

【68】電子的記録管理ツールのAlfresco(アルフレスコ)のユーザー管理とバグと。。。

  今回は、前回の続きからスタートです。開始直後は皆さんお仕事が忙しく、参加者が少なかったことから、今後の展開についての議論に飛びがちでした。。。

 まずは、前回インストールしたAlfrescoを端末から起動します。

 cd alfresco/
   docker-compose up
 "complete"で起動完了です。

 まずは、Administratorでログインし、管理ツールユーザー で、前回登録した二人のdemo用ユーザーを確認しようとするも、"アイテム読み込み時のエラー"が。。。
 チュートリアルで確認すると、検索する際に"%"を入れると、ワイルドカードとなり、全登録ユーザーを確認することができるとのことなので、試してみるも

そうそう!そうだよね!簡単じゃないよね!
!!!アイテム読み込み時のエラー!!!

 同じエラーがある人を検索してみると、数件ヒットしました。今回、解決にむけて参照したのは、「aegif Laco Blog」の"Alfresco 201911GAで管理ツールからユーザ検索できない問題の解決方法"にある"Dockerfileで修正する場合"の手順で行いました。詳細については、ブログにゆずりますが、要は、このバグは、有償版のためのバグ修正の結果のバグということで。。。無償版を使う我ら道場では、バグ修正のバグにはまるのは必然のようです。

 バグの修正は、

  1. Dockerfileを作成:docker-compose.ymlと同じディレクトリに"vi"で作成し、
  2. 以下の内容を記載
    FROM alfresco/alfresco-share:6.2.0

    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/webapps/share/WEB-INF/classes/alfresco/share-config.xml
  3. docker-compose.ymlの記載、
    share:
         image: alfresco/alfresco-share:6.2.0
       mem_limit: 1g
          environment:

    を、以下に修正。インデントに気をつけてください!!!
    share:
        image: custom-alfresco-share:development
        build:
               dockerfile: ./Dockerfile
               context: ./
        mem_limit: 1g
                environment:
  4. 再度、端末からdocker-compose upで完了
  5. Administratorでログインし、管理ツール→ユーザーで"%"で検索すると、demoで入っているユーザーを含め、こちらで登録したユーザーも確認できました。
 ユーザーの詳細情報を追記するためには、Administratorではできず、各ユーザーがログインし、情報を更新する必要があります。個人情報の管理は、Administratorでも介入できないということのようです。
 次に、なにをしようかということに。まずは、ということで、ダッシュボードの"サイト"欄でサイトを作成してみました。"サイト"ですが、組織内で立ち上げたプロジェクト=サイトという認識でよいようです。今回は、ベタに"コロナ対策"というサイト名にしました。URL欄は、半角アルファベットと半角数字のみが有効です。"コロナ対策"は日本語ですので、改めて"covid19"に設定し、作成しましたところ、無事に完了しました。
 サイト管理で、"コロナ対策"サイトにユーザーを追加し、役割を設定します。
 追加したユーザーでログインし、ファイルのアップロード(ドラッグ・アンド・ドロップ)し、共有設定をオンに。ここで私たちが想定していたのは、共有=サイト内共有というものでしたが、サイトの登録関係無く、全共有となります。これではまずい!ということで、サイトからファイルをアップロードしました。すると、サイト登録者で共有されました。さらにさらに、ユーザーがアップロードしたファイルのメニュー欄にある"移動"→"サイト"を選択すると、ファイルをサイトに移動させることが可能となります。
 サイトで共有されたファイルですが、登録時に設定した役割によって、編集権限に段階が付けられるようです。
 ファイルのメニュー機能をさらにいろいろと試してみました。
  • PDF等、ブラウザで表示できるファイル形式は、そのまま確認・編集できる。
  • Googleドキュメントはそのまま編集できるが、MS OFFICEフォーマットは"編集"をクリックするとダウンロードされます。
  • アスペクト管理は、ファイルに"法令遵守"や"ダブリンコア"などを設定することができます。
以上を試したところで、バッテリーが付き、次回に持ち越すことになりました。次回は、ワークフローを設定するところから試してみることになります!

 今回の感想ですが、alfrescoは組織内でのファイル管理などで、かなり有効なのでは?という期待が持てました。次回お楽しみに!次回は、いろいろと勘案した結果、来週30日(金)です。ご注意ください!!

 なんだか、説明が多くなり申し訳ございません。ご容赦を!


2020年10月9日金曜日

【67】電子的記録管理ツールのAlfresco(アルフレスコ)の試しを始めます(Dockerインストールから)

今日は19時22分まで4人しかあるまらず、泣く泣く元(ウォン)が初めてブログを書きます。えーとー一回でもウォンにあったことのある方はご存じでしょうが、ものすごい散漫でせっかちですので、通じない日本語や表現の下手さなどにはくれぐれもご容赦ください。また下手な表現には遠慮なくご指摘ください。

では始まります!


Alfrescoを触ってみたい理由

ISO15489準拠の記録管理のアプリケーションのOSSは数少ない

アルフレスコは不完全ながらOSS

記録管理標準はよく言われるけど、そうはいったもののアプリを触ったことがほぼない

有料版のほうがいいらしいが、まだ無料の「community版」があるので試せることができる

Alfresco Communityエディション

(https://www.alfresco.com/jp/ecm-software/Alfresco-Community%E3%82%A8%E3%83%87%E3%82%A3%E3%82%B7%E3%83%A7%E3%83%B3) 

はい、ダウンロードするところから、橋本のAppleパソコンでは、ダウンロードに必要な情報入力画面が出てこず...今日はこれで終わりかと(笑)

でも無事選択できました。

ダウンロードするには例えばこんな情報を入れてください。


その後、指示がでます。

こんなメールも来ます。

Alfresco Community Edition - Download now

There are multiple options to test and deploy the Alfresco Community Edition to suit a variety of needs and skill levels, from business user to advanced technical expert.

6.2 (GA) - Containerized Deployment

Install video
  1. Install Docker and start it
  2. Download and unzip the Docker Compose file Alfresco Community Download 6.2 GA docker-compose
  3. Open a terminal window and navigate to the folder where the docker-compose.yml file is located
  4. Run docker-compose up

従ってやってみてください。

まず、Docker(ホストOSの上に仮想マシンみたいなもので、Dockerの上に複数のアプリを実行させることができる。仮想マシンと違うのは、ホストOSの上にそのまま乗っかって、ネットワーク設定とかもいらないもの)を入れます。

正確にDockerはこんなものです。
Docker:https://www.docker.com/
Docker入門:https://knowledge.sakura.ad.jp/13265/

お読みください。

以前、ウォンが自分のパソコンにインストールする際には、ちゃんと読まずに入れました(笑)あ、そして今回Macに入れてますが、WindowsにはWindows Pro版のみインストールできるのでご注意ください。

そして「やれ」ってことをやって(https://www.alfresco.com/jp/thank-you/thank-you-downloading-alfresco-community-edition)...

最後に「Desktop\Trial\docker-compose.yml」を実行してください。

プロセスを見たいなら、コマンドの「top」「q」をお使いください。

で、http://localhost:8080/share に接続できるようになります!


インストールできたところで、まずTutorialをみてみます。https://docs.alfresco.com/community/concepts/alfresco-tutorial-02.html

そして上部の黒いバーの「管理ツール」タブを選択し、ユーザを作ってみたりしますhttps://docs.alfresco.com/6.2/concepts/master-using-intro.html

ブラウザが違うと、違うユーザが使えます(ブラウザ情報はクッキー等で渡されるんで、同じパソコン・同じ回線でもブラウザ別にログイン情報が判別されます)。

またグループ作成、グループにユーザ追加などやってみました。



ですが、残念ながら「ユーザ検索」機能にエラーがでてしまい、すこし困ってます。

無料版だからどうか(涙)


次回は、黒いバーの「ファイル」「共有ファイル」「タスク」など、以下のチュートリアルを見ながら勉強してきて、メールで相談しながら、次回やることを決めていきましょう!


次回の予定は10月23日です!zoomの招待状は共有メールでお知らせいたします~ででは、お疲れさまでした~。

※内容によっては予告なしにこの記事が削除・修正されることがあります。ご了承ください。



2020年9月25日金曜日

【66】BitCurator Access Redaction Tools チェック2

今日も前回の続きで、BitCurator Access Redaction Tools を試します。
今日も以下を見ながら勧めましょう。

bitcurator-access-redaction Quick Start Guide
https://distro.ibiblio.org/bitcurator/docs/BCR-Quickstart.pdf

Githubのマニュアル
https://github.com/BitCurator/bitcurator-access-redaction

今日も以下のconfigファイルの内容について勉強します。


FUZZ
前回は、一番目のFUZZだけで時間が過ぎてしまいましたが、今日もその続きです。binary fileをFUZZする理由とその仕組ががいまいちわからないままでしたが、今日も結論は出ませんでした。なんとなく、実行させたくないものは、それを防ぐために使うんだなというくらいにしておきましょう。このFUZZ、fuzzyだわ...^^;

上記の例がよくないので、以下のE. Fuzzing a binary (preventing execution)を参考にしたほうが良いです。

テキストデータとバイナリデータ
ごくごく簡単に言えば、エディターで読めるようなデータはテキストデータ、読めないデータはバイナリデータだそうです。笑

参考サイト

FILE_MD5
次は、FILE_MD5についてです。
MD5はハッシュ関数の一つです。(configファイルでMD5の次にあるSHA1も同じ)
コマンドラインで確認する方法は以下。
md5sumを利用すれば、Dorian Gray.txtのハッシュ値がわかります。




※参考サイト

ハッシュ値
電子記録の保存には必ず必要なものなので、勉強しておきましょう。


※豆知識
Configファイルで、DとかKで埋める処理をする理由
全部黒にしてしまうと、例えば裁判記録では、原告と被告がわからなくなってしまう場合もあるため、アルファベットで区別するらしいですよ。

今日は、残りのSCRUBとかもやってみました。
全部0で埋まることとかも確認しました〜

え?これで終わり?こんなさらっと終わる?と思う方。
正直前半白熱しすぎて、後半は集中力切れてしまいました。死ぬほど疲れました。それでも頑張る我々社会人、えらくないですか? じゃなくて…^^; 次回は真面目に書きます。ゆるして〜笑

一応configファイルの中身を丁寧に見て終わったということで、みんな満足です!
お疲れさまでした!

================================
次回は、10月9日(金)です。
新しいものについて勉強します。やりたいことがあれば、メールに流してください〜



2020年9月12日土曜日

【65】BitCurator Access Redaction Tools チェック1

夏休みが終わりました。参加者は、前回のことを何にも覚えてません。ちゃんと休めたという証拠です。

次のマニュアルを見ながら、プライバシー関係または個人識別情報の自動墨消しの機能を確認していきます。

bitcurator-access-redaction Quick Start Guide

https://distro.ibiblio.org/bitcurator/docs/BCR-Quickstart.pdf

Githubのマニュアル

https://github.com/BitCurator/bitcurator-access-redaction

以下、ページ数は、上記PDFファイルのものです。

前回の作業で、テスト用のイメージファイルが作成されています。test_image.rawです。

墨消しの前にイメージファイルの内容を確認します(p. 8)。

右クリック、Scripts > Image Mount を選択し、イメージファイルをマウントして、GUIで内容を見ることができます。もちろん、Read onlyで、内容変更できません。

テストの簡略化のため、処理するtest_image.rawをデスクトップに移動(p. 9)。

$ cp ~/bca-redtools-X.X.X/libredact/test/test_image.raw ~/Desktop

GUI上でのマウス操作でも構いません。

fiwalkをtest_image.rawにかける。

$ fiwalk -f -X ~/Desktop/test_image_fw.xml ~/Desktop/test_image.raw

fiwalkはこちらhttps://confluence.educopia.org/display/BC/Generate+Filesystem+Metadata+as+DFXML

ファイルを分析し、メタデータをxmlファイルで作成します。

前回、あまり理解できなかった墨消しの環境設定にトライします。

test_image.raw用に作られたp. 14の事例を一つずつ試していきます。

test_image_config.txtの作成の仕方はこちら。

$ cd ~/desktop

$ vi test_image_config.txt

test_image_config.txtにp. 14をコピーペーストしました。

1行目の

# Targets The Whale.txt 

FILE_NAME_MATCH *Whale.txt FUZZ

のみを確認しようと思います。FUZZ(ぼやかす)の意味が不明なので、やってみて理解するつもりです。

次の命令文で実行します。

$ redact-cli -c ~/Desktop/test_image_config.txt

ビフォーアフターを比較すると、ほとんど変化なし。
どうやら、Fuzzは.exeなど実行ファイルを無効化する命令ではないかと推測。ですから、テストに使ったThe Whale.txtというtxtファイルには効果がありません。どうして、txtファイルをテスト事例に上げてやがるんだ!

ですので、test_image.rawにあるexecutableディレクトリの.exeファイルを対象に検証を開始します。
の説明がわかりやすいです。

墨消し$ redact-cli -cを実行後、ビフォーアフターを比較します。
$ cd ~/Desktoop
$ diff -b PUTTY_ original.EXE PUTTY.EXE
あるいは、WindowsのOSに持ってきて確認できます。プロパティで比較すると、fuzzした.exeファイルからは、メタデータが消えているので、実証完了。

次回は9/25(金)です。
他の墨消し条件を1個ずつ検証していきます。




2020年7月31日金曜日

【64】BitCurator Access Redaction Tools (インストール成功版)

今日はなんだか始める前から眠気が半端じゃありません。
でも、頑張って大人の勉強会についていきます~

始める前の雑談
AtoM2.6.1がそろそろでる。マルチリンガル機能を強化するらしい。翻訳も一緒に改善される予定のよう。夏休みに一日翻訳をやりますか…

ではここから本題
BitCurator Access Redaction Tools を試してみます。
これが何をするものなのかは61回のブログを読んでください。簡単に言ってしまうと墨消ししてくれるツールです。

インストール

今日は以下のマニュアルを見ながら、最後までインストールを成功させましょう。
bitcurator-access-redaction Quick Start Guide
Githubにもマニュアルあります~
我々は、Githubのマニュアルでインストールを勧めました。マニュアル通りでインストールすれば良いということがわかったのですが、PDFガイドと一緒に見ていると間違いやすいところが2箇所あります。

Bitcurator 1.7.28 以上を使っている場合は、すぐ次を実行します。Prerequisites部分は飛ばします。(https://github.com/BitCurator/bitcurator-access-redaction#prerequisites

そして、Pythonのバージョンに注意が必要です。PDFのガイドにはこのことが書いてないので混乱しやすいです。

Note! In the BitCurator Environment, both Python 2.7 and Python 3.5 are installed, and the "pip" command links to Python 3.5 version of pip. You must use "pip2" to install with Python 2.7 (currently required due to a dependency on pylightgrep).

我々も以下の部分でエラーが発生しました。どうもpipにはPython3.5がインストールされるような設定になっているためのようです。

$ cd bitcurator-access-redaction
$ cd libredact
$ pip2 install -e .
 →ここでエラーが発生しました。

そこで、Pythonのバージョンを下げるために、pythonがあるディレクトリー下で以下を実施。エラーを解消できました。

sudo rm python-config
sudo ln python-2.7 python
sudo ln python2.7-config python-config
python -V     #バージョン確認


※参考:インストール中にあるsudo -H とは?
https://teratail.com/questions/169492
ユーザのホームディレクトリ($HOME)を書き換えるオプション。

ツールの大まかな流れ

このツールが動く大まかな流れは、
  1. disk imageを取る(test_image.rawを作成)
  2. Digital Forensics XML fileを作成(fiwalkを利用、ファイル名やMD5のようなハッシュ値を比較するためのもの)
  3. configファイルを作成(test_image_config.txt、どう墨消しするかを指定) 
  4. configファイルを実行($ redact-cli -c ~/Desktop/test_image_config.txtで実行)
  5. test_image_redacted.rawがアウトプットされる
です。

Configファイルのルール
ここでconfigファイルのルールを理解することが必要になります。以下はテストで実行するルールですが、マニュアルにはないコメント(#)を赤で追加しました。
# インプットするファイルの指定
INPUT_FILE /home/bcadmin/Desktop/test_image.raw # 事前に作成したDigital Forensic XMLファイルの指定
DFXML_FILE /home/bcadmin/Desktop/test_image_fw.xml
# アウトプットフアィルの指定
OUTPUT_FILE /home/bcadmin/Desktop/test_image_redacted.raw

# Targets The Whale.txt 
FILE_NAME_MATCH *Whale.txt FUZZ

# Targets Dorian Gray.txt
FILE_MD5 114583cd8355334071e9343a929f6f7c FILL 0x44

# Targets DRINKME.TXT
FILE_SHA1 7f9f0286e16e9c74c992e682e27487a9eb691e86 FILL 0x44

# Fill Kafka sequences in Metamorphsis.txt with K
SEQ_EQUAL Kafka FILL 0x4B

# employmentなんとかのファイルにある社会保障番号のようなものを0x44(ASCIIではアルファベットD)で埋める
SEQ_MATCH \d{3}-?\d{2}-?\d{4} FILL 0x44

# Scrub EATME.TXT
FILE_SEQ_EQUAL pineapple-upside-down-cake SCRUB

# Scrub Alice in Wonderland
FILE_DIRNAME_EQUAL looking-glass SCRUB

# Ignore EATME.TXT.BACKUP
IGNORE *.BACKUP

# Commit the redaction (write out a redacted disk image)
COMMIT

上記の操作は以下のルールに沿っています。(PDFガイドp11)
Rule Command Format: [target condition] [action]

Target Conditions:
FILE_NAME_EQUAL <filename> - target a file with the given filename
FILE_NAME_MATCH <pattern> - target any file with a given filename pattern
FILE_DIRNAME_EQUAL <directory> - target all files in the directory
FILE_MD5 <md5> - target any file with the given md5
FILE_SHA1 <sha1> - target any file with the given sha1
FILE_SEQ_EQUAL <string> - target any file that contains <a string>
FILE_SEQ_MATCH <pattern> - target any file that contains a sequence matching <a pattern>
SEQ_EQUAL <string> - target any sequences equal to <a string>
SEQ_MATCH <pattern> - target any sequences matching <a pattern>

Actions:
SCRUB overwrite the bytes in the target with zeroes
FILL 0x44 overwrite by filling with a given character (here, 0x44, or ASCII 'D')
FUZZ fuzz the binary, but not the strings

しかし、指定した内容が正しく実行されたかがよくわかりません。例えば、SCRUBはゼロに埋めるという処理ですが、予想よりはるかに多いファイルの中がゼロで埋め尽くされていました。
画像の左が元のファイル、右が00で埋められたファイル


そこで、SCRUBが含まれている処理を付けたり外したりして、処理されたファイル数を調べて見ました。configファイルにある以下のSCRUB処理が対象です。
① FILE_DIRNAME_EQUAL looking-glass SCRUB
② FILE_SEQ_EQUAL pineapple-upside-down-cake SCRUB
  1. ①、②両方実行:42個 (ここだけXMLファイルを除外)
  2. ①のみ実行:9個
  3. ②のみ実行:41個
  4. ①、②両方除外:8個
この結果から、SCRUBがどう動いているか…よくわかりません。例えば、SEQ_EQUAL Kafka FILL 0x4Bの場合は、Kafkaの名前部分だけがKKKKKに変更されたことが確認できました。しかし、SCRUBのようによくわからない部分も… 

ここで他の設定を入れてみて処理ファイルの数を確認したりしましたが、ファイルの内容を全部把握していないこともあり、結果が正確かがいまいちわかりませんでした。ということで、今日はこのあたりで終わりです。次回は、Configファイルのルールについてもう少し勉強します。

---------------------------------------------
次回は、9月4日(金)です。
8月は、な・つ・や・す・み! いぇ~~

後日追記
以下は参考資料です〜 読みましょう〜

Testing bca-redtools in the BitCurator Environment

Redacting Private and Sensitive Information in Born-Digital Collections

2020年7月27日月曜日

【63】番外編 形態素解析器SudachiをAtoM2.6に導入

番外編2です。Kuromojiよりも語彙や分割能力に優れた形態素解析器SudachiをAtoM2.6に導入できたので、報告します。
正確に言えば、AtoM2.6のために使っているElasticsearchに、プラグインelasticsearch-sudachiをインストールしました。
プラグインelasticsearch-sudachiは、こちらのサイトを参照。https://github.com/WorksApplications/elasticsearch-sudachi
インストールは、こちらの手順を参考にしました。https://qiita.com/sorami/items/99604ef105f13d2d472b

まずは、AtoM2.6に入っているElasticsearchのバージョンを確認します。
マシンは、ubuntu 18.04(virtual machine)、java1.8です。
curl http://localhost:9200 (curlがなければsudo apt install curlでインストール)
 "number" : "5.6.16",
 "lucene_version" : "6.6.1"
の二つをチェックしておきます。
このバージョンに応じてsudachiを設定します。

gitとMavenを使うので、事前にインストール。
sudo apt install git
sudo apt install maven

ここからelasticsearch-sudachiを入れていきますが、最新版を入れたせいで、えらい目に遭いました。以下、苦労した話を書いた後に、簡単に進められると考えられるやり方について触れます。

ソースコードを持ってくる
git clone https://github.com/WorksApplications/elasticsearch-sudachi.git
ソースコードは、/home/ユーザー(ユーザーはご自身のものを入れてください)の直下にあります。
そっちに移動して
cd elasticsearch-sudachi
ビルドする。
mvn package
以下のエラーが起こります。
Caused by: org.apache.maven.plugin.compiler.CompilationFailureException: Compilation failure
No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
これを修正していきます。

javacが必要(*)。
sudo apt install openjdk-8-jdk-headless software-properties-common

設定ファイルを変更(**)。
sudo vim elasticsearch-sudachi/pom.xml
4~7行目あたりにある<version>、<lucene.version>を次に変更。
             <version>5.6.16-2.0.2-SNAPSHOT</version>
             <lucene.version>6.6.1</lucene.version>
33~38行目あたりの<plugin>内に緑を追加。
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                    <fork>true</fork>
                    <executable>/usr/lib/jvm/java-8-openjdk-amd64/bin/javac</executable>
                </configuration>

再度、ビルドに失敗する。
エラーメッセージは、
/home/ユーザー/elasticsearch-sudachi/src/main/java/com/worksap/nlp/elasticsearch/sudachi/index/SudachiTokenizerFactory.java:[43,29] エラー: 不適合な型: SettingsをStringに変換できません:
でした。そこを確認して修正する。
sudo vim /home/ユーザー/elasticsearch-sudachi/src/main/java/com/worksap/nlp/elasticsearch/sudachi/index/SudachiTokenizerFactory.java
41〜50行目あたりのファイル記述を変更。
    public SudachiTokenizerFactory(IndexSettings indexSettings,
            Environment env, String name, Settings settings) throws IOException {
        -super(indexSettings, settings, name);
        +super(indexSettings, name, settings);
        mode = getMode(settings);
        discardPunctuation = settings.getAsBoolean("discard_punctuation", true);
        resourcesPath = new SudachiPathResolver(env.configFile().toString(),
                settings.get("resources_path", "sudachi")).resolvePathForDirectory();
        settingsPath = new SudachiSettingsReader(env.configFile().toString(),
                settings.get("settings_path")).read();
    }

再々度、ビルドに失敗。
エラーメッセージは
[ERROR] /home/ユーザー/elasticsearch-sudachi/src/test/java/com/worksap/nlp/lucene/sudachi/ja/TestSudachiAnalyzer.java:[156,58] エラー: intは間接参照できません
[ERROR] /home/ユーザー/elasticsearch-sudachi/src/test/java/com/worksap/nlp/lucene/sudachi/ja/TestSudachiAnalyzer.java:[159,58] エラー: intは間接参照できません
[ERROR] /home/ユーザー/elasticsearch-sudachi/src/test/java/com/worksap/nlp/lucene/sudachi/ja/TestAnalysisSudachi.java:[184,20] エラー: クラス Builderのメソッド loadFromStreamは指定された型に適用
です。解決していきます。
sudo vim /home/ユーザー/elasticsearch-sudachi/src/test/java/com/worksap/nlp/lucene/sudachi/ja/TestSudachiAnalyzer.java
155〜159行を修正。
155             query = queryParser.parse("京都");
156-           assertThat(searcher.search(query, 5).totalHits.value, is(0L));
       +           assertThat(searcher.search(query, 5).totalHits, is(0));
157
158            query = queryParser.parse("岩波");
159-             assertThat(searcher.search(query, 5).totalHits.value, is(0L));
      +           assertThat(searcher.search(query, 5).totalHits, is(0));

sudo vim /home/ユーザー/elasticsearch-sudachi/src/test/java/com/worksap/nlp/lucene/sudachi/ja/TestAnalysisSudachi.java
186行目
186-                        .loadFromStream(RESOURCE_NAME_SUDACHI_ANALYSIS_JSON, input, true)
186+                       .loadFromStream(RESOURCE_NAME_SUDACHI_ANALYSIS_JSON, input)
と直しました。

mvn package
でビルドに成功。

インストールを試みる。
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install file:///home/ユーザー/elasticsearch-sudachi/target/releases/analysis-sudachi-5.6.16-2.0.2-SNAPSHOT.zip
エラーがまた発生。
ERROR: `elasticsearch` directory is missing in the plugin zip
昼寝して落ち着く。その後、次のファイルを全部書き換え。
sudo vim elasticsearch-sudachi/src/main/assemblies/plugin.xml
<assembly>
<id>executable</id>
<formats>
<format>zip</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<files>
<file>
<source>src/main/extras/plugin-descriptor.properties</source>
<outputDirectory>elasticsearch</outputDirectory>
<filtered>true</filtered>
</file>
<file>
<source>LICENSE</source>
<outputDirectory>elasticsearch</outputDirectory>
<filtered>false</filtered>
</file>
</files>
<dependencySets>
<dependencySet>
<outputDirectory>elasticsearch</outputDirectory>
<useProjectArtifact>true</useProjectArtifact>
<includes>
<include>com.worksap.nlp:*</include>
<include>org.glassfish:javax.json</include>
</includes>
</dependencySet>
</dependencySets>
</assembly>
をコピーペースト。

もう一度、
mvn package
して、
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install file:///home/ユーザー/elasticsearch-sudachi/target/releases/analysis-sudachi-5.6.16-2.0.2-SNAPSHOT.zip
インストールに成功。
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin list
analysis-sudachiがあればOK.

とまあ、長いこと書いてきましたが、Gitから適切なバージョンのソースコードがあれば恐らく問題なしです。
git clone —depth=1 -b v5.6.16-2.0.2 https://github.com/WorksApplications/elasticsearch-sudachi.git
を取ってきて、
(*)(**)
を行えば、mvn packageによるビルドは問題ないと思います。

続いて、辞書をインストール。一番語彙の多いフル辞書を入れます。
wget https://object-storage.tyo2.conoha.io/v1/nc_2520839e1f9641b08211a5c85243124a/sudachi/sudachi-dictionary-latest-full.zip
unzip sudachi-dictionary-latest-full.zip
sudo mkdir /etc/elasticsearch/sudachi
sudo cp /home/ユーザー/sudachi-dictionary-20200330/system_full.dic /etc/elasticsearch/sudachi
Elasticsearchを再起動。
sudo /etc/init.d/elasticsearch restart
analysis-sudachiのインストールを確認する。
curl -X GET 'http://localhost:9200/_nodes/plugins?pretty'
pluginsにanalysis-sudachiが入っていれかどうかを確認。
Elasticsearchに辞書があるかも確認する。
sudo ls /etc/elasticsearch/sudachi/

最後にAtoMでSudachiが動くように設定する。Kuromojiと一緒です。
cd /usr/share/nginx/atom
sudo nano plugins/arElasticSearchPlugin/config/search.yml
japanese:
   tokenizer: sudachi_tokenizer
   filter: [sudachi_baseform, sudachi_split, sudachi_ja_stop]
     フィルターはたくさんあるので、今後、要検討です。
sudo nano plugins/arElasticSearchPlugin/lib/arElasticSearchMapping.class.php 
   'it' => 'italian',
'
   ja' => 'japanese',

以上です。
Gitから適切なバージョンのソースコードさえ持ってこれたら、非常に簡単な作業にな離ます。ですが、今回は失敗も含めた作業過程を紹介しました。今後、ブラッシュアップしていくつもりです。






2020年7月23日木曜日

【62】番外編AtoM2.6のインストール

AtoM2.6のインストールについて、マニュアルhttps://www.accesstomemory.org/en/docs/2.6/admin-manual/installation/linux/ubuntu-bionic/#mysql
のみでは不十分な点があったので、備忘録としてブログを更新します。
マニュアル通りに進めると、最後のRun the web installerのDatabase登録のところで詰みます。データベースのパスワードを拒否するのです。これはAtoM2.6から、mysql8.xを使うようになり、DBユーザーの認証の初期設定が変ったために起こる問題です。

工夫がいるのは、mysqlの設定です。
Create Databaseの作業は、まずマニュアル通り、

sudo mysql -h localhost -u root -p -e "CREATE DATABASE atom CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;"

を打ちます。
さらに、マニュアルにしたがい、

sudo mysql -h localhost -u root -p -e "CREATE USER 'atom'@'localhost' IDENTIFIED BY '12345';"
sudo mysql -h localhost -u root -p -e "GRANT ALL PRIVILEGES ON atom.* TO 'atom'@'localhost';"

を打ちます。'12345'は、任意のパスワードです。

それで、追加するのは次の命令文。

sudo mysql -h localhost -u root -p -e "ALTER USER ‘atom’@‘localhost' IDENTIFIED WITH mysql_native_password BY '12345';"

'12345'は、上記のパスワードなので、必ず一致させます。

この命令文が何をやったかは次の記事が参考になります。
https://motomotosukiyaki.com/mysql-from-php-server-requested-authentication-method-unknown-to-the-client/

完全に理解していないので、推測で説明します。
まずMysqlに入ります。

$ sudo mysql -u root -p

データベースのユーザーを示すテーブルに切り替える?

mysql> use mysql 

ユーザー一覧を表示します。

mysql> select user, host, plugin from user;

ここで、atomの認証(plugin)がcaching_sha2_passwordとなっているのが問題です。
認証を上で設定したパスワードの12345に変更してやります。

mysql> alter user 'atom'@'localhost' identified with mysql_native_password by '12345';

atomというユーザーがパスワード12345でMysqlに入れるようになりました。
mysql> select user, host, plugin from user;
で再確認。

以上の設定で、Run the web installerのDatabase登録を無事終えることができました。

さて、次回の道場は7/31(金)です。
よろしくお願いします。





2020年7月19日日曜日

【61】BitCurator Acess toolsお試しーPart2

久しぶりにブログ担当となりました平野です。しかも、当日(2020-07-10)ブログ担当を決めるのを忘れてしまい、遡及的に記憶を頼りに書くことを引き受けてしまいました。反省。

当日、少しZoom入室が遅れたため、入ったときには、前回うまくいかなったBitCurator Access Webtoolsについて、われらが導師である入澤先生と、具体的なオペレーションを担当している元さんとの間で「あーすればこーなるのだ」という会話が交わされ、前回の問題がすっかり解決するところでした。

というわけで、そこの部分の細かいところは、元さん、補足をお願いいたします。

あっさりWebtoolsが動いて、これを使えばディスクイメージのファイルをウェブブラウザ経由で見ることができることがわかりました。(そういうことですよね?)

インストールのしかた、使い方は BitCurator Acess Webtools Quick Start Guide をご参照ください。

あっさり動いてしまったので、さて今日は何をしようかという話になり、とりあえずもう一つ残っているBitCurator Access Redactionを試してみることにしました。

これも、GitHub上の情報とBitCurator Access Redaction Quick Start Guide を参照しながら進めていきます。

そして、この時点で私たちは、いったいこのアプリケーションが何をするものなのか、よくわかっていなかったのでした(笑)。例によってあーでもないこーでもないと言いながらやっていると、じわじわと見えてくることもあるのですが、要するに、ディスクイメージをウェブブラウザで見えるようにするのはいいとして、そこには見えてしまったらこまる情報もたくさんあるだろうと。そういう情報を編集して、00を上書きしたり(scrub)、必要な処理を一括で行えるのがこのAcces Redactionであることがわかりました。

とりあえずどんな情報にどんな処理をして、どのディスクイメージに対して作業をするかを、Guideの通りにconfiguration fileに書き込んで、いよいよこのコマンドを打ち込みます。

$ redact-cli -c ~/Desktop/test_image_config.txt

今回は、ここでstuck。

インストールの開始時、ちょっと指示を読み違えて、作業するディレクトリとかを間違えていたのかもしれないね、ということになり、次回もういちど、慎重にやってみることになりました。

これで、だいたいBitCuratorが何をしているかわかったのですが、作業のあいまに(様々な処理をPCがしている間にけっこう待ち時間があるので)「アーカイブズとしてこれをどう使うのかねえ」という話になりました。

例えば大学アーカイブズが有名な先生の個人文書(PCやポータブルHDDやUSBを含む)を受贈することになったときに(どこかのサーバーからアーカイブズが管理するサーバーへファイルが移管されるときは別の話)

BitCuratorでディスクイメージを作成し、そのコピーに様々な処理をかけて、ファイルシステムやファイルに関する情報を抽出し、さらにファイルを読めるようにする

BitCurator NLPで、ディスクイメージに自然言語処理をかけて、ディスク全体にどんなトピックやエンティティが登場し、それらが相互にどう関係し合っているかを可視化する(おそらく、評価・選別や、整理の優先順位を決めるのに役立つ)

BitCurator Access Webtoolsで、ディスクイメージ上のファイルを、ウェブブラウザで見られるようにする

BitCurator Access Redactionで、Webtoolsで見せてはまずい情報を、コマンド一発で処理することができる

という話なのかなあという....これを組み合わせれば、例えば個人から受け入れたデジタル文書を、ざっくり機械的に処理して、とりあえず館内のPCで限定公開することも可能になるのかなあという感じでしょうか。

あとは、この最初のディスクイメージをしっかり保存しなきゃいけないわけですが、それをArchivematicaに入れるのか、入れるとどうなるのかを見てみたいね、という話にもなったような気がします。

私が記憶しているのは以上です。
参加していた方、補足をお願いしまーす。









2020年7月4日土曜日

【60】Bitcurator Access Toolのインストール

投稿者、私用のため余裕がありません。本ブログ記事のなかで、一番薄い内容になります。

Bitcurator Access Toolの内容は
https://bitcurator.net/bitcurator-access/
を見よう。

インストールの方法は次の二つを参照しよう。
Github:https://github.com/bitcurator/bitcurator-access-webtools
クイックスタート:http://distro.ibiblio.org/bitcurator/docs/BCA-Quickstart.pdf

このアプリはVirtual BoxとVagrant(ヴェイグラント)を使います。
Vagrantの解説は
https://qiita.com/ozawan/items/160728f7c6b10c73b97e
を読もう。

本日はまずbitcurator-access-webtoolsをWindows 10のマシンにダウンロードした。
“bitcurator-accesswebtools-X.X.X”を展開する。
Windowsマシンのコマンドラインを開き、次を実行。
vagrant box add bento/ubuntu-18.04
時間かかるので、今後の研究会などについて相談。

終わったので、次を実行。
cd \Users\your-user-name\Desktop\bitcurator-accesswebtools-X.X.X
vagrant up
説明書には30分と書いてあったが、小一時間たっても処理が終わらず。
Zoom解散。その後、処理は終わり、無事起動したらしい。
次回は、起動したアプリを確認します。

次回日程:7/10(金)19:00頃から。

お時間ありましたら、ご参加ください。




2020年6月20日土曜日

【59】Bitcurator NLPの続き・出来たけど。。。の巻き

前回に引き続き、Bitcurator NLPのセットアップからです。
前回スタックした、セットアップ。。。
今回、お師匠が問題解決虎の巻を整えていただきました。ので、それを書いていきます。

前回終了後・・・
「道場」後に有志のかたがたが作業を進めました。そのなかで、Hさんから提案があり、無事に解決した点を記します。
$ git clone https://github.com/bitcurator/bitcurator-nlp-gentm
を行った後、/home/bitcurator-nlp-gentm/にある"setup.sh"を開き、232行と233行の間に、
git init
を挿入したのち、改めてセットアップを実行します。
$ cd bitcurator-nlp-gentm
$ sudo ./setup.sh
これで、"sleuthkit"のエラーが解消されます。

再度、セットアップ作業と対峙
問題は、pythonとpython3の関係にありました。
そこで、インストール失敗したPCで下記のコマンドを実行します。
まずは、pythonとpython3のファイル属性を確認します。
$ ll /usr/bin/pytho*
すると、下記のよう表示されます。

例えば、
$ ........~~~~/usr/bin/python->python2.7
は、python2.7のファイルであり
$ ........~~~~/usr/bin/python2->python2.7
もまた、同様で、さらに
$ ........~~~~/usr/bin/python3->python3.6
と、"3"には、3.6が対応しており、単に"python"のみを実行すると、"2.7"が選択されることがわかります。
そこで、
python(2)関連を削除し、リンクを2から3にかえてあげることにします。
$ cd /usr/bin/
$ sudo rm python
$ sudo rm python-config
$ sudo ln -s python3.6 python
$ sudo ln -s python3.6-config python-config
そして、pythonのバージョンを確認すると
$ python -V
$ python 3.6.9
と、python2.7から"3.6.9"がデフォルトに変更されたことが確認できました。

つぎに、bitcurator-nlp-gentmにディレクトリを変更します。
$ cd bitcurator-nlp-gentm
そして、ツールを実行します。
$ python bcnlp_tm.py
すぐに、エラーメッセージが出ます!!メッセージにあるエラーのうち、最終行にあるメッセージに記された内容を確認し、それぞれ対処します。
※今回試した際に出たエラーです。
まず、python2から3に自動でコード変換させます。"2to3"をインストールし、実行します。
$ sudo apt install 2to3 -y
エラーが出たファイルを確認し、"2to3"を実行してpython3のコードに変換します。
・bcnlp_tm.py
$ 2to3 -w bcnlp_tm.py
・bcnlp_fxtract.py
$ 2to3 -w bcnlp_fxtract.py
・bn_filextract.py
$ 2to3 -w bn_filextract.py
・bn_filextract.pyの656行目を修正更新
sudo vi bn_filextract.py
if " " in f.info.name.name.decode():
  name_slug = f.info.name.name.replace(b" ", b"%20")
・bn_filextract.pyの183行目をコメントアウト
##doc = str(doc, erros='ignore')
・bn_filextract.pyを修正更新
fs_desc = "Unknow file system"
※インデントを上段の"fs_desc"に合わせること!

Bitcurator-NLPを確認!
エラー箇所がなくなると走り出します。少々時間がかかりますが、うまくいくとWebブラウザー"firefox"が起動し、下記の画面が表示されます。


ここでは、NLPに同梱しているサンプルを使い、検証しました。
が!!!
これがなにを示しているのか?どう活かしていいのかがわからず、議論となります。
あ~でもない、こ~でもない、といいつつ、関連論文を見たりした結果、
●左側の各円に付された数字はトピックの割合の大きい順に付されている。
●右側のグラフは、トピックに属する具体的なワードを表示している。
●トピックが作成されるジャンル?属性?については、今回はわからず。
ということで、この件については、改めて論文を読んで次回議論することになりました。
以下を読んできましょう!答え合わせするよ!!
https://core.ac.uk/download/pdf/210610153.pdf
https://saaers.wordpress.com/2019/07/02/an-exploration-of-bitcurator-nlp-incorporating-new-tools-for-born-digital-collections/

関連確認
ディスクイメージの分析結果の根拠となるデータはどこに格納されているのか?ということでそれを確認しました。
/home/bitcurator-nlp-gentm/extracted_files/0/
で確認できました!
そして、先ほどの議論のなかで、われわれが把握できるディスクイメージを使ってみてはどうかということになり、以前、"Bitcurator"で作成したイメージファイルで試用することに。それを思い出したWさんエラいわ!!
早速、"config.txt"を修正します。
$ sudo vi config.txt
7行目にある"govdocs45sampler.E01"を試用するファイル名に置換。
そして忘れては絶対いけない作業、/home/bitcurator-nlp-gentm/extracted_files/を空にしてください!!この作業を忘れると"govdocs45sampler.E01"の結果と混ざります。。。
結果は、日本語はやはり厳しいようです。
ということで、今日は以上!
記載漏れがあるだろうな・・・ご指摘ください。
次回は、7月3日です!!
論文読むの忘れるなよーヨーヨーオー。。。
そして、最後にこれだけ、Natural Language Processingって私の脳力では理解できないのでは?

2020年6月6日土曜日

【58】Bitcurator モジュールNLPを試す…が!!!

世の中は通常モードに戻りつつあるようですが、道場は今日もリモートで勉強会です。作業の性格上、リモートの方がいいのかもしれませんが…
ということで、今日も初めていきます!

Bitcurator NLPを試す

前回、Bitcuratorの一連の作業を確認し、続けてモジュール・NLPのダウンロードで終了しました。その続きです。
一応の確認ですが、NLPについては、
概要: https://bitcurator.net/bitcurator-nlp/
Wiki: https://github.com/bitcurator/bitcurator-nlp/wiki
ダウンロード・作業手順: https://github.com/bitcurator/bitcurator-nlp-gentm
を確認してください。
以下は、作業手順に沿って進めていきます(いきたかった)。

Disk Image Selection and Configuration

ここでは、対象となるディスク・イメージを選択しますが、今回は、標準で入っているサンプル・イメージを使用することにしましたので、この作業はスキップします。オリジナルのディスク・イメージを使用する場合は、
/home/bitcurator-nlp-gentm/config.txt
を開き、テキストを修正・加筆します。
例)[image_section]
govdocs45sampler.E01 = 1     ⇨⇨⇨⇨     [my-image-name1].E01 = 1 
※[]括弧内を対象ファイルの名前にします。

Running the Tool

それでは、NLPを動かします。ターミナルを開き、
$ python bcnlp_tm.py
でGO!
ImportError: No module named pytsk3
あれ…あれれ…エラー…メッセージです。"pytsk3"が無いということらしいです。
ここから本日の道場は、流浪します。そうです。久しぶりの
"STUCK"
です。

エラーの分析

そこで、ダウンロードしたはずのモジュールがないというならば、改めてダウンロードしてみようということになり、
$ sudo ./setup.sh
を再度実行しました。そこで、インストールの流れを確認したところ、
  1. ディレクトリの権限問題
    The directory '/home/bcadmin/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
  2. セットアップで指示されているファイルが無い
    STATUS: nlp-webtools: Building and installing libuna
    rm: cannot remove 'libuna-alpha-20170112.tar.gz': No such file or directory
  3. モジュールがない
    STATUS: nlp-webtools: Building and installing The Sleuth Kit
    fatal: not a git repository (or any of the parent directories): .git
  4. pythonのバージョンがサポート外かもしれない
    Complete output from command python setup.py egg_info:  Unsupported Python version: 2.7.17 (default, Apr 15 2020, 17:20:14)
     [GCC 7.5.0], version 3.5 or higher required.
などの、エラーを確認し、それぞれの検証をした結果、

  1. ディレクトリの権限をrootにするために下記のコマンドを実行した結果、解決
    $ sudo chown -R root /home/bcadmin/.cache/pip/
  2. 'libuna-alpha-20170112.tar.gz'は"setup.sh"を見ると無くても問題ない
     l.187: # Newer versions break a lot of stuff. Keep 20150927 for now.
  3. 分からず
  4. 後に調べてみると、python2は2.7が最後となっていることがわかりました。がこれが問題なのかどうかはわかりません。検証が必要
との結果に。いろいろと試してみましたが…どれも宿題となります。
また、BitcuratorをインストールしたVMにNLPをインストールすることが問題なのでは?といった意見も出ましたが、未検証です。

ということで、今回の作業は終わりです。

次回は、6月19日19時からとなります。
世の中が通常モードにもどりつつありますが、強制参加ではありませんので、時間があるときに顔を出していただければ!
ということで、次回お目にかかりましょう!

2020年5月30日土曜日

【57】BitCuratorー前回の続きから新しいモジュールのダウンロード

BitCuratorテストの続き


前回は、ディスクイメージのファイルエクスポートでつまづきました。
マニュアル(http://distro.ibiblio.org/bitcurator/docs/BitCurator-Quickstart-v2.2.pdf)の51ページです。
違うUSBメモリではどうなるかを検証します。
やったことは前回の【56】と同じです。なので割愛。たまに担当するブログ当番がこんなに楽で嬉しいです。

BitCuratorを走らせる中で作成されるレポートについて一度話し合いになりました(マニュアルのp. 47)。
アーカイブズが受け取ったデータ集合体の中に、どんなフォーマットのファイルが個別にあるかを肉眼で確かめるのはほぼ無理です。なので、BitCuratorに探索してもらい、レポートにまとめてもらいます。アーキビストはそれを読んで、脆弱なフォーマットのファイルの所在などを確認できます。

さてファイルエクスポートでは、問題なくファイルを抽出し、GUIで読み取ることができました。テストしたUSBは、検証用に複数のファイルをセーブし、一度消去したものです。フォーマットし直す、ドリルで穴を空ける(どこかの国会議員スタイル)など手の込んだ処理をしていないので、オープンソースでも復元できました。

消去した電子ファイルの名称は、なぜか先頭の一文字が「_」となっています。USBのファイルシステムがFATだったことが関係しています。FATの場合、ファイル名の先頭の1バイトをいじって、無効であると示されるようです。

BitCurator NLPを試す

https://bitcurator.net/bitcurator-nlp/を参照。
受け入れたボーンデジタルの史料の持つ特徴を、自然言語処理の機能によって、抽出・分析しレポートを作ります。文書の中にある人物・地名・主題を抽出、それぞれの関係性を分析し、クラスター化し、最後は絵にして表示してくれるはずです。
恐らくは、膨大な電子ファイルを含むボーンデジタル資料群の持つ内容上の性質を自動的に分析し提示してくれるモジュールだと思います。紙資料だと整理担当者が一枚ずつめくって資料群の性質を読み取りインデックスを付けるという職人芸が求められますが、大量のデジタルデータとなるとほとんど不可能ではないでしょうか。だから、賢いツールに職人さんの代わりを務めてもらいましょうという話となります。

ダウンロードは
https://github.com/bitcurator/bitcurator-nlp-gentm
から行います。
$ sudo ./setup.sh
に時間がかかるので、途中で解散。

次回もzoom。
6/5(金)の19:00からです。

最近の投稿

【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を扱ったアーカ...

人気の投稿