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

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

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

特許7714294監視用ボットプログラム(ボットプログラムを使用してユーザクエリを処理するためのコンピュータ実装方法、プログラムおよびコンピュータシステム)
<>
  • 特許-監視用ボットプログラム(ボットプログラムを使用してユーザクエリを処理するためのコンピュータ実装方法、プログラムおよびコンピュータシステム) 図1
  • 特許-監視用ボットプログラム(ボットプログラムを使用してユーザクエリを処理するためのコンピュータ実装方法、プログラムおよびコンピュータシステム) 図2
  • 特許-監視用ボットプログラム(ボットプログラムを使用してユーザクエリを処理するためのコンピュータ実装方法、プログラムおよびコンピュータシステム) 図3
  • 特許-監視用ボットプログラム(ボットプログラムを使用してユーザクエリを処理するためのコンピュータ実装方法、プログラムおよびコンピュータシステム) 図4
  • 特許-監視用ボットプログラム(ボットプログラムを使用してユーザクエリを処理するためのコンピュータ実装方法、プログラムおよびコンピュータシステム) 図5
  • 特許-監視用ボットプログラム(ボットプログラムを使用してユーザクエリを処理するためのコンピュータ実装方法、プログラムおよびコンピュータシステム) 図6
  • 特許-監視用ボットプログラム(ボットプログラムを使用してユーザクエリを処理するためのコンピュータ実装方法、プログラムおよびコンピュータシステム) 図7
  • 特許-監視用ボットプログラム(ボットプログラムを使用してユーザクエリを処理するためのコンピュータ実装方法、プログラムおよびコンピュータシステム) 図8
  • 特許-監視用ボットプログラム(ボットプログラムを使用してユーザクエリを処理するためのコンピュータ実装方法、プログラムおよびコンピュータシステム) 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-07-18
(45)【発行日】2025-07-29
(54)【発明の名称】監視用ボットプログラム(ボットプログラムを使用してユーザクエリを処理するためのコンピュータ実装方法、プログラムおよびコンピュータシステム)
(51)【国際特許分類】
   G06F 11/07 20060101AFI20250722BHJP
   G06F 3/0481 20220101ALI20250722BHJP
【FI】
G06F11/07 193
G06F11/07 140A
G06F3/0481
【請求項の数】 20
(21)【出願番号】P 2022071657
(22)【出願日】2022-04-25
(65)【公開番号】P2022168316
(43)【公開日】2022-11-07
【審査請求日】2024-09-17
(31)【優先権主張番号】17/239,638
(32)【優先日】2021-04-25
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】カランディク ピオトル
(72)【発明者】
【氏名】シュクツェパニク グルズゴーツ ピオトル
(72)【発明者】
【氏名】ザラス ミハル マシエジ
(72)【発明者】
【氏名】ヤヌスゼク パウェル タデウス
【審査官】今川 悟
(56)【参考文献】
【文献】特開2019-139746(JP,A)
【文献】特開2004-185063(JP,A)
【文献】米国特許出願公開第2018/0121808(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/07
G06F 3/0481
(57)【特許請求の範囲】
【請求項1】
ボットプログラムを使用してユーザクエリを処理するためのコンピュータ実装方法であって、
ボットプログラムを実行する段階であって、前記ボットプログラムを実行する段階がさらに、
アプリケーションプログラムの出力データを処理する段階と、
前記出力データ内のステータスメッセージを検出する段階と、
前記ステータスメッセージに関連するボットクエリを生成する段階と、
前記ボットクエリをユーザに提供する段階と、を有する、実行する段階と、
前記ユーザへの前記ボットクエリの前記提供に応じて、前記ユーザからユーザクエリを受信する段階であって、前記ユーザクエリは、前記ボットクエリに少なくとも部分的に基づいている、受信する段階と、
知識ベースを使用して前記ユーザクエリに対する1つまたは複数の解決策を決定する段階と、
前記1つまたは複数の解決策のうちの選択された解決策を適用する段階と、
を備える、方法。
【請求項2】
前記アプリケーションプログラムの前記出力データを処理する段階が、さらに、
異なるタイプのアプリケーションに対応するデータを含む呼び出しデータベースを提供する段階であって、特定のタイプのアプリケーションのデータは、前記特定のタイプのアプリケーションの手順と、前記特定のタイプのアプリケーションに関連付けられたトークンに関連付けられた事前定義されたクエリとを含む、提供する段階と、
前記アプリケーションプログラムのタイプの認識を実行する段階と、
前記アプリケーションプログラムの前記タイプに関連付けられる手順を前記呼び出しデータベース内で検索する段階と、
前記認識されたタイプに関連付けられる前記手順に少なくとも部分的に基づいて前記出力データを分析する段階と、
を有する、請求項1に記載の方法。
【請求項3】
前記ステータスメッセージに関連する前記ボットクエリを生成する段階がさらに、
前記検出されたステータスメッセージをトークン化する段階と、
前記トークンに関連付けられる前記クエリを前記呼び出しデータベースから取得する段階であって、前記生成されたボットクエリは前記取得されたクエリである、取得する段階と、を有する、
請求項2に記載の方法。
【請求項4】
前記呼び出しデータベース内に前記ボットクエリを記憶する段階と、
前記ボットクエリに少なくとも部分的に基づいて前記呼び出しデータベースを更新する段階と、
をさらに有する、請求項2に記載の方法。
【請求項5】
前記ボットクエリを提供する段階がさらに、
前記アプリケーションプログラムに関連付けられるアプリケーションの追加のボットクエリを前記呼び出しデータベースから提供する段階を有する、
請求項4に記載の方法。
【請求項6】
前記アプリケーションプログラムのアプリケーションプログラミングインタフェースにアクセスするように前記ボットプログラムを構成する段階をさらに備え、前記ボットクエリを生成する段階がさらに、
前記検出されたステータスメッセージに関連する候補ボットクエリを生成する段階と、
前記アプリケーションプログラミングインタフェースの要求に少なくとも部分的に基づいて前記候補ボットクエリを指定する段階であって、前記生成されたボットクエリは前記指定された候補ボットクエリである、指定する段階と、を有する、
請求項1から5のいずれか一項に記載の方法。
【請求項7】
前記ユーザクエリが前記ボットクエリを考慮していることを確認するよう前記ユーザに促す段階と、
前記ユーザから初期ユーザクエリを受信する段階であって、前記ユーザクエリが前記初期ユーザクエリの修正に対応する、受信する段階と、
をさらに備える、請求項1から5のいずれか一項に記載の方法。
【請求項8】
前記出力データをディスプレイ上のアプリケーションユーザインタフェースに表示する段階と、
前記ボットクエリを前記ディスプレイ上のボットダイアログウィンドウに表示する段階であって、前記ボットダイアログウィンドウおよび前記アプリケーションユーザインタフェースは同時に表示され、前記ユーザクエリは前記ボットダイアログウィンドウを介して受信される、表示する段階と、
をさらに備える、請求項1から5のいずれか一項に記載の方法。
【請求項9】
前記アプリケーションユーザインタフェースがパネルとダッシュボードとを含み、前記出力データの前記処理が、前記アプリケーションユーザインタフェースを使用して前記表示された出力データを処理する段階を有する、請求項8に記載の方法。
【請求項10】
前記ボットクエリが、前記ステータスメッセージの根本原因を発見するための第1のクエリと、前記ステータスメッセージの詳細を提供するための第2のクエリとを含む、請求項1から5のいずれか一項に記載の方法。
【請求項11】
ユーザ・ボットチャットセッションを開始する段階をさらに備え、前記ユーザクエリの受信、前記1つまたは複数の解決策の決定、および前記選択された解決策の適用は前記ユーザ・ボットチャットセッションの間に生じる、請求項1から5のいずれか一項に記載の方法。
【請求項12】
前記ボットプログラムを前記アプリケーションプログラムに組み込む段階をさらに備える、請求項1から5のいずれか一項に記載の方法。
【請求項13】
アプリケーションサーバのサービスを使用してデータを出力するよう前記アプリケーションプログラムを構成する段階であって、前記アプリケーションプログラムは、クライアントに接続された前記アプリケーションサーバを含む第1のクライアント・サーバ構成における前記クライアントである、較正する段階と、
前記ボットプログラムを、前記ボットプログラムに接続されたボットサーバを含む第2のクライアント・サーバ構成におけるクライアントとして構成する段階と、
をさらに備える、請求項1から5のいずれか一項に記載の方法。
【請求項14】
前記アプリケーションプログラムが、資産管理アプリケーションおよびネットワーク管理アプリケーションからなる群から選択される、請求項1から5のいずれか一項に記載の方法。
【請求項15】
ボットプログラムを使用してユーザクエリを処理するためのコンピュータプログラムであって、プロセッサに、
ボットプログラムを実行する手順であって、前記ボットプログラムを実行する手順はさらに、
アプリケーションプログラムの出力データを処理する手順と、
前記出力データ内のステータスメッセージを検出する手順と、
前記ステータスメッセージに関連するボットクエリを生成することと、
前記ボットクエリをユーザに提供する手順と、を含む、手順と、
前記ボットクエリを前記ユーザに前記提供することに応じて、前記ユーザからユーザクエリを受信する手順であって、前記ユーザクエリは前記ボットクエリに少なくとも部分的に基づいている、手順と、
知識ベースを使用して前記ユーザクエリに対する1つまたは複数の解決策を決定する手順と、
前記1つまたは複数の解決策のうちの選択された解決策を適用する手順と、を実行させる、
コンピュータプログラム。
【請求項16】
前記プロセッサに、さらに、
異なるタイプのアプリケーションに対応するデータを含む呼び出しデータベースを提供する手順であって、特定のタイプのアプリケーションのデータは、前記特定のタイプのアプリケーションの手順と、前記特定のタイプのアプリケーションに関連付けられたトークンに関連付けられた事前定義されたクエリとを含む、手順と、
前記アプリケーションプログラムのタイプの認識を実行する手順と、
前記認識されたタイプに関連付けられる手順を前記呼び出しデータベース内で検索する手順と、
前記アプリケーションプログラムの前記タイプに関連付けられる前記手順に少なくとも部分的に基づいて前記出力データを分析する手順と、を実行させる、
請求項15に記載のコンピュータプログラム。
【請求項17】
前記プロセッサに、さらに、
前記出力データをディスプレイ上のアプリケーションユーザインタフェースに表示する手順と、
前記ボットクエリを前記ディスプレイ上のボットダイアログウィンドウに表示する手順であって、前記ボットダイアログウィンドウおよび前記アプリケーションユーザインタフェースが同時に表示され、前記ユーザクエリは前記ボットダイアログウィンドウを介して受信される、手順と、を実行させる、
請求項15または16に記載のコンピュータプログラム。
【請求項18】
ボットプログラムを使用してユーザクエリを処理するためのコンピュータシステムであって、前記コンピュータシステムは、1つまたは複数のコンピュータプロセッサと、1つまたは複数のコンピュータ可読ストレージデバイスと、前記1つまたは複数のコンピュータプロセッサによる実行のための、前記1つまたは複数のコンピュータ可読ストレージデバイス上の記憶されたプログラム命令とを有し、前記記憶されたプログラム命令は、
ボットプログラムを実行するためのプログラム命令であって、前記ボットプログラムを実行することはさらに、
アプリケーションプログラムの出力データを処理することと、
前記出力データ内のステータスメッセージを検出することと、
前記ステータスメッセージに関連するボットクエリを生成することと、
前記ボットクエリをユーザに提供することと、を行うためのプログラム命令を含む、プログラム命令と、
前記ボットクエリを前記ユーザに前記提供することに応じて、前記ユーザからユーザクエリを受信するためのプログラム命令であって、前記ユーザクエリは前記ボットクエリに少なくとも部分的に基づいている、プログラム命令と、
知識ベースを使用して前記ユーザクエリに対する1つまたは複数の解決策を決定するためのプログラム命令と、
前記1つまたは複数の解決策のうちの選択された解決策を適用するためのプログラム命令と、を有する、
コンピュータシステム。
【請求項19】
前記記憶されたプログラム命令がさらに、
異なるタイプのアプリケーションに対応するデータを含む呼び出しデータベースを提供するためのプログラム命令であって、特定のタイプのアプリケーションのデータは、前記特定のタイプのアプリケーションの手順と、前記特定のタイプのアプリケーションに関連付けられたトークンに関連付けられた事前定義されたクエリとを含む、プログラム命令と、
前記アプリケーションプログラムのタイプの認識を実行するためのプログラム命令と、
前記認識されたタイプに関連付けられる手順を前記呼び出しデータベース内で検索するためのプログラム命令と、
前記アプリケーションプログラムの前記タイプに関連付けられる前記手順に少なくとも部分的に基づいて前記出力データを分析するためのプログラム命令と、を有する、
請求項18に記載のコンピュータシステム。
【請求項20】
前記記憶されたプログラム命令がさらに、
前記出力データをディスプレイ上のアプリケーションユーザインタフェースに表示するためのプログラム命令と、
前記ボットクエリを前記ディスプレイ上のボットダイアログウィンドウに表示するためのプログラム命令であって、前記ボットダイアログウィンドウおよび前記アプリケーションユーザインタフェースが同時に表示され、前記ユーザクエリは前記ボットダイアログウィンドウを介して受信される、プログラム命令と、を有する、
請求項18または19に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デジタルコンピュータシステムのフィールドに関し、より具体的には、ボットプログラムを使用してユーザクエリを処理するための方法に関する。
【背景技術】
【0002】
チャットボットは、ユーザとの直接接触を提供する代わりに、テキストまたはテキスト音声を介してオンラインチャット会話を行うために使用されるソフトウェアアプリケーションである。しかしながら、チャットボットは、特にユーザにより提供される入力が制御されていない場合に、連続同調およびテストを必要とし得る。
【発明の概要】
【発明が解決しようとする課題】
【0003】
監視プログラムなどのアプリケーションプログラムは、ユーザがアプリケーションプログラムの出力データを理解できないほど複雑であり得る。これらの問題の調査および訂正がユーザの作業の大部分となり得る。
【課題を解決するための手段】
【0004】
以下では、本開示の1つまたは複数の実施形態に関する基本的な理解を提供するために概要を提示する。この概要は、鍵となるもしくは重要な要素を識別すること、または、特定の実施形態のいかなる範囲もしくは特許請求の範囲のいかなる範囲も定めることを意図していない。その唯一の目的は、後に提示されるより詳細な説明への前置きとして簡略化された形態で概念を提示することである。本明細書に記載の1つまたは複数の実施形態では、デバイス、システム、コンピュータ実装方法、装置、もしくはコンピュータプログラム製品、またはその組み合わせは、ボットプログラムを使用してユーザクエリの処理を可能にする。
【0005】
本発明の態様は、ボットプログラムを実行することによりボットプログラムを使用してユーザクエリを処理することに関連付けられる方法、システム、およびコンピュータ可読媒体を開示し、ボットプログラムの実行することはさらに、アプリケーションプログラムの出力データを処理する段階と、出力データ内のステータスメッセージを検出する段階と、ステータスメッセージに関連するボットクエリを生成する段階と、ボットクエリをユーザに提供する段階と、を有する、実行する段階と、ユーザへのボットクエリの提供に応じて、ユーザからユーザクエリを受信する段階であって、ユーザクエリは、ボットクエリに少なくとも部分的に基づいている、受信する段階と、知識ベースを使用してユーザクエリに対する1つまたは複数の解決策を決定する段階と、解決策のうちの選択された解決策を適用する段階と、を含む。
【図面の簡単な説明】
【0006】
添付図面における本開示のいくつかの実施形態に関するより詳細な説明を通じて、本開示の上記および他の目的、特徴、および利点がより明らかになる。ここで、同じ参照符号は概して、本開示の実施形態の同じコンポーネントを指している。
【0007】
図1】本発明の一実施形態によるコンピューティング環境の概略図を提供する。
【0008】
図2】本発明の一実施形態による、ボットプログラムを使用してユーザクエリを処理するための動作シーケンスを示すフローチャートを提供する。
【0009】
図3】本発明の一実施形態による、実行中の監視アプリケーションプログラムの出力データを処理するための動作シーケンスを示すフローチャートを提供する。
【0010】
図4】本発明の一実施形態による、ボットクエリを生成するための動作シーケンスを示すフローチャートを提供する。
【0011】
図5】本発明の一実施形態による、ユーザクエリを制御するための動作シーケンスを示すフローチャートを提供する。
【0012】
図6】本発明の一実施形態による、ボットプログラムを使用してユーザクエリを処理するための動作シーケンスを示すフローチャートを提供する。
【0013】
図7】本発明の一実施形態による、1つまたは複数の方法ステップを実装するために好適なコンピュータ化システムを示す。
【0014】
図8】本発明の一実施形態によるクラウドコンピューティング環境を示す。
【0015】
図9】本発明の一実施形態による抽象化モデル層を示す。
【発明を実施するための形態】
【0016】
本発明の様々な実施形態の説明は、例示の目的で提示されるものであり、網羅的であることも、開示される実施形態に限定することも意図されていない。記載されている実施形態の範囲および趣旨から逸脱することなく、多くの修正および変形が当業者には明らかとなるであろう。本明細書において使用される用語は、実施形態の原理、実際的な用途、または、市場において見られる技術に対する技術的改善を最も良く説明するために、または、当技術分野における他の当業者が、本明細書において開示される実施形態を理解することを可能にするために選択された。
【0017】
アプリケーションプログラムは、例えば、監視アプリケーションプログラムであり得る。監視アプリケーションプログラムはコンピュータプログラムであり得る。ステータスメッセージは、その動作がアプリケーションプログラムによって制御されているシステムのステータスであり得る。ステータスメッセージは、エラーメッセージ、警告メッセージ、または何らかの知識を提供するメッセージであり得る。アプリケーションプログラムは、タスク、例えば、監視タスクを実行し得る。タスクは、1つまたは複数のデータ処理システムの動作の観察、調整、制御、もしくは検証、またはその組み合わせを含み得る。タスクは、例えば、1つまたは複数の制御を実行し得る。異なるタイプの制御が実行され得る。例えば、制御は、データ処理システムのセキュリティが確立された規格の基準のセットに対してどれほど良好に準拠しているかを測定し得る。アプリケーションプログラムによって実行される制御のタイプに応じて、異なるタイプのアプリケーションプログラムが提供され得る。アプリケーションプログラムは、タスクの結果を示す出力データを提供するように構成され得る。出力データは、アプリケーションプログラムによって定期的に提供され得る。例えば、アプリケーションプログラムは、監視タスクを連続的または定期的に実行するオンライン監視プログラムであり得る。別の例では、アプリケーションプログラムは、監視タスクをオフラインで実行し得る。一例では、出力データは、アプリケーションプログラムのアプリケーションユーザインタフェース上に表示され得る。出力データは、アプリケーションユーザインタフェース上の1つまたは複数のパネルに表示され得る。アプリケーションユーザインタフェースは、例えば、ダッシュボードを含み得る。出力データは、例えば、特定の主要業績評価指標(KPI)の値、データ処理システムの1つまたは複数のコンピュータの動作ステータスなどを含み得る。
【0018】
しかしながら、監視プログラムなどのアプリケーションプログラムは、ユーザがアプリケーションプログラムの出力データを理解できないほど複雑であり得る。これらの問題の調査および訂正がユーザの作業の大部分となり得る。本発明の本実施形態は、ボットプログラムを使用して、ユーザが出力データにおける識別された問題に対して調査もしくは訂正またはその両方を行うのに役立つ。ボットプログラムはコンピュータプログラムである。問題の調査または訂正の前に、ボットプログラムは、ユーザクエリまたはユーザ入力を受信し、自然言語処理(NLP)を使用してユーザクエリを理解する。しかしながら、ユーザクエリが正しく定式化されていない場合、ボットプログラムはユーザクエリを理解しないことがあり、自然言語処理技術の限界の性質が原因で、回答を提供することができないか、またはユーザクエリに対して不正確な回答を提供するかのいずれかとなる。例えば、ユーザは、問題をどのように説明するかを知らない場合があり、例えば、ユーザは、その問題にとっては重要ではない場合がある詳細を多く提供しすぎることがあり、それにより、ボットプログラムの推論アルゴリズムを混乱させ得る。本発明の本実施形態は、ユーザクエリの定式化を制御する、またはユーザがクエリを定式化するのを助けることによって、この問題を解決する。結果として、行われ得る技術的判断に基づいてボットプログラムが正確な解決策を提供することを可能にすることによって技術的利点が提供され、例えば、技術的判断は、ボットプログラムによって提供される解決策に基づいてデータ処理システムの構成に対する変更を必要とし得る。そのため、本発明の本実施形態は、データ処理システムの構成ミス、処理リソースの無駄遣いを防止し、かつ、構成ミスが引き起こし得る潜在的な惨事を防止する。
【0019】
本発明の本実施形態の別の利点は、出力データに基づいてボットクエリをあらかじめ準備することによって、ユーザから受信したあらゆるクエリを予期することである。結果として、初期ユーザクエリが適切であり得るように、提案されたボットクエリをユーザに提示することによって処理時間が節約される。
【0020】
一実施形態では、出力データを処理する段階は、異なるタイプのアプリケーションのデータを含む呼び出しデータベースを提供する段階であって、特定のタイプのアプリケーションのデータは、特定のタイプのアプリケーションの手順と、特定のタイプのアプリケーションに関連付けられたトークンに関連付けられた事前定義されたクエリとを含む、提供する段階と、実行中のアプリケーションプログラムのタイプの認識を実行する段階と、認識されたタイプに関連付けられる手順を呼び出しデータベース内で検索する段階と、手順に基づいて出力データを分析する段階とを含む。
【0021】
例えば、呼び出しデータベースは、異なるタイプのアプリケーションプログラムに関連付けられた項目を含み得る。これらの項目も各項目は、その項目によって表されるアプリケーションプログラムのタイプの手順を含み得る。項目は、さらに、クエリおよびトークンのペアを含み得、トークンは、その項目によって表されるアプリケーションプログラムのタイプのステータスメッセージを表す。例えば、ステータスメッセージが「コンピュータAにはデータがない」を含む場合、呼び出しデータベースは、「データなし」および「コンピュータA」というトークンを含み得、トークンのそれぞれは1つまたは複数のクエリに関連付けられる。トークンおよび関連付けられたクエリは、データ処理システムの以前に処理された問題に基づいて収集された履歴データであり得る。例えば、呼び出しデータベースは、本方法により、生成されたボットクエリ、もしくはボットプログラムにより受信されたユーザクエリ、またはその組み合わせに関連付けられた、検出されたステータスメッセージのトークンを記憶することによって更新され得る。
【0022】
アプリケーションプログラムは、1つまたは複数の制御を実行するように構成され得、書く制御は、それぞれの1つまたは複数の手順を使用して実行され得る。例えば、データ処理システムの入力データの品質、精度、完全性などの制御がデータ入力手順に関連付けられ得る。本実施形態では、データ入力手順は、入力データのチェックプロセスを理解するために処理される。また、当該制御からもたらされる出力データがステータスメッセージを含むかどうか、および、もし含む場合に、どのタイプのステータスメッセージを示すかを判断する。
【0023】
本実施形態は、クエリ、およびもたらされるそれぞれの解決策の精度を高めることによって有利となり得る。
【0024】
一実施形態では、ボットクエリを生成する段階は、検出されたステータスメッセージをトークン化する段階と、トークンに関連付けられるクエリを呼び出しデータベースから取得する段階であって、生成されたボットクエリは取得されたクエリである、取得する段階と、を含む。本実施形態は、以前に得た経験を使用することによって有利となり得、特に、ステータスメッセージおよび問題のほとんどが経時的に再現し得るために有利であり得る。
【0025】
一実施形態では、ボットプログラムは、アプリケーションプログラムのアプリケーションプログラムインタフェースにアクセスするように構成され得、ボットクエリを生成する段階は、検出されたステータスメッセージに関連する候補ボットクエリを生成する段階と、アプリケーションプログラミングインタフェースの機能もしくは要求またはその組み合わせに従って候補ボットクエリを指定する段階であって、生成されたボットクエリは指定された候補ボットクエリである、指定する段階とを含む。
【0026】
例えば、ボットプログラムは、アプリケーションプログラミングインタフェースの機能もしくは要求またはその組み合わせの呼び出しの履歴へのアクセスを有し得る。呼び出しに従って候補ボットクエリの考えられる修正を識別するために、候補ボットクエリはこの呼び出しの履歴と比較され得、例えば、修正は、候補ボットクエリに1つまたは複数の単語を追加することからなり得る。本実施形態はさらに、生成されたボットクエリ、およびもたらされるそれぞれの解決策の精度を高め得る。
【0027】
一実施形態では、本方法はさらに、ボットプログラムによってユーザから初期ユーザクエリを受信する段階と、ユーザクエリがボットクエリを考慮していることを確認するようユーザに促す段階であって、ユーザクエリは促す段階に応じて受信され、ユーザクエリは、初期ユーザクエリまたは初期ユーザクエリの修正である、促す段階とを含む。これは特に、ボットプログラムによって提供されるテンプレートクエリの存在をユーザに知らせるまたはリマインドすることにより有利となり得る。初期クエリが提案されたボットクエリと比較して不特定である場合、ユーザは初期クエリを改善させることができる。このように、提案および適用された解決策は正確である。
【0028】
一実施形態では、本方法はさらに、出力データをディスプレイ上のアプリケーションユーザインタフェースに表示する段階と、ボットクエリをディスプレイ上のボットダイアログウィンドウに表示する段階であって、ボットダイアログウィンドウおよびアプリケーションユーザインタフェースは同時に表示され、ユーザクエリはボットダイアログウィンドウを介して受信される、表示する段階とを含む。
【0029】
一実施形態では、アプリケーションユーザインタフェースは、パネルおよびダッシュボードのうちのいずれか1つを含み、出力データを処理する段階は、アプリケーションユーザインタフェースの内容の監視の微粒化(atomization)を可能にし得るアプリケーションユーザインタフェースを使用して、表示された出力データを処理する段階を含む。さらに、ユーザがステータスメッセージに気づく前に、ボットプログラムが所与のステータスメッセージについてボットクエリを予期して提供することが可能となる。一度ユーザがステータスメッセージに気づくと、ユーザはすぐに提案されたボットクエリを使用することができ、これにより、データ処理システムをチェックするプロセスが加速し得る。
【0030】
一実施形態では、ボットクエリは、ステータスメッセージの根本原因を発見するためのクエリ、またはステータスメッセージの詳細を提供するためのクエリである。クエリは、例えば、質問であり得る。一例では、ボットクエリは、質問をするためにユーザによりそのまま使用され得る具体的なクエリであり得る。別の例では、ボットクエリは、ユーザが、自身が検出したステータスメッセージに適応させ得るテンプレートまたは一般的な質問であり得る。
【0031】
一実施形態では、ボットプログラムを実行する段階は、ユーザクエリの受信と、解決策の判断と、選択された解決策の適用を含む。結果として、質問を構築すること、および、ユーザが検出した問題に対する解決策を提供するためにユーザとコミュニケーションを取ることの両方について、ボットプログラムの単独の実行を使用することができるため、これは有利となり得る。
【0032】
一実施形態では、本方法はさらに、ユーザ・ボットチャットセッションを起動させる段階を含み、ユーザクエリの受信、解決策の決定、および選択された解決策の適用はこのセッション中に実行される。一例では、ボットプログラムはまず、質問を構築するために実行され得る。ボットプログラムの別の実行は、ユーザ・ボットチャットセッションを起動させるために実行され得、例えば、他の実行は、ユーザのユーザリクエストに応じて実行され得る。ユーザが出力データを分析し、ステータスメッセージに気づくのにはるかに多くの時間を必要とし得る一方で、ボットプログラムはミリ秒単位でステータスメッセージを検出して質問を構築することができるため、これは有利となり得る。本実施形態によれば、リソースを節約するために、エラー検出時間の差によって定義される時間ウィンドウの間、ボットプログラムをオフに切り替えることができる。
【0033】
一実施形態では、ボットプログラムはアプリケーションプログラム内に組み込まれている。
【0034】
一実施形態では、アプリケーションプログラムは、クライアントに接続されたアプリケーションサーバを含むクライアント・サーバ構成におけるクライアントであり、アプリケーションプログラムは、アプリケーションサーバのサービスを使用してデータを出力するように構成され、ボットプログラムは、ボットプログラムに接続されたボットサーバを含むクライアント・サーバ構成におけるクライアントであり、ボットプログラムは、ボットサーバの1つまたは複数のサービスを使用して本方法を実行する。
【0035】
一実施形態では、本方法はさらに、検出されたステータスメッセージと関連付けて呼び出しデータベース内にボットクエリを記憶する段階を含み、これにより、呼び出しデータベースの連続的な更新または充填が可能となる。
【0036】
一実施形態では、本方法はさらに、同じアプリケーションプログラムに対して、または他のアプリケーションに対して本方法を繰り返し、それによって、呼び出しデータベースを更新する段階を含む。
【0037】
一実施形態では、ボットクエリを提供する段階はさらに、アプリケーションプログラムと同様のアプリケーションの呼び出しデータベースのさらなるボットクエリを提供することを含む。
【0038】
一実施形態では、アプリケーションプログラムは、資産管理アプリケーションおよびネットワーク管理アプリケーションのいずれか1つである。さらに、出力データの処理が適宜適応され得るようにアプリケーションプログラムのタイプを決定する段階は有利となり得る。例えば、ネットワーク管理アプリケーションのステータスメッセージは、別のタイプのアプリケーションのステータスメッセージと比較して異なるフォーマットを有し得る。
【0039】
図1は、本発明の一実施形態の一例によるコンピューティング環境100の概略図である。
【0040】
本発明は、処理されないことをユーザが望む個人データ、内容、または情報を含み得る、呼び出しデータベース115および知識ベース117などの様々なアクセシブルデータソースを含み得る。個人データは、個人を識別する情報、または機微な個人情報、ならびに、追跡またはジオロケーション情報などのユーザ情報を含む。処理とは、個人データに対して実行される、収集、記録、編成、構成、記憶、適応、改変、取得、参照、使用、伝送による開示、配布、もしくは別様に利用可能にすること、組み合わせ、制限、消去、または破壊などの、任意の自動化されたまたは自動化されていない動作、または動作のセットを指す。アプリケーションサーバ105は、個人データの承認された安全な処理を可能にする。アプリケーションサーバ105は、個人データの収集の通知と共にインフォームドコンセントを提供し、それにより、ユーザは個人データの処理についてオプトインまたはオプトアウトすることができる。同意はいくつかの形態を取り得る。オプトイン同意は、個人データが処理される前に、肯定的アクションを取ることをユーザに課すことができる。代替的に、オプトアウト同意は、個人データが処理される前に、個人データの処理を阻止する肯定的アクションを取ることをユーザに課すことができる。アプリケーションサーバ105は、個人データおよび処理の性質(例えば、タイプ、範囲、目的、期間など)に関する情報を提供する。アプリケーションサーバ105は、記憶した個人データのコピーをユーザに提供する。アプリケーションサーバ105は、不正確または不完全な個人データの修正または完成を可能にする。アプリケーションサーバ105は、個人データの即時の削除を可能にする。
【0041】
コンピューティング環境100は、監視デバイス101、ボットサーバ103、およびアプリケーションサーバ105を含む。監視デバイス101は、例えば、デスクトップコンピューティングデバイス、スマートディスプレイ、タブレットコンピューティングデバイス、ラップトップコンピューティングデバイス、または他の適切な形態のクライアントコンピューティングデバイスであり得る。ボットサーバ103は、クラウドコンピューティング構成において動作する単一のサーバデバイスまたは複数のサーバデバイスとして提供され得る。アプリケーションサーバ105は、クラウドコンピューティング構成において動作する単一のサーバデバイスまたは複数のサーバデバイスとして提供され得る。別個のコンポーネントとして示されているが、ボットサーバ103およびアプリケーションサーバ105は、別の例では、同じサーバ上に実装され得る。
【0042】
監視デバイス101は、通信ネットワークを介してボットサーバ103およびアプリケーションサーバ105と通信するように構成され得る。通信ネットワークは、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、もしくは無線ネットワーク、またはその組み合わせを含み得る。監視デバイス101は、ボットプログラム109、および監視アプリケーションプログラムなどのアプリケーションプログラム107を含む。アプリケーションプログラム107は、実行されるとディスプレイデバイス111上にアプリケーションユーザインタフェースを生成する命令を含む。アプリケーションプログラム107は、事前定義された制御の結果を示す出力データをアプリケーションユーザインタフェース上に表示するように構成され得る。これらの制御の目的は、例えば、アプリケーションの適切な開発および実装を確実にし、プログラムおよびデータファイルならびにコンピュータ動作の完全性を確実にし得る。これらの制御は、例えば、システム開発ライフサイクル制御、プログラム変更管理制御、データ処理システムに対する物理的セキュリティ制御、コンピュータ動作制御などを含み得る。制御のそれぞれは、1つまたは複数の手順を使用して実行され得る。アプリケーションプログラム107はアプリケーションプログラミングインタフェース(API)113を提供する。ボットプログラム109は、実行されると、本発明の本実施形態の少なくとも一部を実行する命令を含む。例えばは、ボットプログラム109は、実行されると、会話キャンバスをディスプレイデバイス111上に生成する命令を含む。会話キャンバスは、ユーザ120からのユーザクエリおよびボットプログラム109によって決定された応答を含むダイアログを表示するグラフィックユーザインタフェースを含む。アプリケーションユーザインタフェースおよび会話キャンバスは同時に表示され得る。ボットプログラム109は、アプリケーションプログラム107のアプリケーションプログラムインタフェース113にアクセスし、API113を介して実行された呼び出しを判断することができる。一例では、ボットプログラム109は、アプリケーションプログラム107とは別個に実行された別個のプログラムである。別の例では、ボットプログラム109は、アプリケーションプログラム107と同時に実行され得るアプリケーションプログラム107のモジュールであり、例えば、ボットプログラム109は、アプリケーションプログラム107内に組み込まれていてもよい。ボットプログラム109は、呼び出しデータベース115および知識ベース117にアクセスし得る。呼び出しデータベース115は、異なるタイプのアプリケーション上のデータを含む。特定のタイプのアプリケーションのデータは、特定のタイプのアプリケーションの手順と、特定のタイプのアプリケーションに関連付けられたトークンに関連付けられた事前定義されたクエリとを含む。例えば、アプリケーションのタイプがネットワーク管理アプリケーションである場合、そのタイプに対して呼び出しデータベース115内で記憶されたデータは、ネットワークトラフィックおよびネットワーク問題に関するクエリなどのネットワーク機能を制御する手順を含み得、クエリは、ネットワークステータスメッセージに関連するトークンに関連付けられている。
【0043】
図2は、本発明の本実施形態の一例による、ボットプログラムを使用してユーザクエリを処理するための方法のフローチャートである。説明の目的のために、図2で説明される方法は、図1に示されるシステムにおいて実装され得るが、この実装に限定されるものではない。図2の方法は、例えば、監視デバイス101によって実行され得る。
【0044】
一実施形態では、本方法は、ステップ201において、実行中のアプリケーションプログラム107の出力データを処理する。例えば、本方法は、ボットプログラム109を利用して、アプリケーションプログラム107が実行している間に出力データを処理することができる。この例では、ボットプログラム109は、アプリケーションプログラム107の実行が開始されると自動的に起動され得る。結果として、本方法は、ユーザに対する連続的な支援を可能にする。別の例では、ボットプログラム109は、アプリケーションプログラム107の実行中の任意の時点で起動され得る。結果として、本方法は、ボットプログラム109を介してオンデマンド支援を提供する。
【0045】
出力データは、例えば、属性の値を含み得、属性は、アプリケーションプログラム107によって実行されている制御の結果を描写しており、例えば、ある属性は「アクセス可能」と名付けられ得、これはコンピュータがアクセス可能であるかアクセス可能でないかを示す。所与のコンピュータに関連付けられた「アクセス可能」という属性の値を読み取ることにより、ボットプログラム109は、そのコンピュータがアクセス可能であるか否かを判断することができる。1つのシナリオでは、コンピュータがアクセス可能でない場合、「アクセス可能」という属性の値はステータスメッセージとみなされ得る。別の例では、出力データはさらに、1つまたは複数のKPIの値を含み得、KPIのそれぞれは、そのKPIの値が正常値であるか、または誤った/問題のある値であるかを示す、フラグまたは別のインジケータに関連付けられている。KPIのそれぞれに関連付けられたインジケータを読み取ることにより、ボットプログラムは、KPIに関連する問題が存在するかどうかを判断し得る。関連付けられたKPIの値が予測通りではない場合に、インジケータの値はステータスメッセージとみなされ得る。別の例では、出力データは、制御のそれぞれのステータスを示すメッセージを表示し得、制御によって問題が検出された場合には、ステータスメッセージが提供され得る。ステータスメッセージは、特定の形式(例えば、エラーメッセージの場合には「エラー」という単語で開始する)を含み得る。このシナリオでは、ボットプログラム109は表示されたメッセージを解析し、「エラー」で開始するメッセージを検索し得る。
【0046】
一例では、ボットプログラム109は、実行されている制御の手順を利用して、制御のそれぞれに関連付けられている表示された情報のいずれかがエラーであるか否かを判断する。例えば、ボットプログラム109は、手順のコードを解析して、出力された呼び出しまたは出力機能を識別し、例えばNLP技法を使用して、ステータスメッセージであるメッセージを識別し得る。さらに、出力データをそれらの識別されたメッセージと比較することにより、ボットプログラム109はステータスメッセージがあるか否かを判断することができる。
【0047】
一実施形態では、本方法は、ステップ203において、出力データ内の1つまたは複数のステータスメッセージを検出する。ステータスメッセージは、エラーメッセージ、警告メッセージ、または何らかの知識を提供するメッセージであり得る。1つのシナリオでは、書く検出されたステータスメッセージについて、ユーザは、解決策を見出すか、またはステータスメッセージを少なくとも理解する必要があり得る。このシナリオでは、ユーザは、ボットプログラム109と通信し、応答を得るためにステータスメッセージに関連する質問をし得る。しかしながら、ユーザが提供する詳細は不十分であり得る、例えば、提供される詳細が余りにも少ないか、またはステータスメッセージとは無関係であるより多くの詳細が提供されるかのいずれかのため、コンピュータによって処理され得る質問を定式化することは困難なタスクを提示する。本発明の本実施形態は、ユーザクエリを予期し、提案を提供することによってこの問題を解決する。そのため、本方法は、ステップ205において、ボットプログラム109が、検出されたステータスメッセージのそれぞれに関連する1つまたは複数のボットクエリを生成することを可能にする。
【0048】
1つの第1のクエリ決定例では、本方法は、ボットプログラム109を利用して、検出されたステータスメッセージをトークンへとトークン化する。この例では、本方法は、トークンに関連付けられたクエリを識別するために、ボットプログラム109を利用して、呼び出しデータベース115内のトークンのそれぞれを検索する。本方法は、ステップ205の生成されたクエリとして識別されたクエリを利用する。
【0049】
1つの第2のクエリ決定例では、本方法は、ボットプログラム109を利用して、ステータスメッセージに関連付けられた出力手順を検討し、例えばNLP技法を使用して、ボットクエリを推測する。この例では、ボットプログラム109は、ボットクエリを生成するために、出力手順に関連付けられたドキュメンテーションまたはコメントを比較し得る。
【0050】
一実施形態では、本方法は、ステップ207においてボットクエリをユーザに提供する。ボットクエリは、例えば、同じアプリケーションユーザインタフェース上、またはボットプログラム109の別個の会話ウィンドウ上に表示され得る。ボットクエリは、それぞれのステータスメッセージに関連付けられて提供され得る。このように、ユーザは、ステータスメッセージに対して、および提案されたボットクエリに対してアクセスを有する。結果として、このように、ユーザは、ユーザクエリをより正確に定式化して、ボットプログラム109によってより効率的に処理され得るものにすることができる。
【0051】
一実施形態では、ステップ207におけるユーザへのボットクエリの提供に応じて、本方法はボットプログラム109を利用して、ステップ209においてユーザからユーザクエリを受信し、ユーザクエリは、ステップ205のボットクエリに基づいている。例えば、ユーザクエリは、ボットプログラム109によって検出されたステータスメッセージのうちの各検出されたステータスメッセージに関連し得る(すなわち、ユーザは、ボットプログラム109によって検出されたものと同じステータスメッセージを検出した)。別の例では、ユーザクエリは、検出されたステータスメッセージのサブセットに関連し得、例えば、ユーザは、検出されたステータスメッセージの一部が実際にステータスメッセージであることに気づいたまたは理解しただけであり得る。両方の場合において、ユーザクエリは、ステータスメッセージを理解するため、または根本原因、およびしたがってステータスメッセージの解決策を見出すための質問であり得る。
【0052】
一実施形態では、本方法はボットプログラム109を利用して、ステップ211において、知識ベースを使用してユーザクエリに対する1つまたは複数の解決策を決定する。例えば、ボットプログラム109は、自然言語理解(NLU)、自然言語生成(NLG)、機械学習、深層学習、または他の人工技法を使用して、解決策を決定得る。
【0053】
一実施形態では、本方法は、ボットプログラム109を利用して、ステップ213において、解決策のうちの少なくとも1つの選択された解決策を適用する。一例では、本方法は、解決策のうちの少なくとも1つの解決策を選択するようユーザへの促しを提供する。促されたことに応じて、ボットプログラム109は、少なくとも1つの解決策の選択を受信し得る。別の例では、ボットプログラム109は、解決策のうちの1つを自動的に選択し得、例えば、ボットプログラム109は、最も一般的に提供される解決策を選択するため、または解決策のうちの1つをランダムに選択するための選択アルゴリズムを含む異なる種類の選択アルゴリズムを使用し得る。
【0054】
図3は、本発明の本実施形態の一例による、実行中の監視アプリケーションプログラムの出力データを処理するための方法のフローチャートである。説明の目的のために、図3で説明される方法は、図1に示されるシステムにおいて実装され得るが、この実装に限定されるものではない。図3の方法は、例えば、監視デバイス101によって実行され得る。
【0055】
一実施形態では、本方法は、ボットプログラム109を利用して、ステップ301において、実行中の監視アプリケーションプログラムのタイプを判断する。一例では、ボットプログラム109は、監視アプリケーションプログラムのタイプを判断するために、監視アプリケーションプログラム(例えば、アプリケーション107)を描写するアプリケーションメタデータを使用することができる。別の例では、ボットプログラム109は、監視アプリケーションプログラムによって表示されるアプリケーションユーザインタフェースのユーザインタフェース特徴を認識することができる。ユーザインタフェース特徴は、監視アプリケーションプログラムのタイプを示し得、例えば、ボットプログラム109は、監視アプリケーションプログラムが資産管理アプリケーションであることを示す「ライセンス管理用アプリケーション-ダッシュボード」として監視アプリケーションプログラムのパネルを認識し得る。
【0056】
一実施形態では、本方法は、ステップ303において、認識されたタイプに関連付けられる手順を呼び出しデータベース115内で検索する。手順は、例えば、入力データが正確であるか、完全であるか、および正しいかどうかをチェックする入力手順を含み得る。手順は、例えば、出力が正確および完全であるかどうかをチェックする出力手順を含み得る。手順のそれぞれは、処理の結果を示すメッセージを出力し得る。これらのメッセージはステータスメッセージを含み得る。メッセージの各タイプは形式を有し得る。例えば、ステータスメッセージは、例えば、「エラー」という単語で開始される形式を有し得る。これらの手順、もしくはそれらのメタデータ、またはその組み合わせを分析することによって、本方法は、ボットプログラム109を利用して、ステータスメッセージの形式、もしくは異なるエラーに関連付けられたエラーコード、またはその組み合わせを識別することができる。
【0057】
一実施形態では、本方法は、ステップ305において、手順に基づいて出力データを分析する。例えば、本方法は、ボットプログラム109を利用して、判断された手順のステータスメッセージの形式を有するメッセージをアプリケーションユーザインタフェース内で検索する。別の例では、ボットプログラムは、アプリケーションユーザインタフェース内でエラーコードを検索し得る。
【0058】
図4は、本発明の本実施形態の一例による、ボットクエリを生成するための方法のフローチャートである。説明の目的のために、図4で説明される方法は、図1に示されるシステムにおいて実装され得るが、この実装に限定されるものではない。図4の方法は、例えば、監視デバイス101によって実行され得る。
【0059】
一実施形態では、本方法は、ステップ401において、検出されたステータスメッセージに関連する候補ボットクエリを生成する。例えば、候補ボットクエリは、例えば、図2を参照して説明されたように、検出されたステータスメッセージをトークン化することによって判断され得、候補ボットクエリは、呼び出しデータベース115内でこれらのトークンに関連付けられたクエリであり得る。例えば、検出されたステータスメッセージが、「コンピュータA内にデータがありません」と示す場合、トークンは「データなし」および「コンピュータA」を含み得る。そのトークンについて考えられる質問を呼び出しデータベース115内で検索することにより、以下の候補ボットクエリが識別され得る。すなわち、「ソフトウェアスキャンが完了したかどうかをチェックする方法」、「最後の成功したインポートの日にちをチェックする方法」、「XXXが起動されて実行しているかどうかをチェックする方法」。
【0060】
一実施形態では、本方法は、ステップ403において、アプリケーションプログラミングインタフェースの機能もしくは要求またはその組み合わせに従って、候補ボットクエリを指定する。上記の例に続いて、3つのクエリが以下のように指定され得る。1つのシナリオでは、コンピュータAがWindows(登録商標)を実行しているかをAPIが以前にチェックしているので、「ソフトウェアスキャンが完了したかどうかをチェックする方法」というクエリは、「Windowsに対するソフトウェアスキャンが完了したかどうかをチェックする方法」となるように指定され得る。別のシナリオでは、コンピュータAがコンピュータグループXに属するかどうかをAPIが以前にチェックしているので、「最後に成功したインポートの日にちをチェックする方法」というクエリは、「コンピュータグループXについて最後に成功したインポートの日にちをチェックする方法」となるように指定され得る。別のシナリオでは、コンピュータAがAPPエージェントを実行していることをAPIが以前にチェックしているため、「XXXが起動されて実行しているかどうかをチェックする方法」というクエリは、「APPエージェントが起動されて実行しているかどうかをチェックする方法」となるように指定され得る。
【0061】
一実施形態では、本方法は、ステップ405において、指定された候補ボットクエリを提供する。例えば、本方法は、ボットプログラム109を利用して、指定された候補ボットクエリをアプリケーションユーザインタフェース上または会話ウィンドウ上に表示する。
【0062】
図5は、本発明の本実施形態の一例による、ユーザクエリを制御するための方法のフローチャートである。説明の目的のために、図5で説明される方法は、図1に示されるシステムにおいて実装され得るが、この実装に限定されるものではない。図5の方法は、例えば、監視デバイス101によって実行され得る。
【0063】
一実施形態では、本方法は、ステップ501において、ユーザから初期ユーザクエリを受信する。図4の例に続いて、ユーザは、「Windowsに対するソフトウェアスキャンが完了したかどうかをチェックする方法」という質問を選択し得、ボットプログラム109との会話を開始するために質問を修正する。このシナリオでは、マシンはユーザによって管理されているため、ユーザはコンピュータAがWindows2012を実行していることを知っているので、質問は以下のように補正され得る:「Windows2012に対するソフトウェアスキャンが完了したかどうかをチェックする方法」。
【0064】
一実施形態では、ステップ503において、本方法は、例えば図4で定義されるように、ユーザクエリがボットクエリを考慮していることを確認するようユーザに促す。ユーザはボットプログラム109によって提供されたボットクエリを見ていない場合があるため、これは有利となり得る。
【0065】
一実施形態では、ステップ505において、本方法は、促されたことに応じてユーザクエリを受信する。ユーザクエリは、初期ユーザクエリ、または初期ユーザクエリの修正であり得る。例えば、提案されたクエリがより正確に定式化されているように見える場合に、ユーザは初期クエリを変更することができる。しかしながら、ユーザは、例えば初期クエリの定式化のためにボットクエリを既に自身が使用したため、初期クエリが実際に正確であることを確認することができる。
【0066】
以上の例に続いて、本方法は、「Windows2012に対するソフトウェアスキャンが完了したかチェックする方法」という質問に対する解決策を見出すことができる。この例では、ボットプログラム109は、例えば、ユーザの質問に回答し得るドキュメンテーションへの3つのリンク(L1、L2、およびL3)を提供し得る:L1)Windows2012に対する既知の「データなし」スキャンエラー、L2)ソフトウェアスキャン出力検証、および、L3)Windows上で実行しているエージェントに対するヘルスチェック手順。
【0067】
図6は、本発明の本実施形態の一例による、ボットプログラムを使用してユーザクエリを処理するための方法のフローチャートである。説明の目的のために、図6で説明される方法は、図1に示されるシステムにおいて実装され得るが、この実装に限定されるものではない。
【0068】
ステップ601において、ユーザ620がアプリケーションプログラム107を開く。ボットプログラム109は、アプリケーションプログラム107に組み込まれていてよい。このステップは、アプリケーションパネル621の表示をもたらし得る。ステップ603において、ボットプログラム109(チャットボットとも称される)はアプリケーションパネル621を検出する。ステップ603において、ボットプログラム109は、アプリケーションプログラム107のアプリケーションAPI(例えば、API 113)を使用して、アプリケーションプログラム107の出力データを処理することができ、呼び出しデータベース622を使用して質問リスト623を構築する。構築された質問リスト623は、ユーザ620に提供され得る。ステップ605において、ユーザ620は、予備の質問を使用してボットプログラム109との会話を開くことができる。ステップ607において、ボットプログラム109は、予備の質問を分析し、知識ベース624を使用して1つまたは複数の解決策625をユーザ620に提案することができる。解決策は、例えば、アプリケーションサーバ627を構成することであり得る。ユーザ620は、ステップ609において、提案された解決策の中から解決策を選択する、または、提案された解決策を確認することができる。ステップ611において、ボットプログラム109は、例えばアプリケーションサーバ627を構成することによって、選択または確認された解決策を適用することができる。
【0069】
図7は、本開示に含まれるような方法ステップの少なくとも一部を実装するために好適な一般的なコンピュータ化システム700を表す。
【0070】
本明細書に記載の方法は、少なくとも部分的に非インタラクティブであり、サーバもしくは組み込みシステムなどのコンピュータ化システムによって自動化されていることが理解されるであろう。しかし、例示的な実施形態では、本明細書に記載の方法は、(部分的に)インタラクティブなシステムにおいて実装され得る。これらの方法はさらに、ソフトウェア712、722(ファームウェア722を含む)、ハードウェア(プロセッサ)705、またはそれらの組み合わせにおいて実装され得る。例示的な実施形態では、本明細書に記載の方法は、ソフトウェアにおいて実行可能なプログラムとして実装され、特別用途または汎用目的のデジタルコンピュータ、例えば、パーソナルコンピュータ、ワークステーション、ミニコンピュータ、またはメインフレームコンピュータによって実行される。したがって、最も一般的なシステム700は、汎用目的のコンピュータ701を含む。
【0071】
例示的な実施形態では、ハードウェアアーキテクチャの観点から、図7に示されるように、コンピュータ701は、プロセッサ705と、メモリコントローラ715に連結されたメモリ(メインメモリ)710と、ローカル入出力コントローラ735を介して通信可能に連結されている1つまたは複数の入力もしくは出力、またはその両方(I/O)のデバイス(または周辺機器)10、745とを含む。入出力コントローラ735は、当技術分野で知られているように、1つまたは複数のバス、または他の有線もしくは無線接続であり得るが、これらに限定されるものではない。入出力コントローラ735は、通信を可能にするために、コントローラ、バッファ(キャッシュ)、ドライバ、リピータ、および受信機などの追加要素を有し得るが、これらは簡潔性のために省略されている。さらに、ローカルインタフェースは、前述のコンポーネント間での適切な通信を可能にするために、アドレス、制御、もしくはデータ接続、またはその組み合わせを含み得る。本明細書に記載のとおり、I/Oデバイス10、745は、概して、当技術分野で既知の、任意の一般化された暗号カードまたはスマートカードを含み得る。
【0072】
プロセッサ705は、ソフトウェアを実行するための、具体的にはメモリ710に記憶されたハードウェアデバイスである。プロセッサ705は、任意のオーダーメイドまたは市販のプロセッサ、中央処理装置(CPU)、コンピュータ701に関連付けられたいくつかのプロセッサの中の補助プロセッサ、半導体ベースのマイクロプロセッサ(マイクロチップまたはチップセットの形態で)、または、ソフトウェア命令を実行するための概して任意のデバイスであり得る。
【0073】
メモリ710は、揮発性メモリ素子(例えば、DRAM、SRAM、SDRAMなどのランダムアクセスメモリ(RAM))、および不揮発性メモリ要素(例えば、ROM、消去可能プログラマブルリードオンリメモリ(EPROM)、電子的に消去可能なプログラマブルリードオンリメモリ(EEPROM)、プログラマブルリードオンリメモリ(PROM)をのうちの1つまたは組み合わせを含み得る。メモリ710は、様々なコンポーネントが互いから遠隔に位置しているが、プロセッサ705によってアクセスされ得る、分散型アーキテクチャを有し得ることに留意されたい。
【0074】
メモリ710内のソフトウェアは、1つまたは複数の別個のプログラムを含み得、そのそれぞれは、論理機能、とりわけ、本発明の実施形態に含まれる機能を実装するための実行可能命令の順序付けられたリストを含む。図7の例では、メモリ710内のソフトウェアは、命令712、例えば、データベース管理システムなどのデータベースを管理する命令を含む。
【0075】
メモリ710内のソフトウェアはまた、典型的には、好適なオペレーティングシステム(OS)711を含む。OS711は、本質的には、本明細書に記載の方法を実装するために、他のコンピュータプログラム、例えば、場合によってはソフトウェア712の実行を制御する。
【0076】
本明細書に記載の方法は、ソースプログラム712、実行可能なプログラム712(オブジェクトコード)、スプリプト、または、実行される命令712のセットを含む任意の他のエンティティの形態であり得る。ソースプログラムがある場合、OS711に関連して適切に動作するために、メモリ710内に含まれていても含まれていなくてもよいコンパイラ、アセンブラ、またはインタプリタなどを介してプログラムを変換する必要がある。さらに、本方法は、データおよび方法のクラスを有するオブジェクト指向型プログラミング言語として、あるいは、ルーチン、サブルーティング、もしくは機能、またはその組み合わせを有する手続き型プログラミング言語として書き込まれ得る。
【0077】
例示的な実施形態では、従来のキーボード750およびマウス755が入出力コントローラ735に連結され得る。I/Oデバイス745などの他の出力デバイスは、入力デバイス、例えば、限定されるものではないが、プリンタ、スキャナ、およびマイクなどを含み得る。最後に、I/Oデバイス10、745はさらに、入力および出力の両方を通信するデバイス、例えば、限定されるものではないが、ネットワークインタフェースカード(NIC)または変調器/復調器(他のファイル、デバイス、システム、もしくはネットワークへのアクセスのため)、無線周波数(RF)または他の送受信機、電話インタフェース、ブリッジ、およびルータなどを含み得る。I/Oデバイス10、745は、当技術分野で既知の任意の一般化された暗号カードまたはスマートカードであり得る。システム700はさらに、ディスプレイ730に連結されたディスプレイコントローラ725を含み得る。例示的な実施形態では、システム700はさらに、ネットワーク765への連結のためのネットワークインタフェースを含み得る。ネットワーク765は、ブロードバンド接続を介した、コンピュータ701と任意の外部サーバおよびクライアントなどと間の通信のためのIPベースのネットワークであり得る。ネットワーク765は、コンピュータ701と外部システム30との間でデータを送信および受信し、これは、本明細書で説明した方法のステップの一部またはすべてを実行するために関与し得る。例示的な実施形態では、ネットワーク765は、サービスプロバイダによって管理された管理IPネットワークであり得る。ネットワーク765は、無線方式で、例えば、無線プロトコルおよび技術、例えば、WiFi、WiMAXなどを使用して実装され得る。ネットワーク765はまた、ローカルエリアネットワーク、ワイドエリアネットワーク、メトロポリタンエリアネットワーク、インターネットネットワーク、または他の類似のタイプのネットワーク環境などのパケットスイッチネットワークであり得る。ネットワーク765は、固定無線ネットワーク、無線ローカルエリアネットワークW(LAN)、無線ワイドエリアネットワーク(WWAN)、パーソナルエリアネットワーク(PAN)、仮想プライベートネットワーク(VPN)、イントラネット、または他の好適なネットワークシステムであり得、信号を受信および送信するための機器を含む。
【0078】
コンピュータ701がPC、ワークステーション、またはインテリジェントデバイスなどである場合、メモリ710内のソフトウェアはさらに、基本入出力システム(BIOS)722を含み得る。BIOSは、スタートアップジにハードウェアを初期化およびテストし、OS711を開始させ、かつ、ハードウェアデバイス間のデータの転送をサポートする、基本的なソフトウェアルーチンのセットである。BIOSは、コンピュータ701が起動されたときにBIOSが実行され得るように、ROM内に記憶される。
【0079】
コンピュータ701が動作中のとき、プロセッサ705は、メモリ710内に記憶されたソフトウェア712を実行して、メモリ710との間でデータを通信し、かつ、概して、ソフトウェアに従ったコンピュータ701の動作を制御するように構成される。本明細書、および全体または部分的に(典型的には後者)OS711に記載の方法は、プロセッサ705によって読み取られ、場合によってはプロセッサ705内でバッファされ、次に実行される。
【0080】
図7に示されるように、本明細書に記載のシステムおよび方法がソフトウェア712において実装されるとき、本方法は、任意のコンピュータ関連システムまたは方法を使用することによって、またはそれに関連して、ストレージ720などの任意のコンピュータ可読媒体上に記憶され得る。ストレージ720は、HDDストレージなどのディスクストレージを含み得る。
【0081】
本開示はクラウドコンピューティングに関する詳細な説明を含んでいるが、本明細書に引用されている教示の実装はクラウドコンピューティング環境に限定されるものではないことが理解される。むしろ、本発明の実施形態は、現在知られているまたは後に開発される他のタイプのコンピューティング環境と結合して実装されることが可能である。
【0082】
クラウドコンピューティングは、管理の労力またはサービスのプロバイダとのインタラクションを最小限に抑えながら迅速にプロビジョニングおよびリリースできる構成可能なコンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、プロセス、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールに対する便利なオンデマンドネットワークアクセスを可能するための、サービス提供のモデルである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデルおよび少なくとも4つの展開モデルを含んでよい。
【0083】
特性は以下の通りである。
【0084】
オンデマンドセルフサービス:クラウドコンシューマは、人間とサービスのプロバイダとのインタラクションを要求することなく、必要に応じて自動的に、サーバ時間およびネットワークストレージなどのコンピューティング能力を一方的にプロビジョニングできる。
【0085】
ブロードネットワークアクセス:能力はネットワークを通じて利用可能であり、異種混合のシンまたはシッククライアントプラットフォームによる使用を促進する標準的な機構(例えば携帯電話、ラップトップ、およびPDA)を通じてアクセスされる。
【0086】
リソースプール:プロバイダのコンピューティングリソースはプールされ、マルチテナントモデルを使用して複数のコンシューマにサービスを提供し、異なる物理的および仮想的リソースが需要に応じて動的に割り当ておよび再割り当てされる。概してコンシューマは提供されるリソースの厳密な位置についての制御または知識を有しないが、より高い抽象化レベル(例えば、国、州、またはデータセンタ)で位置を指定可能であり得るという点で、位置独立性の意味がある。
【0087】
迅速な柔軟性:いくつかの場合においては自動的に、すばやいスケールアウトのために、能力を急速かつ柔軟にプロビジョニングでき、すばやいスケールインのために迅速にリリースできる。コンシューマにとって、多くの場合、プロビジョニングに利用可能な能力は無制限に見え、任意の時間に任意の量で購入できる。
【0088】
測定されたサービス:クラウドシステムは、サービスのタイプに適切な、いくらかの抽象化レベル(例えば、ストレージ、処理、帯域幅、および、アクティブユーザアカウント)で、測定能力を活用することによって、リソース使用を自動的に制御および最適化する。リソース使用量が監視、制御、報告され得、利用されるサービスのプロバイダおよびコンシューマの両方に透明性を提供する。
【0089】
サービスモデルは以下の通りである。
【0090】
サービスとしてのソフトウェア(SaaS):コンシューマに提供される能力は、クラウドインフラストラクチャ上で実行するプロバイダのアプリケーションを使用するためのものである。アプリケーションは、ウェブブラウザ(例えばウェブベースの電子メール)などのシンクライアントインタフェースを通じて様々なクライアントデバイスからアクセス可能である。コンシューマは、ネットワーク、サーバ、オペレーティングシステム、ストレージ、またはさらには個々のアプリケーション能力を含む基礎となるクラウドインフラストラクチャを管理または制御しないが、限定されたユーザ固有のアプリケーション構成設定は例外であり得る。
【0091】
サービスとしてのプラットフォーム(PaaS):コンシューマに提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成される、コンシューマが作成または取得したアプリケーションをクラウドインフラストラクチャ上に展開することである。コンシューマは、ネットワーク、サーバ、オペレーティングシステム、またはストレージを含む基礎となるクラウドインフラストラクチャを管理または制御しないが、展開されたアプリケーション、および、場合によっては、環境構成をホストするアプリケーションに対する制御を有する。
【0092】
サービスとしてのインフラストラクチャ(IaaS):コンシューマに提供される能力は、処理、ストレージ、ネットワーク、および、コンシューマがオペレーティングシステムおよびアプリケーションを含み得る任意のソフトウェアを展開および実行することが可能な他の基礎的なコンピューティングリソースをプロビジョニングすることである。コンシューマは、基礎となるクラウドインフラストラクチャを管理または制御しないが、オペレーティングシステム、ストレージ、展開されたアプリケーション、および、場合によっては、選択されたネットワーキングコンポーネント(例えばホストファイアウォール)の限定された制御に対する制御を有する。
【0093】
展開モデルは以下の通りである。
【0094】
プライベートクラウド:クラウドインフラストラクチャは組織のみのために動作される。組織またはサードパーティによって管理され得、オンプレミスまたはオフプレミスに存在し得る。
【0095】
コミュニティクラウド:クラウドインフラストラクチャは、複数の組織によって共有され、共有された関心(例えば、ミッション、セキュリティ要件、ポリシー、および、コンプライアンス上の考慮事項)を有する特定のコミュニティをサポートする。組織またはサードパーティによって管理され得、オンプレミスまたはオフプレミスに存在し得る。
【0096】
パブリッククラウド:クラウドインフラストラクチャは、一般大衆または大きい産業グループに利用可能となり、クラウドサービスを販売する組織によって所有される。
【0097】
ハイブリッドクラウド:クラウドインフラストラクチャは、固有のエンティティであり続けるが、データおよびアプリケーションポータビリティを可能にする標準化またはプロプライエタリ技術(例えば、クラウド間のロードバランシングのためのクラウドバースティング)によって共に結合される2以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合である。
【0098】
クラウドコンピューティング環境は、ステートレス、低結合、モジュール性、および、セマンティック相互運用性に対する重点を指向したサービスである。クラウドコンピューティングの中核には、相互接続されたノードで構成されるネットワークを含むインフラストラクチャが存在する。
【0099】
ここで図8を参照すると、例示的なクラウドコンピューティング環境1050が示されている。示されるように、クラウドコンピューティング環境1050は、クラウドコンシューマによって使用されるローカルコンピューティングデバイス、例えば、携帯用情報端末(PDA)またはセルラ電話1054A、デスクトップコンピュータ1054B、ラップトップコンピュータ1054Cもしくは自動車コンピュータシステム54Nまたはその組み合わせなどが通信し得る1つまたは複数のクラウドコンピューティングノード1010を含む。ノード1010は、互いに通信し得る。ノードは、上記したようなプライベートクラウド、コミュニティクラウド、パブリッククラウドもしくはハイブリッドクラウドまたはこれらの組み合わせなどの1つまたは複数のネットワークにおいて、物理的にまたは仮想的にグループ化(図示せず)されてよい。これにより、クラウドコンピューティング環境1050は、クラウドコンシューマがローカルコンピューティングデバイス上のリソースを維持する必要のないサービスとしてのインフラストラクチャ、サービスとしてのプラットフォームもしくはサービスとしてのソフトウェアまたはその組み合わせを提供できるようにする。図8に示されるコンピューティングデバイス1054A~Nのタイプは、例示のみを意図し、コンピューティングノード1010およびクラウドコンピューティング環境1050は、任意のタイプのネットワークもしくはネットワークアドレス指定可能な接続(例えば、ウェブブラウザを使用して)またはその両方を通して、任意のタイプのコンピュータ化デバイスと通信可能であることを理解されたい。
【0100】
ここで、図9を参照すると、クラウドコンピューティング環境1050(図8)によって提供される機能抽象化層のセットが示される。図9に示されるコンポーネント、層、および機能が、例示のみを意図するものであり、発明の実施形態がそれに限定されるものではないことを、前もって理解されるべきである。図示の通り、以下の層および対応する機能が提供される。
【0101】
ハードウェアおよびソフトウェア層1060は、ハードウェアおよびソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例は、メインフレーム1061、RISC(最小命令セットコンピュータ)アーキテクチャベースサーバ1062、サーバ1063、ブレードサーバ1064、ストレージデバイス1065、ならびに、ネットワークおよびネットワーキングコンポーネント1066を含む。いくつかの実施形態において、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア1067およびデータベースソフトウェア1068を含む。
【0102】
仮想化層1070は、抽象化層を提供し、ここから、以下の例の仮想エンティティ、すなわち、仮想サーバ1071、仮想ストレージ1072、仮想プライベートネットワークを含む仮想ネットワーク1073、仮想アプリケーションおよびオペレーティングシステム1074、ならびに仮想クライアント1075が提供され得る。
【0103】
一例では、管理層1080は、以下に説明される機能を提供し得る。リソースプロビジョニング1081は、コンピューティングリソース、および、クラウドコンピューティング環境内でタスクを実行するために利用される他のリソースの動的な調達を提供する。測定および価格設定1082は、リソースがクラウドコンピューティング環境内で利用される際のコスト追跡およびこれらのリソースの消費に対する課金または請求書送付を提供する。一例では、これらのリソースは、アプリケーションソフトウェアライセンスを含み得る。セキュリティは、クラウドコンシューマの本人確認およびタスクならびにデータおよび他のリソースのための保護を提供する。ユーザポータル1083は、コンシューマおよびシステム管理者に対し、クラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理1084は、要求されるサービスレベルが満たされるように、クラウドコンピューティングリソース割り当ておよび管理を提供する。サービスレベルアグリーメント(SLA)プランニングおよび遂行1085は、SLAに従い将来の要件が予期されるクラウドコンピューティングリソースに対する事前取り決めおよび調達を提供する。
【0104】
ワークロード層1090は、クラウドコンピューティング環境が利用され得る機能性の例を提供する。この層から提供され得るワークロードおよび機能の例は、例えば図2、3、4、5、または6を参照して説明される、本主題に従った、マッピングおよびナビゲーション1091、ソフトウェア開発およびライフサイクル管理1092、仮想クラスルーム教育配信1093、データ分析処理1094、トランザクション処理1095、および、ボットプログラムによるクエリ処理(QPBP)1096に基づくアプリケーション選択を含む。
【0105】
本主題は以下の条項を含み得る。
【0106】
[条項1]
ボットプログラムを実行する段階であって、
実行中のアプリケーションプログラムの出力データを処理する段階と、
前記出力データ内のステータスメッセージを検出する段階と、
前記ステータスメッセージに関連するボットクエリを生成する段階と、
前記ボットクエリをユーザに提供する段階と、を有する、実行する段階と、
前記ユーザへの前記ボットクエリの前記提供に応じて、前記ボットプログラムが前記ユーザからユーザクエリを受信する段階であって、前記ユーザクエリは、前記ボットクエリに基づいている、受信する段階と、
前記ボットプログラムが、知識ベースを使用して前記ユーザクエリに対する1つまたは複数の解決策を決定する段階と、
前記ボットプログラムが、前記解決策のうちの選択された解決策を適用する段階と、
を備える、コンピュータ実装方法。
【0107】
[条項2]
出力データを処理する前記段階が、異なるタイプのアプリケーションのデータを含む呼び出しデータベースを提供する段階であって、特定のタイプのアプリケーションの前記データは、前記特定のタイプのアプリケーションの手順と、前記特定のタイプのアプリケーションに関連付けられたトークンに関連付けられた事前定義されたクエリとを含む、提供する段階と、前記実行中のアプリケーションプログラムのタイプの認識を実行する段階と、前記認識されたタイプに関連付けられる手順を前記呼び出しデータベース内で検索する段階と、前記手順に基づいて前記出力データを分析する段階とを含む、条項1に記載の方法。
【0108】
[条項3]
前記ボットクエリを生成する段階が、前記検出されたステータスメッセージをトークン化する段階と、前記トークンに関連付けられる前記クエリを前記呼び出しデータベースから取得する段階であって、前記生成されたボットクエリが前記取得されたクエリである、取得する段階と、を含む、条項2に記載の方法。
【0109】
[条項4]
前記ボットプログラムが、前記アプリケーションプログラムのアプリケーションプログラムインタフェースにアクセスするように構成され、前記ボットクエリを生成する段階が、前記検出されたステータスメッセージに関連する候補ボットクエリを生成する段階と、前記アプリケーションプログラミングインタフェースの機能もしくは要求またはその組み合わせに従って前記候補ボットクエリを指定する段階であって、前記生成されたボットクエリが前記指定された候補ボットクエリである、指定する段階とを含む、前述の条項1から3のいずれかに記載の方法。
【0110】
[条項5]
前記ボットプログラムが前記ユーザから初期ユーザクエリを受信する段階と、前記ユーザクエリが前記ボットクエリを考慮していることを確認するよう前記ユーザに促す段階であって、前記ユーザクエリが前記促す段階に応じて受信され、前記ユーザクエリが、前記初期ユーザクエリまたは前記初期ユーザクエリの修正である、促す段階と、をさらに備える、前述の条項1から4のいずれかに記載の方法。
【0111】
[条項6]
前記出力データをディスプレイ上のアプリケーションユーザインタフェースに表示する段階と、前記ボットクエリをディスプレイ上のボットダイアログウィンドウに表示する段階であって、ボットダイアログウィンドウおよびアプリケーションユーザインタフェースは同時に表示され、ユーザクエリはボットダイアログウィンドウを介して受信される、表示する段階とをさらに備える、前述の条項1から5のいずれかに記載の方法。
【0112】
[条項7]
前記アプリケーションユーザインタフェースがパネルおよびダッシュボードのうちのいずれか1つを含み、前記出力データの前記処理が、前記アプリケーションユーザインタフェースを使用して前記表示された出力データを処理する段階を有する、条項6に記載の方法。
【0113】
[条項8]
前記ボットクエリが、前記ステータスメッセージの根本原因を発見するためのクエリ、または前記ステータスメッセージの詳細を提供するためのクエリである、前述の条項1から7のいずれかに記載の方法。
【0114】
[条項9]
前記ボットプログラムを実行する前記段階が、前記ユーザクエリの前記受信と、前記解決策の前記判断と、前記選択された解決策の前記適用を含む、前述の条項1から8のいずれかに記載の方法。
【0115】
[条項10]
ユーザ・ボットチャットセッションを起動する段階をさらに備え、前記ユーザクエリの前記受信、前記解決策の前記判断、および前記選択された解決策の前記適用が、前記セッションの間に実行される、前述の条項1から8のいずれかに記載の方法。
【0116】
[条項11]
前記ボットプログラムが、前記アプリケーションプログラムに組み込まれている、前述の条項1から10のいずれかに記載の方法。
【0117】
[条項12]
前記アプリケーションプログラムが、クライアントに接続されたアプリケーションサーバを含むクライアント・サーバ構成における前記クライアントであり、前記アプリケーションプログラムは、前記アプリケーションサーバのサービスを使用してデータを出力するように構成され、前記ボットプログラムは、前記ボットプログラムに接続されたボットサーバを含むクライアント・サーバ構成におけるクライアントであり、前記ボットプログラムは、前記ボットサーバの1つまたは複数のサービスを使用して前記方法を実行する、前述の条項1から11のいずれかに記載の方法。
【0118】
[条項13]
前記ボットクエリを前記呼び出しデータベースに記憶する段階をさらに備える、前述の条項2から12のいずれかに記載の方法。
【0119】
[条項14]
同じアプリケーションプログラムに対して、または他のアプリケーションに対して前記方法を繰り返し、それによって、前記ボットータベースを更新する段階をさらに含む、条項13に記載の方法。
【0120】
[条項15]
前記ボットクエリを提供する段階がさらに、前記アプリケーションプログラムに類似するアプリケーションのさらなるボットクエリを前記呼び出しデータベースから提供する段階を有する、条項14に記載の方法。
【0121】
[条項16]
前記アプリケーションプログラムが、資産管理アプリケーションおよびネットワーク管理アプリケーションのいずれか1つである、前述の条項1から15のいずれかに記載の方法。
【0122】
本発明は、統合の任意の可能な技術的詳細レベルにおけるシステム、方法、機器もしくはコンピュータプログラム製品またはその組み合わせであり得る。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(または複数の媒体)を含み得る。
【0123】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用されるための命令を保持および記憶できる有形デバイスであり得る。コンピュータ可読記憶媒体は例えば、電子ストレージデバイス、磁気ストレージデバイス、光学ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、または、上記の任意の好適な組み合わせに限定されるものではないことがあり得る。コンピュータ可読記憶媒体のより具体的な例の非網羅的リストはまた、以下の、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピディスク、命令が記録されたパンチカードまたは溝における凸構造などの機械的符号化デバイス、および、上記の任意の好適な組み合わせを含み得る。本明細書で使用されるコンピュータ可読記憶媒体は、電波または他の自由に伝搬される電磁波、導波路または他の伝搬媒体(例えば、ファイバ光ケーブルを通過する光パルス)を通して伝搬される電磁波または配線を通して送信される電気信号などの、一時的信号それ自体として解釈されないものとする。
【0124】
本明細書において説明するコンピュータ可読プログラム命令は、例えばインターネット、ローカルエリアネットワーク、ワイドエリアネットワークもしくは無線ネットワークまたはその組み合わせなどのネットワークを介して、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスへダウンロードされ得るか、または、外部コンピュータもしくは外部ストレージデバイスへダウンロードされ得る。ネットワークは、銅製伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、もしくはエッジサーバまたはその組み合わせを含み得る。各コンピューティング/処理デバイスにおけるネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体において記憶するためにコンピュータ可読プログラム命令を転送する。
【0125】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、または、Smalltalk(登録商標)、C++、または同様のものなどのオブジェクト指向プログラミング言語、「C」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで書かれたソースコードまたはオブジェクトコードのいずれかであり得る。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に、ユーザのコンピュータ上で部分的に、スタンドアロンのソフトウェアパッケージとして、ユーザのコンピュータ上で部分的かつリモートコンピュータ上で部分的に、または、リモートコンピュータもしくはサーバ上で全体的に実行し得る。後者のシナリオにおいて、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続され得るか、または、接続は、(例えば、インターネットサービスプロバイダを使用してインターネットを通じて)外部コンピュータに行われ得る。いくつかの実施形態において、本発明の態様を実行するべく、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、または、プログラマブルロジックアレイ(PLA)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによって、コンピュータ可読プログラム命令を実行し得る。
【0126】
本発明の態様は、本明細書において、発明の実施形態による方法、装置(システム)、およびコンピュータプログラム製品のフローチャート図もしくはブロック図またはその両方を参照して記載されている。フローチャート図もしくはブロック図またはその両方の各ブロック、およびフローチャート図もしくはブロック図またはその両方におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実装され得ることが理解されるであろう。
【0127】
これらのコンピュータ可読プログラム命令は、マシンを生じさせるために、コンピュータのプロセッサ、または、他のプログラマブルデータ処理装置に提供され得る。それにより、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行する命令は、フローチャートもしくはブロック図またはその両方のブロックまたは複数のブロックにおいて指定される機能/動作を実装するための手段を形成する。また、これらのコンピュータ可読プログラム命令は、記憶された命令を有するコンピュータ可読記憶媒体が、フローチャートもしくはブロック図またはその両方のブロックまたは複数のブロックにおいて指定される機能/動作の態様を実装する命令を含む製品を有するように、コンピュータ、プログラマブルデータ処理装置、もしくは他のデバイスまたはその組み合わせが特定の様式で機能するように導き得るコンピュータ可読記憶媒体に記憶され得る。
【0128】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブルデータ処理装置または他のデバイスにロードされてよく、一連の動作ステップをコンピュータ、他のプログラマブル装置または他のデバイス上で実行を生じさせて、コンピュータ実装処理を生成する。それにより、コンピュータ、他のプログラマブル装置または他のデバイス上で実行される命令は、フローチャートもしくはブロック図またはその両方のブロックまたは複数のブロック内で指定された機能/動作を実装する。
【0129】
図面内のフローチャートおよびブロック図は、本発明の様々な実施形態による、システム、方法、およびコンピュータプログラム製品の考えられる実装のアーキテクチャ、機能、および動作を示す。これに関して、フローチャートまたはブロック図における各ブロックは、指定される(論理機能を実装するための1つまたは複数の実行可能命令を含む命令のモジュール、セグメント、または一部を表す場合がある。いくつかの代替的な実装において、ブロックに記載された機能は、図に記載された順序から外れて生じてもよい。例えば、連続して示される2つのブロックは、実際には、1つのステップとして実現され、部分的または全体的に時間的に重複する様式で、同時に、または実質的に同時に実行され得るか、または、関連する機能に応じてブロックが逆の順序で実行され得る。また、ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方におけるブロックの組み合わせは、指定される機能もしくは行為を実行するまたは特定用途向けハードウェアとコンピュータ命令との組み合わせを実行する特定用途向けハードウェアベースのシステムによって実装され得ることに留意されたい。
【0130】
「一実施形態」、「ある実施形態」、「例示的な実施形態」などへの本明細書における言及は、説明されている実施形態が特定の特徴、構造、または特性を含んでよいが、必ずしも全ての実施形態が特定の特徴、構造、または特性を含まなくてもよいことを示している。また、そのような語句は、必ずしも同じ実施形態を指すものではない。さらに、特定の特徴、構造、または特性が実施形態に関連して記載される場合、明記されているか否かに関わらず、複数の他の実施形態に関連するそのような特徴、構造、または特性に影響を与えることは、当業者の知識の範囲内であるものと思われる。
【0131】
本明細書で使用される用語法は、特定の実施形態を説明する目的のためだけのものであり、本発明を限定することを意図されていない。本明細書で使用されるように、文脈において別途明示されない限り、単数形の「a」、「an」、および「the」は、複数形も含むことが意図される。用語「comprises(含む)」もしくは「comprising(含む)」またはその両方は、本明細書で使用される場合、記載されている特徴、整数、ステップ、動作、要素、もしくはコンポーネント、またはその組み合わせの存在を明記するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、コンポーネント、もしくはそれらのグループ、またはその組み合わせの存在または追加を除外しないことをさらに理解されたい。
【0132】
本発明の様々な実施形態の記載は、例示目的のために提示されており、網羅的であることも、または開示された実施形態に限定することも意図していない。本発明の範囲および趣旨から逸脱することなく、多くの修正および変形が当業者には明らかとなるであろう。本明細書において使用される用語は、実施形態の原理、実際的な用途、または、市場において見られる技術に対する技術的改善を最も良く説明するために、または、当技術分野における他の当業者が、本明細書において開示される実施形態を理解することを可能にするために選択された。
図1
図2
図3
図4
図5
図6
図7
図8
図9