2012/04/19
個人行動支援の情報提供・PHPの応用
政策情報学部 渡辺恭人 riho-m@cuc.ac.jp PHPのファイルは、UTF-8、BOMなしで保存し、 www.cyaneum.orgのpublic_htmlに置く!【変更】研究計画書の作成
• 今学期の作業の中身を考えて、現時点での
構想と計画をまとめよう
– 前学期の最終課題をベースに検討する – 新ネタも可• 次回に、全員分の最終課題レビュー結果を返
し、授業時間内で議論する
– 足りない部分は、個別にミーティング時間を設け る – 【すみません、レビューは次回以降に延期】キャリアアップのための
キャリア講座
• キャリア・カルテの活用とキャリアアップにつ
いての説明
• 日程
– 5月14日(月)、15日(火)、17日(木)、18日(金) • できるだけ、ゼミのある当日または翌日に参加。 • (都合が悪い場合のみ他の曜日も可)• 時間 12時20分~50分
• 場所 702教室
3現実世界の情報
• ある人・モノは、遍在している(地球上に分散) – それが何であるか・・・・・・属性 – それがいつあるか・・・・・・時刻 – それがどこにあるか・・・・・位置 – それがどのようにあるか・・状態 – それが誰のものか・・・・・・・所有権 – それがどんな形・大きさをしているか – などを知りたい • 何に使うのか?どう使いたいのか?使えるのか? • 特にカギになる情報は何か? 45
位置情報
• 種類:いろいろ・用途によってさまざまに存在
– 緯度・経度・高度 – 国名・地名・住所 – など• タイプ
– 絶対的・相対的• 精度(正しさ)・粒度(粗さ)
• 取得する方法:いろいろ
緯度・経度の形式
• アプリケーションやWebAPIの仕様などで使用
する形式は異なる
– プログラム内部では度のほうが扱いやすい• 緯度(Latitude)
– 度分秒で表す:北緯43度35分31秒 – 度で表す:北緯43 .59194度• 経度(Longitude)も同様
• 注意
– たまに度分で表すものもある 67
例・個人行動支援の情報提供
• 個人に対するサービス – 個人の行動予定や嗜好等のプロファイルに対応 – 位置や時刻・状況の変化に柔軟に対応 • 個人の行動:プロファイルに基づく – スケジュール・嗜好 • 朝何時に起きるか・夜何時に寝るか • 何時に家を出るか・交通手段は何か • 何を食べたいか • 家に着くための最終交通手段は • すべてスケジュールどおりではない – その場その場でユーザが必要とする情報を自動的に探し て提供8
例・個人行動支援の情報提供(続)
• ユーザが求める情報を自動的に探索し提供
する
– 動的変化する情報(ユーザの位置、周辺、時間、 スケジュールなど) – 比較的静的な個人情報(住所、年齢、職業、趣味 、趣向、健康状態など) – ユーザが設定した優先順位、情報使用頻度 – 探索先: インターネット9
例・個人行動支援の情報提供(続)
• 現実世界のあらゆる対象の情報はインターネット上にあ る – それぞれの情報を位置情報および属性情報によって関連付け る • ユーザの置かれている状況を推測し、提供すべき情報 の種類を決定する • ユーザ個人に必要と推測される情報を効率的に収集 – 要求情報データベースを作成し、web上から頻繁に収集、更新WebAPI
• 他の人が作ったデータやプログラムを自分の
コンテンツの中で使う技術
– Web上でえはさまざまなAPIが公開されている• 例、GoogleMapsAPIは、地図のデータと地図
を操作するプログラムを提供している
– これを利用して自宅の周辺地図をホームページ に埋め込むことができる 10WebAPIの特徴
• 取得したデータを柔軟に取り扱うことができる
– データの編集、他のデータとの組み合わせ • 例、食べログとGoogleMapsの組み合わせ • 自宅周辺の飲食店情報を地図上に表示する – マッシュアップ • 複数のAPIを連携させてコンテンツを作る• Webサービスとも言われる
11WebAPIの歴史
• WebAPIの技術自体は新しくない
– AmazonのAmazon Web Servicesは2002年
• 2005年後半になって急に多くのWebAPIが登
場
– まとめサイト(英語) http://www.programmableweb.com • 多数のAPIが登録 – Web2.0の影響(What is Web2.0? 日本語版あり) • http://www.oreillynet.com/pub/a/oreilly/tim/news/20 05/09/30/what-is-web-20.html 12WebAPIの利用と仕組み
13 人間:WebブラウザWeb
サーバ
Webサー
バ
コンテンツ+プ ログラム リクエスト レスポンス リクエスト レスポンス WebAPI+プログ ラムAPIからのデータの構造と処理
• XML
– Extensible Markup Language
– RESTメソッドのレスポンスとして使われる – よくある使い方:受け取ったXMLをHTMLに変換し たり – PHPではSimpleXML関数を用いてXMLを処理する
• プロトコル
– プログラムとAPIの間の通信の規格– REST, XML-RPC, SOAP, JSONPなどがある
いろいろなWebサービス
• インターネット上の紹介例
– Web Service Navi
• http://www.labasp.net/CsharpNote/Navi/WebServiceN avi.html – その他
• 書籍
– PHP×WebサービスAPIコネクションズ – Web API実践リファレンスブック 15位置情報と住所の変換WebAPI
住所⇒緯度・経度
(Geocoding)
• Geocoding
– http://www.geocoding.jp/api/ – 住所やランドマークを送ると、緯度・経度の位置 情報を返すWebサービス – 例、千葉県市川市国府台1-3-1の場合 • http://www.geocoding.jp/api/?v=1.1&q=%E5%8D%83% E8%91%89%E7%9C%8C%E5%B8%82%E5%B7%9D%E5% B8%82%E5%9B%BD%E5%BA%9C%E5%8F%B01-3-1 • q=の後に、URLエンコーディングした文字列を付ける 17応答例
プログラム(前半)(gc.php)
19 <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body> <?php $request = "http://www.geocoding.jp/api/"; $addr = "千葉県市川市国府台1-3-1"; $query = ""; $query .= "v=1.1&q="; $query .= urlencode($addr);
プログラム(後半)(gc.php)
20
$response = simplexml_load_file($request . "?" . $query); foreach ($response->coordinate as $point){
$lat = $point->lat; $lng = $point->lng; } echo "緯度:" . $lat . "経度: ". $lng . "<br>"; ?> </body> </html>
課題
• 今回、入力実行したプログラムと、その実行結果をレポートし なさい。 – gc.phpは、 $addrの値を変えて、いくつかのパターンで実行結果を得 る(住所等) • 今回のWebAPIを利用してどのような応用ができるか考えて 述べなさい。 • レポート方法 – 文章 – プログラムそのもの(画像ではなくテキスト) – 実行画面のスクリーンダンプ 21課題(つづき)
• 提出物 – プログラムファイルと実行結果をWordのファイルに貼り付 けて、メールで提出する • 実行画面は、フリーソフトのWinShotを使うか、または、Altキー+ PrintScreenキーを使う。 – ファイル名: kadai0419-学籍番号.doc • 提出方法 – メールで、riho-m-rg11@cuc.ac.jpに送る – 私個人宛のメールは受け取らないので注意 • 締切 – 4/25 23:59 22Facebookで情報共有
• Facebookが情報共有に使いやすいので、グ
ループ「渡辺ゼミ」を作りました。
– 学年区別せず• なので、Facebookにアカウントを作ってくださ
い。
– 作ったら、Yasuhito Watanabeまたは渡辺 恭人で 検索して、友達申請してください。グループに入 れます。• ファイルの配信は、別の手段を考えます。
23いろいろなWebサービスに
アカウントを作る
• Google (
http://www.google.co.jp
)
– iGoogle, Gmail, Mapsなど多種多様なサービスを 展開