疑似P.O.R.を実現するOmniFocus

P.O.R.てのは、σ(^^)の修論テーマだった、位置情報に基づいたリマインダ(Place Oriented Reminder)のことです。詳しくはこちらのまとめをどうぞ。一口でいうと、「今度ヨドバシ行ったら○○を買う」的なToDoの、「ヨドバシに行ったら」のところを位置情報を使って認識して、アラートを出してあげる仕組みのことです。

1995年に思いついてからずっと温めてるネタなんですが、なかなか本格的な取り組みができずにいます。で、GPSを搭載したiPhoneでもその可能性を探っていたんですが、AppStoreで販売されているOmniFocusというToDo管理ツールで近いことができるようです。

OminiFocusでは、かくToDoにContextという位置カテゴリを付与することができます。これ自体は「Home」とか「Office」とかいったただのテキストタグです。たぶん、iPhone版以外のバージョンにも元から備わっていたんだと思います。で、iPhone版ではそのContextに対し、緯度経度を紐づけることができます。そうしておいて、トップ画面で位置情報検索ボタンを押すと、現在位置測定がされ、近しい位置情報を持つContextsに紐づけられたToDoが一覧される、という仕組みです。

理想的なP.O.R.はこうした能動的なチェック作業をせずとも、常時位置情報を関ししてプッシュでリマインドして欲しいわけですが、今のところiPhoneではバックグラウンド常駐アプリは実装できない仕様なのでいたしかたなし。

このOmniFocusでは、1つのContextに対し1つの緯度経度データしか対応づけられないみたいなんですが、冒頭の「ヨドバシに行ったら」といった条件の場合、複数のヨドバシ店舗の緯度経度を紐付けたいですよね?ということで、その件は早速要望として送っておきました。

P.O.RのSymbian向け実装発見!

Geominder – Unleash the power of location-based reminders
 σ(^^)が修士論文で研究していた位置情報に基づいたリマインダー(秋葉原に行ったらCD-Rを買いあさる、みたいなのを想起支援する仕掛け)ですが、なんと海外のケータイ(SymbianOS)向けの実装を発見しました。携帯電話の基地局(セル)IDを元にするらしく、GPSなどのデバイスは不要。
 早速使ってみようと思ったんですが、残念ながらS60のVersion2用でこないだ買ったE61(同Version3搭載機)では動きません。速攻でサポートにリリース予定がないかメールしてみました。

W-ZERO3ならP.O.R.が作れそう

窓の杜 – 【NEWS】電波強度と現在地の住所をリアルタイムに確認できる「W-ZERO3 Monitor」
 こういうソフトが作れるってことは、.NET環境からモデムをたたいてATコマンドで基地局情報が取れるということですね。それが知りたかった。おまけに緯度経度を直接取得できるATコマンドもあるらしい。しかもこのコマンド発行だけなら無料なので、(電池の持ちを別にすれば)定期的に叩いてもOK。
 これはP.O.R.向けですねぇ。にわかにW-ZERO3買う気が高まってきましたよ。しかも今日は、VisualStudio 2005の発売日。Windows Mobileのアプリ開発ができる最低ラインのStandard Editonが、アップグレード[Amazon.co.jp]なら\19,200で買えますな。
 うーむ、今日、車検代が予定より15万もオーバーしそうだという連絡がなければ速攻で手を出してたかも。とりあえず、今月はサーバー移行と確定申告に邁進。諸々の結果次第かな。

FeliCaで街をブックマーク

ITmediaビジネスモバイル:FeliCaで街をブックマーク──TOWNPOCKET
 これちょっとP.O.R.っぽいですね。でもこういうのはDoCoMoではなくauにやってほしいなぁ。いや、σ(^^)がau使いだからということではなくて、auにはGPSナビがついてるからです。ブックマーク情報の中にGPS情報が入っていれば、そこからルートを検索してナビしてもらえるワケで。
 でも面白いですね。QRコードよりもずっとスマートにやりとりが終わるし。よく店頭で気になるプロモーションのポスターとかあって立ち止まって詳しく読みたくっても時間がなかったり雑踏で迷惑そうだったり、なんかそういうのに興味もってそうな自分を他人に見られたくなかったりw。
 あぁ、つーか別にケータイでなくてもいいなぁ。普通のEdyでタッチしておくと、後から登録アドレスに案内が届く、みたいなのがいいかも。

P.O.R. おさらい

 前エントリで触れたPlace Oriented Reminder (以下P.O.R.)についてご紹介します。
 P.O.R.はσ(^^)が数年前に修士論文で研究、開発していた場所情報にもとづくリマインダ(ToDo)システムです。
 「今度いつ行くかわからないけど、その時には絶対思い出したい」というような用件を記録させておくことができます。
 例えば、
・今度ヨドバシカメラに行ったらDVD-Rメディアを買おう
・レンタル屋で次来た時に空いてたら借りようと思ったソフトをメモ
・レストランのメニューを見て、今度来たら食べようと思う(あるいは写真は美味そうだが「二度と食べない!」と思ったw)メニューを忘れないでおく
といったものです。こういった用件は具体的にそこへ行く予定がない限り通常のスケジュール帳には記載できないですし、かといってただのToDoリストに書いておくだけでは、思い出せる保証がありません。
 P.O.R.シリーズはGPSやPHS基地局情報といった現代の位置情報取得テクノロジを利用して、場所をトリガに用件を想起するというヒトの日常的な認知活動を支援しよう、というコンセプトの研究なのです。
 同種の研究は国内外で散見されますが、残念ながら実用レベルの実装はまだないようです。
 実際のユーザコンテクストを考えると、緯度経度やPHS基地局のCSコードといった絶対位置情報だけでなく、「コンビニ」、「郵便局」みたいな一般化された“位置”情報に基づくリマインドも欠かせないワケで、そういった位置情報“系”の変換には大規模なデータベースが必要で、個人規模では実現は難しいところです。
 P.O.R._シリーズ_というからにはいくつかバージョンがあります。

・行き先掲示板連動型

 一番ローテクなタイプです。大学院時代に研究室で利用していたオリジナルのWeb上の行き先掲示板システムに埋め込んで、表示を「帰宅」に切り替えると、Eメール対応ポケベルに「ビデオを返却していくこと」みたいなメッセージが届くというものです。クローズドな行き先掲示板をベースにしていたため非公開。

・いまどこサービス利用型

 DoCoMoのPHSの位置情報サービス「いまどこサービス」を利用したバージョン。Mapionのサイトで電話番号を指定するとそのPHSの位置が表示できることを利用し、Perlスクリプト+cronで定期的にモニタリングして、特定の位置に差し掛かったらポケベルやケータイにメールを送る仕組みでした。いまどこサービスは位置問い合わせの度に料金がかかる仕組みだったのと、マピオンを非公式に利用していたので、実験の域を出られずに開発中止。もちろんソースも非公開。

・ASTEL端末AJ-51用ASP型「POR-ASP!」

 前エントリに書いた通り、AJ-51は特定の書式を使って、ブラウザで閲覧したページに位置情報パラメーターを送信することができたので、それをサーバーサイドで解析して、リマインダを返す、という処理をPHP+PostgreSQLで実装したバージョン。一般ユーザも利用できる形で公開しています。ただ自分でもAJ-51は解約して使っていないので、最近のPHPバージョンアップなどで不具合も出ているかも知れません。
 ASP型の短所は、その場所で「なにかやることあったかな?」と能動的にサイトにアクセスしなければならない点ですね。

・i-mode端末用iエリア利用版「POR-i」

 こちらもASP型で公開済みですが、DoCoMoユーザでなくなってからメンテしていないので、ちゃんと動くかどうか…。i-mode端末用のiエリアという機能を使うと、センタからおおまかな住所コードが取得できるので、それを使っています。
 本当はiアプリを使って自動定期チェック式にしたかったんですが、iアプリはダウンロード元サイトとしか通信できないという制約があり実現不可でした。iアプリDXでようやく利用可能になったらしいのですが、iアプリDXは高いお金を払って公式サイト登録をしないと配布できないらしくアホらしいので放置。

・au gpsOne利用型(構想のみ)

 最近のgpsOne(EZナビ)搭載のau端末なら仕様的にはサーバーを使わずにスタンドアローンで位置も自律取得できそう。サーバーに自分のToDoを預けなくて良いのでセキュリティ的にも安心とヨサゲ。Java端末での位置情報利用はある程度解明が進んでたのですが、その後自分がやはり公式登録しないとアプリ配布できないBREW端末に機種変更してしまい放置。そもそもC言語挫折組だしw。協力者が現れるのを待っている状態。

・au端末向けASP型「POR-au」(構想段階)

 前エントリでの情報を元に、久しぶりに再燃してきました。gpsOne搭載機でなくても、基地局情報を使った簡易計測は使えるので、EZWeb対応機ならどれでもイケるんじゃないでしょうか。もともとそれほど緯度経度に精度が必要な用途じゃないですしね。

au端末で位置情報取得

 ネットを徘徊中、ふとこんなページを見つけました。DDI PocketのAirH” Phoneシリーズで、端末の位置情報をWebサーバーに渡す方法、いつのまにか公になってたんですね。
 以前、ASTEL端末AJ-51で同様のことができていたので、それを利用して、POR-ASPなるものを作ったことがあるのですが、端末自体がマイナーであまり盛り上がりませんでした。ASTEL自体も終息方向のようですしね。
#P.O.R.シリーズについては次エントリでおさらい紹介したいと思います。
#上記POR-ASPは最近メンテしてないのでまともに動くかどうか不明です(^^;)
 しかし、今をときめく京ぽんをはじめ、AirH” Phoneで同様のことができるとなれば、オモシロそうです。端末としても現役スペックですしね。
 これは京ぽん買いに走るしか!と思いつつ、もう少し詳しい情報を探る。

QRコード

 すると、なんとauのgpsOne端末で同様のことをする方法も有志により解明されているではないですか。この資料を元に、簡単なPHPコードを組んでみました。au端末をお使いの方は、
//do-gugan.com/por-au/
でお試し下さい(右にQRコードも用意しました)。緯度、経度、高度などが表示されるはずです。
 おぉ、ちゃんと表示されますね。これならASP型のP.O.R.は実装可能だなぁ。ASTEL向けのものを少し変更すれば動きそう。むぅ、どこかで時間をとってみよう。
#金欠なのでとりあえず京ぽんはお預けかな…