(57)【特許請求の範囲】
【請求項１】
構造化されたデータ言語クエリを作成するための方法であって、コンピュータ・システムが、
自然言語クエリをユーザからインタフェースを用いて受け取るステップと、
データベースにおけるデータのオントロジ表現を入力ポートを用いて受け取るステップであって、前記データベースにおける前記データの前記オントロジ表現が、前記データベースにおけるテーブルの名称と、前記テーブルにおけるカラムの名称と、前記テーブルにおけるローの名称とを含む、前記ステップと、
テンプレート規則を前記入力ポートを用いて受け取るステップであって、前記テンプレート規則が、言語に依存し、オントロジとは独立であり、前記テンプレート規則が、言語の広く用いられる構造を含む、前記ステップと、
前記インタフェースと前記入力ポートとに接続された規則生成エンジンを用いて規則を自動的に生成するステップであって、前記規則が、前記自然言語クエリにおいてエンティティと関係とを識別するために前記データベースにおける前記データの前記オントロジ表現と前記テンプレート規則とを用いて生成される、前記ステップと、
前記規則生成エンジンに接続されたプロセッサを用いてエンティティと関係とを識別するステップであって、前記エンティティと関係とは、前記規則を用いて前記自然言語クエリにおいて識別される、前記ステップと、
前記構造化されたデータ言語クエリを、前記プロセッサに接続されたクエリ生成エンジンを用いて生成するステップであって、前記構造化されたデータ言語クエリが、前記エンティティと関係とから生成される、前記ステップと
を実行する、方法。
【請求項２】
前記テンプレート規則のうちのあるテンプレート規則が、少なくとも１つの変数を含む、請求項１に記載の方法。
【請求項３】
前記テンプレート規則のうちのあるテンプレート規則が、第１の変数と、コネクタと、第２の変数とを含む、請求項１に記載の方法。
【請求項４】
前記コネクタが、動詞と前置詞との一方を含む、請求項３に記載の方法。
【請求項５】
前記規則を生成する前記ステップは、前記コンピュータ・システムが、
テンプレート規則の前記第１の変数を、前記カラムの名称のうちの１つで置き換えるステップと、
前記テンプレート規則の前記第２の変数を、前記カラムの名称のうちの別の１つで置き換えるステップと
を実行することを含む、請求項３に記載の方法。
【請求項６】
前記方法は、前記コンピュータ・システムが、前記データのオントロジ表現を豊富にするために言い換えを自動的に生成するステップをさらに実行することを含んでおり、前記自然言語クエリにおいてエンティティと関係とを識別するために前記規則を自動的に生成する前記ステップが、前記言い換えに基づく、請求項１に記載の方法。
【請求項７】
前記方法は、前記コンピュータ・システムが、少なくとも１つの前記エンティティの類義語を自動的に生成するステップをさらに実行することを含んでおり、前記構造化されたデータ言語クエリを生成する前記ステップは、前記コンピュータ・システムが、前記エンティティの前記類義語から前記構造化されたデータ言語クエリを生成するステップをさらに実行することを含む、請求項１に記載の方法。
【請求項８】
構造化されたデータ言語クエリを作成するための方法であって、コンピュータ・システムが、
自然言語クエリをユーザからインタフェースを用いて受け取るステップと、
データベースにおけるデータのオントロジ表現を入力ポートを用いて受け取るステップであって、前記データベースにおける前記データの前記オントロジ表現が、概念の名称と、概念の性質の名称とを含む、前記ステップと、
テンプレート規則を前記入力ポートを用いて受け取るステップであって、前記テンプレート規則が、言語に依存し、オントロジとは独立であり、前記テンプレート規則が、言語の広く用いられる構造を含む、前記ステップと、
前記インタフェースと前記入力ポートとに接続された規則生成エンジンを用いて規則を自動的に生成するステップであって、前記規則が、前記自然言語クエリにおいてエンティティと関係とを識別するために前記データベースにおける前記データの前記オントロジ表現と前記テンプレート規則とを用いて生成される、前記ステップと、
前記規則生成エンジンに接続されたプロセッサを用いてエンティティと関係とを識別するステップであって、前記エンティティと関係とは、前記規則を用いて前記自然言語クエリにおいて識別される、前記ステップと、
前記構造化されたデータ言語クエリを、前記プロセッサに接続されたクエリ生成エンジンを用いて生成するステップであって、前記構造化されたデータ言語クエリが、前記エンティティと関係とから生成される、前記ステップと
を実行する、方法。
【請求項９】
前記テンプレート規則が、少なくとも１つの変数を含む、請求項８に記載の方法。
【請求項１０】
前記テンプレート規則が、第１の変数と、コネクタと、第２の変数とを含む、請求項８に記載の方法。
【請求項１１】
前記コネクタが、動詞と前置詞との一方を含む、請求項１０に記載の方法。
【請求項１２】
前記規則を生成する前記ステップが、前記コンピュータ・システムが、
テンプレート規則の前記第１の変数を、前記データベースにおけるテーブルにおけるカラムの名称のうちの１つで置き換えるステップと、
前記テンプレート規則の前記第２の変数を、前記カラムの名称のうちの別の１つで置き換えるステップと、
を実行することを含む、請求項１０に記載の方法。
【請求項１３】
前記規則を生成する前記ステップが、前記コンピュータ・システムが、
テンプレート規則の前記第１の変数を、前記概念の性質のうちの１つで置き換えるステップと、
前記テンプレート規則の前記第２の変数を、前記概念の性質のうちの別の１つで置き換えるステップと、
を実行することを含む、請求項１０に記載の方法。
【請求項１４】
前記方法は、前記コンピュータ・システムが、前記データのオントロジ表現を豊富にするために言い換えを自動的に生成するステップをさらに実行することを含んでおり、前記自然言語クエリにおいてエンティティと関係とを識別するために前記規則を自動的に生成する前記ステップが、前記言い換えに基づく、請求項８に記載の方法。
【請求項１５】
前記方法は、前記コンピュータ・システムが、少なくとも１つの前記エンティティの類義語を自動的に生成するステップをさらに実行することを含んでおり、前記構造化されたデータ言語クエリを生成する前記ステップは、前記コンピュータ・システムが、前記エンティティの前記類義語から前記構造化されたデータ言語クエリを生成するステップをさらに実行することを含む、請求項８に記載の方法。
【請求項１６】
前記概念が、前記データベースにおけるテーブルを含む、請求項８に記載の方法。
【請求項１７】
前記概念の性質が、前記テーブルにおけるカラムの名称を含む、請求項１６に記載の方法。
【請求項１８】
構造化されたデータ言語クエリを作成するためのコンピュータ・プログラムを格納した記録媒体であって、前記コンピュータ・プログラムは、
デバイスによって実行可能であり、前記デバイスに、自然言語クエリをユーザから受け取らせる、第１のプログラム命令と、
前記デバイスによって実行可能であり、前記デバイスに、データベースにおけるデータのオントロジ表現を受け取らせる、第２のプログラム命令であって、前記データベースにおける前記データの前記オントロジ表現が、前記データベースにおけるテーブルの名称と、前記テーブルにおけるカラムの名称と、前記テーブルにおけるローの名称とを含む、前記第２のプログラム命令と、
前記デバイスによって実行可能であり、前記デバイスに、テンプレート規則を受け取らせる、第３のプログラム命令であって、前記テンプレート規則が、言語に依存し、オントロジとは独立であり、前記テンプレート規則が、言語の広く用いられる構造を含む、前記第３のプログラム命令と、
前記デバイスによって実行可能であり、前記デバイスに、前記自然言語クエリにおいてエンティティと関係とを識別するために規則を自動的に生成させる第４のプログラム命令であって、前記規則が、前記データベースにおける前記データの前記オントロジ表現と前記テンプレート規則とを用いて生成される、前記第４のプログラム命令と、
前記デバイスによって実行可能であり、前記デバイスに、前記自然言語クエリにおけるエンティティと関係とを前記規則を用いて識別させる第５のプログラム命令と、
前記デバイスによって実行可能であり、前記デバイスに、前記構造化されたデータ言語クエリを、前記エンティティと関係とから生成させる第６のプログラム命令と、
を含む、記録媒体。
【請求項１９】
前記テンプレート規則が、第１の変数と、コネクタと、第２の変数とを含んでおり、前記第４のプログラム命令が、前記デバイスに、
テンプレート規則の前記第１の変数を、前記カラムの名称のうちの１つで置き換えさせ、
前記テンプレート規則の前記第２の変数を、前記カラムの名称のうちの別の１つで置き換えさせる、請求項１８に記載の記録媒体。
【請求項２０】
前記コンピュータ・プログラムは、
前記デバイスによって実行可能であり、前記デバイスに、少なくとも１つの前記エンティティの類義語を自動的に生成させる第７のプログラム命令をさらに含んでおり、前記第６のプログラム命令が、前記デバイスに、前記エンティティの前記類義語から前記構造化されたデータ言語クエリを生成させる、請求項１８に記載の記録媒体。
【請求項２１】
構造化されたデータ言語クエリを作成するためのシステムであって、
自然言語クエリをユーザから受け取るように動作可能なインタフェースと、
データベースにおけるデータのオントロジ表現とテンプレート規則とを受け取るように動作可能な入力ポートであって、前記データベースにおける前記データの前記オントロジ表現が、前記データベースにおけるテーブルの名称と、前記テーブルにおけるカラムの名称と、前記テーブルにおけるローの名称とを含み、前記テンプレート規則が、言語に依存し、オントロジとは独立であり、言語の広く用いられる構造を含む、前記入力ポートと、
前記インタフェースと前記入力ポートとに接続されており、規則を自動的に生成するように動作可能な規則生成エンジンであって、前記規則が、前記自然言語クエリにおいてエンティティと関係とを識別するために前記データベースにおける前記データの前記オントロジ表現と前記テンプレート規則とを用いて生成される、前記規則生成エンジンと、
前記規則生成エンジンに接続されており、エンティティと関係とを識別するように動作可能なプロセッサであって、前記エンティティと関係とは、前記規則を用いて前記自然言語クエリにおいて識別される、前記プロセッサと、
前記プロセッサに接続されており、前記構造化されたデータ言語クエリを、前記エンティティと関係とから生成するように動作可能なクエリ生成エンジンと、
を備える、システム。
【請求項２２】
前記テンプレート規則のうちのあるテンプレート規則が、少なくとも１つの変数を含む、請求項２１に記載のシステム。
【請求項２３】
前記テンプレート規則のうちのあるテンプレート規則が、第１の変数と、コネクタと、第２の変数とを含む、請求項２１に記載のシステム。
【請求項２４】
前記コネクタが、動詞と前置詞との一方を含む、請求項２３に記載のシステム。
【請求項２５】
前記規則生成エンジンが、テンプレート規則の前記第１の変数を、前記カラムの名称のうちの１つで置き換え、前記テンプレート規則の前記第２の変数を、前記カラムの名称のうちの別の１つで置き換える、請求項２３に記載のシステム。
【請求項２６】
コンピュータ・プログラムであって、前記コンピュータ・プログラムがコンピュータ・システム上で動作されると、前記コンピュータ・システムに請求項１ないし１７のいずれか１項に記載の方法の各ステップを実行するように適合されたプログラム・コード手段を備える、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースへの自然言語インタフェースのためのシステム、方法、およびコンピュータ・プログラム製品に関する。
【背景技術】
【０００２】
データベースは、コンピュータ化された情報の記憶および検索システムである。リレーショナル・データベース管理システムとは、データを記憶し検索するためにリレーショナル技術を用いる、コンピュータ・データベース管理システム（ＤＢＭＳ）である。最も普及しているタイプのデータベースは、リレーショナル・データベースであって、これは、データが、いくつかの異なる方法で再編成されアクセスされ得るように定義される、表形式のデータベースである。分散型のデータベースとは、ネットワークにおける異なる複数のポイントの間で、分配され複製され得るものである。オブジェクト指向プログラミングデータベースとは、オブジェクト・クラスおよびサブクラスとして定義されたデータと適合するものである。
【０００３】
特定のアーキテクチャとは無関係に、ＤＢＭＳでは、要求側のエンティティ（たとえば、アプリケーションまたはオペレーティング・システム）が、データベース・アクセス・リクエストを発することによって、特定のデータベースへのアクセスを要求する。そのようなリクエストは、たとえば、単純なカタログ参照リクエスト、または、データベースにおいて特定のレコードを読み出す、変更する、および追加するように動作するトランザクションもしくはトランザクションの組合せを含み得る。これらのリクエストは、構造化されたクエリ言語（ＳＱＬ）など、高レベルのクエリ言語を用いて作成される。たとえば、ＳＱＬは、インターナショナル・ビジネス・マシーンズ（ＩＢＭ）社のＤＢ２（Ｒ）、マイクロソフト社のＳＱＬサーバ、ならびに、オラクル社、サイベース社、およびコンピュータ・アソシエーツによるデータベース製品などの、データベースから情報を得るおよびデータベースを更新するための対話的クエリを作成するのに用いられる。「クエリ」という用語は、記憶されたデータベースからデータを検索するための１組のコマンドを意味する。クエリは、プログラマおよびプログラムに、データの選択、挿入、更新、位置の発見などをさせるコマンド言語の形式を有する。（ＤＢ２は、インターナショナル・ビジネス・マシーンズ社の商標である。）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
データベースへの自然言語インタフェースのためのシステム、方法、およびコンピュータ・プログラムを提供する。
【課題を解決するための手段】
【０００５】
本発明のある態様によると、自然言語クエリが、ユーザからインタフェースを用いて受け取られる、構造化されたデータ言語クエリを作成するための方法が提供される。概念の名称（names of concepts）と、概念の性質の名称（names ofconcept properties）とを含む、データベースにおけるデータのオントロジ表現が、入力ポートを用いて受け取られる。言語に依存し、オントロジとは独立であり、言語の広く用いられる構造（constructs）を含むテンプレート規則が、入力ポートを用いて受け取られる。
【０００６】
規則が、インタフェースと入力ポートとに接続された規則生成エンジンを用いて自動的に生成される。上記規則は、自然言語クエリにおいてエンティティと関係とを識別するためにデータベースにおけるデータのオントロジ表現とテンプレート規則とを用いて生成される。エンティティと関係とは、規則生成エンジンに接続されたプロセッサを用いて、識別される。上記エンティティと関係とは、上記規則を用いて自然言語クエリにおいて識別される。構造化されたデータ言語クエリが、上記プロセッサに接続されたクエリ生成エンジンを用いて生成される。上記構造化されたデータ言語クエリは、上記エンティティと関係とから生成される。
【０００７】
別の態様によると、構造化されたデータ言語クエリを作成するための方法が提供される。方法は、自然言語クエリをユーザからインタフェースを用いて受け取るステップと、データベースにおけるデータのオントロジ表現を入力ポートを用いて受け取るステップであって、データベースにおけるデータのオントロジ表現が、データベースにおけるテーブルの名称と、テーブルにおけるカラムの名称と、テーブルにおけるローの名称とを含む、前記ステップと、テンプレート規則を入力ポートを用いて受け取るステップであって、テンプレート規則が、言語に依存し、オントロジとは独立であり、言語の広く用いられる構造を含む、前記ステップと、インタフェースと入力ポートとに接続された規則生成エンジンを用いて規則を自動的に生成するステップであって、上記規則が、上記自然言語クエリにおいてエンティティと関係とを識別するために上記データベースにおけるデータの上記オントロジ表現と上記テンプレート規則とを用いて生成される、前記ステップと、上記規則生成エンジンに接続されたプロセッサを用いてエンティティと関係とを識別するステップであって、該エンティティと関係とは、上記規則を用いて自然言語クエリにおいて識別される、前記ステップと、構造化されたデータ言語クエリを、上記プロセッサに接続されたクエリ生成エンジンを用いて生成するステップであって、上記構造化されたデータ言語クエリが、上記エンティティと関係とから生成される、前記ステップと、を含む。
【０００８】
別の態様によると、コンピュータ・プログラム製品が提供される。コンピュータ・プログラム製品には、デバイスによって実行可能であり、上記デバイスに、自然言語クエリをユーザから受け取らせる、第１のプログラム命令と、上記デバイスによって実行可能であり、上記デバイスに、データベースにおけるデータのオントロジ表現を受け取らせる、第２のプログラム命令であって、上記データベースにおけるデータの上記オントロジ表現が、上記データベースにおけるテーブルの名称と、上記テーブルにおけるカラムの名称と、上記テーブルにおけるローの名称とを含む、前記第２のプログラム命令と、上記デバイスによって実行可能であり、上記デバイスに、テンプレート規則を受け取らせる、第３のプログラム命令であって、上記テンプレート規則が、言語に依存し、オントロジとは独立であり、言語の広く用いられる構造を含む、前記第３のプログラムと、上記デバイスによって実行可能であり、上記デバイスに、上記自然言語クエリにおいてエンティティと関係とを識別するために規則を自動的に生成させる第４のプログラム命令であって、上記規則が、上記データベースにおけるデータの上記オントロジ表現と上記テンプレート規則とを用いて生成される、前記第４のプログラム命令と、上記デバイスによって実行可能であり、上記デバイスに、上記自然言語クエリにおけるエンティティと関係とを上記規則を用いて識別させる第５のプログラム命令と、上記デバイスによって実行可能であり、上記デバイスに、構造化されたデータ言語クエリを、上記エンティティと関係とから生成させる第６のプログラム命令とが記憶されたコンピュータ可読ストレージ媒体が含まれる。
【０００９】
別の態様によると、構造化されたデータ言語クエリを作成するためのシステムが提供される。システムは、自然言語クエリをユーザから受け取るように動作可能なインタフェースと、データベースにおけるデータのオントロジ表現とテンプレート規則とを受け取るように動作可能な入力ポートであって、上記データベースにおけるデータの上記オントロジ表現が、上記データベースにおけるテーブルの名称と、上記テーブルにおけるカラムの名称と、上記テーブルにおけるローの名称とを含み、前記テンプレート規則が、言語に依存し、オントロジとは独立であり、言語の広く用いられる構造を含む、前記入力ポートと、上記インタフェースと上記入力ポートとに接続されており、規則を自動的に生成するように動作可能な規則生成エンジンであって、上記規則が、上記自然言語クエリにおいてエンティティと関係とを識別するために上記データベースにおけるデータの上記オントロジ表現と上記テンプレート規則とを用いて生成される、前記規則生成エンジンと、上記規則生成エンジンに接続されており、上記エンティティと関係とを識別するように動作可能なプロセッサであって、上記エンティティと関係とは、上記規則を用いて上記自然言語クエリにおいて識別される、前記プロセッサと、上記プロセッサに接続されており、上記構造化されたデータ言語クエリを、上記エンティティと関係とから生成するように動作可能なクエリ生成エンジンと、を備える。
【００１０】
次に、本発明の好適な実施形態が、単なる例示ではあるが、以下の図面を参照して、説明される。
【図面の簡単な説明】
【００１１】
【図１】本発明のある実施形態による、自然言語処理から構造化されたクエリ言語への、クエリ結果を求める検索クエリを示す流れ図である。
【図２】本発明のある実施形態による、販売倉庫データベースのためのスキーマを示す図である。
【図３】本発明のある実施形態によるシステム・インタフェースを示す図である。
【図４】本発明のある実施形態によるスマートフォンのインタフェースを示す図である。
【図５】本発明のある実施形態による、キー概念の自然言語クエリからの抽出を示す図である。
【図６】本発明のある実施形態によるＳＱＬコマンドへの翻訳を示す図である。
【図７】本発明のある実施形態による、スマートフォンのインタフェース上に表示された検索結果を示す図である。
【図８】本発明のある実施形態による、エンティティおよび関係の検出のための規則を示す図である。
【図９】本発明のある実施形態によるテンプレート規則を示す図である。
【図１０】本発明のある実施形態によるスキーマ注釈ファイルを示す図である。
【図１１】本発明のある実施形態による、辞書的制約を備えた規則を生成するための方法を示す流れ図である。
【図１２】本発明のある実施形態による、自動化されたスキーマ注釈ファイル作成のための方法を示す流れ図である。
【図１３】本発明のある実施形態による、自然言語クエリの構文解析を示す図である。
【図１４】本発明のある実施形態による、自然言語クエリの構文解析を示す図である。
【図１５】本発明のある実施形態による、別の自然言語クエリの構文解析を示す図である。
【図１６】本発明のある実施形態による、さらに別の自然言語クエリの構文解析を示す図である。
【図１７】本発明のある実施形態によるスマートフォンのインタフェースを示す図である。
【図１８】本発明のある実施形態による、自然言語クエリからのキー概念の抽出を示す図である。
【図１９】本発明のある実施形態による、ＳＱＬコマンドへの翻訳を示す図である。
【図２０】本発明のある実施形態による、スマートフォンのインタフェースに表示された検索結果を示す図である。
【図２１】本発明のある実施形態によるスマートフォンのインタフェースを示す図である。
【図２２】本発明のある実施形態による、自然言語クエリからのキー概念の抽出を示す図である。
【図２３】本発明のある実施形態による、ＳＱＬコマンドへの翻訳を示す図である。
【図２４】本発明のある実施形態による、スマートフォンのインタフェースに表示された検索結果を示す図である。
【図２５】本発明のある実施形態による、構造化されたデータ言語クエリを作成するための方法を示す流れ図である。
【図２６】本発明のある実施形態による、構造化されたデータ言語クエリを作成するためのシステムを示す図である。
【図２７】本発明のある実施形態による、データベースに問合せをするための方法を示す流れ図である。
【図２８】本発明のある実施形態による、データベースに問合せをするためのシステムを示す図である。
【図２９】本発明のある実施形態によるコンピュータ・プログラム製品を示す図である。
【図３０】本発明のある実施形態によるクラウド・コンピューティング・ノードを示す図である。
【図３１】本発明のある実施形態によるクラウド・コンピューティング環境を示す図である。
【図３２】本発明のある実施形態による抽象化モデルレイヤを示す図である。
【００１２】
図面においては、同様の参照番号は、同一または機能的に類似の要素を示す。
【発明を実施するための形態】
【００１３】
以下では、本発明の例示的で非限定的な実施形態が、詳細に論じられる。明瞭な理解を提供するために特定の構成が論じられるが、開示された構成は例証の目的だけのために提供される、ということが理解されるべきである。当業者であれば、本発明の思想および範囲から逸脱することなく他の構成が用いられ得る、ということを理解するであろう。
【００１４】
本発明の少なくとも１つの実施形態は、自然言語処理（ＮＬＰ）を用いて、構造化されたクエリ言語（ＳＱＬ）クエリを通常の英文から自動的に作成するシステムおよび方法を含む。図１は、本発明のある実施形態に従って、クエリ結果に至るＮＬＰからＳＱＬへの検索クエリを示す流れ図であり、ユーザ１１０からの入力テキストが、ＮＬＰパイプライン１２０で受け取られている。ＮＬＰパイプライン１２０からの検出されたエンティティおよび関係と、データベース・スキーマ１３０からのデータとが、ＳＱＬクエリ１４０の作成において用いられ得る。
【００１５】
データベース・スキーマ１３０からのデータは、また、ＮＬＰパイプライン１２０でも用いられ得る。特に、データベース・スキーマ１３０から規則への変換は、エンティティの検出のために、ＮＬＰパイプライン１２０によって、用いられ得る。ＳＱＬクエリは、データベース１５０に送られ得、クエリ結果は、データベース１５０からユーザ１１０に送られ得る。
【００１６】
このようにして、ドメインとは独立なシステムが、エンティティおよび関係の検出に用いられる規則の自動生成を通じて、提供され得る。ドメインとは独立であり言語自体から導かれるテンプレート規則が、用いられ得る。システム・カバレージを自動的に豊富にするために、言い換え生成も用いられ得る。複数パースの使用を通じて、堅牢性を向上させることが可能であり、作成されたＳＱＬで用いられるがそれを作ったのではない質問の部分が、自動的に識別され得る。
【００１７】
以下に掲げる使用ケース１の例は、小売業におけるＣＭＯに関係する。ジョンはＡＢＣ社のＣＭＯであり、彼は、「２０１４年１０月１１日に、ニューヨークの店舗で販売された商品のタイプは何ですか」を見つけることを望んでいる。図２は、本発明のある実施形態による、販売倉庫（sales warehouse）データベースのための例示的なスキーマを示している。
【００１８】
図３は、本発明のある実施形態によるシステム・インタフェース３００を示している。ジョンは、彼の質問（たとえば、「２０１４年１０月１１日に、ニューヨークにある店舗（shopsthat are located in New York）で販売された商品のタイプは何ですか」）を検索ボックス３１０の中にタイプすることができ、システムは、彼の質問をＳＱＬに変換する。たとえジョンが彼の質問において間違えた場合（たとえば、「２０１４年１０月１１日にニューヨークにある店舗（shopsthat have been located in New York）で販売された商品のタイプは何ですか」）であっても、適切なＳＱＬクエリが作成され得る。クエリの結果は、検索結果３２０に表示され得る。
【００１９】
たとえば、マーケティング・アソシエート、商人、実店舗アソシエート、および現場作業員などの様々な種類の業種が、リレーショナル・データベースに記憶されたデータとの迅速な対話を有することを望む場合があり得る。データに到達するためには、様々な種類の業種からの自然言語クエリが、ＳＱＬに変換される。
【００２０】
以下に掲げる使用ケース２の例は、電話会社における現場作業員に関係する。ジェーンは、米国のＡＢＣテルコ社で働く現場作業員である。彼女は、作業命令を受け取ると、訪問し、評価し、問題を解決するために、現場へ赴く。ＡＢＣテルコは、最近、すべての技術者に、スマートフォンを携帯させることになった。ジェーンが現地に到着すると、彼女は、１）「回路が修理された直近の時点はいつだったか」、２）「回路における直近の問題は何だったか」３）「回路が最初に設置されたのはいつだったか」、４）「回路に関する直近の報告は何だったか。直近の修理では、何が変更されたのか」を知ることが必要である。ジェーンは戸外で作業をしなければならず、その日は非常に寒い日である。ジェーンが自らの質問をタイプするのは困難なので、彼女は、自らのスマートフォンに話しかけ、スクリーン上の情報を見ることになる。
【００２１】
さらに詳しくは、図４に示されているように、ジェーンは、「この回路が修理された直近の時点はいつですか」という自らの質問を、自分のスマートフォンに話しかける。少なくとも１つの実施形態では、システムが、スマートフォンに常駐しており、話された文を解釈し、話された文の構文解析を行い、キー概念とそれらの値とを抽出して、概念をデータベースのスキーマと関係付ける。図５は、本発明のある実施形態による、自然言語クエリからのキー概念の抽出を示す図であって、システムは、「いつ」という単語から、これがわれわれのデータベースのスキーマにおける「時間」フィールドに関係するということ、「直近の時点」という複数の単語から、データベースにおける回路の修理に関係する直近のエントリを彼女が知りたがっているということ、「回路」という語から、極やケーブルではなく、回路について質問しているということ、そして、「修理された」という単語に対するデータベースにおけるステータス・フィールドがチェックされるべきであるということ、を抽出するのである。
【００２２】
システムは、話された文をＳＱＬコマンドに変換して、ＳＱＬクエリをＡＢＣデータベースに送ることができる。図６は、本発明のある実施形態による、ＳＱＬコマンドへの翻訳を示す図である。システムは、検索の結果を、スマートフォンで動作しているアプリケーションに返すことができる。図７は、本発明のある実施形態による、スマートフォンのインタフェースに表示された検索結果を示している。
【００２３】
本発明の少なくとも１つの実施形態では、エンティティおよび関係の検出は、規則ベースであり、エンジンが検出の規則を入力として受け取り、依存関係ツリー（dependency tree）におけるこれらの規則との一致を見つける。オントロジ独立であるために、検出のための規則は、テンプレート規則とスキーマ注釈ファイルとを用いて自動的に作成され得る。図８は、本発明のある実施形態によるスキーマ注釈ファイルを示している。スキーマ注釈ファイルは、データベースが、「employee_id」を有するカラムと「salaries」を有するカラムとを含む「被雇用者」のテーブルと、「department_id」を有するカラムを含む「部門」のテーブルとを含む、ということを示す。
【００２４】
図９は、本発明のある実施形態によるテンプレート規則を示している。テンプレート規則は、主語（VAR1）が目的語（VAR2）を動詞する（has、有する）ことを要求する。テンプレート規則とスキーマ注釈ファイルとは、自然言語クエリにおいてエンティティおよび関係の検出のための規則を自動的に生成するのに、用いられ得る。テンプレート規則は、自然言語の広く用いられている構造を表すことができる。一例として、所有構造があり、すなわち、部門は部長を有し、被雇用者は給与を有し、顧客は住所を有する。そのような構造は、主語と目的語とを伴う「有する」という動詞として、表され得る。主語は、誰が何かを所有するのか、を記述することができ、目的語は、何が主語によって所有されるのか、を記述することができる。依存関係ツリーの観点からは、この構造は、３つのノードを含むグラフとして表すことができ、すなわち、主たるノードは「有する」という見出し形式（lemma form）を備えた動詞であり、２つの子ノードがそれに接続される。１つの子ノードは、「主語」というラベルが付されたエッジを通じて主たるノードに接続することができ、別の子ノードは、「目的語」というラベルが付されたエッジを通じて主たるノードに接続することができる。さらに、主語ノードは、特定の見出し形式（たとえば、「被雇用者」）を有することができ、目的語ノードも、特定の見出し形式（たとえば、「給与」）を有することができる。別の構造は、主語−動詞−目的語（ここで、動詞は任意の動詞である）または主語−動詞−前置詞−目的語を含むことができる。例としては、顧客が製品を買う、被雇用者がある部門で働く、などが含まれる。別の構造は、形容詞（最上級）−名詞という、最高の給与、最低の給与、などを含むことができる。
【００２５】
図１０は、本発明のある実施形態によるエンティティおよび関係の検出のための規則を示している。ある規則は、主語（被雇用者）、動詞（有する）、および目的語（給与）を要求することができる。図１１は、本発明のある実施形態による、辞書的制約を備えた規則（本明細書では、やはり「規則」と称される）を生成するための方法を示す流れ図である。テンプレート規則が、受け取られる８１０。辞書的制約を伴わないテンプレート規則８２０と、スキーマ注釈ファイル８３０とが、具体的な辞書的制約を伴う規則の作成に、用いられる８４０。この結果として、辞書的制約を伴う規則が生じる８５０。
【００２６】
規則を自動的に生成するためには、スキーマ注釈ファイル（ＳＡＦ）が用いられ得る。データベースとそのスキーマだけを用いて自動的にＳＡＦを生成させることで、データベースから何が必要であるかを学習し、データベースにおけるデータに関する質問に回答する準備ができている完全に自動化されたシステムの構築を、容易にすることが可能である。
【００２７】
図１２は、本発明のある実施形態による、自動化されたスキーマ注釈ファイル作成のための方法を示す流れ図である。スキーマ・モデル（データベース・スキーマとも称される）が、アクセスされ、解析される９１０。カラムの間のセマンティックな関係が、見つけられ得る９２０。データベース・スキーマを知っていることにより、システムは、一次的／外部的（primary/foreign）なキー関係に基づいて、相互に関係付けられるカラム名のすべてのペア（また、テンプレートからテーブルへ、およびテーブルからカラムへ）を見つけることが可能である。ある例では、規則が、「顧客が商品を買う」および「製造業者が商品を作成する」ことを提供する。入力された質問が「ジョンが商品を買う」である場合には、ジョンが顧客および製造業者である、と判断され得る。規則がない場合には、ジョンが誰なのか判断され得ない。
【００２８】
言い換え生成が、行われ得る９３０。ある例では、ＳＡＦが「被雇用者が給与を有する」を含む。強力なＮＬＰツールとしての言い換えは、「被雇用者は金を稼ぐ」、「被雇用者はドルを稼ぐ」、「被雇用者の給与」、「被雇用者給与」、または「給与を有する被雇用者」、あるいはこれらの組合せを生成することができる。言い換えは、ＳＡＦを自動的に豊かにすることにより、様々な方法で同じ概念を伝える質問にシステムが回答することを可能にする。
【００２９】
エンティティの検出は、実際には検出プロセスの副産物である結果を生じさせることが可能であり、最終的なＳＱＬクエリに含まれるべきではない。たとえば、ユーザは、「１９９９年１月２５日に顧客が買った商品の最高の価格はいくらですか」という自然言語クエリを入力する。「商品」という用語は、「顧客が商品を買う」という規則を通じて検出され、これが、Products.Product_ID dataItemの作成に至ることを可能にする。しかし、このＳＱＬクエリは、最高の価格ではなく、むしろ、商品当たりの価格を生じる可能性があり、その理由は、ＳＱＬ生成器が、product_idをGROUP BY節に自動的に挿入することがあり得るからである。そのような状況を回避するためには、焦点検出が、自然言語におけるdataItemsを、焦点項目としてマークすることが可能である。dataItemsが、フィルタも集計機能も焦点も有しない場合には、それは、ＳＱＬ生成プロセスの間、無視される可能性がある。
【００３０】
少なくとも１つの実施形態では、自動ＳＱＬ生成は、データベースのスキーマを知る必要がある。ＳＱＬ生成器は、１組のdataItemsを入力として用いることが可能であるが、ここで、各dataItemは、（TableName, ColumnName, Filter, AggregationFunction）の倍数である。データベース・スキーマを知っていて、１組のdataItemsを受け取ることにより、ＳＱＬ生成器は、結果的なＳＱＬクエリを生じる。
【００３１】
パーサ・エラーが生じることが、時にはあり得るが、多くの場合、依存関係ツリーが正しくない。パーサは、複数の結果を生じることがあり得るが、アプリケーションは、典型的には、パーサ自身によって最良と定義された、最良のパースだけを用いる。システムは、複数のパースを用いることが可能であり、その場合に、各パースは、エンティティおよび関係の抽出を訂正することに寄与することが可能である。
【００３２】
図１３および１４は、本発明のある実施形態による、自然言語クエリ（「今日旅行している被雇用者の名前は何ですか」）の構文解析を示す図である。ユーザが「被雇用者の旅行」関係を探している場合には、図１３に示されたパースがそれを有しており、他方で、図１４に示されたパースはそれを有していない。最良のパースだけが用いられる場合には（たとえば、図１４に示されたパース）、「被雇用者の旅行」の関係は検出されないのであるが、その理由は、「旅行している」というノードが、「名前」というノードに依存していて、「被雇用者」というノードには依存しないからである。すべてのパースを用いることにより、そのユーザが関心を有する特定の関係に対する正確な依存関係ツリーの断片を少なくとも１つのパースが有するときには、システムが、関係を検出することを可能にすることができる。あるパースが、関係＃１を正しく有するが関係＃２を間違って有する場合があり得るし、別のパースが、関係＃２を正しく有するが関係＃１を間違って有する場合があり得る。各パースが正しい関係＃ｉの検出に寄与する複数のパースを用いることで、複数の関係の正しい検出を達成することが可能になる。
【００３３】
図１５は、本発明のある実施形態による別の自然言語クエリ（「どの商品が、１５０ドルを超える価格を有しますか」）の構文解析を示す図である。この自然言語クエリでは、「１５０ドルを超える」が数値コンパレータ注釈器によって注釈が付され得るが、システムは、「＞１５０」というフィルタを伴う「商品が価格を有する」という関係を検出することができる。フィルタを用いることでこの関係検出の成功が可能になるのであるが、その理由は、パーサが、正しく、「１５０ドルを超える」を価格に接続し、次に、価格が、「有する」を通じて正しく「商品」に接続されたからである。
【００３４】
図１６は、本発明のある実施形態によるさらに別の自然言語クエリ（「誰が、１５０ドルを超える価格を有する商品を買ったのですか」）の構文解析を示す図である。この自然言語クエリでは、「１５０ドルを超える」が数値コンパレータ注釈器によって注釈が付され得るが、「商品が価格を有する」という関係が検出されることはないのであって、その理由は、「有する（with）」というノードが「買った」に接続されているからである（パーサのロジックは、「彼は、彼自身の金で何かを買った」である）。数値コンパレータが何らかの注釈を付した場合には（たとえば、「１５０ドルを超える」）、システムは、どの名詞にそれが接続されているかを判断することが可能になる（たとえば、この例では「価格」）。どの名詞が「価格」に接続され得るかを判断するためには、システムは、「価格」と数値コンパレータとの両方を有する名前を見つけるために、辞書的制約を伴う規則におけるすべての名称を検討することがあり得る。この規則は、あたかも、エンティティおよび関係の検出の通常のプロセスの間にそれが「始動した」かのように、用いられ得る。複数の規則の場合には、どちらの構造の方がユーザが意味したことにより近いのかを尋ねる質問が、ユーザに対して提示され得る。
【００３５】
以下に掲げる使用ケース３の例は、カールに関するものであるが、カールは、オーストラリアのＢＣＣ社で働くケーブル技術者である。ＢＣＣは、顧客から、彼らのインターネット速度に関する電話を受けた。カールが現地に到着し、信号強度の試験を行う。カールが状況について十分な評価をするためには、彼は、１）「同じ近傍の顧客から何らかの電話がなかったかどうか、この問題タイプが存在しなかったかどうか」、２）「顧客が電話をしたときに遠隔的に測定されたときの信号強度はどうだったか」、３）「回路は、いつ設置されたか」、および、４）「顧客が有する同じ回路に関して、最近、類似の問題について報告されていないか」を知る必要がある。
【００３６】
図１７は、本発明のある実施形態による、カールのスマートフォンのインタフェースを示しているが、ここで、カールは、システムに向かって、「直近の３日間にこの場所の隣人から報告された問題はありましたか」という自分の質問を、声に出して尋ねる。カールの音声による入力は、彼のスマートフォンにおける音声処理システムを用いて受け取られ、処理され得る。図１８は、本発明のある実施形態による、自然言語クエリからのキー概念の抽出を示す図である。システムは、文を解釈し、キー概念とそれらの値とを抽出して、それらの概念をデータベース・スキーマと関係付けることができる。たとえば、システムは、「あったかどうか」という語句から、カールが、以前の事例を求めており、「隣人」という語句から、カールが、現住所の周囲の住所を探すことを求めており、そして、「直近の３日間」という語句から、カールが、直近の３日についての問合せの実行を求めている、という解釈をすることができる。このように、この例では、識別されたエンティティは、「あったかどうか」、「隣人」、および「直近の３日間」という語句を含む。システムは、また、ＧＰＳデバイスまたはカールのスマートフォンにおけるそれ以外の位置特定機能から、カールの位置（たとえば、経度および緯度）を取得することも可能である。
【００３７】
図１９は、本発明のある実施形態によるＳＱＬコマンドへの翻訳を示す図である。特に、「直近の３日間にこの場所の隣人から報告された問題はありましたか」という自然言語クエリは、「SELECT customer_address, issue, location FROM reported_issues_tableWHERE distance(location, curr_loc) < 100」に翻訳される。システムは、このＳＱＬコマンドを、実行のために、データベースに送ることができる。図２０は、本発明のある実施形態による、スマートフォンのインタフェースに表示された検索結果を示している。こうして、カールは、２人の隣人が、過去３日の間に、低速の接続または接続の不存在を経験したことを見ることができる。
【００３８】
以下に掲げる使用ケース４の例は、ジョンに関するものであるが、ジョンは、米国のＡＢＣユーティリティ社で働く現場作業員である。ジョンが作業命令を受け取ると、彼は、訪問し、評価し、問題を解決するために現場に赴く。ＡＢＣユーティリティは、現地訪問の間の資産履歴データへアクセスすることの効率を改善するために、最近、メモリ内データベース管理システムを設置した。ＡＢＣユーティリティは、訪問が完了するときに、彼らの資産管理システムのデータ品質を改善することを望んでいる。ジョンが現地に到着すると、彼は、１）「回路が修理された直近の時点はいつだったか」、２）「回路に関する直近の問題は何だったか」、３）「最初に回路が設置されたのは、いつだったか」、４）「回路に関する直近の報告は何だったか」、５）「直近の修理において、何が変更されたか」を知る必要がある。ジョンが問題を修理した後に、彼は、１）「問題は解決したのか、それとも、別の同僚技術者によるフォローアップ訪問を必要とするのか」、２）「問題の根本原因は何だったのか」、そして、３）彼は、近い将来において対処を必要とする何か他の問題（極／ケーブル／樹木の剪定）に気付いたか、という情報を用いて、データベースにおける資産記録を更新することができる。
【００３９】
図２１は、本発明のある実施形態によるスマートフォンのインタフェースを示しており、ここで、ジョンは、システムに対して、「この回路が修理された直近の時点はいつですか」という質問を音声によって尋ねる。図２２は、本発明のある実施形態による、自然言語クエリからのキー概念の抽出を示す図である。システムは、文を解釈し、キー概念とそれらの値とを抽出して、それらの概念をデータベース・スキーマと関係付けることができる。たとえば、「いつ」という語句から、クエリがデータベースのスキーマにおける時間フィールドに関するものであり、「直近の時点」という語句から、ジョンは、データベースにおける回路修理に関する直近のエントリを知りたがっており、「この」という語句から、クエリは、（たとえば、ＧＰＳ経由で決定される）現在の位置に関するものであり、「回路」という語句から、クエリは、（極やケーブルではなく）回路に関して問い合わせており、「修理された」という語句から、クエリは、データベースにおけるステータス・フィールドをチェックする必要がある、ということをシステムは解釈することが可能である。このように、この例では、識別されたエンティティは、「いつ」、「直近の時点」、「この」、「回路」および「修理された」という語句を含む。システムは、また、ジョンのスマートフォンにおけるＧＰＳデバイスから、ジョンの位置（たとえば、経度および緯度）を取得することもできる。
【００４０】
図２３は、本発明のある実施形態による、ＳＱＬコマンドへの翻訳を示す図である。特に、「この回路が修理された直近の時点はいつですか」という自然言語クエリは、「SELECT circuit_name, max(date) FROM ASSET_CIRCUIT_TABLE WHERE status=“FIXED” AND location=(41.162873,-73.861525)」と翻訳される。システムは、このＳＱＬコマンドを、実行のために、データベースに送ることができる。図２４は、本発明のある実施形態による、スマートフォンのインタフェースに表示された検索結果を示している。このようにして、ジョンは、回路ＣＩＵ３２６５ＦＸが、２０１４年１月４日に、ピーター・スミスによって修理されたことを見ることができる。
【００４１】
図２５は、本発明のある実施形態によって、構造化されたデータ言語（たとえば、ＳＱＬ）クエリを自然言語クエリから作成するための方法を示す流れ図であり、図２６は、本発明のある実施形態によって、構造化されたデータ言語クエリを作成するためのシステム１６００を示す図である。図２５に示された方法は、システム１６００を用いて、行われることが可能である。インタフェース１６１０は、自然言語クエリ（たとえば、マーケティング部門の被雇用者の名前は何ですか）をユーザから受け取ることができる１５１０。本明細書で用いられる「インタフェース」という用語は、たとえば、キーボード、タッチ・スクリーン、マウス、またはマイクロフォンなどのコンピュータ・ハードウェア・デバイスを含み得る。
【００４２】
入力ポート１６２０は、問合せを受けるデータベースにおけるデータのオントロジ表現を受け取ることが可能であるが１５２０、この場合、オントロジ表現は、データベースにおけるテーブルの名称と、テーブルにおけるカラムの名称と、テーブルにおけるローの名称と、を含むことがあり得る。たとえば、オントロジ表現は、データベースに、「部門」という題名が付されたテーブルが存在することを示しており、「部門」は、部門、部長名、電話番号、郵送先住所、および電子メール・アドレスというカラムの名称を有し、マーケティング、法務、会計、広告、および人事というローの名称を有する。別の例では、オントロジ表現は、データベースに、「被雇用者」という題名が付されたテーブルが存在することを示しており、「被雇用者」は、被雇用者、被雇用者番号、開始日、部長名、生年月日、給与、および部門というカラムの名称を有し、ジョン・ドウ、ジェーン・ドウ、ジョン・スミス、およびジェーン・スミスというローの名称を有する。
【００４３】
入力ポート１６２０は、また、テンプレート規則（たとえば、root=VAR1_has_VAR2# template rule）を受け取ることが可能であるが１５３０、ここで、テンプレート規則とは、言語に依存しオントロジとは独立な言語の広く用いられる構造である。少なくとも１つの実施形態において、テンプレート規則は、第１の変数と、コネクタと、第２の変数とを含んでおり、ここで、第１の変数は目的語（名詞）であり、コネクタは動詞（たとえば、「has、有する」）または前置詞（たとえば、「in、における」）の一方を含み、第２の変数は主語（名詞）である。
【００４４】
規則生成エンジン１６３０は、データベースにおけるデータのオントロジ表現とテンプレート規則とを用いて、自然言語クエリにおけるエンティティと関係とを識別するために規則（たとえば、root=employee_has_department）を自動的に生成することができる１５４０。本明細書で用いられる「自動的に」という用語は、人間との対話なしで行為を行うこと（たとえば、その行為を行うための人間による直接的で明示的な促しなく、プロセスのステップを行うこと）を含み得る。規則生成エンジン１６３０は、インタフェース１６１０または入力ポート１６２０あるいはその両方に、接続され得る。少なくとも１つの実施形態において、規則の生成は、テンプレート規則の第１の変数を、カラムの名称のうちの１つ（たとえば、被雇用者）で置き換えること、そして、テンプレート規則の第２の変数を、カラムの名称のうちの別の１つ（たとえば、部門）で置き換えること、を含む。よって、たとえば、「root=VAR1_has_VAR2 # template rule」というテンプレート規則に対しては、「root=employee_has_department」という規則を生成するためには、「VAR1」および「VAR2」が、それぞれ、「被雇用者」および「部門」というカラムの名称で置き換えられる。
【００４５】
プロセッサ１６４０は、規則を用いて、自然言語クエリにおけるエンティティおよび関係を識別するために、規則生成エンジン１６３０に接続され得る１５５０。たとえば、「マーケティング部門の被雇用者の名前は何ですか」という自然言語クエリが与えられると、規則生成エンジンは、「被雇用者」および「部門」というエンティティと、「テーブルの名称＝被雇用者」および「テーブルの名称＝部門」という関係とを識別する。
【００４６】
クエリ生成エンジン１６５０は、構造化されたデータ言語クエリを、エンティティおよび関係から生成するために、プロセッサ１６４０に接続され得る１５６０。本明細書で用いられている「入力ポート」、「規則生成エンジン」、「プロセッサ」、および「クエリ生成エンジン」という用語は、それぞれ、たとえば、マイクロプロセッサ、中央処理装置（ＣＰＵ）、サーバ、電子データベースなどのコンピュータ・ハードウェア・デバイスを含むことがあり得る。
【００４７】
本発明の少なくとも１つの実施形態において、クエリ生成エンジン１６５０は、少なくとも１つのエンティティの類義語を、自動的に生成する。たとえば、クエリ生成エンジンは、「被雇用者」というエンティティに対して、「スタッフ」、「労働者」、および「同僚」という類義語を自動的に生成する。クエリ生成エンジンは、構造化されたデータ言語クエリを、エンティティの類義語から、生成することができる。
【００４８】
図２７は、本発明のある実施形態による、データベースに問合せをするための方法を示す流れ図であり、図２８は、本発明のある実施形態による、データベースに問合せをするためのシステム１８００を示す図である。図２７に示された方法は、システム１８００を用いて、行われることが可能である。インタフェース１８１０は、自然言語クエリをユーザから受け取ることができる１７１０。たとえば、ユーザは、モバイル・デバイスのタッチ・スクリーンを用いて、質問をタイプすることができる。
【００４９】
インタフェース１８１０に接続されたパーサ・デバイス１８２０は、自然言語クエリの複数の依存パースを生成することができる１７２０（たとえば、図１３、１４）。複数の依存パースの生成は、自然言語クエリを、複数の成分に分割することを含み得る１７２２。たとえば、「今日旅行中の被雇用者の名前は何ですか」という自然言語クエリは、「何」、「ですか」、「名前」、「の」、「被雇用者」、「旅行中」、および「今日」という７つの成分に分割される。
【００５０】
複数の依存パースの生成は、また、それらの成分のうちの各成分をそれらの成分の１つまたは複数の他の成分と接続することによって、単独の依存パースを作成することを含み得る１７２４。図１３および１４は、それぞれ、単独の依存パースを示している。図１３では、「何」と「ですか」、「ですか」と「名前」、「名前」と「の」、「の」と「被雇用者」、「被雇用者」と「旅行中」、および「旅行中」と「今日」という成分の間に、直接リンクが作成される。図１４では、「何」と「ですか」、「ですか」と「名前」、「名前」と「の」、「の」と「被雇用者」、「名前」と「旅行中」、および「旅行中」と「今日」という成分の間に、直接リンクが作成される。複数の依存パースの生成は、各成分（たとえば、名詞、動詞、副詞、形容詞）の発話の部分を識別することを含み得る。少なくとも１つの実施形態において、各成分を１つまたは複数の他の成分と接続することは、名詞、動詞、または副詞あるいはこれらの組合せ（たとえば、「被雇用者」と「旅行中」）の間に直接リンクを作成することを含む。直接リンクは、また、動詞と２つの名詞との間にも作成されることがあり得る。
【００５１】
本発明の少なくとも１つの実施形態において、自然言語クエリの複数の依存パースの生成は、自然言語クエリにおけるすべての名詞を識別すること、および、自然言語クエリにおけるすべての名詞を異なる複数の依存パースにおける自然言語クエリのすべての他の名詞と接続すること、を含み得る。名詞は、動詞を経由して、他の名詞と接続され得る。複数の依存パースの個数は、自然言語クエリにおける単語の個数よりも大きい場合があり得る。少なくとも１つの実施形態では、複数の依存パースのどれも、同一ではない。
【００５２】
プロセッサ１８３０は、パーサ・デバイス１８２０に接続され得るが、ここで、プロセッサ１８３０は、自然言語クエリにおけるエンティティおよび関係を識別するために、すべての依存パースに規則を適用することができる１７３０。本明細書で用いられる「プロセッサ」および「パーサ・デバイス」という用語は、それぞれ、たとえば、マイクロプロセッサ、中央処理装置（ＣＰＵ）などのコンピュータ・ハードウェア・デバイスを含み得る。
【００５３】
自然言語クエリにおけるエンティティおよび関係を識別するために、複数の依存パースのすべてに規則を適用することは、１つまたは複数の名詞と１つまたは複数の動詞とを有する規則を取得することを含み得る。規則の名詞が第１の複数の依存パースにおける名詞と一致するときには、第１の複数の依存パースにおける名詞が、エンティティとして識別され得る。規則の動詞が第１の複数の依存パースにおける動詞と一致するときには、第１の複数の依存パースにおける動詞が、関係として識別され得る。たとえば、「今日旅行中の被雇用者の名前は何ですか」という自然言語クエリに対し、図１３および１４に示されているパースが与えられている場合には、「employee_has_name」および「employee_travels_on_a_date」という規則が、「被雇用者の名前」および「日付」というエンティティと、「旅行」という関係とを識別するために、パースのそれぞれに適用され得る。
【００５４】
本発明の少なくとも１つの実施形態では、エンティティに接続されていない複数の依存パースのうちの１つまたは複数における修飾語が識別されるが、ここで、修飾語は、数値の比較（たとえば、価格は１００ドルよりも高い）、日付の比較（たとえば、「ウィジェットは２０１１年１月より後に購入された」）、または時間の比較（たとえば、「市場は５時よりも前に閉まる」）あるいはこれらの組合せを含む。このような場合、プロセッサ１８３０は、修飾語に添付されているエンティティを自動的に識別することができる、または、ユーザに質問を送りそのユーザに修飾語に添付されているエンティティを識別することを依頼することができる、あるいはこれらの両方をすることができる。
【００５５】
当業者によって認識されるように、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として具現化され得る。したがって、本発明の態様は、完全にハードウェア実施形態の形式を有することがあり得るし、または、すべてが、「回路」、「モジュール」、または「システム」と本明細書で一般的に称され得るソフトウェア態様とハードウェア態様とを組み合わせた実施形態の形式を有することもあり得る。さらに、本発明の態様は、コンピュータ可読プログラム・コードがその上で具現化されている１つまたは複数のコンピュータ可読媒体として具現化されたコンピュータ・プログラム製品の形式を有することもあり得る。
【００５６】
１つまたは複数のコンピュータ可読媒体の任意の組合せが、用いられることがあり得る。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読ストレージ媒体であり得る。コンピュータ可読ストレージ媒体は、たとえば、これらに限定されないが、電子、磁気、光、電磁気、赤外線、もしくは半導体のシステム、装置、またはデバイス、あるいは以上のいずれかの適切な組合せであり得る。コンピュータ可読ストレージ媒体のより具体的な例（非網羅的なリスト）は、以下、すなわち、１つまたは複数の配線を有する電気接続、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリ・メモリ（ＲＯＭ）、消去可能でプログラマブルなリード・オンリ・メモリ（ＥＰＲＯＭもしくはフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク・リード・オンリ・メモリ（ＣＤ−ＲＯＭ）、光ストレージ・デバイス、磁気ストレージ・デバイス、または以上のいずれかの適切な組合せを含む。本明細書のコンテキストでは、コンピュータ可読ストレージ媒体は、命令実行システム、命令実行装置、または命令実行デバイスによって、またはそれらとの関連で用いられるプログラムを包含すること、または記憶することが可能な、いずれかの有形の媒体であり得る。
【００５７】
コンピュータ可読信号媒体は、たとえば、ベースバンドにおいてまたは搬送波の一部としてコンピュータ可読プログラム・コードが具現化された、伝搬されるデータ信号を含むことがあり得る。そのような伝搬される信号は、電磁気的な形式、光学的な形式、またはそれらのいずれかの適切な組合せの形式を含むが、それらには限定されない、様々な形式のうちのいずれかを取り得る。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではなくても、命令実行システム、命令実行装置、または命令実行デバイスによって、またはそれらとの関連で用いられるプログラムを通信すること、伝搬すること、またはトランスポートすることが可能ないずれかのコンピュータ可読媒体であり得る。
【００５８】
コンピュータ可読媒体において具現化されたプログラム・コードは、これらには限定されないが、無線、有線、光ファイバ・ケーブル、ＲＦその他、または以上のいずれかの適切な組合せを含むいずれかの適切な媒体を用いて、伝送され得る。
【００５９】
本発明の態様に関する動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋、または類似したものなどのオブジェクト指向プログラミング言語、ならびに「Ｃ」プログラミング言語もしくは類似したプログラミング言語など、従来の手続き型プログラミング言語を含む、１つまたは複数のプログラミング言語のいずれかの組合せで書かれ得る。プログラム・コードは、全部がユーザのコンピュータ上で実行される場合、スタンドアロンのソフトウェア・パッケージとして、一部がユーザのコンピュータ上で実行される場合、一部がユーザのコンピュータ上で、一部が遠隔コンピュータ上で実行される場合、または、全部が遠隔コンピュータもしくは遠隔サーバ上で実行される場合があり得る。後者の、全部が遠隔コンピュータもしくは遠隔サーバ上で実行されるシナリオでは、その遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）もしくはワイド・エリア・ネットワーク（ＷＡＮ）を含むいずれかのタイプのネットワークを介して、ユーザのコンピュータに接続されることがあり得るし、または、接続が外部コンピュータに対してなされることもあり得る（たとえば、インターネット・サービス・プロバイダを用いて、インターネット経由で）。
【００６０】
本発明の態様は、本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品の流れ図またはブロック図あるいはその両方を参照して説明される。流れ図またはブロック図あるいはその両方の各ブロックと、流れ図またはブロック図あるいはその両方における複数のブロックの組合せとは、コンピュータ・プログラム命令によって実装され得る、ということが理解されるだろう。これらのコンピュータ・プログラム命令は、コンピュータまたは他のプログラマブルなデータ処理装置のプロセッサを介して実行される命令が、流れ図またはブロック図あるいはその両方における１つまたは複数のブロック図において特定された機能／動作を実装するための手段を作成するように、汎用コンピュータ、専用コンピュータ、または他のプログラマブルなデータ処理装置のプロセッサに提供されて、マシンを作り出すものであってよい。
【００６１】
これらのコンピュータ・プログラム命令は、また、コンピュータ可読媒体に記憶された命令が、流れ図またはブロック図あるいはその両方の１つまたは複数のブロックにおいて特定された機能／動作を実装する命令を含む製造品を生じさせるように、コンピュータ可読媒体に記憶され、コンピュータ、他のプログラマブルなデータ処理装置、または他のデバイスに特定の方式で機能するように指示することができるものであってもよい。
【００６２】
コンピュータ・プログラム命令は、また、コンピュータまたは他のプログラマブルな装置において実行される命令が、流れ図またはブロック図あるいはその両方の１つまたは複数のブロックにおいて特定された機能／動作を実装するためのプロセスを提供するように、コンピュータで実装されるプロセスを生じさせるべく、コンピュータ、他のプログラマブルなデータ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラマブルな装置、または他のデバイスにおいて一連の動作ステップを実行させるものであってもよい。
【００６３】
次に、図２９を参照すると、本発明の少なくとも１つの実施形態を実現させるための代表的なハードウェア環境が、示されている。この概略図は、本発明の少なくとも１つの実施形態による情報処理／コンピュータ・システムのハードウェア構成を示している。このシステムは、少なくとも１つのプロセッサまたは中央処理装置（ＣＰＵ）７１０を備えている。ＣＰＵ７１０は、システム・バス７１２を用いて、ランダム・アクセス・メモリ（ＲＡＭ）７１４、リード・オンリ・メモリ（ＲＯＭ）７１６、および入力／出力（Ｉ／Ｏ）アダプタ７１８など、様々なデバイスと相互接続されている。Ｉ／Ｏアダプタ７１８は、ディスク・ユニット７１１およびテープ・ドライブ７１３などの周辺デバイスと、または、システムによって読み出しが可能な他のプログラム・ストレージ・デバイスなどと、接続することが可能である。システムは、プログラム・ストレージ・デバイス上の本発明による命令を読み出すことができ、これらの命令に従って、本発明の少なくとも１つの実施形態の方法を実行する。システムは、さらに、キーボード７１５、マウス７１７、スピーカ７２４、マイクロフォン７２２またはタッチ・スクリーン・デバイス（図示せず）などの他のユーザ・インタフェース・デバイスもしくはこれらの組合せをバス７１２に接続してユーザ入力を集約する、ユーザ・インタフェース・アダプタ７１９を含む。さらに、通信アダプタ７２０が、バス７１２をデータ処理ネットワーク７２５に接続し、ディスプレイ・アダプタ７２１が、バス７１２を、たとえば、モニタ、プリンタ、または送信機などの出力デバイスとして具体化され得るディスプレイ・デバイス７２３に、接続する。
【００６４】
図における流れ図およびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態の、アーキテクチャ、機能、および動作を示している。これに関しては、流れ図またはブロック図における各ブロックは、モジュール、セグメント、またはコードの一部を表し得るのであって、これは、特定された論理機能を実装するための１つまたは複数の実行可能命令を含む。いくつかの代替的な実装形態では、ブロックで示されている機能が、図において示されているのとは異なる順序で、生じる場合もあり得ることが、留意されるべきである。たとえば、関連する機能に応じて、連続的に示されている２つのブロックが、実際には実質的に同時に実行される場合もあるし、または、これらのブロックが、時には、逆の順序で実行されることもある。また、ブロック図または流れ図あるいはその両方の各ブロック、および、ブロック図または流れ図あるいはその両方における複数のブロックの組合せは、特定された機能もしくは行為を行う専用のハードウェア・ベースのシステムによって、または、専用ハードウェアとコンピュータ命令との組合せによって、実装されることも可能である、ということも留意されるだろう。
【００６５】
本開示はクラウド・コンピューティングに関する詳細な説明を含むが、本明細書で述べられている教示内容の実装は、クラウド・コンピューティング環境に限定されないことは、あらかじめ理解される。むしろ、本発明の実施形態は、現時点で知られているまたは今後開発されるいずれかの他のタイプのコンピューティング環境と共に、実装され得る。
【００６６】
クラウド・コンピューティングとは、最小限の管理努力による、またはサービスのプロバイダとの最小限の対話による、迅速にプロビジョニングおよびリリースされ得るように設定可能なコンピューティング・リソース（たとえば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス）の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするための、サービス配信のモデルである。このクラウド・モデルは、少なくとも５つの特徴、少なくとも３つのサービス・モデル、および少なくとも４つの展開モデルを含み得る。
【００６７】
特徴は、次の通りである。
オンデマンド・セルフサービス：クラウド消費者は、必要に応じて、自動的に、サービスのプロバイダとの人的な対話を必要とすることなく、サーバ時間やネットワーク・ストレージなどのコンピューティング能力を、一方向的に、プロビジョニングすることが可能である。
幅広いネットワーク・アクセス：能力は、ネットワークを介して利用可能であって、異種シン・クライアントまたはシック・クライアントのプラットフォーム（たとえば、携帯電話、ラップトップ、およびＰＤＡ）による使用を促進する標準的なメカニズムを通じて、アクセスされる。
リソース・プーリング：プロバイダのコンピューティング・リソースは、マルチテナント・モデルを用いる複数の消費者に役立つようにプールされ、異なる複数の物理および仮想リソースが、需要に従って、動的に割り当てられ、再度割り当てられる。消費者は、一般的には、提供されるリソースの正確な位置に関しては制御も知識も有していないが、より高い抽象化レベル（たとえば、国、州、またはデータセンタ）における位置指定が可能であり得るという点で、ある意味では、位置の独立性が存在する。
迅速な弾力性：能力は迅速かつ弾力的に、場合によっては自動的にプロビジョニングされて、素早くスケールアウトし、迅速にリリースされて素早くスケールインすることが可能である。消費者にとっては、プロビジョニングのために利用可能な能力が、多くの場合に限定されないように思えるのであって、任意の量を任意の時点で購入することができる。
測定されるサービス：クラウド・システムは、サービスのタイプ（たとえば、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント）に適した何らかの抽象化レベルで計測能力を活用することにより、リソースの利用を自動的に制御および最適化する。リソースの利用は、監視、制御、および報告されることが可能であり、利用されるサービスのプロバイダと消費者の双方にとっての透明性が、もたらされる。
【００６８】
サービス・モデルは以下の通りである。
ソフトウェア・アズ・ア・サービス（ＳａａＳ）：消費者に提供される能力は、クラウド・インフラストラクチャ上で動作するプロバイダのアプリケーションを用いることである。これらのアプリケーションは、ウェブ・ブラウザなどのシン・クライアント・インタフェースを介して、様々なクライアント・デバイスからアクセスが可能である（たとえば、ウェブベースの電子メール）。消費者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、さらには個々のアプリケーション能力も含め、基礎となるクラウド・インフラストラクチャを管理も制御もしないのであるが、限定的なユーザ特有のアプリケーションの構成設定については、例外がある可能性がある。
プラットフォーム・アズ・ア・サービス（ＰａａＳ）：消費者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを用いて作成された、消費者によって作成または取得されたアプリケーションを、クラウド・インフラストラクチャ上に展開することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含め、基礎となるクラウド・インフラストラクチャを管理も制御もしないのであるが、展開されたアプリケーションに対する制御と、おそらくはアプリケーション・ホスティング環境の構成に対する制御とを有する。
インフラストラクチャ・アズ・ア・サービス（ＩａａＳ）：消費者に提供される能力は、処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースをプロビジョニングすることであり、この場合に、消費者は、オペレーティング・システムおよびアプリケーションを含み得るいずれかのソフトウェアを展開および実行することができる。消費者は、基礎となるクラウド・インフラストラクチャを管理も制御もしないのであるが、オペレーティング・システム、ストレージ、展開されたアプリケーションに対する制御と、おそらくは、精選されたネットワーキング・コンポーネント（たとえばホスト・ファイアウォール）の限られた制御とを有する。
【００６９】
展開モデルは、次の通りである。
プライベート・クラウド：クラウド・インフラストラクチャは、ある組織のためだけに運用される。クラウド・インフラストラクチャは、この組織または第三者によって、管理されることが可能であり、当該施設に存在する場合、または、当該施設の外に存在する場合があり得る。
コミュニティ・クラウド：クラウド・インフラストラクチャは、いくつかの組織によって共有され、共有される利益（たとえば、ミッション、セキュリティ要件、ポリシ、およびコンプライアンス考慮事項）を有する特定のコミュニティをサポートする。クラウド・インフラストラクチャは、この組織または第三者によって、管理されることが可能であり、当該施設に存在する場合、または、当該施設の外に存在する場合があり得る。
パブリック・クラウド：クラウド・インフラストラクチャは、一般大衆または大規模な業界団体にとって利用可能になっており、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド：クラウド・インフラストラクチャは、２つ以上のクラウド（プライベート、コミュニティ、またはパブリック）の複合物であって、これらのクラウドは、独自のエンティティのままであるが、データおよびアプリケーションの可搬性を許容する標準化されたまたはプロプラエタリな技術によって、相互に結合されている（たとえば、複数のクラウドの間の負荷を平衡させるための、クラウド・バースティング）。
【００７０】
クラウド・コンピューティング環境は、サービス指向であって、ステートレス性、低結合、モジュール性、およびセマンティックな相互運用性に焦点が置かれている。クラウド・コンピューティングの中心には、相互接続されたノードのネットワークを含むインフラストラクチャが存在する。
【００７１】
次に図３０を参照すると、クラウド・コンピューティング・ノードの一例の概略図が示されている。クラウド・コンピューティング・ノード１０は、適切なクラウド・コンピューティング・ノードの単なる一例であり、本明細書に記載された本発明の実施形態の使用または機能の範囲については、どのような限定を示唆することも意図されていない。いずれにせよ、クラウド・コンピューティング・ノード１０は、前述の機能のいずれかと共に実装されること、または前述の機能のいずれかを行うこと、あるいはその両者が可能である。
【００７２】
クラウド・コンピューティング・ノード１０には、コンピュータ・システム／サーバ１２が存在しており、コンピュータ・システム／サーバ１２は、多数の他の汎用もしくは専用のコンピューティング・システム環境または構成と共に動作する。コンピュータ・システム／サーバ１２と共に用いられるのに適切であり得る周知のコンピューティング・システム、環境、または構成、あるいはそれらの組合せの例には、これらに限定されることはないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサベースのシステム、セット・トップ・ボックス、プログラマブルな家電製品、ネットワークＰＣ、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および、これらのシステムまたはデバイスのいずれかを含む分散型クラウド・コンピューティング環境など、が含まれる。
【００７３】
コンピュータ・システム／サーバ１２は、プログラム・モジュールなど、コンピュータ・システムによって実行されるコンピュータ・システム実行可能な命令の一般的なコンテキストで、説明され得る。一般に、プログラム・モジュールは、特定のタスクを行うかまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含む場合があり得る。コンピュータ・システム／サーバ１２は、分散型クラウド・コンピューティング環境で実現されることがあり、その場合、タスクは、通信ネットワークを介してリンクされたリモート処理デバイスによって、行われる。分散型クラウド・コンピューティング環境では、プログラム・モジュールは、メモリ・ストレージ・デバイスを含むローカルとリモートとの両方のコンピュータ・システム・ストレージ媒体に置かれる場合があり得る。
【００７４】
図３０に示されるように、クラウド・コンピューティング・ノード１０におけるコンピュータ・システム／サーバ１２は、汎用コンピューティング・デバイスの形式で示されている。コンピュータ・システム／サーバ１２のコンポーネントは、これらに限定されることはないが、１つもしくは複数のプロセッサまたは処理ユニット１６と、システム・メモリ２８と、システム・メモリ２８を含む様々なシステム・コンポーネントをプロセッサ１６に結合するバス１８と、を含み得る。
【００７５】
バス１８は、様々なバス・アーキテクチャのいずれかを用いる、メモリ・バスまたはメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、およびプロセッサまたはローカル・バスを含むいくつかのタイプのバス構造のいずれかの１つまたは複数を表す。限定ではなく例であるが、このようなアーキテクチャは、ＩＳＡ（Industry Standard Architecture）バス、ＭＣＡ（MicroChannel Architecture）バス、ＥＩＳＡ（Enhanced ISA）バス、ＶＥＳＡ（Video Electronics Standards Association）ローカル・バス、およびＰＣＩ（Peripheral Component Interconnects）バスを含む。
【００７６】
コンピュータ・システム／サーバ１２は、典型的に、様々なコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム／サーバ１２からアクセス可能な任意の利用可能な媒体であり得るが、揮発性および不揮発性、取り外し可能および取り外し不可能な媒体、の両方を含む。
【００７７】
システム・メモリ２８は、ランダム・アクセス・メモリ（ＲＡＭ）３０またはキャッシュ・メモリ３２あるいはその両方など、揮発性メモリの形式のコンピュータ・システム可読媒体を含むことが可能である。コンピュータ・システム／サーバ１２は、さらに、他の取り外し可能／取り外し不可能、揮発性／不揮発性のコンピュータ・システム・ストレージ媒体を含むこともあり得る。単なる例であるが、取り外し不可能で不揮発性の磁気媒体（図示されておらず、典型的には「ハード・ドライブ」と称される）に対し、読み取りおよび書き込みをするために、ストレージ・システム３４が提供されることがあり得る。図示されていないが、取り外し可能で不揮発性の磁気ディスク（たとえば「フロッピ・ディスク（Ｒ）」）に対して、読み取りおよび書き込みをするための磁気ディスク・ドライブと、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、または他の光学媒体など、取り外し可能で不揮発性の光学ディスクに対して、読み取りまたは書き込みをするための光学ディスク・ドライブとが、提供されることがあり得る。このような場合には、各それぞれが、１つまたは複数のデータ媒体インタフェースによって、バス１８に接続され得る。後でさらなる図示および説明がなされるように、メモリ２８は、本発明の実施形態の機能を実行するように構成された１組の（たとえば少なくとも１つの）プログラム・モジュールを有する少なくとも１つのプログラム製品を含むことがあり得る。
【００７８】
例示であって限定ではないが、オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データに加えて、１組の（少なくとも１つの）プログラム・モジュール４２を有するプログラム／ユーティリティ４０が、メモリ２８に、記憶されることがあり得る。オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データ、またはこれらの何らかの組合せのそれぞれが、ネットワーキング環境のある実装形態を含むことがあり得る。プログラム・モジュール４２は、一般に、本明細書に記載された本発明の実施形態の、機能または方法あるいはその両方を、実行する。
【００７９】
コンピュータ・システム／サーバ１２は、また、キーボード、ポインティング・デバイス、ディスプレイ２４などの１つもしくは複数の外部デバイス１４、ユーザがコンピュータ・システム／サーバ１２と対話することを可能にする１つもしくは複数のデバイス、または、コンピュータ・システム／サーバ１２が１つもしくは複数の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス（たとえば、ネットワーク・カード、モデムなど）、あるいはこれらの組合せと、通信することがあり得る。このような通信は、入力／出力（Ｉ／Ｏ）インタフェース２２を経由して、生じ得る。さらにまた、コンピュータ・システム／サーバ１２は、ネットワーク・アダプタ２０を経由して、ローカル・エリア・ネットワーク（ＬＡＮ）、一般的なワイド・エリア・ネットワーク（ＷＡＮ）、または公衆ネットワーク（たとえばインターネット）、あるいはそれらの組合せなど、１つもしくは複数のネットワークと通信することが可能である。示されているように、ネットワーク・アダプタ２０は、バス１８を経由して、コンピュータ・システム／サーバ１２の他のコンポーネントと通信する。図示されていないけれども、他のハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方が、コンピュータ・システム／サーバ１２と共に用いられる場合があり得る、ということが理解されるべきである。例としては、これらに限定されないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、およびデータ・アーカイバル・ストレージ・システムなどが含まれる。
【００８０】
次に図３１を参照すると、例証のためのクラウド・コンピューティング環境５０が図示されている。図示のように、クラウド・コンピューティング環境５０は、１つまたは複数のクラウド・コンピューティング・ノード１０を含んでおり、クラウド消費者によって用いられるローカル・コンピューティング・デバイスである、たとえば、パーソナル・デジタル・アシスタント（ＰＤＡ）もしくは携帯電話５４Ａ、デスクトップ・コンピュータ５４Ｂ、ラップトップ・コンピュータ５４Ｃ、または自動車コンピュータ・システム５４Ｎ、あるいはそれらの組合せなどが、クラウド・コンピューティング・ノード１０と通信することができる。ノード１０は、相互に通信することができる。これらは、前述されたようなプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、もしくはハイブリッド・クラウド、またはこれらの組合せなど、１つまたは複数のネットワークにおいて、物理的または仮想的に、グループ化されることがあり得る（図示せず）。これにより、クラウド・コンピューティング環境５０が、クラウド消費者がリソースをローカル・コンピューティング・デバイス上で維持する必要のないサービスとして、インフラストラクチャ、プラットフォーム、またはソフトウェア、あるいはそれらの組合せを提示することが、可能になる。図３１に示されるコンピューティング・デバイス５４Ａ〜Ｎのタイプは例証に過ぎないことが意図されており、そして、コンピューティング・ノード１０およびクラウド・コンピューティング環境５０は、任意のタイプのネットワークまたはネットワーク対応可能な接続あるいはその両方を介して（たとえば、ウェブ・ブラウザを用いて）、任意のタイプのコンピュータ化されたデバイスと通信できる、ということを理解されたい。
【００８１】
次に図３２を参照すると、クラウド・コンピューティング環境５０（図３１）によって提供される１組の機能的抽象化レイヤが示されている。図３２に示されるコンポーネント、レイヤ、および機能は例証に過ぎないことが意図されており、本発明の実施形態はこれらに限定されない、ということが、あらかじめ理解されるべきである。図示のように、以下のレイヤおよび対応する機能が提供される。
【００８２】
ハードウェアおよびソフトウェア・レイヤ６０は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例は、メインフレーム６１、ＲＩＳＣ（縮小命令セット・コンピュータ）アーキテクチャ・ベースのサーバ６２、サーバ６３、ブレード・サーバ６４、ストレージ・デバイス６５、ならびにネットワークおよびネットワーキング・コンポーネント６６を含む。いくつかの実施形態において、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア６７およびデータベース・ソフトウェア６８を含む。
【００８３】
仮想化レイヤ７０は、仮想エンティティの以下の例がそこから提供され得る抽象化レイヤを提供するのであって、すなわち、仮想サーバ７１、仮想ストレージ７２、仮想プライベート・ネットワークを含む仮想ネットワーク７３、仮想アプリケーションおよびオペレーティング・システム７４、ならびに仮想クライアント７５、が提供され得る。
【００８４】
ある例では、管理レイヤ８０が、以下に述べる機能を提供し得る。リソース・プロビジョニング８１は、クラウド・コンピューティング環境の内部でタスクを実行するのに用いられるコンピューティング・リソースおよび他のリソースの動的な調達を提供する。計測および価格設定８２は、クラウド・コンピューティング環境の内部でリソースが利用されるのに伴うコストの追跡と、これらのリソースの消費に対する課金または請求書発行とを提供する。ある例では、これらのリソースは、アプリケーション・ソフトウェアのライセンスを含む場合があり得る。セキュリティは、クラウド消費者およびタスクに対する識別子の検証、ならびに、データおよび他のリソースのための保護を提供する。ユーザ・ポータル８３は、クラウド・コンピューティング環境へのアクセスを、消費者およびシステム管理者に提供する。サービス・レベル管理８４は、必要とされるサービス・レベルが満たされるように、クラウド・コンピューティング・リソースの配分および管理を提供する。サービス・レベル・アグリーメント（ＳＬＡ）プランニングおよび履行８５は、ＳＬＡに従って、将来において必要とされることが予期されるクラウド・コンピューティング・リソースの事前構成および調達を提供する。
【００８５】
作業負荷レイヤ９０は、それに対してクラウド・コンピューティング環境が用いられ得る機能の例を提供する。このレイヤから提供され得る作業負荷および機能の例は、マッピングおよびナビゲーション９１、ソフトウェア開発およびライフサイクル管理９２、仮想教室教育の配信９３、データ・アナリティクスの処理９４、トランザクション処理９５、ならびに、認知的考慮に基づくエンハンスト・ｅメールのリターン・レシート９６が含まれる。
【００８６】
本明細書で用いられる用語は、特定の実施形態を記述するという目的だけを有しており、本発明を限定することは意図されていない。本明細書では、単数形「a」、「an」、および「the」は、コンテキストが明確にそうでないと示さない限り、複数形も含むことが意図されている。さらに、基礎となる用語（root terms）「含む、有する」（「include」または「have」あるいはその両方）は、本明細書で用いられるときには、述べられた特徴、整数、ステップ、動作、要素、またはコンポーネント、あるいはそれらの組合せの存在を特定するが、少なくとも１つの他の特徴、整数、ステップ、動作、要素、コンポーネント、またはこれらのグループ、あるいはそれらの組合せの存在または追加を排除しない、ということも、理解されるであろう。
【００８７】
添付の特許請求の範囲におけるすべてのミーンズ・プラス・ファンクション要素の対応する構造、材料、行為、および均等物は、具体的に請求される他の特許請求された要素と組み合わせて機能を実行するための任意の構造または材料を含むことが意図されている。本発明に関する説明は、例証および説明という目的のために提示されているのであって、網羅的であること、または、開示された形式の本発明に限定されることは、意図されていない。当業者には、本発明の範囲および思想から逸脱することのない、多くの変更および変形が明らかであろう。実施形態は、本発明の原理と実際の応用との最良の説明を行うために、そして、他の当業者が、本発明を、想定されている特定の使用に適した様々な変更を伴う様々な実施形態として理解することを可能にするように、選択され説明されたものである。
【図１】
0006736173.tif 000002
【図２】
0006736173.tif 000003
【図３】
0006736173.tif 000004
【図４】
0006736173.tif 000005
【図５】
0006736173.tif 000006
【図６】
0006736173.tif 000007
【図７】
0006736173.tif 000008
【図８】
0006736173.tif 000009
【図９】
0006736173.tif 000010
【図１０】
0006736173.tif 000011
【図１１】
0006736173.tif 000012
【図１２】
0006736173.tif 000013
【図１３】
0006736173.tif 000014
【図１４】
0006736173.tif 000015
【図１５】
0006736173.tif 000016
【図１６】
0006736173.tif 000017
【図１７】
0006736173.tif 000018
【図１８】
0006736173.tif 000019
【図１９】
0006736173.tif 000020
【図２０】
0006736173.tif 000021
【図２１】
0006736173.tif 000022
【図２２】
0006736173.tif 000023
【図２３】
0006736173.tif 000024
【図２４】
0006736173.tif 000025
【図２５】
0006736173.tif 000026
【図２６】
0006736173.tif 000027
【図２７】
0006736173.tif 000028
【図２８】
0006736173.tif 000029
【図２９】
0006736173.tif 000030
【図３０】
0006736173.tif 000031
【図３１】
0006736173.tif 000032
【図３２】
0006736173.tif 000033