Hatena::ブログ(Diary)

Myrmecoleon in Paradoxical Library. はてな新館 このページをアンテナに追加 RSSフィード

"智に埋もれ 智を啜る怪物は 矛盾した砂の底で ただ空の高きを夢見る。"

2007-03-05 ニコニコ動画が予定通り復活してたら翌日のエントリになってました。

所蔵図書館マップ(仮) 欲しい本がどこの図書館にあるかが一目でわかる方法


まず結論からいいますと,こんなものを作ってしまいました。


f:id:myrmecoleon:20070305214842p:image

no title*1

参考:『涼宮ハルヒの憂鬱』をもってる図書館


なにこれ?


所蔵図書館マップ。所蔵館マップのが中の人はわかりやすいのですが,一般にわかりづらいかと思って名前は図書館っていれてみた。でもやっぱり言いづらいので略して所蔵館マップ。


ISBNを入力すると,その本をどこの図書館で持っているかが地図上に表示されるってサービス。

例によってBookmarkletを用意してあるので,Amazonのページからぽんと飛べばその本がどこの図書館にあるかがわかる。

読みたい本を探すときに役立つし,自分の注目してる本が日本の図書館でどこらへんで持ってるかがパッとわかる,つーもの。


どうやって使うの?


あんまり実用性を考えて作ってるわけじゃないけれど,なんとなくAmazonで本を探して,用意してあるBookmarkletで所蔵館マップにとんでもらえば,その本が国内でどのへんの図書館でもってるかがわかります。

ちなみに座標は多少雑なので,これを参考に図書館にいこうとすると厳しいと思う。


どうやって作ったの?


Google Map APIWebcat Plus の勝手マッシュアップ。本の画像だけAmazonWebcat Plusつーのは後述するけど,大学図書館を中心にどの本がどこの図書館にあるかを検索できる無料の検索サイト。姉妹品にWebcatというのもあるけど,今回はちょっと扱いにくいので(ISBN検索がGETじゃできん)Plusにした。

やってることはけっこうシンプルで,Webcat PlusISBN検索かけて,ヒットした本の所蔵館の一覧を取得して,それを自前のDBに用意した座標データとマッチさせて,座標と図書館の名前をGoogle Map APIに流して表示させてる。Google Map API は本気でこれ作る直前まで触ってなかったので,ソースをみるとわりととんちんかんなことをしてる可能性大。

あと,Webcat Plus は別にAPIとか公開してないのでここでしてるのはどっちかというと悪いこと。なんかメールで連絡すればこころよく使わせてくれそうな雰囲気もあるんですが,チキンなわたしは勝手にこんなことしてる。でも負荷はたいしてかけてないはず(1回のリクエストに対して2回ページ読み込むだけ。あとでキャッシュ機能つけてもっとあちらへの負荷を下げるつもり)。


なんでこんなん作ったの?


さいきんid:natu_nさんところで横断検索とGoogle Mapのマッシュアップなんかをやってて非常に面白く思えた。以前には図書館雑記さんところで千葉県の図書館マップなんてのもやってたり,海外ではILLの貸出館・借受館をGoogle Mapで表現するなんて試みもありましたっけ。こういうのを見てて,以前からずっとwktkしてた。


なぜかといいますと,実はGoogle Map のAPIが公開された頃から,一つやりたいことがあった。natu_nさんのやってるような図書館の横断検索と地図を組み合わせるのによく似ているけれど,図書館の世界には横断検索よりもっと便利なシステムがある。それは複数の図書館のもってる本をそれぞれの館があらかじめ一つの馬鹿でかい目録に登録しておく,って方法で,統合目録って呼ばれる。これのもっとも有名な奴がGoogle Book SearchもリンクしているWorldcat。こいつはつい最近やっと完全無料化したばかりだが,日本ではWebcatという同様のものが数年前からずっと動いてて,しかもフリーで公開されておりました。


myrmecoleonは大学の図書館中の人で,仕事の中でこのWebcatの奥のデータベースであるNACSIS-CATというのをよくいじってる(使う方も更新する方も)のですが,その仕事の関係上,このデータベースの中にどの本がどこの図書館においてるかだけでなく,どの図書館がどこにあるか,住所なんかの情報も入ってることをよく知ってた。住所から当たればどうにかすれば座標は拾えるだろうし,ある本をWebcatで検索してその所蔵館をGoogle Mapに表示すれば,こういうものが作れることはかなり以前から思いついていた。

後述する理由があるのでこのサービスは実は万人受けするとは限らないのだけれど,とりあえず作ってみたら面白そうだなー,ということはかなり前から思ってました。


にも関わらず,思っただけで今まで作らなかったのは,住所からいちいち座標を拾ってくのがめんどいなー,とか思ってたせい。

なんせ,Webcatの加盟館は普通に1000ぐらいある(今回のデータは1800館ほど入ってます)。一個一個チェックして探していくのか? 当時はGoogle Map 等の住所検索もあんまり信頼できる精度ではなかったし,ちゃんと検索できるサービスでも座標データの取り方とかがよく分かってなかった*2。そのへんがネックで,ずっとぶんなげてました。


で,数年後(=つい先日)。仕事しながらいろいろ検索してたら,日本語の住所から座標データが取得できるなんて話を目にして驚く。え,なに,そんなの簡単にできるようになってたの? って驚いてあさると,Google mapを使って座標データを簡単に取得できるサイトがあるのを見つける。でも一度に大量に取得するのはやっぱり重いんだろうなー,って思ってたら,テキストで住所リストを投げると座標をCSVで返してくれるサービスまであったり。世の中便利になったなー!


で,興奮のあまり,以前あたためてた上記のアイディアを実現しちゃったわけですね。

作業的には,NACSIS-CAT加盟館の住所リスト*3東大の空間情報科学研究センターの「CSVアドレスマッチングサービス」に投げて,まとめて座標データを取得。さすがにすべてはちゃんととれないけれど,約1800件中1500件くらいは十分使える座標データがとれた*4。残りの住所はGeocoding API - 住所から緯度経度を検索で一つ一つ入力しながら座標取得。住所より図書館や大学の名前を入れた方がヒットしやすいことに途中で気づいたり。


あとの作業は純粋に技術的なこと。Amazonの表紙画像とかを出すのはすでにやってるので後回しにして,Google Map 上にマーカーを立てるあたりを勉強。最初は一個一個マーカーを立てるやり方でやってたら,200個くらいで重くなったので,自分の住んでる箇所指定して近いところだけ出す方式にしようかー,などと試行錯誤したものの,GMarkerManagerでやれば500件くらいでもあっさり出ることを知る。

あとはデザインをちょちょっといじって,実は昨日の昼にはできてたけど,読んでる本が盛り上がって延期して今回公開と。そんな感じ。


今後の展望。


とりあえず作ってみたかったので作ったというノリなので,別に本格的なサービスにするつもりはあまりなかったりする。というか,本来ならWebcatPlus自体がこの機能をもってしかるべきと思うのだけどどうだろう。作るのそんなに難しくないし。てっきりNII 学術コンテンツサービス研究開発センターはこういうものを作って出すところだと思ってたのだけど音沙汰ないし。*5


ただ,使ってみればわかると思うし,それ以前にNACSIS-CATを知ってる方には明白だと思うけれど,これ,一般の利用者の実用にはあんまり役に立たないのですよね。なんせ,ほとんど大学図書館とか研究機関しか入ってませんからw*6 小説とかは非常にヒット数が少ない。専門書を探す方には役に立つかもしれませんが,娯楽書を探すのにはまるで役に立たない。


県立図書館も一部入ってはいるのですが,いわゆる普通の図書館(公共図書館)はほとんどないです。NACSIS-CATは大学図書館中心の統合目録なんで当然なんですけどね。

たぶん本当に利用者の人が欲しいのは,natu_nさんところみたいな公共図書館の所蔵館マップだと思うのです。で,今回のと同じ作り方をするには公共図書館の統合目録が必要なんですが,これがない。いや,国会図書館さんとこのゆにかねっとってのがあるにはあるんですけど,いまいち公開度が低いというか,使い勝手が悪い。*7ということで,こういう使い方するにはあんまり実用的ではなかったりする。


大学図書館だけでなく,公共図書館も含めた日本中の図書館が地図上で一発で見られたら便利だと思うんですけどねー。このへんはなんとか実装できないかとか,ちょっと考えてみたいかも。


とりあえずちょっと使ってみてもらって,感想とかもらえると嬉しいです。もうそういうのあるよー,って声があったら情報提供に感謝してこいつは取り下げます。なんか面白そうだから作り方教えてって方は相談乗りますけど,上に書いてある内容でだいたい全部ですし,APIとかの技術的なことはもっと詳しい人がいくらでもいますのであんまり役に立たないかも。

あと,もしNIIの方(Webcatの中の方々)が見ても怒らないでくださいね; こういうことができるのは,どう考えてもNACSIS-CATがちゃんと整備されてるおかげですので。*8

*1:うっかりフォルダにindex.*のファイル作るの忘れて,出した直後フォルダ内が見られるようになってました; やばいのでファイル名を変えた関係で,http://myrmecoleon.sytes.net/map/http://myrmecoleon.sytes.net/map/nacsis.php に割れてるかもしれませんが,http://myrmecoleon.sytes.net/map/ の方が正式ってことにしておいてくださいな。

*2:まあこのへんは技術と根気さえあればどうにかなったんでしょうが。

*3:これをどうやって入手したかは聞かないでください。一応いずれも公開されてる住所ですが。

*4:アドレスマッチングサービスの機能で,取得できたデータの信用度の評価ももらえる。評価値5かつ住所も番地とか字クラスまで拾えてるものはほぼ見直す必要がないとしてそのまま使用してます。

*5:もし,とっくに似たようなのは出来てるけどいろいろややこしいことで出せてないだけだったら申し訳ないorz

*6:上記の「涼宮ハルヒ〜」でたまたまヒットがあるのは,高専とか附属高校とかも一部交じってるせいですね。ラノベのたぐいはほとんどひっかかりません。でも『図書館戦争』とかはかなりあちこちで持ってましたが

*7都道府県立と一部の大手図書館しか目録出してないし,CGIセッション管理してるから外部から使いづらいし,データはNACSIS-CATと違って機械的にまとめてるだけ(NACSIS-CATは日本中の図書館中の人の人力。ある意味ソーシャル。)だから,同じ本なのに別のレコードになってるのがかなりあるとか。でも,公開してくれてるだけでも非常に助かるので文句は言いません。もう言っちゃったけど。

*8:あまりに立派なので,こう,もっと有効活用できないかと欲が出てしまうのですよ。

tzhayatzhaya 2007/03/05 23:26 拝見しました! こういうのが見たかったのです。7日の名古屋の某研修会で紹介してみてもよいですか?

myrmecoleonmyrmecoleon 2007/03/05 23:37 ちょ,コメント早すぎです;
研修会で紹介……怖いですが,ありです(マテ

tzhayatzhaya 2007/03/06 17:30 「うちの図書館も入れて」という場合には、住所などをCSVに吐かせてAPIを用意すればいいですか? http://library.affrc.go.jp/api/R2MODS/4897066131 でMODS入りデータが返ります。

natu_nnatu_n 2007/03/06 20:54 ども、素早いですね。
本当に公共図書館もまとめて持ってこれればいいんですけどね。自分で一個一個作るのが面倒で…
あと、ISBN-13での検索がうまくいっていないような?
例)9784794214782眼の誕生

myrmecoleonmyrmecoleon 2007/03/06 23:52 >tzhaya さん
どもです。そういえばそちらのも統合目録でありました。ちょっと搭載を考えてみます。MODS版はなんか上手く表示できないようですが。RSSで拾って,URLから所蔵館を拾えばいけるかな?

>natu_n さん
>ISBN-13
うを,まじだ; 書き間違えです。すみません。
早速なおしました。バグ報告どもでしたー。

tzhayatzhaya 2007/03/07 02:13 > myrmecoleonさん
ご検討ありがとうございます。時間があったり気が向いたらでかまいません。
あと、MODS版は http://opac1.cc.affrc.go.jp/alis/xmlout.csp?DB=T&format=R2MODS&ISBN=4897066131 なら取れるはずです。お試しください。
また、こちらのDBで使っている機関略称とNACSISの参加組織略称と配置コードは異なるので、変換の必要があります。作業が必要ならいつでもご連絡ください。

shigeosuzukishigeosuzuki 2007/05/05 00:46 ISBN検索で簡単に所蔵館の所在地を視覚的に確認できて便利なので、早速勝手にLibraryThingのブックリンクにLibraryMapという名称で登録させてもらいました。勝手にごめんなさい。もし名称が適切でないようでしたら、良い名称を知らせてください。

myrmecoleonmyrmecoleon 2007/05/05 04:30 いえいえいえ。登録さんくすですー。
LibraryMapはまさにそのままな名前ですねえ(OKです)。自分のなんかが使うには恐れ多い気もしますけど。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証