SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Downloaden Sie, um offline zu lesen
図書館検索「カーリル」の技術
       と
   図書館APIの使い方
     Nota Inc
    洛西+吉本
    @Code4Lib
目次
•    会社紹介
•    カーリルのコンセプト (5)
•    フロントエンド技術 (5)
•    バックエンド技術 (10)
•    APIの解説と使い方 (10)
•    APIの申し込み方法 (10)
Founded in
Silicon
Valley
Nota Inc
2007年12月、シリコンバレー・サンノゼに設立


インターネット上で、ユーザーに
クリエイティブな体験を提供する
図書館システムの問題点
•    図書館システムがばらばら
•    OPAC/WebOPACが機能していない
•    図書館にある本しか探せない
•    書誌情報はだれでも手に届かない
•    予算不足
•    利用者視点で作られていない


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

•  「ライフログ」のブレインストーミング
 –  日常の情報を共有することでもっと世界は楽
    しく豊かになる
 –  本は、コミュニケーションの起点になる
カーリルの発想
•  本を起点にネットでコミュニケーションを生むには?
 –  どこからでもアクセスできる書誌情報が必要
 –  OPACがそのはずだが時代遅れになっている

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

•  APIの発想は、新しい公共の発想
 –  基盤を整備することでフラットなネットワークをつくる
 –  図書館を整備することは地方の若者流出につながる
そこで..
DEMO
開発ストーリー
•  平均年齢は27歳。開発は主に4人。

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




                            サンノゼ	
  

                   藤沢	
  

          京都	
  
インターフェース
       •  迷いのない操作
       •  待たせないアニ
          メーション
       •  入力欄は一つ
       •  蔵書のありなしを
          色分けして表示
       •  ベストセラー/作
          家リスト/カテ
          ゴリー
       •  読みたいリスト

       •  コンピュータが人
          間に合わせると
          いう考え方=HCI
アートワーク
•  目指したのは、住んでいる町をイメージできる
   「地域感」

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


       雲、町の風景、山、海、乗り物、動物 = 日常
Mash Up!
•  カーリルは、他のサイトのMashupのカタマリ

•  利用しているAPI
 •    Amazon API
 •    Google Maps / Geocoding
 •    WikiPedia
 •    Yahoo Image Search
 •    日本発のサービスがないのが悲しい…
バックエンド 紹介
カーリルのインフラ
【サーバー環境】=クラウド・ハイブリッド
•  Google App Engine
  ・CPU時間単位の課金
•  Linux Server@中津川
  ・時間のかかる処理
•  コストの最適化
  ・GAEはCPU時間に課金される
  ・図書館システムは遅い・・
ソフトウェア環境
•  100% Pure Python
•  どこでも動く
•  Python2.5/2.6の標準ライブラリ+
  オープンソースライブラリのみで構成
   インストールしたLinuxにファイルを
   入れて立ち上げるだけでタスク処理開始
分散処理
•  共有メモリ(memcache)ベースのキュー
•  司令塔(マネージャー)はGAEにある
•  キューの処理はGoogle App Engineでも
  他のサーバーでも分散して処理できる
・時間のかかる処理はGoogle App Engineを
    なるべく使わない
・アクセスが増えたらGAEでスケール
   サーバー増設でコストダウン
サーバー構成

              Google	
  App	
  Engine	
  




中津川サーバー	
   中津川サーバー	
                       中津川サーバー
負荷対策
•  同時接続数を制限
    1接続∼10接続
    オーバーした場合は平等に待たされる
•  セッションの再利用
•  キャッシュ
図書館クラス
・基底クラス『LibrarySystem』
     ↓継承
 システムクラス『iLiswing21_We_V2』
     ↓継承
  図書館クラス『Gifu_Nakatsugawa』
 図書館ごとの違いはシステムクラスの関数や
 パラメーターをオーバーライドするだけ。
 図書館毎にフルカスタマイズ可能
OPACの管理
•    Googleマッシュアップの探索ツール
•    システムエラーを検知して調査
•    Twitterのつぶやきに対応
•    常に10カ所くらいはシステム更新中
API
•  XMLとJSON
•  GET
図書館情報
•  近くの図書館
•  県別の図書館
•  システムの詳細情報

 http://api.calil.jp/library?
 geocode=136.7163027,35.390516&
 format=xml
蔵書貸出状況の確認
•  複数のISBN/複数のシステムあわせて最大
   100冊の書籍の状況を一括確認できる
・初回のアクセスによりセッションIDが発
   行
・そのセッションIDを使ってポーリング
 →10秒以上ポーリングがないと一時停止
JavaScript ライブラリ
var calil = new Calil({
    'appkey' : '1f797b98033661',
    'render': new CalilRender('list'),
    'isbn' : isbn_list,
    'systemid' : $('#systemid').val()
});
calil.search();
API DEMO
API制限
•  IP単位で1000冊/時間まで
•  RESTFulのAPIも提供予定
APIの申し込み方法
•  まずは、API仕様書へアクセス
 –  http://blog.calil.jp/p/api.html


•  アプリケーションキーを申請
 –  http://api.calil.jp/apply
図書館・本のサービスをもっと盛り上げよう

ということで、


  APIコンテスト開催決定!!
API コンテスト
夜の図書館ダイアローグ




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

•  #toshokan
図書館ダイアローグの話題
–  地域と図書館
–  デジタル化
–  著作者はどうなる?
–  子供時代の本との出会い
–  ISBNのない郷土資料・行政資料
–  行政と民間の役割
今後の予定
•  書籍デジタル化時代を見据えて、本の魅力
   をもっとアピール
    (4月30日は図書館の日)


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

Weitere ähnliche Inhalte

Andere mochten auch (6)

スマホアプリ開発者のためのWeb api開発入門の入門
スマホアプリ開発者のためのWeb api開発入門の入門スマホアプリ開発者のためのWeb api開発入門の入門
スマホアプリ開発者のためのWeb api開発入門の入門
 
感動を生み出すソフトウェア 2010.01.17
感動を生み出すソフトウェア 2010.01.17感動を生み出すソフトウェア 2010.01.17
感動を生み出すソフトウェア 2010.01.17
 
紙copi Night 2009.12.04
紙copi Night 2009.12.04紙copi Night 2009.12.04
紙copi Night 2009.12.04
 
図書館でAPIをスルメのように 味わうには
図書館でAPIをスルメのように 味わうには図書館でAPIをスルメのように 味わうには
図書館でAPIをスルメのように 味わうには
 
iOSアプリ開発 脱初心者に向けて
iOSアプリ開発 脱初心者に向けてiOSアプリ開発 脱初心者に向けて
iOSアプリ開発 脱初心者に向けて
 
Web API入門
Web API入門Web API入門
Web API入門
 

Ähnlich wie Code4 Libカーリルの技術と図書館Apiの使い方

Code4Lib 2010報告会・発表ダイジェスト
Code4Lib 2010報告会・発表ダイジェストCode4Lib 2010報告会・発表ダイジェスト
Code4Lib 2010報告会・発表ダイジェスト
Masao Takaku
 
20110305_Code4Lib2011参加報告会:田辺浩介参加報告
20110305_Code4Lib2011参加報告会:田辺浩介参加報告20110305_Code4Lib2011参加報告会:田辺浩介参加報告
20110305_Code4Lib2011参加報告会:田辺浩介参加報告
Code4Lib JAPAN
 
ディスカバリー・ツールとは?
ディスカバリー・ツールとは?ディスカバリー・ツールとは?
ディスカバリー・ツールとは?
Wataru ONO
 
マイニング探検会#20 レファレンス・サービスの「ネクスト」を考えるためのヒント
マイニング探検会#20 レファレンス・サービスの「ネクスト」を考えるためのヒントマイニング探検会#20 レファレンス・サービスの「ネクスト」を考えるためのヒント
マイニング探検会#20 レファレンス・サービスの「ネクスト」を考えるためのヒント
Yoji Kiyota
 
Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会
Masakazu Muraoka
 
Ksws3rd nagao keynote(20101218)
Ksws3rd nagao keynote(20101218)Ksws3rd nagao keynote(20101218)
Ksws3rd nagao keynote(20101218)
真 岡本
 
「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺
Yusuke Wada
 

Ähnlich wie Code4 Libカーリルの技術と図書館Apiの使い方 (19)

Code4Lib 2010報告会・発表ダイジェスト
Code4Lib 2010報告会・発表ダイジェストCode4Lib 2010報告会・発表ダイジェスト
Code4Lib 2010報告会・発表ダイジェスト
 
20110305_Code4Lib2011参加報告会:田辺浩介参加報告
20110305_Code4Lib2011参加報告会:田辺浩介参加報告20110305_Code4Lib2011参加報告会:田辺浩介参加報告
20110305_Code4Lib2011参加報告会:田辺浩介参加報告
 
Api meetup LT
Api meetup LTApi meetup LT
Api meetup LT
 
図書館でのSolrの使い方
図書館でのSolrの使い方図書館でのSolrの使い方
図書館でのSolrの使い方
 
よりよい UI/UX を創るためのアクセス解析
よりよい UI/UX を創るためのアクセス解析よりよい UI/UX を創るためのアクセス解析
よりよい UI/UX を創るためのアクセス解析
 
20121127 opf3 hasegawa
20121127 opf3 hasegawa20121127 opf3 hasegawa
20121127 opf3 hasegawa
 
Organizing of Information Resources = 情報資源組織論.12
Organizing of Information Resources = 情報資源組織論.12Organizing of Information Resources = 情報資源組織論.12
Organizing of Information Resources = 情報資源組織論.12
 
ディスカバリー・ツールとは?
ディスカバリー・ツールとは?ディスカバリー・ツールとは?
ディスカバリー・ツールとは?
 
20021127 ku-librarians勉強会 #38 : Where can I go? : OpenURLによる状況判断型リンク(SFXを中心として)
20021127 ku-librarians勉強会 #38 : Where can I go? : OpenURLによる状況判断型リンク(SFXを中心として)20021127 ku-librarians勉強会 #38 : Where can I go? : OpenURLによる状況判断型リンク(SFXを中心として)
20021127 ku-librarians勉強会 #38 : Where can I go? : OpenURLによる状況判断型リンク(SFXを中心として)
 
マイニング探検会#20 レファレンス・サービスの「ネクスト」を考えるためのヒント
マイニング探検会#20 レファレンス・サービスの「ネクスト」を考えるためのヒントマイニング探検会#20 レファレンス・サービスの「ネクスト」を考えるためのヒント
マイニング探検会#20 レファレンス・サービスの「ネクスト」を考えるためのヒント
 
ブクリス 図書館総合展用
ブクリス 図書館総合展用ブクリス 図書館総合展用
ブクリス 図書館総合展用
 
リブライズの裏側を見てみよう
リブライズの裏側を見てみようリブライズの裏側を見てみよう
リブライズの裏側を見てみよう
 
Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習
Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習
Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習
 
Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会
 
Ksws3rd nagao keynote(20101218)
Ksws3rd nagao keynote(20101218)Ksws3rd nagao keynote(20101218)
Ksws3rd nagao keynote(20101218)
 
Dokkuの活用と内部構造
Dokkuの活用と内部構造Dokkuの活用と内部構造
Dokkuの活用と内部構造
 
静的サイトで書誌1万件チャレンジ.pptx
静的サイトで書誌1万件チャレンジ.pptx静的サイトで書誌1万件チャレンジ.pptx
静的サイトで書誌1万件チャレンジ.pptx
 
物質・材料研究機構におけるNext-L Enjuの導入事例
物質・材料研究機構におけるNext-L Enjuの導入事例物質・材料研究機構におけるNext-L Enjuの導入事例
物質・材料研究機構におけるNext-L Enjuの導入事例
 
「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺
 

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