code4 libカーリルの技術と図書館apiの使い方

35
図書館検索「カーリル」の技術 図書館APIの使い方 Nota Inc 洛西+吉本 @Code4Lib

Upload: isshu-rakusai

Post on 08-Jul-2015

3.652 views

Category:

Documents


2 download

DESCRIPTION

2010/03/24

TRANSCRIPT

Page 1: Code4 Libカーリルの技術と図書館Apiの使い方

図書館検索「カーリル」の技術と

図書館APIの使い方 Nota Inc 洛西+吉本 @Code4Lib

Page 2: Code4 Libカーリルの技術と図書館Apiの使い方

目次 •  会社紹介 •  カーリルのコンセプト (5) •  フロントエンド技術 (5) •  バックエンド技術 (10) •  APIの解説と使い方 (10) •  APIの申し込み方法 (10)

Page 3: Code4 Libカーリルの技術と図書館Apiの使い方

Founded in Silicon Valley

Page 4: Code4 Libカーリルの技術と図書館Apiの使い方

Nota Inc 2007年12月、シリコンバレー・サンノゼに設立

インターネット上で、ユーザーに クリエイティブな体験を提供する

Page 5: Code4 Libカーリルの技術と図書館Apiの使い方

図書館システムの問題点 •  図書館システムがばらばら •  OPAC/WebOPACが機能していない •  図書館にある本しか探せない •  書誌情報はだれでも手に届かない •  予算不足 •  利用者視点で作られていない

使われていない

Page 6: Code4 Libカーリルの技術と図書館Apiの使い方

カーリルのきっかけ •  吉本の中津川市における情熱 – 行政システムの開発に一人で関わる – 利用者が少ないことに対する懸念 – 現実的、かつ斬新な手法で問題を解決

•  「ライフログ」のブレインストーミング – 日常の情報を共有することでもっと世界は楽しく豊かになる

– 本は、コミュニケーションの起点になる

Page 7: Code4 Libカーリルの技術と図書館Apiの使い方

カーリルの発想 •  本を起点にネットでコミュニケーションを生むには?

–  どこからでもアクセスできる書誌情報が必要 –  OPACがそのはずだが時代遅れになっている

•  誰もがクリエイター・開発者になれる時代 –  開発できる人やツールは山ほどある –  どこにいても、個人でもできる

•  APIの発想は、新しい公共の発想 –  基盤を整備することでフラットなネットワークをつくる –  図書館を整備することは地方の若者流出につながる

Page 8: Code4 Libカーリルの技術と図書館Apiの使い方

そこで..

Page 9: Code4 Libカーリルの技術と図書館Apiの使い方
Page 10: Code4 Libカーリルの技術と図書館Apiの使い方

DEMO

Page 11: Code4 Libカーリルの技術と図書館Apiの使い方

開発ストーリー •  平均年齢は27歳。開発は主に4人。

– ディレクション、インターフェース開発 – 検索エンジン・API開発 – インターフェース開発 – アート・デザイン – 図書館データベース作成 – ユーザーサポート

Page 12: Code4 Libカーリルの技術と図書館Apiの使い方

サンノゼ  

中津川  

藤沢  

京都  

Page 13: Code4 Libカーリルの技術と図書館Apiの使い方

インターフェース •  迷いのない操作 •  待たせないアニ

メーション •  入力欄は一つ •  蔵書のありなしを

色分けして表示 •  ベストセラー/作

家リスト/カテゴリー

•  読みたいリスト

•  コンピュータが人間に合わせるという考え方=HCI

Page 14: Code4 Libカーリルの技術と図書館Apiの使い方

アートワーク •  目指したのは、住んでいる町をイメージできる「地域感」

•  「本」から連想する本棚や木目調を避けた •  図書館という「場」から地図を採用

雲、町の風景、山、海、乗り物、動物 = 日常

Page 15: Code4 Libカーリルの技術と図書館Apiの使い方

Mash Up! •  カーリルは、他のサイトのMashupのカタマリ

•  利用しているAPI •  Amazon API •  Google Maps / Geocoding •  WikiPedia •  Yahoo Image Search •  日本発のサービスがないのが悲しい…

Page 16: Code4 Libカーリルの技術と図書館Apiの使い方

バックエンド 紹介

Page 17: Code4 Libカーリルの技術と図書館Apiの使い方

カーリルのインフラ 【サーバー環境】=クラウド・ハイブリッド •  Google App Engine   ・CPU時間単位の課金 •  Linux Server@中津川   ・時間のかかる処理 •  コストの最適化   ・GAEはCPU時間に課金される   ・図書館システムは遅い・・

Page 18: Code4 Libカーリルの技術と図書館Apiの使い方

ソフトウェア環境 •  100% Pure Python •  どこでも動く •  Python2.5/2.6の標準ライブラリ+   オープンソースライブラリのみで構成   “インストールしたLinuxにファイルを入れて立ち上げるだけでタスク処理開始”

Page 19: Code4 Libカーリルの技術と図書館Apiの使い方

分散処理 •  共有メモリ(memcache)ベースのキュー •  司令塔(マネージャー)はGAEにある •  キューの処理はGoogle App Engineでも   他のサーバーでも分散して処理できる ・時間のかかる処理はGoogle App Engineを  なるべく使わない

・アクセスが増えたらGAEでスケール サーバー増設でコストダウン

Page 20: Code4 Libカーリルの技術と図書館Apiの使い方

Google  App  Engine  

中津川サーバー 中津川サーバー 中津川サーバー

サーバー構成

Page 21: Code4 Libカーリルの技術と図書館Apiの使い方

負荷対策 •  同時接続数を制限 1接続~10接続  オーバーした場合は平等に待たされる

•  セッションの再利用 •  キャッシュ

Page 22: Code4 Libカーリルの技術と図書館Apiの使い方

図書館クラス ・基底クラス『LibrarySystem』     ↓継承  システムクラス『iLiswing21_We_V2』      ↓継承   図書館クラス『Gifu_Nakatsugawa』 図書館ごとの違いはシステムクラスの関数や パラメーターをオーバーライドするだけ。 図書館毎にフルカスタマイズ可能

Page 23: Code4 Libカーリルの技術と図書館Apiの使い方

OPACの管理 •  Googleマッシュアップの探索ツール •  システムエラーを検知して調査 •  Twitterのつぶやきに対応 •  常に10カ所くらいはシステム更新中

Page 24: Code4 Libカーリルの技術と図書館Apiの使い方

API •  XMLとJSON •  GET

Page 25: Code4 Libカーリルの技術と図書館Apiの使い方

図書館情報 •  近くの図書館 •  県別の図書館 •  システムの詳細情報

http://api.calil.jp/library? geocode=136.7163027,35.390516& format=xml

Page 26: Code4 Libカーリルの技術と図書館Apiの使い方

蔵書貸出状況の確認 •  複数のISBN/複数のシステムあわせて最大100冊の書籍の状況を一括確認できる

・初回のアクセスによりセッションIDが発行

・そのセッションIDを使ってポーリング  →10秒以上ポーリングがないと一時停止

Page 27: Code4 Libカーリルの技術と図書館Apiの使い方

JavaScript ライブラリ var calil = new Calil({ 'appkey' : '1f797b98033661', 'render': new CalilRender('list'), 'isbn' : isbn_list, 'systemid' : $('#systemid').val() }); calil.search();

Page 28: Code4 Libカーリルの技術と図書館Apiの使い方

API DEMO

Page 29: Code4 Libカーリルの技術と図書館Apiの使い方

API制限 •  IP単位で1000冊/時間まで •  RESTFulのAPIも提供予定

Page 30: Code4 Libカーリルの技術と図書館Apiの使い方

APIの申し込み方法 •  まずは、API仕様書へアクセス – http://blog.calil.jp/p/api.html

•  アプリケーションキーを申請 – http://api.calil.jp/apply

Page 31: Code4 Libカーリルの技術と図書館Apiの使い方

図書館・本のサービスをもっと盛り上げよう

ということで、

APIコンテスト開催決定!!

Page 32: Code4 Libカーリルの技術と図書館Apiの使い方

API コンテスト

Page 33: Code4 Libカーリルの技術と図書館Apiの使い方

夜の図書館ダイアローグ

•  Vol1. @中目黒カフェバー コンバイン •  Vol2. @中津川市立図書館    

•  #toshokan

Page 34: Code4 Libカーリルの技術と図書館Apiの使い方

図書館ダイアローグの話題 – 地域と図書館 – デジタル化 – 著作者はどうなる? – 子供時代の本との出会い –  ISBNのない郷土資料・行政資料 – 行政と民間の役割

Page 35: Code4 Libカーリルの技術と図書館Apiの使い方

今後の予定 •  書籍デジタル化時代を見据えて、本の魅力をもっとアピール (4月30日は図書館の日)

•  図書館だけでなく出版・書店とも提携 •  さらに検索できる書籍を広げる •  ユーザーの声をうけて機能開発を進める