えせNewtonこと「Newt On」の機能を実装していて痛感するのは、この元になったNewtonという製品の偉大さです。
本プロジェクトを人に説明すると、「それってNewtonのエミュレータ?」と、勘違いされることが多いのですが……そういう後ろ向きなベクトルではなく、 最新の環境の上でその特性を最大限に活かして、新たな世代の「Macらしさ」を追求するプロジェクトなのだと説明しています。そのエッセンスとしてNewtonでもたらされた知的処理の概念は欠くべからざるもの。
元Newtonの開発者を多数抱えるPalm社のPDA・「Palm」(およびその互換機)は、誰にでも持ち運べるサイズで、安価に買えるハードウェアの上に、ペンベースの使用環境をもたらすことを最大の目的とし、かなり割り切った(必要不可欠な機能以外は削った)仕様になっています。
あれもこれも、と欲張らなかったからPalmは一定の商業的な成功をおさめた……とはいうものの、Newtonの美徳とされた知的処理が、ごっそり削られたことは残念なかぎりです。今後、Palm OSが強化されても、単にムービーデータや音楽データを持ち歩ける「入れ物」として進化するだけのこと。
同じく、PDAといってもWindows CEでは画面インタフェースの統一すらおぼつかない状況で、お世辞にも「使いたい」、「便利」、「かっこいい!」と言えるシロモノではありません。
Newtonも、元をただせば「ナレッジナビゲータ」思想から端を発したもの。えせNewtonことNewt Onも、昔夢見たナレッジナビゲータのデモムービーに多大なる影響を受けています。
数多くのGUIアプリケーション同士をAppleScriptで連繋させて利用できるのは、MacOSが持つ他のOSにない強力なメリットです。ただ、AppleScriptを習得しないとそのような利便性を享受できないのでは、せっかくの強みもなかなか活かされません。
AppleScriptでなく日本語で命令することで、AppleScriptユーザーが享受しているメリットを一般ユーザーにも開放する……「ナレッジナビゲータ」のことを思い出していたら、そういう目的も本プロジェクトにはあるのかもしれない、と思ったのでした。
Wordへの結果出力が可能に
Newt On(MacOS X版)がさらに新たなステージに到達しました。
従来のバージョンでは、日本語による検索コマンドを受け付け、日本語を解析して検索を行ってくれました。そのさい、各アプリケーション内でそれぞれ結果が表示される状態でした。
これが現段階のバージョンでは、(コマンド入力を行っている)Wordのウィンドウに直接結果を返せるようになったのです。
USのAppleScriptのMLの過去ログをあさってみたところ、Wordの文書末尾に文字列を入れる(追加する)には、
tell application "Microsoft Word"
tell document 1
set end to "ほげほげ"
end tell
end tell
のように記述。他のアプリケーションで、「end」という予約語にお目にかかったことはありません。かーーなりクセの強い仕様ですが、まあ……分かってしまえばどうということはありません。
そこで、現在実装している「検索」コマンドをひとつのスタディケースとして、結果をWordに戻す機能を実装して検証してみましょう。
実際にNewt Onが実現されたときの姿は、チャットに近いかたちになるものと考えています。Wordのウィンドウ内にユーザーの入力したコマンドが記入されるほか、Newt Onからのメッセージも表示されます。つまり、「誰が」そのメッセージを表示したのかを示すために、
Mac:コマンドを受け付けました
といったようにコロン(「:」)付きで名前を表示させます。これなら分かりやすいでしょう。
ここでは「Mac」という名前をコンピュータに付けていますが、
えるざ:コマンドを受け付けましたわん
のように、名前や文末部分の文字列を適宜変更できるとよいでしょう。
顔文字を併用し、より分かりやすいインタフェースを
システム・メッセージの重要度を「なんとなく」「適当に」表現する手法として「顔文字」を併用したいところ。現段階では、雰囲気(mood)を数値で表現することは考えていません(そういう学問的なことはひとまず置いといて、実用性と親しみやすさに開発のウェイトを置いています)。顔文字表示の統一データベースを作るようなことはせず、各コマンドの実行ルーチン側で固定で表示させる程度とします。
おさる:コマンドを受け付けましたでおさるー(^ー^)
これで、かなり親しみやすさが向上しました。プログラムが返す顔文字も、(最終的には)固定で返さずにデータベースから引っ張ってくるとよいでしょう。だんだん、飲み屋で女の子に見せびらかすと自慢できそうな感じになってきました(これはたいへん重要なことです)。
住所録データベースの検索では、
Mac:全部で3件のデータがあります(^。^)
Mac:住所録には登録されていないようです(^_^;
といったように、顔文字で状況を表現させてみましょう(現段階では固定出力)。
検索結果が大量に返ってきた場合、Wordの文章上にそのまま返したのでは、情報量が多すぎて人間が目で追うのが大変です。必要に応じて表示する情報量をコントロールし、結果が大量になる場合には、結果をそのままには返さないほうがよいでしょう。
目安は5件。これを超える場合には、
Mac:該当するデータが何件かあります(10件ぐらい?)
Mac:該当するデータがけっこうあります(100件ぐらい?)
Mac:該当するデータが相当あります(500件ぐらい?)
Mac:該当するデータがものすごくあります(1000件ぐらい?)
Mac:該当するデータが信じられないほどあります(10000件ぐらい?)
といったように、程度が「なんとなく」分かるように表示させるとよいでしょう。
こう表示されたら、ユーザーの側で、「渋谷区の河原さんを検索」のように、さらに詳細な条件つきのコマンドを与えて再検索を行うというところ。擬似的に対話しながら検索する「雰囲気」を演出できるはずです。だんだん知的な感じがしてきました。
以上の機能を現行のNewt On(バージョン0.31)に実装し、Wordのみで情報の検索・表示が行えるようにしてみました。

ユーザーコマンドとNewt Onの出力メッセージをWord上に出力
まさか、こんなものがMicrosoft Wordなんてたかがワープロ(失礼!)
の上で動いているとは思えないでしょう……
素っ気ないことこの上ないMacOS X環境、パレットをすべて消したら、
これがWordのウィンドウであることなど、気が付かないでしょう。
Word文章の色を本物のNewtonの画面の色に似せてみました。
でも……やっぱりただのWordの文章なんです、これ。

実際に、コマンドを自動解釈して検索を実施し、
検索結果をWord上に返す様子を見ていると、
この段階でも十分に実用性を感じるものです。
なかなかいい感じです。
Newt Onからの結果表示については、(ユーザーのコマンド入力の文字とは)明示的に文字色を変えたほうが雰囲気が出てよいと思うものの……AppleScriptでそのように記述するサンプルが見あたらなかったので、今後の検討課題です。