IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特表2024-508412グラフィックユーザインタフェースからの自然言語インタフェースの生成
<>
  • 特表-グラフィックユーザインタフェースからの自然言語インタフェースの生成 図1
  • 特表-グラフィックユーザインタフェースからの自然言語インタフェースの生成 図2A
  • 特表-グラフィックユーザインタフェースからの自然言語インタフェースの生成 図2B
  • 特表-グラフィックユーザインタフェースからの自然言語インタフェースの生成 図2C
  • 特表-グラフィックユーザインタフェースからの自然言語インタフェースの生成 図2D
  • 特表-グラフィックユーザインタフェースからの自然言語インタフェースの生成 図2E
  • 特表-グラフィックユーザインタフェースからの自然言語インタフェースの生成 図3
  • 特表-グラフィックユーザインタフェースからの自然言語インタフェースの生成 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-27
(54)【発明の名称】グラフィックユーザインタフェースからの自然言語インタフェースの生成
(51)【国際特許分類】
   G06F 8/38 20180101AFI20240219BHJP
【FI】
G06F8/38
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023549049
(86)(22)【出願日】2022-03-06
(85)【翻訳文提出日】2023-08-15
(86)【国際出願番号】 IB2022051964
(87)【国際公開番号】W WO2022189925
(87)【国際公開日】2022-09-15
(31)【優先権主張番号】17/198,951
(32)【優先日】2021-03-11
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】100104880
【弁理士】
【氏名又は名称】古部 次郎
(74)【復代理人】
【識別番号】100118108
【弁理士】
【氏名又は名称】久保 洋之
(72)【発明者】
【氏名】アクラビ、オファー
(72)【発明者】
【氏名】ビルゴリー、エレズ、レフ、メイア
(72)【発明者】
【氏名】マリード、サミ、ソベ
(72)【発明者】
【氏名】ドナテッリ、アレッサンドロ
(72)【発明者】
【氏名】アディ、アサフ
(72)【発明者】
【氏名】マシュキフ、ニル
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376BC08
5B376BC21
5B376BC31
5B376BC38
5B376BC43
5B376FA16
(57)【要約】
グラフィカルユーザインタフェース(GUI)コードから直接、自然言語インタフェース(NLI)を自動的に生成するためのアプローチが開示される。このアプローチは、GUIコンポーネントと所定のNLIコンポーネントとの間のマッピングを活用して、GUIコード表現から必要なNLIコンポーネント(例えば、インテント例、エンティティなど)を生成する。このアプローチは、所定のパターンを活用して、NLIコンポーネントの種類ごとにこれらのインテント例を生成する。作成されたNLIダイアログは、GUIと同時に使用することもできるし、スタンドアロン機能として使用することもできる。
【特許請求の範囲】
【請求項1】
グラフィカルユーザインタフェース(GUI)コードから自然言語(NL)ダイアログを作成するためのコンピュータ実装方法であって、
アプリケーションのGUIコード表現を受け取ることと、
前記GUIコード表現を1つ以上の自然言語インタフェース(NLI)コンポーネントにマッピングすることと、
前記1つ以上のNLIコンポーネントに基づいて、所定のインテントパターンを決定することと、
前記所定のインテントパターンに基づいて、1つ以上のインテント例を作成することと、
前記1つ以上のインテント例に基づいて、1つ以上のエンティティを作成することと、
アクション機能を、前記1つ以上のNLIコンポーネントのバックエンド操作にマッピングすることと、
前記1つ以上のインテント例、前記1つ以上のエンティティ、マッピングされたアクション機能、および所定の会話コンポーネントに基づいて、NLダイアログを生成することと、
を含む、コンピュータ実装方法。
【請求項2】
前記アプリケーションの前記GUIコード表現を受け取ることは、
前記アプリケーションのソースコードを特定することと、
前記アプリケーションから関連情報を取得することと、
前記アプリケーションの前記ソースコードから前記GUIコードを取得することと、
をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記GUIコード表現を前記1つ以上のNLIコンポーネントにマッピングすることは、
前記GUIコードの1つ以上の宣言を決定することと、
前記GUIコードの前記1つ以上の宣言を前記1つ以上のNLIコンポーネントに関連付けることと、
をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記1つ以上のNLIコンポーネントに基づいて、前記所定のインテントパターンを決定することは、
データベースからパターンのパッケージを取得することと、
ユーザの要求に基づいて、前記パターンのパッケージを修正することと、
をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記所定のインテントパターンに基づいて、前記1つ以上のインテント例を作成することは、
一致するNLIコンポーネントごとに、前記GUIコード表現、対応するラベル、ID、および名前を抽出することと、
前記GUIコード表現、前記対応するラベル、前記ID、および前記名前に基づいて、前記1つ以上のインテント例を生成することと、
をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項6】
前記1つ以上のインテント例に基づいて、前記1つ以上のエンティティを作成することは、
前記1つ以上のインテント例および当該1つ以上のインテント例のコンポーネントタイプに基づいて、前記1つ以上のエンティティを生成することをさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項7】
アクション機能を、前記1つ以上のNLIコンポーネントの前記バックエンド操作にマッピングすることは、
アクションの1つ以上の呼び出しに対する制限を特定することと、
前記GUIコードのアクションの呼び出しを、特定した制限とともにバックエンドNLコンポーネント操作に関連付けることと、
をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項8】
グラフィカルユーザインタフェース(GUI)コードから自然言語(NL)ダイアログを作成するためのコンピュータプログラム製品であって、
1つ以上のコンピュータ可読記憶媒体と、当該1つ以上のコンピュータ可読記憶媒体に記憶されたプログラム命令と、を含み、当該プログラム命令は、
アプリケーションのGUIコード表現を受け取るためのプログラム命令と、
前記GUIコード表現を1つ以上の自然言語インタフェース(NLI)コンポーネントにマッピングするためのプログラム命令と、
前記1つ以上のNLIコンポーネントに基づいて、所定のインテントパターンを決定するためのプログラム命令と、
前記所定のインテントパターンに基づいて、1つ以上のインテント例を作成するためのプログラム命令と、
前記1つ以上のインテント例に基づいて、1つ以上のエンティティを作成するためのプログラム命令と、
アクション機能を、前記1つ以上のNLIコンポーネントのバックエンド操作にマッピングするためのプログラム命令と、
前記1つ以上のインテント例、前記1つ以上のエンティティ、マッピングされたアクション機能、および所定の会話コンポーネントに基づいて、NLダイアログを生成するためのプログラム命令と、
を含む、コンピュータプログラム製品。
【請求項9】
前記アプリケーションの前記GUIコード表現を受け取ることは、
前記アプリケーションのソースコードを特定するためのプログラム命令と、
前記アプリケーションから関連情報を取得するためのプログラム命令と、
前記アプリケーションの前記ソースコードから前記GUIコードを取得するためのプログラム命令と、
をさらに含む、請求項8に記載のコンピュータプログラム製品。
【請求項10】
前記GUIコード表現を前記1つ以上のNLIコンポーネントにマッピングすることは、
前記GUIコードの1つ以上の宣言を決定するためのプログラム命令と、
前記GUIコードの前記1つ以上の宣言を前記1つ以上のNLIコンポーネントに関連付けるためのプログラム命令と、
をさらに含む、請求項8に記載のコンピュータプログラム製品。
【請求項11】
前記1つ以上のNLIコンポーネントに基づいて、前記所定のインテントパターンを決定することは、
データベースからパターンのパッケージを取得するためのプログラム命令と、
ユーザの要求に基づいて、前記パターンのパッケージを修正するためのプログラム命令と、
をさらに含む、請求項8に記載のコンピュータプログラム製品。
【請求項12】
前記所定のインテントパターンに基づいて、前記1つ以上のインテント例を作成することは、
一致するNLIコンポーネントごとに、前記GUIコード表現、対応するラベル、ID、および名前を抽出するためのプログラム命令と、
前記GUIコード表現、前記対応するラベル、前記ID、および前記名前に基づいて、前記1つ以上のインテント例を生成するためのプログラム命令と、
をさらに含む、請求項8に記載のコンピュータプログラム製品。
【請求項13】
前記1つ以上のインテント例に基づいて、前記1つ以上のエンティティを作成することは、
前記1つ以上のインテント例および当該1つ以上のインテント例のコンポーネントタイプに基づいて、前記1つ以上のエンティティを生成するためのプログラム命令をさらに含む、請求項8に記載のコンピュータプログラム製品。
【請求項14】
アクション機能を、前記1つ以上のNLIコンポーネントの前記バックエンド操作にマッピングすることは、
アクションの1つ以上の呼び出しに対する制限を特定するためのプログラム命令と、
前記GUIコードのアクションの呼び出しを、特定した制限とともにバックエンドNLコンポーネント操作に関連付けるためのプログラム命令と、
をさらに含む、請求項8に記載のコンピュータプログラム製品。
【請求項15】
グラフィカルユーザインタフェース(GUI)コードから自然言語(NL)ダイアログを作成するためのコンピュータシステムであって、
1つ以上のコンピュータプロセッサと、
1つ以上のコンピュータ可読記憶媒体と、
前記1つ以上のコンピュータプロセッサのうちの少なくとも1つが実行するために前記1つ以上のコンピュータ可読記憶媒体に記憶されたプログラム命令と、を含み、当該プログラム命令は、
アプリケーションのGUIコード表現を受け取るためのプログラム命令と、
前記GUIコード表現を1つ以上の自然言語インタフェース(NLI)コンポーネントにマッピングするためのプログラム命令と、
前記1つ以上のNLIコンポーネントに基づいて、所定のインテントパターンを決定するためのプログラム命令と、
前記所定のインテントパターンに基づいて、1つ以上のインテント例を作成するためのプログラム命令と、
前記1つ以上のインテント例に基づいて、1つ以上のエンティティを作成するためのプログラム命令と、
アクション機能を、前記1つ以上のNLIコンポーネントのバックエンド操作にマッピングするためのプログラム命令と、
前記1つ以上のインテント例、前記1つ以上のエンティティ、マッピングされたアクション機能、および所定の会話コンポーネントに基づいて、NLダイアログを生成するためのプログラム命令と、
を含む、コンピュータシステム。
【請求項16】
前記アプリケーションの前記GUIコード表現を受け取ることは、
前記アプリケーションのソースコードを特定するためのプログラム命令と、
前記アプリケーションから関連情報を取得するためのプログラム命令と、
前記アプリケーションの前記ソースコードから前記GUIコードを取得するためのプログラム命令と、
をさらに含む、請求項15に記載のコンピュータシステム。
【請求項17】
前記GUIコード表現を前記1つ以上のNLIコンポーネントにマッピングすることは、
前記GUIコードの1つ以上の宣言を決定するためのプログラム命令と、
前記GUIコードの前記1つ以上の宣言を前記1つ以上のNLIコンポーネントに関連付けるためのプログラム命令と、
をさらに含む、請求項15に記載のコンピュータシステム。
【請求項18】
前記1つ以上のNLIコンポーネントに基づいて、前記所定のインテントパターンを決定することは、
データベースからパターンのパッケージを取得するためのプログラム命令と、
ユーザの要求に基づいて、前記パターンのパッケージを修正するためのプログラム命令と、
をさらに含む、請求項15に記載のコンピュータシステム。
【請求項19】
前記所定のインテントパターンに基づいて、前記1つ以上のインテント例を作成することは、
一致するNLIコンポーネントごとに、前記GUIコード表現、対応するラベル、ID、および名前を抽出するためのプログラム命令と、
前記GUIコード表現、前記対応するラベル、前記ID、および前記名前に基づいて、前記1つ以上のインテント例を生成するためのプログラム命令と、
をさらに含む、請求項15に記載のコンピュータシステム。
【請求項20】
前記1つ以上のインテント例に基づいて、前記1つ以上のエンティティを作成することは、
前記1つ以上のインテント例および当該1つ以上のインテント例のコンポーネントタイプに基づいて、前記1つ以上のエンティティを生成するためのプログラム命令をさらに含む、請求項15に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般にGUI(グラフィカルユーザインタフェース)に関し、より具体的には、GUIから自然言語インタフェース(natural language interface)を生成することに関する。
【背景技術】
【0002】
現在、ユーザがアプリケーションとインタラクションする主な方法は、GUI(グラフィカルユーザインタフェース)を介したインタラクションである。しかし、NLI(自然言語インタフェース)でも動作するアプリケーションを構築しようとする試みはますます一般的になってきている。現在使われているアプリケーションやウェブページの中にも、NLIを有していればはるかに使いやすくなるものがいくつかある。例えば、食料品店で買い物のチェックリストを操作する場合などである。
【0003】
NLIをゼロから構築することは、GUIがすでに構築されている場合であっても多大な作業であり、また、アプリケーション開発者の間では一般的ではない会話設計(conversation design)の知識を必要とする。つまり、アプリケーションにNLIを追加したい企業や開発者は、このインタフェースの研究および実装に多くの時間を費やす必要がある。さらに、2つのインタフェースの同期を保つ必要がある。つまり、一方のインタフェースを変更した場合、他方のインタフェースの変更も必要になる可能性が高い。
【発明の概要】
【0004】
本発明の態様は、グラフィカルユーザインタフェース(GUI)コードから自然言語(NL)ダイアログを作成するためのコンピュータ実装方法、コンピュータシステム、およびコンピュータプログラム製品を開示する。コンピュータ実装方法は、1つ以上のコンピュータプロセッサによって実施してもよい。コンピュータ実装方法は、アプリケーションのGUIコード表現を受け取ることと、前記GUIコード表現を1つ以上の自然言語インタフェース(NLI)コンポーネントにマッピングすることと、前記1つ以上のNLIコンポーネントに基づいて、所定のインテントパターンを決定することと、前記所定のインテントパターンに基づいて、1つ以上のインテント例を作成することと、前記1つ以上のインテント例に基づいて、1つ以上のエンティティを作成することと、アクション機能を、前記1つ以上のNLIコンポーネントのバックエンド操作にマッピングすることと、前記1つ以上のインテント例、前記1つ以上のエンティティ、マッピングされたアクション機能、および所定の会話コンポーネントに基づいて、NLダイアログを生成することと、を含んでもよい。
【0005】
本発明の別の実施形態によれば、コンピュータシステムが提供される。コンピュータシステムは、処理ユニットと、処理ユニットに結合され、命令を記憶するメモリとを含む。命令は、処理ユニットによって実行された際に、本発明の実施形態に係る方法の動作を実行する。
【0006】
本発明のさらに別の実施形態によれば、非一時的な機械可読媒体に有形に記憶され、機械実行可能命令を含むコンピュータプログラム製品が提供される。命令は、デバイス上で実行された際に、本発明の実施形態に係る方法の動作をデバイスに実行させる。
【0007】
次に、本発明の好ましい実施形態を、例示のみを目的として、以下の図面を参照して説明する。
【図面の簡単な説明】
【0008】
図1】本発明の一実施形態に係る、自然言語環境100を示す機能ブロック図である。なお、図1は、本発明の一実施形態に係る、複数の内部サブコンポーネントを特徴とする自然言語コンポーネント111の拡大図を含む。
図2A】本発明の一実施形態に係る、サンプルアプリケーションのメイン画面のスクリーンショットである。
図2B】本発明の一実施形態に係る、(図2Aの)サンプルアプリケーションの設定画面のスクリーンショットである。
図2C】本発明の一実施形態に係る、(図2Aの)サンプルアプリケーションについてのGUIからNLIへのマッピングの例を示す図である。
図2D】本発明の一実施形態に係る、会話とそれに対応するロジックのサンプルを示す図である。
図2E】本発明の一実施形態に係る、会話とそれに対応するロジックの別のサンプルを示す図である。
図3】本発明の一実施形態に係る、自然言語コンポーネント111の動作300を示す概略的フローチャートである。
図4】本発明の一実施形態に係る、図1の自然言語環境内で自然言語コンポーネント111を実行可能なサーバコンピュータのコンポーネントのブロック図400である。
【発明を実施するための形態】
【0009】
本発明の実施形態は、現在の技術水準における欠点を認識するものであり、GUI(グラフィカルユーザインタフェース)コードから直接、NLI(自然言語インタフェース)を自動的に生成するアプローチを提供する。実施形態では、GUIコンポーネントと所定の(predefined)NLIコンポーネントとの間のマッピングを利用して、必要な(例えば、単一選択(single choice)、複数選択、自由テキスト(free text)など)インテントおよびエンティティの例を生成する。このアプローチでは、NLIコンポーネントの所定のインテントごとにインテント例を生成するために、所定のパターンを活用することができる。NLIは、同じ操作と例を使用する。例えば、所定のNLIコンポーネントの一部として所定のインテント(すなわち、「報告」インテント)が存在し、所定のパターンを使用して、これらのインテントについての訓練例(すなわち、「私は{X}が{Y}であることを報告したい。(“I would like to report that {X} is {Y}”)」ここで、XとYはGUIから抽出された実際の値に置き換えられる)を生成する。
【0010】
このアプローチは、簡単に要約すると次のステップで構成される:i)GUIコンポーネントを対応するNLIコンポーネントにマッピングする(すなわち、ドロップダウン選択が、単一選択入力(single choice input)のNLIコンポーネントにマッピングされる)、ii)所定のパターンを利用して、NLIコンポーネントの種類ごとにインテントおよびエンティティの例を作成する、iii)アクションコンポーネント(action component)をマッピングする、iv)アプリケーションの自然言語ダイアログ表現を生成する。
【0011】
インテント、エンティティ、およびアクションについてさらに説明する。すべてのNLIコンポーネントは、それに対応する所定の「インテント」と、所定のインテントパターンとを有する。インテントは、コード内のGUIコンポーネントの名前とID(識別子)に基づいており、所定のパターンからインテント例を作成するための基礎として使用することができる。エンティティは、GUIコード表現から構文解析(parse)されたコンポーネントに基づいており、エンティティは、GUIコンポーネントの名前とIDの一部をエンティティおよび同義語として使用することができる。アクションは、上述したマッピングの一部として、GUIコード表現におけるアクション呼び出し(ボタンの「onClick」コールバック関数など)から、NL(自然言語)コンポーネントのバックエンド操作(backend operation)へのマッピングが行われる。さらに、マッピングは、NLIにおいて考慮する必要がある、アクションに対する制限(例えば、ドロップダウンコンポーネントは、所定の許容値を有している可能性がある)を検索しながら行うことができる。なお、作成された自然言語ダイアログは、GUIと同時に使用することもできるし、スタンドアロン機能として使用することもできる。
【0012】
本発明の他の実施形態は、現行の技術における欠点に対処し、以下の利点を提供することができる:i)既存のGUIを全く変更することなく、全く異なるインタフェースを作成することができる、ii)グラフィカルユーザインタフェースから、自然言語インタフェースを自動的に作成することができる、iii)異なるタイプのGUIおよびNLIコンポーネントを活用することができる、iv)異なるインテントおよびエンティティの訓練を活用することができる、v)NLIは、既知の会話コンポーネントとともにGUIを自動的に発見して、新しいインタフェースを作成することができる。
【0013】
本明細書において「一実施形態(one embodiment)」、「一実施形態(an embodiment)」、「例示的な実施形態(an example embodiment)」などという場合、記載される実施形態が特定の特徴、構造、または特性を含む場合があるが、すべての実施形態が必ずしもこれらの特定の特徴、構造、または特性を含むとは限らないことを示すものである。さらに、このようなフレーズは、必ずしも同じ実施形態を指すものではない。さらに、特定の特徴、構造、または特性が一実施形態に関連して記載されている場合、このような特徴、構造、または特性を他の実施形態に関連させることは、明示的に記載されているか否かにかかわらず、当業者の知識の範囲内であると考えられる。
【0014】
なお、図面は模式的に表したものに過ぎず、縮尺通りではない。また、同一または類似の部分については、図面を通じて同一の符号を用いる場合がある。
【0015】
図1は、本発明の一実施形態に係る、自然言語環境100を示す機能ブロック図である。図1は、1つの実装形態の例示に過ぎず、異なる実施形態を実施可能な環境に関していかなる制限も意味するものではない。特許請求の範囲に記載された本発明の範囲から逸脱することなく、当業者であれば図示の環境に対して多くの変更を行うことができる。
【0016】
自然言語環境100は、製品ネットワーク101、コンピューティングデバイス102、およびサーバ110を含む。
【0017】
ネットワーク101は、例えば、電気通信ネットワーク、ローカルエリアネットワーク(LAN)、インターネットなどのワイドエリアネットワーク(WAN)、またはこれら3つの組み合わせとすることができ、有線、無線、または光ファイバ接続を含むことができる。ネットワーク101は、音声、データ、および映像情報を含むマルチメディア信号を含む、データ、音声、もしくは映像信号またはその組み合わせの信号を送受信可能な1つ以上の有線もしくは無線またはその両方のネットワークを含むことができる。一般に、ネットワーク101は、サーバ110、コンピューティングデバイス102、および自然言語環境100内の他のコンピューティングデバイス(不図示)間の通信をサポート可能な接続およびプロトコルの任意の組み合わせとすることができる。なお、他のコンピューティングデバイスは、特に限定されないが、コンピューティングデバイス102や、一連のコンピューティング命令を実行することができる任意の電気機械デバイスを含むことができる。
【0018】
コンピューティングデバイス102は、エンドユーザマシンおよびソフトウェアプログラミングプラットフォームのクラスタを含むことができる。コンピューティングデバイス102は、ユーザ(すなわち、プログラマ)がGUIコンポーネントからNLIダイアログを作成するための機能を提供する。
【0019】
サーバ110およびコンピューティングデバイス102は、スタンドアロンコンピューティングデバイス、管理サーバ、ウェブサーバ、モバイルコンピューティングデバイス、またはデータを受信、送信、および処理可能な任意の他の電子デバイスもしくはコンピューティングシステムとすることができる。他の実施形態において、サーバ110およびコンピューティングデバイス102は、クラウドコンピューティング環境などのように、サーバシステムとして複数のコンピュータを利用するサーバコンピューティングシステムを表すことができる。別の実施形態において、サーバ110およびコンピューティングデバイス102は、ラップトップコンピュータ、タブレットコンピュータ、ネットブックコンピュータ、パーソナルコンピュータ(PC)、デスクトップコンピュータ、パーソナルデジタルアシスタント(PDA)、スマートフォン、またはネットワーク101を介して自然言語環境100内の他のコンピューティングデバイス(不図示)と通信可能な任意の他のプログラマブル電子デバイスとすることができる。別の実施形態において、サーバ110およびコンピューティングデバイス102は、自然言語環境100内でアクセスされた際にシームレスなリソースの単一のプールとして動作するクラスタ化されたコンピュータおよびコンポーネント(例えば、データベースサーバコンピュータ、アプリケーションサーバコンピュータなど)を利用するコンピューティングシステムを表す。
【0020】
本発明の実施形態は、サーバ110上に存在することができる。サーバ110は、自然言語コンポーネント111およびデータベース116を含む。本発明の他の実施形態は、コンピューティングデバイス102上に存在することができる。
【0021】
自然言語コンポーネント111は、GUIコード表現から必要なNLIコンポーネント(例えば、インテント、エンティティなど)を生成する機能を提供する。自然言語コンポーネント111は、(機械学習を活用して)GUIコード表現を構文解析し、NLIに関連するすべての情報を抽出することができる。抽出後、自然言語コンポーネント111は、(機械学習を活用して)所定のパターンを使用して、NLIコンポーネントの種類ごとにインテント例(さらには、インテント例に基づくエンティティ)を生成することができる。自然言語コンポーネント111は、生成したインテント、エンティティ、および他のコンポーネントに基づいて、(機械学習を活用して)NLIダイアログボックスもしくは他のNLIコンポーネントまたはその両方を作成することができる。
【0022】
データベース116は、自然言語コンポーネント111が使用するデータのリポジトリである。データベース116は、データベースサーバ、ハードディスクドライブ、またはフラッシュメモリなど、サーバ110がアクセスして利用することができるデータおよび構成ファイルを記憶可能な任意のタイプのストレージデバイスによって実装することができる。データベース116は、複数の情報を記憶するために、当技術分野で公知の複数の技術のうちの1つ以上を使用する。図示の実施形態において、データベース116はサーバ110上に存在する。別の実施形態において、データベース116は、自然言語コンポーネント111がデータベース116にアクセスできるのであれば、自然言語環境100内の別の場所に存在してもよい。データベース116は、特に限定されないが、所定のインテント例、所定の特定の会話コンポーネント、以前に記憶されたNLIコンポーネントとGUIコンポーネント間のマッピング情報、ソフトウェアソースコードからGUIコードを決定するための情報、ならびに、アクション呼び出しおよび他のGUIコンポーネントについての一般的なマッピング情報に関連する情報を記憶することができる。
【0023】
図示の実施形態において、自然言語コンポーネント111は、コンポーネントマッピングコンポーネント121、インテントおよびエンティティコンポーネント122、アクションマッピングコンポーネント123、および生成コンポーネント124を含む。
【0024】
本明細書で以下に詳述するように、本発明のコンポーネントマッピングコンポーネント121は、GUIコンポーネントをNLIコンポーネントにマッピングする機能を提供する。例えば(図2Cを参照)、構文解析対象のアプリケーション/ウェブサイトのGUIコード表現を受け取ると、すべてのGUIコンポーネント(例えば、ボタン、ドロップダウン、ラジオボタン、チャートなど)が、コード内の宣言(declaration)によって認識され、対応するNLIコンポーネントにマッピングされる(例えば、ドロップダウン選択は、単一選択入力のNLIコンポーネントにマッピングされる)。なお、GUIコード表現は、アプリケーション/ウェブサイトのソフトウェアのメインソースコードから導き出す(すなわち、ユーザが手動で、または自動的に決定する)ことができる。
【0025】
GUIコード表現を構文解析することには、NLIに関連するすべての情報を抽出することが含まれる。NLIに関連するすべての情報は、特に限定されないが、i)エンティティ、ii)エンティティの同義語、iii)GUIコンポーネントとNLIコンポーネント間のマッピング、iv)アクション(すなわち、ボタンのonClick方法)、および、v)NLIに関連する可能性があるその他の情報を含むことができる。
【0026】
本明細書で以下に詳述するように、本発明のインテントおよびエンティティコンポーネント122は、インテント/インテント例およびエンティティを作成する機能を提供する。インテント/インテント例は、「フィールドの報告(“report field”)」または「値の照会(“query value”)」などの入力から表現される目的または目標であり、システムは、ユーザから入力を受信した場合にこれらのインテントをよりよく識別するために、所定のパターンおよびGUIから抽出された例を使用してNLU(Natural Language Understanding:自然言語理解)を訓練する。
【0027】
さらに、本発明のインテントおよびエンティティコンポーネント122は、新たな所定のパターンを作成する機能、もしくは既存の所定のパターンを編集する機能、またはその両方を有する。所定のパターン(すなわち、テンプレートのようなもの)は、エンティティについてのプレースホルダを有するインテント例であり、これらを使用して複数のインテント例を生成することができる。例えば、システムが「報告(“report”)」インテントのパターンを見ると、次のようなものが存在する:
「{field-name}の値は、{field-value}である。」
システムは、{field-name}と{field-value}をコードから自動的に抽出された値に置き換えることにより、このパターンから多くのインテント例を作成する。図2Aの「サイトID(“site id”)」と「作業命令ID(“work order id”)」は{field-name}値の例であり、{field-value}の例は定義されるか、コードから推測される必要がある。例えば、「サイトID」の場合、対応する{field-value}は「任意の数値」とすることができる。ユーザは、アプリケーションでの必要性に基づいて、既存の所定のインテントパターンを編集してもよい。
【0028】
これらの所定のパターンを決定するには、2つのオプションがある。第1のオプションは、システムで既に定義されているパターンの「パッケージ」(すなわち、システムが既に有している「報告」インテントについてのパターン)を使用することであり、開発者はこのリストに対してパターンの追加/削除を行うことができる。パターンのパッケージは、データベース(すなわち、データベース116)から取得することもできるし、別のサーバから取得することもできる。第2のオプションは、開発者がパターンおよびインテントの独自のリストを作成することである。例えば、一実施形態において、特定のインテント(すなわち、「報告」インテント)についてのパターンのインテントの基本セットを決定することができる。一実施形態において、パターンの基本セットを使用するか、開発者が既存の基本パターンを現在の抽出に合わせて編集/変更するかのいずれかを行うことができる。
【0029】
すべてのインテント(すなわち、「報告」インテント)について、所定のエンティティが存在し(「報告」の場合、エンティティは「フィールド」および「値」が考えられる)、これらのエンティティについての訓練例のみが抽出される(例えば、「値」については、「低い(“low”)」、「高い(“high”)」など例が考えられる)。
【0030】
エンティティは、ユーザ入力のうち、ユーザの目的に関係する情報を表す。例えば、ユーザがフィールドを報告したい場合、システムはインテント(「フィールドの報告」)と、ユーザが報告したいフィールド(エンティティ)とを特定する必要がある。例えば、「オイルレベルを低く設定する(“set oil level to low”)」という例の場合、インテントは「値の報告(“report value”)」であり、「フィールド名」エンティティは「オイルレベル」であり、「フィールド値」エンティティは「低く(“low”)」である。図2Cにおいて、「フィールド」と「固定データ(“Fixed data”)」はすべてエンティティである。別の例として、「検査フォーム-単一選択(“inspection form - single choice”)」の例の場合、「フィールド名」エンティティは「検査フォーム」であり、「フィールド値」エンティティはコードから生成された値(元のドロップダウンから可能なすべての答え)を有する。「単一選択」の部分は、GUIコンポーネントがマッピングされるNLUコンポーネントのタイプを指し、この場合は「ドロップダウン(“dropdown”)」が「単一選択」にマッピングされる。
【0031】
代替的な実施形態において、インテントおよびエンティティコンポーネント122は、NLIコンポーネントを活用して、エンティティとして使用することができる(すなわち、単一選択フィールドNLIコンポーネントは、値エンティティを必要とする)。実施形態ではこれらのNLIコンポーネントについて、必要なエンティティを入力することができる。入力(population)プロセスは、インテント例の抽出と同様の方法で行うことができるが、コンポーネントタイプを考慮して行われる(すなわち、閉じた(closed)単一選択フィールドNLIコンポーネントは、可能な値の固定リスト(fixed list)を必要とする)。
【0032】
本明細書で以下に詳述するように、本発明のアクションマッピングコンポーネント123は、アクション(例えば、抽出、コールバックなど)のマッピング機能を提供する。アクションマッピングは、アクションマッピングの一部として、GUIコード表現におけるアクション呼び出し(例えば、ボタンの「onClick」コールバック関数)とNLコンポーネントのバックエンド操作との間のマッピングを含む。アクションマッピングの実行中、アクションマッピングコンポーネント123は、NLIにおいて考慮する必要がある、アクションに対する制限(例えば、ドロップダウンコンポーネントは、所定の許容値を有している可能性がある)を検索して特定することができる。
【0033】
アクションマッピングは、(GUIコンポーネントが有していた)抽出されたすべてのコールバックまたはコードが、対応するNLIコンポーネントで参照され、NLIコンポーネントの戻り値で使用されることを意味する。
【0034】
アクションマッピングコンポーネント123のさらなる機能には、所定の特定の会話コンポーネントを構築することが含まれる。所定の特定の会話コンポーネントとは、会話を構築するために使用される会話構築ブロック(conversation building block)(ユーザからは見ることができない)である。これらは、GUIにおけるコンポーネントクラス(例えば、ドロップダウンメニューのクラス)に相当すると見なすことができる。会話全体の設計図(blueprint)を構築するために、実施形態ではこれらの汎用ブロック(例えば、「単一フィールドの報告(“report single field”)」や「フィールド値の照会(“query field value”)」)を使用する。
【0035】
以下に詳述するように、本発明の生成コンポーネント124は、コンポーネントマッピングコンポーネント121、インテントおよびエンティティコンポーネント122、アクションマッピングコンポーネント123からの結果に基づいて、自然なダイアログを生成する機能を提供する。生成コンポーネント124は、NLIコンポーネント、インテント、エンティティおよびアクションを、所定のドメイン固有の会話コンポーネントとともに使用して、自然言語ダイアログファイルを生成することができる。
【0036】
図2Aは、本発明の一実施形態に係る、サンプルアプリケーションのメイン画面のスクリーンショットである。音声入力もしくは音声コマンドまたはその両方を有する作業命令検査(work order inspection)システムの架空のアプリケーションを示している(すなわち、IBM(登録商標)Maximo Inspectionの画面は、例示のみを目的として使用されており、実施形態の実際のスクリーンショットではない)。図2Bは、本発明の一実施形態に係る、(図2Aの)架空のアプリケーションの設定画面のスクリーンショットである。
【0037】
図2Cは、本発明の一実施形態に係る、(図2Aの)サンプルアプリケーションについてのGUIからNLIへのマッピング例を示す図である。図2Cでは、すべての「フィールド」および「固定データ」をエンティティの例として示している。したがって、「ドロップダウン」は「単一選択」にマッピングされる。
【0038】
図2Dは、本発明の一実施形態に係る、会話と対応するロジックのサンプルを示す図である。図2Eは、本発明の一実施形態に係る、会話と対応するロジックの別のサンプルを示す図である。両図(2Dおよび2E)は、架空のアプリケーションの可能なNLU/NLIダイアログ表現を提供するものである。
【0039】
図3は、本発明の一実施形態に係る、自然言語コンポーネント111の動作300を示すフローチャートである。
【0040】
自然言語コンポーネント111は、GUIコード表現を受け取る(ステップ302)。一実施形態において、自然言語コンポーネント111は、構文解析対象であるアプリケーション/ウェブサイトのGUIコード表現を受け取る。一例として(図2Aを参照して)、作業命令検査のサンプルアプリケーションを用いて各ステップを説明する。自然言語コンポーネント111は、作業命令検査アプリケーションのメインソースコードを取得する。自然言語コンポーネント111は、アプリケーションのメインソースコードからGUIコードを特定することができる。さらに、自然言語コンポーネント111は、分析対象のアプリケーションから、すべての関連する必要な情報(すなわち、メインソースコードに関係しない情報)を取得することができる。
【0041】
自然言語コンポーネント111は、GUIコード表現をマッピングする(ステップ304)。一実施形態において、自然言語コンポーネント111は、コンポーネントマッピングコンポーネント121を介して、GUIコード表現を1つ以上のNLIコンポーネントにマッピングする。例えば、すべてのGUIコンポーネント(例えば、ボタン、ドロップダウン、ラジオボタン、チャートなど)が、コード内の宣言によって認識され、対応するNLIコンポーネントにマッピングされる(すなわち、ドロップダウン選択は、単一選択入力のNLIコンポーネントにマッピングされる)。
【0042】
自然言語コンポーネント111は、所定のインテントパターンを決定する(ステップ306)。一実施形態において、自然言語コンポーネント111は、インテントおよびエンティティコンポーネント122を介して、1つ以上のNLIコンポーネントに基づいて所定のインテントパターンを決定する。
【0043】
自然言語コンポーネント111は、インテント例を作成する(ステップ308)。一実施形態において、自然言語コンポーネント111は、インテントおよびエンティティコンポーネント122を介して、所定のインテントパターンに基づいてインテント例を作成する。例えば、すべてのNLIコンポーネントは、それに対応する所定のインテントと、所定のインテントパターンとを有する。一致するコンポーネントごとに、自然言語コンポーネント111は、GUIコードから、対応するラベル、ID、および名前を抽出する。自然言語コンポーネント111は、インテントおよびエンティティコンポーネント122(すなわち、インテントパターン)を介して、必要なインテントについてのインテント例を作成する。ユーザがフィールドを報告したい場合、自然言語コンポーネント111は、インテントを「フィールドの報告」(図2Cから)と特定することができる。
【0044】
自然言語コンポーネント111はエンティティを作成する(ステップ310)。一実施形態において、自然言語コンポーネント111は、インテントおよびエンティティコンポーネント122を介して、インテント例に基づいてエンティティを作成する。NLIコンポーネントの一部もエンティティを使用する(すなわち、単一選択フィールドNLIコンポーネントは、値エンティティを必要とする)。実施形態では、これらのNLIコンポーネントについて、インテント例の抽出と同様の方法で必要なエンティティを入力する必要があるが、コンポーネントのタイプを考慮して行う(すなわち、閉じた単一選択フィールドNLIコンポーネントは、可能な値の固定リストを必要とする)。例えば、(上述のステップ308を参照すると)「フィールドの報告」のインテントに基づき、エンティティは「フィールド」および「固定データ」とすることができる(図2C参照)。別の例として、同じく「報告」インテントの場合、「フィールド」や「値」などの所定のエンティティが存在し得る。ただし、これらのエンティティの訓練例のみが抽出される(すなわち、「値」については、「低い」、「高い」などの例が考えられる)。
【0045】
さらに、自然言語コンポーネント111は、アクションマッピングコンポーネント123を介して、GUIコンポーネントのアクションをマッピングすることができる(ステップ312)。GUIコンポーネントが有していたすべてのコールバックまたはコード抽出が、対応するNLIコンポーネントで参照され、NLIコンポーネントの戻り値で使用される。最後に、自然言語コンポーネント111は、アクションマッピングコンポーネント123を介して、所定の特定の会話コンポーネントを作成することができる。所定の特定の会話コンポーネントは、会話を構築するために使用される会話構築ブロック(ユーザからは見ることができない)である。これらは、GUIにおけるコンポーネントクラス(すなわち、ドロップダウンメニューのクラス)に相当すると見なすことができる。会話全体の設計図を構築するために、実施形態ではこれらの汎用ブロック(例えば、「単一フィールドの報告」や「フィールド値の照会」)を使用する。
【0046】
自然言語コンポーネント111は、自然言語ダイアログを生成する(ステップ314)。一実施形態において、自然言語コンポーネント111は、生成コンポーネント124を介して、インテント、エンティティ、マッピングされたアクション、および所定の特定の会話コンポーネントに基づいて、自然言語ダイアログを生成する。例えば、インテント、例、マッピングされたアクション、および所定の特定の会話コンポーネントに基づいて生成されるダイアログボックスとして、(図2Dおよび図2Eを参照すると)2つのものが考えられる。
【0047】
図4は、本発明の例示的な一実施形態に係る、自然言語コンポーネント111アプリケーションにおけるコンポーネントのブロック図400である。なお、図4は、一実装形態の例示に過ぎず、異なる実施形態を実施可能な環境に関していかなる制限も意味するものではない。図示の環境に対して多くの変更を行ってもよい。
【0048】
図4は、(1つ以上の)プロセッサ401、キャッシュ403、メモリ402、永続ストレージ405、通信ユニット407、(1つ以上の)入力/出力(I/O)インタフェース406、および通信ファブリック(communications fabric)404を含む。通信ファブリック404は、キャッシュ403、メモリ402、永続ストレージ405、通信ユニット407、および入力/出力(I/O)インタフェース406間の通信を可能にする。通信ファブリック404は、プロセッサ(マイクロプロセッサ、通信およびネットワークプロセッサなど)、システムメモリ、周辺機器、およびシステム内の他のハードウェアコンポーネントの間でデータもしくは制御情報またはその両方を渡すように設計された任意のアーキテクチャで実現することができる。例えば、通信ファブリック404は、1つ以上のバスまたはクロスバースイッチで実現することができる。
【0049】
メモリ402および永続ストレージ405は、コンピュータ可読記憶媒体である。本実施形態では、メモリ402はRAMを含む。概して、メモリ402は、任意の適切な揮発性または不揮発性のコンピュータ可読記憶媒体を含むことができる。キャッシュ403は、最近アクセスされたデータ、および最近アクセスされたデータに近いデータをメモリ402から保持することによって、プロセッサ401の性能を向上させる高速メモリ(fast memory)である。
【0050】
本発明の実施形態を実施するために使用されるプログラム命令およびデータ(例えば、ソフトウェアおよびデータ)は、キャッシュ403を介して1つ以上のプロセッサ401のそれぞれが実行するために、永続ストレージ405およびメモリ402に記憶することができる。一実施形態において、永続ストレージ405は、磁気ハードディスクドライブを含む。磁気ハードディスクに代えて、またはこれに加えて、永続ストレージ405は、ソリッドステートハードドライブ、半導体ストレージデバイス、ROM、消去可能プログラマブルROM(EPROM)、フラッシュメモリ、またはプログラム命令もしくはデジタル情報を記憶可能な任意の他のコンピュータ可読記憶媒体を含むことができる。
【0051】
永続ストレージ405が使用する媒体は、取り外し可能であってもよい。例えば、取り外し可能なハードドライブを永続ストレージ405に使用してもよい。他の例としては、光ディスク、磁気ディスク、サムドライブ、およびスマートカードが挙げられ、これらは、永続ストレージ405の一部でもある別のコンピュータ可読記憶媒体に転送するためにドライブに挿入される。自然言語コンポーネント111は、キャッシュ403を介してプロセッサ401の1つ以上がアクセスもしくは実行またはその両方を行うために、永続ストレージ405に記憶することができる。
【0052】
これらの例において、通信ユニット407は、他のデータ処理システムまたは装置との通信を可能にする。これらの例において、通信ユニット407は、1つ以上のネットワークインタフェースカードを含む。通信ユニット407は、物理通信リンクおよび無線通信リンクのいずれかまたは両方を用いて通信を可能にしてもよい。本発明の実施形態を実施するために用いられるプログラム命令およびデータ(例えば、自然言語コンポーネント111)は、通信ユニット407を介して永続ストレージ405にダウンロードしてもよい。
【0053】
I/Oインタフェース406は、各コンピュータシステムに接続可能な他のデバイスとのデータの入出力を可能にする。例えば、I/Oインタフェース406は、キーボード、キーパッド、タッチスクリーン、もしくは他の適切な入力デバイスまたはこれらの組み合わせなどの(1つ以上の)外部デバイス408との接続を可能にする。また、外部デバイス408は、例えば、サムドライブ、ポータブル光ディスク、ポータブル磁気ディスク、およびメモリカードなどのポータブル・コンピュータ可読記憶媒体を含むこともできる。本発明の実施形態を実施するために用いられるプログラム命令およびデータ(例えば、自然言語コンポーネント111)は、このようなポータブル・コンピュータ可読記憶媒体に記憶することができ、I/Oインタフェース406を介して永続ストレージ405にロードすることができる。I/Oインタフェース406は、ディスプレイ409にも接続する。
【0054】
ディスプレイ409は、ユーザにデータを表示する機構を実現するものであり、例えば、コンピュータモニタとすることができる。
【0055】
本明細書に記載したプログラムは、本発明の特定の実施形態においてプログラムが実装されるアプリケーションに基づいて識別される。ただし、本明細書における特定のプログラムの名称は、便宜上使用しているに過ぎず、したがって、本発明は、このような名称によって識別もしくは示唆またはその両方がなされる特定のアプリケーションで使用することのみに限定されない。
【0056】
本発明は、任意の可能な技術詳細レベルで統合されたシステム、方法もしくはコンピュータプログラム製品またはそれらの組み合わせとすることができる。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を記憶したコンピュータ可読記憶媒体を含んでもよい。
【0057】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用される命令を保持し、記憶することができる有形のデバイスとすることができる。コンピュータ可読記憶媒体は、一例として、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイスまたはこれらの適切な組み合わせであってもよい。コンピュータ可読記憶媒体のより具体的な一例としては、ポータブルコンピュータディスケット、ハードディスク、RAM、ROM、EPROM(またはフラッシュメモリ)、SRAM、CD-ROM、DVD、メモリスティック、フロッピーディスク、パンチカードまたは溝内の隆起構造などに命令を記録した機械的に符号化されたデバイス、およびこれらの適切な組み合せが挙げられる。本明細書で使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を介して伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、またはワイヤを介して送信される電気信号のような、一過性の信号それ自体として解釈されるべきではない。
【0058】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティングデバイス/処理デバイスへダウンロード可能である。あるいは、ネットワーク(例えばインターネット、LAN、WANもしくはワイヤレスネットワークまたはこれらの組み合わせ)を介して、外部コンピュータまたは外部ストレージデバイスへダウンロード可能である。ネットワークは、銅製伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータもしくはエッジサーバまたはこれらの組み合わせを備えることができる。各コンピューティングデバイス/処理デバイス内のネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、当該コンピュータ可読プログラム命令を、各々のコンピューティングデバイス/処理デバイスにおけるコンピュータ可読記憶媒体に記憶するために転送する。
【0059】
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用構成データ、または、スモールトークやC++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語や類似のプログラミング言語などの手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで記述されたソースコードもしくはオブジェクトコードのいずれかとすることができる。コンピュータ可読プログラム命令は、スタンドアロン型ソフトウェアパッケージとして完全にユーザのコンピュータ上で、または部分的にユーザのコンピュータ上で実行可能である。あるいは、部分的にユーザのコンピュータ上でかつ部分的にリモートコンピュータ上で、または、完全にリモートコンピュータもしくはサーバ上で実行可能である。後者の場合、リモートコンピュータは、LANやWANを含む任意の種類のネットワークを介してユーザのコンピュータに接続してもよいし、外部コンピュータに(例えば、インターネットサービスプロバイダを使用してインターネットを介して)接続してもよい。いくつかの実施形態において、例えばプログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理アレイ(PLA)を含む電子回路は、本発明の態様を実行する目的で当該電子回路をカスタマイズするために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行することができる。
【0060】
本発明の態様は、本明細書において、本発明の実施形態に係る方法、装置(システム)、およびコンピュータプログラム製品のフローチャートもしくはブロック図またはその両方を参照して説明されている。フローチャートもしくはブロック図またはその両方における各ブロック、および、フローチャートもしくはブロック図またはその両方における複数のブロックの組み合わせは、コンピュータ可読プログラム命令によって実行可能である。
【0061】
これらのコンピュータ可読プログラム命令は、機械を生産するために、汎用コンピュータ、専用コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに提供することができる。これにより、このようなコンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作を実行するための手段を創出する。これらのコンピュータ可読プログラム命令はさらに、コンピュータ、プログラマブルデータ処理装置もしくは他のデバイスまたはこれらの組み合わせに対して特定の態様で機能するよう命令可能なコンピュータ可読記憶媒体に記憶することができる。これにより、命令が記憶された当該コンピュータ可読記憶媒体は、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作の態様を実行するための命令を含む製品を構成する。
【0062】
また、コンピュータ可読プログラム命令を、コンピュータ、他のプログラマブル装置、または他のデバイスにロードし、一連の動作ステップを当該コンピュータ、他のプログラマブル装置、または他のデバイス上で実行させることにより、コンピュータ実行プロセスを生成してもよい。これにより、当該コンピュータ、他のプログラマブル装置、または他のデバイス上で実行される命令が、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作を実行する。
【0063】
図面におけるフローチャートおよびブロック図は、本発明の種々の実施形態に係るシステム、方法およびコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能性、および動作を示している。この点に関して、フローチャートまたはブロック図における各ブロックは、特定の論理機能を実行するための1つ以上の実行可能な命令を含む、命令のモジュール、セグメント、または部分を表すことができる。他の一部の実装形態において、ブロック内に示した機能は、各図に示す順序とは異なる順序で実行されてもよい。例えば、関係する機能に応じて、連続して示される2つのブロックが、実際には、略同時に実行されてもよいし、ブロックが場合により逆順で実行されてもよい。なお、ブロック図もしくはフローチャートまたはその両方における各ブロック、および、ブロック図もしくはフローチャートまたはその両方における複数のブロックの組み合わせは、特定の機能もしくは動作を行う、または専用ハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェアベースのシステムによって実行可能である。
【0064】
本発明の種々の実施形態を例示として説明してきたが、網羅的であることや、これらの実施形態に限定することを意図したものではない。当業者には明らかなように、本発明の範囲から逸脱することなく、多くの変更および変形が可能である。本明細書で用いられる用語は、実施形態の原理、実際の用途、または市場で確認される技術に対する技術的な改善を最もよく説明するために、または、他の当業者が本明細書に開示する各実施形態を理解できるように選択されたものである。
図1
図2A
図2B
図2C
図2D
図2E
図3
図4
【国際調査報告】