(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-04-22
(54)【発明の名称】コンピューティング環境におけるロボティックプロセスオートメーションによるタスクおよびプロセスマイニング
(51)【国際特許分類】
G06Q 50/10 20120101AFI20240415BHJP
【FI】
G06Q50/10
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021569975
(86)(22)【出願日】2021-10-27
(85)【翻訳文提出日】2022-02-10
(86)【国際出願番号】 US2021056865
(87)【国際公開番号】W WO2022220873
(87)【国際公開日】2022-10-20
(32)【優先日】2021-04-13
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】520262319
【氏名又は名称】ユーアイパス,インコーポレイテッド
【氏名又は名称原語表記】UiPath,Inc.
【住所又は居所原語表記】1 Vanderbilt Avenue, 60th Floor, New York, NY 10017, United States of America
(74)【代理人】
【識別番号】100180781
【氏名又は名称】安達 友和
(74)【代理人】
【識別番号】100182903
【氏名又は名称】福田 武慶
(72)【発明者】
【氏名】バレロ,グレゴリー
(72)【発明者】
【氏名】パーク,チャールズ
(72)【発明者】
【氏名】ダンナマンニ,プラシャンス
(57)【要約】
本明細書に開示されるのは、タスクマイニングエンジンによって実施される方法である。タスクマイニングエンジンは、メモリにプロセッサ実行可能コードとして格納される。プロセッサ実行可能コードは、メモリに通信可能に結合されたプロセッサによって実行される。本方法は、コンピューティング環境に関するユーザーアクティビティを特定する記録されたタスクを受信することと、記録された各ユーザータスクを処理およびスコアリングすることにより、記録されたユーザータスクをステップにクラスタ化することとを含む。本方法は、ユーザーアクティビティを模倣するために、ステップの類似した組み合わせまたは繰り返される組み合わせを特定するステップシーケンスを抽出することも含む。
【特許請求の範囲】
【請求項1】
メモリにプロセッサ実行可能コードとして格納されたタスクマイニングエンジンによって実施される方法であって、前記プロセッサ実行可能コードは、前記メモリに通信可能に結合された少なくとも1つのプロセッサによって実行され、前記方法は、
コンピューティング環境に関するユーザーアクティビティを特定する1または複数の記録されたタスクを前記タスクマイニングエンジンによって受信すること、
前記タスクマイニングエンジンによって、記録された各ユーザータスクを処理およびスコアリングすることにより、前記1または複数の記録されたユーザータスクを1または複数のステップにクラスタ化すること、および
前記タスクマイニングエンジンによって、前記ユーザーアクティビティを模倣するための前記1または複数のステップの類似した組み合わせまたは繰り返される組み合わせを特定する1または複数のステップシーケンスを抽出すること、
を含む、方法。
【請求項2】
実行されると自動的に前記ユーザーアクティビティを実行する前記1または複数のステップシーケンスに基づくオートメーションコードを前記タスクマイニングエンジンによって出力することを含む、請求項1に記載の方法。
【請求項3】
前記1または複数のステップの中から、前記ユーザーアクティビティの自動化を特定する1または複数のタスクシーケンスを前記タスクマイニングエンジンによって抽出することを含む、請求項1に記載の方法。
【請求項4】
前記1または複数の記録されたタスクは、前記タスクマイニングエンジンによって、前記ユーザーアクティビティが発生している間に、前記コンピューティング環境からリアルタイムで記録された非構造化データを含む、請求項1に記載の方法。
【請求項5】
前記1または複数の記録されたタスクのそれぞれは、前記ユーザーアクティビティ中にユーザーが行うアクションを含む、請求項1に記載の方法。
【請求項6】
前記タスクマイニングエンジンは、セントロイドに基づく、接続性に基づく、分散に基づく、密度に基づく、またはグリッドに基づくクラスタ化を利用して、前記1または複数の記録されたユーザータスクをクラスタ化する、請求項1に記載の方法。
【請求項7】
前記1または複数の記録されたユーザータスクをクラスタ化することは、ユーザーアクションの一致を見逃すことと、異種のユーザーアクションをグループ化することとの間でバランスをとる初期クラスタ化動作を含む、請求項1に記載の方法。
【請求項8】
前記1または複数のステップシーケンスを抽出することは、前記1または複数のステップの時間的な近さを決定するための時間的な要素を含む、請求項1に記載の方法。
【請求項9】
前記1または複数のステップシーケンスを抽出することは、シーケンシャルパターンマイニングを実装するシーケンス抽出アルゴリズムを実行することを含む、請求項1に記載の方法。
【請求項10】
前記タスクマイニングエンジンは、前記1または複数の記録されたタスクあるいは前記1または複数のステップシーケンスを分析して、別個の独立したユーザーアクションまたはサブタスクを決定する、請求項1に記載の方法。
【請求項11】
前記タスクマイニングエンジンは、前記1または複数の記録されたタスクあるいは前記1または複数のステップシーケンスの有用性を、ランダムな偶然よりも頻繁に発生することに基づいて決定する、請求項1に記載の方法。
【請求項12】
前記タスクマイニングエンジンは、前記1または複数の記録されたタスクあるいは前記1または複数のステップシーケンスについて、興味深さを特定してランクを決定する、請求項1に記載の方法。
【請求項13】
システムであって、
タスクマイニングエンジンのためのプロセッサ実行可能コードを格納するメモリと、
前記メモリに通信可能に結合され、前記プロセッサ実行可能コードを実行して前記システムに以下を実行させるように構成された少なくとも1つのプロセッサと、を含む、
コンピューティング環境に関するユーザーアクティビティを特定する1または複数の記録されたタスクを前記タスクマイニングエンジンによって受信すること、
前記タスクマイニングエンジンによって、記録された各ユーザータスクを処理およびスコアリングすることにより、1または複数の記録されたユーザータスクを1または複数のステップにクラスタ化すること、および
前記タスクマイニングエンジンによって、前記ユーザーアクティビティを模倣するための前記1または複数のステップの類似した組み合わせまたは繰り返される組み合わせを特定する1または複数のステップシーケンスを抽出すること、
システム。
【請求項14】
前記少なくとも1つのプロセッサは、前記プロセッサ実行可能コードを実行して、
実行されると自動的に前記ユーザーアクティビティを実行する前記1または複数のステップシーケンスに基づくオートメーションコードを前記タスクマイニングエンジンによって出力すること、
を前記システムに実行させるように構成される、
請求項13に記載のシステム。
【請求項15】
前記少なくとも1つのプロセッサは、前記プロセッサ実行可能コードを実行して、
前記1または複数のステップの中から、前記ユーザーアクティビティの自動化を特定する1または複数のタスクシーケンスを前記タスクマイニングエンジンによって抽出すること、
を前記システムに実行させるように構成される、
請求項13に記載のシステム。
【請求項16】
前記1または複数の記録されたタスクは、前記ユーザーアクティビティが発生している間に前記コンピューティング環境からリアルタイムで前記タスクマイニングエンジンによって記録された非構造化データを含む、請求項13に記載のシステム。
【請求項17】
前記1または複数の記録されたタスクのそれぞれは、前記ユーザーアクティビティ中にユーザーが行うアクションを含む、請求項13に記載のシステム。
【請求項18】
前記タスクマイニングエンジンは、セントロイドに基づく、接続性に基づく、分散に基づく、密度に基づく、またはグリッドに基づくクラスタ化を利用して、前記1または複数の記録されたユーザータスクをクラスタ化する、請求項13に記載のシステム。
【請求項19】
前記1または複数の記録されたユーザータスクをクラスタ化することは、ユーザーアクションの一致を見逃すことと、異種のユーザーアクションをグループ化することとの間でバランスをとる初期クラスタ化動作を含む、請求項13に記載のシステム。
【請求項20】
前記1または複数のステップシーケンスを抽出することは、前記1または複数のステップの時間的な近さを決定するための時間的な要素を含む、請求項13に記載のシステム。
【発明の詳細な説明】
【背景技術】
【0001】
(関連出願への相互参照)
本出願は、2021年4月13日に出願された米国出願第17/229,085号の利益を主張し、その内容は参照により本明細書に組み込まれる。
【0002】
本明細書の開示は、ロボティックプロセスオートメーション(RPA)の分野に関し、特に、コンピューティング環境全体におけるRPAによるタスクおよびプロセスマイニングに関する。
【0003】
従来の操作システムおよびソフトウェアシステムは、データマイニングおよびプロセスマイニングを提供し得る。データマイニングは、大規模なデータセットのパターンを発見するためのコンピュータサイエンスおよび統計技術を含む。プロセスマイニングは、イベントログに基づいて動作プロセスを分析するためのデータサイエンスおよびプロセス管理技術を含む。データマイニングおよびロセスマイニングの目的は、従来のオペレーションシステムおよびソフトウェアシステム内のイベントから知見および/またはアクションを得ることをサポートすることであり得る。
【0004】
しかし、現在、従来のオペレーティングおよびソフトウェアシステムの場合、個別かつ別個のオペレーションおよびソフトウェアシステムにわたってデータおよびプロセスマイニングための自動化エクスペリエンスを提供する方法が無い。そのため、データおよびプロセスマイニングと自動化を統合させる必要がある。
【発明の概要】
【0005】
1または複数の実施形態によると、タスクマイニングエンジンによって実施される方法が提供される。タスクマイニングエンジンは、プロセッサ実行可能コードとしてメモリ上に格納される。プロセッサ実行可能コードは、メモリに通信可能に結合された少なくとも1つのプロセッサによって実行される。本方法は、コンピューティング環境に関するユーザーアクティビティを特定する1または複数の記録されたタスクを受信することと、記録された各ユーザータスクを処理およびスコアリングすることにより、1または複数の記録されたユーザータスクを1または複数のステップにクラスタ化することとを含む。本方法は、ユーザーアクティビティを模倣するために、1または複数のステップの類似した組み合わせまたは繰り返される組み合わせを特定する1または複数のステップシーケンスを抽出することも含む。
【0006】
1または複数の実施形態によれば、上記のコンピューティングデバイスの実施形態は、方法、装置、システムおよび/またはコンピュータプログラム製品として実施され得る。
【0007】
(実施形態の詳細な説明)
より詳細な理解は、図中の類似の参照数字が類似の要素を示す、添付の図面との関連で例示的に与えられた以下の説明から得られ得る。
【図面の簡単な説明】
【0008】
【
図1】1または複数の実施形態によるロボティックプロセスオートメーション(RPA)の開発、設計、操作、および/または実行を示す環境を示す図である。
【0009】
【
図2】1または複数の実施形態によるコンピューティングシステムの説明図である。
【0010】
【
図3】1または複数の実施形態によるコンピューティング環境内で実行される方法を示すブロック図である。
【0011】
【
図4】1または複数の実施形態によるコンピューティング環境の説明図である。
【0012】
【
図5】1または複数の実施形態によるコンピューティング環境内で実行される方法を示すブロック図である。
【発明を実施するための形態】
【0013】
(詳細な説明)
1または複数の実施形態によるタスクマイニングエンジンが、本明細書で開示される。タスクマイニングエンジンは、ロボティックプロセスオートメーション(RPA)をコンピューティング環境に統合させるソフトウェアおよび/またはハードウェアを含む。より詳細には、タスクマイニングエンジンは、コンピューティング環境のコンピューティング/ソフトウェア/ハードウェアシステム全体において、RPAによるタスクおよびプロセスマイニングを実施する。
【0014】
一般的に、タスクマイニングエンジンは、人工知能を使用してユーザーアクティビティを監視、評価および自動化する。ユーザーアクティビティは、ユーザーが実行するステップ、アクションおよび/またはタスクとみなされ得る。これに関連して、人工知能は、どのコンピューティング/ソフトウェア/ハードウェアシステムが関与しているか、またどのように多くのコンピューティング/ソフトウェア/ハードウェアシステムが関与しているかに関わらず、ユーザーがコンピューティング環境内において行う個々のステップ(ならびに/またはその中のタスクおよびアクション)の開始および終了を特定および分析(例えば、監視および評価)しようとする。その後、これらのステップ/アクション/タスクはシーケンスによって自動化されて、ユーザーが監視および評価したアクティビティを実行するコード(例えば、ロボット/RPA/スクリプト)を生成する。
【0015】
より微細なレベルにおいては、監視は、ユーザーが行うステップ、アクションおよび/またはタスクを人工知能によってキャプチャしようとするデータフェーズまたは入力フェーズと考えられ得る。次に、人工知能は、データをリアルタイムで記録し、記録のデータセットを受信/取得し、またはこれらを組み合わせて利用して、このキャプチャを行う。
【0016】
評価は、ユーザーアクションの理解を達成するタスクマイニングエンジンのメインフェーズであり得る。ある部分で、このメインフェーズは、自動化が「理にかなっている」かどうかを決定するためのクラスタ化(例えば、タスク/アクションをステップに分類し、ステップをクラスタ化すること)を部分的に含む。すなわち、クラスタ化は、個人のタスクおよび/またはアクションを何らかの意味のある方法で共に分類して、ステップなどのクラスタを生成することを含み得る。別の部分で、このメインフェーズは、1または複数のシーケンスを決定するために、クラスタからの抽出(例えば、クラスタ内およびクラスタ間のシーケンス抽出)を含む。このようにして、人工知能は、何らかの意味のある方法で一緒にグループ化された個々のアクション/タスクを取り、意味のあるアクション/タスクのシーケンスを特定する。さらに、人工知能は、個々のステップを取り、意味のあるステップのシーケンスを特定する。
【0017】
自動化は、人工知能がコード(例えば、ロボット/RPA/スクリプト)を生成することを目的とした出力フェーズと考えられ得る。ロボット/RPA/スクリプトは、自動的かつ独立して動作することが可能な触知可能な結果である。
【0018】
タスクマイニングエンジンは、ハードウェアおよびソフトウェア(例えば、ハードウェアに必然的に根付いたプロセッサ実行可能コード)の組み合わせによって、コンピューティング環境に実施され得る。タスクマイニングエンジンは、実施されると、入力データ、ロボティックプロセスなどを操作するRPAマイニング技術のための特定の構成およびツーリングロボティックプロセスオートメーション方法を提供し得る。
【0019】
例示的な実施において、タスクマイニングエンジンによる特定の構成およびツーリングロボティックプロセスオートメーション方法(「方法(the method)」)の実施形態は、コンピューティング環境に関するユーザーアクティビティを特定する1または複数の記録されたタスクを受信することを含む。本方法は、タスクマイニングエンジンによって、記録された各ユーザータスクの処理およびスコアリングにより、1または複数の記録されたユーザータスクを1または複数のステップにクラスタ化することを含む。本方法は、ユーザーアクティビティを模倣するために、1もしくは複数のステップシーケンスおよび/または1もしくは複数のタスクシーケンスを抽出することを含む。本方法は、実行されると自動的にユーザーアクティビティを実行する1または複数のステップシーケンス(例えば、および/または1もしくは複数のタスクシーケンス)に基づいて、オートメーションコードを出力することをさらに含む。このように、タスクマイニングエンジンの特定の構成およびツーリングロボティックプロセスオートメーション方法は、コンピューティング環境に関連して、データ(例えば、キャプチャされたステップ、アクションおよび/またはタスク)、ロボティックプロセス、インターフェースコンポーネントおよび構成の多段階のデータ操作を含む。タスクマイニングエンジンの技術的効果および利点は、本明細書において詳述した統合を介してユーザーに自動化エクスペリエンスを提供することを含む。
【0020】
図1は、1または複数の実施形態によるロボティックプロセスオートメーション(RPA)の開発、設計、操作および/または実行を示す環境100(例えば、コンピューティング環境)を示す図である。環境100は、1または複数のコンポーネントを含む設計およびデプロイメントコンピューティングプラットフォームであり得る。環境100の1または複数のコンポーネントのそれぞれについて単一のブロックが示されているが、その単一のブロックは、そのコンポーネントの1または複数を表すものである点に留意されたい。
【0021】
示されるように、環境100は、タスクマイニングエンジン111をさらに含むデザイナ110を含み得る。タスクマイニングエンジン111は、1もしくは複数のドライバ128および/または内部エンジン129を使用して、1もしくは複数のアクティビティ124を実行し、および/または1もしくは複数のユーザーインターフェース(UI)オートメーション126を提供する1または複数のロボット(例えば、ロボット122)を生成するスタジオコンポーネントまたはモジュール120を含み得る。また、ロボット122は、デザイナ110内の他のドライバコンポーネント131およびモジュール132と同様に係合し得る。さらに、環境100は、コンダクタ140およびエグゼキュータ170を含み得、コンダクタ140およびエグゼキュータ170は、ロボット122がエグゼキュータ170のアンアテンディッドロボット174およびアテンディッドロボット178として環境100に提供され得るように、ロボット122をダウンロード/取得/送信し得る。
【0022】
デザイナ110、コンダクタ140およびエグゼキュータ170は、ハードウェア、ソフトウェアまたはこれらの組み合わせを含む、コンピューティングデバイス、コンピューティング装置および/またはコンピューティングシステムを表す。デザイナ110、コンダクタ140およびエグゼキュータ170ならびにその上の任意のソフトウェア(例えば、タスクマイニングエンジン111)は、ユーザーまたはオペレータとインタラクションして入力を受信し、出力を提供するように構成される。一例において、エグゼキュータ170は、モバイルコンピューティングおよび/もしくはモバイルデバイス環境であり得るかまたはこれらを実施し得る。
【0023】
1または複数の実施形態によると、デザイナ110は、スタジオプラットフォーム、開発プラットフォーム、および/またはオンラインプラットフォームと呼ばれ得る。デザイナ110は、1または複数のエンジン(例えば、タスクマイニングエンジン111)、開発環境(例えば、スタジオ120)などを含み得、ロボット(例えば、1または複数のロボット122、アテンディッドロボット174およびアテンディッドロボット178)が1または複数のワークフローを実行または自動化する(例えば、1もしくは複数のアクティビティ124および/または1もしくは複数のUI自動化126を提供する)ためのコード、命令、コマンドなどを生成するように構成され得る。
【0024】
タスクマイニングエンジン111は一般的には、本明細書に記載される特定の構成およびツーリングロボティックプロセスオートメーション方法などのロボティックプロセスオートメーションを実装するソフトウェアおよび/またはハードウェアである。これに関連して、タスクマイニングエンジン111は、環境100内でのタスクマイニングエンジン111のスケーラビリティおよびポータビリティを説明するために、点線のボックスとして詳述される。例えば、タスクマイニングエンジンは、タスクマイニングエンジン181および191によって示されるように、環境100全体で別々のインスタンスとして実施され得る。
【0025】
一般的に、タスクマイニングエンジン111は、機械学習および/または人工知能アルゴリズムを内部において実施する。機械学習および/または人工知能アルゴリズムは、データ(例えば、ユーザーアクション)を使用しながらハードウェアに対して動作して、機械を訓練し、モデルを構築し、結果を予測する。1または複数の実施形態によると、データは、継続的な記録データ、現在収集されたデータ、履歴データ、または他のデータであり得る。機械は、ハードウェアに関連付けられたコントローラとして動作し、収集されたデータの分析と相関関係を含むように訓練する。モデルは、物理的なハードウェアおよび/またはソフトウェアのモデリング、アルゴリズムのモデリングなどによってデータ上に構築され、その結果、データ(またはそのサブセット)が表現され、処理される。いくつかの態様では、モデルの構築は、機械による自己訓練動作の一部である。モデルは、ハードウェアおよび/またはデータの操作をモデル化し、ハードウェアによって達成され得る結果を予測するように構成され得る。したがって、タスクマイニングエンジン111が、データを使用しながらハードウェアに対して動作して、機械を訓練し、モデルを構築し、そして結果440を予測するために、機械学習および/または内部の人工知能アルゴリズムは、ニューラルネットワークを含み得る。一般的に、ニューラルネットワークは、ニューロンのネットワークまたは回路であり、現代的な意味では、人工ニューロンまたはノードまたはセルで構成される人工ニューラルネットワーク(ANN)である。
【0026】
例えば、ANNは、処理要素と要素パラメータとの間の接続によって決定される複雑なグローバル挙動を示し得る処理要素のネットワーク(人工ニューロン)を含む。ニューロンのネットワークまたは回路のこれらの接続は、重みとしてモデル化される。正の重みは興奮性接続を反映する一方、負の値は抑制性接続を意味する。入力は重みで修正され、線形結合を用いて合計される。活性化関数は、出力の振幅を制御し得る。例えば、出力の許容範囲は、通常は0と1の間であるかまたは-1~1であり得る。ほとんどの場合、ANNは、ネットワークを流れる外部または内部の情報に基づいてその構造を変化させる適応システムである。
【0027】
より実用的な言葉で言えば、ニューラルネットワークは、入力と出力の間の複雑な関係をモデル化したり、またはデータのパターンを見つけたりすることができる非線形統計データモデリングまたは意思決定ツールである。したがって、ANNは、データセットを用いて学習させながら、予測モデリングおよび適応制御アプリケーションに使用され得る。経験から生じる自己学習はANN内で発生し得、複雑であり一見無関係に見える一連の情報から結論を導き出し得ることに留意されたい。人工ニューラルネットワークモデルの有用性は、それらが観察から関数を推測するために利用され得、またそれを利用することができる事実にある。監視なしニューラルネットワークは、入力分布、より最近では、観測されたデータの分布関数を暗黙的に学習することができる深層学習アルゴリズムの顕著な特徴をキャプチャした入力の表現を学習するためにも使用され得る、ニューラルネットワークでの学習は、データ(例えば、ユーザー行動)または結果としてのタスク/ステップ/シーケンス/ワークフローが複雑、であり手作業でそのような関数を設計することが現実的でないような用途において特に有効である。
【0028】
ニューラルネットワークは、さまざまな分野において使用され得る。したがって、タスクマイニングエンジン111のために、機械学習および/または内部の人工知能アルゴリズムは、適用先のタスクに従って概して分割されるニューラルネットワークを含み得る。これらの区分は、以下のカテゴリに当てはまる傾向がある:時系列予測およびモデリングを含む回帰分析(例えば、関数近似)、パターンおよびシーケンス認識を含む分類、新規性検出および逐次的な意思決定、フィルタリングを含むデータ処理、クラスタ化、ブラインド信号分離ならびに圧縮。例えば、ANNの応用分野は、非線形システムの特定および制御(車両制御、プロセス制御)、ゲームプレーおよび意思決定(バックギャモン、チェス、レース)、パターン認識(レーダーシステム、顔識別、物体認識)、シーケンス認識(ジェスチャー、音声、手書きテキスト認識)、医療診断および治療、金融アプリケーション、データマイニング(またはデータベースにおける知識発見、「KDD」)、視覚化および電子メールスパムフィルタリングを含む。
【0029】
1または複数の実施形態によると、ニューラルネットワークは、長短期記憶ニューラルネットワークアーキテクチャ、畳み込みニューラルネットワーク(CNN)アーキテクチャまたは他の類似のものを実施し得る。ニューラルネットワークは、層の数、接続の数(例えば、エンコーダ/デコーダ接続)、正則化技術(例えば、ドロップアウト)および最適化機能に関して構成可能であり得る。
【0030】
長短期記憶ニューラルネットワークアーキテクチャは、フィードバック接続を含み、単一のデータポイント(例えば、画像またはスクリーンショットなど)をデータシーケンス全体(例えば、タイピング、会話および/またはアプリケーションの切り替えなど)と共に処理し得る。長短期記憶ニューラルネットワークアーキテクチャのユニットは、セル、入力ゲート、出力ゲートおよび忘却ゲートによって構成され得、セルは任意の時間間隔で値を記憶し、ゲートはセルへの情報の出入りを制御する。
【0031】
CNNアーキテクチャは、1つの層内の各ニューロンが次の層内のすべてのニューロンへ接続された、翻訳不変の特性を持つシェアードウェイトアーキテクチャである。CNNアーキテクチャの正則化技術は、データの階層的なパターンを利用し、より小さく単純なパターンを用いてより複雑なパターンを組み立て得る。ニューラルネットワークがCNNアーキテクチャを実施している場合、アーキテクチャの他の構成可能な態様は、各ステージにおける複数のフィルタ、カーネルサイズ、層ごとの複数のカーネルを含み得る。
【0032】
さらに、1または複数の実施形態によると、タスクマイニングエンジン111は、スタジオ120内でコードを自動的に実施し、ロボット122を設計するフレームワーク/メカニズム(例えば、環境100)の一部であり得る。また、タスクマイニングエンジン111は、開発者および/またはオーケストレータ(例えば、ユーザーまたはオペレータ)がロボット122を(例えばスタジオ120を介して)コード化、プログラム化および/または設計することを可能にし得る。実施形態において、スタジオ120は、サードパーティアプリケーション、管理情報技術(IT)タスクおよび/またはビジネスITプロセスの自動化とともに、アプリケーション統合を提供し得る。
【0033】
ロボット122(ならびにアンアテンディッドロボット174およびアテンディッドロボット178)は、アプリケーション、アプレット、スクリプトなどであり得、(例えば、1もしくは複数のアクティビティ124によって部分的に表されかつ/または1もしくは複数のUIオートメーション126を提供する)1または複数のワークフローを実行および/または自動化し得る。ワークフローは、限定されないが、タスクシーケンス、フローチャート、有限状態機会(FSM)、グローバル例外ハンドラ、透過的なUIなどを、ユーザーが実行する任意のステップ、アクションおよび/またはタスクとともに含み得る。タスクシーケンスは、1または複数のアプリケーションまたはウィンドウ間の線形タスクを処理するための線形プロセスであり得る。フローチャートは、複雑なビジネスロジックを扱うように構成され得、複数の分岐ロジックオペレータを介して、より多様な方法で意思決定の統合およびアクティビティの接続を可能にする。FSMは、大規模なワークフロー用に構成され得る。FSMは、条件、遷移、アクティビティなどによってトリガされ得る有限数の状態をそれらの実行中に使用し得る。グローバル例外ハンドラは、プロセスのデバッグプロセスなどのために、実行エラーが発生したときのワークフローの動作を判断するように構成され得る。透過的なUIは、基礎となるオペレーティングシステム(OS)またはハードウェアに対するソフトウェア操作であり得る。1または複数ワークフローによって達成され得る操作の非限定的な例としては、ログインの実行、フォームへの入力、情報技術(IT)管理などのうちの1または複数であり得る。UIオートメーションのためのワークフローを実行するために、ロボット122は、アプリケーションのアクセスまたはアプリケーションの開発に関係なく、ボタン、チェックボックス、テキストフィールド、ラベルなどの特定の画面要素を一意に特定する必要があり得る。アプリケーションアクセスの例としては、ローカル、仮想、リモート、クラウド、Citrix(登録商標)、VMWare(登録商標)、VNC(登録商標)、Windows(登録商標)リモートデスクトップ、仮想デスクトップインフラストラクチャ(VDI)などがあり得る。アプリケーション開発の例としては、win32、Java、Flash、ハイパーテキストマークアップ言語(HTML)、HTML5、拡張可能なマークアップ言語(XML)、JavaScript、C#、C++、Silverlightなどであり得る。
【0034】
1または複数の実施形態によると、開発時に、ロボット122は、デザイナ110(例えば、スタジオ120)において/デザイナ110(例えば、スタジオ120)により作製され得る。さらに、展開時には、ロボット122は、コンダクタ140(例えば、タスクマイニングエンジン181内)において/コンダクタ140(例えば、タスクマイニングエンジン181内)により、例えば管理され得、制御され得、構成され得る。また、展開時に、ロボット122は、エグゼキュータ170内で実行され得る。一例では、ユーザーまたはオペレータによって、ユーザー入力(例えば、ディスプレイ上の選択)がデザイナ110に提出され得る。デザイナ110がロボット122に提供し得る選択から、ロボット122は、(例えば、ユーザーまたはオペレータによって選択された)ビジュアルディスプレイの領域(複数可)の代表データを決定し得る。RPAの一環として、コンピュータビジョン(CV)動作および/または機械学習(ML)モデルに関連して、(例えば、四角、長方形、円、多角形、自由形などの)多次元の形状をUIロボットの開発およびランタイムに利用され得る。
【0035】
1または複数の実施形態によると、UIオートメーション126は、内部のドライバ128を使用してロボット122によって実行され得、タスクマイニングエンジン111は、モジュール130(例えば、CVアクティビティモジュールまたはエンジン)を使用してアクティビティを実行し得る。ドライバコンポーネント132は、UIの要素を取得するために、ロボット122によるUIオートメーションのために利用され得る。ドライバコンポーネント132は、限定されないが、OSドライバ、ブラウザドライバ、仮想マシンドライバ、エンタープライズドライバなどを含み得る。特定の構成では、モジュール130は、UIオートメーションのために使用されるドライバであり得る。さらに、ロボット122によるこれらのアクションのいずれも、クライアント上に(例えば、アエグゼキュータ170のアンアテンディッドロボット174およびアテンディッドロボット178として)実装され得る。
【0036】
コンダクタ140は、メインフレーム、ウェブ、仮想マシン、リモートマシン、仮想デスクトップ、エンタープライズプラットフォーム、オンラインプラットフォーム、デスクトップアプリ(複数可)、ブラウザ、またはそのようなクライアント、アプリケーション、もしくはプログラムにおいてワークフローを実行または監視するようにロボット122、174、および178またはエグゼキュータ170に指示または命令し得る。コンダクタ140は、コンピューティングプラットフォーム(例えば、環境100)を自動化するために1または複数のロボット(例えば、ロボット122、174および178)を指示または命令するための中央または半中央点として機能し得る。
【0037】
1または複数の実施形態によると、コンダクタ140は、プロビジョニング、展開、構成、キューイング、監視、ロギング、および/または相互接続性を提供するように構成され得る。プロビジョニングは、1または複数のロボット、エグゼキュータ170、およびコンダクタ14との間の接続または通信の作製および維持を含み得る。展開は、割り当てられたロボットへのパッケージバージョンの(実行のための)配信を保証することを含み得る。構成は、ロボット環境およびプロセス構成の維持および配信を含み得る。キューイングは、キューおよびキュー項目の管理を提供することを含み得る。監視は、ロボットの特定データを追跡し、ユーザーの権限を維持することを含み得る。ロギングは、データベース(例えば、SQLデータベース)および/または別のストレージメカニズム(例えば、大規模なデータセットを格納し、迅速にクエリを実行する能力を提供するElasticSearch(登録商標)へのログの保存およびインデックス作成を含み得る。コンダクタ140は、サードパーティのソリューションおよび/またはアプリケーションのための通信の集中点として操作することにより、相互接続性を提供し得る。
【0038】
1または複数の実施形態によると、1または複数のロボットおよびエグゼキュータ170は、アンアテンディッドロボット174および/またはアテンディッドロボット178として構成され得る。アンアテンディッドロボット操作の場合、アンアテンディッドロボット174による自動化は、第三者によるような入力または制御なしに実行され得る。アテンディッドロボット操作の場合、アテンディッドロボット178による自動化は、第三者のコンポーネントからなどの入力、コマンド、命令、ガイダンスなどを受信することによって実行され得る。アンアテンディッドロボット174および/またはアテンディッドロボット178は、モバイルコンピューティング環境またはモバイルデバイス環境上で実行または実行し得る。
【0039】
1または複数の実施形態によると、1または複数のロボット122およびエグゼキュータ170は、デザイナ110で構築されたワークフローを実行する実行エージェントとして構成され得る。UIまたはソフトウェアの自動化のためのロボット(複数可)の商業的な例としては、UiPath Robots(商標)がある。いくつかの実施形態では、1または複数のロボット122およびエグゼキュータ170は、Microsoft Windows(登録商標) Service Control Manager(SCM)管理サービスをデフォルトでインストールし得る。その結果、そのようなロボット122は、ローカルシステムアカウントの下でインタラクティブなWindows(登録商標)セッションを開くことができ、Windows(登録商標)サービスの権利を持ち得る。
【0040】
1または複数の実施形態によると、1または複数のロボット122およびエグゼキュータ170は、ユーザーモードでインストールされ得る。例えば、1または複数のロボット122は、所定のロボットが設置されているユーザーと同じ権利を持ち得る。この特徴は、高密度(HD)環境などにおいて最大のパフォーマンスで各マシンを完全に利用できるようにする高密度(HD)ロボットにおいても使用可能であり得る。
【0041】
1または複数の実施形態によると、1または複数のロボット122およびエグゼキュータ170は、それぞれが特定の自動化タスクまたはアクティビティに専用に用いられるいくつかのコンポーネントに分割、分散などされ得る。ロボットコンポーネントには、SCM管理ロボットサービス、ユーザーモードロボットサービス、エグゼキュータ、エージェント、コマンドラインなどが含まれ得る。SCM管理ロボットサービスは、Windows(登録商標)セッションを管理または監視し得、コンダクタ140と実行ホスト(すなわち、1または複数のロボットが実行されるコンピューティングシステム)との間のプロキシとして動作し得る。これらのサービスは、1または複数のロボットおよびエグゼキュータ170のための資格情報を信頼し、管理し得る。ユーザーモードロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ140と実行ホストとの間のプロキシとして機能し得る。ユーザーモードロボットサービスは、信頼され得、ロボットの資格情報を管理し得る。SCM管理ロボットサービスがインストールされていない場合、Windows(登録商標)アプリケーションが自動的に起動され得る。一例では、エグゼキュータ170は、Windows(登録商標)セッションの下で与えられたジョブを実行し得(例えば、それらが本明細書に記載されるワークフローを実行し得る)、モニタ毎のドットパーインチ(DPI)設定を認識し得る。エージェントは、システムトレイウィンドウに利用可能なジョブを表示するWindows(登録商標) Presentation Foundation(WPF)アプリケーションであり得る。エージェントはサービスのクライアントとなり得る。エージェントは、ジョブの開始または停止、設定の変更を依頼し得る。コマンドラインはサービスのクライアントとなり得る。コマンドラインは、ジョブの開始を要求し、その出力を待つことができるコンソールアプリケーションである。
【0042】
1または複数の実施形態によると、1もしくは複数のロボット122および/またはエグゼキュータ170のコンポーネントが分割される構成は、開発者、サポートユーザー、およびコンピューティングシステムが、各コンポーネントによる実行、特定および追跡実行をより容易に行うのに役立つ。この方法では、エグゼキュータ170とサービスに異なるファイアウォールルールを設定するなど、コンポーネントごとに特別な動作を構成し得る。エグゼキュータ170は、いくつかの実施形態では、モニタごとのDPI設定を認識し得る。その結果、ワークフローは、ワークフローが作成されたコンピューティングシステムの構成に関係なく、いずれかのDPIで実行し得る。また、デザイナ110からのプロジェクトは、ブラウザのズームレベルに依存しないようにし得る。DPIを認識していないまたは意図的に認識していないとマークされているアプリケーションの場合、いくつかの実施形態ではDPIは無効にされ得る。
【0043】
次に
図2に目を向けると、1または複数の実施形態によるコンピューティングシステム200が示される。コンピューティングシステム200は、ハードウェア、ソフトウェアまたはそれらの組み合わせ(例えば、
図1のタスクマイニングエンジン111をサポートするハードウェア)を含む、任意のコンピューティングデバイス、コンピューティング装置および/またはコンピューティング環境の代表であり得る。さらに、開示されたコンピューティングシステム200の実施形態は、統合の装置、システム、方法、および/またはコンピュータプログラム製品を任意の可能な技術的詳細レベルにおいて含み得る。
【0044】
コンピューティングシステム200は、1または複数の中央処理装置(CPU(複数可))を有するデバイス205(例えば、
図1のデザイナ110、コンダクタ140、およびエグゼキュータ170)を有し、これらは、集合的または一般的にプロセッサ210と呼ばれる。プロセッサ210は、処理回路とも呼ばれ、システムバス215を介して、システムメモリ220および様々な他のコンポーネントに結合される。コンピューティングシステム200および/またはデバイス205は、オンラインプラットフォーム、サーバー、組み込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングデバイス、クラウドコンピューティングデバイス、モバイルデバイス、スマートフォン、固定型モバイルデバイス、スマートディスプレイ、ウェアラブルコンピュータなどとして実行するように適合または構成され得る。
【0045】
プロセッサ210は、中央処理ユニット(CPU)、特定用途集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックス処理ユニット(GPU)、コントローラ、マルチコア処理ユニット、3次元プロセッサ、量子コンピューティングデバイス、またはそれらの任意の組み合わせを含む、任意のタイプの一般的または特定用途プロセッサであり得る。プロセッサ210は、複数の処理コアを有してもよく、コアの少なくとも一部は、特定の機能を実行するように構成され得る。また、マルチパラレル処理がそこに構成され得る。さらに、プロセッサ210は、生物学的ニューロンを模倣する処理要素を含むニューロモーフィック回路であり得る。
【0046】
(1または複数通信メカニズムを表す)バス215は、プロセッサ210、システムメモリ220、ならびにアダプタ225、226、および227などの様々な他のコンポーネントに情報またはデータを通信するために構成される。
【0047】
システムメモリ220は、(非一時的な)コンピュータ読み取り可能なストレージ媒体の一例であり、ソフトウェア230は、
図3および
図5を参照して本明細書で説明したような、デバイス205を動作させるためにプロセッサ210が実行するためのソフトウェアコンポーネント、モジュール、エンジン、命令などとして格納され得る。システムメモリ220は、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、内部または外部フラッシュメモリ、エンベッディッドスタティック-RAM(SRAM:Embedded Static-RAM)、ソリッドステートメモリ、キャッシュ、磁気ディスクもしくは光ディスクなどの静的ストレージ、または任意の他のタイプの揮発性または不揮発性メモリの任意の組み合わせを含み得る。非一時的な読み取り可能なストレージ媒体は、プロセッサ210によってアクセス可能な任意の媒体であってもよく、揮発性媒体、不揮発性媒体などを含み得る。例えば、ROMは、システムバス215に結合され、デバイス205の特定の基本機能を制御するBIOS(Basic Input/Output System)を含み得、RAMは、プロセッサ210が使用するためにシステムバス215に結合された読み書き可能なメモリである。非一時的なコンピュータ読み取り可能なストレージ媒体は、着脱可能、着脱不可能などの任意の媒体を含み得る。
【0048】
図1に関連して、
図2のソフトウェア230は、メモリ220およびプロセッサ210がロボット122を論理的に設計/構成/提供することができるように、インターフェースエンジン111およびその中のコンポーネントを示し得、ロボット122は、さらに1もしくは複数のアクティビティ124を実行し、および/または1もしくは複数のドライバコンポーネント128および/または内部エンジン129を使用して1または複数ユーザーインターフェース(UI)オートメーション126を提供する。
図2のソフトウェア230は、コンピューティングシステム200のためのデバイス205用のオペレーティングシステムも示し得る。
【0049】
1または複数の実施形態によると、ソフトウェア230は、ハードウェア、ソフトウェアまたはハイブリッド実施に構成され得る。ソフトウェア230は、互いに操作可能な通信を行い、情報または指示を渡すためのモジュールで構成され得る。ソフトウェア230は、コンピューティングシステム200が追加の機能を含むことができるように、アプリケーション固有の処理またはその派生物を実行するためのカスタムモジュールをさらに含み得る。例えば、1または複数の実施形態によると、ソフトウェア230は、操作231、232、233、および234を可能にするためにプロセッサ210によって実行または処理される情報、命令、コマンドまたはデータを格納するように構成され得る。
【0050】
例えば、
図2のソフトウェア230として実装された
図1のタスクマイニングエンジン111は、コンピューティングシステム200に特定の構成およびツーリングロボティックプロセスオートメーション方法を提供することができ、その結果、コンピューティングシステム200は、コンピューティング環境に関するユーザーアクティビティを特定する1または複数の記録されたタスクを受信し(231)、各記録されたユーザータスクを処理およびスコアリングすることによって、1または複数の記録されたユーザータスクを1または複数のステップにクラスタ化し(232)、ユーザーアクティビティを模倣するために1もしくは複数のステップシーケンスおよび/または1もしくは複数のタスクシーケンスを抽出し(233)、実行されると自動的にユーザーアクティビティを実行する1または複数のステップシーケンス(例えば、および/または1もしくは複数のタスクシーケンス)に基づいてオートメーションコードを出力する(234)し得る。
【0051】
さらに、ソフトウェア210のモジュールは、カスタムの超大規模集積(VLSI)回路またはゲートアレイ、ロジックチップ、トランジスタなどの既製の半導体、またはその他のディスクリートコンポーネントを含むハードウェア回路として、プログラム可能なハードウェアデバイス(例えば、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイス)、グラフィックスプロセッシングユニットなどに実装され得る。ソフトウェア210のモジュールは、様々なタイプのプロセッサにより実行されるためのソフトウェアに少なくとも部分的に実装され得る。1または複数の実施形態によると、特定された実行可能コードのユニットは、例えば、オブジェクト、プロシージャ、ルーチン、サブルーチン、または関数として編成されていてもよいコンピュータ命令の1または複数の物理的または論理的なブロックを含み得る。特定されたモジュールの実行可能は、論理的に結合されるとモジュールを構成するように、異なる位置に共に配置されたり、格納されたりする。実行可能なコードのモジュールは、単一の命令、1または複数のデータ構造、1または複数のデータセット、複数の命令などであり、複数の異なるコードセグメント、異なるプログラム間、複数のメモリデバイス間などに分散され得る。動作データまたは機能データは、ソフトウェア210のモジュール内で特定および図示され得、任意の適切なタイプのデータ構造内において適切な形態で具現化され、組織化され得る。
【0052】
図2のアダプタ225、226、および227に関して、デバイス205は特に、入力/出力(I/O)アダプタ225、デバイスアダプタ226および通信アダプタ227を含み得る。1または複数の実施形態によると、I/Oアダプタ 225は、周波数分割多元接続(FDMA)、シングルキャリアFDMA(SC-FDMA)、時分割多元接続(TDMA)、符号分割多元接続(CDMA)、直交周波数分割多重方式(OFDM)、直交周波数分割多元接続(OFDMA)、移動体用グローバルシステム(GSM:Global System for Mobile)通信、汎用パケット無線サービス(GPRS:General Packet Radio Service)、ユニバーサル移動体通信システム(UMTS:Universal Mobile Telecommunications System)、cdma2000、広帯域CDMA(W-CDMA:Wideband CDMA)、高速ダウンリンクパケットアクセス(HSDPA:High-Speed Downlink Packet Access)、高速アップリンクパケットアクセス(HSUPA:High-Speed Uplink Packet Access)、高速パケットアクセス(HSPA:High-Speed Packet Access)、ロングタームエボリューション(LTE:Long Term Evolution)、LTEアドバンスト(LTE-A:LTE Advanced)、802.11x、Wi-Fi、Zigbee、超広帯域無線(UWB:Ultra-WideBand)、802.16x、802.15、Home Node-B(HnB)、Bluetooth、無線IDタグ(RFID:Radio Frequency Identification)、IrDA(Infrared Data Association)、近距離無線通信(NFC:Near-Field Communications)、第5世代(5G)、New Radio(NR)、または、通信用のいずれかの他の無線もしくは有線のデバイス/トランシーバに照らして、スモールコンピュータシステムインターフェース(SCSI:small computer system interface)として構成され得る。デバイスアダプタ226は、ディスプレイ241、キーボード242、制御デバイス243など(例えば、カメラ、スピーカなど)の入/出力デバイスをシステムバス215に相互接続する。通信アダプタ226は、システムバス215を、外部ネットワークであり得るネットワーク250と相互接続し、デバイス205が他のそのような装置(例えば、ローカルコンピューティングデバイス255、さらにはネットワーク260を介したリモートコンピューティングシステム256など)とデータを通信できるようにする。一実施形態では、アダプタ225、226、および227は、中間バスブリッジを介してシステムバス215に接続される1または複数のI/Oバスに接続され得る。ハードディスクコントローラ、ネットワークアダプタ、およびグラフィックアダプタなどの周辺機器を接続するのに適したI/Oバスは、典型的には、ペリフェラルコンポーネントインターコネクト(PCI:Peripheral Component Interconnect)などの共通プロトコルを含む。
【0053】
ディスプレイ241の例は、限定されないが、プラズマ、液晶ディスプレイ(LCD)、発光ダイオード(LED)、電界放出ディスプレイ(FED)、有機発光ダイオード(OLED)ディスプレイ、フレキシブルOLEDディスプレイ、フレキシブル基板ディスプレイ、投影ディスプレイ、4Kディスプレイ、高解像度(HD)ディスプレイ、Retina(著作権)ディスプレイ、面内スイッチング(IPS)ディスプレイなどを含み得る。ディスプレイ241は、入力/出力(I/O)のために、当業者に理解されるように、抵抗性、静電容量性、表面音響波(SAW)静電容量性、赤外線、光学イメージング、分散信号技術、音響パルス認識、フラストレート全内部反射などを用いたタッチ、3次元(3D)タッチ、マルチ入力タッチ、またはマルチタッチディスプレイとして構成され得る。
【0054】
キーボード242と、コンピュータマウス、タッチパッド、タッチスクリーン、キーパッドなどの制御デバイス243とは、デバイス205への入力のために、システムバス215にさらに結合され得る。さらに、1または複数の入力は、それと通信している別のコンピューティングシステム(例えば、ローカルコンピューティングデバイス255および/またはリモートコンピューティングシステム256)を介して、リモートでコンピューティングシステム200に提供されてもよく、あるいはデバイス205が自律的に動作してもよい。
【0055】
1または複数の実施形態によると、ソフトウェア210に関するデバイス205の機能は、タスクマイニングエンジン290の別個のインスタンスによって表されるように、ローカルコンピューティングデバイス255および/またはリモートコンピューティングシステム256に実装してもよい。
【0056】
次に
図3に目を向けると、1または複数の実施形態によるコンピューティング環境(例えば、
図1の環境100)内で実行される方法300を示すブロック図である。より詳細には、方法300は、タスクマイニングエンジン191による、環境100全体のRPAによるタスクおよびプロセスマイニングの例示的な実装である。
【0057】
プロセスフロー300は、ブロック310から始まり、タスクマイニングエンジン191は、環境100に関するユーザーアクティビティを特定する1または複数の記録されたタスクを受信/監視する(例えば、データをリアルタイムで記録するか、記録のデータセットを受信/取得するか、またはそれらの組み合わせを利用する)。1または複数の記録されたタスクは、ユーザーアクティビティの間にユーザーがエグゼキュータ170で取るアクションを含み得る。1または複数の記録されたタスクはまた、ユーザーアクティビティが発生している間に(例えば、環境100からタスクマイニングエンジン191によって)リアルタイムで記録された非構造化データを含み得る。1または複数の記録されたタスクは、データベースまたはリポジトリなど、エグゼキュータ170に対する外部ソースから受信され得る。1または複数の実施形態によると、タスクマイニングエンジン191は、アンアテンディッドロボット174を利用して、1または複数のアクティビティ124(例えば、ワークフロー)を、ステップ、アクション、および/またはタスクとしてキャプチャし得る。
【0058】
ブロック330において、タスクマイニングエンジン191は、記録された1または複数のユーザータスクを1または複数のステップにクラスタ化する。実施形態では、タスクマイニングエンジン191は、例えば、セントロイドに基づくまたはk平均法クラスタ化アルゴリズムを利用して、1または複数の記録されたユーザータスクをクラスタ化するなどして、記録された各ユーザータスクを処理およびスコアリングし得る。一般的に、k平均法クラスタ化アルゴリズムは、各観測値が直近の平均(例えば、そのクラスタのプロトタイプとして機能するクラスタセントロイド)を有するクラスタに属するように、n個の観測値をk個のクラスタに分割するベクトル量子化方法であることを含み得る。接続性に基づくクラスタ化(例えば、階層型クラスタ化)、分布に基づくクラスタ化、密度に基づくクラスタ化およびグリッドに基づくクラスタ化など、1または複数の他のクラスタ化アルゴリズムは、K平均法クラスタ化アルゴリズムの代わりに、またはK平均法クラスタ化アルゴリズムと組み合わせて使用され得る。
【0059】
ブロック350において、タスクマイニングエンジン191は、ユーザーアクティビティを模倣するために、1または複数のステップシーケンスを抽出する。1または複数のステップシーケンスは、1もしくは複数のステップの類似の組み合わせまたは繰り返される組み合わせを特定する。タスクマイニングエンジン191は、1または複数のタスクシーケンスも抽出し得る。1または複数のタスクシーケンスは、1または複数のステップ内からユーザーアクティビティの自動化を特定する。
【0060】
1または複数の実施形態によると、ブロック330および350の動作を通じて、タスクマイニングエンジン191は、自動化が「理にかなっている」かどうかを決定するためにクラスタ化(例えば、タスク/アクションをステップに分類し、ステップをクラスタ化する)することによって、1または複数のシーケンスを決定するためにクラスタから抽出する(例えば、クラスタ内およびクラスタ間のシーケンス抽出)ことによって、ユーザーアクションを理解するという技術的効果および利点を提供する。このようにして、タスクマイニング191は、何らかの意味のある方法で共にグループ化された個々のアクション/タスクを取り、意味のあるアクション/タスクのシーケンスを特定する。さらに、タスクマイニング191は、個々のステップを取り得、意味のあるステップのシーケンスを特定する。
【0061】
ブロック370において、タスクマイニングエンジン191は、実行されると自動的にユーザーアクティビティを実行する1または複数のステップシーケンスに基づくオートメーションコードを出力する。また、オートメーションコードは、1または複数のタスクシーケンスに基づき得る。1または複数の実施形態によると、オートメーションコードは、アンアテンディッドロボット174(例えば、または任意のロボット122)の別のインスタンスとして実装され、自動的にかつ独立して動作し得る。このように、タスクマイニングエンジン191は、オートメーションコードを介して自動化エクスペリエンスをユーザーに提供する。
【0062】
図4は、1または複数の実施形態によるロボティックプロセスオートメーション(RPA)の開発、設計、操作、および/または実行を示す環境400(例えば、コンピューティング環境)を示す図である。一般的に、環境400は、データが記録され、クラスタ化され、マイニングされて、出力に離散的なタスクを生成するタスクマイニングプロジェクトを示す。簡潔で説明を容易にするために、
図1~2の構成要素と類似する環境400の構成要素は再定義されない。環境100の1または複数のコンポーネントのそれぞれについて単一のブロックが示されているが、その単一のブロックは、当該コンポーネントの1または複数として示すものであることに留意されたい。
【0063】
図示されるように、環境100は、ワイドエリアネットワーク(WAN)408(例えば、
図2のネットワーク250および260)にさらに接続するローカルエリアネットワーク(LAN)407に接続された1または複数のデバイス405および406(例えば、
図1のエグゼキュータ170または
図2のデバイス205)を含み得、1または複数のリモートコンピューティングシステム409が動作する(例えば、
図2のリモートコンピューティングシステム256)。環境内では、タスクマイニングエンジン411および412(例えば、
図1のタスクマイニングエンジン111、181、および191、または
図2のソフトウェア230)のインスタンスが、1もしくは複数のロボット416および417(例えば、
図1のロボット122、174、および178)ならびにデータベース429(例えば、
図1のコンダクタ140または
図2のシステムメモリ220)を実行および/または1もしくは複数のロボット416および417(例えば、
図1のロボット122、174、および178)ならびにデータベース429(例えば、
図1のコンダクタ140または
図2のシステムメモリ220)とインタラクションして、ユーザーアクション431、432および433を受信/監視/記録する。
【0064】
ユーザーアクション431、432および433は、本明細書で説明したように、ワークフローに関する任意のユーザー入力またはアクティビティを含み得る。例えば、ユーザーは、デバイス206(例えば、デジタル電話)を利用して、保険請求電話を受信する。ユーザーは、デバイス205(例えば、デスクトップコンピュータ)を利用して、保険請求電話の詳細を入力する。次に、ユーザーアクション432は、通話に関する応答、転送、終了、記録、保留操作を含み得る一方、ユーザーアクション431は、顧客情報、クレーム情報の入力、ウェブフォームへの入力、アジャスターや他の同僚への電子メールの送信を含み得る。さらに、ユーザーアクション433は、クレームのマネージャ承認などを含み得る。
【0065】
環境の動作例が、1または複数の実施形態による方法500のブロック図を示す
図4に関して説明される。より詳細には、方法500は、環境400全体のタスクマイニングエンジン411および412とロボット416および417によるタスクおよびプロセスマイニングの例示的な実施である。
【0066】
方法500は、ブロック505から始まり、ロボット416は、第1のユーザーのユーザーアクション431をリアルタイムで記録する。さらに、ブロック506において、アンアテンディッドロボット417は、第2のユーザー(例えば、または今は別のデバイスを使用している第1のユーザー)のユーザーアクション432をリアルタイムで記録する。ユーザーアクション431および432は、それぞれのデバイス405および406でローカルに保存され得、かつ/または、データベース429に通信され得る。前回に記録が各ユーザーに対して実行されたように、ユーザーアクション433(例えば、リアルタイムで記録された非構造化データ)は、データベース429に現在格納され得る(ブロック407)。いずれの場合も、ユーザーアクション431、432および433は、任意のユーザーが画面の特定のUI(例えば、特定のウェブフォームでのウェブフォームアクション、特定のアプリケーションウィンドウなど)で取る1もしくは複数の個別のステップ、アクションおよび/またはタスクをまとめて表す。例えば、ユーザーアクションは、ユーザーインターフェース内でのカーソルのシングルクリック、ユーザーによるタイピング、スクロールによるナビゲーション、ドラッグアンドドロップなどを含み得る。ユーザーアクション431、432および433は、本明細書に記載されているように、1または複数のタスクに結合するサブタスクとも考えられ得る。特定の例では、顧客サービスコールのコンテキストにおいて、ユーザーアクション431は、フォーム1および2の完了に関するアクションを含み得、ユーザーアクション432は、顧客コールの受信に関するアクションを含み得、ユーザーアクション433は、マネージャの承認に関するアクションを含み得る。
【0067】
1または複数の実施形態によると、タスクマイニングエンジン411は、デバイス205の画面からの光学文字認識(OCR)メカニズムと、単語対ベクトルの人工知能アルゴリズムとを使用して、画面上の外観に基づいて個々の単語の表現を作成し得る。すなわち、タスクマイニングエンジン411は、ユーザーアクション431の表現を生成する(表現は、時間的な情報のような多くの異なる品質を含み得ることに留意されたい)。OCRメカニズムは、テキストの画像(例えば、スクリーンショット)を機械エンコードされたテキストに変換する任意のものを含み得る。単語からベクトルへの人工知能アルゴリズムは、単語の言語的コンテキストを再構築するための単語埋め込みを生成するために使用される任意のモデル群(例えば、2層ニューラルネットワーク)を含み得る(例えば、アクションまたはステップのコード化された表現を提供する)。追加的にまたは代替的に、最新の統計的機械学習を用いた、GENSIMおよび/またはScikit-Learnなどの、監督なしのトピックモデリングおよび自然言語処理のためのオープンソースライブラリも同様に使用され得る。実質的に、タスクマイニングエンジン411は、OCRメカニズムと単語からベクトルへの人工知能アルゴリズムとを組み合わせて、画面全体に対する単一の表現を生成する。
【0068】
ブロック510では、タスクマイニングエンジン411またはタスクマイニングエンジン412は、ユーザーアクション431、432および433を受信する(例えば、顧客サービスコールに関するデータを集約する)。説明を容易にするために、方法500の残りの部分は、タスクマイニングエンジン411の観点から説明されるが、タスクマイニングエンジン412は、本明細書中の動作を複製し得る。タスクマイニングエンジン411は、LAN407またはWAN408を介して、プルリクエストなどにより、ユーザーアクション432および433を受信し得る。1または複数の記録されたタスクはまた、ユーザーアクティビティが発生している間に(例えば、
図1の環境100からタスクマイニングエンジン191によって)リアルタイムで記録された非構造化データを含み得る。1または複数の記録されたタスクは、データベースまたはリポジトリなど、外部ソースから同様に受信され得る。1または複数の実施形態によると、タスクマイニングエンジン411は、アンアテンディッドロボット417を利用して、1または複数のアクティビティ(例えば、ワークフロー)を、ステップ、アクションおよび/またはタスクとしてキャプチャし得る。
【0069】
ブロック525において、タスクマイニングエンジン411は、ユーザーアクション431、432および433をクラスタ化して、アクションが同一であるとみなされるかどうかを決定する(例えば、ユーザーが顧客サービスコールに関連するコメントを入力し、その後、フォーム1のコメントボックスに同じコメントを入力する)。一般的な注意として、ブロック525のクラスタ化は、個々のステップ/スクリーンショットのクラスタ化とみなされ得る。さらに、タスクマイニングエンジン411によるこのクラスタ化動作において、ユーザーアクション431、432および433のシーケンスが考慮され得る(例えば、第1のユーザーによるスクロール前のクリック対クリック前のスクロール;シーケンスは、様々なアクティビティを見て、アクティビティが同じ結果を達成するかどうかを見ることができる)。このようにして、ユーザーアクション431、432および433から初期クラスタ化によって1または複数のユーザータスクが特定され得(例えば、サブタスクを1または複数のタスクに結合し、個々のアクションはクラスタ化される)、ユーザーアクション431、432および433の1または複数のユーザータスクへのクラスタ化は、1または複数のユーザータスクを1または複数のステップに結合することによってさらに実行され得る。さらに、ブロック525の初期クラスタ化は、クラスタ全体がユーザーが取り得るステップのタイプであるように、ユーザーアクション431、432および433をクラスタ化して、1または複数のステップを見つける。また、初期クラスタ化は、何種類のステップが表されているかを決定するとともに、「どのようにして何種類を決定するか」を決定し得る。後者の場合、初期クラスタ化は、多数の異なるクラスタ化を実行し、クラスタ化を採点し、各実行がどれだけうまくいったかを測定して、品質測定基準を決定する(例えば、生成されるクラスタ化が与えられたログの構造量を最大化する)。
【0070】
初期クラスタ化は、無意味な動作ではなく、具体的すぎる(ユーザーアクションの一致を見逃す原因となる)ことと、一般的すぎる(異質なユーザーアクションがグループ化される原因となる)こととの間でバランスをとるという技術的効果および利点をもたらす。このバランスを達成するために、タスクマイニングエンジン411は、必要に応じて、1または複数のクラスタ化アルゴリズムを実施し得る(例えば、ユーザーアクションが発生したインターフェース画面に関して、クラスタ化アルゴリズムが選択され得る)。1または複数のクラスタ化アルゴリズムの例は、限定されないが、セントロイドに基づくまたはK平均法クラスタ化、接続性に基づくクラスタ化(例えば、階層型クラスタ化)、分布に基づくクラスタ化、密度に基づくクラスタ化、およびグリッドに基づくクラスタ化を含む。
【0071】
1または複数の実施形態によると、タスクマイニングエンジン411は、まず、ユーザーアクション431、432および433を、ユーザーアクション431、432および433がどの種類のUIで実行されたか(例えば、あるウェブフォームにおけるウェブフォームアクション、あるアプリケーションウィンドウなど)にグループ化/クラスタ化する。例えば、画面上において近接している単語は、(単語からベクトルへの人工知能アルゴリズム、Scikit-Learn、および/またはGENSIMを介して)類似した表現を与えられる傾向がある。異なる画面タイプには異なる単語があり、異なる画面上の単語には異なる表現が与えられ、タスクマイニングエンジン411が画面を区別することができるという仮定がある。場合によっては、似たような単語を持つ2つの画面が似たような表現を得て、例えばK-平均法クラスタ化によって似たようなグループ化/クラスタ化が可能となる。表現を分析するためのクラスタ化の他の例は、画像データ、テキストサイズ、テキストフォント、セレクタからの情報(例えば、画面上で実行されているアプリケーション)、個々のページなどを使用することを含む。
【0072】
1または複数の実施形態によると、タスクマイニングエンジン411は、クラスタ化アルゴリズムの1または複数のパラメータを設定し得る。タスクマイニングエンジン411は、精度に基づいてグループ化/クラスタをスコアリングし、そのスコアをフィードバックして最適なパラメータ設定を決定し得る。例えば、K-平均法クラスタ化は、異なる数のクラスタ上で複数回実行し、スコア(例えば、シルエットスコアおよび/または時間的スコア(temporal score))を使用して、最適なパラメータを見つけることにより、クラスタの数に基づいて最適なグループ化を見つけ得る。シルエットスコアは、ユーザーアクション431、432および433がどの程度クラスタ化されているかという観点から、クラスタ品質を評価する。シルエットスコアは、シルエットスコアが各クラスタに対して同じスコアであるかどうかおよび/または各クラスタが1回を超えて実行されるかどうかを決定するとともに、異なるクラスタの各サンプルについて計算され得る。時間的スコアは、シルエットスコアの代わりにまたはシルエットスコアに加えて、最適なパラメータを決定する際に、表現の時間的情報を説明できるようにされ得る。
【0073】
ブロック530において、タスクマイニングエンジン411は、シーケンスをクラスタ化する。一般的な注意として、ブロック530のクラスタ化は、クラスタ化されたステップ/スクリーンショットが時間に関してさらにクラスタ化される時間的要素を含み得る(例えば、タイムスタンプを使用して、タスクマイニングエンジン411は、異なるステップ/スクリーンショットが発生する時間にどれだけ近いかを決定する)。1または複数の実施形態によると、タスクマイニングエンジン411は、ブロック530と同じクラスタ化アルゴリズムおよび/または1もしくは複数の異なるクラスタリングアルゴリズムを使用し得る。一例では、タスクマイニングエンジン411は、シンボリッククラスタ化および/またはシーケンシャルパターンマイニングを実行するシーケンス抽出アルゴリズム(例えば、アルファアルゴリズム)を実行する。シーケンシャルパターンマイニングは、タスクマイニングエンジン411が、シーケンス情報のための効率的なデータベースおよびインデックスを構築し、頻繁に発生するパターンを抽出し、類似性についてシーケンスを比較し、欠落したシーケンスメンバーを回復することができるように、シーケンスで配信されたユーザーアクション431、432および433ならびに/またはブロック525で生成されたクラスタの間から、統計的に関連するパターンを抽出することを含み得る。
【0074】
例えば、クラスタ化シーケンスまたは第2のクラスタ化は、ユーザーアクション431、432および433ならびに/またはブロック525で生成されたクラスタからシーケンス抽出またはシーケンスを特定するための操作と考えられ得る。一般に、クラスタシーケンスは、本明細書に記載されているように、ユーザーアクティビティを模倣するために、1もしくは複数のステップシーケンスおよび/または1もしくは複数のタスクシーケンスを抽出することを含む。方法500に関して、クラスタ化シーケンスは、サブブロック533での有用性の決定と、サブブロック536でのランクの決定という2つの態様を有し得る。
【0075】
サブブロック533では、タスクマイニングエンジン411は、有用性を決定する。すなわち、タスクマイニングエンジン411が解決する技術的な問題とは、アクションのシーケンスが有用であることの意味を決定することである。タスクマイニングエンジン411は、例えば、オンライン上で「もの」を探しているユーザーをキャプチャすることを望んでおらず、ランダムな偶然よりも頻繁に発生するシーケンスを望んでいる。ランダムな偶然またはランダム性は、パターンまたは予測可能性の明らかなまたは実際の欠如であり、その結果、1または複数のユーザーアクション431、432および433に順序がないか、または理解可能なパターンもしくは組み合わせに従わない(例えば、確率分布は、時間の経過に伴う1または複数のユーザーアクション431、432および433の頻度に基づいて決定され得る)。本質的に、タスクマイニングエンジン411は、「有用なシーケンスを抽出する方法」を特定するための良い方法を決定しようとする。
【0076】
例えば、タスクマイニングエンジン411は、生成されたクラスタから、異なってはいるが組み合わせる必要があるほど十分に類似しているタスク例またはシーケンス例を抽出し得る。さらに、タスクマイニングエンジン411は、これらのタスク例またはシーケンス例からバリエーションを決定し、バリエーションを分離させる必要があるほど十分に異なっているかどうかを決定し得る。実施形態では、タスクマイニングエンジン411は、すべてのアクションがランダムであると仮定され、シーケンス発生の確率が計算される任意のポアソンプロセス統計モデルなどの、1または複数の相関検出器を利用し得る。統計モデルを用いるタスクマイニングエンジン411の相関検出器の例は、ステップシーケンス内のp値および相関を計算する。このようにして、タスクマイニングエンジン411は、どのくらいの頻度でバリエーションが一緒に現れるのか、また、どのくらい離れているのかを判断し得る。例えば、1時間に1回程度の頻度で曲を検索するような、いくつかの比較的頻度の低い処理は役に立たない。タスクマイニングエンジン411の相関検出器は、何度も繰り返されるアクションをより強く認識し、順序は異なるが同じ結果を得る(そうして、同じであると認識される)シーケンスが持つ多少の変動を説明し得る。さらに、タスクマイニングエンジン411の相関検出器は、順序に加えて、1組のアクションを任意の順序で見ることができるため、相関検出器は、厳密にはシーケンスになっていないアクションを認識し得る。
【0077】
サブブロック536では、タスクマイニングエンジン411は、ランクを決定する。すなわち、タスクマイニングエンジン411が解決する技術的課題は、有用であると判断された各々のランクを決定することである。言い換えれば、タスクマイニングエンジン411は、抽出されたタスクおよびシーケンスをランク付けして、どれが最も興味深いかを判断する。(例えば、任意の2つの項目について、一方が第2の他方よりも「上位にランクされる」または「より興味深い」となるように、抽出されたタスクおよびシーケンス間の関係を設定する)。ランクは、スケール全体の英数字の値(例えば、1から10までの数字)とされ得る。興味深さは、タスクまたはシーケンスがユーザーのビジネス上の目的に関連している可能性を特定して、時間の経過に伴うユーザーアクション431、432および433のいずれかが重要であると特定され、他のユーザーアクションを特定するために使用され得ることに留意されたい。タスクマイニングエンジン411は、シーケンス全体を統一されたチャンクとして見て、確率モデル(例えば、隠れマルコフモデル)のバリエーションに基づいて統計値(例えば、ランク)を計算する統計モデル(本明細書に記載の相関検出器とは異なる)を採用し得る。動作サブブロック536および536は、環境400に対する計算コストに基づいて、組み合わせから独立であり得ることに留意されたい。
【0078】
1または複数の実施形態によると、ブロック525および530は、本明細書中の動作に代えてまたは加えて、シーケンスを分析して、別個のスタンドアロンのアクションおよび/またはサブタスクを決定するための分析態様を含み得る。すなわち、2つのタスクが完全に分離されるという保証はないので、タスクマイニングエンジン411は、タスクからサブタスクをそれら自身の別々タスクとして抽出することが求められ得る。このようにして、タスクマイニングエンジン411は、サブタスクがより大きなタスクの一部であり、サブタスクの抽出が有用であることを特定する。
【0079】
タスクマイニングエンジン411は、タスクステップの分数を計算し、これはまた一対のタスクの一部として別のタスクに割り当てられ得ることに留意されたい。これに関連して、一方のタスクに有意な重複があり、他方のタスクにはない場合、第1のタスクは第2のタスクの一部である可能性が高い。有意な重複は、スライディングスケールで設定された動的しきい値に関して、第1のタスクに含まれるアクションの分数が他のタスクにある場合を含み得る。タスクマイニングエンジン411は、0%から100%の間でこの動的を調整することができ、例えば、85%から65%の間で明確化し得る。したがって、タスクマイニングエンジン411は、タスクの各対について動的しきい値を使用し、有向グラフを生成し、有向グラフを使用して、タスクのすべての組み合わせおよび/またはサブ組み合わせをグループ化し得る。
【0080】
1または複数の実施形態によると、ブロック525および530は、本明細書中の動作に代えてまたは加えて、反復シーケンス抽出アスペクトを含み得る。反復シーケンス抽出アスペクトは、クラスタ内で繰り返されるアクションを求める。その理由は、これらの繰り返されるアクションは、潜在的に自動化可能なプロセス/ワークフローを含み得るからである。繰り返しシーケンス抽出態様は、タスクマイニングエンジン411が機械学習および/または人工知能アルゴリズムを柔軟に使用できるように、クラスタ化で様々なレベルの特異性を可能にする。これに関連して、タスクマイニングエンジン411は、ディープニューラルネットワークを活用して、現在のシーケンスのログから将来のアクションを予測し得る。例えば、機械学習および/または人工知能アルゴリズムは、ユーザーアクション431、432および433ならびにクラスタから、将来のアクションを予測する方法を学び、次に、これらの予測を使用して、特定のサブタスク/タスク/シーケンスを発見する(例えば、より頻繁に、より正確に実行されるシーケンスを予測する)ことができる。場合によっては、クラスタ化が処理のボトルネックになるという問題を解決し、シーケンスを抽象的に学習するという利点を提供するために、機械学習および/または人工知能アルゴリズムの動作の後にクラスタ化を行い得る。他のニューラルネットワークを利用し得ることも留意されたい。
【0081】
ニューラルネットワークは、本明細書に記載される機械学習および/または人工知能アルゴリズムの実装(例えば、タスクマイニングエンジン411によって実装される)をサポートするように操作する。ニューラルネットワークは、ソフトウェアだけでなく、ハードウェアにも実装され得る。例示的な動作において、ニューラルネットワークの入力層は、ユーザーアクション431、432および433などの入力を受信する。ニューラルネットワークは、これらの入力をエンコードして(例えば、ユーザーアクション431、432および433の任意の部分と、タスクマイニングエンジン111によって生成された予測とを利用して)、潜在的な表現またはデータコーディングを生成する。潜在的な表現は、複数の入力から誘導される1または複数の中間的なデータ表現を含む。1または複数の実施形態によると、潜在的な表現は、タスクマイニングエンジン111の要素単位の活性化関数(例えば、シグモイド関数または整流線形単位)によって生成される。入力は隠れ層に提供され、隠れ層は、処理要素と要素パラメータとの間の接続によって決定される、複雑なグローバルな挙動を示すための処理を実行する。このように、入力層と隠れ層との間の遷移は、入力のいくつかのより小さい表現(例えば、得られる潜在的な表現)を学習するために、入力を受け取り、(隠れ層内の)ディープニューラルネットワークにそれを転送するエンコーダステージと考えられ得る。ディープニューラルネットワークは、CNN、長短期記憶ニューラルネットワーク、完全連結ニューラルネットワークまたはそれらの組み合わせであり得る。このエンコーディングは、入力の次元削減を提供する。次元削減とは、主変数のセットを得ることによって、考慮中の(入力の)ランダム変数の数を減らすプロセスである。例えば、次元削減は、データ(例えば、入力)を高次元空間(例えば、10次元超)から低次元空間(例えば、2~3次元)に変換する特徴抽出であり得る。次元削減の技術的効果および利点は、ユーザーアクション431、432および433の時間および記憶領域の要件を削減すること、ユーザーアクション431、432および433の視覚化を改善すること、ならびに機械学習のためのパラメータ解釈を改善することを含む。このデータ変換は、線形または非線形であり得る。受信およびエンコードの操作は、タスクマイニングエンジン111による多段階のデータ操作のデータ準備部分と考えられ得る。さらに、ニューラルネットワークは、潜在的な表現をデコードする。デコード段階は、エンコーダ出力(例えば、得られる潜在的な表現)を取り、別のディープニューラルネットワークを使用して、入力のいくつかの形を再構築しようとする。これに関連して、潜在表現のノードが結合されて、出力層で出力が生成される。すなわち、出力層は、干渉、アーティファクト、ノイズなどを含まない、縮小された次元で入力を再構成する。
【0082】
方法500に戻ると、ブロック530に関して本明細書で示したように、タスクマイニングエンジン411は、ブロック525の初期クラスタ化と、それらのシーケンスの有用性を考慮したユーザーアクション431、432および433とから、ランク付けされたシーケンスを生成する。ブロック570で、タスクマイニングエンジン411は、実行されると自動的にユーザーアクティビティを実行するランク付けされたシーケンスに基づくオートメーションコードを出力する。1または複数の実施形態によると、オートメーションコードは、アンアテンディッドロボット417(例えば、または任意のロボット416)の別のインスタンスとして実施され、自動的かつ独立して動作し得る。例えば、アンアテンディッドロボット417は、顧客サービスコールを記録することができ、ロボット416は、フォーム2の完了時に、承認のためにマネージャに自動的に電子メールを送信する。このように、タスクマイニングエンジン191はオートメーションコードを介して、自動化エクスペリエンスをユーザーに提供する。
【0083】
1または複数の実施形態によると、本明細書に記載されるタスクマイニングエンジンの1または複数の技術的効果、利点および長所は、タスクの開始および終了を特定することである。このようにして、環境に入ってきた任意の非構造化データは、環境のデータベース(例えば、クラウド)に送られる1または複数のソースから集約され得る。さらに、タスクマイニングエンジンのクライアント版もデータを記録し得る。集約され、記録されたデータを用いて、タスクマイニングエンジンは、クラスタ化を実行してデータを分析し、タスク/ステップ/シーケンスを決定し、これらのタスク/ステップ/シーケンスは、スコアが固定され、対応するスコアに基づいてRPAとして自動化される。
【0084】
1または複数の実施形態によると、1または複数のタスクマイニングエンジンは、タスクのバリエーションも決定し得る。タスクバリエーションは、2つ以上のタスクが同じ結果(例えば、フォームのセットを完了する)を達成する一方で、2つ以上のタスクのうち1つがより効率的(例えば、フォームのセットを特定の順序で完了する)である場合を含む。また、タスクのバリエーションは、他の態様を示すこともある(例えば、顧客のためにホテルの予約を完了し、タスクのバリエーションは、ホテルの予約にパッケージを追加することを含むなど)。タスクマイニングエンジンは、次に、タスクバリエーションの最も効率的なタスクを自動化し得る。
【0085】
例えば、タスクマイニングエンジンは、(例えば、タスク/ワークフロー/プロセスの)アクションセットを受信し、その中の各アクションにシグネチャを割り当て、アクションセット内のシーケンスに基づいてタスクのトレースを生成し、その中のアクションがどのような順序で発生したかを決定する。一般的に、各アクションタイプには1つのシグネチャがあり、シーケンス順序の指標を提供し、これらのシグネチャに基づいてアクションセットをグループ化することで、アクションセット内のバリエーションを提供し得る。つまり、シーケンス順序が変わると、トレースが変化する。アクションA(例えば、シグネチャAを割り当てられたユーザーアクション)が、アクションB(例えば、シグネチャBを割り当てられたユーザーアクション)の前に6回中5回発生した場合、トレースではアクションAがアクションBの前に来ることになる。タスクマイニングエンジンは、同じワークフロー/プロセスのこれらのバリエーションをすでに認識しているので、タスクマイニングエンジンは、平均ステップ数、各バリエーションにかかる時間などを見て、効率を決定する。
【0086】
例として、フォーム2がマネージャの承認を受けるたびに、ユーザーがフォーム1とフォーム2を25回完成する(例えば、フォーム1には第1のシグネチャがあり、フォーム2には第2のシグネチャがあり、マネージャの承認には第3のシグネチャがある)。フォーム1がフォーム2とマネージャの承認の前に25回のうち21回完了した場合、最初のトレースではフォーム1がフォーム2の前に来る。残りの4回については、第2のトレースは、ユーザーがフォーム2を最初に完了し、マネージャの承認がユーザーがフォーム1を完成する間に行われるというシーケンス順序を特定する。フォーム1の完成と並行してマネージャの承認が行われたために、第2のトレースが第1のトレースよりも短いことをタスクマイニングエンジンが特定した場合、タスクマイニングエンジンは、第2のトレースがより効率的であると決定し得る。このように、第2のトレースは、第1のトレースよりも提案され、自動化され、そして実装され得る。
【0087】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態による、装置、システム、方法、およびコンピュータプログラム製品の可能な実装のアーキテクチャ、機能性、および操作を示す。これに関連して、フローチャートまたはブロック図の各ブロックは、指定された論理機能(複数可)を実装するための1または複数の実行可能な命令を含むモジュール、セグメント、または命令の一部を表し得る。いくつかの代替実施例において、ブロックに記載されている機能は、図面のフローチャートおよびブロック図に記載されている順序とは異なる場合がある。例えば、連続して表示されている2つのブロックは、関係する機能に応じて、実際には実質的に同時に実行され得、またはブロックが逆の順序で実行され得る。また、ブロック図および/またはフローチャート図の各ブロック、ならびにブロック図および/またはフローチャート図のブロックの組み合わせは、指定された機能もしくは行動を実行するか、または特別な目的のハードウェアおよびコンピュータ命令の組み合わせを実行する特別な目的のハードウェアに基づくシステムによって実装され得ることに留意されたい。
【0088】
特徴および要素は、特定の組み合わせで上に記載されているが、各特徴または要素は、単独で、または他の特徴および要素と任意の組み合わせで使用することができることが、当業者には理解されるであろう。例えば、本明細書に記載されている方法およびプロセスのいずれかでは、記載されているステップは任意の順序で順不同で実行され得、明示的に記載または表示されていないサブステップが実行され得る。「AまたはB」を参照して使用する場合は、A、B、またはAおよびBを含む場合があり、より長いリストと同様に拡張され得る。表記X/Yを使用する場合、それはXまたはYを含み得る。あるいは、表記X/Yを使用する場合、それはXおよびYを含み得る。X/Y表記は、同一の説明されたロジックを有するより長いリストと同様に拡張され得る。また、「結合されている」または「操作的に結合されている」とは、オブジェクトが連結されていることを意味してもよいが、連結されているオブジェクトの間にゼロまたはそれ以上の中間オブジェクトを有してもよい。また、開示された特徴/要素の任意の組み合わせが、1または複数の実施形態で使用されてもよい。
【0089】
さらに、本明細書に記載された方法およびプロセスは、コンピュータまたはプロセッサによる実行のためにコンピュータ読み取り可能な媒体に組み込まれたコンピュータプログラム、ソフトウェア、および/またはファームウェア(例えば、コンピュータプログラム製品)で実装され得る。すなわち、コンピュータプログラム製品は、コントローラ、プロセッサなどに本発明の態様を実行させるためのコンピュータ読み取り可能プログラム命令をその上に有するコンピュータ読み取り可能なストレージ媒体(または複数の媒体)を含み得る。
【0090】
コンピュータ読み取り可能なストレージ媒体は、コンピュータ読み取り可能プログラム命令を保持および格納し得る有形のデバイスであり得る。コンピュータ読み取り可能なストレージ媒体は、例えば、限定されないが、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、または前述の任意の適切な組み合わせであり得る。本明細書で使用されるコンピュータ読み取り可能なストレージ媒体は、それ自体が一時的な信号であると解釈されるものではなく、例えば、電波またはその他の自由に伝播する電磁波、導波管またはその他の伝送媒体を伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、または電線を介して伝送される電気信号である。コンピュータ読み取り可能なストレージ媒体の例は、限定されないが、レジスタ、キャッシュメモリ、半導体メモリデバイス、内蔵ハードディスクおよびリムーバブルディスクなどの磁気媒体、光磁気媒体、コンパクトディスク(CD)およびデジタルバーサタイルディスク(DVD)などの光媒体、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能プログラマブルリードオンリーメモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)ならびにメモリースティックを含む。
【0091】
本明細書に記載されたコンピュータ読み取り可能なプログラム命令は、例えばネットワーク通信などの接続を介して、装置、デバイス、コンピュータ、または外部ストレージからそれぞれのコントローラ、プロセッサなどに通信および/またはダウンロードされ得る。本発明の操作を実行するためのコンピュータ読み取り可能なプログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA:instruction-set-architecture)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、または、Smalltalk、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは類似のプログラミング言語などの手続き型プログラミング言語を含む1もしくは複数のプログラミング言語の任意の組み合わせで書かれたソースコードもしくはオブジェクトコードのいずれかであり得る。いくつかの実施形態では、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブルロジックアレイ(PLA)を含む電子回路は、本発明の態様を実行するために、電子回路をパーソナライズするコンピュータ読み取り可能なプログラム命令の状態情報を利用して、コンピュータ読み取り可能なプログラム命令を実行し得る。
【0092】
本明細書で使用される用語は、ひとえに特定の実施形態を説明するためのものであり、限定することを意図しない。本明細書では、単数形の「a」、「an」、および「the」は、文脈が明確に示す場合を除き、複数形も含むことを意図する。本明細書で使用される「含む(comprises)」および/または「含む(comprising,)」という用語は、記載された特徴、整数、ステップ、操作、要素、および/またはコンポーネントの存在を特定するが、1または複数の他の特徴、整数、ステップ、操作、要素、コンポーネント、および/またはそれらのグループの存在または追加を排除するものではないことがさらに理解されるであろう。
【0093】
本明細書の様々な実施形態の説明は、説明のために提示されたものであるが、開示された実施形態を網羅的に、またはそれに限定することを意図したものではない。当業者であれば、記載された実施形態の範囲および精神から逸脱することなく、多くの修正および変形が明らかであろう。本明細書で使用される用語は、実施形態の原理、市場で見られる技術に対する実用化もしくは技術的改善を最もよく説明するため、または当業者が本明細書で開示されている実施形態を理解できるように選択されたものである。
【国際調査報告】