2010年4月9日 @東京大学アントレプレナープラザ会議室 マイニング探検会 #1 東京大学情報基盤センター 学術情報研究部門 助教 清田 陽司 (兼 株式会社リッテル 上席研究員) 素朴な疑問 • そもそも、図書館の価値ってなに? – 過去の情報の蓄積と提供 – 研究・調査・教育のための知的インフラ – 情報リテラシーを育てる場 – 「知る権利」の保証=民主主義を支える柱 – etc. • まわりの人たちに価値をどうやって伝える か? Webが世界に与えたインパクト • 最初は「ハッカーのおもちゃ」 • まわりの人たちを巻き込んでいくことで爆発 的に成長 – 世界に新たな「知的ゲーム」を提供した – 究極の「暇つぶしツール」 – 参加者の数が価値を生み出している • 多くの人々の人生に新たな意味を与えた – ゲームの意味を問うことには意味がない! – 意味は後から生み出される 知的ゲームの提供者としての図書館 • 現在の図書館の基盤を築いたのは何か? – 誰でも情報に触れられる場を提供したこと – 膨大な情報を検索できるツールを提供したこと 価値あるゲームを社会に提供することで認めら れた • Webによってかなりの部分が代替されつつある → 新たな知的ゲームを創造すべき時期になってい る! 新たな知的ゲームを創造するために • 多くの人々を巻き込むしかけ – 組織の壁を超えた交流 – エンターテインメント精神が大事 • Webがもつ価値を徹底的に利用 – Webを支える「ルール」と「テクニック」を知っておく – プログラミングできなくても大丈夫 – 実際に手を動かして体験学習 • 図書館パラダイムの再構築 – ライブラリアンシップを次の世代に受け継ぐために • ひとりひとりが新サービスのプロデューサーとし ての役割を果たしていこう! トピック案 • 情報検索 – Lucene、GETAssoc、… • データマイニング – 相関ルール抽出、回帰 分析、機械学習、クラス タリング • レコメンデーション – 協調フィルタリング、プロ ファイル推定、… • テキスト処理 – 形態素解析、構文解析、 固有表現抽出、… • 大規模データ処理 – Hadoop、Amazon EC2/S3、Google Apps Engine、Windows Azure • 信頼性の向上 – HDFS、ZooKeeper、… • Webインタフェース – AJAX、Flash、HTML5、… API (Application Programming Interface) • OS(Windows、MacOS、Linuxなど)やプログラミ ング言語(C言語、Java、C#など)によって提供 – OSやライブラリ内部の機能を利用できる • APIの役割 – アプリケーション開発においてプログラミングの手 間を省く – システム間の連携 – 抽象化 (=人間のレベルに近づける) • 簡潔さと柔軟性のトレードオフ – 抽象化しすぎると細かな要望に手が回らない Web API • APIの概念をWebの世界に援用 – 単に「API」といえば「Web API」 • Webサービス運営者によって提供 – Webサービス内部の機能やデータを利用できる • Web APIの役割 – 新たなWebサービス開発の手間を省く – Webサービス間の連携 → マッシュアップ – 抽象化 • トレードオフが存在 – 簡単にするほど細かな処理ができなくなる Web APIを支える技術 リソースの指定 • IPアドレス • ドメイン名 • URL 通信プロトコル • TCP/IP (インターネット) • HTTP / HTTPS (cf. Z39.50) ファイルフォーマット • XML • JSON APIへの情報送信 • SOAP • REST ブラウザへの情報提供 • RSS / Atom • OpenSearch URL (Uniform Resource Locater) • インターネット上のリソースの「住所」 • プロトコル+ホスト名+パス名 で構成 – http://ja.wikipedia.org/wiki/Wikipedia – https://mail.google.com/mail/ – ftp://ftp.iij.ad.jp/pub/linux/centos/5/os/x86_64/ • ホスト名はドメイン名またはIPアドレス – http://124.83.167.215/hl HTTP (HyperText Transfer Protocol) • Webを支える基盤プロトコル(通信規約) – ほぼすべてのWebサービスはHTTPを利用 – 暗号化されたHTTP = HTTPS • クライアント=サーバモデル – クライアント(ブラウザとか)からのリクエストを受けて、 サーバがコンテンツをクライアントに返す • いろんなコンテンツを送れる – テキスト、画像、動画、プログラム、XML、… • サーバがコンテンツをどう作るかは関知せず – ディスクにしまってあるコンテンツをそのまま書き出し てもよい (静的コンテンツ) – プログラムでコンテンツをその場で作ってしまってもよ い(動的コンテンツ) 静的コンテンツの場合 クライアント (ブラウザソフト) GET / HTTP/1.1 Host: www.mi-tan.jp User-Agent: Mozilla/5.0 ….. サーバ (www.mi-tan.jp) URLの入力 コンテンツの表示 イン ター ネット HTTPサーバ HTTP/1.1 200 OK Date: Tue, 06 Apr 2010 13:14:32 GMT Server: Apache Content-Type: text/html <html> <head> <title>マイニング 探検会(マイタン) - 図書 館の未来を探る勉強会 </title> </head> <body class=“mainPage”> … </body> <html> <head> <title>マイニン グ探検会(マイタン) - 図 書館の未来を探る勉強 会 -</title> </head> … 動的コンテンツの場合 クライアント (ブラウザソフト) GET /search?p=マイニング探 検会&ei=UTF-8 HTTP/1.1 Host: search.yahoo.co.jp User-Agent: Mozilla/5.0 サーバ (search.yahoo.co.jp) 検索クエリーの入力 コンテンツの表示 イン ター ネット HTTP/1.1 200 OK Date: Tue, 06 Apr 2010 13:14:32 GMT Server: Apache Content-Type: text/html <html> <head> <title>「マイニング 探検会」の検索結果 Yahoo!検索</title> </head> <body> … </body> HTTPサーバ 検索エンジ ンサーバ 検索インデックス HTTPリクエストのメソッド • GET – URL埋め込み形式で情報を送ることができる • http://search.yahoo.co.jp/search?p=マイニング探検会 &ei=UTF-8 – サイズ制限あり (Internet Explorerでは2083bytes) – ブラウザから簡単に試せる • POST – さまざまなコンテンツを送ることができる • ファイルをアップロードすることも可能 – サイズ制限なし – 利用が少し面倒 XML (eXtensible Markup Language) • マークアップ言語の規 格 – 電子的文書を記述する 規格SGMLの後継 – 「タグ」で構造を表現でき る • 応用例 – ニュースリーダー (RSS) – 電子書籍 (Open eBook) – オフィス文書 <?xml version="1.0" encoding="UTF-8"?> <レシピ 名前="パン" 準備時間="5分" 調理時間="3時間"> <料理>基本的なパン</料理> <材料 量='3' 単位='カップ'>小麦粉</材料> <材料 量='0.25' 単位='オンス'>イースト</材料> <材料 量='1.5' 単位='カップ' 状態="温かい">水</材料> <材料 量="1" 単位="ティースプーン">食塩</材料> <要領> <手順>全ての材料を一緒にして混ぜます。</手順> <手順>十分にこねます。</手順> <手順>布で覆い、暖かい部屋で1時間そのままにして おきます。 </手順> <手順>もう一度こねます。</手順> <手順>パン焼きの容器に入れます</手順> <手順>布で覆い、暖かい部屋で1時間そのままにして おきます。 </手順> <手順>オーブンに入れて温度を180℃にして30分間 焼きます。 </手順> </要領> </レシピ> SOAPとREST SOAP (Simple Object Access Protocol) • XMLで記述されたSOAPメッ セージを送信 • 利点 – HTTP以外も利用可能 (SMTP) – 複雑な指示が送れる • 欠点 – 利用が面倒 – キャッシュ不可 REST (Representational State Transfer) • URLを情報送信の手段とし て利用 • 利点 – 簡単に利用できる – キャッシュ可能 • 欠点 – HTTPに依存 – あまり複雑な指示は送れない 紹介するWeb API • • • • • Amazon Twitter CiNii (国立情報学研究所) PORTA (国立国会図書館) レファレンス共同データベース (国立国会図 書館) • J-Global (科学技術振興機構) Amazon Product Advertising API • Amazonの商品情報を利 用したサイト構築のため の機能を提供 – – – – – 商品検索 検索条件による絞り込み 商品画像の表示 商品情報の取得 レビュー・ランキング・関連 商品・販売状態などの取 得 • アフィリエイトとの連携 (Amazonアソシエイト) • サーバーサイド • SOAPまたはRESTが利用 可能 • APIキーの発行が必須 http://developer.amazonwe bservices.com/connect/k bcategory.jspa?categoryI D=19 ※OpenSearchはAPIキーな しで利用可能 Twitter API • Twitterのアプリケーショ • GETメソッド (メッセージ投 稿など一部はPOST) ンを作るために必要な一 • 公開ユーザのタイムライ 通りの機能を提供 ン取得以外は認証が必要 – – – – タイムラインの取得 ステータスの取得 アカウント情報の取得 発言の投稿 • 3種類のAPI – REST 2種類 (歴史的経緯) – Streaming ドキュメント http://apiwiki.twitter.com/ 利用例 (自分のタイムライン) http://api.twitter.com/1/stat uses/home_timeline.xml CiNii API • NII論文検索の基本的な機 能を提供 – ツールバーなどからの論文・ 著者検索 – 論文・著者詳細情報の取得 – CiNii内のコンテンツへの直接 リンク • GETメソッド • REST準拠 • フォーマット – 検索: RSS or Atom – 詳細情報: RDF • 認証不要 ドキュメント http://ci.nii.ac.jp/info/ja/if_lin k_receive.html 利用例 (RSSフィード) http://ci.nii.ac.jp/opensearch/s earch?q=長尾真 &range=0&sortorder=1&sta rt=1&count=20&format=ato m ※OpenSearchが利用可能 PORTA API • NDL PORTAコンテンツ の検索とハーベスティ ング機能を提供 • GETメソッド/POSTメソッ ドが混在 • REST/SOAP/Z39.50が混 在 • 認証不要 用途 プロトコル 返却形式 検索 OpenSearch XML(RSS2.0) 検索 OpenURL HTML画面 検索 SRU XML 検索 SRW XML(SOAP) 検索 Z39.50 SUTRS データのダ OAI-PMH ウンロード (ハーベスト) XML レファレンス共同データベースAPI • 詳細検索画面と同等の検索機能を提供 – キーワード検索 (boolean) – 館ごとの検索指定 – アクセス数ランキング • GETメソッド • REST準拠 • フォーマット – XML (独自形式) • 認証不要 J-GLOBAL Web API • 4つの基本情報を検索可能 – 「文献」「科学技術用語」「科学物質」「資料」 – J-GLOBAL サイトの検索結果一覧と同等レベルの 情報を取得可能 • 取得可能な検索結果 – HTML形式 – JSON形式 • Ajaxで利用可能 • WebAPIキーの取得が必要 APIの利用制限 • APIキーの発行を受けないと利用できないも のがある • 呼び出し頻度に注意 – 過度の呼び出しはサーバに負荷をかける – アクセス制限を受けることも • 利用規約 – 非営利利用に制限されているもの – リンクを張ることが義務づけられているもの (Amazonなど) Web API提供の考え方 • なぜ公開するのか? – お互いハッピーになれる かも? – cf. カーリルのスクレイピン グ • 何を公開し、何を公開し ないか? – 個人情報はNG – レコメンデーションは? • どうやって普及させる か? – APIコンテスト – アフィリエイト • 開発者(ベンダー含む)と の関係をどう築いていく か? • サービスとしてどう継続し ていくか? • 標準をどう作っていく か? • 営利と非営利の境界線 – 図書館とWeb書店はどこ まで連携可能か?
© Copyright 2025 ExpyDoc