(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023055215
(43)【公開日】2023-04-17
(54)【発明の名称】ロボティックプロセスオートメーションのためのセマンティック人工知能を使用したソースおよびターゲット間の自動データ転送
(51)【国際特許分類】
G06F 16/9035 20190101AFI20230410BHJP
G06Q 10/10 20230101ALI20230410BHJP
G06F 3/0484 20220101ALI20230410BHJP
【FI】
G06F16/9035
G06Q10/10
G06F3/0484
【審査請求】未請求
【請求項の数】38
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022159912
(22)【出願日】2022-10-04
(31)【優先権主張番号】17/494,744
(32)【優先日】2021-10-05
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/746,855
(32)【優先日】2022-05-17
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】520262319
【氏名又は名称】ユーアイパス,インコーポレイテッド
【氏名又は名称原語表記】UiPath,Inc.
【住所又は居所原語表記】1 Vanderbilt Avenue, 60th Floor, New York, NY 10017, United States of America
(74)【代理人】
【識別番号】110003487
【氏名又は名称】弁理士法人東海特許事務所
(72)【発明者】
【氏名】ボグダン リパ
(72)【発明者】
【氏名】ミルシア グリゴーレ
(72)【発明者】
【氏名】コスミン ヴォイク
【テーマコード(参考)】
5B175
5E555
5L049
【Fターム(参考)】
5B175DA03
5B175HA01
5E555AA09
5E555AA79
5E555BA01
5E555BA45
5E555BA68
5E555BB01
5E555BC04
5E555BD01
5E555CA02
5E555CA18
5E555CB05
5E555CB44
5E555CC01
5E555DA01
5E555DB03
5E555DC05
5E555DD06
5E555DD07
5E555EA03
5E555EA07
5E555EA09
5E555EA27
5E555FA00
5L049AA20
(57)【要約】 (修正有)
【課題】ロボティックプロセスオートメーション(RPA)のためのセマンティック人工知能(AI)を使用したソース及びターゲット間の自動データ転送を実行する方法を提供する。
【解決手段】複数の人工知能/機械学習(AI/ML)モデル訓練する方法は、ラベル付けされた画面、単語及びフレーズ、所定の単語又はフレーズに対する類似の単語及びフレーズが特定されるような単語及びフレーズ間の意味的関連性のシソーラスなどの訓練データを提供することと、AI/MLモデルを複数のエポックに亘って訓練することと、その結果をレビューすることと、AI/MLモデルが信頼閾値を満たす場合、AI/MLモデルは、評価データに対してテストされ、AI/MLモデルがよく一般化し、AI/MLモデルが訓練データに関して過剰に適合しないことを確認することと、評価データについて信頼閾値が満たされる場合、AI/MLモデルを展開することと、を含む。
【選択図】
図7
【特許請求の範囲】
【請求項1】
コンピュータプログラムを格納した非一時的なコンピュータ読み取り可能な媒体であって、前記コンピュータプログラムは、少なくとも1つのプロセッサが、
ソースの選択を受信し、
ターゲットの選択を受信し、
前記ソースにおけるラベルと前記ターゲットにおけるラベルとの間、前記ソースにおける値と前記ターゲットにおける前記ラベルとの間、またはその両方でセマンティックマッチングを実行するように訓練された1または複数の人工知能/機械学習(AI/ML)モデルを呼び出し、
前記ソースにおける前記ラベルと前記ターゲットにおける前記ラベルとの間、前記ソースにおける前記値と前記ターゲットにおける前記ラベルとの間、またはその両方の前記セマンティックマッチングに基づいて、前記ソースから前記ターゲットに値をコピーするように構成される、非一時的なコンピュータ読み取り可能な媒体。
【請求項2】
前記コンピュータプログラムはさらに、前記少なくとも1つのプロセッサが、
ロボティックプロセスオートメーション(RPA)ワークフローにおいて、前記1または複数のAI/MLモデルが、前記ターゲットにおける前記ラベルと意味的にマッチングする(semantically matching)と特定したラベルを有する前記ソースにおける前記値から、前記ターゲットにおけるそれぞれのフィールドまたはロケーションにデータをコピーする1または複数のアクティビティを生成するように構成される、請求項1に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項3】
前記コンピュータプログラムはさらに、前記少なくとも1つのプロセッサが、
前記RPAワークフローで生成された前記1または複数のアクティビティを実装する自動化を生成し、
前記生成された自動化と、実行時環境で前記自動化を遂行するように構成されたRPAロボットとを展開するように構成される、請求項2に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項4】
前記コンピュータプログラムはさらに、前記少なくとも1つのプロセッサが、
コピーアンドペーストタスクの開始を決定し、
前記コピーアンドペーストタスクの終了を決定し、
前記コピーアンドペーストタスクの前記開始および前記終了に関連するアクティビティを生成するように構成される、請求項2に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項5】
前記コンピュータプログラムはさらに、前記少なくとも1つのプロセッサが、
前記ターゲットにおける意味的にマッチングするラベルに関連付けられた前記ソースにおけるフィールドまたはロケーションの指示と、前記1または複数のAI/MLモデルからのそれぞれの信頼スコアとを受信し、
前記ターゲット上の前記意味的にマッチングするラベルに関連するグラフィカル要素またはロケーションをマッチングインターフェース表示し、前記1または複数のAI/MLモデルによって特定された潜在的なマッチングフィールドまたはロケーションに関する前記それぞれの信頼スコアを前記マッチングインターフェースに表示し、あるいはその両方を行うように構成される、請求項1に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項6】
前記コンピュータプログラムはさらに、前記少なくとも1つのプロセッサが、
前記ソースにおける関連する意味的にマッチングするラベルを有するものとして前記1または複数のAI/MLモデルによって特定された前記ターゲットにおけるラベル、フィールド、またはロケーションに対する修正を受信し、前記1または複数のAI/MLモデルによって前記ソースにおけるラベルと意味的にマッチングしなかった前記ターゲットにおける新しいラベル、フィールド、またはロケーションの指示を受信し、あるいはその両方を行い、
前記ターゲットにおける前記修正されたおよび/または新たにラベル付けされたラベル、フィールド、もしくはロケーションと、前記ソースにおける前記関連するラベルとに関連する情報を収集し、
前記1または複数のAI/MLモデルの再訓練のために、前記収集された情報を直接または間接的に格納するように構成される、請求項1に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項7】
前記コンピュータプログラムはさらに、前記少なくとも1つのプロセッサが、
前記ターゲットにおける意味的にマッチングするラベルに関連するフィールドまたはロケーションの信頼スコアから複合信頼スコアを生成し、
前記複合信頼スコアをマッチングインターフェースに表示するように構成される、請求項1に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項8】
前記1または複数のAI/MLモデルは、所定の単語またはフレーズに関する類似の単語およびフレーズが特定され得るように、単語およびフレーズ間の意味的な関連付けを有する前記単語およびフレーズを提供し、かつ前記単語およびフレーズが表示される画面に関連する文脈上のラベルを提供することによって訓練される、請求項1に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項9】
前記コンピュータプログラムは、ロボティックプロセスオートメーション(RPA)デザイナアプリケーションである、またはそれを含む、請求項1に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項10】
前記1または複数のAI/MLモデルは、コンピュータビジョン(CV)モデル、光学的文字認識(OCR)モデル、ラベルマッチングモデル、および入力データマッチングモデルを含み、
前記ラベルマッチングモデルは、前記OCRモデルによって検出されたラベルを、前記CVモデルによって検出されたフィールドまたはロケーションとマッチングし、
入力データモデルは、前記ラベルマッチングモデルから前記マッチングするラベルを受信し、前記ソースからの前記ラベルおよび値を、前記ターゲット上の意味的にマッチングしたラベルに関連付けられた前記ラベルおよびフィールドまたはロケーションと意味的にマッチングする、請求項1に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項11】
前記コンピュータプログラムは、ロボティックプロセスオートメーション(RPA)ロボットである、またはそれを含む、請求項1に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項12】
前記コンピュータプログラムはさらに、前記少なくとも1つのプロセッサが、
前記ソース、前記ターゲット、またはその両方についてサポートされるタイプに関するオプションを提供するタイプ選択インターフェースを表示するように構成される、請求項1に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項13】
前記ソースがオペレーティングシステムのクリップボードからのコンテンツを含む、請求項1に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項14】
前記コンピュータプログラムはさらに、前記少なくとも1つのプロセッサが、
少なくとも1つの追加ソースを選択し、
前記セマンティックマッチングを実行するために、前記ソースからの情報に加えて、前記少なくとも1つの追加ソースからの情報を前記1または複数のAI/MLモデルに提供するように構成される、請求項1に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項15】
コンピューティングシステムにより、ソースにおけるラベルとターゲットにおけるラベルとの間、前記ソースにおける値と前記ターゲットにおける前記ラベルとの間、またはその両方でセマンティックマッチングを実行するように訓練された1または複数の人工知能/機械学習(AI/ML)モデルを呼び出すことと、
前記コンピューティングシステムにより、前記ソースにおける前記ラベルと前記ターゲットにおける前記ラベルとの間、前記ソースにおける前記値と前記ターゲットにおける前記ラベルとの間、またはその両方の前記セマンティックマッチングに基づいて、前記ソースから前記ターゲットに値をコピーすることと、を含む、コンピュータ実装方法。
【請求項16】
前記コンピューティングシステムにより、ロボティックプロセスオートメーション(RPA)ワークフローにおいて、前記1または複数のAI/MLモデルが、前記ターゲットにおける前記ラベルと意味的にマッチングすると特定したラベルを有する前記ソースにおける前記値から、前記ターゲットにおけるそれぞれのフィールドまたはロケーションにデータをコピーする1または複数のアクティビティを生成することをさらに含む、請求項15に記載のコンピュータ実装方法。
【請求項17】
前記コンピューティングシステムにより、前記RPAワークフローで生成された前記1または複数のアクティビティを実装する自動化を生成することと、
前記コンピューティングシステムにより、前記生成された自動化と、実行時環境で前記自動化を遂行するように構成されたRPAロボットとを展開することと、をさらに含む、請求項16に記載のコンピュータ実装方法。
【請求項18】
前記コンピューティングシステムにより、コピーアンドペーストタスクの開始を決定することと、
前記コンピューティングシステムにより、前記コピーアンドペーストタスクの終了を決定することと、
前記コンピューティングシステムにより、前記コピーアンドペーストタスクの前記開始および前記終了に関連するアクティビティを生成することと、をさらに含む、請求項16に記載のコンピュータ実装方法。
【請求項19】
前記コンピューティングシステムにより、前記ターゲットにおける意味的にマッチングするラベルに関連付けられた前記ソースにおけるフィールドまたはロケーションの指示と、前記1または複数のAI/MLモデルからのそれぞれの信頼スコアとを受信することと、
前記コンピューティングシステムにより、前記ターゲット上の前記意味的にマッチングするラベルに関連するグラフィカル要素またはロケーションをマッチングインターフェース表示すること、前記1または複数のAI/MLモデルによって特定された潜在的なマッチングフィールドまたはロケーションに関する前記それぞれの信頼スコアを前記マッチングインターフェースに表示すること、あるいはその両方を行うことと、をさらに含む、請求項15に記載のコンピュータ実装方法。
【請求項20】
前記コンピューティングシステムにより、前記ソースにおける関連する意味的にマッチングするラベルを有するものとして前記1または複数のAI/MLモデルによって特定された前記ターゲットにおけるラベル、フィールド、またはロケーションに対する修正を受信すること、前記1または複数のAI/MLモデルによって前記ソースにおけるラベルと意味的にマッチングしなかった前記ターゲットにおける新しいラベル、フィールド、またはロケーションの指示を受信すること、あるいはその両方を行うことと、
前記コンピューティングシステムにより、前記ターゲットにおける前記修正されたおよび/または新たにラベル付けされたラベル、フィールド、もしくはロケーションと、前記ソースにおける前記関連するラベルとに関連する情報を収集することと、
前記コンピューティングシステムにより、前記1または複数のAI/MLモデルの再訓練のために、前記収集された情報を直接または間接的に格納することと、をさらに含む、請求項15に記載のコンピュータ実装方法。
【請求項21】
前記コンピューティングシステムにより、前記ターゲットにおける意味的にマッチングするラベルに関連するフィールドまたはロケーションの信頼スコアから複合信頼スコアを生成することと、
前記コンピューティングシステムにより、前記複合信頼スコアをマッチングインターフェースに表示することと、をさらに含む、請求項15に記載のコンピュータ実装方法。
【請求項22】
前記1または複数のAI/MLモデルは、所定の単語またはフレーズに関する類似の単語およびフレーズが特定され得るように、単語およびフレーズ間の意味的な関連付けを有する前記単語およびフレーズを提供し、かつ前記単語およびフレーズが表示される画面に関連する文脈上のラベルを提供することによって訓練される、請求項15に記載のコンピュータ実装方法。
【請求項23】
前記1または複数のAI/MLモデルは、コンピュータビジョン(CV)モデル、光学的文字認識(OCR)モデル、ラベルマッチングモデル、および入力データマッチングモデルを含み、
前記ラベルマッチングモデルは、前記OCRモデルによって検出されたラベルを、前記CVモデルによって検出されたフィールドまたはロケーションとマッチングし、
入力データモデルは、前記ラベルマッチングモデルから前記マッチングするラベルを受信し、前記ソースからの前記ラベルおよび値を、前記ターゲット上の意味的にマッチングするラベルに関連付けられた前記ラベルおよびフィールドまたはロケーションと意味的にマッチングする、請求項15に記載のコンピュータ実装方法。
【請求項24】
前記コンピューティングシステムにより、前記ソース、前記ターゲット、またはその両方についてサポートされるタイプに関するオプションを提供するタイプ選択インターフェースを表示すること、をさらに含む、請求項15に記載のコンピュータ実装方法。
【請求項25】
前記ソースがオペレーティングシステムのクリップボードからのコンテンツを含む、請求項15に記載のコンピュータ実装方法。
【請求項26】
前記1または複数のAI/MLモデルは、複数のソースにおけるラベルと前記ターゲットにおける前記ラベルとの間、前記複数のソースにおける前記値と前記ターゲットにおける前記ラベルとの間、またはその両方の前記セマンティックマッチングを実行するために、前記複数のソースからの情報を使用する、請求項15に記載のコンピュータ実装方法。
【請求項27】
コンピュータプログラム命令を格納するメモリと、
前記コンピュータプログラム命令を遂行するように構成された少なくとも1つのプロセッサとを含み、前記コンピュータプログラム命令は、前記少なくとも1つのプロセッサが、
ソースにおけるラベルとターゲットにおけるラベルとの間、前記ソースにおける値と前記ターゲットにおける前記ラベルとの間、またはその両方でセマンティックマッチングを実行するように訓練された1または複数の人工知能/機械学習(AI/ML)モデルを呼び出し、
前記ソースにおける前記ラベルと前記ターゲットにおける前記ラベルとの間、前記ソースにおける前記値と前記ターゲットにおける前記ラベルとの間、またはその両方の前記セマンティックマッチングに基づいて、前記ソースから前記ターゲットに値をコピーするように構成され、
前記コンピュータプログラム命令は、ロボティックプロセスオートメーション(RPA)デザイナアプリケーションまたはRPAロボットである、またはそれを含む、コンピューティングシステム。
【請求項28】
前記コンピュータプログラム命令はさらに、前記少なくとも1つのプロセッサが、
RPAワークフローにおいて、前記1または複数のAI/MLモデルが、前記ターゲットにおける前記ラベルと意味的にマッチングすると特定したラベルを有する前記ソースにおける前記値から、前記ターゲットにおけるそれぞれのフィールドまたはロケーションにデータをコピーする1または複数のアクティビティを生成するように構成される、請求項27に記載のコンピューティングシステム。
【請求項29】
前記コンピュータプログラム命令はさらに、前記少なくとも1つのプロセッサが、
RPAワークフローで生成された前記1または複数のアクティビティを実装する自動化を生成し、
前記生成された自動化と、実行時環境で前記自動化を遂行するように構成されたRPAロボットとを展開するように構成される、請求項27に記載のコンピューティングシステム。
【請求項30】
前記コンピュータプログラム命令はさらに、前記少なくとも1つのプロセッサが、
コピーアンドペーストタスクの開始を決定し、
前記コピーアンドペーストタスクの終了を決定し、
前記コピーアンドペーストタスクの前記開始および前記終了に関連するアクティビティを生成するように構成される、請求項27に記載のコンピューティングシステム。
【請求項31】
前記コンピュータプログラム命令はさらに、前記少なくとも1つのプロセッサが、
前記ターゲットにおける意味的にマッチングするラベルに関連付けられた前記ソースにおけるフィールドまたはロケーションの指示と、前記1または複数のAI/MLモデルからのそれぞれの信頼スコアとを受信し、
前記ターゲット上の前記意味的にマッチングするラベルに関連するグラフィカル要素またはロケーションをマッチングインターフェース表示し、前記1または複数のAI/MLモデルによって特定された潜在的なマッチングフィールドまたはロケーションに関する前記それぞれの信頼スコアを前記マッチングインターフェースに表示し、あるいはその両方を行うように構成される、請求項27に記載のコンピューティングシステム。
【請求項32】
前記コンピュータプログラム命令はさらに、前記少なくとも1つのプロセッサが、
前記ソースにおける関連する意味的にマッチングするラベルを有するものとして前記1または複数のAI/MLモデルによって特定された前記ターゲットにおけるラベル、フィールド、またはロケーションに対する修正を受信し、前記1または複数のAI/MLモデルによって前記ソースにおけるラベルと意味的にマッチングしなかった前記ターゲットにおける新しいラベル、フィールド、またはロケーションの指示を受信し、あるいはその両方を行い、
前記ターゲットにおける前記修正されたおよび/または新たにラベル付けされたラベル、フィールド、もしくはロケーションと、前記ソースにおける前記関連するラベルとに関連する情報を収集し、
前記1または複数のAI/MLモデルの再訓練のために、前記収集された情報を直接または間接的に格納するように構成される、請求項27に記載のコンピューティングシステム。
【請求項33】
前記コンピュータプログラム命令はさらに、前記少なくとも1つのプロセッサが、
前記ターゲットにおける意味的にマッチングするラベルに関連するフィールドまたはロケーションの信頼スコアから複合信頼スコアを生成し、
前記複合信頼スコアをマッチングインターフェースに表示するように構成される、請求項27に記載のコンピューティングシステム。
【請求項34】
前記1または複数のAI/MLモデルは、所定の単語またはフレーズに関する類似の単語およびフレーズが特定され得るように、単語およびフレーズ間の意味的な関連付けを有する前記単語およびフレーズを提供し、かつ前記単語およびフレーズが表示される画面に関連する文脈上のラベルを提供することによって訓練される、請求項27に記載のコンピューティングシステム。
【請求項35】
前記1または複数のAI/MLモデルは、コンピュータビジョン(CV)モデル、光学的文字認識(OCR)モデル、ラベルマッチングモデル、および入力データマッチングモデルを含み、
前記ラベルマッチングモデルは、前記OCRモデルによって検出されたラベルを、前記CVモデルによって検出されたフィールドまたはロケーションとマッチングし、
入力データモデルは、前記ラベルマッチングモデルから前記マッチングするラベルを受信し、前記ソースからの前記ラベルおよび値を、前記ターゲット上の意味的にマッチングしたラベルに関連付けられた前記ラベルおよびフィールドまたはロケーションと意味的にマッチングする、請求項27に記載のコンピューティングシステム。
【請求項36】
前記コンピュータプログラム命令はさらに、前記少なくとも1つのプロセッサが、
前記ソース、前記ターゲット、またはその両方についてサポートされるタイプに関するオプションを提供するタイプ選択インターフェースを表示するように構成される、請求項27に記載のコンピューティングシステム。
【請求項37】
前記ソースがオペレーティングシステムのクリップボードからのコンテンツを含む、請求項27に記載のコンピューティングシステム。
【請求項38】
前記1または複数のAI/MLモデルは、複数のソース内のラベルと前記ターゲット内の前記ラベルとの間、前記複数のソース内の前記値と前記ターゲット内の前記ラベルとの間、またはその両方の前記セマンティックマッチングを実行するために、前記複数のソースからの情報を使用する、請求項27に記載のコンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願への相互参照)
本出願は、2021年10月5日に出願された米国非仮特許出願第17/494,744号の一部継続(CIP)である。先に提出された本出願の主題は、その全体を参照することにより、本明細書に組み込まれる。
【0002】
本発明は概して、セマンティック(semantic)マッチングに関し、より具体的には、ロボティックプロセスオートメーション(RPA)のためのセマンティック人工知能(AI)を使用した、ソースおよびターゲットの間の自動データ転送に関する。
【背景技術】
【0003】
現在、開発者はアクティビティを使用して、RPAデザイナアプリケーションでロボティックプロセスオートメーション(RPA)ワークフローを手動で作成する必要がある。RPAワークフローを作成する際、開発者は画面上でターゲットのグラフィカル要素を指定する必要があり、これにより、RPAデザイナアプリケーションはターゲット要素に対応するセレクタをアンカーのセットで自動的に生成する。現在、UiPath Studio(商標)にはアクティビティの推奨機能および提案機能が存在するが、例えば、完全に自動化されたRPAワークフローの作成はサポートされておらず、ソースからターゲットへの直感的なデータ転送もサポートされていない。RPAワークフローを作成する際に、対象の全てのグラフィカル要素を手動で指定するのは時間がかかる。したがって、改善されたおよび/または代替のアプローチが有益であり得る。
【発明の概要】
【0004】
本発明の特定の実施形態は、現在のRPA技術によってまだ十分に特定されていない、評価されていない、または解決されていない本分野における問題およびニーズのソリューションを提供し得る。例えば、本発明のいくつかの実施形態は、RPA用のセマンティックAIを使用したソースおよびターゲットの間の自動データ転送に関する。
【0005】
実施形態では、非一時的なコンピュータ読み取り可能な媒体は、コンピュータプログラムを格納する。コンピュータプログラムは、少なくとも1つのプロセッサがソースの選択を受信し、ターゲットの選択を受信するように構成される。コンピュータプログラムはまた、少なくとも1つのプロセッサがソースにおけるラベルとターゲットにおけるラベルとの間、ソースにおける値とターゲットにおけるラベルとの間、またはその両方でセマンティックマッチングを実行するように訓練された1または複数のAI/MLモデルを呼び出すように構成される。コンピュータプログラムはさらに、少なくとも1つのプロセッサがソースにおけるラベルとターゲットにおけるラベルとの間、ソースにおける値とターゲットにおけるラベルとの間、またはその両方のセマンティックマッチングに基づいて、ソースからターゲットに値をコピーするように構成される。
【0006】
別の実施形態では、コンピュータ実装方法は、コンピューティングシステムにより、ソースにおけるラベルとターゲットにおけるラベルとの間、ソースにおける値とターゲットにおけるラベルとの間、またはその両方でセマンティックマッチングを実行するように訓練された1または複数のAI/MLモデルを呼び出すことを含む。コンピュータ実装方法はまた、コンピューティングシステムにより、ソースにおけるラベルとターゲットにおけるラベルとの間、ソースにおける値とターゲットにおけるラベルとの間、またはその両方のセマンティックマッチングに基づいて、ソースからターゲットに値をコピーすることを含む。
【0007】
さらに別の実施形態では、コンピューティングシステムは、コンピュータプログラム命令を格納するメモリと、コンピュータプログラム命令を遂行するように構成された少なくとも1つのプロセッサとを含む。コンピュータプログラム命令は、少なくとも1つのプロセッサがソースにおけるラベルとターゲットにおけるラベルとの間、ソースにおける値とターゲットにおけるラベルとの間、またはその両方でセマンティックマッチングを実行するように訓練された1または複数のAI/MLモデルを呼び出すように構成される。コンピュータプログラム命令は、少なくとも1つのプロセッサがソースにおけるラベルとターゲットにおけるラベルとの間、ソースにおける値とターゲットにおけるラベルとの間、またはその両方のセマンティックマッチングに基づいて、ソースからターゲットに値をコピーするように構成される。コンピュータプログラム命令は、RPAデザイナアプリケーションまたはRPAロボットである、またはそれを含む。
【図面の簡単な説明】
【0008】
本発明の特定の実施形態の利点が容易に理解されるように、上記で簡単に説明した本発明のより特定の説明は、添付の図面に図示されている特定の実施形態を参照して描写される。これらの図面は、本発明の典型的な実施形態のみを描いており、したがって、その範囲を限定するものとは考えられないことが理解されるべきであるが、本発明は、以下の添付の図面を使用することにより、さらなる特定および詳細をもって描写され、説明されるであろう。
【0009】
【
図1】本発明の実施形態による、ハイパーオートメーションシステムを示すアーキテクチャ図である。
【0010】
【
図2】本発明の実施形態による、RPAシステムを示すアーキテクチャ図である。
【0011】
【
図3】本発明の実施形態による、展開したRPAシステムを示すアーキテクチャ図である。
【0012】
【
図4】本発明の実施形態による、デザイナ、アクティビティ、およびドライバの間の関係を示すアーキテクチャ図である。
【0013】
【
図5】本発明の実施形態による、RPA用セマンティックAIを使用したソースおよびターゲットの間で自動データ転送を実行するように構成されたコンピューティングシステムを示すアーキテクチャ図である。
【0014】
【
図6A】本発明の実施形態による、画像内のグラフィカル要素を認識するように訓練されたニューラルネットワークの例を示す。
【0015】
【
図6B】本発明の実施形態によるニューロンの例を示す。
【0016】
【
図7】本発明の実施形態による、AI/MLモデル(複数可)を訓練するためのプロセスを示すフローチャートである。
【0017】
【
図8A】は、本発明の実施形態による、RPAデザイナアプリケーションのためのマッチングインターフェースを示す。
【
図8B】は、本発明の実施形態による、RPAデザイナアプリケーションのためのマッチングインターフェースを示す。
【
図8C】は、本発明の実施形態による、RPAデザイナアプリケーションのためのマッチングインターフェースを示す。
【
図8D】は、本発明の実施形態による、RPAデザイナアプリケーションのためのマッチングインターフェースを示す。
【0018】
【
図9】本発明の実施形態による、自動生成されたRPAワークフローを有するRPAデザイナアプリケーションを示す。
【0019】
【
図10A】本発明の実施形態による、セマンティックコピーアンドペーストインターフェースの例の画面を示す。
【
図10B】本発明の実施形態による、セマンティックコピーアンドペーストインターフェースの例の画面を示す。
【
図10C】本発明の実施形態による、セマンティックコピーアンドペーストインターフェースの例の画面を示す。
【
図10D】本発明の実施形態による、セマンティックコピーアンドペーストインターフェースの例の画面を示す。
【
図10E】本発明の実施形態による、セマンティックコピーアンドペーストインターフェースの例の画面を示す。
【
図10F】本発明の実施形態による、セマンティックコピーアンドペーストインターフェースの例の画面を示す。
【
図10G】本発明の実施形態による、セマンティックコピーアンドペーストインターフェースの例の画面を示す。
【
図10H】本発明の実施形態による、セマンティックコピーアンドペーストインターフェースの例の画面を示す。
【0020】
【
図11】本発明の実施形態による、セマンティックAIを実行するためのAI/MLモデルのアーキテクチャを示すアーキテクチャ図である。
【0021】
【
図12】本発明の実施形態による、設計時にRPA用のセマンティックAIを使用してソースおよびターゲットの間で自動データ転送を実行するためのプロセスを示すフローチャートである。
【0022】
【
図13】本発明の実施形態による、実行時にRPA用のセマンティックAIを使用してソースおよびターゲットの間で自動データ転送を実行するためのプロセスを示すフローチャートである。
【0023】
【
図14】本発明の実施形態による、設計時にRPA用のセマンティックAIを使用してソースおよびターゲットの間で永続的なマルチスクリーン自動データ転送を実行するためのプロセスを示すフローチャートである。
【0024】
【
図15】本発明の実施形態による、実行時にRPA用のセマンティックAIを使用してソースおよびターゲットの間で永続的なマルチスクリーン自動データ転送を実行するためのプロセスを示すフローチャートである。
【0025】
別段の記載がない限り、類似の参照文字は、添付の図面全体で一貫して対応する特徴を示す。
【発明を実施するための形態】
【0026】
(実施形態の詳細な説明)
いくつかの実施形態は、RPA用のセマンティックAIを使用したソースおよびターゲットの間の自動データ転送に関する。ほとんどの手動タスクは、ソースに移動し、フィールドごとにフィールドに移動し、そして情報を宛先に入れること(請求書の内容を課金システムに入力するなど)に減らされ得る。いくつかの実施形態は、フォーマットに関係なく、ソースおよびターゲットを選択し、彼または彼女がソースから宛先にデータをコピーしたいことを直感的なユーザーインターフェースを介して示すオプションをユーザーに提供する。例えば、ソースおよび/またはターゲットは、ウェブページ、アプリケーションのグラフィカルユーザーインターフェース(GUI)、画像、ファイルエクスプローラー、スプレッドシート、リレーショナルデータベース、フラットファイルソース、任意のその他の適切な形式、またはそれらのいずれかの組み合わせであり得る。いくつかの実施形態では、ソースおよびターゲットは、ソースがPDFであり、ターゲットが課金アプリケーションのユーザーインターフェースであるなど、異なるフォーマットを有し得る。特定の実施形態では、ソース、ターゲット、またはその両方は、ユーザーに視認され得ない。
【0027】
いくつかの実施形態では、AI/MLモデル(複数可)が使用されて、ソース(例えば、キー-値のペア、ラベルおよび関連する値など)およびターゲット(例えば、ラベルおよびそれらのラベルに対応するテキストフィールド)から情報を抽出し得る。AI/MLモデル(複数可)は、限定されないが、コンピュータビジョン(CV)モデル、光学的文字認識(OCR)モジュール、文書処理モジュールなどを含み得る。次に、セマンティックマッチングモジュールを使用して、ソースにおけるラベルおよび値を、ラベルおよび関連するフィールド、UI要素、ファイルロケーション、または本発明の範囲から逸脱することなく値をコピーするための他の適切なロケーションにマッピングする。マッピングされると、値はソースから宛先に自動的にコピーされる。
【0028】
いくつかの実施形態では、ソースにある値を有するラベルが、少なくとも特定のマッチング閾値(例えば、75%、90%など)でターゲットにおけるラベルとマッチングしない場合、さまざまなアクションが取られ得る。例えば、ソースからのラベルとその値は無視され得る。あるいは、ユーザーは、対応するラベルがターゲットに存在するかどうかを特定し、その特定を提供するように促され得る。特定の実施形態では、マッチング閾値未満であるが表示閾値(例えば、35%、50%など)より大きい信頼値を有する潜在的なマッチング候補のリストをユーザーは示され得る。
【0029】
いくつかの実施形態では、ターゲットベースのスキーマ特定が使用され得る。文書、ウェブフォーム、ソフトウェアアプリケーションのユーザーインターフェース、データファイルなどのソースを見ると、多くの場合、どのフィールドがラベルで、どのフィールドがそれらのラベルに関連付けられている値であるかをソフトウェアが判断するのは困難である。値は、限定されないが、テキスト文字列、数字などを含み得る。しかし、そのような値を欠いているターゲットテンプレート文書、ウェブフォーム、ソフトウェアアプリケーションのユーザーインターフェースなどが分析されて、その中のラベルを検出し得る。さまざまなラベル(名前、会社、顧客番号など)の値がまだ入力されていないため、これらのラベルは、ターゲットがラベルに関連付けられたさまざまな値も含む場合よりも検出が容易である。
【0030】
しかし、いくつかの実施形態では、ソースはスキーマ自体を有し得ない。そのような場合、自然言語処理(NLP)モデルが使用され得る。例えば、深層学習を使用して人間のようなテキストを生成する自己回帰言語モデルであるGPT-3が使用され得る。NLPモデルへの入力は、ソース文書およびユーザーが抽出したいもの(例えば、テキストの段落の形式)を平易な英語で記述したものであり得る。次に、ソース文書が分析され、この入力に基づいてNLPモデルを使用してその中の情報が抽出され得る。所望の情報を「推測」するために、NLPモデルによって文書のテキスト全体に意味理解が適用される。
【0031】
人間の言語は、断片に分割され、文の文法構造と文脈における単語の意味を分析し得る。これは、NLPを使用するソフトウェアが、人間と同様の方法で、話し言葉または書き言葉のテキストを読み、理解するのに役立つ。文は、トークン化によって、より小さな意味単位または断片であるトークンに分割され得る。単語を名詞、動詞、形容詞、副詞、代名詞などとしてマークするなど、品詞にもタグを付けされ得る。ステミング(stemming)およびレンマタイゼーション(lemmatization)が使用されて、単語をそれらの原形に減らすことで単語を標準化し得る。また、ストップワードは削除され得る。これらは、前置詞および冠詞(at、to、a、theなど)など、独自の情報をほとんどまたはまったく加えない一般的な単語である。次に、この情報にNLPモデルが実行されて、有用な情報を抽出し得る。
【0032】
いくつかの実施形態は、以下の
図1および
図2に関してさらに詳細に説明されるように、アテンディッドまたはアンアテンディッドであり得る。アテンディッド実施形態の場合、いくつかの態様では、フィールドの値が正しくないためにユーザーがフィールドをクリックすると、他のスコア付きオプションが表示され、ユーザーが選択し得る。候補の類似性は、本発明の範囲から逸脱することなく、任意の適切な類似性尺度および/または2つの値間の不一致の量の尺度を使用してランク付けされ得る。例えば、さまざまな実施形態では、類似度閾値は、不一致の最大量または一致に要求される類似度の最小量を表してもよい。類似度測定は、「文字列メトリック」として知られている文字列間距離に従うなど、さまざまな方法で表現されてもよい。レベンシュタイン距離として知られている文字列メトリックの一例としては、ある文字列を他の文字列に変換するのに必要な動作の数を決定する。その他の文字列間距離としては、とりわけ、ハミング距離およびジャロ-ウィンクラー距離を含む。
【0033】
類似度測定値を計算する選択された方法に応じて、類似度閾値はさまざまな解釈を有し得る。例えば、類似度閾値は、2つの文字列の間で異なり得る文字の最大カウント数を示してもよいし、文字の合計カウント数(例えば、結合された文字列の長さ)の割合として計算された不一致の分数の程度を示してもよい。いくつかの実施形態では、類似度閾値は、0と1の間、0と100の間、7と34の間などの所定の間隔に再スケーリングされてもよい。1つの非限定的な例では、比較的高い類似度閾値(例えば、1または100%に近い)は、ほぼ完全一致の要件、すなわち、実行時間ターゲットにおけるファジー属性の値が、設計時間ターゲットにおける各属性の値から非常にわずかに逸脱することしか許されないことを示す。一方、類似度閾値が比較的低い(例えば、0に近い)場合には、それぞれのファジー属性のほぼ全ての値が一致するとみなされる。いくつかのものは、例えばスライダを使って、設計時に類似度閾値を調整し得る。
【0034】
既存の技法は複数または多くのソース例を使用してソースからキー-値のペアを学習するが、いくつかの実施形態は本質的に逆に動作する。ラベルは空のターゲットから決定される。上記のように、ソースおよびターゲットは異なるタイプを有する。例えば、1つはウェブページであり得るが、他方はExcel(登録商標)スプレッドシートである。コンピュータビジョン(CV)、光学的文字認識(OCR)、および/または文書処理フレームワークを採用することで、グラフィカルユーザーインターフェース(GUI)の画像でさえ使用され得る。例えば、米国特許出願公開第2021/0097274号を参照し、その主題は、参照によりその全体が本明細書に組み込まれる。このような技術は、ソースおよび/またはターゲットを分類するために使用され得る。
【0035】
ユーザーは、特定のタイプのターゲット用のライブラリを構築するための訓練情報を提供し得る。例えば、CV、OCR、および文書処理の人工知能(AI)/機械学習(ML)モデルは、70%の精度を達成できる「すぐに使える」ものとして提供され得る。ユーザーが誤った値および/またはラベル値の関連付けの修正を提供すると、これらを使用してそれぞれのAI/MLモデルを再訓練し、その精度を高め得る。
【0036】
いくつかの実施形態では、最もよく使用されるタスクを決定するために、ソフトウェアとのユーザーインタラクションに対して分析が実行され得る。これらはセンターオブエクセレンス(COE)に報告され、タスクマイニングの形式として使用され得る。現在のタスクマイニングテクノロジを使用して、特定の反復タスクの開始および終了を特定することは困難である。しかしながら、ユーザーがコピーアンドペースト操作を実行する方法を分析することによって、いくつかの実施形態は、タスクがどこで開始され、それがどこで終了したかを特定し得る。「コピー」はコピーアンドペーストタスクの開始を意味し得、「ペースト」はそのようなタスクの終了を意味し得る。コピーおよびペーストの間に実行されるアクションは、ワークフローにおけるタスクのフローとして含められ得る。さらに、この情報を使用して作成され入信頼性の高い効果的なワークフローである。
【0037】
特定の実施形態では、ローカルおよびグローバルの両方のAI/MLモデルが含められ得る。例えば、ローカルAI/MLモデルは特定のユーザーの好みを学習し得、一方でグローバルAI/MLモデルは多数または全てのユーザーから集合的な好みを学習する。AI/MLモデルの結果を使用するには、閾値が必要とされ得る。例えば、ローカルモデルが最初に採用され、1または複数の属性の提案閾値を満たさない場合、グローバルモデルが試されて、それが有用な結果が得られるかどうかを確認し得る。
【0038】
ターゲットベースのスキーマ特定を実行するために、ユーザーはまだ値を持っていないターゲットを選択し得る。CV、OCR、および/または文書処理AI/MLモデルを使用して、ターゲットにおけるラベルまたは「キー」とそれらのロケーションが決定される。これにより、システムはターゲットのタイプを決定できる。例えば、ウェブフォームは、そのテキストフィールドのそれぞれのラベルの右側に長方形のテキストフィールドを有する傾向がある。請求書は、顧客番号、「請求書」という単語、「金額」のいくつかのバリエーションなど、特定のフィールドを有する傾向があるだろう。ラベルのロケーション(複数可)も、決定を支援するために使用され得る。例えば、テキストフィールドはたいてい、テキストフィールドの列の上部または下部を除いて、上下に1つずつ垂直に配置される傾向がある。いくつかの実施形態では、米国特許第10,936,351号に開示されている技術を使用するなどして、アンカーまたはマルチアンカーベースの抽出が実行され得る。
【0039】
いくつかの実施形態では、ソースデータまたはソース画面およびターゲット画面は、マッチングインターフェース上で選択され、ラベルおよびスキーマの特定、セマンティックマッチング、ならびにソースからターゲットへのマッチングするラベルに関するデータの転送(例えば、コピーアンドペースト)が、ユーザーによるさらなる操作なしで自動的に実行される。そのような機能は、RPA開発者(シチズンデベロッパーを含む)には設計時に提供され、エンドユーザーには実行時に提供され得る。いくつかの設計時の実施形態では、RPAロボットによって遂行される自動化の一部としてセマンティックAI機能を実行するために遂行され得るセマンティックマッピングに基づいて、1または複数のRPAワークフローアクティビティが自動的に作成される。
【0040】
いくつかの実施形態では、Excel(登録商標)スプレッドシート、リレーショナルデータベース、フラットファイルソースなどから、データフィールドのリストが取得され得る。セマンティックマッチングAI/MLモデルは、ソースデータにおけるエントリを繰り返し、それらをターゲットのラベルおよび対応するデータエントリロケーションにマッチングさせ得る。セマンティックマッチングAI/MLモデルは、データソースのタイプに関係なく、これを行うように訓練され得る。このAI/MLモデルのセマンティックマッチング機能により、1対1のマッチングが必要ない場合がある。例えば、自然言語モデルは、ターゲット画面の同一または類似の名前/フレーズをソースデータのそれらとマッチングさせようとし得る(または、ソースデータから開始して、ターゲット画面で類似の名前/フレーズを探す)。特定の実施形態では、特定の用語に対して多くの類似した単語またはフレーズが存在し得、文脈に応じて多くの異なるサブセットも存在し得るので、セマンティックマッチングAI/MLモデルをより正確にするために訓練データの広範なセットが使用される。いくつかの実施形態では、文脈も使用され得る。例えば、セマンティックマッチングAI/MLモデルは、特定のターゲットが銀行の詳細対請求書、対発注書対連絡先情報などに関連していることを学習し得る。
【0041】
いくつかの実施形態のセマンティックマッチングAI/MLモデルは、設計時の間にRPA開発者を支援するために展開され得る。しかし、いくつかの実施形態では、セマンティックマッチングAI/MLモデルを実行時に使用して、より堅牢な機能および自己修復を提供し得る。これは、UI記述子がセマンティックマッチングAI/MLモデルよりもかなり高速になる傾向があるため、いくつかの実施形態では一般的ではなく、実行時にUI記述子がターゲットグラフィカル要素を特定できない場合に採用され得る。そのため、UI記述子は、同じまたは類似のターゲット画面に対して最初に使用される必要がある。
【0042】
例えば、ターゲットアプリケーションの新バージョンによりUIが変更された場合など、所定のターゲット要素が所定のユーザーインターフェース(UI)記述子により実行時に特定され得ない場合、セマンティックマッチングAI/MLモデルが使用されて、ターゲットグラフィカル要素の特定を試みてもよい。この情報は、次に、対象の単語またはフレーズの同義語として追加され得、そのグラフィカル要素に関するUI記述子は、UI記述子が今後機能するように更新され得る。ユーザーインターフェースがまた再び変更され、変更されたグラフィカル要素および/またはアンカー(複数可)が十分に類似している場合、RPAロボットは、アプリケーションの新バージョンにおいてターゲットグラフィカル要素を特定することができる場合がある。例えば、米国特許出願公開第2022/0012024号を参照。
【0043】
UI記述子とは、UI要素を見つけるための命令のセットである。いくつかの実施形態におけるUI記述子は、UI要素セレクタ(複数可)、アンカーセレクタ(複数可)、コンピュータビジョン(CV)記述子(複数可)、統一されたターゲット記述子(複数可)、画面イメージキャプチャ(コンテキスト)、要素イメージキャプチャ、他のメタデータ(例えば、アプリケーションおよびアプリケーションバージョン)、それらの組み合わせなどを含むカプセル化されたデータ/構造フォーマットである。カプセル化されたデータ/構造フォーマットは、プラットフォームへの将来のアップデートによって拡張可能であってもよく、上記の定義に限定されるものではない。画面上のUI要素を特定するためのUI記述子としては、本発明の範囲を逸脱することなく、任意の好適なものを使用することができる。
【0044】
いくつかの実施形態では、セマンティックマッチングAI/MLモデルが検出するものは、実行時検出のための統一されたターゲット記述子と組み合わされ得る。そのような実施形態の場合、ソースおよびターゲットのための単語およびフレーズに加えて、マッピングが確認されると、統一されたターゲット情報が収集され得る。実行時に、統一されたターゲット記述子が最初に試され、成功しない場合、セマンティックマッチングAI/MLモデルが使用され得る。
【0045】
統一されたターゲット記述子は、AI/MLモデルよりも安定かつ正確である傾向がある。統一されたターゲット記述子は、複数のタイプのUI記述子を連結する。統一されたターゲット情報は、採用されるUI記述子(複数可)のためのグラフィカル要素の特定を容易にするUI記述子情報を含む。
【0046】
統一されたターゲット記述子は、有限状態機械(FSM)のように機能してもよく、第1文脈では、第1UI記述子メカニズムが適用され、第2文脈では、第2UI記述子が適用される、などである。言い換えれば、UI記述子は、いくつかの実施形態では、画像検出および定義が実行されるいくつかのまたは全てのUI検出メカニズムを包含する統一されたターゲットと協働し得る。統一されたターゲットは、UI要素を特定して自動化する複数の技術を、単一のまとまりのあるアプローチに併合してもよい。統一されたターゲットは、セレクタベースおよびドライバベースのUI検出メカニズムを優先し、最初の2つのメカニズムが成功しない場合にターゲットUI要素を見つけるためのフォールバックとしてCVを使用するなど、いくつかの実施形態では、特定のUI記述子タイプを優先させてもよい。
【0047】
いくつかの実施形態では、NLP AI/MLモデルは、セマンティックマッチングAI/MLモデルに加えて、またはその代わりに使用され得る。特定の実施形態では、これらのAI/MLモデルは、一緒に使用され得る。例えば、モデルのうちの1つが特定の閾値を満たすかまたは超える場合、モデルの両方の平均が閾値を満たすかまたは超える場合等、マッチングがユーザーに提案され得る。
【0048】
いくつかの実施形態では、フィードバックループ機能が提供される。例えば、ユーザーがマッチングを追加またはセマンティックマッチングAI/MLモデルによって提案されたマッチングを修正する場合、このマッチングに関連する情報が保存され得る。この情報は、限定されないが、ターゲットアプリケーションのスクリーンショット、ターゲットアプリケーションのラベルおよびソース画面またはソースデータの対応するラベル、不正なマッチングのラベルなどを含み得る。また、ウェブページ、SAP(登録商標)などに対して修正が発生したというような文脈が取得され得る。このデータは、このようにして収集された他のラベル付きデータと組み合わせて、セマンティックマッチングAI/MLモデルを再訓練するために使用され得る。
【0049】
図1は、本発明の実施形態による、ハイパーオートメーションシステム100を示すアーキテクチャ図である。本明細書で使用される「ハイパーオートメーション」は、プロセスオートメーションのコンポーネント、統合ツール、および作業を自動化する能力を増幅する技術をまとめたオートメーションシステムを指す。例えば、いくつかの実施形態では、RPAがハイパーオートメーションシステムのコアで使用され、特定の実施形態では、人工知能(AI)/機械学習(ML)、プロセスマイニング、分析、および/または他の高度なツールによって自動化能力が拡張され得る。ハイパーオートメーションシステムがプロセスを学習し、AI/MLモデルを訓練し、そして分析を採用すると、例えば、より多くの知識作業が自動化され得、組織内のコンピューティングシステム、例えば、個人によって使用されるものと自律的に動作するものの両方は、全てハイパーオートメーションプロセスの参加者として従事され得る。いくつかの実施形態のハイパーオートメーションシステムは、ユーザーおよび組織が効率的かつ効果的にオートメーションを発見し、理解し、そして拡張することを可能にする。
【0050】
ハイパーオートメーションシステム100は、デスクトップコンピュータ102、タブレット104、およびスマートフォン106などのユーザーコンピューティングシステムを含む。しかしながら、スマートウォッチ、ラップトップコンピュータ、サーバー、インターネットオブシングス(IoT)デバイスなどを含むが、これらに限定されない、任意の所望のユーザーコンピューティングシステムが本発明の範囲から逸脱せずに使用され得る。また、
図1には3つのユーザーコンピューティングシステムが示されているが、本発明の範囲から逸脱することなく、任意の適切な数のユーザーコンピューティングシステムが使用され得る。例えば、いくつかの実施形態では、数十、数百、数千、または数百万のユーザーコンピューティングシステムが使用され得る。ユーザーコンピューティングシステムは、ユーザーによって積極的に使用されてもよいし、または多くのもしくは任意のユーザー入力なしに自動的に実行され得る。
【0051】
各ユーザーコンピューティングシステム102、104、106は、そこで実行しているそれぞれのオートメーションプロセス(複数可)110、112、114を有する。オートメーションプロセス(複数可)110、112、114は、限定されないが、本発明の範囲から逸脱することなく、RPAロボット、オペレーティングシステムの一部、それぞれのコンピューティングシステム用のダウンロード可能なアプリケーション(複数可)、他の任意の適切なソフトウェアおよび/もしくはハードウェア、またはそれらのいずれかの組み合わせを含み得る。いくつかの実施形態では、1または複数のプロセス(複数可)110、112、114は、リスナーであり得る。リスナーは、本発明の範囲から逸脱することなく、RPAロボット、オペレーティングシステムの一部、それぞれのコンピューティングシステム用のダウンロード可能なアプリケーション、または他の任意のソフトウェアおよび/もしくはハードウェアであり得る。実際、いくつかの実施形態では、リスナー(複数可)のロジックは、物理的なハードウェアを介して部分的または完全に実装される。
【0052】
リスナーは、それぞれのコンピューティングシステムとのユーザーインタラクションおよび/またはアンアテンディッドコンピューティングシステムの動作に関連するデータを監視および記録し、ネットワーク(例えば、ローカルエリアネットワーク(LAN)、モバイル通信ネットワーク、衛星通信ネットワーク、インターネット、それらのいずれかの組み合わせ等)を介してコアハイパーオートメーションシステム120にデータを送信する。データは、限定されないが、どのボタンがクリックされたか、マウスがどこに移動したか、フィールドに入力されたテキスト、1つのウィンドウが最小化されそして別のウィンドウが開かれたこと、ウィンドウに関連するアプリケーションなどを含み得る。特定の実施形態では、リスナーからのデータは、ハートビートメッセージの一部として定期的に送信され得る。いくつかの実施形態では、データは、所定量のデータが収集されると、所定期間が経過した後、またはその両方で、コアハイパーオートメーションシステム120に送信され得る。サーバー130などの1または複数のサーバーは、リスナーからデータを受信し、データベース140などのデータベースに格納する。
【0053】
オートメーションプロセスは、設計時間中にワークフローで開発されたロジックを遂行し得る。RPAの場合、ワークフローは、本明細書において「アクティビティ」として定義される、シーケンスまたは他の何らかのロジックフローで遂行されるステップのセットを含み得る。各アクティビティは、ボタンをクリックする、ファイルを読む、ログパネルに書き込むなどのアクションを含み得る。いくつかの実施形態では、ワークフローは入れ子になっているか、または埋め込まれ得る。
【0054】
いくつかの実施形態におけるRPAのための長時間実行ワークフローは、サービスオーケストレーション、人間の介入、およびアンアテンディッド環境における長時間実行トランザクションをサポートするマスタープロジェクトである。例えば、米国特許第10,860,905号を参照。人間の介入は、特定のプロセスが、アクティビティの次のステップに進む前に、例外処理、承認、または検証のために人間の入力を必要とする場合に登場する。この場合、プロセスの遂行は一時停止され、人間のタスクが完了するまでRPAロボットを開放する。
【0055】
長時間実行ワークフローは、永続化アクティビティを介してワークフローの断片化をサポートしてもよく、プロセスおよび非ユーザーインタラクションアクティビティを呼び出し、人間のタスクをRPAロボットタスクでオーケストレーションすることと組み合わされ得る。いくつかの実施形態では、複数または多数のコンピューティングシステムが、長時間実行ワークフローのロジックの遂行に参加し得る。長時間実行ワークフローは、迅速な遂行を促進するためにセッションで実行し得る。いくつかの実施形態では、長時間実行ワークフローは、アプリケーションプログラミングインターフェース(API)呼び出しを実行し、かつ長時間実行ワークフローセッションで実行するアクティビティを含み得るバックグラウンドプロセスをオーケストレーションしてもよい。これらのアクティビティは、いくつかの実施形態では、呼び出しプロセスアクティビティによって呼び出され得る。ユーザーセッションで実行するユーザーインタラクションアクティビティを有するプロセスは、コンダクタアクティビティからジョブを開始することによって呼び出され得る(コンダクタは、本明細書で後により詳細に説明する)。ユーザーは、いくつかの実施形態では、コンダクタでフォームを完成させる必要があるタスクを通じてインタラクションし得る。RPAロボットにフォームタスクが完了するのを待たせ、その後、長時間実行ワークフローを再開させるアクティビティが含まれ得る。
【0056】
1または複数のオートメーションプロセス(複数可)110、112、114は、コアハイパーオートメーションシステム120と通信している。いくつかの実施形態では、コアハイパーオートメーションシステム120は、サーバー130などの1または複数のサーバー上でコンダクタアプリケーションを実行し得る。例示のために1つのサーバー130が示されているが、本発明の範囲から逸脱することなく、互いに近接する、または分散アーキテクチャの複数または多数のサーバーが採用され得る。例えば、1または複数のサーバーが、本発明の範囲から逸脱することなく、コンダクタ機能、AI/MLモデル提供、認証、ガバナンス、および/または他の任意の適切な機能のために提供され得る。いくつかの実施形態では、コアハイパーオートメーションシステム120は、パブリッククラウドアーキテクチャ、プライベートクラウドアーキテクチャ、ハイブリッドクラウドアーキテクチャなどを組み込んでよく、またはその一部であってよい。特定の実施形態では、コアハイパーオートメーションシステム120は、サーバー130などの1または複数のコンピューティングシステム上で複数のソフトウェアベースのサーバーをホストし得る。いくつかの実施形態では、サーバー130などのコアハイパーオートメーションシステム120の1または複数のサーバーは、1または複数の仮想マシン(VM)を介して実装され得る。
【0057】
いくつかの実施形態では、1または複数のオートメーションプロセス(複数可)110、112、114は、コアハイパーオートメーションシステム120上に展開されたまたはコアハイパーオートメーションシステム120によってアクセス可能な1または複数のAI/MLモデル132を呼び出してもよい。AI/MLモデル132は、本明細書で後により詳細に議論されるように、本発明の範囲から逸脱することなく、任意の適切な目的のために訓練され得る。2または複数のAI/MLモデル132は、それらが集合的に協働出力(複数可)を提供するように、いくつかの実施形態では連鎖されてもよい(例えば、直列、並列、またはそれらの組合せ)。AI/MLモデル132は、コンピュータビジョン(CV)、光学的文字認識(OCR)、文書処理および/または理解、意味学習および/または分析、分析予測、プロセス発見、タスクマイニング、テスト、自動RPAワークフロー生成、シーケンス抽出、クラスタリング検出、音声-テキスト翻訳、これらのいずれかの組み合わせなどを実行または支援してもよい。しかしながら、本発明の範囲から逸脱することなく、AI/MLモデルの任意の所望の数および/またはタイプ(複数可)が使用され得る。複数のAI/MLモデルを使用することで、例えば、与えられたコンピューティングシステム上で何が起こっているかについての全体像をシステムが開発し得る。例えば、あるAI/MLモデルはOCRを実行することができ、別のものはボタンを検出することができ、別のものはシーケンスを比較することができる、などである。パターンは、AI/MLモデルによって個別に決定されてもよいし、または複数のAI/MLモデルによって集合的に決定されてもよい。特定の実施形態では、1または複数のAI/MLモデルは、少なくとも1つのコンピューティングシステム102、104、106上にローカルに展開される。
【0058】
いくつかの実施形態では、複数のAI/MLモデル132が使用され得る。各AI/MLモデル132は、データ上で実行するアルゴリズム(またはモデル)であり、AI/MLモデル自体は、例えば、訓練データ上で訓練された、訓練された人工「ニューロン」の深層学習ニューラルネットワーク(DLNN)であり得る。いくつかの実施形態では、AI/MLモデル132は、統計的モデリング(例えば、隠れマルコフモデル(HMM))などのさまざまな機能を実行する複数の層を有してよく、深層学習技術(例えば、長短期記憶(LSTM)深層学習、以前の隠れ状態のエンコーディングなど)を利用して所望の機能を実行し得る。
【0059】
ハイパーオートメーションシステム100は、いくつかの実施形態では、4つの主要な機能群を提供し得る:(1)発見、(2)自動化の構築、(3)管理、および(4)エンゲージメント。オートメーション(例えば、ユーザーコンピューティングシステム、サーバーなどで実行する)は、いくつかの実施形態では、RPAロボットなどのソフトウェアロボットによって実行され得る。例えば、アテンディッドロボット、アンアテンディッドロボット、および/またはテストロボットが使用され得る。アテンディッドロボットは、タスク(例えば、UiPath Assistant(商標)を介して)でユーザーを支援するためにユーザーと協働する。アンアテンディッドロボットはユーザーから独立して動作し、潜在的に、ユーザーが知らない間にバックグラウンドで実行し得る。テストロボットは、アプリケーションまたはRPAワークフローに対してテストケースを実行するアンアテンディッドロボットである。テストロボットは、いくつかの実施形態では、複数のコンピューティングシステム上で並行して実行され得る。
【0060】
発見機能は、ビジネスプロセスの自動化のさまざまな機会を発見し、その自動的な推奨を提供し得る。そのような機能は、サーバー130などの1または複数のサーバーによって実装され得る。発見機能は、いくつかの実施形態では、オートメーションハブ、プロセスマイニング、タスクマイニング、および/またはタスクキャプチャを提供することを含み得る。オートメーションハブ(例えば、UiPath Automation Hub(商標))は、可視性および制御性を有するオートメーションロールアウトを管理するためのメカニズムを提供し得る。オートメーションアイデアは、例えば、提出フォームを介して従業員からクラウドソーシングされ得る。これらのアイデアを自動化するための実現可能性と投資収益率(ROI)の計算が提供され、将来の自動化のための文書が収集され、そして自動化の発見から構築までを迅速に行うためのコラボレーションが提供され得る。
【0061】
(例えば、UiPath Automation Cloud(商標)および/またはUiPath AI Center(商標)を介した)プロセスマイニングとは、アプリケーション(企業資源計画(ERP)アプリケーション、顧客関係管理(CRM)アプリケーション、メールアプリケーション、コールセンターアプリケーションなど)からデータを収集して分析し、組織にどんなエンドツーエンドのプロセスが存在するか、それらを効果的に自動化するにはどうすればよいか、また自動化がもたらす影響についてを特定するプロセスを指す。このデータは、例えば、リスナーによってユーザーコンピューティングシステム102、104、106から取得され、サーバー130などのサーバーによって処理され得る。いくつかの実施形態では、1または複数のAI/MLモデル132がこの目的のために採用され得る。この情報は、実装を迅速化し、手動での情報転送を回避するために、オートメーションハブにエクスポートされ得る。プロセスマイニングの目標は、組織内のプロセスを自動化することによって、ビジネス価値を高めることであり得る。プロセスマイニングの目標のいくつかの例は、限定されないが、利益の増加、顧客満足度の向上、規制および/または契約遵守、従業員の効率の向上などを含む。
【0062】
(例えば、UiPath Automation Cloud(商標)および/またはUiPath AI Center(商標)を介した)タスクマイニングは、ワークフロー(例えば、従業員のワークフロー)を特定および集約し、次にAIを適用して日常的なタスクのパターンおよびバリエーションを明らかにし、自動化の容易性および節約の可能性について(例えば、時間および/またはコストの節約)そのようなタスクをスコアリングする。1または複数のAI/MLモデル132は、データ内の反復タスクパターンを明らかにするために採用され得る。自動化の機が熟した反復タスクは、その後、特定され得る。この情報は、最初、リスナーによって提供され得、いくつかの実施形態では、サーバー130などのコアハイパーオートメーションシステム120のサーバー上で分析され得る。タスクマイニングからの発見(例えば、Extensible Application Markup Language(XAML)プロセスデータ)は、プロセス文書またはUiPath Studio(商標)などのデザイナアプリケーションにエクスポートされて、自動化をより迅速に作成および展開し得る。
【0063】
いくつかの実施形態におけるタスクマイニングは、ユーザーアクション(例えば、マウスクリック位置、キーボード入力、ユーザーがインタラクションしていたアプリケーションウィンドウおよびグラフィカル要素、インタラクションのためのタイムスタンプなど)を伴うスクリーンショットの撮影、統計データ(例えば、遂行時間、アクション数、テキスト入力など)の収集、スクリーンショットの編集および注釈、記録されるアクションのタイプの指定、などを含み得る。
【0064】
(UiPath Automation Cloud(商標)および/またはUiPath AI Center(商標)を介した)タスクキャプチャは、ユーザーが作業しているときにアテンディッドプロセスを自動的に文書化する、またはアンアテンディッドプロセスのためのフレームワークを提供する。このような文書化は、プロセス定義文書(PDD)、スケルトンワークフロー、プロセスの各部分のアクションのキャプチャ、ユーザーのアクションの記録および各ステップに関する詳細を含む包括的なワークフロー図の自動生成、Microsoft Word(登録商標)文書、XAMLファイルなどのような形式で自動化することが望ましいタスクを含み得る。構築可能なワークフローは、UiPath Studio(商標)などのデザイナアプリケーションに直接エクスポートされ得る。タスクキャプチャは、プロセスを説明するサブジェクトマターエキスパートと、プロダクショングレードオートメーションを提供するセンターオブエクセレンス(CoE)メンバーとの両方にとって、要件収集プロセスを簡素化し得る。
【0065】
オートメーションの構築は、デザイナアプリケーション(UiPath Studio(商標)、UiPath StudioX(商標)、UiPath Web(商標)など)を介して達成され得る。例えば、RPA開発施設150のRPA開発者は、コンピューティングシステム152のRPAデザイナアプリケーション154を使用して、ウェブ、モバイル、SAP(登録商標)、および仮想デスクトップなどのさまざまなアプリケーションおよび環境用のオートメーションを構築およびテストし得る。API統合は、さまざまなアプリケーション、技術、およびプラットフォームに対して提供され得る。事前定義されたアクティビティ、ドラッグアンドドロップモデリング、およびワークフローレコーダーは、最小限のコーディングで自動化を容易にし得る。文書理解機能は、1または複数AI/MLモデル132を呼び出すデータ抽出および解釈のためのドラッグアンドドロップAIスキルを介して提供され得る。このような自動化は、表、チェックボックス、署名、および手書きを含む、事実上任意の文書タイプおよびフォーマットを処理し得る。データが検証されるか、または例外が処理されるとき、この情報は、それぞれのAI/MLモデルを再訓練するために使用されてよく、時間とともにそれらの精度が改善される。
【0066】
統合サービスにより、開発者は、例えば、ユーザーインターフェース(UI)の自動化とAPIの自動化をシームレスに組み合わせ得る。APIを必要とする、またはAPIと非APIアプリケーションおよびシステムの両方を横断する自動化が構築され得る。開発者が多種多様なプロセスをより迅速に自動化できるように、あらかじめ構築されたRPAおよびAIテンプレートとソリューションのためのリポジトリ(例えば、UiPath Object Repository(商標))またはマーケットプレイス(例えば、UiPath Marketplace(商標))が提供され得る。したがって、自動化を構築する場合、ハイパーオートメーションシステム100は、ユーザーインターフェース、開発環境、API統合、あらかじめ構築されたおよび/またはカスタムビルドのAI/MLモデル、開発テンプレート、統合開発環境(IDE)、および高度なAI能力を提供し得る。ハイパーオートメーションシステム100は、いくつかの実施形態では、RPAロボットの開発、展開、管理、構成、監視、デバッグ、および保守を可能にし、それはハイパーオートメーションシステム100のための自動化を提供し得る。
【0067】
いくつかの実施形態では、デザイナアプリケーション(複数可)および/または外部ルールエンジンなどのハイパーオートメーションシステム100のコンポーネントは、ハイパーオートメーションシステム100によって提供されるさまざまな機能を制御するためのガバナンスポリシーを管理および施行するためのサポートを提供する。ガバナンスとは、組織がポリシーを導入して、EU一般データ保護規則(General Data Protection Regulation:GDPR)、米国医療保険の携行性と責任に関する法律(the U.S. Health Insurance Portability and Accountability Act:HIPAA)、サードパーティアプリケーションの利用規約などに違反するような、ユーザーが組織に害を及ぼし得る行動を実行できる自動化(RPA ロボットなど)を開発できないようにする能力である。そうでなければ、開発者は、彼らの自動化の実行中にプライバシー法、利用規約などに違反する自動化を作成し得るため、いくつかの実施形態は、ロボットおよび/またはロボット設計アプリケーションレベルでアクセス制御およびガバナンス制限を実装する。これは、開発者が、セキュリティリスクをもたらすか、またはポリシー、規制、プライバシー法、および/もしくはプライバシーポリシーに違反する方法で動作し得る未承認ソフトウェアライブラリへの依存を取ることを防止することによって、いくつかの実施形態ではオートメーションプロセス開発パイプラインにセキュリティおよびコンプライアンスの追加レベルを提供し得る。例えば、参照によりその全体が本明細書に組み込まれる、米国非仮特許出願第16/924,499号(米国特許出願公開第2022/0011732号として公開)を参照。
【0068】
管理機能は、組織全体にわたるオートメーションの管理、展開、および最適化を提供し得る。管理機能は、いくつかの実施形態では、オーケストレーション、テスト管理、AI機能、および/または洞察力を含み得る。ハイパーオートメーションシステム100の管理機能はまた、自動化アプリケーションおよび/またはRPAロボットのためのサードパーティソリューションおよびアプリケーションとの統合ポイントとして作動し得る。ハイパーオートメーションシステム100の管理機能は、とりわけ、限定されないが、RPAロボットのプロビジョニング、展開、構成、キューイング、監視、ロギング、および相互接続を容易にすることを含み得る。
【0069】
UiPath Orchestrator(商標)(いくつかの実施形態ではUiPath Automation Cloud(商標)の一部として提供されてもよく、またはオンプレミス、VM、プライベートもしくはパブリッククラウドで、Linux(登録商標) VMで、またはUiPath Automation Suite(商標)を介してクラウドネイティブシングルコンテナスイートとして提供されてもよい)などのコンダクタアプリケーションは、RPAロボットデプロイメントのセキュリティを展開、監視、最適化、拡大縮小、および確保するオーケストレーション能力を提供する。テストスイート(例えば、UiPath Test Suite(商標))は、展開された自動化の品質を監視するためのテスト管理を提供し得る。テストスイートは、テストの計画および遂行、要件の充足、および欠陥のトレーサビリティを促進し得る。テストスイートは、包括的なテストレポートを含み得る。
【0070】
分析ソフトウェア(例えば、UiPath Insights(商標))は、展開された自動化の性能を追跡、測定、および管理し得る。分析ソフトウェアは、自動化動作を組織の特定の重要業績評価指標(KPI)および戦略的成果と整合させ得る。分析ソフトウェアは、人間のユーザーがより理解しやすいように、ダッシュボード形式で結果を提示し得る。
【0071】
データサービス(例えば、UiPath Data Service(商標))は、例えば、データベース140に格納され、ドラッグアンドドロップのストレージインターフェースを用いて、データを単一の、拡張可能な、安全な場所に持ち込むことができる。いくつかの実施形態は、データのシームレスなアクセス、エンタープライズグレードのセキュリティ、およびスケーラビリティを確保しながら、ローコードまたはノーコードのデータモデリングおよびストレージを自動化に提供してもよい。AI機能は、AIセンター(例えば、UiPath AI Center(商標))によって提供されてもよく、これはAI/MLモデルの自動化への組み込みを容易にする。あらかじめ構築されたAI/MLモデル、モデルテンプレート、およびさまざまな展開オプションにより、データ科学者でない人でもこのような機能にアクセスできるようにし得る。展開された自動化(例えば、RPAロボット)は、AI/MLモデル132などのAIセンターからAI/MLモデルを呼び出し得る。AI/MLモデルの性能は、監視され、データレビューセンター160によって提供されるような、人間が検証したデータを使用して訓練され、改善され得る。人間のレビューアは、コンピューティングシステム154上のレビューアプリケーション152を介して、ラベル付けされたデータをコアハイパーオートメーションシステム120に提供してもよい。例えば、人間のレビューアは、AI/MLモデル132による予測が正確であることを検証してもよいし、そうでなければ修正を提供してもよい。この動的入力は、その後、AI/MLモデル132を再訓練するためのトレーニングデータとして保存されてもよく、例えば、データベース140のようなデータベースに格納されてもよい。AIセンターは、次に、訓練データを使用してAI/MLモデルの新バージョンを訓練するための訓練ジョブをスケジュールし、遂行し得る。肯定的な例と否定的な例の両方が、AI/MLモデル132の再訓練のために格納され、使用され得る。
【0072】
エンゲージメント機能は、所望のプロセスに関するシームレスなコラボレーションのために、人間および自動化を1つのチームとして関与させる。ローコードアプリケーションは、ブラウザタブとレガシーソフトウェアを接続するために、いくつかの実施形態ではAPIを欠いているものであっても、(例えば、UiPath Apps(商標)を介して)構築され得る。アプリケーションは、例えば、ドラッグアンドドロップ制御の豊富なライブラリを通じて、ウェブブラウザを使用して迅速に作成され得る。アプリケーションは、1つのオートメーションまたは複数のオートメーションに接続され得る。
【0073】
アクションセンター(例えば、UiPath Action Center(商標))は、オートメーションから人間へ、またはその逆へ、プロセスを引き渡すための簡単で効率的なメカニズムを提供する。人間は、承認またはエスカレーションを提供し、例外処理などを行い得る。その後、オートメーションは、所定のワークフローの自動機能を実行し得る。
【0074】
ローカルアシスタントは、ユーザーがオートメーション(例: UiPath Assistant(商標))を起動するための起動パッドとして提供され得る。この機能は、例えばオペレーティングシステムによって提供されるトレイで提供されてもよく、ユーザーが彼らのコンピューティングシステム上でRPAロボットおよびRPAロボット搭載アプリケーションとインタラクションすることを可能にし得る。インターフェースは、所定のユーザーに対して承認されたオートメーションをリストにし、ユーザーがそれらを実行することを可能にし得る。これらは、オートメーションマーケットプレイス、オートメーションハブの内部オートメーションストアなどからのすぐに使えるオートメーションを含んでもよい。オートメーションが実行しているとき、オートメーションがそのアクションを実行する間、ユーザーがコンピューティングシステムを使用できるように、それらは、コンピューティングシステム上の他のプロセスと並行してローカルインスタンスとして実行し得る。特定の実施形態では、アシスタントは、ユーザーがアシスタントの起動パッドからそれらのもうすぐ自動化されるプロセスを文書化できるように、タスクキャプチャ機能と統合される。
【0075】
チャットボット(例えば、UiPath Chatbots(商標))、ソーシャルメッセージングアプリケーション、および/または音声コマンドは、ユーザーがオートメーションを実行することを可能にし得る。これにより、顧客とのやり取りまたは他のアクティビティを行うために必要な情報、ツール、およびリソースへのアクセスを簡素化し得る。人と人との会話は、他のプロセスと同様に容易に自動化され得る。このようにして起動されたトリガRPAロボットは、注文状況の確認、CRMへのデータ投稿などの動作を、平易な言語コマンドを用いて実行できる可能性がある。
【0076】
任意の規模での自動化プログラムのエンドツーエンドの測定およびガバメントは、いくつかの実施形態ではハイパーオートメーションシステム100によって提供され得る。上記により、自動化の性能を理解するために、(例えば、UiPath Insights(商標)を介した)分析が採用されてもよい。利用可能なビジネスメトリクスおよび運用上の洞察のいずれかの組み合わせを使用するデータモデリングおよび分析は、さまざまな自動化プロセスに使用され得る。カスタム設計およびあらかじめ構築されたダッシュボードにより、所望の測定基準にわたりデータが視覚化され、新しい分析的洞察が発見され、性能指標が追跡され、オートメーションについてROIが発見され、ユーザーのコンピューティングシステム上で遠隔測定モニタリングが実行され、エラーと異常が検出され、およびオートメーションがデバッグされ得る。自動化のライフサイクルを通じてオートメーションを管理するために、自動化管理コンソール(例えば、UiPath Automation Ops(商標))が提供され得る。組織は、オートメーションの構築方法、ユーザーがそれらとともにできること、およびユーザーがどのオートメーションとアクセスできるかを統治し得る。
【0077】
ハイパーオートメーションシステム100は、いくつかの実施形態では、反復的なプラットフォームを提供する。プロセスが発見され得、オートメーションが構築され得、テストされ得、そして展開され得、性能が測定され得、オートメーションの使用がユーザーに容易に提供され得、フィードバックが得られ得、AI/MLモデルが訓練され、再訓練され得、そしてプロセス自体が繰り返され得る。これにより、より堅牢で効果的な一連の自動化を促進する。
【0078】
図2は、本発明の実施形態による、RPAシステム200を示すアーキテクチャ図である。いくつかの実施形態では、RPAシステム200は、
図1のハイパーオートメーションシステム100の一部である。RPAシステム200は、開発者がワークフローを設計して実装することを可能にするデザイナ210を含む。デザイナ210は、アプリケーション統合のためのソリューションを提供するとともに、サードパーティアプリケーション、管理情報技術(IT)タスク、およびビジネスITプロセスを自動化する。デザイナ210は、ビジネスプロセスのグラフィック表現である自動化プロジェクトの開発を容易にし得る。簡単に言えば、デザイナ210は、ワークフローおよびロボットの開発および展開を容易にする。いくつかの実施形態では、デザイナ210は、ユーザーのデスクトップ上で実行するアプリケーション、VMでリモートで実行するアプリケーション、ウェブアプリケーションなどであってもよい。
【0079】
自動化プロジェクトは、上記のように本明細書で「アクティビティ」と定義されるワークフローで開発されたカスタムセットのステップ間の遂行順序および関係の制御を開発者に与えることにより、ルールベースのプロセスの自動化を可能にする。デザイナ210の実施形態の商業的な一例は、UiPath Studio(商標)である。各アクティビティは、ボタンをクリックする、ファイルを読む、ログパネルに書き込むなどのアクションを含み得る。いくつかの実施形態では、ワークフローは入れ子になっているか、または埋め込まれ得る。
【0080】
ワークフローのいくつかのタイプには、シーケンス、フローチャート、有限状態機械(FSM)、および/またはグローバル例外ハンドラなどを含み得るが、これらに限定されない。シーケンスは、ワークフローを乱雑にすることなく、あるアクティビティから別のアクティビティへのフローを可能にする、線形プロセスに特に適し得る。フローチャートは、特により複雑なビジネスロジックに適し得、複数の分岐ロジックオペレータを介して、より多様な方法で意思決定の統合およびアクティビティの接続を可能にする。FSMは、大規模なワークフローに特に適し得る。FSMは、条件(すなわち、遷移)またはアクティビティによりトリガされる有限の数の状態をそれらの遂行中に使用し得る。グローバル例外ハンドラは、遂行エラーに遭遇したときのワークフローの挙動を決定したり、プロセスをデバッグしたりするのに特に適し得る。
【0081】
ワークフローがデザイナ210内で開発されると、ビジネスプロセスの遂行は、コンダクタ220によって調整され、デザイナ210内で開発されたワークフローを遂行する1または複数のロボット230を調整する。コンダクタ220の実施形態の商業的な一例は、UiPath Orchestrator(商標)である。コンダクタ220は、環境におけるリソースの生成、監視、および展開の管理を容易にする。コンダクタ220は、サードパーティのソリューションおよびアプリケーションとの統合ポイントとして動作し得る。上記により、いくつかの実施形態では、コンダクタ220は、
図1のコアハイパーオートメーションシステム120の一部であり得る。
【0082】
コンダクタ220は、全てのロボット230を管理し得、ロボット230を集中ポイントから接続して遂行する。管理され得るロボット230のタイプには、アテンディッドロボット232、アンアテンディッドロボット234、開発ロボット(アンアテンディッドロボット234と同様であるが、開発およびテストの目的で使用される)、および非生産ロボット(アテンディッドロボット232と同様であるが、開発およびテストの目的で使用される)が含まれるが、これらに限定されない。アテンディッドロボット232は、ユーザーイベントによってトリガされ、同じコンピューティングシステム上で人と並んで動作する。アテンディッドロボット232は、集中プロセスデプロイメントおよびロギング媒体のためのコンダクタ220とともに使用され得る。アテンディッドロボット232は、人のユーザーがさまざまなタスクを達成するのを支援してもよく、ユーザーイベントによってトリガされてもよい。いくつかの実施形態では、プロセスは、このタイプのロボット上でコンダクタ220から開始することができず、および/またはそれらはロックされた画面の下で実行することができない。特定の実施形態では、アテンディッドロボット232は、ロボットトレイからまたはコマンドプロンプトからのみ起動され得る。アテンディッドロボット232は、いくつかの実施形態では、人の監督下で動作することが好ましい。
【0083】
アンアテンディッドロボット234は、仮想環境で無人で動作し、多くのプロセスを自動化し得る。アンアテンディッドロボット234は、リモート遂行、監視、スケジューリング、および作業キューのサポートの提供を担当し得る。全てのロボットタイプのためのデバッグは、いくつかの実施形態では、デザイナ210で実行され得る。アテンディッドロボットおよびアンアテンディッドロボットの両方は、メインフレーム、ウェブアプリケーション、VM、エンタープライズアプリケーション(例えば、SAP(登録商標)、SalesForce(登録商標)、Oracle(登録商標)などにより生成されたもの)、およびコンピューティングシステムアプリケーション(例えば、デスクトップおよびラップトップアプリケーション、モバイルデバイスアプリケーション、ウェアラブルコンピュータアプリケーションなど)を含むが、これらに限定されないさまざまなシステムおよびアプリケーションを自動化し得る。
【0084】
コンダクタ220は、プロビジョニング、展開、構成、キューイング、監視、ロギング、および/または相互接続性の提供を含むがこれらに限定されないさまざまな能力を有し得る。プロビジョニングは、ロボット230とコンダクタ220(例えば、ウェブアプリケーション)との間の接続を作成し、維持することを含み得る。展開は、遂行のために割り当てられたロボット230へのパッケージバージョンの正しい配信を保証することを含み得る。構成は、ロボット環境およびプロセス構成の維持および配信を含み得る。キューイングは、キューおよびキュー項目の管理を提供することを含み得る。監視は、ロボットの特定データを追跡し、ユーザーの権限を維持することを含み得る。ロギングは、データベース(例えば、構造化照会言語(SQL)データベースまたは「not only」SQL(NoSQL)データベース)および/または別のストレージメカニズム(例えば、大規模なデータセットを格納し、迅速にクエリを実行する能力を提供するElasticSearch(登録商標))へのログの保存およびインデックス作成を含み得る。コンダクタ220は、サードパーティのソリューションおよび/またはアプリケーションのための通信の集中点として操作することにより、相互接続性を提供し得る。
【0085】
ロボット230は、デザイナ210で構築されたワークフローを実装する遂行エージェントである。ロボット(複数可)230のいくつかの実施形態の1つの商業的な例は、UiPath Robots(商標)である。いくつかの実施形態では、ロボット230は、デフォルトで、Microsoft Windows(登録商標)Service Control Manager(SCM)管理サービスをインストールする。その結果、このようなロボット230は、ローカルシステムアカウントの下でインタラクティブなWindows(登録商標)セッションを開くことができ、Windows(登録商標)サービスの権利を有し得る。
【0086】
いくつかの実施形態では、ロボット230は、ユーザーモードで設置され得る。このようなロボット230については、所定のロボット230が設置されているユーザーと同じ権利を有することを意味する。この特色はまた、各マシンを最大限に全活用することを保証する高密度(HD)ロボットにも利用可能であり得る。いくつかの実施形態では、いずれかのタイプのロボット230は、HD環境で構成され得る。
【0087】
いくつかの実施形態におけるロボット230は、複数のコンポーネントに分割され、それぞれが特定の自動化タスクに特化されている。いくつかの実施形態におけるロボットコンポーネントは、SCM管理ロボットサービス、ユーザーモードロボットサービス、エグゼキュータ、エージェント、およびコマンドラインを含むが、これらに限定されない。SCM管理ロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ220と遂行ホスト(すなわち、ロボット230が遂行されるコンピューティングシステム)との間のプロキシとして動作する。これらのサービスは、ロボット230の資格情報を任されて管理する。コンソールアプリケーションは、ローカルシステム下のSCMにより起動される。
【0088】
いくつかの実施形態におけるユーザーモードロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ220と遂行ホストとの間のプロキシとして動作する。ユーザーモードロボットサービスは、ロボット230の資格情報を任されて管理し得る。SCM管理ロボットサービスがインストールされていない場合、Windows(登録商標)アプリケーションが自動的に起動され得る。
【0089】
エグゼキュータは、Windows(登録商標)セッションの下で与えられたジョブを遂行し得る(つまり、ワークフローを遂行し得る)。エグゼキュータは、モニタ毎のドットパーインチ(DPI)設定を意識し得る。エージェントは、システムトレイウィンドウに利用可能なジョブを表示するWindows(登録商標) Presentation Foundation(WPF)アプリケーションであり得る。エージェントはサービスのクライアントとなり得る。エージェントは、ジョブの開始または停止、設定の変更を依頼し得る。コマンドラインはサービスのクライアントである。コマンドラインは、ジョブの開始を要求し、その出力を待つことができるコンソールアプリケーションである。
【0090】
上で説明したように、ロボット230のコンポーネントが分割されていることは、開発者、サポートユーザー、およびコンピューティングシステムが、各コンポーネントが何を遂行しているかをより容易に実行し、特定し、および追跡するのに役立つ。この方法では、エグゼキュータとサービスに異なるファイアウォールルールを設定するなど、コンポーネントごとに特別な挙動を構成し得る。エグゼキュータは常に、いくつかの実施形態では、モニタごとのDPI設定を認識し得る。その結果、ワークフローは、ワークフローが作成されたコンピューティングシステムの構成に関係なく、いずれかのDPIで遂行し得る。また、いくつかの実施形態では、デザイナ210からのプロジェクトは、ブラウザのズームレベルに依存しないようにし得る。DPIを認識していないまたは意図的に認識していないとマークされているアプリケーションの場合、いくつかの実施形態ではDPIを無効にし得る。
【0091】
本実施形態におけるRPAシステム200は、ハイパーオートメーションシステムの一部である。開発者は、デザイナ210を使用して、(例えば、そのAIセンターの一部として)コアハイパーオートメーションシステム240に展開されたAI/MLモデルを利用するRPAロボットを構築かつテストし得る。そのようなRPAロボットは、AI/MLモデル(複数可)の遂行のための入力を送信し、コアハイパーオートメーションシステム240を介してそこからの出力を受信し得る。
【0092】
1または複数のロボット230は、上述したように、リスナーであってもよい。これらのリスナーは、ユーザーが彼らのコンピューティングシステムを使用するときに彼らが何をしているかに関する情報をコアハイパーオートメーションシステム240に提供し得る。この情報は、その後、プロセスマイニング、タスクマイニング、タスクキャプチャなどのためにコアハイパーオートメーションシステムによって使用され得る。
【0093】
アシスタント/チャットボット250は、ユーザーがRPAローカルロボットを起動することを可能にするために、ユーザーコンピューティングシステム上に提供され得る。アシスタントは、例えば、システムトレイに配置され得る。チャットボットは、ユーザーがチャットボットのテキストを見ることができるように、ユーザーインターフェースを有し得る。あるいは、チャットボットは、ユーザーインターフェースを持たず、バックグラウンドで実行し、ユーザーの発話に対してコンピューティングシステムのマイクを使用して聞くことができる。
【0094】
いくつかの実施形態では、データラベリングは、ロボットが実行しているコンピューティングシステムのユーザーによって、またはロボットが情報を提供する別のコンピューティングシステム上で実行され得る。例えば、ロボットがVMユーザーのために画像にCVを行うAI/MLモデルを呼び出すが、AI/MLモデルが画面上のボタンを正しく特定しない場合、ユーザーは、誤特定または非特定コンポーネントの周りに矩形を描き、正しい特定を有するテキストを潜在的に提供し得る。この情報は、コアハイパーオートメーションシステム240に提供され得、その後、AI/MLモデルの新バージョンの訓練のために後で使用され得る。
【0095】
図3は、本発明の実施形態による、展開したRPAシステム300を示すアーキテクチャ図である。いくつかの実施形態では、RPAシステム300は、
図2のRPAシステム200および/または
図1のハイパーオートメーションシステム100の一部であり得る。展開されたRPAシステム300は、異なるコンピューティングプロセスの自動化のためのエンタープライズレベル、ユーザーレベル、またはデバイスレベルの自動化ソリューションなどを提供する、クラウドベースのシステム、オンプレミスシステム、デスクトップベースのシステムであり得る。
【0096】
クライアント側、サーバー側、またはその両方が、本発明の範囲から逸脱することなく、いずれかの所望の数のコンピューティングシステムを含むことができることに留意すべきである。クライアント側では、ロボットアプリケーション310は、エグゼキュータ312、エージェント314、およびデザイナ316を含む。しかし、いくつかの実施形態では、デザイナ316は、エグゼキュータ312およびエージェント314と同じコンピューティングシステム上で実行していない場合がある。エグゼキュータ312はプロセスを実行している。
図3に示すように、複数のビジネスプロジェクトが同時に実行され得る。エージェント314(例えば、Windows(登録商標)サービス)は、本実施形態では、全てのエグゼキュータ312のための単一の接続ポイントである。本実施形態における全てのメッセージはコンダクタ340にログインされ、それはデータベースサーバー350、AI/MLサーバー360、インデクササーバー370、またはそれらの任意の組み合わせを介してそれらをさらに処理する。
図2に関して上述したように、エグゼキュータ312は、ロボットコンポーネントであり得る。
【0097】
いくつかの実施形態では、ロボットは、マシン名とユーザー名との間の関連付けを表す。ロボットは、複数のエグゼキュータを同時に管理し得る。同時に実行される複数のインタラクティブセッションをサポートするコンピューティングシステム(Windows(登録商標)Server 2012など)では、複数のロボットが同時に実行され得、それぞれが一意のユーザー名を使用して別々のWindows(登録商標)セッションで実行され得る。これは、上記のHDロボットと呼ばれる。
【0098】
エージェント314はまた、ロボットの状態を送信し(例えば、ロボットがまだ機能していることを示す「ハートビート」メッセージを定期的に送信する)、遂行されるパッケージの要求されるバージョンをダウンロードすることにも責任を負う。エージェント314とコンダクタ340との間の通信は、いくつかの実施形態では、常にエージェント314によって開始される。通知シナリオでは、エージェント314は、後にコンダクタ330によってロボットにコマンド(例えば、開始、停止など)を送信するために使用されるWebSocketチャネルを開いてもよい。
【0099】
リスナー330は、リスナー330が常駐するアテンディッドコンピューティングシステムおよび/またはアンアテンディッドコンピューティングシステムの動作とのユーザーインタラクションに係るデータを監視し記録する。リスナー330は、本発明の範囲から逸脱することなく、RPAロボット、オペレーティングシステムの一部、それぞれのコンピューティングシステム用のダウンロード可能なアプリケーション、または他の任意のソフトウェアおよび/もしくはハードウェアであり得る。実際、いくつかの実施形態では、リスナーのロジックは、物理的なハードウェアを介して部分的または完全に実装される。
【0100】
サーバー側には、プレゼンテーション層(ウェブアプリケーション342、オープンデータプロトコル(OData)代表状態転送(REST)アプリケーションプログラミングインターフェース(API)エンドポイント344、通知および監視346)、サービス層(API実装/ビジネスロジック348)、永続層(データベースサーバー350、AI/MLサーバー360、インデクササーバー370)が含まれる。コンダクタ340は、ウェブアプリケーション342、OData REST APIエンドポイント344、通知および監視346、ならびにAPI実装/ビジネスロジック348を含む。いくつかの実施形態では、ユーザーがコンダクタ340のインターフェース(例えば、ブラウザ320を介して)で実行するほとんどのアクションは、さまざまなAPIを呼び出すことによって実行される。このような動作は、本発明の範囲を逸脱することなく、ロボット上でのジョブの起動、キュー内のデータの追加/削除、無人で実行するジョブのスケジューリングなどを含み得るが、これらに限定されない。ウェブアプリケーション342は、サーバープラットフォームのビジュアル層である。この実施形態では、ウェブアプリケーション342は、ハイパーテキストマークアップ言語(HTML)およびジャバスクリプト(JS)を使用する。しかし、本発明の範囲を逸脱することなく、いずれかの所望のマークアップ言語、スクリプト言語、または他のいずれかのフォーマットを使用し得る。ユーザーは、コンダクタ340を制御するためのさまざまな動作を実行するために、本実施形態ではブラウザ320を介してウェブアプリケーション342からのウェブページとインタラクションする。例えば、ユーザーは、ロボットグループを作成し、ロボットへのパッケージの割り当てを行い、ロボット毎および/またはプロセス毎のログを解析し、ロボットを起動しおよび停止などし得る。
【0101】
ウェブアプリケーション342に加えて、コンダクタ340は、OData REST APIエンドポイント344を公開するサービス層も含む。しかし、本発明の範囲を逸脱することなく、他のエンドポイントが含まれていてもよい。REST APIは、ウェブアプリケーション342とエージェント314の両方により消費される。エージェント314は、本実施形態では、クライアントコンピュータ上の1または複数のロボットのスーパーバイザである。
【0102】
本実施形態のREST APIは、構成、ロギング、監視、およびキューイング機能をカバーする。構成エンドポイントは、いくつかの実施形態では、アプリケーションのユーザー、権限、ロボット、アセット、リリース、および環境を定義し、構成するために使用されてもよい。ロギングRESTエンドポイントは、例えば、エラー、ロボットによって送信された明示的なメッセージ、およびその他の環境固有の情報など、さまざまな情報をログに記録するために使用され得る。デプロイメントRESTエンドポイントは、コンダクタ340においてジョブ開始コマンドが使用された場合に遂行されるべきパッケージのバージョンを問い合わせるためにロボットにより使用されてもよい。キューイングRESTエンドポイントは、キューへのデータの追加、キューからのトランザクションの取得、トランザクションのステータスの設定など、キューおよびキューアイテムの管理を担ってもよい。
【0103】
RESTエンドポイントの監視は、ウェブアプリケーション342およびエージェント314を監視してもよい。通知および監視API346は、エージェント314の登録、エージェント314への構成設定の配信、ならびにサーバーおよびエージェント314からの通知の送受信に使用されるRESTエンドポイントであってもよい。通知および監視API346は、いくつかの実施形態では、WebSocket通信を使用してもよい。
【0104】
サービス層のAPIは、いくつかの実施形態では、適切なAPIアクセスパスの構成を通じて、例えば、コンダクタ340および全体的なハイパーオートメーションシステムがオンプレミス展開タイプまたはクラウドベース展開タイプを有するかどうかに基づいて、アクセスされ得る。コンダクタ340のためのAPIは、コンダクタ340に登録されたさまざまなエンティティに関する統計を照会するためのカスタムメソッドを提供し得る。各論理リソースは、いくつかの実施形態では、ODataエンティティであってもよい。そのようなエンティティにおいて、ロボット、プロセス、キューなどのコンポーネントは、プロパティ、関係、および動作を有してよい。コンダクタ340のAPIは、いくつかの実施形態では、以下の2つの方法でウェブアプリケーション342および/またはエージェント314によって消費され得る:コンダクタ340からAPIアクセス情報を得ることによって、またはOAuthフローを使用するために外部アプリケーションを登録することによって。
【0105】
永続層は、本実施形態では、データベースサーバー350(例えば、SQLサーバー)、AI/MLサーバー360(例えば、AIセンター機能などのAI/MLモデル提供サービスを提供するサーバー)、およびインデクササーバー370の3つのサーバーを含む。本実施形態におけるデータベースサーバー350は、ロボット、ロボットグループ、関連するプロセス、ユーザー、役割、スケジュールなどの構成を格納する。この情報は、いくつかの実施形態では、ウェブアプリケーション342を介して管理される。データベースサーバー350は、キューおよびキューアイテムを管理してもよい。いくつかの実施形態では、データベースサーバー350は、ロボットにより記録されたメッセージを(インデクササーバー370に加えて、またはそれに代えて)格納してもよい。データベースサーバー350は、例えば、クライアント側にインストールされたリスナー330から受信した、プロセスマイニング、タスクマイニング、および/またはタスクキャプチャ関連データも格納し得る。リスナー330およびデータベース350の間に矢印は示されていないが、リスナー330は、いくつかの実施形態では、データベース350と通信することができ、逆もまた同様であることが理解されるべきである。このデータは、PDD、画像、XAMLファイルなどの形態で格納され得る。リスナー330は、リスナー330が常駐するそれぞれのコンピューティングシステム上のユーザーアクション、プロセス、タスク、およびパフォーマンスメトリクスを傍受するように構成され得る。例えば、リスナー330は、そのそれぞれのコンピューティングシステム上のユーザーアクション(例えば、クリック、タイプされた文字、ロケーション、アプリケーション、アクティブ要素、時間など)を記録し得、次にこれらをデータベースサーバー350に提供し格納されるのに適した形式に変換し得る。
【0106】
AI/MLサーバー360は、AI/MLモデルのオートメーションへの組み込みを容易にする。あらかじめ構築されたAI/MLモデル、モデルテンプレート、およびさまざまな展開オプションにより、データ科学者でない人でもこのような機能にアクセスできるようにし得る。展開されたオートメーション(例えば、RPAロボット)は、AI/MLサーバー360からAI/MLモデルを呼び出し得る。AI/MLモデルの性能は、監視され、そして人間が検証したデータを使用して訓練され、改善され得る。AI/MLサーバー360は、AI/MLモデルの新しいバージョンを訓練するために、訓練ジョブをスケジュールし、遂行し得る。
【0107】
AI/MLサーバー360は、開発時にユーザーのためのさまざまなMLスキルを構成するためのAI/MLモデルおよびMLパッケージに係るデータを格納し得る。本明細書で使用されるMLスキルは、例えば、オートメーションによって使用され得る、プロセスのためのあらかじめ構築され訓練されたMLモデルである。AI/MLサーバー360はまた、限定されないが、意図分析、自然言語処理(NLP)、音声分析、異なるタイプのAI/MLモデルなどを含む、さまざまなAI/ML能力のための文書理解技術およびフレームワーク、アルゴリズムおよびソフトウェアパッケージに係るデータを格納し得る。
【0108】
いくつかの実施形態では任意であるが、インデクササーバー370は、ロボットにより記録された情報を保存し、インデックスを作成する。特定の実施形態では、インデクササーバー370は、構成設定を介して無効化されてもよい。いくつかの実施形態では、インデクササーバー370は、オープンソースプロジェクトの全文検索エンジンであるElasticSearch(登録商標)を使用する。ロボットにより記録されたメッセージ(例えば、ログメッセージまたはライン書き込みのようなアクティビティを使用して)は、ロギングRESTエンドポイント(複数可)を介してインデクササーバー370に送信されてもよく、そこで将来の利用のためにそれらはインデックス化される。
【0109】
図4は、本発明の実施形態による、デザイナ410、アクティビティ420、430、440、450、ドライバ460、API470、およびAI/MLモデル480間の関係400を説明するアーキテクチャ図である。以上のように、開発者は、デザイナ410を用いて、ロボットによって遂行されるワークフローを開発する。さまざまなタイプのアクティビティは、いくつかの実施形態では、開発者に表示され得る。デザイナ410は、ユーザーのコンピューティングシステムに対してローカルであっても、またはそれに対してリモートであってもよい(例えば、VMまたはリモートウェブサーバーとインタラクションするローカルウェブブラウザーを介してアクセスされる)。ワークフローは、ユーザー定義のアクティビティ420、API駆動アクティビティ430、AI/MLアクティビティ440、および/または、UIオートメーションアクティビティ450を含み得る。ユーザー定義のアクティビティ420およびAPI駆動アクティビティ440は、それらのAPIを介してアプリケーションとインタラクションする。ユーザー定義のアクティビティ420および/またはAI/MLアクティビティ440は、いくつかの実施形態では、ロボットが動作しているコンピューティングシステムに対してローカルに、および/またはそれに対してリモートに位置され得る、1または複数のAI/MLモデル480を呼び出し得る。
【0110】
いくつかの実施形態では、画像中の非テキストの視覚的コンポーネントを特定することができ、これは、本明細書ではCVと呼ばれる。CVは、AI/MLモデル(複数可)480によって少なくとも部分的に実行され得る。そのようなコンポーネントに係るいくつかのCVアクティビティは、限定されないが、OCRを用いたセグメント化されたラベルデータからのテキストの抽出、ファジーテキストマッチング、MLを用いたセグメント化されたラベルデータのクロッピング、ラベルデータにおける抽出されたテキストとグランドトゥルースデータとの比較等を含み得る。いくつかの実施形態では、ユーザー定義のアクティビティ420に実装され得るアクティビティの数は、数百または数千であってもよい。しかし、本発明の範囲を逸脱することなく、任意の数および/またはアクティビティのタイプが使用され得る。
【0111】
UIオートメーションアクティビティ450は、低レベルのコードで記述され、画面とのインタラクションを促進する特別な低レベルのアクティビティのサブセットである。UIオートメーションアクティビティ450は、ロボットが所望のソフトウェアとインタラクションすることを可能にするドライバ460を介して、これらのインタラクションを促進する。例えば、ドライバ460は、オペレーティングシステム(OS)ドライバ462、ブラウザドライバ464、VMドライバ466、エンタープライズアプリケーションドライバ468などを含み得る。いくつかの実施形態では、コンピューティングシステムとのインタラクションを実行するために、1または複数のAI/MLモデル480はUIオートメーションアクティビティ450によって使用され得る。特定の実施形態では、AI/MLモデル480は、ドライバ460を増強するか、またはそれらを完全に置き換え得る。実際、特定の実施形態では、ドライバ460は含まれない。
【0112】
ドライバ460は、OSドライバ462を介して、フックを探したり、キーを監視したりするなど、低レベルでOSとインタラクションし得る。ドライバ460は、Chrome(登録商標)、IE(登録商標)、Citrix(登録商標)、SAP(登録商標)などとの統合を促進してもよい。例えば、「クリック」アクティビティは、ドライバ460を介して、これらの異なるアプリケーションにおいて同じ役割を果たす。
【0113】
図5は、本発明の実施形態による、RPA用セマンティックAIを使用したソースおよびターゲットの間で自動データ転送を実行するように構成されたコンピューティングシステム500を示すアーキテクチャ図である。いくつかの実施形態では、コンピューティングシステム500は、本明細書に描かれたおよび/または記載された1または複数のコンピューティングシステムであってもよい。特定の実施形態では、コンピューティングシステム500は、
図1および
図2に示されるようなハイパーオートメーションシステムの一部であり得る。コンピューティングシステム500は、情報を通信するためのバス505または他の通信メカニズムと、情報を処理するためのバス505に結合されたプロセッサ(複数可)510とを含む。プロセッサ(複数可)510は、中央処理ユニット(CPU)、特定用途集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックスプロセッシングユニット(GPU)、それらの複数のインスタンス、および/またはそれらのいずれかの組み合わせを含む、いずれかのタイプの一般的または特定用途向けプロセッサであり得る。プロセッサ(複数可)510はまた、複数の処理コアを有してもよく、コアの少なくとも一部は、特定の機能を実行するように構成され得る。いくつかの実施形態では、複数並列処理が使用されてもよい。特定の実施形態では、少なくとも1つのプロセッサ(複数可)510は、生物学的ニューロンを模倣する処理要素を含むニューロモーフィック回路であり得る。いくつかの実施形態では、ニューロモーフィック回路は、フォンノイマンコンピューティングアーキテクチャの典型的なコンポーネントを必要としない場合がある。
【0114】
コンピューティングシステム500は、プロセッサ(複数可)510によって遂行される情報および命令を格納するためのメモリ515をさらに含む。メモリ515は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、キャッシュ、磁気ディスクもしくは光ディスクなどの静的記憶装置、または他のタイプの非一時的なコンピュータ読み取り可能な媒体、あるいはそれらのいずれかの組み合わせで構成され得る。非一時的なコンピュータ読み取り可能な媒体は、プロセッサ(複数可)510によりアクセス可能ないずれかの利用可能な媒体であってもよく、揮発性媒体、不揮発性媒体または両方などを含み得る。また、媒体は、取り外し可能なもの、取り外し不可能なもの、または両方であってもよい。
【0115】
コンピューティングシステム500は、無線および/または有線接続を介して通信ネットワークへのアクセスを提供するために、トランシーバなどの通信デバイス520を含む。いくつかの実施形態では、通信デバイス520は、本発明の範囲から逸脱することなく、単数のアンテナ、アレイ状のアンテナ、フェーズドアンテナ、スイッチドアンテナ、ビームフォーミングアンテナ、ビームステアリングアンテナ、それらの組み合わせ、および/またはいずれかの他のアンテナ構成である1または複数のアンテナを含み得る。プロセッサ(複数可)510は、バス505を介してディスプレイ525にさらに結合される。本発明の範囲から逸脱することなく、任意の適切なディスプレイデバイスおよび触覚I/Oが使用され得る。
【0116】
コンピュータマウス、タッチパッドなどのようなキーボード530およびカーソル制御デバイス535は、ユーザーがコンピューティングシステム500とインターフェースすることを可能にするために、バス505にさらに結合されている。しかしながら、特定の実施形態では、物理的なキーボードおよびマウスが存在しない場合があり、ユーザーは、ディスプレイ525および/またはタッチパッド(図示せず)のみを介してデバイスとインタラクションすることができる。任意の入力デバイスの種類および組み合わせは、設計の選択の問題として使用され得る。特定の実施形態では、物理的な入力デバイスおよび/またはディスプレイは存在しない。例えば、ユーザーは、コンピューティングシステム500と通信している別のコンピューティングシステムを介してリモートでそれとインタラクションしてもよいし、コンピューティングシステム500は自律的に動作してもよい。
【0117】
メモリ515は、プロセッサ(複数可)510により遂行されたときに機能を提供するソフトウェアモジュールを格納する。モジュールは、コンピューティングシステム500のためのオペレーティングシステム540を含む。モジュールは、本明細書に記載のプロセスまたはその派生物の全てまたは一部を実行するように構成された自動データ転送モジュール545をさらに含む。コンピューティングシステム500は、付加的な機能を含む1または複数の付加的な機能モジュール550を含み得る。
【0118】
当業者であれば、「コンピューティングシステム」は、本発明の範囲から逸脱することなく、サーバー、組み込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングシステム、または他のいずれかの適切なコンピューティングデバイス、またはデバイスの組み合わせとして具現化され得ることを理解するであろう。上述した機能を「システム」により実行されるものとして提示することは、何ら本発明の範囲を限定することを意図するものではなく、本発明の多くの実施形態の一例を提供することを意図するものである。実際、本明細書に開示された方法、システム、および装置は、クラウドコンピューティングシステムを含むコンピューティング技術と整合性のあるローカライズされた形態および分配された形態で実装されてもよい。コンピューティングシステムは、ローカルエリアネットワーク(LAN)、モバイル通信ネットワーク、衛星通信ネットワーク、インターネット、パブリッククラウドまたはプライベートクラウド、ハイブリッドクラウド、サーバーファーム、それらのいずれかの組み合わせなどの一部またはその他の方法でアクセス可能であり得る。本発明の範囲から逸脱することなく、任意の局所または分散アーキテクチャが使用され得る。
【0119】
本明細書で説明するシステム特色のいくつかは、実装の独立性をより強調するために、モジュールとして提示されていることに留意すべきである。例えば、モジュールは、カスタムの非常に大規模な集積(VLSI)回路またはゲートアレイ、ロジックチップ、トランジスタ、または他の個別部品のような既製の半導体を含むハードウェア回路として実装され得る。また、モジュールは、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイス、グラフィックス処理ユニットなどのプログラマブルハードウェアデバイスに実装され得る。
【0120】
モジュールはまた、さまざまなタイプのプロセッサにより遂行されるためのソフトウェアに少なくとも部分的に実装され得る。例えば、遂行可能コードの特定された単位は、例えば、オブジェクト、プロシージャ、または関数として編成されていてもよいコンピュータ命令の1または複数の物理的または論理的なブロックを含み得る。それにもかかわらず、遂行可能な特定されたモジュールは、物理的に一緒に配置されている必要はなく、論理的に結合されたときにモジュールを含み、モジュールのために述べられた目的を達成するために、異なる場所に格納された別々の命令を含んでいてもよい。さらに、モジュールは、例えば、ハードディスクドライブ、フラッシュデバイス、RAM、テープのようなコンピュータ読み取り可能な媒体、および/または本発明の範囲から逸脱することなくデータを格納するために使用される他のいずれかの非一時的なコンピュータ読み取り可能な媒体に格納されていてもよい。
【0121】
実際、遂行可能コードのモジュールは、単一の命令であってもよいし、多数の命令であってもよいし、さらには、複数の異なるコードセグメント、異なるプログラム間、および複数のメモリデバイス間に分散されていてもよい。同様に、動作データは、モジュール内で特定され、ここで示されてもよく、いずれかの適切なタイプのデータ構造体内でいずれかの適切な形態で具現化され、組織化され得る。動作データは、単一のデータセットとして収集されてもよいし、または異なる記憶デバイスにわたり異なる場所に分散されていてもよく、少なくとも部分的には、単にシステムまたはネットワーク上の電子信号として存在していてもよい。
【0122】
本発明の範囲から逸脱することなく、さまざまなタイプのAI/MLモデルが訓練され、展開され得る。例えば、
図6Aは、本発明の実施形態による、画像内のグラフィカル要素を認識するように訓練されたニューラルネットワーク600の例を示す。ここで、ニューラルネットワーク600は、入力層の入力「ニューロン」1~Iに関する入力として、1920×1080の画面のスクリーンショット画像のピクセルを受信する。この場合、Iは、スクリーンショット画像のピクセルの総数である2,073,600である。
【0123】
ニューラルネットワーク600はまた、多数の隠れ層を含む。DLNNと浅い学習ニューラルネットワーク(SLNN)はどちらも通常複数の層を有するが、SLNNは場合によっては1または2つの層しか持たず、通常はDLNNよりも少ない場合がある。典型的に、ニューラルネットワークのアーキテクチャは、ニューラルネットワーク600の場合のように、入力層、複数の中間層、および出力層を含む。
【0124】
多くの場合、DLNNは多くの層(10、50、200など)を有し、後続の層は通常、前の層からの機能を再利用して、より複雑で一般的な関数を計算する。一方、SLNNは少数の層しか有さず、生データサンプルからエキスパート機能が事前に作成されるため、比較的迅速に訓練する傾向がある。ただし、特徴抽出は面倒である。一方、DLNNは通常、エキスパート機能を必要としないが、訓練に時間がかかり、より多くの層を有する傾向がある。
【0125】
どちらのアプローチでも、層は訓練セットで同時に訓練され、通常は分離された交差検証セットでオーバーフィッティングをチェックする。両方の技術でも優れた結果が得られ、両方のアプローチにかなりの熱意がある。個々の層の最適なサイズ、形状、および数は、それぞれのニューラルネットワークによって対処される問題に依存する。
【0126】
図6Aに戻ると、入力層として提供されるピクセルは、隠れ層1のJ個のニューロンへの入力として供給される。この例では、全てのピクセルが各ニューロンに供給されるが、限定されないが、フィードフォワードネットワーク、ラジアルベーシスネットワーク、ディープフィードフォワードネットワーク、ディープコンボリューションインバースグラフィックスネットワーク、コンボリューションニューラルネットワーク、リカレントニューラルネットワーク、人工ニューラルネットワーク、長期/短期記憶ネットワーク、ゲーテッドリカレントユニットネットワーク、生成的敵対ネットワーク、リキッドステートマシン、オートエンコーダ、変分オートエンコーダ、ノイズ除去オートエンコーダ、スパースオートエンコーダ、エクストリームラーニングマシン、エコー状態ネットワーク、マルコフ連鎖、ホップフィールドネットワーク、ボルツマンマシン、制限付きボルツマンマシン、深層残差ネットワーク、コホーネンネットワーク、ディープビリーフネットワーク、ディープコンボリューショナルネットワーク、サポートベクターマシン、ニューラルチューリングマシン、または本発明の範囲から逸脱しない任意の他の適切なタイプまたは組み合わせのニューラルネットワークを含む、個々にまたは組み合わせて使用され得るさまざまなアーキテクチャが可能である。
【0127】
隠れ層2は隠れ層1から入力を受信し、隠れ層3は隠れ層2から入力を受信し、最後の隠れ層がその出力を出力層の入力として提供するまで、全ての隠れ層について同じように行われる。ニューロンI、J、K、およびLの数は必ずしも等しくなく、したがって、本発明の範囲から逸脱することなく、ニューラルネットワーク600の所定の層に対して任意の所望の数の層を使用することができることに留意されたい。実際、特定の実施形態では、所与の層におけるニューロンのタイプは、全て同じでなくてもよい。
【0128】
ニューラルネットワーク600は、画像内で発見されたと考えられるグラフィカル要素に信頼スコアを割り当てるように訓練される。許容できないほど低い尤度を有するマッチングを減らすために、いくつかの実施形態では、信頼閾値を満たすかまたはそれを超える信頼スコアを有するそれらの結果のみが提供され得る。例えば、信頼閾値が80%である場合、この量を超える信頼スコアを有する出力が使用され、残りは無視されてもよい。この場合、出力層は、2つのテキストフィールド、テキストラベル、およびサブミットボタンが見つけられたことを示す。ニューラルネットワーク600は、本発明の範囲から逸脱することなく、これらの要素の位置、寸法、画像、および/または信頼スコアを提供してもよく、これは、この出力を所定の目的のために使用するRPAロボットまたは別のプロセスによってその後使用され得る。
【0129】
ニューラルネットワークは、典型的には信頼スコアを有する確率的構築物であることに留意されたい。これは、AI/MLモデルが、訓練中に類似の入力が正しく特定された頻度に基づいて学習したスコアであり得る。例えば、テキストフィールドは、しばしば長方形の形状と白い背景を有する。ニューラルネットワークは、これらの特徴を有するグラフィカル要素を高い信頼度で特定することを学習し得る。信頼スコアの一般的なタイプは、0と1の間の10進数(信頼度のパーセンテージとして解釈可能)、負の∞と正の∞の間の数、または表現のセット(例えば、「低」、「中」、および「高」)を含む。また、より正確な信頼スコアを得る試みとして、温度スケーリング、バッチ正規化、重み減衰、負対数尤度(NLL)など、さまざまな後処理較正技法が採用され得る。
【0130】
ニューラルネットワークの「ニューロン」は、通常、生体ニューロンの機能に基づく数学的関数である。ニューロンは、重み付けされた入力を受信し、それらが出力を次の層に渡すかどうかを統治する和および活性化関数を有する。このアクティベーション関数は、値が閾値を下回っている場合は何も起こらない非線形の閾値付きアクティビティ関数であり得、関数が閾値を超えると線形に応答する(つまり、正規化線形単位(ReLU)非線形性)。実際のニューロンはほぼ同様のアクティビティ関数を有し得るため、深層学習では合計関数およびReLU関数が使用される。線形変換を介して、情報が差し引かれたり、追加されたりするなどされ得る。本質的に、ニューロンは、それらの基礎となる数学的関数によって統治される次の層に出力を渡すゲーティング関数として機能する。いくつかの実施形態では、少なくともいくつかのニューロンに対して異なる関数が使用され得る。
【0131】
【0132】
【0133】
【0134】
この場合、ニューロン610は単層パーセプトロンである。しかしながら、本発明の範囲から逸脱することなく、任意の適切なニューロンタイプまたはニューロンタイプの組み合わせが使用され得る。活性化関数の重みおよび/または出力値(複数可)の値の範囲は、本発明の範囲から逸脱することなく、いくつかの実施形態では異なり得ることにも留意されたい。
【0135】
例えば、画像内のグラフィカル要素の特定が成功するこの場合について、目標、または「報酬関数」がよく使用される。報酬関数は、状態空間の検索を導き、目標(例えば、グラフィカル要素の成功した特定、RPAワークフローのアクティビティの次のシーケンスの成功した特定、など)の達成を試みるために、短期および長期の両方の報酬を使用して中間遷移およびステップを探索する。
【0136】
訓練中、さまざまなラベル付きデータ(この場合は画像)がニューラルネットワーク600を介して供給される。特定に成功すると、ニューロンへの入力の重みが強化されるが、特定に失敗すると、それらの重みが弱まる。平均二乗誤差(MSE)または勾配降下などのコスト関数を使用して、わずかに間違っている予測を、大きく間違っている予測よりもはるかに少ない罰で済むようにし得る。AI/MLモデルの性能が一定回数の訓練反復後に改善されない場合、データサイエンティストは報酬関数を変更し、特定されていないグラフィカル要素がどこにあるかを示し、誤特定されたグラフィカル要素の修正を提供するなどし得る。
【0137】
バックプロパゲーションは、フィードフォワードニューラルネットワークでシナプスの重みを最適化するための手法である。バックプロパゲーションは、ニューラルネットワークの隠れ層を「ポップアップ」して、各ノードがどれだけの損失を負担しているかを確認し、その後、誤差率の高いノードに低い重みを与え、逆もまた同様、損失を最小化するように重みを更新するために使用され得る。つまり、バックプロパゲーションは、データサイエンティストが実際の出力と所望の出力との差を最小にするように、重みを繰り返し調整することを可能にする。
【0138】
バックプロパゲーションのアルゴリズムは、数学的に最適化理論に基づいている。教師あり学習では、出力が既知の訓練データをニューラルネットワークに通し、既知の目標出力からコスト関数を用いて誤差を計算し、これがバックプロパゲーションの誤差を与える。誤差は出力で計算され、この誤差は、誤差を最小化するネットワークの重みの修正に変換される。
【0139】
【0140】
【0141】
【0142】
【0143】
【0144】
AI/MLモデルは、それが良好な精度のレベル(例えば、検出のためのF2またはF4閾値を使用して97%以上、約2000エポック)に達するまで、複数のエポックにわたって訓練され得る。この精度レベルは、いくつかの実施形態では、F1スコア、F2スコア、F4スコア、または本発明の範囲から逸脱しない任意の他の適切な技術を使用して決定され得る。訓練データで一旦訓練されると、AI/MLモデルは、AI/MLモデルが以前に遭遇したことのない評価データのセットでテストされ得る。これは、AI/MLモデルが、訓練データ中のグラフィカル要素をよく特定するが、他の画像にうまく一般化しないような「過剰適合」をしないことを保証するのに役立つ。
【0145】
いくつかの実施形態では、AI/MLモデルがどのような精度レベルを達成することが可能であるかは、知られていない場合がある。したがって、評価データを分析する際にAI/MLモデルの精度が下がり始めている場合(すなわち、モデルは訓練データでは良好に実行しているが、評価データでは性能が低下し始めている)、AI/MLモデルは、訓練データ(および/または新しい訓練データ)におけるさらなる訓練のエポックを経ることができる。いくつかの実施形態では、AI/MLモデルは、精度が特定のレベルに達した場合、または訓練されたAI/MLモデルの精度が既存の展開されたAI/MLモデルより優れている場合にのみ展開される。
【0146】
特定の実施形態では、訓練されたAI/MLモデルの収集は、対象グラフィカル要素のタイプごとにAI/MLモデルを採用する、AI/MLモデルを採用してOCRを実行する、さらに別のAI/MLモデルを展開してグラフィカル要素間の近接関係を認識する、さらに別のAI/MLモデルを採用して他のAI/MLモデルからの出力に基づいてRPAワークフローを生成するなど、タスクを実現するために使用され得る。例えば、これにより、AI/MLモデルが集合的にセマンティックオートメーションを可能にし得る。
【0147】
いくつかの実施形態では、最先端の文、テキスト、および画像埋め込み用のPython(商標)フレームワークであるSentenceTransformers(商標)などのトランスフォーマーネットワークを使用することができる。このようなトランスフォーマーネットワークは、高いスコアと低いスコアの両方を持つ単語およびフレーズの関連付けを学習する。これは、AI/MLモデルを訓練して、何が入力に近く、何がそうでないかをそれぞれ決定する。単語/フレーズの対だけを使用するのではなく、トランスフォーマーネットワークは、フィールド長およびフィールドタイプも使用してもよい。
【0148】
図7は、本発明の実施形態による、AI/MLモデル(複数可)を訓練するためのプロセス700を示すフローチャートである。プロセスは、例えば、
図7に示すような(例えば、特定されたグラフィカル要素およびテキストを伴う)ラベル付けされた画面、単語およびフレーズ、所定の単語またはフレーズに対する類似の単語およびフレーズが特定され得るような単語およびフレーズ間の意味的関連性の「シソーラス」などの訓練データを710で提供することから開始する。提供される訓練データの性質は、AI/MLモデルが達成しようとする目的に依存する。AI/MLモデルは、次に、720で複数のエポックにわたって訓練され、結果は、730においてレビューされる。
【0149】
AI/MLモデルが740で所望の信頼閾値を満たさない場合、750でAI/MLモデルがその目的をよりよく達成するのを助けるために、訓練データが補充され、および/または報酬関数が修正され、プロセスはステップ720に戻る。AI/MLモデルが740で信頼閾値を満たす場合、AI/MLモデルは、760で評価データに対してテストされ、AI/MLモデルがよく一般化し、AI/MLモデルが訓練データに関して過剰に適合しないことを確認する。評価データは、AI/MLモデルが以前に処理したことのない画面、ソースデータなどを含んでもよい。評価データについて770で信頼閾値が満たされる場合、AI/MLモデルは780で展開される。そうでない場合、プロセスはステップ750に戻り、AI/MLモデルはさらに訓練される。
【0150】
いくつかの実施形態は、開発者からのより少ないまたは最小のインタラクション入力で完全に自動化されたワークフローを作成するために、セマンティックオートメーションをオートメーションプラットフォームにもたらす。セマンティックマッピングを使用して、データソース/ソース画面からのUIフィールドは、1または複数のAI/MLモデルを使用して、ターゲット画面上のUIフィールドに意味的にマッピングされ、完全自動化ワークフローは、開発者による介入なしにこのセマンティックマッピングから作成され得る。現在のプロトタイプでは、UIフィールドの80%までマッピングが達成され得、開発者の支援により残りの約20%がマッピングされ得る。AI/MLモデル(複数可)は、時間の経過とともにUIフィールドをより正確にマッチングするように学習するために再訓練され得、マッピングが将来的に100%の精度に近づくことが期待される。
【0151】
いくつかの実施形態では、RPAデザイナアプリケーションは、RPA開発者が2つの画面間またはデータ(例えば、顧客データ)と画面との間のマッチングを実行することを可能にするセマンティックマッチング機能を含む。セマンティックAI機能を選択すると、RPAデザイナアプリケーションは、
図8A~
図8Dのマッチングインターフェース800などのマッチングインターフェースを表示することができる。これは一般的な例であるが、本発明の実施形態によって提供されるセマンティックAIには、請求書をSAP(登録商標)にマッピングする、ExcelスプレッドシートからCRMアプリケーションにデータを自動入力する、RPAワークフローから別のRPAワークフローにXAMLをマッピングするなど、多くの使用事例が存在する。また、この例はテキストフィールドからなるが、ボタン、テキストエリア、ビジュアルディスプレイのないデータなど、他のグラフィカル要素が本発明の範囲から逸脱することなくマッピングされ得る。
【0152】
マッチングインターフェース800は、マッピングオプションペイン810とマッピングペイン820とを含む。開発者(プログラミング経験のほとんどないシチズンデベロッパーを含む)が選択ソース(複数可)822または選択ターゲット824を選択すると、ユーザーはデータのソースとソースデータがコピーされるターゲットをそれぞれ選択し得る。複数のソースが使用され得、そこからのデータは、ターゲットとのマッチングのために格納され得る(例えば、単一のデータ格納オブジェクトに収集される)。そして、このソース情報は、ターゲットの記入のために使用される。選択ソース(複数可)ボタン822は、本実施形態では、ユーザーが複数のソースを指定することを可能にする。これらのソースは、ユーザーのソース選択を捕捉することによって学習されてもよく、そのアプリケーションに対する将来のコピーアンドペースト動作は、これらのソースを自動的に採用してもよいし、またはオプションとしてユーザーにその技術を提供してもよい。
【0153】
いくつかの実施形態では、ユーザーは、選択ソース(複数可)ボタン822を介して、ソースとしてシステムクリップボードを選択し得る。ユーザーがシステムクリップボードに情報を追加するとき(例えば、ユーザーがCTRL+Cを押してMicrosoft Windows(登録商標)で選択されたコンテンツをコピーするとき)、この情報は、いくつかの実施形態では、ユーザーがターゲットに入力したいと思うデータを含み得る。この情報は、Windows(登録商標)のClipboard.GetText()を使用するSystem.Windows.Forms.dllを介してなど、適切なオペレーティングシステムAPIによって取得され得る。その後、クリップボードからターゲットへのセマンティックマッピングが実行され得る。クリップボードのコンテンツが文、段落などのコピーされたテキストである場合、ターゲットとのセマンティックマッチングのためのコンテンツを得るために、この情報にNLPが適用され得る。
【0154】
いくつかの実施形態では、ユーザーが選択ソース822または選択ターゲット824を選択すると、タイプ選択インターフェース860が表示される。
図8Bにおいて、ユーザーが選択ソース822を選択した後、タイプ選択インターフェース860は、RPAデザイナアプリケーションによって認識されサポートされるさまざまなタイプをリストアップするドロップダウン862を提供する。次に、ユーザーは、タイプの1つがソースまたはターゲットに関係する場合、確認ボタン864をクリックして、タイプを確認し得る。この選択に基づいて、RPAデザイナアプリケーションは、ラベルおよびフィールドがソースおよび/またはターゲットにあるものをより確実に決定することができ得る。
【0155】
選択されると、それらが視認性インターフェースを有する場合、ソース画面840とターゲット画面850が表示される。
図8Cを参照。しかしながら、いくつかの実施形態では、このステップはスキップされてもよく、または潜在的に、これらの画面のための表示がユーザーに提供されない。
【0156】
ユーザーが「セマンティックCP」ボタン812を押してセマンティックコピーアンドペーストを実行すると、セマンティックマッチングAI/MLモデルが呼び出されて、ソースラベルおよび値をターゲットラベルおよびフィールドとマッチングさせる。そして、マッチングしたフィールドの値は、ソースからターゲットに自動的にコピーされる。
図8Dを参照。しかし、この場合、ソースの「請求書(Invoice)#」はターゲットの「Inv.Num」にマッピングされておらず、信頼スコアは0である。従って、マッチングされなかったソースのフィールド842はハイライト842される。次に、開発者は、マッチングするソースおよびターゲットにおけるラベル/フィールドを手動でマッピングすることができ、このマッピングは、セマンティックマッチングAI/MLモデルの再訓練のために保存され得る。例えば、ソース画面およびターゲット画面は、バウンディングボックス情報(例えば、座標)、ならびにソース画面840およびターゲット画面850におけるマッチングしたフィールドに関連するラベルの座標およびテキストとともに保存され得る。
【0157】
ソース画面およびターゲット画面におけるラベルの間の関係は、テキストフィールドが互いに類似しているかまたは同じであり得るが、所定のテキストフィールドが何を表すことを意味しているかを決定するために使用され得る。これは、所定のテキストフィールドに1または複数のアンカーを割り当てることによって達成され得る。例えば、フィールド「シティー(City)」は、ターゲット画面850においてそれが関連するテキストフィールドの左側に直接表示され、他のテキストフィールドはこのラベルを含まないので、デザイナアプリケーションおよび/またはセマンティックマッチングAI/MLモデル(複数可)は、これらのフィールドがリンクされていると判断し、ターゲットテキストフィールドのアンカーとしてシティー(City)ラベルを割り当て得る。ラベルがテキストフィールドを一意に特定しない場合、1または複数の他のグラフィカル要素がアンカーとして割り当てられ得、それらの幾何学的関係が、与えられたターゲット要素を一意に特定するために使用され得る。例えば、米国特許第10,936,351号および第11,200,073号を参照。
【0158】
ソース画面またはソースデータとターゲット画面のマッピングが完了した後、ユーザーは、作成ボタン834をクリックして、所望のマッピングを実装するRPAワークフローにおける1または複数のアクティビティを自動的に生成し得る。これにより、RPAワークフローのアクティビティが自動的に作成される。いくつかの実施形態では、RPAワークフローは、作成後、ユーザーによって所望されるマッピングタスクを実行するために直ちに遂行される。
【0159】
RPAワークフローを自動的に作成するために、デザイナアプリケーションは、UIオブジェクトリポジトリを利用し得る。例えば、米国特許出願公開第2022/0012024号を参照。UIオブジェクトリポジトリ(例えば、UiPath Object Repository(商標))は、UIオブジェクトライブラリの収集であり、これは、それ自体(例えば、アプリケーションの特定のバージョンおよびその1または複数の画面用)UI記述子の収集である。類似のグラフィカル要素のための統一されたターゲット制御は、UIオブジェクトリポジトリから取得され得、これは、所定のグラフィカル要素とどのようにインタラクションするかをRPAロボットに指示するものである。
【0160】
このような例は、本発明の実施形態による、RPAワークフロー910における自動生成されたアクティビティを有するRPAデザイナアプリケーション900を示す
図9に示される。セマンティックマッチングAI/MLモデル(複数可)は、上記により、ソース画面またはソースデータとターゲット画面との間の関連付けを認識するように訓練されている。
図8A~
図8Cおよび
図9の例の場合、セマンティックマッチングAI/MLモデル(複数可)は、ソース画面またはソースデータのフィールドからのデータがターゲット画面のマッチングフィールドにコピーされるべきであることを決定することが可能である。したがって、RPAデザイナアプリケーション900は、UIオブジェクトリポジトリからターゲット要素のUI記述子を取得し、ターゲット画面をクリックするアクティビティをRPAワークフロー910に追加し、それぞれのターゲットフィールドをクリックし、そしてこれらのUI記述子を用いてソース画面またはデータソースからターゲット画面のそれぞれのマッチングフィールドにテキストを入力することを知る。RPAデザイナアプリケーション900は、この機能を実装するRPAワークフロー910の1または複数のアクティビティを自動的に生成する。いくつかの実施形態では、開発者は、これらのアクティビティを修正することを許可されない場合がある。しかしながら、特定の実施形態では、開発者は、アクティビティのための構成を修正することができ、アクティビティを編集するための完全な権限を有するなどであり得る。いくつかの実施形態では、RPAデザイナアプリケーションは、RPAワークフローを実装するRPAロボットを自動的に生成し、ソース画面またはソースデータからの情報が開発者からのさらなる指示なしにターゲット画面に自動的にコピーされるように、RPAロボットを遂行する。
【0161】
いくつかの実施形態は、実質的なプログラミング経験のない実行時のユーザーがセマンティックオートメーションを実行することを可能にするセマンティックコピーアンドペースト機能を提供する。
図10Aは、本発明の実施形態による、セマンティックコピーアンドペーストインターフェース1000を示す。いくつかの実施形態では、セマンティックコピーアンドペーストインターフェース1000は、RPAロボットによって遂行される自動化の一部である。セマンティックコピーアンドペーストインターフェース1000は、コピーアンドペーストボタン1010とクローズボタン1030とを含む。セマンティックコピーアンドペーストインターフェース1000を使用して、ユーザーは、ソースからターゲットへのコピーアンドペーストを実行することができる、または実行する。ソースおよび/またはターゲットは、本発明の範囲から逸脱することなく、ファイル、アプリケーションインターフェース、またはデータを格納することができる任意の他の適切な媒体であってもよく、ソースおよびターゲットのタイプは互いに異なってもよい。
【0162】
コピーアンドペーストボタン1010をクリックすると、アプリケーション(例えば、自動化を遂行するRPAロボット)は、ソース選択インターフェース1012を介して、彼または彼女がソースを介してからソースとしてデータをコピーしたいアプリケーションまたはファイルを示すようにユーザーに要求する。
図10Bを参照。ユーザーがソース選択インターフェース1012のソースボタン1014を示すと、いくつかの実施形態では、画面上の指示機能が有効になる(例えば、UiPath Studio(商標)によって提供されるものと同じまたは類似する)。次に、ユーザーは、請求書1016をソースとして選択し得る。
【0163】
ソース(すなわち、この例では請求書1013)を示した後、セマンティックオートメーションロジック(すなわち、セマンティックマッチングAI/MLモデル(複数可))は、分類アルゴリズムを使用してソースのタイプを予測でき、データ抽出インターフェース1012は、ソースのタイプのその予測をドロップダウンメニュー1016に表示する。
図10Cを参照。しかし、いくつかの実施形態では、ユーザーは、ソースタイプの確認および/または選択を促されない場合がある。ユーザーは、確認ボタン1017を用いて予測を確認するか、またはドロップダウンメニュー1016から別のタイプを選択することができる。
図10Dを参照。
【0164】
ソースが選択されると、アプリケーションはユーザーに彼または彼女がデータをコピーしたい先のアプリケーションまたはファイルを指定するように要求する。
図10Eを参照。しかしながら、いくつかの実施形態では、ターゲットが最初に選択されてもよく、および/またはソースとターゲットの選択の順序は重要でない。ユーザーがターゲット選択インターフェース1022のターゲット指示ボタン1024をクリックすると、本実施形態では、画面上の指示機能が有効になる。次に、ユーザーは、ターゲットとしてウェブ請求書処理ページ1023を選択し得る。
【0165】
ターゲットとしてウェブ請求書処理ページ1023を示した後、セマンティックオートメーションロジックは、分類アルゴリズムを使用してターゲットのタイプを予測することができ、ターゲット選択インターフェース1022は、ドロップダウンメニュー1026にターゲットのタイプのその予測を表示する。
図10Fを参照。ユーザーは、確認ボタン1027を用いて予測を確認するか、またはドロップダウンメニュー1026から別のタイプを選択することができる。
図10Gを参照。ユーザーによる確認後、アプリケーションは抽出されたデータを使ってウェブブラウザ1023に自動的に入力する。
図10Hを参照。
【0166】
図12は、本発明の実施形態による、セマンティックAIを実行するためのAI/MLモデルのアーキテクチャ1100を示すアーキテクチャ図である。CVモデル1110は、画面におけるグラフィカル要素を特定するためにコンピュータビジョン機能を実行し、OCRモデル1120は、画面(複数可)のテキスト検出と認識を実行する。
ソース画面とターゲット画面の両方が使用される実施形態では、CVモデル1110とOCRモデル1120は、両方の画面上でCVおよびOCR機能を実行する。
【0167】
CVモデル1110およびOCRモデル1120は、次に、ターゲット画面またはターゲットとソース画面の両方において検出されたグラフィカル要素およびテキストのタイプ、ロケーション、サイズ、テキスト等を、OCRモデル1120からのラベルとCVモデル1110からのグラフィカル要素とをマッチングするラベルマッチングモデル1130に提供する。マッチングするラベルと画面(複数可)からの関連するグラフィカル要素は、次に入力データマッチングモデル1140に渡され、これは、ソースからの入力データをターゲットにおけるラベルとマッチングする。マッチングおよびそれぞれの信頼度は、その後、入力データマッチングモデル1140からの出力として提供される。いくつかの実施形態では、異なる方法(例えば、それらは異なるニューラルネットワークアーキテクチャを有し、異なる戦略を採用し、異なる訓練データで訓練された、など)でマッチングを実行する複数のAI/MLモデルが入力データマッチングに使用され得る。
【0168】
いくつかの実施形態では、AI/MLモデル(複数可)は、同じラベルを有するフィールドが異なる文脈を有し得ることを学習し得る。例えば、画面の請求情報セクションと配送情報セクションの両方が「住所」ラベルを有し得るが、AI/MLモデルは、一方の近くの要素のパターンが他方の近くの要素のパターンと異なることを学習し得る。次に、画面のこれらのセクションがマルチアンカー技術でアンカーとして使用され得、この場合、テキストフィールドがターゲットであり、「住所」ラベルと認識されたパターンを含むセクションがアンカーになる。例えば、米国特許第10,936,351号および第11,200,073号を参照。
【0169】
図12は、本発明の実施形態による、設計時にRPA用のセマンティックAIを使用してソースおよびターゲットの間で自動データ転送を実行するためのプロセス1200を示すフローチャートである。プロセスは、1205でソースの選択を受信し、1210でターゲットの選択を受信することから始まる。次いで、ソースとターゲットとの間のセマンティックマッチングおよびデータ転送を実行するように訓練された1または複数のAI/MLモデルが、1215で呼び出される。いくつかの実施形態では、1または複数のAI/MLモデルは、所定の単語またはフレーズに関する類似の単語およびフレーズが特定され得るように、単語およびフレーズ間の意味的な関連付けを有する単語およびフレーズを提供し、かつ文脈上のラベルを提供することによって訓練される。いくつかの実施形態では、1または複数のAI/MLモデルは、CVモデル、OCRモデル、ラベルマッチングモデル、および入力データマッチングモデルを含み、ラベルマッチングモデルは、OCRモデルによって検出されたラベルをCVモデルによって検出されたフィールドとマッチングさせ、入力データモデルは、ラベルマッチングモデルからマッチングするラベルを受信して、ソースからのまたはソースからのラベルと関連付けられたフィールドからのデータ要素をターゲットにおいて意味的にマッチングするラベルに関連付けられたフィールドと意味的にマッチングさせる。
【0170】
ターゲットにおける意味的にマッチングするラベルに関連する値またはロケーション(例えば、ロケーション、座標、タイプなど)および1または複数のAI/MLモデルからのそれぞれの信頼スコアの指示は、1220で受信される。意味的にマッチングしたラベルに関連する値またはロケーション、個々の信頼スコア、およびグローバル信頼スコアは、1225で、マッチングインターフェースにおいてソースおよび/またはターゲットに表示される。例えば、ターゲット画面が表示され、マッチング要素が強調表示され得るか、またはそうでなければ開発者に明らかにされ得る。いくつかの実施形態では、ソース画面またはソースデータにおけるマッチングフィールドとターゲット画面との間に接続が描かれている。特定の実施形態では、マッチングが見つからなかったソース画面またはソースデータにおける要素が強調表示されるか、またはそうでなければ開発者に示される。
【0171】
関連する意味的にマッチングするラベルを有するものとして1または複数のAI/MLモデルによって特定されたターゲット画面における値またはロケーションに対する補正(複数可)、1または複数のAI/MLモデルによってソースにおけるラベルと意味的にマッチングしなかったターゲット画面における新しい要素の指示、あるいはその両方が、1230で受信される。ターゲットにおける修正されたおよび/または新たにラベル付けされた値もしくはロケーションおよび関連するラベルに係る情報は、1235で、直接(すなわち、コンピューティングシステムメモリに直接格納)または間接(すなわち、格納のために外部システムに送信)のいずれかで収集および格納される。ステップ1230および1235は、そのような修正が開発者によって提供された場合に実行される。
【0172】
意味的にマッチングするデータをソースからターゲットにコピーするRPAワークフローにおける1または複数のアクティビティは、1240で自動的に生成される。いくつかの実施形態では、1または複数のアクティビティの自動生成は、コピーアンドペーストタスク(例えば、コピー動作)の開始を決定すること、コピーアンドペーストタスク(例えば、ペースト動作)の終了を決定すること、(もしあれば)その間の動作を決定すること、そしてこれらの動作に関連するアクティビティを生成することを含む。1245で、RPAワークフローで生成された1または複数のアクティビティを実装するRPAオートメーションが生成され、展開される。
【0173】
実行時に、RPAロボットは、RPAワークフローに従って自動化を実行するためにそれが特定しようとしているグラフィカル要素のUI記述子にUIオブジェクトリポジトリからアクセスし、1250でこれらのUI記述子を用いてターゲットにおけるグラフィカル要素を特定しようと試みる。1255で全てのターゲットグラフィカル要素が特定され得る場合、1260でソースからターゲットに情報がコピーされる。しかしながら、1255で全てのグラフィカル要素が見つかることができない場合、RPAロボットはAI/MLモデル(複数可)を呼び出して、不足しているグラフィカル要素(複数可)を特定することを試み、1265でこれらのそれぞれのグラフィカル要素に対するUI記述子を更新する。例えば、RPAロボットは、AI/MLモデル(複数可)によって提供される記述子情報を使用して、UIオブジェクトリポジトリ内の欠落要素のそれぞれのUI記述子を更新し、他のRPAロボットが将来同じ問題に遭遇しないようにし得る。その意味で、システムは自己修復である。
【0174】
図13は、本発明の実施形態による、実行時にRPA用のセマンティックAIを使用してソースおよびターゲットの間で自動データ転送を実行するためのプロセス1300を示すフローチャートである。プロセスは、1305でセマンティックコピーアンドペーストのインターフェースを提供することから始まる。1310でソースが特定される。ソースのタイプは、1315で、分類アルゴリズムを使用して予測される。いくつかの実施形態では、セマンティックコピーアンドペーストアプリケーションは、1320で、予測の確認またはユーザーによる予測に対する変更を受信するために待つ。
【0175】
ターゲットアプリケーションの指示は、1325で受信される。ターゲットのタイプは、1330で分類アルゴリズムを使用して予測される。いくつかの実施形態では、セマンティックコピーアンドペーストアプリケーションは、1335で、予測の確認またはユーザーによる予測に対する変更を受信するために待つ。
【0176】
いくつかの実施形態では、1340でコピーアンドペースト機能における各データ入力の前に、ユーザーにプロンプトが表示される。例えば、所定のデータ項目(例えば、データの行、個々のグラフィカル要素など)を入力する前に、ユーザーは、入力されるデータがターゲットに表示されるのを見ることができる。その後、ユーザーは入力をプレビューして承認するか、または拒否し得る。ソースからのデータは、次に1345でターゲットに入力される。
【0177】
いくつかの実施形態では、複数の画面および/または画面バージョンにわたるデータの永続性が望まれ得る。例えば、アプリケーションのアカウント作成プロセスは、さまざまなフィールドを有する複数の画面を含み得、そのうちのいくつかは、潜在的に繰り返される。さらに、または代替的に、画面のいくつかのラベル/フィールドは、何らかのアクション(例えば、ラジオボタンの選択、チェックボックスのクリック、以前のエントリの完了など)が行われるまで表示されない場合がある。
【0178】
ユーザーのクリップボードおよび/または以前の画面エントリからのメタデータは、情報の各画面が完了するにつれて持続し成長する永続データ構造に格納され得る。ラベルの値(例えば、数字、英数字の値または文字の文字列、通貨値、いくつかの実施形態における画像など)は、訓練からの精度に応じて、信頼閾値を超えた場合(例えば、70%、90%、99%など)に関連フィールドに自動的に追加され得る。しかしながら、この信頼閾値(すなわち、自動補完閾値)がラベルについて満たされない場合、ユーザーは、第2のより低い提案閾値(例えば、40%、60%、75%など)を超えるオプションを提示されてもよい。これらのオプションは、ユーザーがフィールドをクリックしたとき、フィールド上にマウスを置いたときなどに提供され得る。その後、ユーザーはこれらのオプションから値を選択するか、別の値を追加することができる。この値は、その後、そのラベルの永続データ構造に追加される。
【0179】
画面に情報が追加され、永続データ構造が大きくなるにつれて、意味的な関連付けと提案がより正確になり得る。また、完成されつつある文書、アプリケーション、ウェブページ(複数可)などの分類は、より正確になるか、またはデータ入力前に以前は不可能であった場合、潜在的に可能になる。このように、意味素性(semantic feature)は、徐々に改善され得る。特定の実施形態では、以前のデータ入力セッションからの永続データ構造(複数可)は、意味的ロジック(semantic logic)をより正確にするため、および/または将来の完成のためのテンプレートを提供するために使用され得る。データ構造は、ラベルと値との関連付け、および潜在的なラベル/値の対と画面(複数可)との関連付けを含んでもよく、これは、テンプレート機能を支援し得る。
【0180】
図14は、本発明の実施形態による、設計時にRPA用のセマンティックAIを使用してソースおよびターゲットの間で自動的で永続的なマルチスクリーンデータ転送を実行するためのプロセス1400を示すフローチャートである。プロセスは、1405でソースの選択を受信し、1410でターゲットの選択を受信することから始まる。次いで、ソースとターゲットとの間のセマンティックマッチングおよびデータ転送を実行するように訓練された1または複数のAI/MLモデルが、1415で呼び出される。いくつかの実施形態では、1または複数のAI/MLモデルは、所定の単語またはフレーズに関する類似の単語およびフレーズが特定され得るように、単語およびフレーズ間の意味的な関連付けを有する単語およびフレーズを提供し、かつ文脈上のラベルを提供することによって訓練される。いくつかの実施形態では、1または複数のAI/MLモデルは、CVモデル、OCRモデル、ラベルマッチングモデル、および入力データマッチングモデルを含み、ラベルマッチングモデルは、OCRモデルによって検出されたラベルをCVモデルによって検出されたフィールドとマッチングさせ、入力データモデルは、ラベルマッチングモデルからマッチングするラベルを受信して、ソースからのまたはソースからのラベルと関連付けられたフィールドからのデータ要素をターゲットにおいて意味的にマッチングしたラベルに関連付けられたフィールドと意味的にマッチングさせる。
【0181】
ターゲットにおける意味的にマッチングしたラベルに関連する値またはロケーション(例えば、ロケーション、座標、タイプなど)および1または複数のAI/MLモデルからのそれぞれの信頼スコアの指示は、1420で受信される。意味的にマッチングしたラベルに関連する値またはロケーション、個々の信頼スコア、およびグローバル信頼スコアは、1425で、マッチングインターフェースにおいてソースおよび/またはターゲットに表示される。例えば、ターゲット画面が表示され、マッチング要素が強調表示され得るか、またはそうでなければ開発者に明らかにされ得る。いくつかの実施形態では、ソース画面またはソースデータにおけるマッチングフィールドとターゲット画面との間に接続が描かれている。特定の実施形態では、マッチングが見つからなかったソース画面またはソースデータにおける要素が強調表示されるか、またはそうでなければ開発者に示される。
【0182】
関連する意味的にマッチングするラベルを有するものとして1または複数のAI/MLモデルによって特定されたターゲット画面における値またはロケーションに対する補正(複数可)、1または複数のAI/MLモデルによってソースにおけるラベルと意味的にマッチングしなかったターゲット画面における新しい要素の指示、あるいはその両方が、1430で受信される。ターゲットにおける修正されたおよび/または新たにラベル付けされた値もしくはロケーションおよび関連するラベルに係る情報は、1435で、ラベル/フィールドの関連付けを含む永続データ構造において直接(すなわち、コンピューティングシステムメモリに直接格納)または間接(すなわち、格納のために外部システムに送信)のいずれかで収集および格納される。1440で、新しい画面および/または現在の画面に変更があり、そのようなフィールドが表示されなかったり、アプリケーションによって完了がブロックされたりした場合(例えばグレーアウトされ、ユーザーが入力できない)、プロセスは、その画面についてステップ1420に戻る。
【0183】
意味的にマッチングするデータをソースからターゲットにコピーするRPAワークフローにおける1または複数のアクティビティは、1445で自動的に生成される。いくつかの実施形態では、1または複数のアクティビティの自動生成は、コピーアンドペーストタスク(例えば、コピー動作)の開始を決定すること、コピーアンドペーストタスク(例えば、ペースト動作)の終了を決定すること、(もしあれば)その間の動作を決定すること、そしてこれらの動作に関連するアクティビティを生成することを含む。1450で、RPAワークフローで生成された1または複数のアクティビティを実装するRPAオートメーションが生成され、展開される。
【0184】
実行時に、RPAロボットは、RPAワークフローに従って自動化を実行するためにそれが特定しようとしているグラフィカル要素のUI記述子にUIオブジェクトリポジトリからアクセスし、1455でこれらのUI記述子を用いてターゲットにおけるグラフィカル要素を特定しようと試みる。1460で全てのターゲットグラフィカル要素が特定され得る場合、1465でソースからターゲットに情報がコピーされる。しかしながら、1460で全てのグラフィカル要素が見つからない場合、RPAロボットはAI/MLモデル(複数可)を呼び出して欠落しているグラフィカル要素(複数可)を特定しようとし、1470でこれらのそれぞれのグラフィカル要素のUI記述子を更新する。例えば、RPAロボットは、AI/MLモデル(複数可)によって提供される記述子情報を使用して、UIオブジェクトリポジトリ内の欠落要素のそれぞれのUI記述子を更新し、他のRPAロボットが将来同じ問題に遭遇しないようにし得る。その意味で、システムは自己修復である。
【0185】
図15は、本発明の実施形態による、実行時にRPA用のセマンティックAIを使用してソースおよびターゲットの間で永続的なマルチスクリーン自動データ転送を実行するためのプロセス1500を示すフローチャートである。プロセスは、1505でセマンティックコピーアンドペーストのインターフェースを提供することから始まる。1510でソースが特定される。ソースのタイプは、1515で、分類アルゴリズムを使用して予測される。いくつかの実施形態では、セマンティックコピーアンドペーストアプリケーションは、1520で、予測の確認またはユーザーによる予測に対する変更を受信するために待つ。
【0186】
ターゲットアプリケーションの指示は、1525で受信される。ターゲットのタイプは、1530で分類アルゴリズムを使用して予測される。いくつかの実施形態では、セマンティックコピーアンドペーストアプリケーションは、1535で、予測の確認またはユーザーによる予測に対する変更を受信するために待つ。
【0187】
いくつかの実施形態では、1540でコピーアンドペースト機能における各データ入力の前に、ユーザーにプロンプトが表示される。例えば、所定のデータ項目(例えば、データの行、個々のグラフィカル要素など)を入力する前に、ユーザーは、入力されるデータがターゲットに表示されるのを見ることができる。その後、ユーザーは入力をプレビューして承認するか、または拒否し得る。ソースからのデータは、次に1545でターゲットに入力される。
【0188】
第1のオートコンプリーション信頼閾値を満たさないが、第2のより低い提案信頼閾値を上回っているラベル/フィールドに対して、1550でユーザーに提案が提示され得る。これらの提案は、少なくとも部分的に、永続データ構造内のデータに基づいてもよい。入力されたラベル/フィールドの値は、1555で永続データ構造に格納される。1560で、新しい画面および/または現在の画面に変更があり、そのようなフィールドが表示されなかったり、アプリケーションによって完了がブロックされたりした場合(例えばグレーアウトされ、ユーザーが入力できない)、プロセスは、その画面についてステップ1545に戻る。
【0189】
図12~
図15で実行されるプロセスステップは、本発明の実施形態に従って、
図12~
図15で説明したプロセス(複数可)の少なくとも一部を実行するようにプロセッサ(複数可)への命令をエンコードするコンピュータプログラムによって実行されてもよい。コンピュータプログラムは、非一時的なコンピュータ読み取り可能な媒体に格納されていてもよい。コンピュータ読み取り可能な媒体は、ハードディスクドライブ、フラッシュデバイス、RAM、テープ、および/またはデータを格納するために使用される他のそのような媒体または媒体の組み合わせであってもよいが、これらに限定されるものではない。コンピュータプログラムは、
図12~15に記載されたプロセスステップの全部または一部を実装するために、コンピューティングシステム(例えば、
図5のコンピューティングシステム500のプロセッサ(複数可)510)のプロセッサ(複数可)を制御するためのコード化された命令を含んでもよく、これはまた、コンピュータ読み取り可能な媒体に格納されてもよい。
【0190】
コンピュータプログラムは、ハードウェア、ソフトウェア、またはハイブリッド実装で実装され得る。コンピュータプログラムは、互いに動作可能な通信を行うモジュールで構成され得、情報または指示をディスプレイに送るように設計されている。コンピュータプログラムは、汎用コンピュータ、ASIC、またはいずれかの他の好適なデバイスで動作するように構成され得る。
【0191】
本発明のさまざまな実施形態のコンポーネントは、本明細書に一般的に記載され、図示されているように、さまざまな異なる構成で配置され、設計されてもよいことが、容易に理解されるであろう。したがって、添付の図に表されるような本発明の実施形態の詳細な説明は、特許請求されるような本発明の範囲を限定することを意図するものではなく、本発明の選択された実施形態を代表するものにすぎない。
【0192】
本明細書を通して記載された本発明の特色、構造、または特徴は、1または複数の実施形態では、いずれかの好適な方法で組み合わせられ得る。例えば、本明細書全体を通して「特定の実施形態」、「いくつかの実施形態」、または類似の言語を参照することは、実施形態に関連して記載された特定の特色、構造、または特徴が、本発明の少なくとも1つの実施形態に含まれていることを意味する。したがって、本明細書全体を通してフレーズ「特定の実施形態では」、「いくつかの実施形態では」、「他の実施形態では」、または類似の言語の出現は、必ずしも全ての実施形態の同じグループを指すものではなく、記載された特色、構造、または特徴は、1または複数の実施形態ではいずれかの好適な方法で組み合わせられ得る。
【0193】
本明細書全体を通して特色、利点、または類似の言語への参照は、本発明で実現され得る特色および利点の全てが、本発明のいずれかの単一の実施形態にあるべきであること、または本発明のいずれかの実施形態であることを意味するものではないことに留意すべきである。むしろ、特色および利点に言及する言語は、実施形態に関連して記載された特定の特色、利点、または特徴が、本発明の少なくとも1つの実施形態に含まれることを意味すると理解される。したがって、本明細書全体での特色および利点の議論、ならびに類似の言語は、同じ実施形態を参照することができるが、必ずしもその必要性はない。
【0194】
さらに、本発明の記載された特色、利点、および特徴は、1または複数の実施形態では、いずれかの好適な方法で組み合わせることができる。関連する技術の当業者は、本発明が、1または複数の特定の実施形態の特定の特徴または利点なしに実施され得ることを認識するであろう。他の例では、追加の特徴および利点は、本発明の全ての実施形態には存在しないかもしれないが特定の実施形態では認識され得る。
【0195】
本分野における通常の技術を有する者は、上述したような本発明を、異なる順序でのステップを用いて、および/または開示されているものとは異なる構成のハードウェア要素を用いて実施することができることを容易に理解するであろう。したがって、本発明は、これらの好ましい実施形態に基づいて説明されてきたが、本発明の精神および範囲内にとどまりながら、特定の変更、変形、および代替的な構成が明らかになることは、当業者には明らかであろう。したがって、本発明の範囲を決定するためには、添付の特許請求の範囲を参照すべきである。
【外国語明細書】