Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
c4ljp_2014_enju_ir
Search
Kosuke Tanabe
September 07, 2014
Technology
0
190
c4ljp_2014_enju_ir
https://github.com/nabeta/enju_ir
Kosuke Tanabe
September 07, 2014
Tweet
Share
More Decks by Kosuke Tanabe
See All by Kosuke Tanabe
c4ljp2016_enju_leaf_120
nabeta
0
260
c4ljp2015_enju_leaf_110
nabeta
0
470
c4ljp2015_journal_list
nabeta
0
480
introduction_to_next_l_enju
nabeta
0
82
2014 - 2015 activities of Code4Lib Japan
nabeta
0
320
Next-L Enju development workshop #34
nabeta
0
88
enjuws026
nabeta
0
88
next-l-enju-family
nabeta
0
370
Code4Lib conference 2013 report
nabeta
1
80
Other Decks in Technology
See All in Technology
Biz職でもDifyでできる! 「触らないAIワークフロー」を実現する方法
igarashikana
3
1.2k
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
940
「最速」で Gemini CLI を使いこなそう! 〜Cloud Shell/Cloud Run の活用〜 / The Fastest Way to Master the Gemini CLI — with Cloud Shell and Cloud Run
aoto
PRO
0
140
webpack依存からの脱却!快適フロントエンド開発をViteで実現する #vuefes
bengo4com
0
1.1k
Introdução a Service Mesh usando o Istio
aeciopires
1
260
難しいセキュリティ用語をわかりやすくしてみた
yuta3110
0
350
Kubernetes self-healing of your workload
hwchiu
0
310
会社を支える Pythonという言語戦略 ~なぜPythonを主要言語にしているのか?~
curekoshimizu
1
240
[2025年10月版] Databricks Data + AI Boot Camp
databricksjapan
1
230
Findy Team+ QAチーム これからのチャレンジ!
findy_eventslides
0
490
CNCFの視点で捉えるPlatform Engineering - 最新動向と展望 / Platform Engineering from the CNCF Perspective
hhiroshell
0
120
ソフトウェアエンジニアの生成AI活用と、これから
lycorptech_jp
PRO
0
770
Featured
See All Featured
Producing Creativity
orderedlist
PRO
347
40k
Designing for Performance
lara
610
69k
Context Engineering - Making Every Token Count
addyosmani
7
280
Rebuilding a faster, lazier Slack
samanthasiow
84
9.2k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Docker and Python
trallard
46
3.6k
How to train your dragon (web standard)
notwaldorf
97
6.3k
A Tale of Four Properties
chriscoyier
161
23k
BBQ
matthewcrist
89
9.8k
Speed Design
sergeychernyshev
32
1.2k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
Transcript
Next-‐L Enju 機関リポジトリモジュール 2014年9月8日 Code4Lib JAPAN Conference 2014
田辺 浩介 (@nabeta)
自己紹介 • とある研究所のエンジニア • オープンソース図書館システム “Next-‐L Enju”の主な開発者
Next-‐L Enjuとは?(1) • Project Next-‐Lの開発する図書館システムの 総称 – enju_leaf (図書館業務管理システム)
– enju_root (FRBRモデルによる書誌管理システム) – enju_erms (電子リソース管理システム)
Next-‐L Enjuとは?(2) • Ruby on Rails を中心に、Apache Solr, PostgreSQL/MySQLなどのフリーソフトウェアを
用いて構築 • Next-‐L Enju自体もフリーソフトウェアとして 公開 – hSps://github.com/next-‐l/enju_leaf
Next-‐L Enjuの特徴(1) • 広く利用されているWebアプリケーション フレームワークやミドルウェアを用いて構築 – クラウド環境での動作を前提とする •
RESTfulなインターフェース – すべてのレコードがURLを持つ
Next-‐L Enjuの特徴(2) • 機能ごとのモジュール化により、新機能の 追加やテストを行いやすくなっている – enju_biblio (書誌管理)
– enju_library (施設管理) – enju_circulaYon (貸出管理) – enju_ndl (NDL接続) – enju_ir (new!)
enju_ir モジュールとは? • Next-‐L Enjuに機関リポジトリの機能を追加 するためのモジュール – ファイルのアップロードと保存
– OAI-‐PMHのサポート • 現時点ではenju_leafに組み込んでの動作を サポート – enju_ir単体での動作も可能とする予定
なぜ今ごろ、 機関リポジトリモジュール?
enju_ir開発の理由 • 学術情報を扱うWebサービスの変化 – 論文ID, 研究者ID, 研究助成ID, … – 文献管理サービス,
研究者SNS, altmetrics… – これらがすべてつながる • 扱う資料そのものの変化 – 論文だけでなく、研究データも – データの公開が成果として扱われるようになると、 公開作業にも迅速さを求められる
開発の背景 • 自分の組織で生まれたデータを提供する 重要なシステムとして拡張を行いたい – DOI自動付与、Linked Data対応 – 組織内イントラネット上のサービスとの連携
• ところが、手頃に改変できそうなソフトウェア がない
他のソフトウェアの検討 • WEKO(JAIRO Cloud)…ユーザインターフェース がAJAXを多用しており、変更が困難 • Dspace…広く利用されているが、Javaなのが 面倒
• Hydra…ユーザインターフェースを担当する blacklightが意外に複雑な構造をしており、 思い通りに作ろうとするとほぼ全面的に作り 直すのと変わらなかった
enju_irの特徴 • データ保存用ミドルウェアにFedoraCommons を使用 – Dspace, Hydra, Islandora, eSciDocなどで広く採用
• データ検索用ミドルウェアにElasYcSearchを 使用 – Apache Solrと並んで人気のある検索エンジン • 単純な構造のHTML
FedoraCommonsの利点 • 柔軟なデータ構造を提供 • メタデータを持つオブジェクトとコンテンツを 持つオブジェクトを関連づけて資料を表す – 関連をRDFを用いて表現することが可能
– トリプルストアとしても動作 • 世界中で広く利用されており、活発なユーザ コミュニティが存在する – 検索エンジンで容易にトラブル対応策が見つかる
hSp://fedora-‐commons.org/ documentaYon/3.0b1/userdocs/ digitalobjects/objectModel.html FedoraCommonsの オブジェクトの構成 • メタデータを持つ
オブジェクトに 複数のファイルを 関連づけられる
ElasYcSearchの利点 • 高速・高機能 – Apache Solrと同じLuceneベースの検索クエリを 使用できる – ファセット検索,
代替検索語の提示 • JSONを用いて検索やインデックスの作成・ 更新を行うことができる – 扱いがXMLよりも容易 – JavaScriptから直接検索を実行できる
具体的な実装 • acYve_fedoraを改造 – hydra(Ruby on Railsで実装された機関リポジトリ 構築ソフトウェア)で使用されているライブラリ – FedoraCommonsへのアクセスとSolrでの検索を
担当 • Solrに接続する部分の処理を ElaYcSearchに接続するように書き換えた
Ruby on Rails Apache Solr acYve_fedora rsolr FedoraCommons blacklight Hydraの構成図(簡略化)
Ruby on Rails ElasYcSearch acYve_fedora elasYcsearch-‐ model FedoraCommons enju_ir Next-‐L
Enju + enju_irの 構成図(簡略化) enju_leaf
動作デモ
Next-‐L Enjuとの連携による利点 • 紙ベースの資料と機関リポジトリ上の資料の 管理の統合 – DOI/CrossRefを用いた書誌データの流用 – 冊子体・電子資料の統合検索
– 各館の資料コレクションに対する独自の メタデータの作成と付与 – 運用サーバ数の削減
おわりに • MLAでも情報技術は重要、とは言われるが… • 実体は逆行していないか? – 一極集中、外部依存への危機感 例: JAIRO
Cloud – 開発も運用も他人が勝手にやればよい? – 大規模大学でなければ構築の機会がない? – 職員がシステム構築を行う機会を逆につぶして いないか、自分で工夫する機会を奪っていないか • 状況を固定化させない手段としてのOSS
試してみよう! • デモサーバ – hSp://enju.next-‐l.jp • ソースコード – hSps://github.com/nabeta/enju_ir
• 連絡先 – @nabeta (github, twiSer)