機関リポジトリシステムに必要な機能

ソースコードリポジトリのコミットメッセージを英語で書いていたのですが、片言の英語の上に説明が不十分すぎて後から見た時に自分でわからないので、諦めて日本語でメッセージを書く事にした永島です。

機関リポジトリソフトウェアを作って5年が過ぎ、どのような機能が機関リポジトリの運用に必要になるのかがおよそわかってきたので、今回は機関リポジトリソフトウェアにどのような機能が必要になってOpenEarmasではどのように解決しているかについてです。

公開データと未公開データ

機関リポジトリソフトウェアをよくあるデータベースシステムだと考えると、単純に登録したデータが公開されれば良いように思えるため、機関リポジトリの話をすると「なぜそんなに複雑なのか」といった質問をされることも結構あります。

機関リポジトリソフトウェアを複雑にしている最大の理由が、データを公開と未公開で2重に持つ必要がある事です。

理由

機関リポジトリシステムへのデータ入力作業の負荷は結構大きく、公開データに責任を持てる図書館の担当者ではなく臨職さんだったりアルバイトさんデータを入力する場合があります。この場合、入力したデータを誰も確認無しで直接公開されるというのは問題があり一度確認をした後に公開という流れが必要になります。

これは、入力と公開の権限の問題ですが、他に処理手順の問題もあります。

とりあえずメタデータが集まったので入力しておき、入力後に許諾の確認や、本文PDFのやりとりを行うといった手順で登録作業を行う場合があります。この場合も、データは入力するがまだ公開はしないという「下書き」のような状態が必要になります。

対応

新規登録だけでしたら下書きフラグでも作っておけばいいのですが、修正の場合はフラグ管理では対応出来ません。修正はまれなので、修正時は例外的に即反映という事も考えたのですが、データの修正は本文PDFの修正や部局の名前変更等で意外と発生する処理のようで無視出来ませんでした。

そこで、OpenEarmasでは、データを公開と未公開の2重に持ち、「新規作成」「修正」「削除」したデータは未公開データとなり「公開処理」を行う事で公開データとしてコピーされ、公開側の画面に反映されます。 (この機能は実際に作るのはかなり面倒で、しかもシステム全体に影響するため何をするにもネックになります。何度「これさえ無ければ」と思ったかわかりません)

マスター

一般的なデータベースの場合、種類マスタや分類マスタなどのマスタ機能があるのですが、機関リポジトリソフトウェアのマスタは一筋縄ではいかず、特殊なデータの処理が必要になります。

理由

一般的なデータベースの場合は、同じデータを何度も入力する項目はプルダウン等の選択項目にして、入力ミス等での表記の揺れを抑えます。しかし、機関リポジトリの場合、入力ミスでもなく、記載ミスでもなく、論文自体の表記が揺れます。表記は揺れるのですが、機関リポジトリに登録されるデータは論文の目録のデータですので、記載されているまま登録するのが筋です。

当然そのまま入力するとデータが揺れます。

著者の場合ですと、「英語日本語等の言語の違い」「結婚等で実際に名前が変わる」「記載されているのが略称等の表現の違い」で表記か揺れます。雑誌の場合は「統廃合」や「雑誌名の変更」などです。

これらの表記の揺れは何もせずそのまま揺らしておくと、検索では旧姓で入力しないとヒットしなかったり、一覧では同じ人の別名が並ぶ事になります。 機関リポジトリシステムでは、これらを解決しながら、元の論文の表記のままのデータを登録する必要があります。

対応

OpenEarmasでは、マスタは用意して選択可能な状態にはするのですが、マスタはとしてのデータはIDのみです。IDを元にマスタを検索し「一覧でのデータの同定」「検索対象の追加データ」として使用します。個々のデータの詳細画面ではIDと一緒に入力する論文の記載のままを情報を表示させます。

マスタの情報と直接入力の情報の両方を使用することで、柔軟な検索や整理された一覧を可能にしています。

最も問題が多い著者用の人物マスタでは、他のマスタが「コード」「日本語表記」「英語表記」だけなのに比べ「ID」「日本語名」「英語名」「名前読み」「別名1」「別名2」「別名3」「日本語所属」「英語所属」「URL」「科研費研究者番号等のID欄5つ」と非常に多くの情報を入力出来るようになっています。

姓名とリンクが表示されるだけですが、内部的には多くのデータを使用することで検索や一覧の正確性を高めています。

補足

マスタにあるデータのみを対象にした一覧が作成できます。

著者や雑誌名といったマスタ使用項目は、マスタにあるデータのみを入力するわけではありません。学外の雑誌までマスタ化するのは大変ですし、著者マスタでは学外への異動で管理対象から外したい場合もあります。

そのため、マスタと各データを直接連動させずマスタの修正、削除を行った場合でも各データは変わらず表示される必要がありました。

OpenEarmasの選択項目は、ID欄を内部項目ではなく入力可能な入力欄とし、入力されたIDがマスタにあるかどうかでマスタの値を一覧や検索で使用するかどうかを変化させています。IDは入力がなくても無効なIDでも動作するため非常に緩い連携ですが、柔軟な運用が可能です。

この機能を利用して、有効なIDがあるかどうかで一覧にフィルタをかけることで、マスタに含むデータのみで作った「学内著者一覧」や「学内刊行物一覧」等の一覧を作成する事ができます。


次回へ続く