疑問1: 自然言語処理そのものが非現実的なアプローチなのでは

Ubiquityプログラミングの特徴は、自然言語による処理が当初から盛り込まれていることと、その実装の例として名詞型が用意されていることにある。自然言語をプログラミングに活用するというアプローチは興味深いが、実現レベルまで到達できるのか疑問が浮かぶ。また名詞型もとても興味深いアプローチだが、手続き型になれた開発者にとっては扱いにくいところもある。この点に関してAza Raskin氏はどう考えているのだろうか。

Aza Raskin氏は苦笑しながら、確かにその通りだし、簡単なことではないよと答えた。氏の答えを要約すると、次の2つということになる。

  • 現状は言語ルールに関して何も導入されていない段階にある。現段階の技術ではUbiquityで完全な自然言語処理は実現できないだろうが、その途中まで実現できただけでも重要な成長といえる

  • Mozillaのアプローチはオープンであること、ユーザーにインスピレーションを与え続けることにある。Ubiquityコミュニティが拡大していけば外部の研究者と関係を持って作業することも可能になる。そうして構成されたコミュニティからは、よいアイディアや実装が生まれてくる可能性があり、取り組みを続けていくことにも意味がある

どうやら、最初から完全な自然言語処理を想定しているわけではないようだ。英語はまだ可能かもしれないが、これが日本語ということになるとさらに問題はやっかいになる。Ubiquityは、構文が自然言語であると想定し解析を行う仕組みになっている。この解析が正確に行われないと思ったようにコマンドが機能しない。氏が自然言語の専門家がほしいと話した背景にはこうした事情がある。

氏はまずどこか到達点を作ってそこを目指し、随時改善していくアプローチを考えているようだ。コミュニティやユーザーに広くUbiquityを普及させていくことで、作成されたコマンドというデータが蓄積されることになる。「誰」が「何」をしたのかが得られるようになり、Ubiquityの開発にバックポートできるようになるというわけだ。

疑問2: Ubiquityコマンドコミュニティを広げるといってもJavaScriptは敷居が高いのでは?

Aza Raskin氏はUbiquityコマンドを作成する開発者を数千人まで増やしたいと考えている。ただ、プログラマにとってJavaScriptはそう複雑なプログラミング言語ではないものの、一般ユーザーやWebデザイナーにとってはJavaScriptは簡単とはいえない。HTMLとJavaScriptの間には、ある種の"壁"がある。Ubiquityコマンドを作成するデベロッパを増やすにはJavaScript以外のアプローチが必要になるのではないだろうか。

これに関しては興味深い返信をもらえた。Aza Raskin氏はUbiquityコマンドの開発をただのJavaScript開発という視点ではなく、社会性の課題ととらえているようだ。プログラマとそうでないユーザーをどうやって結びつけていくか、それが今後Ubiquityを活用する開発者やユーザーを増やすポイントになるとみているという。

Ubiquityにはすでに10万のコマンドがある。あとはユーザーがどのコマンドを使うかというわけだ。自分の知り合いが便利だと感じて使っているコマンドは、ユーザーその人にとっても便利に違いないという視点に基づけば、Firefoxが状況を判断し友人が使っているコマンドをユーザーに提案すればいいことになる。Aza Raskin氏は今後のUbiquity開発ではそうしたインテリジェンス性を実現し、ユーザーへの普及を促進していきたいと考えているという。

疑問3: ユーザー情報にアクセスするのなら、セキュリティが重要になってくるのでは?

Ubiquityコマンド登録時に表示される、警告ページ

Firefoxで使える機能はすべてUbiquityコマンドからも操作できる。Ubiquityコマンドの登録は、セキュリティ上の危険性も伴うわけだ。そのため現在の実装ではUbiquityコマンドを登録しようとすると警告ページが表示される仕組みになっているが、もっと抜本的な対策が必要になるのではないだろうか。

Aza Raskin氏は、コードレベルおよび社会性モデルとしての取り組みの2つのセキュリティアプローチを取ることになるだろうと説明している。すでにUbiquityチームの関心はセキュリティモデルへ移っており、取り組みが始められているようだ。

コードレベルでの対策は、コマンド作成時に、そのコマンドが行う操作を明示的に記載する必要があるようにして、コマンド追加の段階でもっと簡単にチェックできるようにしようというものだ。もうひとつの社会性を利用したセキュリティモデルは、人間関係の信頼モデルをベースに、追加コマンドが信頼できるものかどうかを調べるといった方法だ。コマンドがアップデートされた場合に、簡単に差分をチェックできるユーティリティの提供も検討されている。

疑問4: UbiquityがFirefoxに統合されるバージョンは?

Ubiquityは公開されてまだ3カ月ほどといったかなり若いプロジェクトだが、すでに大量のUbiquityコマンドが作成され一気に普及を遂げた。すでに使い始めている人にとって、どのバージョンのFirefoxでマージが実施されるのかは気になるところだろう。

きちんとした準備が整わないかぎりマージしないというのがMozillaのやり方だ。今確定している方向性はUbiquityの機能の一部をFirefox 3.2に取り込むことだ。Firefoxは60言語に対応している。これに対してUbiquityが対応しているのは英語と日本語の2言語だ。どのレベルまで対応するかという問題はあるが、Ubiquityも少なくともこれら言語に対応する必要があることから、実際のマージにはさらに時間がかかるとみられる。