Post on 07-Aug-2015
1
「斬新さ」より「柔軟さ」でみる Web API
2015 年 6 月 6 日
第 23 回大図研オープンカレッジ「大学図書館員のための Web API 入門」
常川真央 (Twitter: @kunimiya )
※ このスライドにおける主張は常川真央個人の主張であり、所属先を代表するものではありません。
2
自己紹介:常川真央
所属:日本貿易振興機構
アジア経済研究所図書館 システムライブラリアン 2012 年 10 月〜 2013 年 3 月:
国立国会図書館に非常勤調査員として勤務 趣味
ビブリオバトル
4
今日お話すること
API がなぜ大事かを感覚的に理解する 「なにか新しいもの」という Web API のイメー
ジを取り払う より身近で、より現実的な Web API のイメージ
へ プラス、 NDL LabSearch Client の宣伝
7
API とは何か?
photo by Biswarup Gangulyhttp://commons.wikimedia.org/wiki/File:Car_Wheel_-_Kolkata_2006-03-22_04017.JPG
12
まとめ: WebAPI はなぜ重要か
API はシステムの部品を交換可能にするための決まりごと
WebAPI は Web の流儀にしたがって決められた API
WebAPI があることで、 Web サービスが「部品」になり、より大きなウェブサービスを作ることができるようになる
14
Web API の標準化
良い API は、皆がよく馴染んでいるルールに沿って決められている
CiNii も国立国会図書館サーチも、検索用のAPI として取り決めている「ルール」には、OpenSearch や SRU/SRW などの国際的な標準規格を採用している
15
喩え話:スターバックスのトッピング
スターバックスではコーヒーを注文するとき、様々なトッピングを追加可能
組み合わせは無数 ときには呪文のような複雑な組み合わせの
トッピングを注文するヘビーユーザーも
16
スターバックスの注文方式のメリット
自分の好みの組み合わせのトッピング注文方法を覚えてしまえば、全国のスタバで自分の好きなものを飲むことができる
もしスターバックスが店舗ごとにトッピングの種類も注文方法も全く違っていたら?
18
Web API の標準規格 (1) : OpenSearch
Amazon の子会社 A9.comが中心となって策定している API 規格
異なる検索サービスの検索結果を共有・活用するための共通フォーマットを提供
検索クエリ、表示件数など最小限の命令 XML か HTML のいずれかで検索結果を受け取り
可能
20
Web API の標準規格 (2) : SRU
OpenSearch に先行して策定された情報検索のための Web API 標準規格
XMLベースの検索レスポンス CQL(Contextual Query Language) という言語
によって検索クエリを記述 検索システムにできるだけ依存せずにクエリが
書ける 国立国会図書館サーチの API で採用されている
21
SRU の使用例
2008 年 1 月 1 日以降に出版されていて、タイトルに「桜」を含むものを検索する http://iss.ndl.go.jp/api/sru?
operation=searchRetrieve&query=title%3d%22%e6%a1%9c%22%20AND%20from=%222008%22
24
読書傾向診断:やりたいこと 「図書館員は第2次区分を埋めるよう
に本を読むべし」( by M 先生 ) という言葉に従うための独自のメソッド
読書履歴を NDC 第 2次区分で分類
どの区分の本を何冊読んだかを集計
3冊以上読んだ区分を「クリア」とする
トータルのクリア率、第 1次区分ごとのクリア率を算出した「読書傾向診断書」を出力する
これまでの読書の「振り返り」をする
25
読書傾向診断:実現のための課題 読書履歴の取得
ブクログのエクスポートデータを使用 (本当はここも API 化したいが ......)
NDC の取得 ブクログのエクスポートデータには ISBN は含まれているが、 NDC番号
はふられていない ISBN に基いて NDL サーチから書誌情報を取得し、 NDL が付与した
NDC番号を活用する
診断票の出力 Google Drive を使用 Google Drive には特定の URL に対するレスポンスをセルに代入する関
数がある Google Drive と NDC9 Fetcher を組み合わせれば実現可能 ......!
26
読書傾向診断:実現のための API 活用
NDL サーチ
Google Drive
NDC9 Fetcher
ブクログ① CSV 形式の読書履歴を 入力 (手動 )
② 本の ISBN に対応する
NDC のリクエスト
③ SRU で ISBN をクエリとして検索
④書誌情報を返す ⑥ 取得した NDC に
基いて読書履歴を集計・分析し、診断票を出力(PDF 形式 )⑤書誌
情報から NDC
を抽出し、返
す
(赤字が API利用部分 )
27
Web API の標準規格 (3) : OAI-PMH
情報資源のメタデータを収集(ハーベスティング)するための API
主に学術情報資源の統合検索サイトを構築するために利用されている
NII や NDL との連携では OAI-PMH の導入が推奨されている
33
明治大学の機関リポジトリからメタデータをハーベスト
メタデータの一覧をリクエスト http://m-repo.lib.meiji.ac.jp/dspace-oai/
request?verb=ListRecords&metadataPrefix=oai_dc
35
アジア経済研究所の機関リポジトリからメタデータをハーベスト
メタデータの一覧をリクエスト https://ir.ide.go.jp/dspace-oai/request?
verb=ListRecords&metadataPrefix=oai_dc
36
アクセス先以外はほぼ同じ書き方→ OAI-PMH に準拠しているため
明治大学の場合 http://m-repo.lib.meiji.ac.jp/dspace-oai/request?verb=ListRecords&metadataPrefix=oai_dc
アジア経済研究所の場合 https://ir.ide.go.jp/dspace-oai/request?verb=ListRecords&metadataPrefix=oai_dc
38
NDL LabSearch Client
ユーザに検索画面を提供する検索インターフェースの一種
国立国会図書館が試験的に開発・提供している「 NDL ラボサーチ」(http://lab.kn.ndl.go.jp/ndls/)の一部
40
NLC と NDL ラボサーチの関係
タイヤと乗用車の関係
雪道を乗用車で移動するとき
チェーンかスタッドレスタイヤに交換
手を入れる場所はタイヤだけ
車そのものはそのまま
タイヤを交換するかのように、検索画面をカスタマイズ可能
検索サーバ
画面 A(NLC製 )
画面 B(NLC製 )
NDL ラボサーチ
44
「問題の切り分け」ができないと ......
図書館システムがリプレースされると、決まって OPAC上の検索画面のデザインが変更され、こうした変更にユーザは大いに戸惑う
図書館で当たり前のように起こる現象
しかし、果たして検索画面のデザイン変更は本当に必要なのだろうか
もし既存のデザインを残して、検索エンジンを入れ替えたり、業務システムを入れ替えたりできるような仕組みに OPAC がなっていれば、ユーザは戸惑うことなく図書館をより円滑に利用することができるのではないだろうか
45
NDL ラボサーチでの「問題の切り分け」
データ処理の問題とデザインの問題を切り分けて運用
検索画面を維持したまま検索サーバを改修可能
逆に検索サーバを変更せずに新たな検索画面を、今までの検索画面を残したまま提供することが可能
49
「新聞を検索したい」という要求の本質 純粋に「デザインの問題」
検索サーバーと検索インターフェースが独立している場合 検索インターフェースの改修だけで済む
対象の OPAC がデザイン部分だけをカスタマイズできるような機構を用意していない場合 OPAC 全体を改修するようベンダーに依頼するほ
かなくなる
システムの仕様が「問題の切り分け」を阻害している可能性
51
さらなる応用例 NDL ラボサーチ以外の検索システムの検索イン
ターフェースとして移植することも可能 NLC が想定している WebAPI を実装しさえすれ
ば、 NDL ラボサーチと同じ使用感の検索体験を実現できる
今後 Web API の整備によって応用範囲を広げていく