(58)【調査した分野】(Int.Cl.,DB名)
情報ソース言語の候補を決定することが、前記推定されるトピックまたは地域を取出しキーとして、トピック−言語テーブルと地域−言語テーブルとのうちの少なくとも一方を参照することによって、情報ソース言語の候補を決定することを含む、請求項1または2に記載のコンピュータ実装方法。
情報ソース言語の候補を決定することが、前記質問に含まれる単語のカテゴリからの複数の単語が、前記質問に関係する推定されるトピックまたは地域としてそれぞれ得られた場合に、複数の情報ソース言語候補を決定することと、前記トピック−言語テーブルまたは前記地域−言語テーブルにおける前記推定されるトピックまたは地域に関係する言語としての、各情報ソース言語候補の出現頻度に基づいて、前記複数の情報ソース言語候補をランク付けすることとを含む、請求項4に記載のコンピュータ実装方法。
情報ソースの情報ソース言語を選択するためのコンピュータ・システムであって、プロセッサと、プログラム・コードを記憶したメモリとを備え、前記プログラム・コードが、前記プロセッサに、
質問を受け取ることと、
前記質問を分析して、前記質問に含まれる少なくとも1つの単語のカテゴリ情報を得ることと、
前記質問に関係する推定されるトピックまたは地域として、前記カテゴリ情報に含まれる単語を得ることと、
前記推定されるトピックまたは地域を使用して情報ソース言語の候補を決定することと、
前記情報ソース言語、およびドキュメントを取り出すための対応する情報ソースを選択して、前記質問の回答を生成することと
を実行させ、
情報ソース言語の候補を決定することが、
前記推定されるトピックまたは地域を含むドキュメントを、異なる複数の言語の情報ソース内で検索することと、
各情報ソースからの取り出されたドキュメントの平均数に応じて、情報ソース言語の前記候補を決定することと
を含むコンピュータ・システム。
【発明を実施するための形態】
【0016】
次に、本発明を特定の実施形態に関して述べる。しかし、本発明は、述べる実施形態に限定されるべきではない。本開示はクラウド・コンピューティングに関する詳細な記述を含むが、本明細書で述べられる教示の実現はクラウド・コンピューティング環境に限定されないことを、あらかじめ理解されたい。そうではなく、本発明の実施形態は、現在知られているかまたは後に開発される他の任意のタイプのコンピューティング環境と共に実現することができる。
【0017】
クラウド・コンピューティングは、最小限の管理労力で、またはサービスのプロバイダとの最小限の対話で迅速にプロビジョニングできリリースできる構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、バーチャル・マシン、およびサービス)の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするための、サービス送達のモデルである。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つの展開モデルを含むことができる。
【0018】
特徴は次のとおりである。
オンデマンド・セルフサービス:クラウド消費者は、必要に応じて、サービスのプロバイダとの人的な対話を必要とすることなく自動的に、サーバ時間やネットワーク・ストレージなどのコンピューティング能力を単方向にプロビジョニングすることができる。
【0019】
幅広いネットワーク・アクセス:能力はネットワークを介して利用可能であり、能力はまた、異種シンまたはシック・クライアント・プラットフォーム(例えば、モバイルフォン、ラップトップ、およびPDA)による使用を促進する標準的なメカニズムを介してアクセスされる。
【0020】
リソース・プーリング:プロバイダのコンピューティング・リソースは、マルチテナント・モデルを使用する複数の消費者に役立つようにプールされ、異なる物理および仮想リソースが、需要に従って動的に割当ておよび再割当てされる。消費者は一般に、提供されるリソースの正確な場所に関して制御も知識も有しないが、より高い抽象化レベル(例えば、国、州、またはデータセンタ)で場所を指定することはできる場合があるという点で、ある意味での場所独立性がある。
【0021】
迅速な弾力性:能力を迅速かつ弾力的に、場合によっては自動的にプロビジョニングして素早くスケールアウトし、迅速に解放して素早くスケールインすることができる。消費者にとっては、プロビジョニングのために利用可能な能力はしばしば無限に見え、いつでもどんな量でも購入することができる。
【0022】
測定されるサービス:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント)に適した何らかの抽象化レベルで計測能力を活用することによって、リソース使用を自動的に制御および最適化する。リソース使用は、監視、制御、および報告することができ、これにより、利用されるサービスのプロバイダと消費者の両方にとってのトランスペアレンシがもたらされる。
【0023】
サービス・モデルは次のとおりである。
ソフトウェア・アズ・ア・サービス(SaaS):消費者に提供される能力は、クラウド・インフラストラクチャ上で稼働しているプロバイダのアプリケーションを使用することである。アプリケーションへのアクセスは、ウェブ・ブラウザなどのシン・クライアント・インタフェースを介して様々なクライアント・デバイスから可能である(例えば、ウェブベースの電子メール)。消費者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、さらには個々のアプリケーション能力をも含めた、基礎をなすクラウド・インフラストラクチャを管理することも制御することもしないが、限られたユーザ特有アプリケーション構成設定については例外である可能性がある。
【0024】
プラットフォーム・アズ・ア・サービス(PaaS):消費者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、消費者によって作成または取得されたアプリケーションを、クラウド・インフラストラクチャ上に展開することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含めた、基礎をなすクラウド・インフラストラクチャを管理することも制御することもしないが、展開されたアプリケーションに対する制御、およびおそらくはアプリケーション・ホスティング環境構成に対する制御を有する。
【0025】
インフラストラクチャ・アズ・ア・サービス(IaaS):消費者に提供される能力は、処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースをプロビジョニングすることであり、この場合、消費者は、オペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを展開および実行することができる。消費者は、基礎をなすクラウド・インフラストラクチャを管理することも制御することもしないが、オペレーティング・システム、ストレージ、展開されたアプリケーションに対する制御、およびおそらくは、精選されたネットワーキング・コンポーネント(例えばホスト・ファイアウォール)の限られた制御を有する。
【0026】
展開モデルは次のとおりである。
プライベート・クラウド:クラウド・インフラストラクチャは、組織のためにのみ運用され、この組織またはサード・パーティによって管理されてよく、構内または構外に存在してよい。
【0027】
コミュニティ・クラウド:クラウド・インフラストラクチャは、いくつかの組織によって共有され、共有の関心事(例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンス考慮事項)を有する特定のコミュニティをサポートし、これらの組織またはサード・パーティによって管理されてよく、構内または構外に存在してよい。
【0028】
パブリック・クラウド:クラウド・インフラストラクチャは、一般大衆または大規模な業界団体が利用できるようにされ、クラウド・サービスを販売する組織によって所有される。
【0029】
ハイブリッド・クラウド:クラウド・インフラストラクチャは、2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合物である。これらのクラウドは、独自のエンティティのままだが、データおよびアプリケーションに可搬性を持たせる標準化された技術またはプロプラエタリ技術によって1つにまとめられる(例えば、クラウド間の負荷平衡のためのクラウド・バースティング)。
【0030】
クラウド・コンピューティング環境はサービス指向であり、その焦点は、ステートレス性、低結合、モジュール性、およびセマンティックな相互運用性に合わせられる。クラウド・コンピューティングの中心には、相互接続されたノードのネットワークを構成するインフラストラクチャがある。
【0031】
次に
図1を参照すると、クラウド・コンピューティング・ノードの例の概略図が示されている。クラウド・コンピューティング・ノード10は、適切なクラウド・コンピューティング・ノードの一例に過ぎず、本明細書に記載の本発明の実施形態の使用または機能の範囲についてどのような限定を示唆することも意図しない。
【0032】
ともかく、クラウド・コンピューティング・ノード10は、前述の機能のいずれかと共に実装されること、または前述の機能のいずれかを実施すること、あるいはその両方が可能である。クラウド・コンピューティング・ノード10中には、コンピュータ・システム/サーバ12があり、このコンピュータ・システム/サーバ12は、他の多くの汎用または専用コンピューティング・システム環境または構成でも動作する。
【0033】
コンピュータ・システム/サーバ12と共に使用するのに適する可能性のある周知のコンピューティング・システム、環境、または構成、あるいはそれらのすべての例としては、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサベースのシステム、セット・トップ・ボックス、プログラム可能な消費者電子機器、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および、これらのシステムまたはデバイスのいずれかを含む分散クラウド・コンピューティング環境などが挙げられるが、これらに限定されない。
【0034】
コンピュータ・システム/サーバ12は、プログラム・モジュールなど、コンピュータ・システムによって実行されるコンピュータ・システム実行可能命令の一般的なコンテキストで記述することができる。一般に、プログラム・モジュールは、特定のタスクを実施するかまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含む場合がある。コンピュータ・システム/サーバ12は、分散クラウド・コンピューティング環境で実践されてよく、その場合、タスクは、通信ネットワークを介してリンクされたリモート処理デバイスによって実施される。分散クラウド・コンピューティング環境では、プログラム・モジュールは、メモリ・ストレージ・デバイスを含めたローカルとリモートの両方のコンピュータ・システム・ストレージ媒体中に位置する場合がある。
【0035】
図1に示されるように、クラウド・コンピューティング・ノード10中のコンピュータ・システム/サーバ12は、汎用コンピューティング・デバイスの形で示されている。コンピュータ・システム/サーバ12のコンポーネントは、1つまたは複数のプロセッサまたは処理ユニット16と、システム・メモリ28と、システム・メモリ28を含めた様々なシステム・コンポーネントをプロセッサ16に結合するバス18と、を含むことができるが、これらに限定されない。
【0036】
バス18は、様々なバス・アーキテクチャのいずれかを使用する、メモリ・バスまたはメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、およびプロセッサまたはローカル・バスを含めた、いくつかのタイプのバス構造のいずれかの1つまたは複数を表す。限定ではなく例として、このようなアーキテクチャは、ISA(Industry Standard Architecture)バス、MCA(MicroChannel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカル・バス、およびPCI(Peripheral Component Interconnects)バスを含む。
【0037】
コンピュータ・システム/サーバ12は通常、様々なコンピュータ・システム可読媒体を備える。このような媒体は、コンピュータ・システム/サーバ12からアクセス可能な任意の利用可能な媒体とすることができ、揮発性と不揮発性、取外し可能と取外し不能の両方の媒体を含む。
【0038】
システム・メモリ28は、ランダム・アクセス・メモリ(RAM)30またはキャッシュ・メモリ32あるいはその両方など、揮発性メモリの形のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ12はさらに、他の取外し可能/取外し不能、揮発性/不揮発性コンピュータ・システム・ストレージ媒体を備えることもできる。例に過ぎないが、取外し不能な不揮発性の磁気媒体(図示せず。典型的には「ハード・ドライブ」と呼ばれる)に対して読取りおよび書込みするために、ストレージ・システム34が設けられてよい。図示されていないが、取外し可能な不揮発性の磁気ディスク(例えば「フロッピー(R)・ディスク」)に対して読取りおよび書込みするための磁気ディスク・ドライブと、CD−ROM、DVD−ROM、または他の光学媒体など、取外し可能な不揮発性の光学ディスクに対して読取りまたは書込みするための光学ディスク・ドライブとが設けられてよい。このような事例では、各ドライブは、1つまたは複数のデータ媒体インタフェースによってバス18に接続されてよい。後でさらに図示および記述されるように、メモリ28は、本発明の実施形態の機能を遂行するように構成された1組の(例えば少なくとも1つの)プログラム・モジュールを有する少なくとも1つのプログラム製品を含むことができる。
【0039】
1組の(例えば少なくとも1つの)プログラム・モジュール42を有するプログラム/ユーティリティ40が、限定ではなく例としてメモリ28に記憶されてよく、また、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データも記憶されてよい。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データ、またはこれらの何らかの組合せはそれぞれ、ネットワーキング環境の一実装形態を含むことができる。プログラム・モジュール42は一般に、本明細書に記載の本発明の実施形態の機能または方法あるいはその両方を遂行する。
【0040】
コンピュータ・システム/サーバ12はまた、1つまたは複数の外部デバイス14と通信することができる。外部デバイス14は、キーボード、ポインティング・デバイス、ディスプレイ24など;ユーザがコンピュータ・システム/サーバ12と対話できるようにする1つもしくは複数のデバイス;または、コンピュータ・システム/サーバ12が1つもしくは複数の他のコンピューティング・デバイスと通信できるようにする任意のデバイス(例えば、ネットワーク・カード、モデムなど);あるいはそれらのすべて、などである。このような通信は、入出力(I/O)インタフェース22を介して行うことができる。さらに、コンピュータ・システム/サーバ12は、ネットワーク・アダプタ20を介して、ローカル・エリア・ネットワーク(LAN)、一般的なワイド・エリア・ネットワーク(WAN)、または公衆ネットワーク(例えばインターネット)、あるいはそれらのすべてなど、1つまたは複数のネットワークと通信することができる。図示のように、ネットワーク・アダプタ20は、バス18を介して、コンピュータ・システム/サーバ12の他のコンポーネントと通信する。図示されていないが、他のハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方が、コンピュータ・システム/サーバ12と共に使用されてもよいことを理解されたい。例としては、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイバル・ストレージ・システムなどが挙げられるが、これらに限定されない。
【0041】
次に
図2を参照すると、例証的なクラウド・コンピューティング環境50が描かれている。図示のように、クラウド・コンピューティング環境50は、1つまたは複数のクラウド・コンピューティング・ノード10を含み、クラウド消費者によって使用されるローカル・コンピューティング・デバイス、例えば、パーソナル・ディジタル・アシスタント(PDA)もしくはセルラー電話機54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、あるいはそれらのすべてなどが、クラウド・コンピューティング・ノード10と通信することができる。ノード10は、相互に通信することができる。これらは、前述のようなプライベート、コミュニティ、パブリック、もしくはハイブリッド・クラウド、またはこれらの組合せなど、1つまたは複数のネットワーク中で、物理的または仮想的にグループ化されてよい(図示せず)。これにより、クラウド・コンピューティング環境50は、クラウド消費者がリソースをローカル・コンピューティング・デバイス上で維持する必要のない、インフラストラクチャ、プラットフォーム、またはソフトウェア・アズ・ア・サービス、あるいはそれらのすべてを提供することができる。
図2に示されるコンピューティング・デバイス54A〜Nのタイプは例証に過ぎないものとし、コンピューティング・ノード10およびクラウド・コンピューティング環境50は、任意のタイプのネットワークまたはネットワーク対応可能接続あるいはその両方を介して(例えばウェブ・ブラウザを使用して)、任意のタイプのコンピュータ化デバイスと通信することができることを理解されたい。
【0042】
次に
図3を参照すると、クラウド・コンピューティング環境50(
図2)によって提供される1組の機能的抽象化レイヤが示されている。
図3に示されるコンポーネント、レイヤ、および機能は例証に過ぎないものとし、本発明の実施形態はこれらに限定されないことを、あらかじめ理解されたい。図示のように、以下のレイヤおよび対応する機能が提供される。
【0043】
ハードウェアおよびソフトウェア・レイヤ60は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例としては、メインフレーム、RISC(縮小命令セット・コンピュータ)アーキテクチャベースのサーバ、ストレージ・デバイス、ネットワーク、およびネットワーキング・コンポーネントが挙げられる。いくつかの実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェアを含む。仮想化レイヤ62は、仮想エンティティの以下の例がそこから提供され得る抽象化レイヤを提供する。すなわち、仮想サーバ;仮想ストレージ;仮想プライベート・ネットワークを含む仮想ネットワーク;仮想アプリケーションおよびオペレーティング・システム;ならびに仮想クライアントが提供され得る。
【0044】
一例では、管理レイヤ64は、以下に述べる機能を提供することができる。リソース・プロビジョニングは、クラウド・コンピューティング環境内でタスクを実施するのに利用されるコンピューティング・リソースおよび他のリソースの動的な調達を提供する。計測および価格設定は、クラウド・コンピューティング環境内でリソースが利用されるのに伴うコスト追跡と、これらのリソースの消費に対する課金または送り状送付とを提供する。一例では、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含む場合がある。セキュリティは、クラウド消費者およびタスクに対する識別検証、ならびに、データおよび他のリソースのための保護を提供する。ユーザ・ポータルは、クラウド・コンピューティング環境へのアクセスを消費者およびシステム管理者に提供する。サービス・レベル管理は、必要とされるサービス・レベルが満たされるように、クラウド・コンピューティング・リソース割振りおよび管理を提供する。サービス・レベル・アグリーメント(SLA)プランニングおよび履行は、SLAに従って、将来必要とされることが予期されるクラウド・コンピューティング・リソースの事前構成および調達を提供する。
【0045】
ワークロード・レイヤ66は、クラウド・コンピューティング環境を利用できる対象となる機能の例を提供する。このレイヤから提供できるワークロードおよび機能の例としては、マッピングおよびナビゲーション、ソフトウェア開発およびライフサイクル管理、仮想教室教育の送達、データ分析処理、トランザクション処理、ならびに、本発明の実施形態の質問および回答技術68が挙げられる。
【0046】
図4を参照しながら、本発明の一実施形態について説明する。
図4に、QAシステム400の実施形態の機能ブロック図を示す。
図4の機能ブロックは、1つまたは複数のプロセッサ16を使用してコンピュータ実行可能プログラム・コードを含むプログラムを実行することによって、コンピュータ中で実現されてよい。
【0047】
この記述では、「多言語」という用語は、QAシステムが、入力された質問の要旨または要点に応じて、異なる複数の言語によって提供される1つの情報ソースまたは複数の情報ソースあるいはその両方を検索することによって、入力された質問に対する回答を生成することを意味する。
【0048】
QAシステム400は、アナライザ402、単語セレクタ403、およびスコアラ404を備えることができる。アナライザ402は、ネットワークまたは他の適切な入力デバイスを介して「Who is an author of XYZ?(XYZの著者は誰か?)」などの質問401を受け取る。アナライザ402は、形態素解析、固有表現抽出、または従来のQAシステムで使用される他の技法、あるいはそれらのすべてを使用して、質問テキストを分析する。次いでアナライザ402は、上の分析結果を使用して、質問401中で出現した1組の単語を選択する。出力される1組の単語を選択するための例示的な定義は、形態素解析および固有表現抽出の結果に基づいて質問中の適正な名詞を選択することだが、動詞、形容詞、または副詞、あるいはそれらのすべてを抽出する他の定義が存在してもよい。
【0049】
次いで、アナライザ402は、分類テーブル408を参照して、上記のプロセスで選択された各単語の1つまたは複数のカテゴリを決定する。分類テーブル408は、「XYZ:日本のTVショー」や「XYZ:マンガ・シリーズ」など、1つまたは複数のカテゴリ中の単語のペアを記憶している。分類テーブル408は、様々な言語のWikipedia(商標)などの適切なデータベースからこれらの単語とそのカテゴリとのペアを収集することによって、本実施形態の処理に先立って生成されてよい。
【0050】
質問401からの選択された各単語の、1つまたは複数のカテゴリが決定された後、アナライザ402は、上記のカテゴリを使用して、質問401に関連性があると予想される1組のトピックおよび地域を決定する。これについては後で
図9に関して詳細に説明する。各トピックおよび地域は、単語として表され、したがって、1組のトピックおよび地域は、1組の単語として得られる。この1組の単語は、アナライザ402の出力として単語セレクタ403に送られる。
【0051】
上記の各単語につき、単語セレクタ403は、この単語によって表されるトピックに関して記述するときに他の言語よりも多く使用されると予想される言語、またはこの単語によって表される地域で主に使用されると予想される言語を、情報ソース言語の候補として決定する。候補言語の決定は、トピック−言語テーブル409および地域−言語テーブル410を参照することによって行われ、これについては後で詳細に説明する。単語セレクタ403は、トピックと言語のペア、または地域と言語のペア、あるいはその両方を、スコアラ404に出力する。
【0052】
ここで、トピック−言語テーブル409は、トピックを表す単語と、ペアにされたトピックに関するドキュメントを他の情報ソースと比較してより多く含む情報ソース中で使用されると予想される言語と、のペアを記憶する。トピック−言語テーブル409は、質問中のトピックを、そのトピックに関連性のある言語に関係付けることができる。地域−言語テーブル410は、通り、都市、または別のタイプの地理的位置もしくは地域を表す単語と、ペアにされた地理的位置または地域で主に使用される言語と、のペアを記憶する。地域−言語テーブル410は、質問中の地域を、その地域に関連性のある言語に関係付けることができる。これらのデータ構造の特定の実施形態については後述する。
【0053】
一実施形態では、質問が「Who is an author of XYZ?」であり、アナライザ402が、「XYZ」を抽出し、そのカテゴリを分類テーブル408から「マンガ・シリーズ」および「日本のTVショー」として見つけ、関係するトピックおよび地域を{”マンガ”,”日本”,”TV”}として推定するが、この実施形態では、単語セレクタ403は、「マンガ」、「日本」、および「TV」という名称のトピックおよび地域を、トピック−言語テーブル409および地域−言語テーブル410から探し、トピック−言語テーブル409から「マンガ:日本語」および「TV:英語」トピック・エントリを見つけ、地域−言語テーブル410から「日本:日本語」地域エントリを見つける。
【0054】
ここで、カテゴリ、トピック、地域、および言語の間の関係によって、または、質問に含まれるこれらの特徴の任意の組合せならびに各々によって、あるいはその両方によって、質問者から発せられた質問の要旨を決定することができ、質問の要旨に応じて、IS言語ならびにISの選択を決定することができる。
【0055】
スコアラ404は、単語セレクタ403から転送された、トピックまたは地域と言語との入力ペアにおける、各言語のスコアを算出する。一実施形態では、例えば、スコアラ404は、上記の入力における言語の頻度をそれらのスコアとして使用することができ、最も高頻度の言語をIS言語として選択することができる。この実施形態では、単語セレクタ403は、トピックと言語とのペア{”マンガ:日本語”,”TV:英語”}、および地域と言語とのペア{”日本:日本語”}を出力する。スコアラ404は、入力における成分の頻度を数えることによって、日本語=2および英語=1としてスコアを算出する。次いでスコアラ404は、質問401に使用されるIS言語が、最も高いスコアを得た日本語であると決定する。
【0056】
図4のQAシステムはさらに、検索および回答ジェネレータ405と、回答トランスレータ406とを備える。スコアラ404は、質問に使用されるIS言語を検索および回答ジェネレータ405に送り、検索および回答ジェネレータ405は、質問の元言語がIS言語と異なる場合には、機械翻訳エンジンを使用して質問をIS言語に翻訳する。次いで、検索および回答ジェネレータ405は、IS言語の質問を検索クエリに変換して、IS言語の情報ソースから、質問に関連性のあるコンテンツを検索して取り出す。質問「Who is an author of XYZ?」の例では、入力された質問が英語で提供されているにもかかわらず、英語(EN)情報ソース412ではなく日本語(JP)情報ソース411が、質問の回答の生成に使用される。次いで、検索および回答ジェネレータ405は、既存のQAシステムと同じ技法を使用して、入力された質問の候補回答を生成してスコア付けする。
【0057】
検索および回答ジェネレータ405が1組の候補回答を得た後で、IS言語が質問の元言語と異なる場合、検索および回答ジェネレータ405は、候補回答を質問の言語に翻訳するために、候補回答を回答トランスレータ406に送る。
図4の実施形態では、候補回答は、日本語の「ジョン・ドウ」と仮定され、回答トランスレータ406は、日本語の候補回答を「John Doe」として英語に翻訳し、回答407として返す。
【0058】
回答407は、言語フォーマットとして、ならびに音声処理されたサウンド・フォーマットとして、質問401を要求したユーザに返されてよく、ユーザは、関連性のある情報ソースを使用した、質問に関する関連性のある情報を得ることができる。情報ソースは、ネットワークを介して利用可能な任意のデータベースであってよく、このようなデータベースの一例はWikipedia(商標)であり、Wikipediaは、人々、場所、および他の固有表現に関する、種々の言語による多量の情報を含むが、データベースはこれに限定されず、企業、政府、または任意の組織、あるいはそれらのすべてのデータベースが使用されてもよい。
【0059】
図5に、
図4に示されるQAシステム400によって実行されるプロセスのフローチャートを示す。
図5のプロセスはステップS500から開始し、自然言語で入力された質問がアナライザ402によって受け取られる。自然言語入力はテキスト・フォーマットであってよく、テキストは、既知の音声認識アプリケーションを使用して発話音声から得られたものであってもよい。次いでアナライザ402は、ステップS501で、形態素解析を含めた従来の言語分析プロシージャを使用して、質問の言語の分析を実施し、質問中に存在する1つまたは複数の単語を抽出する。
【0060】
次いで、ステップS502で、アナライザ402は、分類テーブル408を参照することによって少なくとも1つの単語のカテゴリを識別し、このカテゴリを使用して、質問401に関連性があると予想されるトピックまたは地域あるいはその両方を決定する。次いで、ステップS503で、単語セレクタ403が、トピック−言語テーブル409および地域−言語テーブル410を使用して、IS言語の1つまたは複数の候補を決定する。単語セレクタ403は、トピック−言語ペアのグループp={p
1:l
1,...p
a:l
a}を出力する。p
iはi番目のトピックであり、l
iは、i番目のトピックを他の言語よりも良く記述すると予想されるi番目の言語である。単語セレクタ403はまた、地域−言語ペアのグループr={r
1:l
1,...,r
b:l
b}も生成する。ここで、r
iはi番目の地域であり、l
iは、i番目の地域で主に使用されるi番目の言語である。
【0061】
ステップS504で、スコアラ404が、グループ「p」およびグループ「r」を使用して、1つまたは複数のIS言語候補をランク付けする。スコアラ404は、ステップS504で、例えばグループ「p」および「r」中で出現する言語のうちで最も出現頻度の高い言語として、IS言語を決定して、対応するISを得る。
【0062】
次いで、検索および回答ジェネレータ405が、ステップS505で、決定されたIS言語で提供される情報ソースに検索クエリを送出して、回答候補を取り出し、従来の検索エンジンの方法に従って候補をスコア付けする。スコア付けは、既知の技術を使用して、例えば、質問と取り出されたドキュメントとの間のキーワード・マッチングを使用して行うことができるが、これに限定されず、他の任意のスコア付け方法が可能であろう。
【0063】
ステップS506で、検索および回答ジェネレータ405によって、例えば質問に対して最も関連性の高いドキュメントとして、回答が決定される。次いで、ドキュメントは、回答トランスレータ406によって、IS言語から質問の言語に翻訳されてよい。次いで、翻訳された回答は、質問を発したユーザ装置に返されて、質問−回答サイクルが完了する。
【0064】
次に、
図6〜8を参照しながら、データ構造の実施形態について述べる。
図6に、分類テーブル408の一実施形態を示す。分類テーブル408は、トピック−言語テーブル409および地域−言語テーブル410の参照を可能にするために、キーワード610とそのカテゴリ620とをリストする。分類テーブル408は、事前に準備されてよく、適切な検索ロボット・システムによってWikipedia(商標)などの無料データベース・システムから定期的に更新されてよい。
【0065】
図7に、トピック−言語テーブル409の一実施形態を示すが、トピック−言語テーブル409は、トピック710と、トピックについて記述されるときに他の言語よりも多く使用されると予想される言語720とをリストする。トピック−言語テーブル409は、手作業で準備されてもよく、または、すべての言語バージョン中で各カテゴリ(トピック)にマッピングされるWikipediaエントリの数を数え、各Wikipediaカテゴリ中で与えられる言語間リンクを使用してこれらの数を言語間で比較し、カテゴリと最も多くのリンクされたエントリを有する言語とをリストすることによって生成されてもよい。しかしこれに限定されず、他の既知の方法も除外されないであろう。例示的な一実施形態については、検索および回答ジェネレータ405の処理および機能を参照することができる。
【0066】
図8に、地域−言語テーブル410の一実施形態を示す。地域−言語テーブル410は、地域810を言語820にリンクする。地域−言語テーブル410は、分類テーブル408から取り出されたカテゴリが、日本、アメリカ合衆国、フランス語、スペイン語、グレート・ブリテンなどの地域情報を含むときに、有効であることがある。地域−言語テーブル410は、国、都市、または、地理的領域を意味する他のカテゴリにマッピングされるWikipediaエントリを見つけ、それらの情報ボックス(その地域で使用される言語情報しばしば含む)を解析することによって、または単に、任意の言語を意味する単語をWikipediaエントリから抽出することによって、事前に準備されてよい。しかしこれに限定されず、他の任意の既知の方法が可能であろう。特定の地域に複数の言語があるときは、地域の言語を、そのような地域で最も一般的な言語に選択することができる(インドにおけるヒンディー語など)。分類テーブル408から取り出されたカテゴリに応じて、トピック−言語テーブル409と地域−言語テーブル410とは、独立して、または共同で、あるいはその両方で、IS言語の決定に適用されてよい。
【0067】
次に、再び
図5を参照し、ステップS502およびS503のサブプロセスについて詳述する。
図9に、アナライザ402によって実行される、カテゴリからトピックおよび地域を決定するためのステップS502のサブプロセスの詳細な処理を示す。アナライザ402は、ステップS900から開始し、言語分析によって、入力された質問中の単語をリストする。ステップS901で、アナライザ402は、単語を抽出し、抽出された単語を名詞グループt={t
1,...,t
k}に設定する。次いで、ステップS902で、アナライザ402によって、分類テーブル408を使用して、抽出された単語に対応するカテゴリがカテゴリ・グループc={c
1,...,c
n}に設定される。各カテゴリcは、名詞句によって表される。
【0068】
次いで、ステップS903で、アナライザ402は、カテゴリ・グループ中のカテゴリを個別の単語w
0={w
1,...,w
m}として分割するが、これは、カテゴリに関連性のあるトピックおよび地域に関係する単語を含む。さらに、ステップS904で、アナライザ402は、単語グループw
0における単語の頻度を数え、ステップS905で、アナライザ402は、最も高頻度のN個の単語w={w
1,...,w
n}を、入力された質問に関係する推定されるトピックおよび地域として抽出する。
【0069】
推定されるトピックおよび地域を選択する際、分類テーブル408に記憶されたすべてのカテゴリ中で、所与のしきい値よりも多く出現する単語を選択することが可能である。しかしこれに限定されず、任意の既知の方法を使用することができる。
【0070】
図10に、推定されるトピックおよび地域wに関連性のある言語を決定するための
図5のステップS503のサブプロセスの詳細を示す。ステップS1000で、単語セレクタ403が、ステップS905で定義された単語グループwから単語を取り出し、次いで、ステップS1001で、これらの単語を取出しキーとして、トピック−言語テーブル409および地域−言語テーブル410内で検索して、IS言語候補グループL={L
1,...L
n}を生成する。ここで、L
jは、ステップS1001でトピック−言語テーブル409および地域−言語テーブル410をルックアップすることによって見つかった言語を指す。このステップでは、グループw中の単語に応じて、言語グループL中の複数の言語が取り出される場合がある。次いで、
図10に示されるように、IS言語候補はデータとして出力されてよい。
【0071】
図10のサブプロセス、すなわち
図5のステップS503の後、スコアラ404が、同じ言語の出現頻度を算出して、グループLのうちで質問に最も関連性のある言語Lを決定する。最も関連性のある言語の決定は、この実施形態では、最も高頻度の言語を選択することによって達成することができるが、これに限定されず、他の任意の既知の方法によって達成することができる。同じ出現頻度の言語が見つかったときは、QAシステムは、同じ出現頻度の言語に対応する情報ソースによって得られた回答を提供することができる。別法として、トピック−言語テーブル409および地域−言語テーブル410に重みを提供することも可能であろう。
【0072】
QAシステムは、質問に関連性のある言語をIS言語として決定し終え、QAシステムは、ステップS505で、IS言語で提供されるコンテンツを含む情報ソースからの情報取出しを達成する。この実施形態では、質問が、IS言語に関連性のない多くの単語を含む自然言語として入力された場合は、不必要な単語を省いて最も関連性のある言語を選択することによって、最も関連性のあるIS言語を決定することが可能である。
【0073】
図11に、QAシステム1100の別の実施形態の機能ブロック図を示す。
図11の実施形態では、QAシステム1100は複数の情報ソース内で検索し、IS言語は、スコアラ1104によって決定された言語による1つの情報ソースによってではなく、取り出された情報量によって決定されることになる。アナライザ1102、単語セレクタ1103、検索および回答ジェネレータ1105、ならびに回答トランスレータ1107の機能は、
図4に示される第1の実施形態と同様であり、以下では詳細な説明は省略する。
【0074】
図11の実施形態では、第1の実施形態で述べたように、スコアラ1104が、カテゴリに関連性のある言語をリストアップする。しかし、スコアラ1104は、IS言語を特定の言語に決定せずに、これらの言語をIS言語候補として検索エンジン1105に送る。スコアラ1104が検索エンジン1105に通知した各IS言語候補に質問が翻訳された後、検索エンジン1105は、質問に関連性のあるドキュメントを情報ソース内で検索する。
【0075】
この実施形態では、回答セレクタ1106が、各情報ソースから取り出されたドキュメントの数に応じて、質問に関連性のある言語を選択することができる。回答セレクタ1106は、IS言語と、はるかに多くのドキュメントが取り出された情報ソースとを決定する。回答セレクタ1106は、取り出された最もリッチな結果および言語のうちから、回答トランスレータ1107による翻訳にかけられることになるドキュメントを選択することができる。情報ソースが決定されると、取り出されたドキュメントは、既知の技術、例えば、質問と取り出されたドキュメントとの間のキーワード・マッチングを使用して、第1の実施形態で述べたのと同じ方法でランク付けされる。回答は、最も高いキーワード・マッチング・スコアを有するドキュメントとして決定されてよいが、これに限定されず、他の任意のスコア付け方法で決定されてよい。回答トランスレータ1107は、質問に対する回答のためにドキュメントを受け取り、ドキュメントを翻訳して、質問の言語で回答1108を生成する。
【0076】
図11に示される実施形態は、質問の要旨または要点に関連性のある言語のドキュメントを多く記憶した情報ソースから回答を生成することができ、次いで、利用可能なデータベース中の最も信頼性のあるコンテンツを使用して、質問に対する回答を与えることができるが、検索エンジンにとっての、計算時間またはハードウェア要件あるいはその両方が増加する可能性がある。
【0077】
図12に、
図11に示されるQAシステム1100によって実行されるプロセスのフローチャートを示す。プロセスはステップS1200から開始し、アナライザ1102が、質問に関連性のある推定されるトピックおよび地域をリストして、単語グループw={w
j,..,w
k}を形成する。次いで、ステップS1201で、検索および回答ジェネレータ1105が、単語ベースで、および単語に関連性のある言語で、複数の検索を実行し、単語グループwに関係する異なる複数の言語による異なる複数の情報ソース1205、1206から、単語グループw中の1つまたは複数の単語を含むドキュメントを取り出す。取り出された結果は、それぞれ、検索に使用された言語ごとに記憶されてよい。
【0078】
ステップS1203で、プロセスは、検索されたあらゆる言語について、単語グループ{w}中の検索単語ごとにドキュメントの平均数を算出する。結果として、ステップS1204で、言語と、取り出されたドキュメントの平均数とのペアが生成される。QAシステム1100は、質問に関する最もリッチなドキュメントを含む検索結果から、ドキュメントを選択することができ、また、IS言語を選択することができる。この実施形態では、情報ソースとIS言語とを同時に決定することができ、回答となるべきドキュメントは、ターゲット言語を知ることなく取り出すことができる。したがって、この実施形態は、質問に最も一致するであろうが、並列検索または検索オーバヘッドを必要とするであろう。
【0079】
図13に、QAシステム1300の別の実施形態の機能ブロックを示す。
図13の機能ブロックのうち、アナライザ1302、検索エンジン1305、回答トランスレータ1306、および回答1307は、第1の実施形態および第2の実施形態と同様であり、したがってこれ以上の詳細は省略する。
【0080】
第3の実施形態は、単語ベクトル・ジェネレータ1303および言語分類器トレーナ1304を含む。単語ベクトル・ジェネレータ1303は、アナライザ1302によって決定された単語から、単語と、対応する単語の出現頻度とを含む単語ベクトル、すなわちW={word
1,frequency
1,...,word
n,frequency
n}を生成する。言語分類器トレーナ1304は、言語分類器モデル1308を使用して単語ベクトルWを分類することによって、単語ベクトルWから関連性のある言語を決定する。
【0081】
検索および回答ジェネレータ1305は、決定された言語の情報ソース1309内で検索する。言語分類器モデル1308は、従来の単一言語QAシステムの結果を学習することによって、事前に準備されてよい。ここで、言語分類器モデル1308の形成について述べる。
図13に示される実施形態によれば、言語分類器モデル1308の訓練が進むにつれて、IS言語およびISの決定は、より少ない時間消費でますます正確になるであろう。
【0082】
図14に、質問−IS言語モデルを形成するためのプロセスを示す。プロセスはステップS1400から開始し、プロセスは最初に、訓練質問と言語とのペアを準備し、ペアにされた言語の回答を検索する。回答が正しいかまたは質問に関連性があるかあるいはその両方であるときは、プロセスは、そのようなペアを言語分類器モデル1308に記録および記憶する。次いで、アナライザ1302が、ステップS1401で、質問中の単語を、単語と単語の出現頻度とを含む単語ベクトルに変換する。加えて、正しいかまたは関連性があるかあるいはその両方の回答を返した言語も、単語ベクトルと共に送られる。S1402で、単語ベクトルは、言語分類器モデル1308を訓練するために、同じ言語ごとに言語分類器モデル1308に記憶される。
【0083】
言語分類器トレーナ1304は、従来のサポート・ベクトル・マシンまたは従来のロジスティック回帰アルゴリズムを用いて実装されてよい。言語分類器トレーナ1304の訓練は、言語分類器トレーナ1304に対して実装されるアルゴリズムに従って、単語ベクトルを変数として使用し、ペアにされた言語を目的関数として使用して、達成することができる。言語分類器トレーナ1304の訓練が完了した後、ステップS1403で、言語分類器モデル1308が確立される。
【0084】
図15に、
図14のプロセスの概略図を示す。
図15で、訓練質問文1500は、「Whois the Russian novelist writing "The Brothers of Karamazov?"」である。単語ベクトル・ジェネレータ1303が、一般形式1510の単語ベクトルを生成する。訓練質問文1500に関する特定の一実施形態では、単語ベクトル1520は、
図15に示されるように{(The Brothers of Karamazov,1),(Russia,1),(novelist,1)}である。ロシア語の情報ソースを使用する従来の単一言語QAシステムが訓練質問文1500に正しく回答できるとき、単語ベクトル1520は、訓練データ中で言語ロシア語にリンクされる。上に示されるような単語ベクトルと言語とのペアのセットは、言語分類器モデル1308としての実装されるアルゴリズムに従って単語ベクトルと言語との間の最も可能性の高い関係を学習するための、言語分類器トレーナ1304への入力である。
【0085】
図16に、質問の受取りからIS言語の決定までの、QAシステム1300のプロセスの一実施形態を示す。
図16のプロセスはS1600から開始して、入力された質問が受け取られる。次いで、アナライザ1302が質問を分析し、単語ベクトル・ジェネレータ1303が、ステップS1601で、言語分類器モデル1308の訓練に使用された単語テンプレートを使用して、質問の特徴ベクトルである単語ベクトルを生成する。単語テンプレート中でリストされていない単語が存在する場合は、単語は第1および第2の実施形態のプロセスによって別個に分析されてよく、このような分析の結果は、言語分類器トレーナ1304の結果に組み込まれてよい。
【0086】
ステップS1602で、単語ベクトルは言語分類器トレーナ1304に入力されて、言語分類器モデル1308が参照され、質問に対処するための好ましい最も可能性の高い言語が得られる。次いで、ステップS1603で、この好ましい最も可能性の高い言語は、IS言語に設定される。その後、検索および回答ジェネレータ1305が、決定されたIS言語によって作成されたIS内で検索して、回答1307を生成するためのドキュメントを取り出す。
【0087】
本発明のさらに別の実施形態では、新しい質問についての単語ベクトルが得られると、新しい単語ベクトルと訓練による記憶済みの単語ベクトルとの内積が計算されてよく、それにより、訓練された単語ベクトルに対する新しい単語ベクトルの類似性が推定されてよい。類似性に応じて、すなわち、内積の値が所定しきい値よりも高いときは、新しい質問に対するIS言語は、このより高い内積を与える訓練された単語ベクトルを含む言語に決定される。
【0088】
本実施形態のビジネス適用性については、これらの実施形態は、グローバル会社におけるインターネット検索エンジンとして適用可能であろう。日本の子会社におけるインターネット・ページのほとんどが日本語で書かれ、英語ページが日本語コンテンツよりもずっと少ないか、または英語コンテンツがごくわずかであるかもしくはまったくないとき、本実施形態によれば、子会社における英語話者ユーザは、日本語と英語の両方のコンテンツにアクセスすることができ、英語コンテンツの利用可能性を考慮することなく英語の回答を得ることができる。
【0089】
他のビジネス適用性は、国際オンライン・ショッピングのための製品検索エンジンであろう。オンライン・ショッピング会社が多様なジャンルの製品を販売するとき、製品は、多くの言語で書かれた重複的な製品記述を有するはずである。本実施形態を使用することによって、会社は製品検索システムを提供することができ、このシステムは、エンド・ユーザの要求または需要を記述する文をシステムへの入力として受け入れ、これらの製品記述を分析することによって製品のリストをエンド・ユーザの要求または需要と同じ言語で回答として返す。
【0090】
本発明の本実施形態はまた、音声入力から転記された質問を受け入れること、ならびに、コンピュータ合成音声によって回答を返すこともできる。
【0091】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはそれらのすべてとすることができる。コンピュータ・プログラム製品は、本発明の態様をプロセッサに遂行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読ストレージ媒体(1つまたは複数)を含むことができる。
【0092】
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用される命令を保持および記憶できる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組合せとすることができるが、これらに限定されない。
【0093】
コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読取専用メモリ(ROM)、消去可能プログラム可能な読取専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読取専用メモリ(CD−ROM)、ディジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、機械的にエンコードされたデバイス(命令が記録された、パンチカード、または溝の中の隆起構造など)、およびこれらの任意の適切な組合せを含む。
【0094】
本明細書におけるコンピュータ可読ストレージ媒体は、電波もしくは他の自由伝搬する電磁波、導波管もしくは他の伝送媒体を介して伝搬する電磁波(例えば、光ファイバ・ケーブルの中を通る光パルス)、またはワイヤを介して伝送される電気信号など、一時的な信号自体と解釈されるべきではない。
【0095】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスにダウンロードされてよく、あるいは、ネットワーク(例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくはワイヤレス・ネットワーク、またはそれらのすべて)を介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードされてよい。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはそれらのすべてを含むことができる。
【0096】
各コンピューティング/処理デバイス中の、ネットワーク・アダプタ・カードまたはネットワーク・インタフェースが、コンピュータ可読プログラム命令をネットワークから受け取り、これらのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体に記憶されるように転送する。
【0097】
本発明の動作を遂行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データであってよく、または、Smalltalk(R)やC++などのオブジェクト指向プログラミング言語、および、「C」プログラミング言語や類似のプログラミング言語などの従来の手続き型プログラミング言語を含めた、1つもしくは複数のプログラミング言語の任意の組合せで書かれたソース・コードとオブジェクト・コードとのいずれかであってよい。
【0098】
コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行されるか、スタンドアロンソフトウェアパッケージとして部分的にユーザのコンピュータ上で実行されるか、部分的にユーザのコンピュータ上で実行され部分的にリモート・コンピュータ上で実行されるか、または完全にリモート・コンピュータもしくはサーバ上で実行される場合がある。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含めた任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、または、接続は、外部コンピュータに対して(例えば、インターネット・サービス・プロバイダを使用してインターネット経由で)行われてもよい。
【0099】
いくつかの実施形態では、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を例えば含む電子回路が、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個人化することによって、コンピュータ可読プログラム命令を実行することができる。
【0100】
本明細書では、本発明の態様を、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の、フローチャート説明またはブロック図あるいはその両方に関して述べている。フローチャート説明またはブロック図あるいはその両方の各ブロック、ならびに、フローチャート説明またはブロック図あるいはその両方の中のブロックの組合せを、コンピュータ可読プログラム命令によって実現できることは理解されるであろう。
【0101】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロック中で指定される機能/行為を実現する手段をもたらすように、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供されて、マシンを生み出すものであってよい。これらのコンピュータ可読プログラム命令はまた、命令が記憶されたコンピュータ可読ストレージ媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロック中で指定される機能/行為の態様を実現する命令を含む製造品を含むように、コンピュータ可読ストレージ媒体に記憶され、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはそれらのすべてに、特定の方式で機能するよう指令することができるものであってもよい。
【0102】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロック中で指定される機能/行為を実現するように、コンピュータ実装プロセスを生み出すべく、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
【0103】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態の、アーキテクチャ、機能、および動作を示す。これに関して、フローチャートまたはブロック図の中の各ブロックは、モジュール、セグメント、または命令の一部を表すことができ、これは、指定される論理機能を実現するための1つまたは複数の実行可能命令を含む。いくつかの代替実装形態では、ブロック中で示される機能は、図中で示される順序とは異なる順序で生じる場合がある。
【0104】
例えば、関連する機能に応じて、連続して示される2つのブロックが実際にはほぼ同時に実行される場合もあり、またはこれらのブロックが逆の順序で実行されることもある。また、ブロック図またはフローチャート説明あるいはその両方の各ブロック、および、ブロック図またはフローチャート説明あるいはその両方の中のブロックの組合せは、指定される機能もしくは行為を実施するかまたは専用ハードウェアとコンピュータ命令との組合せを遂行する、専用ハードウェアベースのシステムによって実現できることにも気付くであろう。
【0105】
本明細書で使用される用語は、特定の実施形態を記述するためのものに過ぎず、本発明を限定するものとはしない。本明細書において、単数形「a」、「an」、および「the」は、コンテキストがはっきりとそうでないと示さない限り、複数形も含むものとする。さらに、「含む、備える(「comprises」または「comprising」あるいはその両方)」という用語が本明細書で使用されるとき、これらは、記載された特徴、整数、ステップ、動作、要素、またはコンポーネント、あるいはそれらのすべての存在を指定するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、コンポーネント、またはこれらのグループ、あるいはそれらのすべての存在または追加を排除しないことも、理解されるであろう。
【0106】
以下の特許請求の範囲におけるすべてのミーンズまたはステップ・プラス・ファンクション要素の、対応する構造、材料、行為、および均等物は、もしあれば、具体的に請求される他の特許請求要素との組合せで機能を実施するための任意の構造、材料、または行為を含むものとする。本発明の1つまたは複数の態様についての記述は、例証および記述の目的で提示したものであり、網羅的なもの、または開示される形の発明に限定されるものとはしない。
【0107】
本発明の様々な実施形態についての記述を例証の目的で提示したが、これらの記述は、網羅的なものとはせず、また、開示される実施形態に限定されるものともしない。述べた実施形態の範囲および思想を逸脱することなく、多くの変更および変形が当業者には明らかになるであろう。本明細書で使用される用語は、実施形態の原理、実際の応用、または市場でみられる技術に勝る技術的改善を最もうまく説明するために、または、本明細書に開示される実施形態を他の当業者が理解できるようにするために、選ばれたものである。