1. Answers Anywhereとは
「Answers Anywhere」は、自然言語で入力されたユーザーの指示から意図を汲み取り、対話をしながら機器操作やデータ検索をするシステムを構築するためのミドルウェアです。
分かりやすいイメージとしては(かなり誇張表現ですが)アプリケーションを「2001年宇宙の旅」のHAL9000やスタートレックのコンピューターのように操作できるようにするものと言えるでしょう。映画の中でシステムは知的にふるまい音声対話によりユーザーの指示に答えながらユーザーを支援していました(HAL9000は最後暴走してしまいましたが……)。現状のAnswers Anywhereでは、映画中のシステムのように音声入力まで含めた機能は実現してはいないのですが、ユーザーから文章として受け取った指示を意味解釈し、アプリケーションの操作やデータ抽出を対話的に行うことができます。
具体的な例としてAnswers Anywhereを洋服の注文処理をするアプリケーションに適用した例を紹介します(図1)。このアプリケーションではユーザーがシステムと対話しながら商品を検索し注文をすることができます。
ユーザー「シャツはありますか?」 システム「シャツは全部で10アイテムあります」【「シャツ」を認識し商品検索】 ユーザー「緑色で小さいサイズ」 システム「色がグリーン、Sサイズのシャツを検索しました」【条件を追加して商品絞込】 ユーザー「もう少し大きいものは?」 システム「色がグリーン、Mサイズのシャツを検索しました」【SサイズをMサイズに変更】 ユーザー「これを発注します」 システム「いくつ発注しますか?」【数量が指定されていないので対話で情報収集】 ユーザー「2着」 システム「製品番号xxxを2着発注しました」【注文処理完了】
自然言語の意味解釈をするエンジンと言うと、大きな日本語辞書と複雑な文法規則を備えたシステムを思い浮かべる読者の方もいらっしゃるかと思います。しかし、Answers Anywhereではエージェント・ネットワークという独自の技術により高速、小容量、言語依存度が低いエンジンとなっていることが特徴です。エージェント・ネットワークはターゲットとするアプリケーションの機能やデータを構成する要素を記述した概念モデルです。対象ドメインを特化し分散解析することでこの特徴を実現しています。
自然言語で記述されたユーザーの指示が与えられると、エージェント・ネットワークは概念モデルに従い、指示をアプリケーションが認識できる形、API呼び出しやSQL文に変換します。エージェント・ネットワークが人の指示を機械の伝えるために翻訳をするというわけです。
エージェント・ネットワークはユーザーの意図が認識できない場合も、持っている概念でできる限りの認識を行おうとし不明点をユーザーに尋ねるような対話を自動生成します。不明な箇所がなくなり解釈結果が決定すると、エージェント・ネットワークはアプリケーションに翻訳された指示を伝えて処理が行われます。
『WEB+DB PRESS Vol.30』(技術評論社)に「Answers Anywhereを使ってみよう!-自然言語対話エンジンで実現する使いやすいインターフェイス」という記事があるので、こちらも参照してください。