(57)【要約】【課題】改善されたユーザ／プログラム対話のための直観的ユーザインターフェースを提供する。【解決手段】自然言語入力エレメントとグラフィカルユーザインターフェースを同期させるシステムは、同期エンジンを備える。この同期エンジンは、自然言語入力エレメントおよびグラフィカルユーザインターフェースとのユーザ対話をモニタし、ユーザ対話に応答して自然言語入力エレメントとグラフィカルユーザインターフェースを同期させるように適合される。【選択図】図２
2006172435.tif 000002
【特許請求の範囲】
【請求項１】
自然言語入力エレメントとグラフィカルユーザインターフェースを同期させるシステムであって、
前記自然言語入力エレメントと前記グラフィカルユーザインターフェースのユーザ対話をモニタし、前記ユーザ対話に応答して前記自然言語入力エレメントと前記グラフィカルユーザインターフェースを同期させるように適合された同期エンジン
を具備したことを特徴とするシステム。
【請求項２】
自然言語入力を前記グラフィカルユーザインターフェースにマップするように適合されたセマンティックエンジンをさらに備え、前記同期エンジンは、前記自然言語入力エレメントにおける変更に応答して、前記マップされたオブジェクトを用いて前記グラフィカルユーザインターフェースを更新する、ことを特徴とする請求項１に記載のシステム。
【請求項３】
前記グラフィカルユーザインターフェースの変更されたオブジェクトを表す自然言語入力を作成するように適合されたリステートメントエンジンをさらに備え、前記同期エンジンは、それぞれの前記変更に応答して、前記作成された自然言語入力を用いて前記自然言語入力エレメントを更新する、ことを特徴とする請求項１に記載のシステム。
【請求項４】
前記自然言語入力エレメントまたは前記グラフィカルユーザインターフェースにおける選択されたオブジェクトへの変更に基づいて、データストアに対する操作を行うように適合された実行エンジンをさらに備える、ことを特徴とする請求項１に記載のシステム。
【請求項５】
前記操作は問い合わせを含み、前記実行エンジンは、前記ユーザ対話に基づいて格納されたデータを検索し、前記システムの表示領域に前記検索されたデータによる結果リストを表示するように適合されている、ことを特徴とする請求項４に記載のシステム。
【請求項６】
前記同期エンジンは、前記ユーザ対話に従って、前記自然言語入力エレメントと前記グラフィカルユーザインターフェース内の対応するオブジェクトを実質上同時に同期させるよう適合されている、ことを特徴とする請求項１に記載のシステム。
【請求項７】
自然言語入力と、システムのグラフィカルユーザインターフェース内のＧＵＩオブジェクトとを同期させる方法であって、
入力エレメントおよび前記グラフィカルユーザインターフェースのユーザ対話をモニタするステップと、
前記入力エレメントと前記グラフィカルユーザインターフェースを、前記入力エレメントの自然言語入力と前記グラフィカルユーザインターフェースのＧＵＩオブジェクトが対応するように自動的に同期させるステップと、
を含むことを特徴とする方法。
【請求項８】
前記ＧＵＩオブジェクトは、前記システムの機能に関連したグラフィカルエレメントを含む、ことを特徴とする請求項７に記載の方法。
【請求項９】
前記モニタするステップは、
前記グラフィカルユーザインターフェースまたは前記入力エレメントとのユーザ対話を検出するステップを含む、
ことを特徴とする請求項７に記載の方法。
【請求項１０】
前記同期させるステップは、
前記検出されたユーザ対話に応答して、前記グラフィカルユーザインターフェースまたは前記入力エレメントをプログラムに基づいて変更するステップを含む、
ことを特徴とする請求項９に記載の方法。
【請求項１１】
ユーザが前記入力エレメントと対話する場合、前記同期させるステップは、
前記入力エレメントの自然言語入力を１つまたは複数のＧＵＩオブジェクトにマップするステップと、
前記自然言語入力にマップされた前記１つまたは複数のＧＵＩエレメントを含むように前記グラフィカルユーザインターフェースを変更するステップと、
を含むことを特徴とする請求項７に記載の方法。
【請求項１２】
ユーザが前記グラフィカルユーザインターフェースと対話する場合、前記同期させるステップは、
前記グラフィカルユーザインターフェースのＧＵＩオブジェクトを自然言語テキストに言い換えるステップと、
前記言い換えられた自然言語テキストを反映するように前記入力エレメントの前記自然言語入力を変更するステップと、
を含むことを特徴とする請求項７に記載の方法。
【請求項１３】
前記自然言語入力または前記グラフィカルユーザインターフェースの前記ＧＵＩオブジェクトに基づいて、データに対する操作を実行するステップと、
ユーザに表示するために前記システムに対して１つまたは複数の結果を返すステップと、
をさらに含むことを特徴とする請求項７に記載の方法。
【請求項１４】
前記システムは、コンピューティングシステム上で実行するためのコンピュータ可読命令を含む、ことを特徴とする請求項７に記載の方法。
【請求項１５】
前記同期させるステップは、
前記自然言語入力がユーザ対話に従って変更される場合、前記自然言語入力を前記システムに関連したＧＵＩオブジェクトにマップするステップと、
前記マップされたＧＵＩオブジェクトを含むように前記グラフィカルユーザインターフェースを変更するステップと、
を含むことを特徴とする請求項７に記載の方法。
【請求項１６】
前記同期させるステップは、
前記ＧＵＩオブジェクトがユーザ対話に基づいて変更される場合、前記ＧＵＩオブジェクトに基づいて自然言語入力を作成するステップと、
前記作成された自然言語入力を含むように前記自然言語入力を変更するステップと、
を含むことを特徴とする請求項７に記載の方法。
【請求項１７】
自然言語入力を受け取るように適合された自然言語入力エレメントと、
アプリケーションドメインをモデル化し、ユーザ対話に応答するように適合された１つまたは複数のオブジェクトを有するグラフィカルユーザインターフェースと、
前記自然言語入力エレメントの前記自然言語入力と前記グラフィカルユーザインターフェースの前記１つまたは複数のオブジェクトを同期させるように適合された同期エンジンと、
を具備したことを特徴とするユーザインターフェース。
【請求項１８】
前記同期エンジンは、
前記自然言語入力エレメントからの自然言語入力を、前記グラフィカルユーザインターフェースの前記１つまたは複数のオブジェクトにマップするように構成されたセマンティックエンジンを備え、前記同期エンジンは、前記１つまたは複数のマップされたオブジェクトを用いて前記グラフィカルユーザインターフェースを更新するように適合されている、ことを特徴とする請求項１７に記載のユーザインターフェース。
【請求項１９】
前記同期エンジンは、
前記ＧＵＩの前記１つまたは複数のオブジェクトを表す自然言語入力を作成するように適合されたリステートメントエンジンを備え、前記同期エンジンは、前記作成された自然言語入力を用いて前記自然言語入力を更新するように適合されている、ことを特徴とする請求項１７に記載のユーザインターフェース。
【請求項２０】
前記自然言語入力は音声入力を含む、ことを特徴とする請求項１７に記載のユーザインターフェース。
【請求項２１】
前記自然言語入力エレメントおよび前記グラフィカルユーザインターフェースに結合され、前記ユーザ対話に応答して１つまたは複数のファイルと対話するように適合された実行エンジンをさらに備える、ことを特徴とする請求項１７に記載のユーザインターフェース。
【請求項２２】
前記同期エンジンは、前記自然言語入力エレメントおよび前記グラフィカルユーザインターフェースのユーザ対話をモニタするように適合されている、ことを特徴とする請求項１７に記載のユーザインターフェース。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セマンティックキャンバス(semantic canvas)に関するものである。
【０００２】
本発明は自然言語(natural language)処理に関し、より詳細には、自然言語入力(natural language input)と、グラフィカルユーザインターフェースにおけるグラフィカルユーザ入力(graphical user interface)の同期(synchronization)に関する。
【背景技術】
【０００３】
グラフィカルユーザインターフェース（ＧＵＩ）アプリケーションが大部分のタスクでうまく機能するのは、一部には、ＧＵＩが、アプリケーション内で利用可能な機能に直接関連し、ユーザがそこから自分のやろうとすることを選択できるオプションを提供するからである。しかしながら、ＧＵＩアプリケーションは、時折、使用するのが難しいこともある。例えば、場合によっては、その機能が、ユーザに直観的に認識され得ない、多くのサブダイアログボックスを開くことを必要とすることもある。さらに、ＧＵＩエレメント(element)に適当な情報を記入するのに多くのステップが必要とされることもある。ＧＵＩエレメントには、プルダウンまたはポップアップメニュー、チェックボックス、ラジオボタン、テキストまたは他の種類のデータ入力フィールドなどが含まれる。さらに、ユーザが、ＧＵＩ内のどこに利用可能なオプションがあるか知らないこともある。小型の機器（ハンドヘルド機器、携帯情報端末、ネットワーク機能付き無線電話など）を用いる場合、ＧＵＩへの情報の入力が難しいこともある。最後に、障害者は、例えば、ＧＵＩフォームをナビゲートし、そこに記入するのに苦労することがある。
【０００４】
ＧＵＩに関連する限界のいくつかを克服するために、ユーザに、ＧＵＩではかなり複雑になるはずの概念を容易に表現させることのできる、自然言語アプリケーションが開発されている。例えば、自然言語において、ユーザは、「私が先週送信したビルへのすべての電子メールを検索する」、「画像解像度を１２８０×１０２４に変更する」、「マイクロソフト社に関するＷｅｂページはどこにあるか」、「すべての未読の電子メールを削除してください」などと要求することができる。そのような各発話は容易に理解可能であるが、ＧＵＩフォームに記入する際には幾重にも複雑さを増大させてしまうことにもなる。
【０００５】
しかしながら、自然言語アプリケーションには、発見可能性(discoverability)、混同(confusion)、行き詰まり(dead-end)、および学習問題(training problem)といった、いくつかの問題がある。発見可能性とは、ユーザがそのプログラムで何をすることができるか気付かない状況を指す。混同とは、ユーザが、そのアプリケーションが特定のテキスト入力をどのように解釈したか理解しないときに生じる問題を指す。行き詰まりとは、ソフトウェアプログラムが、ユーザが自分の意図したものを変更するためのオプションまたは機構を提供しない状況を指す。最後に、ユーザに、自然言語入力をどのように利用すべきか学習させる機構がない。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
目下、改善されたユーザ−プログラム対話(user-program interaction)のための直観的ユーザインターフェースが求められている。本発明の目的は、これらの問題およびその他の問題への解決(solution)を提供し、既存のセマンティックオーサリングツール(existing semantic authoring tool)に優る利点を提供することにある。
【課題を解決するための手段】
【０００７】
自然言語入力エレメントとグラフィカルユーザインターフェースを同期させるシステムは、同期エンジン(synchronization engine)を備える。この同期エンジンは、自然言語入力およびグラフィカルユーザインターフェースとのユーザ対話をモニタし、そのユーザ対話に応答して自然言語入力エレメントとグラフィカルユーザインターフェースを同期させるように適合されている。
【発明を実施するための最良の形態】
【０００８】
本発明の一実施形態によれば、同期エンジンは、ユーザインターフェースのＧＵＩエレメント（チェックボックス、プルダウンメニュー、ラジオボタン、テキストフィールドなど）を、そのユーザインターフェースの自然言語テキスト入力と同期させる。具体的には、同期エンジンは、自然言語テキスト入力フィールドとのユーザ対話の有無をモニタし、変更が検出された場合、それに応答して、対応するＧＵＩエレメントを用いてユーザインターフェースを更新する。同様に、この同期は、ＧＵＩエレメントへの変更が検出された場合、自然言語テキストを更新する。
【０００９】
ＧＵＩエレメントを自然言語テキスト入力に合わせて、あるいはその反対に同期させることにより、ユーザは、選択された入力に関する即時のフィードバックを受け取る。ＧＵＩエレメントと自然言語入力の間の関係は、ユーザが、視覚的フィードバックを介してアプリケーションがどのように動作するかを知るための直観的学習機構を提供する。
【００１０】
図１は、本発明を実施するためのコンピューティングシステム環境１００の一例を示す。コンピューティングシステム環境１００は、適当なコンピューティング環境の一例にすぎず、本発明の用途または機能の範囲についてのどんな限定を示唆するためのものでもない。また、コンピューティング環境１００は、例示的動作環境１００に示す構成エレメントのいずれか１つまたはそれらの組み合わせに関連するどんな依存関係または要件を有するものであるとも解釈すべきではない。
【００１１】
本発明の実施形態は、他の多数の汎用または専用コンピューティングシステム環境または構成を用いて動作する。本発明の実施形態と共に使用するのに適したよく知られているコンピューティングシステム、環境、および／または構成の例には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップ機器、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、電話技術システム、上記のシステムまたは機器のいずれかを含む分散コンピューティング環境などが含まれる。
【００１２】
本発明の実施形態は、コンピュータにより実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的状況で説明することができる。一般に、プログラムモジュールには、個々のタスクを実行し、または個々の抽象データ型を実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。本発明の実施形態は、タスクが、通信ネットワークを介してリンクされたリモート処理ユニットにより実行される分散コンピューティング環境でも実施される。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶装置を含むローカルとリモート両方のコンピュータ記憶媒体に位置することができる。
【００１３】
図１を参照すると、本発明を実施する例示的システムは、コンピュータ１１０の形で汎用コンピューティングデバイスを含む。コンピュータ１１０の構成エレメントには、処理ユニット１２０、システムメモリ１３０、およびシステムメモリを含む様々なシステム構成エレメントを処理ユニット１２０に結合するシステムバス１２１が含まれる。システムバス１２１は、様々なバスアーキテクチャのいずれかを使用したメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含む数種類のバス構造のいずれでもよい。例をあげると、それだけに限らないが、そのようなアーキテクチャには、産業標準アーキテクチャ（ＩＳＡ）バス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、ビデオ電子装置規格化協会（ＶＥＳＡ）ローカルバス、およびメザニンバスとも呼ばれる周辺装置相互接続（ＰＣＩ）バスが含まれる。
【００１４】
コンピュータ１１０は、通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０によってアクセスされる任意の使用可能な媒体とすることができ、それには揮発性と不揮発性両方の媒体、取り外し可能と取り外し不能両方の媒体が含まれる。例をあげると、コンピュータ可読媒体には、コンピュータ記憶媒体および通信媒体が含まれる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュールまたはその他のデータなどの情報を記憶するための任意の方法または技術で実施された、揮発性と不揮発性両方、取り外し可能と取り外し不能両方の媒体が含まれる。コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリなどのメモリ技術、ＣＤ‐ＲＯＭ、ディジタル多用途ディスク（ＤＶＤ）などの光ディスク記憶、磁気カセット、磁気テープ、磁気ディスク記憶などの磁気記憶装置、あるいは所望の情報を格納するのに使用でき、コンピュータ１１０によってアクセスされ得る他の任意の媒体が含まれる。通信媒体は、通常、コンピュータ可読命令、データ構造、プログラムモジュールまたはその他のデータを、搬送波や他の搬送機構などの変調データ信号として実施し、任意の情報配信媒体を含む。「変調されたデータ信号」という用語は、その特性の１つまたは複数が、その信号に情報を符号化するような方式で設定または変更されている信号を意味する。例をあげると、それだけに限らないが、通信媒体には、有線ネットワークや直接配線接続などの有線媒体、および音響、ＲＦ、赤外線、その他の無線媒体などの無線媒体が含まれる。上記のいずれかの組み合わせも、コンピュータ可読媒体の範囲内に含めるべきである。
【００１５】
システムメモリ１３０は、読み取り専用メモリ（ＲＯＭ）１３１やランダムアクセスメモリ（ＲＡＭ）１３２などの揮発性および／または不揮発性メモリの形でコンピュータ記憶媒体を含む。基本入出力システム（ＢＩＯＳ）１３３は、始動時などに、コンピュータ１１０内の諸エレメント間での情報転送を支援する基本ルーチンを含み、通常、ＲＯＭ１３１に格納される。ＲＡＭ１３２は、通常、処理ユニット１２０から直ちにアクセス可能であり、かつ／または処理ユニット１２０によって現在操作されているデータおよび／またはプログラムモジュールを含む。例として、それだけに限らないが、図１には、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７を示す。
【００１６】
コンピュータ１１０は、他の取り外し可能／取り外し不能、揮発性／不揮発性コンピュータ記憶媒体も含むことができる。一例にすぎないが、図１には、取り外し不能、不揮発性磁気媒体との間で読み取りまたは書き込みを行うハードディスクドライブ１４１、取り外し可能、不揮発性磁気ディスク１５２との間で読み取りまたは書き込みを行う磁気ディスクドライブ１５１、およびＣＤ‐ＲＯＭや他の光媒体などの取り外し可能、不揮発性光ディスク１５６との間で読み取りまたは書き込みを行う光ディスクドライブ１５５を示す。例示的動作環境で使用される他の取り外し可能／取り外し不能、揮発性／不揮発性のコンピュータ記憶媒体には、磁気テープカセット、フラッシュメモリカード、ディジタル多用途ディスク、ディジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどが含まれる。ハードディスクドライブ１４１は、通常、インターフェース１４０などの取り外し不能メモリインターフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は、通常、インターフェース１５０などの取り外し可能メモリインターフェースによってシステムバス１２１に接続される。
【００１７】
図１に示す各ドライブおよびそれらに関連するコンピュータ記憶媒体は、コンピュータ１１０のためのコンピュータ可読命令、データ構造、プログラムモジュールおよびその他のデータの記憶を提供する。図１では、例えば、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７を格納するものとして示されている。これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７と同じでも、異なっていてもよいことに留意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７には、少なくともそれらが異なるコピーであることを示すために、図では異なる番号を付与してある。
【００１８】
ユーザは、キーボード１６２や、マイクロホン１６３や、マウス、トラックボール、タッチパッドといったポインティングデバイス１６１などの入力装置を介してコンピュータ１１０にコマンドおよび情報を入力することができる。他の入力装置（図示せず）には、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナなどが含まれる。その他の入力装置は、しばしば、システムバスに結合されたユーザ入力インターフェース１６０を介して処理ユニット１２０に接続されるが、パラレルポート、ゲームポート、ユニバーサルシリアルバス（ＵＳＢ）といった他のインターフェースおよびバス構造によっても接続される。モニタ１９１または他の種類の表示装置も、ビデオインターフェース１９０などのインターフェースを介してシステムバス１２１に接続される。モニタ１９１以外に、コンピュータは、スピーカ１９７やプリンタ１９６など他の周辺出力装置を含むこともでき、それらは、出力周辺インターフェース１９５を介して接続される。
【００１９】
コンピュータ１１０は、リモートコンピュータ１８０など、１つまたは複数のリモートコンピュータへの論理接続を使用した、ネットワークで接続された環境で動作し得る。リモートコンピュータ１８０は、パーソナルコンピュータ、ハンドヘルド機器、サーバ、ルータ、ネットワークＰＣ、ピアデバイスまたはその他一般のネットワークノードとすることができ、通常は、コンピュータ１１０に関連して前述したエレメントの多くまたはすべてを含む。図１に示す論理接続には、ローカルエリアネットワーク（ＬＡＮ）１７１およびワイドエリアネットワーク（ＷＡＮ）１７３が含まれるが、他のネットワークも含まれ得る。そのようなネットワーク環境は、オフィス、企業規模のコンピュータネットワーク、イントラネットおよびインターネットではよく見られるものである。
【００２０】
ＬＡＮネットワーク環境で使用されるとき、コンピュータ１１０はネットワークインターフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーク環境で使用されるとき、コンピュータ１１０は、通常、モデム１７２またはインターネットなどのＷＡＮ１７３を介して通信を確立する他の手段を含む。モデム１７２は、内蔵でも外付けでもよく、ユーザ入力インターフェース１６０または他の適当な機構を介してシステムバス１２１に接続される。ネットワークで接続された環境では、コンピュータ１１０に関連して示すプログラムモジュール、またはその一部は、リモートのメモリ記憶装置にも格納され得る。一例として、図１は、リモートアプリケーションプログラム１８５を、リモートコンピュータ１８０上にあるものとして示す。図示のネットワーク接続は例であり、コンピュータ間での通信リンクを確立する他の手段も使用できることが理解されるであろう。
【００２１】
図２は、本発明の一実施形態による、同期（セマンティックキャンバス）システム２００を示すブロック図である。同期システム２００は、自然言語（ＮＬ）入力エレメント２０４とグラフィカルユーザインターフェース（ＧＵＩ）２０６の間にやりとり可能に結合された同期エンジン２０２を備える。一般に、自然言語入力エレメント２０４は、テキストストリングまたは音声入力を受け取るように適合されたエレメントである。自然言語入力エレメント２０４は、ユーザが、例えば「私が先週ジョーに送信したすべての電子メールを検索する」といった、完全な、または部分的な文および意図としてデータを打ち込み、または（音声などによって）入力することを可能にする。自然言語入力エレメント２０４は、そのようなユーザ入力を受け入れる任意の機構とすることができる。自然言語入力エレメント２０４は、音声／テキスト変換機能（図示せず）を含むことができ、音声入力を受け取り、そのような入力をテキストにディジタル化するように適合され得る。ＧＵＩ２０６は、１つまたは複数の機能エレメント（プルダウンメニュー、テキストフィールド、チェックボックス、アプリケーションドメイン内のフィールドなど）からなる。ＧＵＩ２０６は、ユーザが、ＧＵＩ内のオブジェクトから自分の意図を明示的に構築できるようにする。例えば、先週ビルからジョーに送信されたすべての電子メールを検索するという意図のために、ユーザは、ＧＵＩ２０６を利用して、検索すべき項目の下の「電子メール(email)」を選択することができる。その場合、ユーザは、ＧＵＩ２０６を使って、「送信先(sent to)」などの条件を付加し、その値として「ジョー(Joe)」を付加することができる。最後に、ユーザは、「送信日(date sent)」など、別の条件を付加することができる。一般に、ＧＵＩ２０６および自然言語入力エレメント２０４は、検索機能など、同じ機能を実行するように適合される。ユーザは、ＧＵＩ２０６の１つまたは複数の機能エレメントを選択して適当な条件情報を入力することにより、あるいは自然言語入力エレメント２０４に問い合わせを入力することにより、例えばハードディスク上にあるオブジェクトまたはエンティティを検索することができる。
【００２２】
同期エンジン２０２は、自然言語入力行(NL input line)２０４での変化に応答して、ＧＵＩ２０６をしかるべく更新するように適合されたモジュールである。同期エンジン２０２は、ＧＵＩでの変化に応答して、ユーザが何を打ち込んだか反映するために自然言語入力行を更新するようにも適合される。同期エンジン２０２は、自然言語リステートメント(restatement)エンジン２０８を利用して、ＧＵＩ２０６の選択された機能エレメント(selected functional element)を、自然言語入力エレメント２０４での自然言語テキスト入力に変換する。同期エレメント２０２は、セマンティクスエンジン(semantics engine)２１０を利用して、自然言語入力エレメント２０４からの自然言語入力を、ＧＵＩ２０６での機能エレメントに変換する。同期エンジン２０２は、自然言語入力エレメント２０４でのデータに対する変更(change)、またはＧＵＩ２０６の選択された機能エレメントへの変更の有無をモニタし、自然言語入力エレメント２０４とＧＵＩ２０６が同期されるように、適当な変更を用いて他方を更新するように適合される。
【００２３】
セマンティックキャンバスシステム２００の機能エレメント(functional element)は、（破線２１２で示すように）単一のアプリケーション内で実施される。あるいは他の実施形態として、セマンティックキャンバスシステム２００の機能エレメントは、複数のアプリケーションでも実施され、同期を実現するためにやりとりするように適合される。
【００２４】
一般に、自然言語入力エレメント２０４への自然言語入力は、任意の認識可能な形とすることができる。一実施形態において、自然言語入力エレメント２０４は、テキストまたは音声入力を受け取るように適合される。本明細書で使用する場合、「自然言語入力」という用語は、自然言語形式での任意のデータ入力を指す。本明細書で使用する場合、「自然言語」という用語は、コンピュータ言語、人工言語、あるいは制約または制御された語彙に対立するものとして、人が通常話す話し方に対応する入力を指す。本明細書で使用する場合、「テキスト入力」、「自然言語入力」および「音声入力」という用語は、自然言語入力エレメント２０４への入力に関して交換可能であると理解することができる。
【００２５】
図３は、本発明の一実施形態による、同期システム３００の一部の拡大ブロック図である。この実施形態では、同期エンジンの基底をなすセマンティクスがＳＱＬなどの問い合わせ構文に変換され、データベースを検索し(hitting a database)、その結果を返す(returning the results)。しかしながら、アプリケーションが、ＧＵＩから直接、自然言語入力から、あるいは何らかの中間表現から、いくつものやり方でタスクまたはサーチを実行することが可能である。
【００２６】
同期システム３００は、自然言語入力３０４とＧＵＩ３０６の間にやりとり可能に結合された同期エンジン３０２を備える。さらに、同期エンジン３０２は、実行エンジン３０８およびデータストア３１０にもやりとり可能に結合される。実行エンジン３０８は、自然言語入力３０４のテキスト入力またはＧＵＩ３０６の機能エレメント選択に基づいて、データストア３１０中のデータに対する操作を実行し、その結果を、ユーザインターフェースの結果エリア３１２に返す。
【００２７】
自然言語入力３０４は、ユーザが、自分の意図（「ボブからのすべての電子メールを検索する」など）を打ち込むことができるようにする。自然言語入力３０４は、変更が発生すると、同期エンジン３０２に通知する。ＧＵＩ３０６は、ユーザが、プルダウンメニューなどの機能エレメントから、自分の意図を手入力で構築し、変更することができるようにする。ＧＵＩ３０６は、変更が発生すると、同期エンジン３０２に通知する。同期エンジン３０２は、ユーザが自然言語入力３０４にテキストを入力すると、ＧＵＩ３０６に自動的に機能エレメントを構築するように適合される。また、同期エンジン３０２は、ＧＵＩ３０６での変更に応答して自然言語入力３０４のテキストを自動的に更新するようにも適合される。いずれの場合も、同期エンジン３０２は、それぞれのエレメント（自然言語入力３０４またはＧＵＩ３０６）にその変更を通知する。
【００２８】
したがって、同期エンジン３０２は、ＧＵＩ３０６および自然言語入力３０４の長所を活用すると同時に、両者の限界を克服する。自然言語入力３０４とＧＵＩ３０６の間において、ユーザインターフェースで実施される同期システム３００は、ユーザが、容易に、自分が何をしたいか表現し、ＧＵＩ３０６または自然言語入力３０４で何を行ったと考えられるか示し、どちらかでの表現を変更することができるようにする機構を提供する。システム３００は、組み込み式の学習および発見可能性の手段を提供する。
【００２９】
一実施形態において、実行エンジン３０８は、同期エンジン３０２によって変更(change)が通知される。実行エンジン３０８は、例えば、ＳＱＬのような問い合わせを構築し、ストア３１０からその結果を取り出す。次いで、実行エンジン３０８は、表示のために、その結果を結果エリア３１２（またはアプリケーション）に渡す。
【００３０】
この手法による一実装形態は、同期エンジン３０２における基底をなすセマンティクスをＳＱＬなどの問い合わせ構文に変換し、データベース３１０を検索し、表示領域３１２に結果を返す。
【００３１】
同期エンジンは、作成されたスキーマおよび注釈のセットを有するセマンティックエンジンを使用して効率よく実施される。あるいは他の実施形態として、アプリケーションが、自然言語とＧＵＩの間の変換のための論理すべてを実施することもできる。
【００３２】
図４は、本発明の一実施形態による、ユーザインターフェースのＧＵＩと自然言語テキスト入力を同期させる方法を示した図である。同期エンジンは、ＧＵＩおよび自然言語テキスト入力の変更の有無をモニタする（ブロック４００）。変更がない場合（ブロック４０２）同期エンジンは、変更が検出されるまでＧＵＩおよび自然言語テキスト入力をモニタし続ける。検出された変更が自然言語入力に対するものでない場合（ブロック４０４）、同期エンジンは、ＧＵＩからリステートメントエンジンに変更を渡す（ブロック４０６）。リステートメントエンジン(restatement engine)は、自然言語入力フレーズ(NL input phrase)を表現(formulate)する（ブロック４０８）。次いで、同期エンジンは、表現された自然言語入力フレーズ(the formulated NL input phrase)を用いて自然言語入力を更新する（ブロック４１０）。次いで、同期エンジンは、自然言語入力およびＧＵＩの変更の有無をモニタし続ける（ブロック４００）。
【００３３】
検出された変更(a detected change)が自然言語入力に対するものである場合（ブロック４０４）、同期エンジンは自然言語入力からセマンティックエンジンに変更を渡す（ブロック４１２）。セマンティックエンジンは、セマンティックソリューション(semantic solution)をＧＵＩのオブジェクトに変換する（ブロック４１４）。同期エンジンは、変換された自然言語入力フレーズを用いてＧＵＩを更新する（ブロック４１６）。次いで、同期エンジンは、自然言語入力およびＧＵＩの変更の有無をモニタし続ける（ブロック４００）。
【００３４】
図５は、自然言語入力エレメント５０２と、プルダウンメニュー５０６、テキストフィールド５０８、チェックボックス５１０、ボタン５１２などの入力エレメントまたはＧＵＩオブジェクトを備えるＧＵＩ５０４を含む検索アプリケーション５００の画面図である。本発明の一実施形態によれば、ＧＵＩオブジェクト（５０６〜５１２）のいくつかは、自然言語入力エレメント５０２への自然言語入力から自動的に構築されている。この例では、ユーザは、自然言語入力５０２に「ｆｉｎｄ  ａｌｌ  ｅｍａｉｌｓ  ｆｒｏｍ  Ｊｏｅ  ｓｅｎｔ  ｌａｓｔ  ｗｅｅｋ（先週送信されたジョーからのすべての電子メールを検索する）」と打ち込んでおり、同期エンジンは、ユーザが打ち込んだことを反映する複数のＧＵＩオブジェクト５０６〜５１２を用いてＧＵＩを更新した。同期エンジンは（セマンティックエンジンと連動して）オブジェクトの種類を「ｅｍａｉｌ（電子メール）」に設定した。さらに、同期エンジンは、２つの条件を構築した。「ｆｒｏｍ（送信者）」は「Ｊｏｅ（ジョー）」に設定され、「ｒｅｃｅｉｖｅｄ  ｄａｔｅ（受信日付）」は正しい日付範囲と等しくなるように設定される。ゆえに、同期エンジンは、ユーザに、自然言語入力がどのように処理され、アプリケーションがその入力をどのように解釈したか正確に理解させる。
【００３５】
図６〜図８は、ユーザの意図がＧＵＩだけを使用して構築され、同期がそのＧＵＩに対応する自然言語入力を作成する代替の手法を示す。図６において、検索アプリケーション６００は、自然言語入力フィールド６０２およびＧＵＩ６０４を含む。ユーザは、プルダウンリスト６０６から「ｅｍａｉｌ」を選択する。「ｅｍａｉｌ」を選択した後、同期エンジンは、「ｅｍａｉｌ」という用語を用いて自然言語入力フィールド６０２を自動的に更新する。というのは、ユーザが同じ意図を作成するために「ｅｍａｉｌ」と打ち込んだと考えられるからである。あるいは他の実施形態として、「ｅｍａｉｌ」を選択した後、ユーザは、ボタン６１２をクリックし、同期エンジンに、自然言語入力フィールド６０２を更新させることもできる。ユーザが選択を行った後、アプリケーション６００は、別のユーザ選択のために別のＧＵＩオブジェクト６１０（この例ではプルダウンメニュー）を付加する。
【００３６】
図７は、第１の条件が付加された後の図６の検索アプリケーションの画面図である。アプリケーション７００は、自然言語入力フィールド７０２およびＧＵＩ７０４を含む。ユーザは、オブジェクトの種類プルダウンリスト７０６から「ｅｍａｉｌ」を選択する。選択に基づき、ＧＵＩ７０４は、「Ｔｏ（宛先）」、「Ｆｒｏｍ」、「Ｒｅｃｅｉｖｅｄ  Ｄａｔｅ」など、１つまたは複数の条件オプションを表示することができる。あるいは他の実施形態として、ユーザは、プルダウンモジュール７１２を使って条件オプションまたは他の入力エレメントを選択することもできる。この例では、ユーザは、プルダウンメニュー７１２を使って「ｆｒｏｍ」を選択し、アプリケーション７００は、自動的に、またはボタン７１４とのユーザ対話に基づいて、ＧＵＩ７０４にチェックボックス７０８および関連するテキストフィールド７１０を付加する。ユーザは、テキストフィールド７１０に「Ｊｏｅ」という語を入力する。その結果、同期エンジンは、選択されたＧＵＩオブジェクトの自然言語表現を用いて自然言語入力フィールド７０２を更新し、「ｅｍａｉｌ  ｆｒｏｍ  Ｊｏｅ（ジョーからの電子メール）」というＧＵＩ７０４の自然言語解釈がもたらされる。
【００３７】
図８は、日付条件が付加された後の図７の検索アプリケーションの画面図である。アプリケーション８００は、自然言語入力フィールド８０２およびＧＵＩ８０４を含む。ユーザは、オブジェクトの種類プルダウンリスト８０６から「ｅｍａｉｌ」を選択する。選択に基づき、ＧＵＩ８０４は、「Ｔｏ」、「Ｆｒｏｍ」、「Ｒｅｃｅｉｖｅｄ  Ｄａｔｅ」など、１つまたは複数の条件オプションを表示し、あるいはユーザがプルダウンメニュー８１２から条件オプションを選択する。アプリケーション８００は、自動的に、またはボタン８１４とのユーザ対話に基づいて、ＧＵＩ８０４にチェックボックス８０８および関連する入力フィールド８１０を付加する。この例では、ユーザは、プルダウンメニュー８１２を使って第２の条件オプションを選択し、その結果として日付チェックボックス８１６および関連する日付フィールド８１８が生じる。ユーザは、オプションの１つまたは複数を選択し、関連するフィールドに記入する。代替の実施形態では、関連するフィールド８１８は、「ｙｅｓｔｅｒｄａｙ（昨日）」、「ｌａｓｔ  ｗｅｅｋ（先週）」、「ｌａｓｔ  ｍｏｎｔｈ（先月）」など様々な日付オプションを含むプルダウンメニューとすることもできる。同期エンジンは、ＧＵＩ８０４の選択されたエレメント８０６および８０８の自然言語解釈を用いて自然言語入力フィールド８０２を更新し、結果として「ｅｍａｉｌ  ｆｒｏｍ  Ｊｏｅ  ｒｅｃｅｉｖｅｄ  ｉｎ  ｔｈｅ  ｌａｓｔ  ｗｅｅｋ（先週受信したジョーからの電子メール）」がもたらされる。
【００３８】
自然言語を使って同じ概念を表現する多くの手法があることに留意することは重要である。どのような自然言語入力にも固有の曖昧さがあり、これは、セマンティックエンジン、この場合には、同期エンジンによって妥当な確実性で解決されなければならない。
【００３９】
図９は、ＧＵＩエレメントを介して「ｃａｒｂｏｎ  ｃｏｐｙ（写し）」条件が付加された後の検索アプリケーション９００を使った異なるサーチを示す画面図である。アプリケーション９００は、自然言語入力９０２およびＧＵＩ９０４を含む。ユーザは、ＧＵＩオブジェクトプルダウンリスト９０６から「ｅｍａｉｌ」を選択する。次いで、ユーザは、コンテキストに基づく選択オプションを提供するプルダウンメニュー９１６を使って、１つまたは複数の条件オプションを選択することができる。例えば、ユーザは「ｅｍａｉｌ」を選択したので、その条件オプションには、「Ｔｏ」、「Ｆｒｏｍ」、「Ｒｅｃｅｉｖｅｄ  Ｄａｔｅ」など、電子メールに関連したアプリケーションエレメントが含まれる。ユーザは、プルダウンメニュー９１６を使ってそれらのオプションの１つまたは複数（この場合は「Ｆｒｏｍ」および「ＣＣ」）を選択し、アプリケーションに、選択されたＧＵＩオブジェクト９０８、９１２、およびそれらに関連する入力フィールド９１０、９１４をそれぞれ付加させる。ユーザは、関連するフィールド９１０および９１４に記入する。同期エンジンは、選択されたＧＵＩエレメント９０８、９１２およびそれらに関連する入力フィールド９１０、９１４の自然言語解釈を用いて自然言語入力フィールド９０２を更新する。この例では、アプリケーション９００は、例えば、ユーザに入力に基づいてサーチを実行する（図３の実行エンジン３０８などの）実行エンジンと対話することができる。実行エンジンは、データベースをサーチし、アプリケーション９００の表示領域９２０に表示するための結果リストを返す。表示領域９２０には、検索された項目のリスト９２２が読み込まれる。「ｆｉｎｄ  ａｌｌ  ｅｍａｉｌｓ  ｆｒｏｍ  Ｊｏｎａｓ  ＣＣ  Ｔｏｍ（トムに写しが送信されたジョナスからのすべての電子メールを検索する）」の場合、アプリケーションは、トムに「ＣＣ」で写しが送られた、ジョナスが送信した電子メールすべてを示すはずである。この場合、これらの基準に適する電子メールは３通だけである。
【００４０】
以上の考察では、主として独立型アプリケーションを中心に論じているが、この同期機能は、より大規模なアプリケーションにも組み込まれ得ることを理解すべきである。ＧＵＩオブジェクトの自然言語入力との同期は、ユーザに、アプリケーションが自然言語をどのように解釈するかについての洞察を提供する。さらに、同期機能は、ユーザにアプリケーション内で利用可能なオプションに関して学習させる手段としても働く。最後に、この同期は、アプリケーションによるユーザ選択の解釈によって明らかにされる問い合わせでの誤りをユーザが訂正できるようにする、誤りチェック機能として働く。この即座のフィードバックは、アプリケーションをユーザにとってより直観的に表現するだけでなく、そうでなければユーザが気付かなかったはずの誤解を訂正することにより、ユーザにより効率よく使用できるようにする。
【００４１】
以上、本発明を特定の実施形態を参照して説明したが、本発明の精神および範囲を逸脱することなく形式および内容に変更が加えられることを、当分野の技術者は理解するであろう。
【図面の簡単な説明】
【００４２】
【図１】本発明を実施するためのコンピューティングシステム環境を示す図である。
【図２】本発明の一実施形態による、自然言語入力とＧＵＩ入力を同期させるシステムを示すブロック図である。
【図３】本発明の一実施形態による、自然言語入力とＧＵＩ入力を同期させるシステムの一部を示す拡大したブロック図である。
【図４】本発明の一実施形態による、ＧＵＩと自然言語入力を同期させる方法を示す流れ図である。
【図５】本発明の一実施形態による、ＧＵＩエレメントの一部が自然言語入力から自動的に構築されている、自然言語入力エレメントとＧＵＩ入力エレメントを有する検索アプリケーションを示す画面図である。
【図６】本発明の一実施形態による、入力行が選択されたＧＵＩエレメントに基づいて更新されている、自然言語入力エレメントとＧＵＩ入力エレメントを有する検索アプリケーションを示す画面図である。
【図７】本発明の一実施形態による、選択されたＧＵＩエレメントを介して「Ｆｒｏｍ」条件が付加された後の図６の検索アプリケーションを示す画面図である。
【図８】本発明の一実施形態による、選択されたＧＵＩエレメントを介して日付条件が付加された後の図７の検索アプリケーションを示す画面図である。
【図９】本発明の一実施形態による、ＧＵＩエレメントを介して「写し」条件が付加され、問い合わせが実行された後の図７の検索アプリケーションを示す画面図である。
【符号の説明】
【００４３】
１２０  処理ユニット
１３０  システムメモリ
１３４  オペレーティングシステム
１３５  アプリケーションプログラム
１３６  他のプログラムモジュール
１３７  プログラムデータ
１４０  取り外し不能不揮発性メモリインターフェース
１４４  オペレーティングシステム
１４５  アプリケーションプログラム
１４６  他のプログラムモジュール
１４７  プログラムデータ
１５０  取り外し可能不揮発性メモリインターフェース
１６０  ユーザ入力インターフェース
１６１  ポインティングデバイス
１６２  キーボード
１６３  マイクロホン
１７０  ネットワークインターフェース
１７１  ローカルエリアネットワーク
１７２  モデム
１７３  ワイドエリアネットワーク
１８０  リモートコンピュータ
１８５  リモートアプリケーションプログラム
１９０  ビデオインターフェース
１９１  モニタ
１９５  出力周辺インターフェース
１９６  プリンタ
１９７  スピーカ
２０２  同期エンジン
２０４  自然言語入力
２０６  グラフィカル・ユーザ・インターフェース
２０８  自然言語リステートメント・エンジン
２１０  セマンティックス・エンジン
３０２  同期エンジン
３０４  自然言語入力
３０６  グラフィカル・ユーザ・インターフェース
３０８  実行エンジン
３１０  ストア
３１２  結果エリアまたはセクション
【図１】
2006172435.tif 000003
【図２】
2006172435.tif 000004
【図３】
2006172435.tif 000005
【図４】
2006172435.tif 000006
【図５】
2006172435.tif 000007
【図６】
2006172435.tif 000008
【図７】
2006172435.tif 000009
【図８】
2006172435.tif 000010
【図９】
2006172435.tif 000011