図書系のためのアプリケーション開発講習会

講習会の企画案について
考えてみよう!
図書系のためのアプリケーション開発講習会
2007.09.11
企画案1 「NC上の所蔵館調査」
企画案
・ある雑誌の所蔵館数がNC上でどのくらいあるか調べたい
・検索項目が指定できるとなお良い。
・調査結果はExcelファイルに出力させたい。
コメント
NCと連携を行うには、いくつかの方法が考えられます。
場合によっては、NIIの了解をとる必要がありますが、まずは
その技術を概観してみましょう!
NII目録データをプログラムで処理するには
害外のOPACではメジャーな仕組
み。WebCatもNIIに登録申請して
通れば利用可能。環境設定やプ
ログラムは若干面倒か?
ファイヤーウオール内では動か
ない可能性あり。
業務システムとの連携に使用。
NC-Autoもこの仕組み。
NC-Autoの目録ダウンロード機
能では、他機関の所蔵は出ない
ため、今回の目的には使えない
か?
CATP
検索式
Z39.50
講習会サーバ 等
HTML(httpd)
検索結果
最近出てきた、情報検索の規格。
Z39.50と違い、Webの技術を使
用している。Central Search (横
断検索)でも使用可能。
SRU/SRW
NII目録サーバ
WebCatのページを直接操作。手
作業で行うのと同じ信号を
WecCatに与えて、結果を返して
もらう。Perlで作ることは容易。
use LWP::Simple; # 例AN10434536 の書誌を得るには4行でよい
$url="http://webcat.nii.ac.jp/cgi-bin/shsproc?id=AN10434536";
$data=get($url);
print $data;
企画案2 「RSSによるニュース配信」
企画案
ニュース書込フォームを作成して、HP上へのアップとRSS配信を同
時に行えるような仕組み
コメント
CGIを使えば、比較的簡単に作ることができます。ぜひ、いろいろとお
試しください。
PerlにはRSS対応機能もありますが、Perlの扱いに慣れないうちは、
使わないほうがよいかも?
RSSとHTMLの生成
フォームの
データ
Webのフォームでデータ入力
ニュース作成者
テキスト編集!
Webブラウザ
HP上ニュース(HTML)
RSSリーダ
利用者
RSS形式ニュース
Webサーバ
RSS(もしくはXML)を使った、
分散型図書館室管理モデル(例)
B図書室
A図書室
ニュースB
カレンダーB
利用規則等B
ニュースA
C図書室
カレンダーA
利用規則等A
附図
ニュースC
カレンダーC
全図書館室ニュース
利用規則等D
全図書館室カレンダー
E-DDS参加館一覧
利用規則一覧
各図書室HPにRSS(もしくはXML)ファイルを置き随時メンテ、附属図書館で収集、用途別加工
企画案3 「フォーム入力者への自動メール送信」
企画案
scifinderの申し込みを、サイトの申し込みフォームからの申し込みで、
プログラムのダウンロードと利用者にパスワードを送信する仕組みを
できること
コメント
CGIと、プログラムからのメール送信をクリアすれば、ほぼ問
題なく作ることができます。
フォーム入力時の自動メール送信
フォームの
データ
Webのフォームでデータ入力
利用者
テキスト編集!
メール受信
Webサーバ
申請データ蓄積
メール送信
メールサーバ
メール作成
企画案4 「請求記号に応じた館内図表示」
企画案
OPACで検索した結果、資料が所蔵館の館内のどの場所においてあ
るのか、表示できるようなもの。
館内MAPに表示させて、絵的に分かりやすいもの。
コメント
とりあえず、請求番号に応じて、館内マップ(配架場所つき)の
画像を表示する仕組みを作ってみましょうか?
CGIを使えば作成できます。
請求記号に応じた館内図の表示
請求記号データ
講習会サーバ
OPAC検索者
請求記号・館内図対応表
請求番号にマッチ
した館内図
請求記号別館内図
企画案5 「略誌名→正式名変換」
企画案
リポジトリに学術論文を登録するとき、1)論文リストの略誌名を正式
名称に変換 2)各誌のポリシーを確認する という作業に手間がか
かるので、これらを自動化したい。
コメント
案のうち、1)論文リストの略誌名から、正式名称に変換、するのはある程度どうにかなるかもしれ
ませんね。
略誌名と正式名の対照データの収集と、変換ルール
(http://www.toukoukitei.net/i4aGlossaryAbbrRule.html などが参考になるかも)づくりがポイン
トです。リファレンス共同DBの「「略称から雑誌名を調べる(欧文編)」 」にあるDBを活用するのも
(http://crd.ndl.go.jp/GENERAL/servlet/detail.manual?id=2000001224)手かも。
また、法律(日本)も略称一覧をネットで見つけました。
(https://www.tulips.tsukuba.ac.jp/otsuka/link/lja.pdf)
雑誌の略誌名から正式名変換
略誌名
正式名
講習会サーバ
調査者
略誌名・正式名対応表や
ルールにより判定
対照表や訳語辞書
他のWebサイトなど
集めたデータを
整理して蓄積
企画案6 「OPACの利用者コメント機能」
企画案
OPACに表示される各書誌について、貸出回数の表示・利用者からのコメン
トの読み書きができる機能を追加する。
(Amazon.co.jp などインターネット上の書店で実現されているような機能を
想定。現在使用しているOPACにこの機能を組み込むのは不可能なので、
OPACのデータを流用し別システムで構築すればよい?)
コメント
OPACの改修はこの講習会では無理ですが、外付けでよければ策はあります。
たとえば、ソーシャルブックサイトを東大OPAC向けに試作するとか、OPACの検索
結果からAmazonのコメントに連携させる、などです。
試作くらいなら、講習会サーバを使って試すことができそうです。
Amazonとの連携なら、FireFoxプラグインなどでブラウザレベルで可能そうです。
ソーシャルブックサイト
(通常はAmazonや海外OPACの書誌流用)
ソーシャルブック
サイト登録者
各登録者の文献リスト
講習会サーバ
(コメント記述可)
書誌取り込み(Web経由)
OPAC書誌に
対応したコメン
トを参照
他の利用者
OPAC
企画案7 「
重複チェックプログラム」
企画案
新規受入図書の選定や、寄贈資料を受け入れるときに、資料のISBN等の
一覧から、OPACで1件づつ検索し、自館の所蔵データがあるかどうか調べ
られるような仕組み。
コメント
運用上でもっとも問題がすくなそうなのは、次の方法です。OPACサーバに、Web
ベースでアクセスする方法もありますが、無理に難しくすることもないでしょう。
1)業務用端末のExcelからODBCで図書館業務システムに接続
2)Excelのマクロプログラムで、ISBNリストからまとめて検索をかける
OPACの所蔵を一括で検索する
use LWP::Simple; # 例 OPACの検索結果を得るには4行でよい
$url="https://opac.dl.itc.u-tokyo.ac.jp/opac/opacquery?disp=1&bzsort=0&mode=2&kywd=xxx";
$data=get($url);
print $data;
* 事前にCrypt::SSLeay のインストールは必要!
①Webルート
検索式
検索結果
業務用PC
ISBNリスト
東大OPAC
サーバ
汎用ファイル
出力データ
②汎用ファイル
出力ルート
③ODBCルート
Perl等でマッチ
ISBNリスト
ODBCで取り込んだ所蔵ファイル
(データ量に注意)
Accessの表の
連結機能でマッチ
Licsu-Web
DBサーバ
ODBCで連携
Licsu-Web所蔵ファイル
OPACの所蔵を一括で検索する(その2)
「苦し紛れ」テク “Selenium IDE”
簡単にいうと、Webブラウザにマクロ機能を付与す
るもの(もともとWebアプリのテスト用ツール)
FireFoxブラウザ上であれば、楽にテスト可能
「ヒット件数が0件です」が画面にでているかどうか
で、判定可能
HTMLの編集ができれば、テストを作成可。
使いこなせれば、業務システム(Licsu-Web)の
テストにも活用可
企画案8 「 全学の開館カレンダー」
企画案
学内の図書館全部の開館状況(開館時間)がWeb上でまとめて見られると
便利だと思う。できればカレンダーの形で。ただ、これを手作業でHTMLを作
成するのは面倒なので、オンラインカレンダーとかそんな感じのものである
程度作業を簡便化できたらいい。ついでにOPACと連動して、所蔵館が現在
やってるかどうかOPAC上でわかるようになるとさらに便利。
コメント
Web上で動く簡単なグループウエアのようなものを用意すればできるかも。
図書館職員だけに限るのであれば、Googleカレンダーの活用も手ですね。
企画案9 「OPACダウンロードデータ加工 」
企画案
OPACから書誌・所蔵データをファイル出力した場合、部局指定しても複数部局に所蔵
があれば、他部局の所蔵データも抽出されてしまう。この際に最上位の部局の所蔵
データのみに書誌データが入っており、純粋に自部局のデータのみ取り出したい時に
不都合を生じる。
抽出したデータを自部局の書誌・所蔵データのみに加工できるようなものを作りたい。
ODBCを使えば訳ないのでしょうが、誰でも使えるOPACの機能を拡張してみるのも意
味無くはないかなと。
コメント
OPACのダウンロードデータを加工するには、ローカル側に何らかの仕組みが必要
です。
一番簡単な方法は、ダウンロード後のPerlによる加工です。より、利用者向けのも
のを作るのであれば、JavaScriptやVBで作成するのがよいでしょう。FireFoxプラグ
インもひとつの手です。
OPACダウンロードデータを、他にもEndnote用に加工するなども、需要があるか
もしれないですよ。
企画案10 「ILL会計処理の省力化 」
企画案
附属図書館の四半期ごとの会計処理の手順が面倒なので、もっと
簡便に行えるような仕組みがほしい
コメント
多量のデータを機械的に処理するのは、システムがもっと
も得意とする分野です。
課題にある「汎用ファイル出力」の加工にチャレンジし、
まずは、自信をつけてみましょう!
それと併行して、業務をどのように省力化できそうか、
考えていきませんか?
企画案11 「古貨幣DBのカスタマイズ」
企画案
こちら(経済学部図書館)で提供している古貨幣DBの改良。
PHPを一から勉強することになりますが、、。
具体像はまだ浮かんでいませんが、現状では最低限のしくみ
なので使いにくい部分が多いので、、。
コメント
講習会用サーバに、経済学部図書館の古貨幣DBと同じ、PHP
とMySQLの環境を用意しました。
検索の仕組みを大幅に変えるのは難しいですが、たとえば
JavaScriptによる機能追加や、画面レイアウトの変更などは、
比較的容易かと思いますよ。
他人が書いたブログラムの読解は面倒ですが、それにはちょっ
としたコツがあります。
他人が書いたプログラムを読解する
4大ポイント!
ポイント1 出力コマンド(perlの場合は、print)の
メッセージを追う!
ポイント2 変数名や関数名から処理の流れを追う!
ポイント3 紙にわかった部分のフローチャートを
描いて整理する
ポイント4 いっぺんに一箇所づつ検証する
(常に元に戻せるようにしておく)
企画案12 「Plagger」の活用
企画案
第一段階:附属図書館HPのWebサーバからRSSフィードを定期的・自動的に生成させる。
そのための技の理解を深める。
第二段階:Plaggerのインストールに挑戦して、まず遊んでみる。遊んでみてPlaggerとはこー
いうもの、というのが会得できたら、上記のRSSフィードを携帯サイト向けに最適化された形
に整形して、多少なりとも携帯サイトの機能充実を図る。
第三段階:LICSUにおいて応用面がないか検討し、もしあればNECに提案できるような仕様
でも考えてみる。
コメント
Plaggerは、いまとても人気のあるソフトですね。
ネットでは、なんでもかんでも「それPla」(「それ、Plaggerでできるよ」
の略)というのがはやっているようですが、図書館でいかに活用でき
るかは、興味のあるところです。
プライベートでは、有名な(?)『Googleで「はらへった」と検索すると
ピザが届く』という、仕組みも気になるところなのでした。
企画案13 「不安定なサーバの対処」
企画案
「東京大学で利用できるリンク集」のサーバが不安定、プロキ
シを通すのが手作業なので、何とかしたい。
コメント
ひとくちに、サーバが不安定といっても、その原因は多岐にわ
たります。
とりあえず、ごく一般的な対処法について説明していきます。
サーバが不安定な理由はさまざま
理由例1 ハードウエアの寿命もしくは障害
理由例2 ハードウエアのスペック不足
理由例3 使用しているソフトウエアの
安定性不足
理由例4 サーバ構成の問題
サーバマシンを新
しいものに変えれ
ば、対策できます。
Webサーバ(Apache)や、
DBサーバ(PostgreSQL)の
バージョンアップで安定しま
す。なお、古いマシンでは新
しいソフトが十分に動かない
ことがあるので要注意です。
大規模システム向けのサー
バ構成と、小規模システム
向けは異なります。Web
サーバ、DBサーバとも負荷
分散の仕組みや、そのため
の設定があります。
不具合の原因を特定する!
まず、おもいつくだけの原因を考えてみましょう!
そして、記録をとってみましょう!
(サーバのエラーログなどは、かなり有益です)
集まった材料をもとに、「推理」します。
基本は「相手が心の中で考えた1から100までの数値を
できるだけ少ない質問数で当てる」です。
このような推論を、
「原因の切り分け」といいます。
思考訓練によって、この能力は伸ばすことができます。
プログラムを書いてみるのも有効な訓練です。
企画案14 「電子ジャーナルリンク集」の修正
企画案
電子ジャーナルリンク集を何とかしたい。
1)リンクリゾルバの導入ともあわせて、利用者が使いやすい
ものにしたい
2)統計作業をもっと楽にしたい
コメント
「電子ジャーナルリンク集」の今後の扱いについては、今後に
E-Journal Poralとの統合といった話も聞きます。その上で、あ
えて考えるとすると。簡単なところでは、1)OpenURL対応、難
しいところでは、2)SRU/SRWを使ったリンクリンクリゾルバ機
能の取り込み、といったところでしょうか。
統計については、「Licsu-Webデータ自由自在!」の課題の延
長にありそうです。Perlを使って楽をしましょう!
FireFoxプラグインを使った、
リンクリゾルバ向け拡張
FireFoxは、NetScapeの流れを汲む、Webブラウ
ザソフトです。FireFoxでは、追加機能(プラグイ
ン)を容易に作成することができます。
サンプルとして、東大e-Journal Portal 連携用の
プラグインを作成しました。たとえば、これをリンクリ
ゾルバに対応させることも容易です。
より、本格的なものとして「図書館用」FireFoxプラ
グイン”LibX”があります。リンクリゾルバやプロキシ、
海外OPAC製品ほかに対応しています。
企画案15 「MyLibraryの改善」
企画案
MyLibraryを使っていて思うのですが、いまひとつ、使いやす
く楽しいものと感じることができません。機能が不足していると
いうようりは、インターフェースデザインの問題のような気がし
ます。もっと美しく使いやすいデザインを取り入れると今の
MyLibraryがもっと良くなるのではないかと考えています。
コメント
MyLibraryそのものを、この講習会で修正することはできない
のですが、不満な機能を別途実装することは可能です。
(インターフェイスデザインとは話が若干ずれますが….)
いくつか、みてみましょう。
MyLibraryの機能をパワーアップ!?
MyLibrary提供機能
ブックマーク
代替例
ソーシャルブックマーク
OPACのSDI検索
OPAC新着RSS配信
横断検索
????
図書館室カレンダ
図書館室カレンダサイト
図書館室からのお知らせ
RSSニュース配信
企画案16 「ドイツ国立図書館の書誌によるチェック」
企画案
外注の遡及さんが入力した書誌にスペルミスとかないか、ドイツ国立図
書館の書誌と比較してチェックしたい。
フォーム画面にテキストボックスが2つあって片方にはNIIの(遡及した)書
誌のタイトルとかコピペ、もう一方にドイツの図書館サイトでヒットした書
誌のタイトルとかコピペ。ボタンを押して双方に違いがあるかないかプロ
グラム的に比較できる、という程度でもいい
コメント
フォームの2つの入力欄の値の比較は、簡単な比較ならJavaScriptでも可能です。ただ、
やはり難しそうなので、CGIのほうがよさそうかも。
ドイツ国立図書館なら、Z39.50 接続も可能なので、チャレンジも可能です。
http://www.d-nb.de/eng/service/pdf/ddb-prf2002.pdf
あとは、URLベースでの連携なども可能ですよ。
http://dispatch.opac.ddb.de/CHARSET=ISO-88591/DB=4.1/LNG=DU/CMD?ACT=SRCHA&IKT=8500&SRT=YOP&TRM=“キーワード”