データ発見隊

第5回実世界コンテキストと計算機コンテキスト

はじめに

人間はさまざまな仕事を切り替えながら生活しています。テレビを見ながらプログラムを書くといった具合に、いろいろな仕事を同時にやることを「マルチタスキング」と言います。複数の仕事を同時にこなすことは一見効率が良さそうですが、どうしても集中が阻害されるし頭の切り替えのオーバーヘッドが大きいため、実際には効率が悪いという説が最近は有力になっています参考文献[1]⁠2]⁠3]⁠。1つのことに集中する時間をうまく切り替えながら仕事をする(⁠⁠スイッチタスキング」する)技法が重要でしょう。

頭を切り替えるにはさまざまな方法があります。仕事机の前に座ると仕事する気分になりますし、図書館に行くと勉強しなくちゃという気分になります。ブラウザウィンドウを見ているときよりもテキストエディタのウィンドウを見ているときのほうが仕事の気分が出るかもしれません。体を動かしたり計算機を操作したりすると、頭が切り替わるだけでなく、実際に作業のコンテキスト(背景状況)が変化します。

居場所を変えたり文書のフォルダを開いたりといった動作によってコンテキストの切り替えを行い、コンテキストごとに環境が変化するようにすることにより、効果的なスイッチタスキングが可能になるでしょう。

コンテキストによって環境を変化させたり解釈を変えたりすることは実社会では頻繁に行われています。レストランで「うなぎ!」と言えばうなぎを注文したことになるでしょうし、スーパーで「うなぎ?」と言えばうなぎを買いたいのだろうと想像がつきますが、街角で「うなぎ!?」とつぶやいても意味がわからないでしょう。現在のコンテキストにより、⁠うな丼1つください」「うなぎのパックはどこに売ってますか?」のような文が省略可能になっていることになります。

コンテキストを最大限に利用できる予測入力システムならば、⁠うな」と入力するだけで「うな丼1つください」という候補を生成できるかもしれません。このように、コンテキストを切り替える自然な行動によって環境が変化したりカスタマイズされたりすれば、仕事の効率が上がると考えられます。

コンテキストの表現方法

計算機コマンドを発行したり自分が移動したり、さまざまな方法によってコンテキストを切り替えることができますが、大きくは計算機上でコンテキストを切り替える場合と実世界でコンテキストを切り替える場合に分類することができます。コンテキストを切り替える行動の種類とコンテキスト切り替えにより影響が出る場所を考えると、次の4種類の組み合わせがあると言えるでしょう。

  • 計算機上の操作で計算機コンテキストを表現する
  • 実世界上の操作で実世界コンテキストを表現する
  • 実世界上の操作で計算機コンテキストを表現する
  • 計算機上の操作で実世界コンテキストを表現する

計算機上の操作で計算機コンテキストを表現する

計算機上ではさまざまな仕事が行われるため、仕事を切り替えるためにさまざまな操作が利用されます。一般的なパソコン画面ではアプリケーションのウィンドウをクリックすることにより仕事のコンテキストを切り替えることができますし、Macの場合はSpaces機能を使って画面ごとコンテキストを切り替えることができます。

UNIXではカレントディレクトリがコンテキストとしてよく利用されています。UNIXのシェルではcdコマンドでディレクトリを移動することにより作業のコンテキストを切り替えることができますし、pushd、popdコマンドの利用によってコンテキスト間を簡単に移動することもできます。

cdでコンテキスト切り替えを行うと、相対パスを利用して短いファイル名を利用できます。/home/masui/の中のMakefile/home/masui/DOC/のMakefileは違うものですから、あらゆる状況でこれらを区別するためには/home/masui/Makefile/home/masui/DOC/Makefileのような絶対パスを指定する必要があります。しかし現在作業中のディレクトリパスをコンテキストとして利用することにより、Makefileのような短い相対パス名が短いIDとして利用できます。単にMakefileと言った場合は街角で「ウナギ」と言った場合と同様に、どのファイルのことかわからないでしょうが、cdコマンドの発行によってユーザとシステムがカレントディレクトリというコンテキスト情報を共通知識として共有することにより、作業の手間を減らすことができるようになっています。

実世界上の操作で実世界コンテキストを表現する

場所を移動するとコンテキストは簡単に変化します。自宅にいるときと会社にいるときはコンテキストがかなり違うのが普通ですし、居室と会議室でもコンテキストは異なります。毎日の通勤は面倒ですが、場所を変えることによって仕事用に気分を切り替えるという意義は大きいと思われます。散歩に行ったり風呂に入ったりしてコンテキストを切り替えることによってアイデアを出すという方法はよく使われていますし、実世界中の移動によってコンテキストを切り替える方法はわかりやすく有用です。仕事をする場所を常に決めておけば、その場所に移動するだけで仕事の気分になれるでしょう。

実世界中の位置情報でコンテキストを表現するのはわかりやすい反面、位置が簡単にわからない場合にはコンテキストを知ることが難しいという問題があります。ある人が会議室にいるのを見れば、その人が会議中であることはすぐにわかりますが、会議室以外ではその人のコンテキストを知ることができません。こういう場合、名札掛けのような別のオブジェクトを利用すると、その人のコンテキストをわかりやすく表現できます写真1⁠。

写真1 名札掛けで人のコンテキストを表現
写真1 名札掛けで人のコンテキストを表現

共用の工具を管理するとき、写真2のように工具を板に張るように保管し、各工具の外枠を描くという方法があります。この板の上に工具がない場合は誰かが使用中だということになりますが、工具の形に合わせて枠線が引かれているため、どの工具が使われているのかというコンテキストが一目瞭然になっています。

写真2 枠線で工具のコンテキストを表現
写真2 枠線で工具のコンテキストを表現
写真提供:筑波大学 システム情報工学研究科 知能ロボット研究室

実世界上の操作で計算機コンテキストを表現する

cdコマンドで計算機操作のコンテキストを指定したときは、コンテキストを示す情報はシェルとユーザの頭の中にだけ存在し、はっきり明らかに見える形で表現されているわけではありません。そのため、現在のコンテキストを確認するためにpwdコマンドなどを利用することがよくあります。一方、計算機のコンテキストに比べると実世界のコンテキストは自明な形で表現することが簡単です。たとえば自分が会社にいるのか自宅にいるのかは自明であって、自分がどこにいるのか調べるコマンドが必要になることはありません。

実世界のものを使って現在のコンテキストをうまく表現することが可能なのであれば、計算機のコンテキストを実世界的なもので表現すれば直感的な理解が可能になります。計算機上で処理すべき書類を全部印刷して積み上げておくようにすると、計算機上の仕事の量が実世界の書類の量として表現されるため、どれぐらい頑張って働かなければならないかが一目瞭然になりますし、仕事が溜まっている状況を他人に知らせることもできます。

物理的なアイコン

MIT(マサチューセッツ工科大学)の石井裕氏は計算機の内部状態を実世界のものと連動させて表現する「Tangible Bits」参考文献[4]というコンセプトを提唱しています。計算機内の情報を計算機上で表現するためにアイコンが広く利用されていますが、石井氏は計算機内の情報を実世界上のもので表現するために「Phicon」⁠Physical Icon)の利用を提案しています。写真3はMITの建物をPhiconで表現したもので、写真4のようにPhiconを動かすことによってそれに対応するように地図が表示されます。

写真3 Phicon
写真3 Phicon
写真4 Phiconを動かすことで地図を操作
写真4 Phiconを動かすことで地図を操作

秘密情報のコントロール

図1はお茶の水女子大学の塚田浩二氏が作った「秘密制御パソコン」で、ノートパソコンのディスプレイの傾きによって秘密の具合を制御できるようにしたものです。

図1 通常は普通のファイルのみ表示
図1 通常は普通のファイルのみ表示 図1 通常は普通のファイルのみ表示

図1のようにディスプレイが開かれた状態のとき、ディスプレイには図1の右側のような平凡な画面が表示されています。図2のようにディスプレイを閉じる方向に傾けると秘密レベルが変化し、図2の右側のようにファイル共有ソフトや秘密動画のアイコンが表示されるようになっています。

図2 傾けると秘密のファイルも表示
図2 傾けると秘密のファイルも表示 図2 傾けると秘密のファイルも表示

実世界でディスプレイを傾けるという操作が、計算機内の秘密レベルというコンテキストの変化と連動しているところが面白いところです。

在庫情報をWebで見る

冷蔵庫の中身をWebでチェックできるようになっていれば買い物時に便利でしょう。買い物が必要かどうかというコンテキストをWeb上で確認する方法はいろいろ考えられます。

RFIDタグなどを使って冷蔵庫の出し入れのたびに在庫を管理すれば冷蔵庫の状態をWeb上でチェックすることができますが、家庭の冷蔵庫ではそういう作業は面倒過ぎるので実用的ではありません。冷蔵庫の中にカメラやセンサを搭載することも考えられますが、設置が大変ですし結露などの問題もあるので実際的ではありません。

現実的な方法としては、牛乳やタマネギなど冷蔵庫に常に在庫しておくべきアイテムには常にタグを付けて使い、中身がなくなった時点でタグを回収するようにしておけば、在庫状況をもとにして買い物の必要度合いを計算機上に表現しやすくなると思われます。

計算機上の操作で実世界コンテキストを表現する

前述のような各種のセンサを利用すれば、実世界上の移動などによりコンテキストが変化したことを計算機に伝えることができますが、センサがない場合はコンテキストの変化を計算機に通知するのが困難です。

このような場合、計算機上で人手でコンテキストを指示するようにすれば便利な場合があります。前号の本連載で紹介した拙作のGyampを使うと情報へのショートカットを短いURLで定義できますが、現在位置のコンテキストを計算機上で明示すれば、コンテキストに対応した情報にアクセスすることが簡単になります。

たとえばオフィスにいるときは「office」という名前のコンテキストを利用し、

http://office.gyamp.com/

のようなアドレスを利用します。自宅にいるときは「home」という名前を使うことにして

http://home.gyamp.com/

のようなアドレスを利用します。

オフィスに移動したときは、自分のパソコンで

% ccd office

のようなコマンドを発行することによって計算機環境に現在の実世界コンテキストを通知します。ここで、

% cshow printer

のようなコマンドによってhttp://office.gyamp.com/printerの中身が表示されるようにします。自宅に帰ったら

% ccd home

というコマンドを発行することによって自宅にいることを通知すれば、

% cshow printer

とすると自宅のプリンタの情報が表示されるようになります。

ccd、cshowなどのコマンドを用意しておくと、cdコマンドで計算機上のコンテキスト切り替えを行っているのと同じ感覚で、ccdコマンドで仮想的に実世界上のコンテキスト切り替えを行うことができるようになり、Gyampによる短いIDをより活用しやすくなります。

gcdの実装

ccd、ccatの実装は非常に簡単です。Macのbashであれば~/.profileなどに次のようなスクリプトを追加するだけです。

# 実世界コンテキストをRWDに格納
function ccd {
  if test $1
    then export RWD=$1
    else echo $RWD
  fi
}
function cshow {
  open http://gyamp.com/$RWD/$1
}
function cedit {
  open http://gyamp.com/$RWD/$1!
}

各種のセンサや無線LANなどを利用して実世界のコンテキストを自動検出するようにすれば、ccdコマンドの起動は不要になります。最近のパソコンでは、ネットの接続状況に応じてデフォルトプリンタが切り替わるようになっているのが便利ですが、プリンタ以外のさまざまな設定がコンテキストによって変化すると有用でしょう。

まとめ

コンテキスト切り替えは仕事の効率化にとって重要なものであり、計算機上でも実世界でもさまざまなコンテキスト切り替えテクニックが利用されてきています。コンテキスト切り替えを有効に活用するためのセンサやツールをもっと利用していきたいものです。

参考文献
[1]Christopher Chabris and Daniel Simons. The Invisible Gorilla: And Other Ways Our Intuitions Deceive Us. Crown Archetype, May 2010.
[2]Dave Crenshaw. The Myth of Multitasking: How"Doing It All" Gets Nothing Done. Jossey-Bass,August 2008.
[3]Loukia D. Loukopoulos, R. Key Dismukes, and Immanuel Barshi. The Multitasking Myth(Ashgate Studies in Human Factors for Flight Operations). Ashgate, November 2009.
[4]Hiroshi Ishii and Brygg Ullmer. Tangible Bits:Towards Seamless Interfaces between People,Bits and Atoms. Proceedings of the SIGCHI conference on Human factors in computing systems, pp. 234-241, 1997.

おすすめ記事

記事・ニュース一覧