2010年の1月、
Azaとは昨年の訪米の際に筆者が関わっているコミュニティ・
言語によるインターフェース
彼が送り出したいくつかのアイデアの1つに、
筆者
(以後単にY): まずUbiquityがどこから来たかを教えてください。そのアイデア、コンセプトはどこから来たのですか? Aza
(以後単にA): そう、かなり前に戻らないといけないね。父、 Jef [3] と一緒に考えたんです。知ってる? 厳しい人でね。彼が病気になったとき、 いくつものアイデアを思いついたんです。この形見となったアイデアもね。 「システムを使っているとき、 そこで必要な機能を得るために、 ユーザが自分の思考状態 (state of the mind) を変える必要はないはずだ」 ってことです。 僕はこれを外に出したい、
と思ったんですよ。とても良くHumanizeされた [4] ものだから。僕たちはこのアイデアから始めて、 タスク・ セントリック・ コンピューティング [5]、 あるいはより会話的なコンピューティング [6] を世の中に送りだそうとしたんです。 たとえばWordを使っていて、
そこに画像を入れたいと思ってもそこでは (うまく) できません。画像の一部を切り取ったりするなら、 それ用の画像処理ソフト、 Photoshopとかを使いたくなる。 で、
ここが (机を叩く) Photoshopね、 今度はそこでテキストを入れたいんだけど、 そのスペルチェックはあまりよくない。だってPhotoshopはそれ用じゃないから。次にちょっとした計算がしたくなったら今度は電卓アプリが要る、 と。 つまりユーザが注意を向ける対象はあちこちに散らばっていて、
その間でデータを往復させないといけないわけです。まったく時間の無駄だし、 何より思考を分断してしまいます。 大阪でWebの一部を翻訳する場合のデータの往復を見せたよね
[7]。 Y:はい。
A:そこでは翻訳に12ステップ必要だったけど、
これは1ステップじゃないと。でも全然僕らのコンピュータはそうなってない。結局これはデジタルデバイド [8] なんだね。もちろん今のコンピュータだって何とか使えるよ。でもすごく難しい。だってそうした操作のステップは本来必要ないものだから。 つまりUbiquityの裏側にあるアイデアは、
Webページごとに散らばっている多くのサービス (機能) について、 もっと自然な方法で作業させたい、 ということです。たとえば言語 (language) のように。これは我々がコンピュータと対話 (interact) する [9] 方法について根本的に考え直す、 ってことです。
Azaはすべてのアプリケーションは
パイプ:豊かさの喪失
Y:ところで
(城壁つきのアプリケーション間でデータを受け渡すための) クリップ・ ボードは初期のMacintoshから広まったと思っています。 A:そうね。
Y:それより以前は、
誰もがすべての機能が1つに入っているアプリが最高だと思ってました。でも1984年、 Appleは比較的単機能のアプリケーションと、 クリップボードを介した協調動作モデルを発表しました。あなたはその先のことを言っているんですね。つまり単機能のWebアプリケーションを、 コピー&ペーストではなく、 何か次のもの、 たとえば言語で協調動作させる、 と。 A:そうです。GUIとコマンドラインの事を考えると良いです。コピー&ペーストと、
パイプ [10] のことです。パイプはコピー&ペーストよりも良い場合があります。確かにユーザの操作がちょっと必要だけれど、 よりダイレクトなコントロールができたりして、 まあとにかくコマンドラインとパイプ操作で (以前は) うまいことやってたわけです。けれどGUIに移行して、 以前あったはずのパイプ処理を切り捨ててコピー&ペーストにしてしまったのです。 豊かさの喪失、
ですね。
つまり彼はコンピュータに働きかける方法について、
A:Ubiquityはパイプとコピー&ペーストを足したようなものです。
「このビデオの情報を他のサービスいくつかにパイプしたい」 とかね。つまりパイプの後を継ぐものなんです。
コマンドラインインターフェース
筆者は彼が自分の提案するインターフェースをコマンドラインと呼ぶことが不思議でなりませんでした。自然言語ユーザインターフェースなどと呼ぶなり、
A:その意見は正しい。時々僕がコマンドラインインターフェースと呼ぶのは、
それで共感を得られる人の数が増えるからです。馴染みのある用語だから。たとえば 「会話に基づくインターフェース」 「言語に基づくインターフェース」 「自然言語に基づくインターフェース」 (※11) なんて言ったりしたら 「そりゃきっとクズだ」 と思われる。 「自然言語に基づく…」 なんて絶対ちゃんと動かないと思っちゃうよね。 Y:ははは!
A:だからこのあたりは避けたんだ。そういうわけで
「言語学的ユーザインターフェース [12]」と呼ぶときもある。 Y:ああ、
いい響き (語感) じゃない? A:残念なことに短縮形がLUI
(るーい:少し頼りない声で) になっちゃうけどね。 (あははは)。でもみんなは 「会話に基づく」 が好きらしい。親しみやすいみたい。
筆者がこの質問をしたのはUbiquityがコマンドラインユーザインターフェースのGUIに対するアダプタ
GUIも今では普通ですが15年前にはそうでもなく、
繰り返します。Ubiquityが試みている言語によるアプローチは、
言語のローカライズ
Y:Azaは最初に
「思考の状態を変えない」 ことを指摘したけれど、 その意味でも 「会話に基づくコンピューティング」 と呼ぶのは良いです。僕らは 「喋る」 ことについて良く訓練されていて、 会話すること自体がユーザの思考を妨げたりはしないからです。 まあ実際のところ僕は英語で話すのにすごくジタバタしているんだけど…
(ははは)。 A:確かにそうです。外国の言葉で話すとき、
今までやったことがない方法で考えなければならない場合があります [15]。これはすごく難しい。そしてGUIのダイレクトでない操作についても、 やはり他の人の言語で喋るのとまったく同じことが起きていると思います。これが難しさの理由なんだね。 Y:つまり、
Ubiquityはネイティブ・ ランゲージを対象にしてるんですよね。母国語が英語でない人はどうするのでしょう? A:この夏にやった一番エキサイティングなことの1つに、
言語学者のMichael Erlewine [16] との仕事があります。どのようにUbiquityを個別の言語に対応させるか、 ということです。しかしそこではセマンティック・ ルール (意味規則) とすごく良くできた言語学的なトリックがたくさん使えて、 英語で書かれたコマンドを日本語に移すのは割合に簡単でした。 つまりある言語を解析して他の言語に移すのはそれほど難しくない。僕が知る限り、
これは初めてのローカライズ可能な自然言語ユーザインターフェースだと思います。 確かに自分が良く知らない言葉で喋ってコンピュータをコントロールしようなんて無茶だよね。
Y:ほんと正しい文法がどうとか知らないから英語で喋るのがしんどくてね。
A:でもオープンソースの世界ではうまく作業できてるよね。僕が日本語で何か書くのもすごく難しいんだけど、
それでもみんな分かってくれて、 一緒に何かすることができてる。クールだよね。
実際、