(57)【要約】【課題】  データ・ソース情報からテーブルを生成してレンダリングするためのユーザ・フレンドリーなインターフェースを提供すること。【解決手段】  本発明は、ソフトウェア・アプリケーションを操作し、データ・ソースに格納されたデータを処理する方法を提供することに関する。この方法は、自然言語入力を受け取ること、およびこの自然言語入力を分析して、その中に含まれる意味情報を識別することを含む。この意味情報および自然言語入力に基づいて、自然言語入力の一部を、スキーマのコマンド・オブジェクトおよびエンティティ・オブジェクトに関連付ける。この方法は、このスキーマおよび自然言語入力の関連する部分に基づいて、データ・ソースからのデータを、列および行から成るテーブルの形でレンダリングすることも含む。【選択図】  図４
2005267647.tif 000002
【特許請求の範囲】
【請求項１】
構造化データ・ソースに格納されたデータを処理する方法であって、
自然言語入力を受け取ること、
前記自然言語入力を分析して、当該自然言語入力中に含まれる意味情報を識別すること、
前記意味情報および前記自然言語入力に基づいて、前記自然言語入力の各部分を、スキーマのコマンド・オブジェクトおよびエンティティ・オブジェクトに関連付けること、および
前記スキーマおよび前記自然言語入力の前記関連する部分に基づいて、前記データ・ソースからのデータを、列および行から成るテーブルの形でレンダリングすること
を備えることを特徴とする方法。
【請求項２】
前記データベースにアクセスして、前記データ・ソースのディメンションに関連する語および句を識別することをさらに備えることを特徴とする請求項１に記載の方法。
【請求項３】
前記アクセスして識別することは、前記データ・ソースのレベルおよび値に関連する語および句を識別することをさらに備えることを特徴とする請求項２に記載の方法。
【請求項４】
前記関連付けることは、前記自然言語入力の各部分、前記スキーマのフレーム・オブジェクトに関連付けることをさらに備え、前記フレーム・オブジェクトは、データをレンダリングする方法に対応することを特徴とする請求項１に記載の方法。
【請求項５】
前記コマンド・オブジェクトは、データをレンダリングするために実施するタスクに関係することを特徴とする請求項１に記載の方法。
【請求項６】
前記エンティティ・オブジェクトは、前記データ・ソース内のデータ、またはアプリケーション内のオブジェクトに関係することを特徴とする請求項１に記載の方法。
【請求項７】
受け取った別のコマンドに基づいて前記テーブルを変更することをさらに備えることを特徴とする請求項１に記載の方法。
【請求項８】
前記別のコマンドは、前記テーブルの一部を強調表示することを特徴とする請求項７に記載の方法。
【請求項９】
前記別のコマンドは、前記テーブルの一部をソーティングすることを特徴とする請求項７に記載の方法。
【請求項１０】
前記別のコマンドは、前記テーブル内の情報をフィルタリングすることを特徴とする請求項７に記載の方法。
【請求項１１】
前記別のコマンドは、前記テーブルに情報を追加することを特徴とする請求項７に記載の方法。
【請求項１２】
前記別のコマンドは、前記テーブル内の情報を消去することを特徴とする請求項７に記載の方法。
【請求項１３】
前記別のコマンドは、前記行と列の情報を切り替えることを含むことを特徴とする請求項７に記載の方法。
【請求項１４】
前記自然言語入力に基づいて、解釈の候補を提示することをさらに備えることを特徴とする請求項１に記載の方法。
【請求項１５】
前記自然言語入力を入力するための対話型インターフェースをユーザに提供することをさらに備えることを特徴とする請求項１に記載の方法。
【請求項１６】
前記自然言語入力中の認識された言葉を示すこと、およびユーザが前記自然言語入力を入力している間に解釈の候補を提供すること、のうちの少なくとも１つを実施することをさらに備えることを特徴とする請求項１５に記載の方法。
【請求項１７】
前記テーブル内の情報の自然言語による記述をレンダリングすることをさらに備えることを特徴とする請求項１に記載の方法。
【請求項１８】
レンダリングされた前のテーブルの履歴を後で使用するために維持することをさらに備えることを特徴とする請求項１に記載の方法。
【請求項１９】
前記自然言語入力の各部分を、前記データ・ソースに関連付けられた語および句に関連付けることをさらに備えることを特徴とする請求項１に記載の方法。
【請求項２０】
前記分析することは、前記自然言語入力中の曖昧な言葉を識別すること、および前記曖昧な言葉の代替案の候補を提示することをさらに備えることを特徴とする請求項１に記載の方法。
【請求項２１】
ディメンションおよび前記ディメンションに関連付けられた値を含む、構造化データ・ソース内のデータを処理する命令を有するコンピュータ可読媒体であって、前記命令は、
自然言語入力を受け取り、テーブルをレンダリングするように適合されたユーザ・インターフェース・モジュール、
前記ディメンションおよび値にアクセスし、前記ディメンションおよび値をレンダリングするスキーマを特定するテーブルを生成するように適合されたテーブル生成モジュール、および
前記自然言語入力中の言葉を、前記データ・ソースのディメンションに対応する前記スキーマのエンティティ・オブジェクトに関連付け、前記自然言語入力、前記ディメンション、および前記スキーマに基づいて、前記データ・ソース内のデータをレンダリングする方法についての解釈の候補を生成するように適合された解釈モジュール
を備えることを特徴とするコンピュータ可読媒体。
【請求項２２】
前記ユーザ・インターフェース・モジュールは、前記解釈の候補のテーブルを提示するように適合されることを特徴とする請求項２１に記載のコンピュータ可読媒体。
【請求項２３】
前記データ・ソースは、前記ディメンションに関連するレベルを含むことを特徴とする請求項２１に記載のコンピュータ可読媒体。
【請求項２４】
前記ユーザ・インターフェース・モジュールは、前記解釈の候補のテーブルの少なくとも１つに基づいて、前記データ・ソースからのディメンションおよび値のテーブルをレンダリングするように適合されることを特徴とする請求項２１に記載のコンピュータ可読媒体。
【請求項２５】
前記解釈モジュールは、前記自然言語入力中の語および句と、前記データ・ソースの前記ディメンションおよび値とを比較するように適合されることを特徴とする請求項２１に記載のコンピュータ可読媒体。
【請求項２６】
前記解釈モジュールは、前記自然言語入力の意味分析を実施するようにさらに適合されることを特徴とする請求項２１に記載のコンピュータ可読媒体。
【請求項２７】
前記スキーマは、実施するタスクに関係するコマンド・オブジェクト、およびデータをレンダリングする方法に関係するフレーム・オブジェクトをさらに含むことを特徴とする請求項２１に記載のコンピュータ可読媒体。
【請求項２８】
前記解釈モジュールは、前記自然言語入力中の言葉を、前記コマンド・オブジェクトおよび前記フレーム・オブジェクトに関連付けるようにさらに適合されることを特徴とする請求項２７に記載のコンピュータ可読媒体。
【請求項２９】
前記ユーザ・インターフェース・モジュールは、前記ユーザに解釈の候補を提示するように適合されることを特徴とする請求項２１に記載のコンピュータ可読媒体。
【請求項３０】
前記解釈の候補は、複数のテーブル構成を含み、少なくとも１つの構成は、同じデータに関連付けられることを特徴とする請求項２９に記載のコンピュータ可読媒体。
【請求項３１】
前記ユーザ・インターフェース・モジュールは、ユーザが、前記解釈の候補の１つを選択して、前記選択された解釈の候補に関連付けられたテーブルをレンダリングすることができるように適合されることを特徴とする請求項２１に記載のコンピュータ可読媒体。
【請求項３２】
情報を処理してアプリケーションを駆動する方法であって、
自然言語入力を受け取ること、
前記自然言語入力を分析して、前記自然言語入力中に含まれる意味情報を識別すること、
前記意味情報および前記自然言語入力に基づいて、スキーマにアクセスしてコマンド・オブジェクトおよびエンティティ・オブジェクトを識別すること、および
前記コマンド・オブジェクトおよび前記エンティティ・オブジェクトに基づいて、前記アプリケーションに関連するアクションを実施すること
を備えることを特徴とする方法。
【請求項３３】
前記アプリケーションは、スプレッド・シート・アプリケーションであることを特徴とする請求項３２に記載の方法。
【請求項３４】
前記アクションは、前記スキーマに基づいて、データ・ソースからのデータを、列および行から成るテーブルの形でレンダリングすることを含むことを特徴とする請求項３２に記載の方法。
【請求項３５】
前記アクションは、前記自然言語入力に基づいて、データ・ソースからの単一セルの情報をレンダリングすることを含むことを特徴とする請求項３４に記載の方法。
【請求項３６】
前記コマンド・オブジェクトは、前記アプリケーション内で実施するコマンドに関連付けられ、前記エンティティ・オブジェクトは、前記コマンドを実施するときに前記アプリケーションが使用するデータに関連付けられることを特徴とする請求項３２に記載の方法。
【請求項３７】
スキーマにアクセスすることは、フレーム・オブジェクトを識別することをさらに備え、前記フレーム・オブジェクトは、前記エンティティ・オブジェクトを前記コマンド・オブジェクトに関連付けることを特徴とする請求項３６に記載の方法。
【請求項３８】
前記スキーマおよび前記意味情報に基づいて、前記自然言語入力の解釈の候補を提示することをさらに備えることを特徴とする請求項３２に記載の方法。
【請求項３９】
前記スキーマにアクセスすることは、複数のエンティティ・オブジェクトを識別することを含むことを特徴とする請求項３２に記載の方法。
【請求項４０】
前記スキーマにアクセスすることは、複数のコマンド・オブジェクトを識別することを含むことを特徴とする請求項３２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザ入力を解決してアプリケーション・コマンドにすることによって、ソフトウェア・アプリケーションを操作する方法に関する。より詳細には、本発明は、ユーザ入力を解決してコマンドにし、それによってデータベースなどのデータ・ソースからの情報をレンダリングすることに関する。
【背景技術】
【０００２】
標準的なコンピュータ・システムにおけるユーザ入力は、フォーマットが固定された１組の柔軟性のないユーザ・レスポンスに制限されてきた。たとえば、コマンド・ライン・インターフェースでは、ユーザ入力は、特定の形式でなければならず、この特定の形式は、単一のコマンド、および予定された引数から成る、制限された特定の定義域から選択された引数を、一意に特定する特定の形式であった。同様に、グラフィカル・ユーザ・インターフェースでは、ユーザには制限された１組の任意選択肢のみが示され、開発者にとって、この制限された１組のユーザ入力内に、特定のユーザ入力に対する制限された１組のコマンドまたはエンティティ（entity）からなるユーザ入力定義域を定義することは、比較的、単純であった。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
許可される入力または応答から成る柔軟性のないセットにユーザを制約することによって、コンピュータ・システムは、ユーザまたはオペレータにかなりのレベルの技能を要求してきていた。従来、実施されるべき所望のタスクを、コンピュータ・システム上で実行中のアプリケーションによって認識される特定の入力に頭の中で変換することは、ユーザの責任であった。コンピュータ・システムの有用性（usability ）を広げるために、ＮＬ（自然言語）インターフェースを備えるアプリケーションを提供する取り組みが継続して行われてきている。自然言語インターフェースにより、アプリケーションの機能は、これらのアプリケーションの制限された入力の組を超えて拡張され、コンピュータ・システムに自然言語フォーマットで入力できるようにする。自然言語インターフェースは、比較的曖昧で極めてコンテキスト・ベースの領域である自然言語から、コンピュータ・アプリケーションが必要とする精確で厳格な入力のセットに変換する役目を負う。
【０００４】
データベースなどのデータ・ソースからの情報をレンダリングために自然言語による入力を解決することは、データ・ソースがカスタマイズされた種類であることに起因して、データ・ソースからの情報をレンダリングする多くの方法があることから、実施するのが難しい可能性がある。具体的には、データ・ソースに格納された情報を分析するためにテーブルをレンダリングすることは、どんな情報をレンダリングすべきか、およびそれをレンダリングする方法を特定するユーザからの特定の命令によって達成される。この扱いにくいインターフェースのために、多くのユーザは、データ分析に有用なテーブルをレンダリングすることに難点を感じている。データ・ソース情報からテーブルを生成してレンダリングするためのユーザ・フレンドリーなインターフェースを提供することにより、情報を分析することができるより効率的なツールを提供することになる。
【課題を解決するための手段】
【０００５】
本発明は、ソフトウェア・アプリケーションを操作する方法に関し、この方法は、構造化データ・ソースに格納されたデータを処理することを含む。この方法は、自然言語入力を受け取ること、およびこの自然言語入力を分析して、その中に含まれる意味情報を識別することを含む。この意味情報および自然言語入力に基づいて、自然言語入力の一部を、スキーマのコマンド・オブジェクトおよびエンティティ・オブジェクトに関連付ける。この方法は、このスキーマおよび自然言語入力の関連する部分に基づいて、データ・ソースからのデータを、列および行から成るテーブルの形でレンダリングすることも含む。
【０００６】
本発明の別の態様は、ディメンションおよびこれらのディメンションに関連付けられた値を含む、構造化データ・ソース内のデータを処理する命令を有するコンピュータ可読媒体に関するものである。これらの命令は、自然言語入力を受け取り、テーブルをレンダリングするように適合されたユーザ・インターフェース・モジュールを含む。テーブル生成モジュールは、これらのディメンションおよび値にアクセスし、これらのディメンションおよび値をレンダリングするスキーマを特定するように適合される。さらに、解釈モジュールは、自然言語入力中の言葉（terms）を、データ・ソースのディメンションに対応するスキーマのエンティティ・オブジェクトに関連付け、自然言語入力、ディメンション、およびスキーマに基づいて、データ・ソース内のデータをレンダリングする方法についての解釈の候補を生成するように適合される。
【０００７】
本発明の別の態様は、自然言語入力を受け取ることを含めて情報を処理し、それによってアプリケーションを駆動する方法である。自然言語入力を分析して、その中に含まれる意味情報を識別する。この方法は、意味情報および自然言語入力に基づいて、スキーマにアクセスしてコマンド・オブジェクトおよびエンティティ・オブジェクトを特定し、このコマンド・オブジェクトおよびエンティティ・オブジェクトに基づいて、アプリケーションに関連付けられたアクションを実施すること、も含む。
【発明を実施するための最良の形態】
【０００８】
図１に、本発明を実施することができる適切なコンピューティング・システム環境の実施例１００を示す。コンピューティング・システム環境１００は、適切なコンピューティング環境の単なる１つの例であり、本発明の利用法または機能の範囲に関していかなる制限も示唆するものではない。また、コンピューティング環境１００を、動作環境の実施例１００に示すコンポーネントのいずれか１つまたはそれらの組合せに関係する依存性または要件を有すると解釈すべきではない。
【０００９】
本発明は、他の多くの汎用または特殊用途のコンピューティング・システムの環境または構成で動作する。本発明に使用するのに適した周知のコンピューティング・システム、環境、および／または構成の例には、パーソナル・コンピュータ、サーバ・コンピュータ、ハンドヘルドまたはラップトップ装置、マルチ・プロセッサ・システム、マイクロ・プロセッサ・ベースのシステム、セットトップボックス（set top box）、プログラム可能な民生用電子機器、ネットワークＰＣ、ミニ・コンピュータ、大型コンピュータ、電話通信システム、上記システムまたは装置のいずれかを含む分散コンピューティング環境などが含まれるが、これらに限定されるものではない。
【００１０】
本発明は、コンピュータによって実行されるコンピュータが実行可能な命令、たとえばプログラム・モジュールの一般のコンテクストで説明することができる。一般に、プログラム・モジュールは、特定のタスクを実施し、また特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本発明は、通信ネットワークを介して接続された遠隔処理装置によってタスクが実施される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラム・モジュールは、メモリ記憶装置を含めて、ローカルおよびリモートのコンピュータ記憶媒体に配置することができる。以下、図を用いて、プログラムおよびモジュールによって実施されるタスクを説明する。当業者なら、任意の形態のコンピュータ可読媒体上に書き込むことができる、プロセッサにより実行可能な命令として、この記述および図を説明することができよう。
【００１１】
図１を参照すると、本発明を実施するシステムの実施例は、コンピュータ１１０の形態の汎用コンピューティング装置を含む。コンピュータ１１０のコンポーネントは、処理装置１２０、システム・メモリ１３０、およびシステム・メモリを含めて様々なシステム・コンポーネントを処理装置１２０に接続するシステム・バス１２１を含むことができるが、これらに限定されるものではない。システム・バス１２１は、メモリ・バスまたはメモリ・コントローラ、ペリフェラル・バス、およびローカル・バスを含めて、様々なバス・アーキテクチャのいずれかを利用するいくつかのタイプのバス構造のいずれかとすることができる。例を挙げると、このようなアーキテクチャには、ＩＳＡ（業界標準アーキテクチャ）バス、ＭＣＡ（マイクロ・チャネル・アーキテクチャ（Micro Channel Architecture））バス、ＥＩＳＡ（拡張ＩＳＡ）バス、ＶＥＳＡ（ビデオ電子規格協会）ローカル・バス、およびメザニン（Mezzanine）バスとしても知られるＰＣＩ（ペリフェラル・コンポーネント・インターコネクト（Peripheral Component Interconnect））バスが含まれるが、これらに限定されるものではない。
【００１２】
コンピュータ１１０は一般に、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０がアクセスすることができる任意の利用可能な媒体とすることができ、揮発性および不揮発性の媒体、リムーバブルおよび非リムーバブルな媒体をともに含む。例を挙げると、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことができるが、これらに限定されるものではない。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラム・モジュールその他のデータなどの情報を格納するための任意の方法または技術で実装される揮発性および不揮発性の媒体、リムーバブルおよび非リムーバブルな媒体をともに含む。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリその他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（デジタル多用途ディスク）その他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置その他の磁気記憶装置、あるいは所望の情報を格納するのに使用することができ、かつコンピュータ１１０がアクセスすることができる任意の他の媒体を含むが、これらに限定されるものではない。通信媒体は一般に、搬送波その他の搬送機構などの変調データ信号の形で、コンピュータ可読命令、データ構造、プログラム・モジュールその他のデータを具現化するものであり、任意の情報送達媒体を含む。「変調データ信号」という用語は、信号に情報を符号化するようにその信号の特性の１つまたは複数が設定または変更された信号を意味する。例を挙げると、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体、および音波、ＲＦ、赤外線その他の無線媒体などの無線媒体を含むが、これらに限定されるものではない。上記のいずれの組合せも、コンピュータ可読媒体の範囲に含めるべきである。
【００１３】
システム・メモリ１３０は、ＲＯＭ（読出し専用メモリ）１３１およびＲＡＭ（ランダム・アクセス・メモリ）１３２など、揮発性および／または不揮発性のメモリの形態のコンピュータ記憶媒体を含む。たとえば起動時に、コンピュータ１１０内の要素間で情報を転送する助けとなる基本ルーチンを含むＢＩＯＳ（基本入出力システム）１３３は一般に、ＲＯＭ１３１内に格納される。ＲＡＭ１３２は一般に、処理装置１２０が、ダイレクトにアクセスすることができ、かつ／または現在操作中のデータおよび／またはプログラム・モジュールを含む。例を挙げると、図１に、オペレーティング・システム１３４、アプリケーション・プログラム１３５、他のプログラム・モジュール１３６、およびプログラム・データ１３７を示すが、これらに限定されるものではない。
【００１４】
コンピュータ１１０は、リムーバブル／非リムーバブルな、揮発性／不揮発性の他のコンピュータ記憶媒体も含むことができる。単なる例として、図１に、不揮発性非リムーバブル磁気媒体に対して読書きを行うハードディスク・ドライブ１４１、不揮発性リムーバブル磁気ディスク１５２に対して読書きを行う磁気ディスク・ドライブ１５１、およびＣＤ−ＲＯＭその他の光媒体などの不揮発性リムーバブル光ディスク１５６に対して読書きを行う光ディスク・ドライブ１５５を示す。例示の動作環境で使用することができる他のリムーバブル／非リムーバブルな、揮発性／不揮発性のコンピュータ記憶媒体には、磁気テープカセット、フラッシュ・メモリ・カード、デジタル多用途ディスク、デジタル・ビデオ・テープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどが含まれるが、これらに限定されるものではない。ハードディスク・ドライブ１４１は一般に、インターフェース１４０などの非リムーバブル・メモリ用インターフェースを介してシステム・バス１２１に接続され、磁気ディスク・ドライブ１５１および光ディスク・ドライブ１５５は一般に、インターフェース１５０などのリムーバブル・メモリ用インターフェースによってシステム・バス１２１に接続される。
【００１５】
上記で論じ、かつ図１に示すドライブおよびそれらに関連するコンピュータ記憶媒体は、コンピュータ１１０用のコンピュータ可読命令、データ構造、プログラム・モジュールその他のデータの記憶装置を提供する。図１では、たとえば、ハードディスク・ドライブ１４１は、オペレーティング・システム１４４、アプリケーション・プログラム１４５、他のプログラム・モジュール１４６、およびプログラム・データ１４７を格納するように示されている。これらのコンポーネントは、オペレーティング・システム１３４、アプリケーション・プログラム１３５、他のプログラム・モジュール１３６、およびプログラム・データ１３７と同じものとすることもできるし、異なるものとすることもできることに留意されたい。ここでは、オペレーティング・システム１４４、アプリケーション・プログラム１４５、他のプログラム・モジュール１４６、およびプログラム・データ１４７には、少なくともそれらが異なるものであることを示すために異なる番号が与えられている。
【００１６】
ユーザは、キーボード１６２、マイクロホン１６３、およびマウス、トラック・ボール、またはタッチ・パッドなどのポインティング・デバイス１６１などの入力装置を介してコンピュータ１１０にコマンドおよび情報を入力することができる。（図示しない）他の入力装置は、ジョイスティック、ゲーム・パッド、衛星放送受信アンテナ、スキャナなどを含むことができる。ナチュラル・ユーザ・インターフェース・アプリケーションでは、ユーザはさらに、発話、手書き、注視（目の動き）その他の身振りを用いて、コンピュータと通信することができる。ナチュラル・ユーザ・インターフェースをうまく進めるために、コンピュータは、マイクロホン、手書きパッド、カメラ、モーション・センサ（motion sensor）、およびユーザの身振りを捕捉する他の装置を含むことができる。上記その他の入力装置は、システム・バスに結合されたユーザ入力インターフェース１６０を介して処理装置１２０に接続されることが多いが、パラレル・ポート、ゲームポート、またはＵＳＢ（ユニバーサル・シリアル・バス）など他のインターフェースおよびバス構造によって接続することもできる。モニタ１９１その他のタイプのディスプレイ装置も、ビデオ・インターフェース１９０などのインターフェースを介してシステム・バス１２１に接続される。モニタに加えて、コンピュータは、出力用ペリフェラル・インターフェース１９５を介して接続することができるスピーカ１９７およびプリンタ１９６など他の周辺出力装置も含むことができる。
【００１７】
コンピュータ１１０は、リモート・コンピュータ１８０など、１つまたは複数のリモート・コンピュータへの論理接続部を使用するネットワーク環境で動作することができる。リモート・コンピュータ１８０は、パーソナル・コンピュータ、ハンドヘルド装置、サーバ、ルータ、ネットワークＰＣ、ピア・デバイス（peer device）その他一般のネットワーク・ノードとすることができ、一般に、コンピュータ１１０に関連して上記で説明した要素の多くまたはすべてを含む。図１に示す論理接続部は、ＬＡＮ（ローカル・エリア・ネットワーク）１７１およびＷＡＮ（ワイド・エリア・ネットワーク）１７３を含むが、他のネットワークも含むことができる。このようなネットワーク環境は、一般事務所、企業規模のコンピュータ・ネットワーク、イントラネット、およびインターネットで一般的なものである。
【００１８】
ＬＡＮネットワーク環境で用いられるとき、コンピュータ１１０は、ネットワーク・インターフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーク環境で用いられるとき、コンピュータ１１０は一般に、インターネットなどのＷＡＮ１７３を介して通信を確立するためのモデム１７２その他の手段を含む。内蔵型または外付けとすることができるモデム１７２は、ユーザ入力インターフェース１６０その他の適切な機構を介してシステム・バス１２１に接続することができる。ネットワーク環境では、コンピュータ１１０に関連して示すプログラム・モジュールまたはその一部は、リモート・メモリ記憶装置に格納することができる。例を挙げると、図１に、リモート・コンピュータ１８０上に常駐するようにリモート・アプリケーション・プログラム１８５を示すが、これに限定されるものではない。図に示すネットワーク接続部は例であり、コンピュータ間で通信リンクを確立する他の手段を使用することができることを理解されたい。
【００１９】
典型的には、アプリケーション・プログラム１３５は、ユーザ・インターフェース１６０を介するコマンド・ラインまたはＧＵＩ（グラフィカル・ユーザ・インターフェース）を介してユーザと対話してきた。しかし、コンピュータ・システムの使用を簡略化し拡張する取り組みの中で、ユーザから自然言語入力を受け取ることができる入力が開発されている。自然言語や発話とは対照的に、グラフィカル・ユーザ・インターフェースは明確である。優れた設計のグラフィカル・ユーザ・インターフェースでは通常、曖昧な参照（reference）が生じることもないし、インターフェース１６０を介して受け取った入力についての特定の解釈を確認することを、基本となるアプリケーションに要求することもない。たとえば、このインターフェースは明確なので、ユーザが、入力に関してさらに、たとえば「「ｏｋ」ボタンをクリックしましたか」などの問い合わせを受けることは一般に必要とされない。一般に、グラフィカル・ユーザ・インターフェース用に設計されたオブジェクト・モデルは、その実装において極めて機械的かつ厳格である。
【００２０】
グラフィカル・ユーザ・インターフェースからの入力とは対照的に、自然言語によるクエリまたはコマンドはしばしば、入力オブジェクト・モデルに対して、１つだけない、の一連の関数呼出しに変換することがある。従来方式のライン入力またはグラフィカル・ユーザ・インターフェースの厳格で機械的な制限とは対照的に、自然言語は、人間の対話者が互いの知性に、多くの場合無意識に、頼って曖昧な語句を解決する通信手段である。実際、自然言語は、まさに機械的でないことから「自然」とみなされる。人間の対話者は、コンテクスト情報、および発話を取り巻く任意の数の定義域に関する手がかりに基づいて、曖昧な語句を解決することができる。対話者が人間の場合、「金曜日の検討会議に出席した人にこの議事録を送付してください」という文は、さらなる説明無しで、完全に理解可能な文である。しかし、機械の機械的な視点からすると、個々の細部が、厳密にどの書類、どの会議が言及されているのか、厳密に誰にその書類を送付すべきなのか、などが指定されなければならない。
【００２１】
本発明は、自然言語入力を解釈して、アプリケーションおよびそれに関連する動作を駆動することに関する。自然言語入力の解釈を駆動し、かつそのアプリケーションに関連付けられたアクションを開始するスキーマが、定義される。その結果として、このスキーマは、アプリケーション自体と、ならびにユーザによる自然言語入力の意味解釈と、対話する。当業者には理解されるように、このスキーマは、別々のコードとすることもできるし、かつ／または、アプリケーションコードに含めることもできる。いくつかの異なる環境で本発明の態様を利用して、改善された自然言語インターフェースをユーザに提供することができる。本発明の態様を利用することができる特定の一態様は、データベースなどの構造化データ・ソースからの情報をレンダリングすること、を含む。このスキーマを使用して、たとえば、列および行から成るテーブル、または単一セルならなるテーブルをレンダリングすることができる。単一セルの情報をレンダリングする場合、この情報は、テーブルのフォーマットでデータを提供するというよりむしろ、自然言語で提示された質問に対する回答である可能性がある。たとえば、ユーザは、「１９９９年にカリフォルニア州は何件の請求に対して支払いを行ったか」を入力することができる。次いで、「３４８２件」という回答が提示される可能性がある。そのため、ユーザは、回答を見つけるために大量のデータを詳細に調べる必要はない。
【００２２】
図２に、ユーザからの自然言語入力を解決し、この自然言語入力に基づいてテーブル情報をレンダリングするシステムのブロック図を示す。システム２００は、ユーザ・インターフェース・モジュール２０２、テーブル生成モジュール２０４、解釈モジュール２０６、およびデータベース２０８を含む。データベース２０８は、データ・ソースの例であることに留意されたい。このデータ・ソースは、ＳＱＬデータベース、ＯＬＡＰキューブ、またはマイクロソフトのエクセル・ワークシートなど、多くの形式をとることができる。ユーザは、ユーザ・インターフェース・モジュール２０２に、テーブル生成に関係するコマンド、質問その他の入力の形式で自然言語入力を提供する。たとえば、ユーザは、「年単位で航空機および目的地についての総収益を示せ」、または「１９９９年の７３７の総収入はいくらだったか」、あるいは単に「収益」、を提供することができる。ユーザ・インターフェース・モジュール２０２は、この自然言語入力を受け取り、それを生成モジュール２０４に提供する。
【００２３】
テーブル生成モジュール２０４は、テーブルをレンダリングするときに使用することができるコマンドおよび様々なコマンドについての関連する属性のスキーマを特定する。たとえば、これらのコマンドは、ｃｒｅａｔｅ、ｓｈｏｗ、ａｄｄ、ｈｉｄｅ、ｈｉｇｈｌｉｇｈｔ、ｆｉｌｔｅｒ、ｃｌｅａｒなどを含むこと場合があり、これらのコマンドをさらに特定する属性を含む。これらのコマンドは、テーブルを印刷すること、およびデータベース２０８内のデータからチャートを生成することも含むことができる。このスキーマを解釈モジュール２０６に提供して、入力の解釈を駆動することができる。あるいは、このスキーマを使用して、単一セルの情報をレンダリングすることができる。テーブル生成モジュール２０４は、インターフェース・モジュール２０２から受け取った自然言語入力、およびテーブルを構築し生成するために実施される動作を駆動する定義済みのスキーマに基づいて、どんな情報をレンダリングすべきかを決定する際の助けとなる解釈モジュール２０６、を使用する。テーブル生成モジュール２０４は、データベース２０８にアクセスして、データベース２０８内に格納された項目に対応する語および／または句を識別し、これらを解釈モジュール２０６に提供する。
【００２４】
解釈モジュール２０６は、ユーザ入力、スキーマ、ならびにデータベースの語および句を分析して、ユーザに対してどんな情報をレンダリングするかについての候補となる意味解釈を生成する。まず、ユーザ入力の意味分析を実施して、このユーザがレンダリングされることを望んでいるものを解釈するための意味情報を提供する。たとえば、この入力中の名前付きエンティティは、このユーザが、テーブルのページとして、行または（terms）列として、あるいはデータ領域内にレンダリングされることを望んでいる言葉を示唆することができる。他の意味論技術、たとえば、発話の一部を識別すること、言葉（terms）の部分的一致を許容すること、および／または一致を見つけるために発話のある特定の部分に頼ること、形態的代替物（すなわち、「ｒｅｇｉｏｎ」および「ｒｅｇｉｏｎａｌ」）を識別すること、名前の連結（すなわち、「ｈｏｍｅ  ｏｗｎｅｒ」および「ｈｏｍｅｏｗｎｅｒ」）を解決すること、日付の標準化（すなわち、「１／１／０４」および「Ｊａｎｕａｒｙ  １、２００４」）、類語辞典（thesaurus）によって類義語を識別すること、語順の交換を許容すること（すなわち、「ｔｏｔａｌ  ｒｅｖｅｎｕｅ」および「ｒｅｖｅｎｕｅ  ｔｏｔａｌ」）、各方法を格付けすること、などを利用することもできる。解釈モジュール２０６によって、値の否定（すなわち、ｈｉｄｅ）、比較（すなわち、閾値よりも大きい値）など、他の意味情報を識別することができる。
【００２５】
この意味情報およびスキーマを用いることによって、解釈モジュール２０６は、自然言語入力中の１つまたは複数のタスクを、このスキーマのコマンド・オブジェクトに関連付け、自然言語入力中の他の情報を、このスキーマの１つまたは複数のフレーム・オブジェクトおよび／または１つまたは複数のエンティティに関連付ける。このスキーマは、他のエンティティを指示し、オブジェクトのプロパティを記述する指示オブジェクトおよび制限オブジェクトなど、他のオブジェクトも含むことができる。自然言語入力とスキーマのオブジェクトが関連付けられると、解釈の候補が解決され、テーブル生成モジュール２０４に送られる。
【００２６】
実施形態の一例では、ユーザ・インターフェース・モジュール２０２は、米国ワシントン州Ｒｅｄｍｏｎｄ所在のＭｉｃｒｏｓｏｆｔ社が提供するマイクロソフト・エクセルなどのスプレッド・シート・アプリケーションとすることができる。このスプレッド・シート・アプリケーションは、あらゆるタイプのデータベース情報を処理してレンダリングするように構成することができる。たとえば、このスプレッド・シート・アプリケーションは、ＯＬＡＰ（オンライン分析処理）によるレンダリング・ツールとすることができる。ＯＬＡＰは、ユーザが様々な方法でデータベースからデータを容易にかつ選択的に抽出し閲覧することができる処理方法を指す。ＯＬＡＰデータ・モデルでは、情報は概念的に、記述カテゴリ（ディメンション）および定量的な値（媒体）からなるキューブとして把握される。マルチ・ディメンション・データ・モデルにより、ユーザは、複雑なクエリを定式化し、レポート上でデータを配置し、集計データから詳細データに切り替え、データをフィルタリングし、また意味のあるサブセットに分割すること、が容易になる。たとえば、販売情報を含むキューブのディメンションは、期間、地域、製品、流通チャネル、組織、およびシナリオ（予算または実績）を含むことができる。媒体は、売上高、売上数、在庫、人数、収益、および経費を含むことができる。
【００２７】
データは、ＯＬＡＰデータ・モデルの各ディメンション内で、このデータの詳細レベルを表す階層に体系化することができる。たとえば、期間のディメンションには、年、月、および日のレベルがある可能性がある。同様に、地域のディメンションには、国、区域、州／県、および市のレベルがある可能性がある。ＯＬＡＰデータ・モデルの個々のインスタンスは、階層の各レベルごとに特定の値を有する。ＯＬＡＰデータを閲覧するユーザは、より詳細な情報またはより概略的な情報を見るために、レベル間を上下に行ったり来たりすることになる。
【００２８】
本発明の一実施形態では、ユーザによって提供された自然言語入力を解決して、ＯＬＡＰキューブのディメンションに基づいて、マイクロソフト・エクセルなどのスプレッド・シート・アプリケーションのいわゆるピボットテーブル（PivotTable）を生成することができる。ピボットテーブルは、大量のデータを集計することができる対話型テーブルである。テーブルをレンダリングする対話型インターフェースにより、ユーザは情報の行および列を回転し、それによって、ユーザが、データベース２０８内のデータの異なる集計を閲覧し、異なるページを表示することによってデータをフィルタリングし、かつ／またはデータベース情報に関係する細部を表示することができる。ピボットテーブルはフィールドを含み、各フィールドは、ソースデータからの複数行の情報を集計する。ピボットテーブルは、テーブル内の特定のセルを加算し、計数し、かつ／または平均する集計機能を使用することによってもデータを集計することができる。ピボットテーブルを生成するために、ユーザは、テーブル生成モジュール２０４を呼び出すことができる。一実施形態では、テーブル生成モジュール２０４は、テーブル情報をレンダリングすることに関係する情報を入力するようにユーザを案内するウィザードである。
【００２９】
この実施形態では、テーブル生成モジュール２０４は、ピボットテーブルを構築し改変するために利用可能な動作に基づいてスキーマを定義することができる。このスキーマは、コマンド・オブジェクト、フレーム・オブジェクト、およびエンティティ・オブジェクトの階層として表することができる。他のオブジェクトの例には、指示オブジェクト、名前付きエンティティ・オブジェクト、および制限オブジェクトが含まれることがある。コマンド・オブジェクトは、タスクおよび動作を識別し、フレーム・オブジェクトは、データを表示する方法に関係する動作を識別し、エンティティ・オブジェクトは、データを識別する。これらのオブジェクトの特定のインスタンスを使用して、情報をレンダリングすることを実装することができる。これらのインスタンスは、所望の場合には、ベース・クラスからの固有のプロパティとすることができる。このスキーマは、テーブル生成モジュール２０４によって使用され、データに対するアクションを実施してテーブルを生成し、および解釈モジュール２０６によって使用され、ユーザ入力の解釈を駆動する。
【００３０】
図３は、テーブル上の軸間でデータのフィールドを移動するのに使用するスキーマの例のブロック図である。スキーマ２２０は、コマンド・オブジェクト２２２を含み、これはたとえば、「ｍｏｖｅ−ａｘｉｓ（軸移動）」コマンドである。コマンド・オブジェクト２２２は、関連するフレーム・オブジェクト２２４を含み、これは「ｍｏｖｅ−ａｘｉｓ（軸移動）」フレームである。フレーム・オブジェクト２２４は、関連する３つのエンティティ・オブジェクト２２６、２２８、および２３０を含む。フレーム・オブジェクト２２４は、エンティティ・オブジェクト２２６、２２８、および２３０をそれぞれ、コマンド・オブジェクト２２２に関連付ける。これらのエンティティ・オブジェクトは、データベース２０８内のデータに関連付けられる。一実施形態では、これらのエンティティ・オブジェクトは、レンダリングすべき列または行に関連付けることができる。図に示す実施形態では、エンティティ・オブジェクト２２６は、デフォルト・エンティティである。本明細書では、このデフォルト・エンティティは、フィールドエンティティであり、移動すべきデータのフィールドを指定する。そのため、ユーザ入力の解釈では、コマンド・オブジェクト２２２中のコマンドを実施するのに必要とされる特定のエンティティが解決されない場合、様々なルールに基づくことができるデフォルト値に対して、フィールドエンティティ２２６を解決することになる。エンティティ・オブジェクト２２８は、目標エンティティであり、データをレンダリングする軸を定義する。エンティティ・オブジェクト２３０は、ソース・エンティティであり、異なる軸に移動する現在のフィールドを特定する。
【００３１】
図４は、ユーザに対してテーブルをレンダリングする例示の方法の流れ図である。方法２５０はステップ２５２から始まり、ここで、テーブル生成モジュールを呼び出す。ステップ２５４で、このテーブル生成モジュールは、ユーザ入力からの言葉（terms）を照合するのに用いることになる、データベース２０８のディメンション、レベル、メジャー、および／またはメンバに対応するデータベースの言葉（terms）および／または句を入手することもできる。識別されたデータベースの言葉（terms）は、その後の使用に備えて履歴に維持され、テーブル生成モジュール２０４の性能を向上させることができる。ステップ２５６で、ユーザから自然言語入力を受け取る。この自然言語入力は、キーボード入力からのテキスト、発話データ、および／または手書きデータを含めて任意の形式のもの、および英語、ドイツ語、フランス語、スペイン語、日本語などを含めて任意の言語のものとすることができる。
【００３２】
自然言語入力が与えられると、ステップ２５８でこの入力の意味分析を実施して、この入力に関連する意味情報を特定することができる。次いで、このユーザ入力の解釈の候補が、その意味情報に基づいて、および上記で説明したようにこのユーザ入力の一部をスキーマの一部に関連付けて、導出されることになる。このコマンドは、自然言語入力内に明示的に表される必要はなく、その入力から示唆されるとすることができることに着目されたい。たとえば、「りんごとバナナ」という入力は、「ｓｈｏｗ」コマンドとともに用いることが示唆されるとすることができる。これらの解釈候補を用いて、ステップ２６２で、候補を記述するテーブルをレンダリングすることになる。候補を記述するテーブルは、対話型でユーザ・フレンドリーなインターフェースを生成するために、多くの形式をとることができる。たとえば、ユーザがタイプ入力している間に、解釈および／またはテーブルのプレビューを提示し、入力の中で認識された言葉（terms）を強調表示し、複数のテーブル構成（すなわち、行または列としてのエンティティ）を提示し、テーブルに候補の記述する形で自然言語による記述をリスト内に提示し、曖昧な言葉（terms）の代替案をポップ-アップ・メニューに提示することができる。
【００３３】
さらに、ユーザは、候補の記述において、局所的な曖昧な語句を選択することができる。たとえば、ユーザが、入力に「販売」と入力する場合、候補の記述の１つは、データベース２０８の一部であり、「販売」という言葉（terms）と同等とみなすことができる「販売数」という言葉（terms）を含むことができる。局所的な曖昧な語句を解決する対話型の手法を提供することによって、ユーザは、「販売」の等価物として「販売数」を選択することができる。この情報（すなわち、「販売」と「販売数」が等しいこと）を維持し、さらにこれを用いて、その後の解釈を駆動することができる。
【００３４】
ユーザが候補を記述するテーブルの１つを選択すると、ステップ２６６でこの特定のテーブルがレンダリングされる。あるいは、所望の場合には、ユーザ入力中で、言葉（terms）が認識されるか、あるいは変更が行われるときに、このテーブルを「オン・ザ・フライ（on-the-fly）」でレンダリングすることができる。また、自然言語入力の一部を用いて、言葉（terms）をユーザ・タイプとして視覚的に認識し示すことができる。たとえば、認識された言葉（terms）をユーザ・タイプとして強調表示することができる。テーブルがレンダリングされると、ユーザは、このテーブルを改変するか、あるいは新しいテーブルをレンダリングするための１つまたは複数の別のコマンドを提供することによって、このテーブルを変更することができる。たとえば、この別のコマンドを用いて、ステップ２６８で、テーブルの一部を強調表示し、行および列を隠しかつ／または加え、情報をソーティングしフィルタリングすることができる。他のコマンドも同様である。次いで、ステップ２６６でこの新しいテーブルをレンダリングすることができる。
【００３５】
図５に、本発明の実施形態に従って使用するインターフェースの例３００を示す。インターフェース３００は、データベース２０８からの情報を、列および行から成るテーブルの形で表示するテーブル・ディスプレイ３０２を含む。図に示す実施形態では、様々なタイプの航空機についての総収入が区域単位で示されている。ウィンドウ３０４が、テーブル記述を閲覧し、かつテーブル生成モジュール２０４によって用いられる自然言語入力を提供するために、ユーザに提供される。ウィンドウ３０４は、ディスプレイ３０２に現在表示されているテーブルの内容を記述するテーブル記述３０６を含む。さらに、テーブルを構築するための入力の例３０８が提供される。ユーザは、テーブルをレンダリングするために、フィールド３１０にテキストを入力することができる。さらに、ユーザには、上記で説明したようにリストの形で記述候補３１２が提供され、それによって、ユーザは、このリストから候補の１つを容易に選択することができる。さらに、ユーザが特定のテーブル・レイアウトを選択するためのボタン３１４を提供することができる。たとえば、ボタン３１４は、列（カラム）から行にディメンションを切り替えることができる。一実施形態では、自然言語入力中の言葉（terms）の順序に基づいて、可変レイアウト（または構成）の数を制限することができる。
【００３６】
図５に示す例では、ユーザは、入力フィールド３１０に「show revenue for aircraft and region（航空機および区域についての収入を示せ）」という自然言語入力を提供した。テーブル生成モジュール２０４は、データベース２０８から複数の言葉（terms）を入手して、「Total Revenue（総収入）」、「Type of Aircraft（航空機のタイプ）」、および「Region Name（区域名）」というディメンションを識別した。解釈モジュール２０６は、フィールド３１０内の入力およびデータベース２０８内のディメンションを用いてこの入力を解決し、３１２に「Show Total Revenue by Aircraft Type and by Region Name（航空機のタイプ単位および区域名単位で総収入を示せ）」という記述候補を提供する。
【００３７】
この解釈をユーザが選択すると、現在の記述３０６およびテーブル・ディスプレイ３０２が更新されて、選択されたテーブルおよび関連する記述が示される。次いで、ユーザは、フィールド３１０に、ディスプレイ３０２のテーブルまたは新しいテーブルに関係する別の自然言語コマンドを入力することができる。たとえば、ユーザは、「Hide Australia（オーストラリアを隠せ）」、「show only 747（７４７だけを示せ）」、「highlight revenues over $10,000（１０，０００ドルよりも大きな収入を強調表示せよ）」などを提供することができる。上記の例では、アプリケーションは、オーストラリアの列を隠し、７４７タイプの航空機に関連するデータを有するテーブルだけをレンダリングし、１０，０００ドルよりも大きな総収入値を強調表示することになる。
【００３８】
上記で説明した実施形態によれば、データベースなどのデータ・ソースからの情報を、列および行から成るテーブルの形で、レンダリングするための自然言語インターフェースが提供される。このインターフェースは、ユーザが、データを分析するのに使用するテーブルを生成し、レンダリングすることをより容易にする。この結果として、テーブルをレンダリングすることによるデータ分析が、より時間的に効率がよく、ユーザ・フレンドリーな方法で、実施することができる。
【００３９】
特定の実施形態を参照して本発明を説明してきたが、本発明の趣旨および範囲から逸脱することなく、形態および細部に変更を加えることができることが当業者には理解されよう。
【図面の簡単な説明】
【００４０】
【図１】コンピューティング・システム環境のブロック図である。
【図２】ユーザ入力に基づいてテーブルをレンダリングするシステムのブロック図である。
【図３】スキーマの例のブロック図である。
【図４】テーブルをレンダリングする方法の例の流れ図である。
【図５】ユーザから入力を受け取り、テーブル情報をレンダリングするためのユーザ・インターフェースのスクリーン・ショットである。
【符号の説明】
【００４１】
１００  コンピューティング・システム環境
１１０  コンピュータ
１２０  処理装置
１３０  システム・メモリ
１３４  オペレーティング・システム
１３５  アプリケーション・プログラム
１３６  他のプログラム・モジュール
１３７  プログラム・データ
１４０  不揮発性非リムーバブル・メモリ用インターフェース
１４４  オペレーティング・システム
１４５  アプリケーション・プログラム
１４６  他のプログラム・モジュール
１４７  プログラム・データ
１５０  不揮発性リムーバブル・メモリ用インターフェース
１６０  ユーザ入力インターフェース
１６１  ポインティング・デバイス
１６２  キーボード
１６３  マイクロホン
１７０  ネットワーク・インターフェース
１７１  ローカル・エリア・ネットワーク
１７２  モデム
１７３  ワイド・エリア・ネットワーク
１８０  リモート・コンピュータ
１８５  リモート・アプリケーション・プログラム
１９０  ビデオ・インターフェース
１９１  モニタ
１９５  出力ペリフェラル・インターフェース
１９６  プリンタ
１９７  スピーカ
２０２  ユーザ・インターフェース・モジュール
２０４  テーブル生成モジュール
２０６  解釈モジュール
２０８  データベース
２２２  Move-Axisコマンド
２２４  Move-Axisフレーム
２２６  フィールドエンティティ
２２８  Axisエンティティ（タイプ＝行、列、ページ）
２３０  Axisエンティティ（タイプ＝行、列、ページ）
【図１】
2005267647.tif 000003
【図２】
2005267647.tif 000004
【図３】
2005267647.tif 000005
【図４】
2005267647.tif 000006
【図５】
2005267647.tif 000007
【外国語明細書】
2005267647000001.pdf