2018年4月7日土曜日

曖昧さを許すXXエンジン


近年では、コンピュータソフトを全く一から作るということは殆どない。何らかのライブラリやPaaS、データベース、ミドルウェア、フレームワーク、などと言われるものを駆使することで、大いにその労力を低減することができる。

だが、そのインターフェースは言語と同様に醜悪である。マニュアルを読み、想定した呼び出し方をしなければまともには動かないばかりか、その手法はパーツによって全部異なる。

プログラマにとって今までそれが当たり前だったのだが、考えてみればそれは極めて不親切なのではないか、と思うのだ。人間の技術者だったら日本語で説明すればやってくれるのに、RPAになるととたんにプログラミングになってしまいプロが必要、というのが今の状況だ。

かつてSOAPというプロトコルはあったが、それでもまだ圧倒的に不足だ。自然言語による記述であって、更に曖昧さを許した上でもプログラムとしては正確に動く、という仕掛けにする必要がある。ツールが増えれば増えるほど、その問題は深刻になっていく。

例えば、時刻を返すライブラリがあったとする。そこには例えば「XX月YY日は何曜日?」といったメッセージを送ると「水曜日です」と返す仕掛けがあるはずだ。だがここには落とし穴がある。そう、年が指定されていないのだ。Excelで年を省略した日付を入れると年を補完してくれるが、そのような仕掛けが入っていることが必要なのだ。また、よく見てみれば日本語で問うていることがわかるだろう。これも今まではなかったことだ。

ファンクションにおいては「デフォルト値」のようなものがあるが、この例ではその程度で済む。だが事情はもっと複雑だ。例えば太陰暦と太陽暦では日の勘定の仕方が違う。

「XX月XX日とYY月YY日は何日離れている?」としたときに、太陰暦で聞いていたとしたら。しかも太陰暦で計算していることは文脈から分かり、その時々では指示されていないとしたら。あるいは「何日」と言っておきながら時間まで暗に尋ねているかもしれない。うるう秒まで含めた正確な秒数まで求めているかもしれない。

受け取り手にしても、答えが過度に正確だったら途中で切り捨てたり、勘違いしていると思ったらそれを指摘して問い直したりする、ということも考えなければならない。もちろんそれに答える技量が、ツール側にも必要だ。

一つのツールに対しての呼び出し方が多数あり、その曖昧さ加減は文脈まで含めて大きい。内部コードはツールそのものより呼び出し方の方がはるかに複雑。これが将来的なツールのあり方だと思う。

これは、例えば「Hey, Siri」といったような音声インターフェースと同じようなものであろう。プログラムは自然言語で、話し言葉になっている。記述は適度に曖昧で、それが人間にとっての読みやすさを生んでいる。ツールが賢くなればなるほど記述は簡潔になり、読みやすくなる。

従来の自然言語解釈とプログラミング言語との間を結ぶ新たなXXエンジン(意味解釈エンジン?)として開発し売り出せば、相当なヒットになりそうだ。

0 件のコメント:

コメントを投稿

注目の投稿:

超音波モーターの原理によるVR用トレッドミル

  VRにおけるリアリティ問題の一つに、その場で動くのではなく移動する場合、つまり歩いたり走ったりすることが挙げられる。実際にはその場にいるので、歩いたかのように足場を調節してやる必要がある。 これを実現する方法として、すり鉢状の滑りやすい足場を作っておく方法と、トレッドミルを使...

人気の投稿: