ウェブ・技術

RSSでOPACな原稿掲載

 INFOPRO2005の後依頼があり、年始から書いていたRSSでOPACな原稿がようやっと校正も終わり、4月1日からWebサイトで公開されていました。よろしければ、サンプルスクリプトとあわせてご覧ください。また、ご意見ご感想をお待ちしております。本当に。

 当初は、INFOPRO2005の予稿をベースに、「原稿を読んだ担当者がRSSでのサービスを始められるような内容を」ということで、RSSの利用事例やサービス提供のための how to 中心で書いていました。で、筆が滑って「もう少し進んだ内容を」と思い「amazon web serviceのようなAPIを持ったOPACの実現→OPAC2.0への進化」について書いたところ、主にスクリプトを書いてくれた共著者から「これは熱いコンセプトですよ!これで押しましょう!これで!」と熱く迫られ、文章のトーンも「XMLにすることで、ほーらこんなメリットが」というようなものに変化してゆきました。結果、予定枚数を大幅に超えてしまい、サンプルスクリプトも別にWebページに掲載するなど、編集ご担当の方にはご迷惑をおかけしました。

 OPAC2.0的に目指すところとしては、こんなことができるといいなと。なんとなくWeb2.0ライクに。あとは本文をご参照ください。

  • XMLでデータを取り出して入力インターフェースをリッチに(タグクラウドなど
  • RSS/XMLによる検索結果出力で
    • キーワードを登録して新着図書のアラートをRSS/ATOMで受信
    • 検索結果出力インターフェースも自由に設計可能
  • 他のXML化されたサービスとの連携(Web2.0的に言えばマッシュアップ)

 とりあえずはOpenSearch対応かな、ということで、これはこれで準備を進めています。また、RSS/ATOMだけでなく、これにMODSの記述要素を加えて詳細な書誌情報をあわせて配信すべく準備中です。言ったからにはやらないと。

 職場でも議論したのですが、何と連携させるか、「リッチなインターフェース」とは何か、まだまだ試行錯誤が続きそうです。

 今、気になっているのはMicroformatです。hReviewのようなclass属性で記述してゆくアレ。第3回FBSカンファレンス(資料こちら)でのNII(というよりglucoseの方)の大向さんの発表で概要を知ったのですが、図書館での書誌事項用の記述定義がMicroformatでできて、各社OPACの通常の検索結果出力がこれに対応するだけでも何かが変わるような気がします。

 OPAC。10数年前にtelnetでアメリカの大学図書館のOPACが引けることを知り感動を覚え、国内のOPACのリストを作り、とうとうOPAC2.0なんてたわごとを言い出し始めてしまった私。これからどうしましょう。


タグクラウドその後

前回のエントリ、図書館タグクラウドに特にはてな方面から多くのアクセスを頂き、ありがとうございました。このblogを始めて以来のアクセスの多さに驚いています。

タグクラウド、人気ありますね。他のデータベースでも応用したいところです。

さて、その後ですが、ひどいソースを見た後輩が大幅に手を入れて、

という「なんだよ俺のは噛ませ犬か」と思うくらいcoolなhackを施してくれました。ありがたいことです。

Newcolud おかげさまで、単語についてもかなり真っ当に切り分けられるようになりました。安定して稼働するようになりましたら公開の予定ですが、とりあえずスナップショットでお楽しみ下さい。


あ、OpenSearch対応については実装作業中です。もうしばらくお待ち下さい。


図書館タグクラウド

 mixiの司書コミュでのOPACについての議論の中であった、「自分では選ばないような本との出会いができるOPAC」というご意見を参考に、また「はてラボ」(http://hatelabo.jp/)のプロジェクトの一つ、「はてなWordLin」(http://wordlink.hatelabo.jp/)にインスパイアされて、図書館の新着図書・雑誌情報のタグクラウドのようなものを作ってみました。
お試しはこちらから:

新着図書の海へ

 細かいところでは謎の単語があったり解析しきれていなかったりとβ版な状態ですが、頻出単語のフォントサイズを大きく見せるなど、それらしいものに仕上がりました。リンクは弊社OPACへの検索へと繋がります。

 プログラム言語にはPerlを使用していますが、リファクタリング必死な素人コーディングです。なのでコードは内緒。

以下、処理の概要です。

  1. LWP::Simple::getで各拠点図書室56個所の新着図書/雑誌受入情報RSSフィード112を取得、XML::RSSでitem要素のうちtitle(書誌名)だけを抽出。
  2. 抽出したtitleを形態素解析器 MeCab ( http://chasen.org/~taku/software/mecab/ )を使用して単語と品詞を解析。
    解析の例は上記のURLをご参照ください。
    出力パターンをカスタマイズして、このうち表層形(単語)と品詞のみを出力させています。
  3. 解析した品詞のうち名詞だけを抽出し、重複している単語の数をカウント。
  4. 使用している単語でこちらのOPACへの検索式が投げられるようURLを生成、単語からリンク。
    getメソッドでqueryを投げられるのはこういう時楽です。URLに埋め込む検索語はURLエンコードしています。
  5. 単語の使用回数に応じて、スタイルシートで <span style="font-size : 3em">単語</span> のようにして各単語のフォントサイズを決定。
    いろいろ試行錯誤して調整してみましたが、見やすさを考え、4回以下、5~9回、10~20回、21回以上でそれぞれ1~4emにしています。
  6. 単語とリンク部分をJavaScriptで書き出し、ocean.htmlから呼び出す方法を採用。
    この方法ですと、他のサーバのページからも自由に呼び出すことができます。(今回の場合はニーズは少なそうですが) JavaScript自体は毎朝cronで更新します。

 件名なりその他利用できそうなデータが入っていれば、もっと使い出があるとかもしれませんが、今回は新着図書/雑誌中の単語からOPAC全体を検索させることで、「意外な資料との出会い」の場のような感覚を持ってもらえるかもしれません。

 あとは、解析の基礎になる辞書の精度向上などの部分がまだ未完成ですかねえ。明らかに分かち書きしていない単語もありますし。英単語が「感動詞」扱いで拾えていなかったり。もうちょっと工夫する余地はありそうです。

 このデータのRSSフィードによる再配信も考えましたが、頻出単語ばかり送るのも飽きられそうですし、ここはやはりlongtail狙いであえて出現頻度の少ないキーワードを配信するのがGoodでしょうか。

 以前のエントリのOPAC2.0についても再考中ですが、今日はこんなところで。