特許第6722804号(P6722804)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ アクセンチュア グローバル ソリューションズ リミテッドの特許一覧

<>
  • 特許6722804-認知ロボット工学アナライザ 図000002
  • 特許6722804-認知ロボット工学アナライザ 図000003
  • 特許6722804-認知ロボット工学アナライザ 図000004
  • 特許6722804-認知ロボット工学アナライザ 図000005
  • 特許6722804-認知ロボット工学アナライザ 図000006
  • 特許6722804-認知ロボット工学アナライザ 図000007
  • 特許6722804-認知ロボット工学アナライザ 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6722804
(24)【登録日】2020年6月24日
(45)【発行日】2020年7月15日
(54)【発明の名称】認知ロボット工学アナライザ
(51)【国際特許分類】
   G06F 16/906 20190101AFI20200706BHJP
【FI】
   G06F16/906
【請求項の数】10
【全頁数】28
(21)【出願番号】特願2019-111734(P2019-111734)
(22)【出願日】2019年6月17日
(62)【分割の表示】特願2017-224438(P2017-224438)の分割
【原出願日】2017年11月22日
(65)【公開番号】特開2019-194884(P2019-194884A)
(43)【公開日】2019年11月7日
【審査請求日】2019年6月17日
(31)【優先権主張番号】15/360,535
(32)【優先日】2016年11月23日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】516172237
【氏名又は名称】アクセンチュア グローバル ソリューションズ リミテッド
(74)【代理人】
【識別番号】100102406
【弁理士】
【氏名又は名称】黒田 健二
(74)【代理人】
【識別番号】100100240
【弁理士】
【氏名又は名称】松本 孝
(72)【発明者】
【氏名】バタレル,シリル
(72)【発明者】
【氏名】スキオプ,ヴィタリ
(72)【発明者】
【氏名】ジャコ,エイドリアン
(72)【発明者】
【氏名】トーレス,セルジオ ラウール ドゥアルテ
(72)【発明者】
【氏名】ホール,サイモン
【審査官】 齊藤 貴孝
(56)【参考文献】
【文献】 特開2008−152655(JP,A)
【文献】 特開2013−131170(JP,A)
【文献】 特開2015−230717(JP,A)
【文献】 特開2011−081431(JP,A)
【文献】 中国特許出願公開第102654860(CN,A)
【文献】 米国特許出願公開第2011/0295892(US,A1)
【文献】 前川 卓也、外1名,ユーザの身体的特徴情報を用いた行動認識モデルの学習手法,情報処理学会論文誌,日本,一般社団法人情報処理学会,2012年 7月15日,第53巻,第7号,p.1665−1674
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00−16/958
(57)【特許請求の範囲】
【請求項1】
同じプロセスを実行するとラベリングされた1つ以上のアクションのグループを特定するデータを受け取るステップと、
1つ以上のアクションの各グループの中の、変数情報と関連付けられた特定のアクションを特定するステップと、
前記同じプロセスを実行するとラベリングされた前記1つ以上のアクションの前記グループを特定する前記データを用いかつ変数情報と関連付けられた前記特定のアクションを用いて、(i)1つ以上のアクションのグループを、前記同じプロセスを実行するかまたは前記同じプロセスを実行しないものとして分類し、および(ii)前記1つ以上のアクションの前記グループに属する、変数情報と関連付けられたアクションを特定するように構成された予測モデルをトレーニングするステップと、
アクションの所与のグループを特定するデータを受け取るステップと、
アクションの前記所与のグループに前記予測モデルを適用するステップと、
アクションの前記所与のグループに前記予測モデルを適用することに基づいて、アクションの前記所与のグループを前記同じプロセスを実行するものとして分類するとともにアクションの前記所与のグループに属する変数情報と関連付けられた所与のアクションを特定するステップと、
アクションの前記所与のグループを前記同じプロセスを実行するものとして分類するデータならびに前記所与のアクションおよび前記変数情報を特定するデータを出力するステップと、
を含む、コンピュータ実行される方法。
【請求項2】
アクションの前記所与のグループが前記同じプロセスを実行することを確認するデータを受け取るステップと、
アクションの前記所与のグループが前記同じプロセスを実行することを確認する前記データに基づいて前記予測モデルをアップデートするステップと、
を含む、請求項1に記載の方法。
【請求項3】
アクションの前記所与のグループが前記同じプロセスを実行しないことを確認するデータを受け取るステップと、
アクションの前記所与のグループが前記同じプロセスを実行しないことを確認する前記データに基づいて前記予測モデルをアップデートするステップと、
を含む、請求項1に記載の方法。
【請求項4】
同じプロセスを実行するとラベリングされた1つ以上のアクションのグループを特定するデータを受け取るステップは、
前記1つ以上のアクションの前記グループのうちの1つを実行するデバイスからスクリーンキャプチャーデータを受け取るステップと、
前記スクリーンキャプチャーデータに対してコンピュータビジョン技術を実行することにより前記データを生成するステップと、
を含む、請求項1に記載の方法。
【請求項5】
同じプロセスを実行するとラベリングされた1つ以上のアクションのグループを特定するデータを受け取るステップは、
前記1つ以上のアクションの前記グループのうちの1つを実行するデバイスからユーザ入力データを受け取るステップと、
前記ユーザ入力データを分析することにより前記データを生成するステップと、
を含む、請求項1に記載の方法。
【請求項6】
同じプロセスを実行するとラベリングされた1つ以上のアクションのグループを特定するデータを受け取るステップは、
前記1つ以上のアクションの前記グループのうちの1つを実行するデバイスからネットワークトラフィックデータを受け取るステップと、
前記ネットワークトラフィックデータを分析することにより前記データを生成するステップと、
を含む、請求項1に記載の方法。
【請求項7】
前記アクションは、キープレス、マウスクリック、スクリーンタッチ、フォアグラウンドプロセス変更、シーン変更、ネットワークリクエスト、またはネットワーク受信を含む、請求項1に記載の方法。
【請求項8】
アクションの前記所与のグループに対して前記予測モデルを適用することに基づいて、アクションの前記所与のグループに属するノイズアクションと関連する付加的アクションを特定するステップを含む、
請求項1に記載の方法。
【請求項9】
前記所与のアクションに対応する変数のタイプを判定するステップを含む、
請求項1に記載の方法。
【請求項10】
前記所与のアクションおよび前記変数情報を特定する前記データは、前記所与のアクションに基づく前記変数情報のための名前を含む、請求項1に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、一般的には機械学習に関する。
【背景技術】
【0002】
コンピュータ上で行われる手動操作は、反復的で時間がかかることがある。例えば、ウェブフォーム提出に応答して電子メールを送信することができ、各ウェブフォーム提出について、新しい電子メールを作成するためにウィンドウを開くボタンをクリックし、そのウェブフォーム提出からの情報をウィンドウにコピーするボタンをクリックし、その電子メールの本文のためにテキストを書くキーをクリックし、その電子メールを送信するボタンをクリックするためにコンピュータと手動でインタラクトしなければならないであろう。
【発明の概要】
【課題を解決するための手段】
【0003】
異なる特性に応じてユーザをグルーピングすることは、従来、ユーザ自身が提供する特性に、または雇用者等の他者が提供する特性に依拠している。ユーザを特性に応じてグルーピングするために、システムは、トレーニングデータからユーザのアクションを分析し、機械学習、データクラスタリング、およびディープラーニングを用いて予測モデルを生成する。予測モデルは、ユーザが実行するプロセスを特定して、それらのプロセスを、既知の特性に対応する他のプロセスに関連付けるように構成される。換言すれば、予測モデルは、初めに、ユーザが実行するプロセスを特定する。予測モデルは、次に、そのプロセスのアクションに基づいてユーザの特性を特定する。アクションは、予測モデルが特性を特定するためには不十分であり得る。例えば、英国に位置するユーザは、そのテキスト中に“colour”というスペルを含むウェブサイトを訪れる可能性がより高いであろう。この例では、そのウェブサイトを訪れることはプロセスであり、そのテキスト“colour”を見ることはアクションである。ユーザは米国にいて英国のユーザから送られた電子メールを読むかもしれないから、“colour”というスペルを伴う電子メールを読むユーザが英国に位置しているという可能性が同様に高いとは言えないであろう。この例では、その電子メールを読むことがプロセスであり、“colour”というテキストを見ることがアクションである。従って、システムは、予測モデルを用いてプロセスを特定し、次に類似するプロセスのアクションに基づいてユーザに特性を割り当てる。
【0004】
システムは、アクションの各グループが同じプロセスを実行する場合、ユーザのアクションのグループにおいて変数を特定するためにも予測モデルを用いることができる。システムは、それぞれ少なくとも1つのプロセスを実行するアクションを特定するトレーニングデータを受け取る。そのトレーニングデータを用いて、システムは、ユーザが実行するアクションを受け取ることに戻づいてプロセスを特定するように構成された予測モデルを生成する。ユーザは、マウスをクリックし、スクリーンをスワイプし、キーパッドをタイピングし、イメージおよびテキストを見ることができ、予測モデルは、インボイスを入力するなどのアクションを、それらのアクションに基づいて特定することができる。システムは、それらのアクションを同じプロセスのためのアクションの他のグループと比較し、アクションのそれらのグループにおいて様々であり得るアクションを特定する。システムは、プロセス全体の部分ではないノイズや不要なアクションであり得るアクションをも特定する。ノイズおよび変数を特定することにより、システムはより効率的にプロセスを自動化することができる。
【0005】
本明細書に記載される主題の革新的な局面は1つの方法に実装され得、その方法は、複数のユーザ特性のうちの各ユーザ特性について、第1プロセスを実行する1つ以上の第1アクションを特定する第1データ、および、第1プロセスに類似するとラベリングされる第2プロセスを実行する1つ以上の第2アクションを特定する第2データを受け取るアクションと、各ユーザ特性について第1データを用いかつ各ユーザ特性について第2データを用いて、アクションを第1プロセスおよび第2プロセスに類似するまたは類似しないと分類するように構成された予測モデルをトレーニングするアクションと、ユーザにより実行されたアクションを特定するデータを受け取るアクションと、その予測モデルをこれらのアクションのうちの1つ以上に適用するアクションと、これらのアクションのうちの1つ以上にその予測モデルを適用することに基づいて、その1つ以上のアクションにより行われるプロセスを特定のユーザ特性と関連する特定のプロセスに類似すると分類するアクションと、ユーザをその特定のユーザ特性と関連付けるアクションと、を含む。
【0006】
これらのおよび他の実装は、それぞれ次の特徴事項を任意に含むことができる。アクションは、ユーザがユーザ特性と関連付けられていることを確認するデータを受け取ること、および、ユーザがユーザ特性と関連付けられていることを確認するデータに基づいて予測モデルをアップデートすること、をさらに含む。アクションは、ユーザがユーザ特性と関連付けられていないことを確認するデータを受け取ることと、ユーザがユーザ特性と関連付けられていないことを確認するデータに基づいて予測モデルをアップデートすることと、をさらに含む。複数のユーザ特性のうちの各ユーザ特性について、第1プロセスを実行する1つ以上の第1アクションを特定する第1データおよび第1プロセスに類似するとラベリングされた第2プロセスを実行する1つ以上の第2アクションを特定する第2データを受け取るアクションは、1つ以上の第1アクションを実行するデバイスから第1スクリーンキャプチャーデータを受け取ることと、1つ以上の第2アクションを実行するデバイスから第2スクリーンキャプチャーデータを受け取ることと、第1スクリーンキャプチャーデータに対してコンピュータビジョン技術を実行することにより第1データを生成することと、第2スクリーンキャプチャーデータに対してコンピュータビジョン技術を実行することにより第2データを生成することと、を含む。
【0007】
複数のユーザ特性のうちの各ユーザ特性について、第1プロセスを実行する1つ以上の第1アクションを特定する第1データおよび第1プロセスに類似するとラベリングされた第2プロセスを実行する1つ以上の第2アクションを特定する第2データを受け取るアクションは、1つ以上の第1アクションを実行するデバイスから第1ユーザ入力データを受け取ることと、1つ以上の第2アクションを実行するデバイスから第2ユーザ入力データを受け取ることと、第1ユーザ入力データを分析することにより第1データを生成することと、第2ユーザ入力データを分析することにより第2データを生成することと、を含む。複数のユーザ特性のうちの各ユーザ特性について、第1プロセスを実行する1つ以上の第1アクションを特定する第1データおよび第1プロセスに類似するとラベリングされた第2プロセスを実行する1つ以上の第2アクションを特定する第2データを受け取るアクションは、1つ以上の第1アクションを実行するデバイスから第1ネットワークトラフィックデータを受け取ることと、1つ以上の第2アクションを実行するデバイスから第2ネットワークトラフィックデータを受け取ることと、第1ネットワークトラフィックデータを分析することにより第1データを生成することと、第2ネットワークトラフィックデータを分析することにより第2データを生成することと、を含む。第1プロセスおよび第2プロセスが同じハードウェアまたは同じソフトウェアを使用するならば、第1プロセスは第2プロセスに類似する。ユーザ特性は、会社、地理的位置、事業単位、職務、または専門技術レベルを特定する。アクションは、キープレス、マウスクリック、スクリーンタッチ、フォアグラウンドプロセス変更、シーン変更、ネットワークリクエスト、またはネットワーク受信を含む。プロセスは、ウェブサイトを見ること、1つのタイプの電子メール添付ファイルを受け取ること、1つのタイプのデータを入力すること、ウェブ検索を実行すること、または1つのタイプのソフトウェアを使用することを含む。
【0008】
この局面の他の実装は、これらの方法の操作を実行するようにそれぞれ構成された、対応するシステム、装置、およびコンピュータ記憶デバイスに記録されたコンピュータプログラムを含む。
【0009】
本明細書に記載される主題の他の革新的局面は1つの方法において実装され得、その方法は、同じプロセスを実行するとラベリングされた1つ以上のアクションのグループを特定するデータを受け取るアクションと、1つ以上のアクションの各グループの中の、変数情報と関連付けられた特定のアクションを特定するアクションと、同じプロセスを実行するとラベリングされた1つ以上のアクションのグループを特定するデータを用いかつ変数情報と関連付けられた特定のアクションを用いて、(i)1つ以上のアクションのグループを、同じプロセスを実行するかまたは同じプロセスを実行しないものとして分類し、および(ii)1つ以上のアクションのグループに属する、変数情報と関連付けられたアクションを特定するように構成された予測モデルをトレーニングするアクションと、アクションの所与のグループを特定するデータを受け取るアクションと、アクションの所与のグループに予測モデルを適用するアクションと、アクションの所与のグループに予測モデルを適用することに基づいて、アクションの所与のグループを同じプロセスを実行するものとして分類するとともにアクションの所与のグループに属する変数情報と関連付けられた所与のアクションを特定するアクションと、アクションの所与のグループを同じプロセスを実行するものとして分類するデータならびに所与のアクションおよび変数情報を特定するデータを出力するアクションと、を含む。
【0010】
これらのおよび他の実装は、それぞれ、次の特徴事項のうちの1つ以上を任意に含む。アクションは、アクションの所与のグループが同じプロセスを実行することを確認するデータを受け取ることと、アクションの所与のグループが同じプロセスを実行することを確認するデータに基づいて予測モデルをアップデートすることと、をさらに含む。アクションは、アクションの所与のグループが同じプロセスを実行しないことを確認するデータを受け取ることと、アクションの所与のグループが同じプロセスを実行しないことを確認するデータに基づいて予測モデルをアップデートすることと、をさらに含む。同じプロセスを実行するとラベリングされた1つ以上のアクションのグループを特定するデータを受け取るアクションは、1つ以上のアクションのグループのうちの1つを実行するデバイスからスクリーンキャプチャーデータを受け取ることと、スクリーンキャプチャーデータに対してコンピュータビジョン技術を実行することによりデータを生成することと、を含む。
【0011】
同じプロセスを実行するとラベリングされた1つ以上のアクションのグループを特定するデータを受け取るアクションは、1つ以上のアクションのグループのうちの1つを実行するデバイスからユーザ入力データを受け取ることと、ユーザ入力データを分析することによりデータを生成することと、を含む。同じプロセスを実行するとラベリングされた1つ以上のアクションのグループを特定するデータを受け取るアクションは、1つ以上のアクションのグループのうちの1つを実行するデバイスからネットワークトラフィックデータを受け取ることと、ネットワークトラフィックデータを分析することによりデータを生成することと、を含む。アクションは、キープレス、マウスクリック、スクリーンタッチ、フォアグラウンドプロセス変更、シーン変更、ネットワークリクエスト、またはネットワーク受信を含む。アクションは、アクションの所与のグループに予測モデルを適用することに基づいて、アクションの所与のグループに属するノイズアクションと関連する付加的アクションを特定することをさらに含む。アクションは、所与のアクションに対応する1つのタイプの変数を判定することをさらに含む。所与のアクションおよび変数情報を特定するデータは所与のアクションに基づく変数情報のための名前を含む、請求項11に記載の方法。
【0012】
この局面の他の実装は、これらの方法の操作を実行するようにそれぞれ構成された、対応するシステム、装置、およびコンピュータ記憶デバイスに記録されたコンピュータプログラムを含む。
【0013】
本明細書に記載される主題の特定の実装は、次の利点のうちの1つ以上を実現するように実装され得る。システムは、ユーザを、ユーザが実際に実行するアクションに基づく特性に基づいてグループに割り当てることによって、セキュリティを改善することができる。各グループは、種々のセキュリティパーミッションに結び付けられ得る。システムは、プロセスを完成するには不要であるかもしれないアクションを特定することによってプロセス中の非能率事項をも特定することができる。
【0014】
本明細書に記載された主題の1つ以上の実装は、添付図面と以下の説明において明らかにされる。主題の他の特徴、局面、および利点は、説明、図面、および請求項から明らかになるであろう。
【図面の簡単な説明】
【0015】
図1】認知ロボットアナライザのための例示システムを示す。
図2】認知ロボットアナライザのための例示システムを示す。
図3】認知ロボットアナライザのための例示システムを示す。
図4】類似するプロセスを実行するアクションの例示グループを示す。
図5】認知ロボットアナライザのための例示プロセスを示す。
図6】認知ロボットアナライザのための例示プロセスを示す。
図7】コンピューティングデバイスおよびモバイルコンピューティングデバイスの例を示す。
【発明を実施するための形態】
【0016】
種々の図において同様の参照番号および名称は同様の要素を示す。
【0017】
図1は、認知ロボットアナライザのための例示システム100を示す。簡単に、かつ以下でより詳しく記載されるように、システム100はユーザの、コンピューティングデバイスとの以前のインタラクションに基づくトレーニングデータを受け取る。トレーニングデータは、ユーザのインタラクションが実行するプロセスとユーザの特性とを特定する。システム100は、他のユーザのコンピューティングデバイスとのインタラクションを分析することにより他のユーザに特性を割り当てるために予測モデルを生成する。システム100は、その割り当てられた特性に応じてユーザをグルーピングすることができる。
【0018】
図1に示されている例では、システム100は、ユーザ102、104、および106に由来するトレーニングデータを受け取る。ユーザ102は、ウェブサイトtimes.co.ukを訪れることにより、コンピューティングデバイス108とインタラクトする。ユーザ104は、コンピューティングデバイス110とインタラクトして、“What colour am I?”に関連するクイズに書き込みをする。ユーザ106は、コンピューティングデバイス112とインタラクトし、サーチクエリ“エレベータ修理”を入力する。コンピューティングデバイス108、110、および112の各々は、携帯電話、タブレット、ラップトップコンピュータ、デスクトップコンピュータ、時計、または他の、タッチスクリーン、キーボード、マイクロフォン、ポインティングデバイス、アンテナ、カメラ等のデバイスを通して入力を受け取るように構成された任意のデバイスなど、ネットワークを介して通信するように構成されたデバイスであり得る。コンピューティングデバイス108、110、および112の各々は、データをスクリーン、スピーカ、または触覚フィードバックデバイスに出力するようにも構成される。
【0019】
ユーザデータ114からトレーニングデータを生成するために、システム100は入力および出力データを監視し収集するように構成される。システム100は、ウェブサイトtimes.co.ukを訪れているユーザに関連するデータを含み得るスクリーンキャプチャーデータを収集することができる。システム100は、データ114に対して画像認識および光学的文字認識を実行することができる。データ114は、アドレスバーがtimes.co.ukウェブアドレスを含んでいるtimes.co.ukウェブサイトを訪れているブラウザを図示するスクリーンキャプチャーデータを含むことができる。システム100は、コンピューティングデバイス108から送受信されるネットワークトラフィックを監視することもできる。ネットワークトラフィックは、times.co.ukサーバからコンピューティングデバイス108へ送られるデータパケットおよびコンピューティングデバイス108からtimes.co.ukサーバへ送られるデータパケットを含み得る。データ114は、コンピューティングデバイス108により受け取られたユーザ入力をも含み得る。ユーザ入力は、キーボードプレス、マウスの位置決めおよびクリック、タッチデータ、マイクロフォンを通して受け取られたオーディオデータ、またはカメラを通して受け取られたビジュアルデータを含み得る。システム100は、1秒ごとにスクリーンデータをキャプチャーするなどしてデータ114を所定間隔でキャプチャーし、あるいはユーザがマウスをクリックするなどしてユーザがデータを入力したときにスクリーンデータ114をキャプチャーすることができる。
【0020】
システム100は、データ116およびデータ118からトレーニングデータを生成することもできる。データ116および118は、スクリーンキャプチャーデータ、ネットワークトラフィックデータ、およびユーザ入力データを含み得る。例えば、データ116は、ユーザ104が“What colour am I?”クイズに対してデータを入力することを含むスクリーンキャプチャーデータを含み得る。データ118は、ユーザ106がサーチクエリ“エレベータ修理”を入力することに関連するネットワークトラフィックデータを含み得る。データ114、116、および118は、それぞれ、プロセスデータをも含み得る。プロセスデータは、対応するコンピューティングデバイス上で現在実行中のプロセスに関連する。例えば、種々のオペレーティングシステムのプロセスおよび基本的コンピューティングプロセスの他に、コンピューティングデバイス108はブラウザプロセスを実行していることがある。プロセスデータは、各プロセスが利用する処理パワーの量、またはパーセンテージをも含み得る。プロセスデータは、そのプロセスに割り当てられたメモリの量をも含み得る。
【0021】
幾つかの実装では、データ114、116、および118は、ユーザ、ユーザの雇用、ユーザの位置に関連するデータ、または他の類似のタイプのデータをも含み得る。例えば、データ114は、ユーザ102の位置が英国にあることを示すデータを含み得る。データ116も、ユーザ104の位置が英国にあることを示すデータを含み得る。データ118は、ユーザ106の位置が米国にあることを示すデータを含み得る。加えて、データ114は、ユーザ102を、財務部で働いている会計士として記述するデータを含み得る。データ114は、ユーザ102が新米のあるいは若手の会計士であることを示すこともできる。同様に、データ118は、ユーザ106を購買部の契約担当職員として記述するデータを含み得る。データ118は、ユーザ106が熟練したあるいは上級の契約担当職員であることを示すこともできる。幾つかの実装では、このデータはユーザにより入力される。例えば、ユーザ105は、データを収集する権限をユーザがシステム100に与えるときに、雇用関連データを入力することができる。幾つかの実装では、システム100は、会社が維持している人的資源データベースなどのデータストアからそのデータを取り出す。
【0022】
システム100は、データ114、116、および118を受け取り、次にデータ114、116、および118を用いてトレーニングデータを生成する。トレーニングデータを生成するために、システム100は、データ114、116、および118をプロセスラベラー120に提供する。プロセスラベラー120は、各ユーザ102、104、および106により実行されているアクションに、特定のプロセスを実行しているとラベリングする。プロセスラベラー120は、ユーザ102により実行されているアクションならびに他のコンピューティングデバイス108データを含むデータ114に、ウェブコンテンツをブラウズし、ニュースを読み、またはインターネットアクティビティのプロセスを実行しているとラベリングすることができる。プロセスラベラー120は、一定数のプロセスラベルをアクションの各グループに付けることができる。例えば、プロセスラベラー120は、アクションの各グループに1つ、3つ、または5つのラベルを付けることができる。プロセスラベラー120は、アクションの各グループに、そのアクションのグループにどのラベルを付けられるかによって、可変数のプロセスラベルを付けることもできる。
【0023】
プロセスラベラー120は、コンピューティングデバイス110のアクションおよびデータに、オンラインクイズまたはインターネットアクティビティを仕上げるプロセスを実行しているとラベリングすることができる。プロセスラベラー120は、コンピューティングデバイス112のアクションおよびデータに、サーチクエリを入力するプロセスを実行しているとラベリングすることができる。プロセスラベラー120は、アクションのグループに、ルールの所定のセットに従ってラベリングすることができる。例えば、アクションがデータをサーチエンジンに提供することを含んでいるならば、プロセスラベラー120はそれらのアクションに、サーチクエリを入力しかつウェブコンテンツをブラウズしているとラベリングする。ラベリングは、アクションを良く調べて自身の判断に基づいてラベルを付ける個人によっても実行され得る。例えば、ラベルは、ユーザ102、104、および106によって選択され得る。この場合、ユーザは、データ114、116、および118を提供することに同意し、次にそのデータのために1つ以上のラベルを選択することもできる。ラベルは、プロセスラベラー120が特定のラベルの中から選択をすることができるだけであるように、予め定義され得る。プロセスラベラー120は、アクションに任意のラベルを付けることもできる。
【0024】
幾つかの実装では、システム100および下記の他のシステムは、グルーピングモジュールを含み得る。グルーピングモジュールは、互いに類似するアクションのシリーズを自動的にグルーピングすることができる。グルーピングモジュールは、アクションのシリーズを特定するラベルを付けることもできる。幾つかの実装では、ラベルが正確であることを確認するためにアクションのシリーズを特定するラベルを個人が再調査することができる。幾つかの実装では、グルーピングモジュールがラベルを付ける代わりに個人がラベルを付けることができる。アクションのシリーズは、ユーザにより連続的に実行されるアクションまたはユーザによりほとんど連続的に実行されるアクションであり得る。アクションのシリーズは、複数のユーザにより実行されるアクションでもあり得る。幾つかの実装では、グルーピングモジュールは、類似するアクションを特定するために、階層クラスタリング、セントロイドベースのクラスタリング、分散ベースのクラスタリング、または密度ベースのクラスタリングなどのクラスタ分析を使用することができる。システム100および下記の他のシステムの他のコンポーネントは、そのコンポーネントの対応する機能を実行するために、グルーピングモジュールにより生成されたデータを使用することができる。
【0025】
プロセスラベラー120がデータ114、116、および118の各々にラベリングすると、システム100は、そのデータを特性ラベラー122に提供する。特性ラベラー122は、データ114、116、および118の各々に1つ以上の特定の特性を付ける。幾つかの実装では、特性は、特性データストア124から選択される。幾つかの実装では、特性ラベラー122は、特性を特定し、それらを特性データストア124にストアする。図1に示されている例では、データ114および116から特定される特性は、ユーザ102および104が英国に位置していることである。データ118から特定される特性は、ユーザ106が米国に位置していることである。特性ラベラー122は、次に、これらのラベルを、システム100が使用し得るように特性データストア124にストアすることができる。
【0026】
特性ラベラー122は、プロセスに対応するアクションの各グループに2つ以上の特性を割り当てることができる。例えば、特性ラベラー122は、英国というラベルと若手会計士というラベルとをデータ114に付けることができる。特性ラベラー122は、特性ラベルをデータ114、116、および118から直接抽出することができる。特性ラベラー122は、データ114、116、または118に含まれていて特性データストア124内のラベル、例えば英国および米国、に対応するラベルを特定することができる。幾つかの実装では、特性ラベラー122により割り当てられる特性は、予測モデルトレーナ126のためのトレーニングデータを生成している個人により行われ得る。幾つかの実装では、特性ラベラー122により割り当てられる特性は、個人によりチェックされベリファイされる。幾つかの実装では、特性ラベラー122は、特性ラベルを付けるためにクラスタリング技術および文脈インテリジェンスを使用する。幾つかの実装では、特性ラベラー122は、自己学習コンポーネントを含むように構成される。例えば、特性ラベラー122は、アクションの将来のグループのためにより正確に特性ラベルを付けるようにラベリングプロセスを調整するために機械学習を使用することができる。特性ラベラー122は、前もって特性でラベリングされたアクションを含むトレーニングデータを分析することができる。システム100において示されているプロセスが完了した後、ラベリングされたアクションおよびプロセスは、特性ラベラー122の特性ラベリング機能を調整調節するために特性ラベラー122に提供され得る。幾つかの実装では、システム100および下記の他のシステムのコンポーネントであって特性ラベルを特定して付ける他のコンポーネントは、類似する機械学習局面を含み得る。機械学習局面は、本明細書全体において記載される他の機械学習局面に類似し得る。
【0027】
システム100は、様々なプロセスラベルおよび特性ラベルでラベリングされたデータを予測モデルトレーナ126に提供する。予測モデルトレーナ126は、ユーザがコンピューティングデバイスで実行するアクションにラベルを付けるように設計されている予測モデルを生成する。予測モデルトレーナ126は、予測モデルを生成して予測モデルデータストア128にストアする。予測モデルトレーナ126は、ニューラルネットワークを用いて予測モデルを生成する。一例では、予測モデルトレーナ126は、ユーザがcolorの代わりにcolourというスペルを用いるならばそのユーザが英国にいると特定するモデルを生成することができる。しかし、予測モデルトレーナ126は、ユーザが選択する他のスペル、ユーザが訪れるウェブサイト、ユーザが実行する入力アクションなどの多くの要素を考慮に入れるようにモデルをトレーニングすることもできる。1つの要素では、ラベルを割り当てるために不十分であるかもしれない。幾つかの実装では、予測モデルトレーナ126は、各特性のためにモデルを生成することができる。例えば、ユーザの位置、ユーザの雇用職位、ユーザを雇用している部などを特定するモデルがあり得る。
【0028】
予測モデルデータストア128にストアされている予測モデルで、システム100は、様々なユーザのアクション、プロセス、および特性を特定することができる。図1に示されている例では、ユーザ130はコンピューティングデバイス132とインタラクトする。ユーザ130は、ウェブサイトmail.co.ukを用いて電子メールにアクセスする。電子メールに、ユーザ130は“What is your favourite colour?”と書く。コンピューティングデバイス132は、ユーザ130により実行される様々なアクションを検出するように構成されているシステム100の様々なコンポーネントと、ネットワークを介して、通信する。それらのコンポーネントは、コンピューティングデバイス132のスクリーンのイメージをキャプチャーするように構成されているイメージキャプチャラー136を含む。それらのコンポーネントは、様々なタイプのユーザ入力を検出するように構成されたユーザ入力検出器138をも含む。それらのコンポーネントは、コンピューティングデバイス132から受け取られ送信されたネットワークデータを監視するように構成されたネットワークリスナー140をも含む。幾つかの実装では、それらのコンポーネントは、フォアグラウンドで動作しているプロセスを含むコンピューティングデバイス132により実行されているプロセスを読み出すためにコンピューティングデバイス132にクエリするように構成されたデバイスを含む。
【0029】
イメージキャプチャラー136は、周期的間隔を置いてデバイス132のディスプレイに示されているデータをキャプチャーするように構成される。例えば、イメージキャプチャラー136は、5秒ごとにスクリーンショットをキャプチャーすることができる。イメージキャプチャラー136は、ユーザ入力検出器138により指令された通りにスクリーンをキャプチャーすることもできる。例えば、イメージキャプチャラー136は、ユーザがマウスをクリックしあるいはスクリーンにタッチしたときにスクリーンをキャプチャーすることができる。スクリーンショットをキャプチャーする他に、イメージキャプチャラー136は、スクリーンショットに対して光学的文字認識を実行することもできる。イメージキャプチャラー136は、アドレスバーの中のmail.co.ukのウェブアドレスおよびスクリーン上のテキスト“What is your favourite colour?”を特定することができる。イメージキャプチャラー136は、画像認識を実行することもできる。例えば、イメージキャプチャラー136は、有名人の絵画、歴史的人物、人気のあるタイプのソフトウェアのスプラッシュスクリーンなどを特定することもできる。
【0030】
ユーザ入力検出器138は、マウスクリック、キーボードプレス、スクリーンタッチ、プリントジョブ、カメラキャプチャー、マイクロフォン入力、スピーカ出力など、ユーザ入力および出力を様々なタイプのユーザ入力デバイスを通して検出するように構成される。図1に示されている例では、ユーザ入力検出器138は、ユーザが、他のキープレスに加えてキーw−h−a−t−スペース−i−s−スペース−y−o−o−バックスペース−u−rをタイピングしたことを検出する。ユーザ入力検出器138は、ポインタがピクセル248×586に位置したときにユーザがマウスをクリックしたことも検出することができる。
【0031】
ネットワークリスナー140は、コンピューティングデバイス132によって送受信されるネットワークデータパケットトラフィックを検出するように構成される。ネットワークリスナー140は、mail.co.ukサーバからデータを求めるリクエストに関連するデータパケットを受け取ることができる。mail.co.ukサーバは、コンピューティングデバイス132にデータパケットを戻すことができる。コンピューティングデバイス132で実行中のプロセスに関連するデータを受け取るように構成されているプロセス検出器は、ブラウザがフォアグラウンドで実行中であることを示すデータを受け取ることができる。プロセス検出器は、スプレッドシートプログラムおよびpdfビューワなど、他のプロセスがバックグラウンドで実行中であることを示すデータを受け取ることができる。プロセス検出器は、ユーザがpdfプログラムをフォアグラウンドに切り替え、次にブラウザをフォアグラウンドに戻す時点でデータを受け取ることができる。
【0032】
システム100は、ユーザ130によりコンピューティングデバイス132上で行われているアクティビティ134に関連するデータをアクションアイデンティファイア142に提供する。アクションアイデンティファイアは、イメージキャプチャラー136、ユーザ入力検出器138、ネットワークリスナー140、および、場合によっては、プロセス検出器から受け取ったデータに基づいてユーザにより実行されているアクションを特定するように構成される。アクションアイデンティファイア142は、実行されるアクションを判定するために、それらのコンポーネントから受け取ったデータと、データの各ピースのタイミングデータとを比較する。例えば、アクションアイデンティファイア142は、特定の時点でポインタがピクセル248×586に位置していた時にユーザがマウスをクリックしたことを示すデータを受け取る。アクションアイデンティファイア142は、スクリーンキャプチャーデータを調べて、そのピクセルが“送る”というテキストの中に位置すると判定する。アクションアイデンティファイアは、ネットワークデータを調べて、アクションアイデンティファイア142が熟知していないかもしれないエンコーディングによってのみ特定され得る特定のユーザ選択ボタンの選択に関連するデータをコンピューティングデバイス132が送ったことをネットワークトラフィックが示すと判定することもできる。このデータに基づいて、アクションアイデンティファイア142は、ユーザが“送る”ボタンをマウスで選択したと判定することができる。
【0033】
アクションアイデンティファイア142は、様々なレベルのグラニュラリティでアクションを検出するように構成可能である。例えば、アクションアイデンティファイア142は、各文字キーストロークを1つのアクションと特定しないように構成され得る。代わりに、アクションアイデンティファイア142は、スペースバー、エンターキー、または他の句読点キーをキーイングし終わることにより“your”あるいは“favourite”などの語全体を入力したと特定することができる。アクションアイデンティファイア142は、各キーストロークを、y−o−u−rが4つのキーストロークアクションであるように、1つのアクションと特定するようにも構成され得る。
【0034】
アクションアイデンティファイア142は、ユーザ130により行われる連続するアクションを特定するデータをプロセスアイデンティファイア144に提供する。アクションアイデンティファイア142により特定されるアクションは、ブラウザを開くこと、ウェブアドレスを入力すること、compose、“write What is your favourite colour”、を選択すること、user@mail.co.ukを入力すること、およびsendを選択することを含み得る。プロセスアイデンティファイア144は、予測モデル128にアクセスして、ユーザ130がアクションアイデンティファイア142により特定されたアクションで実行しているプロセスを特定するように構成される。プロセスアイデンティファイア144は、それらのアクションに対応する最も本当らしいプロセスを選択する。プロセスアイデンティファイア144は、特定のプロセスがそれらのアクションに対応する公算を示す尤度スコアを生成することができる。プロセスアイデンティファイア144は、ユーザが電子メールを作成していることの0.86のスコアを計算し得る。他のスコアは、ユーザが他のユーザとチャットしていることについての0.61、および、ユーザがソーシャルメディアウェブサイトでコメントを入力していることについての0.58であり得る。この場合、プロセスアイデンティファイア144は、ユーザ130が電子メールを作成しているらしいと判定する。幾つかの実装では、プロセスアイデンティファイア144は、様々なコンピューティングデバイスからのデータ同士を比較し、実行されているアクション同士を比較することができる。例えば、プロセスアイデンティファイア144は、ユーザがテキストを入力している間にコンピューティングデバイスからデータを受け取ることができる。ほぼ同時に、別のコンピューティングデバイスのスクリーンに類似のテキストが出現する。プロセスアイデンティファイア144は、その2つのコンピューティングデバイスのアクション同士をリンクさせて、両方のユーザが互いにチャットし合っていると判定することができる。幾つかの実装では、プロセスアイデンティファイア144は、対応するスコアが1つのスレショルドを満たすことに基づいて、アクションに対応する2つ以上のプロセスを特定することができる。例えば、プロセスアイデンティファイア144は、電子メールを作成することおよびインターネットをブラウズすることなど、0.8というスレショルドより大きなスコアを有するプロセスを特定することができる。
【0035】
プロセスアイデンティファイア144は、アクションに対応するプロセスを特定すると、それらのアクションおよび対応するプロセスを特定するデータを特性アサイナー146に提供する。特性アサイナー146は、特性データストア124にアクセスするとともに、幾つかの実装では、予測モデル128にアクセスする。特性アサイナー146は、実行されたプロセスを考慮しながらユーザが実行したアクションに基づいて様々な特性を特定することができる。例えば、ユーザ130が電子メールを作成していてスペル“colour”および“favourite”を使用するならば、ユーザ130は特性148を有し、英国に位置しているらしい。特性アサイナー146は、ユーザが電子メールを受け取ってテキスト中の“経歴”および“教育”を含む書類を見ていることに基づいてそのユーザが人事部で働いているなどの特性を割り当てることもできる。特性アサイナー146は、特性データストア124内の各特性についてスコアを計算することができる。特性アサイナー146は、その特性に、他の特性スコアを上回るスコアを割り当てることができる。代わりに、特性アサイナー146は、特性にスレショルドを満たすスコアを割り当てることができる。
【0036】
幾つかの実装では、システム100は、予測モデルトレーナ126にフィードバックを提供することができる。フィードバックは、予測モデルトレーナ126に追加のデータを提供することにより予測モデル128の精度を高めることができる。特性コンファメーション150は、自身に割り当てられた特性をコンファームまたはリジェクトするユーザ130などのユーザからフィードバックを受け取ることができる。特性コンファメーションまたはリジェクト150は、その特性が割り当てられたユーザ130から必ず受け取られるとは限らない。例えば、追加のユーザが、割り当てられた特性を再調査することができる。
【0037】
幾つかの実装では、ユーザを特性に割り当てることにより、それらのユーザがアクセスを有するシステムのセキュリティを高めることができる。ユーザは、ユーザの会社での雇用職位に基づいて割り当てられるアクセスおよびパーミッションを持つことができる。類似する職位にあるユーザにより実行されるプロセスに基づいて、システム100は、その職位にある若手グループが実行するプロセスとその職位にある熟練グループが実行するプロセスとを特定することができる。熟練グループにより実行されるプロセスは、幾つかの追加プロセスを含み得る。熟練したユーザにより実行されるこれらのプロセスの全てに対するアクセスを若手ユーザに提供する代わりに、会社は、その職位がアクセスを有するプロセスをユーザの年功序列特性に基づいて減らすことによってセキュリティを改善することができる。
【0038】
図2は、認知ロボットアナライザのための例示システム200を示す。手短に、かつ下でより詳しく記載されるように、システム200は、ユーザのコンピューティングデバイスとの以前のインタラクションに基づくトレーニングデータを受け取る。トレーニングデータは、ユーザのインタラクションが実行するプロセスと、変数データを表現するアクションとを特定する。システム200は、他のユーザのコンピューティングデバイスとのインタラクションにプロセスを割り当てるとともに、同じプロセスを実行するインタラクションのグループにおいて変数を特定する予測モデルを生成する。システム200は、ノイズ、あるいはプロセス全体と関連しないアクションをも特定することができる。
【0039】
図2に示されている例示では、システム200は、ユーザ202、204、および206に由来するトレーニングデータを受け取る。ユーザ202は、コンピューティングデバイス208とインタラクトし、インボイス処理ソフトウェアを使用して、2017年2月2日期限のABCベンダーから受け取られたインボイスを入力する。ユーザ204は、コンピューティングデバイス210とインタラクトし、インボイス処理ソフトウェアを使用して、100ドルの額のRSTベンダーから受け取られたインボイスを入力する。ユーザ206は、コンピューティングデバイス212とインタラクトし、人事ソフトウェアを使用して、開発者の職位に対する、アリスという名前の応募者に関するデータを入力する。コンピューティングデバイス208、210、および212の各々は、携帯電話、タブレット、ラップトップコンピュータ、デスクトップコンピュータ、時計、または他の、タッチスクリーン、キーボード、マイクロフォン、ポインティングデバイス、アンテナ、カメラ等のデバイスを通して入力を受け取るように構成された任意のデバイスなど、ネットワークを介して通信するように構成されたデバイスであり得る。コンピューティングデバイス208、210、および212の各々は、データをスクリーン、スピーカ、または触覚フィードバックデバイスに出力するようにも構成される。
【0040】
図1のシステム100と同様に、システム200は、入力および出力データを監視し収集することによってトレーニングデータを生成するように構成される。システム200は、スクリーンキャプチャーデータを収集し、画像認識、光学的文字認識を実行し、ネットワークトラフィックを監視し、キーボードプレス、マウス位置およびクリック、タッチデータ、マイクロフォンを通して受け取られたオーディオデータ、あるいはカメラを通して受け取られたビジュアルデータを検出することができる。システム200は、所定の間隔を置いて、またはマウスクリックなどのデータを受け取ったことに応答して、このデータを収集することができる。
【0041】
システム200は、コンピューティングデバイスにより実行され各ユーザにより使用されるコンピューティングプロセスおよびソフトウェアに関連するプロセスデータを収集することができる。システム200は、ユーザ、ユーザの雇用、ユーザの位置に関連するデータ、または他の類似タイプのデータを収集することもできる。そのデータは、その会社におけるユーザの年功序列を記述することができる。このデータはユーザにより提供され得るか、あるいは、システム200は、会社により維持されている人事データストアからデータを検索することができる。
【0042】
システム200は、データ214、216、および218をプロセスラベラー220に提供する。プロセスラベラー120と同様に、プロセスラベラー220は、ユーザ202、204、および206により実行されたアクションに1つ以上のプロセスを実行しているとラベリングする。プロセスラベラー220は、データ214および216にそれぞれインボイスを入力するプロセスを実行しているとラベリングする。プロセスラベラー220は、データ218に、履歴書を人事データストアに入力するプロセスを実行しているとラベリングする。
【0043】
システム200は、データ214、216、および218ならびにプロセスラベルを変数アイデンティファイア222に提供する。変数アイデンティファイア222は、類似するプロセスのアクションにおける変数を特定する。例えば、変数アイデンティファイア122は、データ214および216の間で変数を特定することができる。データ214は、テキストABCおよび日付2017年2月2日を含む。データ216は、テキストRSTおよび数100を含む。これら2つのプロセスは、インボイスを入力するという同じラベルを共有しているので。幾つかの実装では、変数アイデンティファイア222は、各変数に関連するデータを特定し、かつ、場合によってはストアすることができる。例えば、変数アイデンティファイア220は、ABCおよびRSTをベンダーの名前と特定し、2017年2月2日を期限と特定し、100をインボイス額と特定することができる。変数アイデンティファイア220は、ベンダー、期限、および額などのデータを変数データストア224にストアすることができる。同様に、データ218については、変数アイデンティファイア222は、変数アリスおよび開発者を特定することができる。特性ラベラー122の場合と同じく、変数アイデンティファイア222は、データ214、216、および218を調べて各プロセスの各実行で変化しそうなデータ部分を特定する一人以上の個人により実装され得る。
【0044】
システム200は、様々なプロセスラベルおよび変数アイデンティファイアでラベリングしたデータを予測モデルトレーナ226に提供する。予測モデルトレーナ126と同様に、予測モデルトレーナ226は、ユーザがコンピューティングデバイスで実行するアクションにラベルを付けるように設計されている予測モデルを生成する。予測モデルトレーナ226は、予測モデルを生成して予測モデルデータストア228にストアする。予測モデルトレーナ226は、ニューラルネットワークを用いて予測モデルを生成する。一例においては、もしユーザがインボイス処理プログラムにアクセスして、ベンダー、期限、および額を特定すると思われるデータを入力したならば、予測モデルトレーナ226は、ユーザがベンダーインボイスを入力するプロセスを実行しているとするモデルを生成することができる。しかし、予測モデルトレーナ226は、語のスペル、使用された他のソフトウェア、訪れたウェブサイトなどの他の要素を考慮に入れるようにモデルをトレーニングすることもできる。ラベルを割り当てるには1つの要素では不十分であろう。幾つかの実装では、予測モデルトレーナ226は、各プロセスのためにモデルを生成することができる。例えば、インボイスを入力することを特定するモデル、履歴書を入力することを特定するモデル、電子メールを送ることを特定するモデル、カレンダーアポイントメントを入力することを特定するモデル、などがあり得る。
【0045】
予測モデルデータストア228に予測モデルがストアされていれば、システム200は、アクション、プロセス、および変数を特定できる状態にある。図2に示されている例では、ユーザ230はコンピューティングデバイス232とインタラクトする。ユーザ230は、インボイス処理ソフトウェアにアクセスして、インボイス番号123、ベンダーXYZ、期限2017年1月1日、および支払高100ドルを入力する。コンピューティングデバイス232は、ネットワークを介して、ユーザ230が実行する様々なアクションを検出するように構成されているシステム200の様々なコンポーネントと通信する。それらのコンポーネントは、コンピューティングデバイス232のスクリーンのイメージをキャプチャーするように構成されているイメージキャプチャラー236を含む。それらのコンポーネントは、様々なタイプのユーザ入力を検出するように構成されているユーザ入力検出器238をも含む。それらのコンポーネントは、コンピューティングデバイス232から送受信されるネットワークデータを監視するように構成されているネットワークリスナー240をも含む。幾つかの実装では、それらのコンポーネントは、フォアグラウンドで実行中のプロセスを含むコンピューティングデバイス232により実行されているプロセスを検索するためにコンピューティングデバイス232にクエリするように構成されているデバイスを含む。イメージキャプチャラー236、ユーザ入力検出器238、およびネットワークリスナー240は、図1の対応するコンポーネントと同様の特性を有する。
【0046】
イメージキャプチャラー236は、デバイス232のディスプレイで示されているデータを、定期的間隔を置いてキャプチャーするように構成される。例えば、イメージキャプチャラー236は、5秒ごとにスクリーンショットをキャプチャーすることができる。イメージキャプチャラー236は、ユーザ入力検出器238により指示された通りにスクリーンをキャプチャーすることもできる。例えば、イメージキャプチャラー236は、ユーザがマウスをクリックしたときあるいはスクリーンにタッチしたときにスクリーンをキャプチャーすることができる。スクリーンショットをキャプチャーする他に、イメージキャプチャラー236は、スクリーンショットに対して光学的文字認識を実行することもできる。イメージキャプチャラー236は、テキスト123、XYZ、$100、および1/1/2017を特定することができる。イメージキャプチャラー236は、画像認識を行うこともできる。例えば、イメージキャプチャラー236は、インボイス処理ソフトウェアのロゴをできるであろう。
【0047】
ユーザ入力検出器238は、マウスクリック、キーボードプレス、スクリーンタッチ、プリントジョブ、カメラキャプチャー、マイクロフォン入力、スピーカ出力など、種々のユーザ入力デバイスを通るユーザ入力および出力を検出するように構成される。図2に示されている例では、ユーザ入力検出器238は、ユーザが他のキープレスに加えてキー1−2−3−タブ−XYZ−タブ−100をタイピングしたことを検出する。ユーザ入力検出器238は、カーソルがピクセル679×541に位置していたときにユーザが“123”とタイピングしたことをも検出することができる。
【0048】
ネットワークリスナー240は、コンピューティングデバイス232により送受信されるネットワークデータパケットトラフィックを検出するように構成される。ネットワークリスナー240は、社内サーバからデータを求めるリクエストに関連するデータパケットを受け取ることができる。その内部サーバは、コンピューティングデバイス232にデータパケットを戻すことができる。コンピューティングデバイス232で実行中のプロセスに関連するデータを受け取るように構成されているプロセス検出器は、インボイス処理ソフトウェアがフォアグラウンドで実行中であることを示すデータを受け取ることができる。プロセス検出器は、電子メールプログラムおよびウェブブラウザなどの他のプロセスがバックグラウンドで実行中であることを示すデータを受け取ることができる。プロセス検出器は、ユーザがウェブブラウザプログラムをフォアグラウンドへ切り替えてからインボイス処理ソフトウェアをフォアグラウンドに戻す時点でデータを受け取ることができる。
【0049】
システム200は、コンピューティングデバイス232でユーザ230により実行されているアクティビティ234に関連するデータをアクションアイデンティファイア242に提供する。アクションアイデンティファイア142と同様に、アクションアイデンティファイア242は、イメージキャプチャラー236、ユーザ入力検出器238、ネットワークリスナー240、および、場合によってはプロセス検出器から受け取ったデータに基づいてユーザ230により実行されたアクションを特定するように構成される。アクションアイデンティファイア242は、コンポーネントから受け取ったデータとデータの各ピースのタイミングデータとを比較して、実行されたアクションを判定する。例えば、アクションアイデンティファイア242は、特定の時点でカーソルがピクセル679×541に位置していたときにユーザが“123”をタイピングしたことを示すデータを受け取る。アクションアイデンティファイア242は、スクリーンキャプチャーデータを調べて、そのピクセルが“インボイス番号”のテキストの近くに位置すると判定する。アクションアイデンティファイアは、ネットワークデータも調べて、コンピューティングデバイス232がテキスト“123”を含むデータパケットを社内サーバに送ったことをネットワークトラフィックが示していると判定する。このデータに基づいて、アクションアイデンティファイア142は、ユーザ230が“インボイス番号”とラベリングされているフィールドを選択してからテキスト“123”を入力したと判定することができる。
【0050】
アクションアイデンティファイア242は、様々なレベルのグラニュラリティでアクションを検出するように設定可能であり得る。例えば、アクションアイデンティファイア242は、各文字キーストロークを1つのアクションと特定しないように設定され得る。代わりにアクションアイデンティファイア242は、スペース、句読点キー、またはキーボード以外の別の入力により分離されている文字のグループをユーザが入力したときを特定することができる。あるいは、アクションアイデンティファイア242は、1−2−3が3つの特定されたアクションであるように、各キーストロークを1つのアクションと特定するようにも設定され得る。
【0051】
アクションアイデンティファイア242は、ユーザ230により実行された連続するアクションを特定するデータをプロセスアイデンティファイア244に提供し、プロセスアイデンティファイア244はプロセスアイデンティファイア144と同様の機能性を有する。アクションアイデンティファイア242により特定されたアクションは、“インボイス番号”の近くでマウスをクリックしたこと、“123”をタイピングしたこと、タブキーを選択してカーソルをテキスト“ベンダー”の近くへ移したこと、“XYZ”をタイピングしたことを含み得る。プロセスアイデンティファイア244は、ユーザ230がアクションアイデンティファイア242により特定されたアクションで実行しているプロセスを特定するために予測モデル228にアクセスするように構成される。プロセスアイデンティファイア244は、それらのアクションに対応する最も本当らしいプロセスを選択する。プロセスアイデンティファイア244は、特定のプロセスがそれらのアクションに対応する公算を示す尤度スコアを生成することができる。プロセスアイデンティファイア144は、ユーザがインボイスを入力することについて0.76のスコアを計算することができる。他のスコアは、ユーザが電子メールを作成することについての0.54と、ユーザがスプレッドシートにデータを入力することについての0.39であり得る。この場合、プロセスアイデンティファイア244は、ユーザ230がおそらくインボイスを入力していると判定する。
【0052】
システム200は、ユーザ230により実行された連続するアクションと本当らしいプロセスとを特定するデータをノイズ検出器246に提供する。ノイズ検出器246は、同じプロセスを実行しているとラベリングされているアクションの以前のグループにアクセスする。図2に示されている例では、ノイズ検出器246は、インボイスを入力するプロセスを実行するアクションのグループを検索する。ノイズ検出器246は、それらのプロセスの中の類似するアクションを特定するとともに幾つかのアクションをノイズと特定する。ノイズアクションは、コアプロセスに関連していなくてユーザによる付加的な入力もしくはアクティビティを表すものであり得る。例えば、ノイズ検出器246は、ユーザ230のアクションを、インボイスを入力するアクションの他のグループと比較する。ノイズ検出器246は、“socialmedia.com”、“shopping.com”、または“lunch”をタイピングするなどの幾つかのアクションを、これらのアクションはアクションの対応するグループから除去されたとしてもそのプロセスに影響を及ぼさないので、インボイスを入力するというコアプロセスの一部ではないと特定することができる。ノイズ検出器246は、アクションがノイズに対応するかどうかを、そのアクションを除去してアクションのアップデートされたグループをプロセスアイデンティファイア244に提供することにより、テストすることができる。プロセスアイデンティファイアにより戻されたスコアに基づいて、ノイズ検出器246は、そのアクションがノイズだったのかどうか判定することができる。例えば、スコアが特定量低下するならば、そのアクションがノイズである公算はより小さいであろう。スコアが変化しなければ、そのアクションがノイズである公算はより大きい。
【0053】
システム200は、ユーザ230により実行された連続するアクションを特定するデータ、ノイズアクション、および本当らしいプロセスを特定するデータを変数アサイナー248に提供する。変数アサイナー248は、コアプロセスの部分ではあるけれどもそのプロセスを実行するアクションのグループの各々について通例変動する情報を含む変数ラベルをアクションに割り当てる。もし1つの変数がアクションのグループから除去されたならばアクションのそのグループが同じプロセスに対応する公算がより小さくなるようにプロセススコアが変化し得るという点で、ノイズとは異なる変数。例えば、もしユーザ230により実行されたアクションが“123”をタイピングすること、あるいは“XYZ”をタイピングすることを含んでいなければ、プロセスアイデンティファイア244は、計算されたスコアに基づいて、それらのアクションがインボイスを入力するプロセスに対応する公算がより小さいと判定することができる。従って、変数アサイナー248は、“123”をタイピングするアクションおよび“XYZ”をタイピングするアクションを変数とラベリングすることができる。
【0054】
幾つかの実装では、変数アサイナー248は、変数の以前に特定された名前を含む変数データストア224にアクセスする。変数アサイナー248は、特定された変数の各々に変数名を割り当てることができる。変数アサイナー248は、ユーザが変数を入力する少し前または直後に実行されたアクションに基づいて変数名を割り当てることができる。例えば、“123”をタイピングするアクションより前に、カーソルをテキスト“インボイス番号”の近くへ移動させるアクションが行われる。変数アサイナー248は、この情報を用いて、“インボイス番号”が変数データストア224において名づけられている変数であることに基づいて、その変数に“インボイス番号”と名付けることができる。図2に示されている例では、変数アサイナー248は、変数250にインボイス番号、ベンダー、期限、および額と名付ける。
【0055】
システム200は、プロセスアイデンティファイア244、ノイズ検出器246、および変数アサイナー248により割り当てられたラベルを確認またはリジェクトするユーザ230または他の個人からのフィードバックを勧誘するように構成されたプロセスおよび変数コンファメーション252を含むことができる。特性コンファメーション150と同様に、システム200は、予測モデル228を調整しアップデートするためにそのフィードバックを予測モデルトレーナ226に提供することができる。
【0056】
システム200は、プロセスの自動化を生成し改善するために使用され得る。例えば、システム200は、プロセスを実行するユーザを調べることによりプロセスを実行する高速の仕方を特定することができるとともにそのプロセスの必須のアクションを特定することができる。図2を参照すると、システム200は、インボイスを入力するプロセスを実行する少数のアクションを特定することができる。同様に、システム200は、インボイスを入力するプロセスを長くするアクションを特定することができる。システムは、そのとき、不必要なアクションを実行するユーザにガイダンスを提供することができる。
【0057】
幾つかの実装では、システム100および200は、プロセスマイニング技術のために使用され得る。プロセスマイニング技術は、アクションに含まれているトレンド、パターン、および詳細を特定するために、特定されたアクションおよび特定されたプロセスに適用され得る。上記のコンポーネントのうちの幾つかと同様に、処理マイニング技術は、トレンド、パターン、および詳細を特定する機能を調整調節するために機械学習を採用することができる。
【0058】
図3は、認知ロボットアナライザのための例示システム300を示す。システム300は、4つのステージ、すなわち、キャプチャーステージ320、収集およびエンハンスステージ340、分析ステージ360、および結果ステージ380、にグルーピングされ得る。システム300は、類似する特性に応じてユーザをグルーピングし、次に同じ特性を有するユーザに共通パーミッションを割り当てるように構成される。
【0059】
キャプチャーステージ320は、ユーザがコンピューティングデバイスで実行するアクションに関連するデータを収集する。アクションは、マウスクリック、キーボードタイピング、タッチスクリーンスワイプ、使用されたソフトウェアなどに関連し得る。システム300は、キャプチャーされたアクションデータを収集およびエンハンスステージ340に提供する。収集およびエンハンスステージ340は、生の入力および出力アクションを、ブラウザを開く、ウェブアドレスを入力する、電子メールを開く、添付ファイルを開くなどのより高いレベルのアクションへ精選する。
【0060】
分析ステージ360は、収集およびエンハンスステージ340からアクションデータを受け取り、それらのアクションにより実行されているプロセスを特定するために予測モデルを適用する。予測モデルは、それらのアクションにより実行されるプロセスを特定するためにニューラルネットワーク、機械学習、ディープラーニング、文脈インテリジェンス、およびデータクラスタリングを利用することができる。幾つかの実例プロセスは、ウェブサイトを訪れることまたは添付ファイルを受け取って見ることを含み得る。分析ステージ360は、ユーザがプロセスを完成させる際に取るアクションに基づいて各ユーザの種々の特性をも判定する。例えば、co.ukで終わるウェブページを訪れるかあるいはスペル“colour”を使用するユーザは英国に位置するであろう。履歴書、カバーレター、またはCVという名前の添付ファイルを伴う電子メールを受け取るユーザは人事部に雇用されているであろう。ソフトウェア開発ツールを使用することを含むプロセスを実行するユーザは、開発者であろう。
【0061】
結果ステージ380は、分析ステージ360からユーザ特性を受け取り、特性に応じてユーザをグルーピングする。結果ステージ360は、1つの特性を共有するユーザたちに一定のパーミッションを与え、他の特性を共有している他のユーザにはパーミッションを与えないことができる。システムは、パーミッションを、ユーザが実行しているであろうと推測されるアクションではなくてユーザにより実行された現実のアクションに基づかせることができる。
【0062】
図4は、類似するプロセスを実行するアクションの実例グループ400を示す。アクションの各グループは、システム200により同じプロセスを実行していると特定され得る。例えば、アクションのグループ405、410、415、および420は、それぞれインボイスを入力するプロセスを実行できる。
【0063】
各グループのアクションの各々は、円および対応する文字により示されている。アクションは、マウスをクリックする、文字のシリーズをタイピングする、ソフトウェアを開く、アプリケーションを切り替える、などの、上で論じられたものに類似するアクションを含み得る。同様のアクションは同様の文字により示されている。例えば、Tアクションは全て同じまたは類似するアクションを実行する。システムがグループ405、410、415、および420のアクションを比較するとき。システムは、アクション425がグループ420に挿入されているのにアクション425の前後のアクションが他のグループ405、410、および415のアクションに対応するので、アクション425をノイズと特定する。
【0064】
システムは、変数に対応するアクションを特定することもできる。グループ405、410、415、および420を分析するとき、システムは、それぞれ異なる情報を含むアクション430を特定する。アクション430の前後のアクションの各々は同じアクションに対応し、かつ、各グループ405、410、415、および420は同じプロセスに対応するので、システムは、アクション430を変数と特定する。グループ435は、ノイズ425が除去されて変数が“X”に置き換えられている完全なプロセスを示す。
【0065】
図5は、認知ロボットアナライザのための実例プロセス500を示す。一般に、プロセス500は、各ユーザが実行するプロセスまたはアクションに基づいてユーザを特定の特性を有すると分類するために予測モデルをトレーニングする。プロセス500は、1つ以上のコンピュータを含むコンピュータシステム、例えば図1に示されているシステム100、により実行されるものとして記載されるであろう。
【0066】
システムは、複数のユーザ特性のうちの各ユーザ特性について、第1プロセスを実行する1つ以上の第1アクションを特定する第1データ、および、第1プロセスと類似するとラベリングされた第2プロセスを実行する1つ以上の第2アクションを特定する第2データを受け取る(510)。幾つかの実装では、システムは、各プロセスについて受け取られたスクリーンキャプチャーされたデータに対してコンピュータビジョン技術を実行する。コンピュータビジョン技術は、光学的文字認識および画像認識を実行することができる。幾つかの実装では、システムは、各プロセスについてユーザ入力データを受け取る。ユーザ入力データは、キーボード入力、マウスクリック、カメラキャプチャーデータ、マイクロフォンキャプチャーデータ、スピーカへのオーディオ出力、プリンタに送られるデータ、無線で送受信されるデータなどを含み得る。幾つかの実装では、システムは、デバイスにより送受信される有線または無線ネットワークパケットに基づくネットワークトラフィックデータを受け取る。
【0067】
システムは、各ユーザ特性についての第1データを用いるとともに各ユーザ特性についての第2データを用いて、アクションを第1プロセスおよび第2プロセスに類似するかまたは類似しないと分類するように構成された予測モデルをトレーニングする(520)。幾つかの実装では、プロセスは、もしそれらのプロセスが同じソフトウェアまたはハードウェアを使用するならば、類似する。幾つかの実装では、プロセスは、もしそれらがインボイスを入力する、電子メールを送る、またはサーチクエリを入力するなどの同じ最終結果に対応するならば、類似している。幾つかの実装では、予測モデルは、モデルを生成するためにニューラルネットワーク、機械学習、ディープラーニング、およびデータクラスタリングを使用する。
【0068】
システムは、ユーザにより実行されたアクションを特定するデータを受け取る(530)。幾つかの実装では、アクションはキープレス、マウスクリック、スクリーンタッチ、フォアグラウンドプロセス変更、シーン変更、ネットワークリクエスト、またはネットワーク受信を含む。システムは、それらのアクションのうちの1つ以上に対して予測モデルを適用する(540)。システムは、それらのアクションのうちの1つ以上に対して予測モデルを適用したことに基づいて、その1つ以上のアクションにより実行されたプロセスを、特定のユーザ特性と関連付けられた特定のプロセスに類似すると分類する(550)。幾つかの実装では、プロセスは、ウェブサイトを見るための、1つのタイプの電子メール添付ファイルを受け取るための、1つのタイプのデータを入力するための、ウェブ検索を実行するための、または1つのタイプのソフトウェアを使用するための、アクションのグループである。
【0069】
システムは、ユーザを特定のユーザ特性と関連付ける(560)。幾つかの実装では、ユーザ特性は、会社、地理的位置、事業単位、職務、または専門技術レベルを特定する。幾つかの実装では、システムは、割り当てられた特性を確認またはリジェクトするオプションをユーザに提供する。例えば、ユーザは、ユーザが英国に位置していることを確認することができる。システムは、次にこのデータを使用して予測モデルを調整または再トレーニングすることができる。同様に、ユーザが英国に位置しているという特性をユーザがリジェクトするならば、システムはそのデータを使用して予測モデルを調整または再トレーニングするであろう。
【0070】
図6は、認知ロボットアナライザのための実例プロセスを示す。一般に、プロセス600は、プロセスを実行するアクションのグループの中の変数を特定するように予測モデルをトレーニングする。プロセス600は、1つ以上のコンピュータを含むコンピュータシステム、例えば図2に示されているシステム200、により実行されると記載されるであろう。
【0071】
システムは、同じプロセスを実行するとラベリングされている1つ以上のアクションのグループを特定するデータを受け取る(610)。システムは、1つ以上のアクションの各グループにおいて、変数情報と関連付けられている特定のアクションを特定する(620)。幾つかの実装では、システムは、受け取ったデータに対して光学的文字認識および画像認識などのコンピュータビジョン技術を実行する。幾つかの実装では、システムは、キーボード入力、マウスクリック、カメラキャプチャーデータ、マイクロフォンキャプチャーデータ、スピーカへのオーディオ出力、プリンタに送られるデータ、無線で送受信されるデータなどを含み得るようなユーザ入力を分析することによってアクションを特定する。幾つかの実装では、システムは、デバイスにより送受信された有線または無線ネットワークパケットに基づくネットワークトラフィックデータを受け取る。
【0072】
システムは、同じプロセスを実行するとラベリングされた1つ以上のアクションのグループを特定するデータを使用するとともに変数情報と関連付けられた特定のアクションを使用して、(i)1つ以上のアクションのグループを、同じプロセスを実行しているかまたは同じプロセスを実行していないと分類し、(ii)1つ以上のアクションのグループのうちの、変数情報と関連付けられているアクションを特定するように構成されている予測モデルをトレーニングする(630)。幾つかの実装では、予測モデルは、ニューラルネットワーク、機械学習、ディープラーニング、およびデータクラスタリングを用いてモデルを生成する。
【0073】
システムは、アクションの所与のグループを特定するデータを受け取る(640)。幾つかの実装では、アクションはキープレス、マウスクリック、スクリーンタッチ、フォアグラウンドプロセス変更、シーン変更、ネットワークリクエスト、またはネットワーク受信である。システムは、アクションのその所与のグループに対して予測モデルを適用する(650)。幾つかの実装では、システムは、アクションのその所与のグループに対して予測モデルを適用することに基づいて、アクションのその所与のグループのうちの、ノイズアクションと関連付けられている付加的アクションを特定する。例えば、ノイズアクションは、通例特定のプロセスに対応するアクションの前後の、スプレッドシートにインボイスを入力しているときにショッピングをタイピングするなどの、アクションであり得る。システムは、アクションの所与のグループに対して予測モデルを適用することに基づいて、アクションのその所与のグループを同じプロセスを実行していると分類するとともにアクションのその所与のグループのうちの変数情報と関連付けられている所与のアクションを特定する(660)。
【0074】
システムは、アクションの所与のグループを、同じプロセスを実行すると分類するデータ、ならびに、所与のアクションおよび変数情報を特定するデータを出力する(670)。幾つかの実装では、システムは、アクションのグループを、同じプロセスを実行すると確認するかあるいはリジェクトするか、変数情報は実際に可変であるのか確認するかあるいはリジェクトするオプションをユーザに提供する。システムは、予測モデルをトレーニングまたは調整するためにユーザのレスポンスを使用することができる。幾つかの実装では、システムは、変数情報に名前を割り当てる。名前は、“インボイス番号”または“ベンダー”など、変数と関係の深いアクションに関連付けられ得る。幾つかの実装では、システムは、変数情報に対応する変数のタイプを判定する。そのタイプは、整数、ストリング、長い数、倍精度浮動小数点数、キャラクタ、または他の任意のコンピュータ変数タイプを含み得る。
【0075】
図7は、本明細書に記載された技術を実装するために使用され得るコンピューティングデバイス700およびモバイルコンピューティングデバイス750の例を示す。コンピューティングデバイス700は、ラップトップ、デスクトップ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなどの種々の形のデジタルコンピュータを代表するべく意図されている。モバイルコンピューティングデバイス750は、パーソナルデジタルアシスタント、携帯電話、スマートフォン、および他の同様のコンピューティングデバイスなど、種々の形のモバイルデバイスを代表するべく意図されている。ここに示されているコンポーネント、それらの接続および関係、ならびにそれらの機能は、単なる例であると意図され、限定を意図したものではない。
【0076】
コンピューティングデバイス700は、プロセッサ702、メモリ704、記憶デバイス706、メモリ704と複数の高速拡張ポート710とに接続する高速インターフェース708、ならびに低速拡張ポート714と記憶デバイス706とに接続する低速インターフェース712を含む。プロセッサ702、メモリ704、記憶デバイス706、高速インターフェース708、高速拡張ポート710、および低速インターフェース712の各々は、種々のバスを用いて相互接続され、共通のマザーボードにあるいは他の適切な仕方で搭載され得る。プロセッサ702は、高速インターフェース708に結合されたディスプレイ716などの外部入力/出力デバイスでGUIのためのグラフィック情報を表示する、メモリ704にまたは記憶デバイス706にストアされている命令を含めて、コンピューティングデバイス700の中で実行される命令を処理することができる。他の実装では、複数のメモリおよび複数のタイプのメモリの他に、複数のプロセッサおよび/または複数のバスが適宜使用され得る。さらに、必要なオペレーションの部分をそれぞれ提供するような複数のコンピューティングデバイスが接続され得る(例えば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)。
【0077】
メモリ704は、コンピューティングデバイス700の中の情報をストアする。幾つかの実装では、メモリ704は1つまたは複数の揮発性メモリユニットである。幾つかの実装では、メモリ704は1つまたは複数の不揮発性メモリユニットである。メモリ704は、磁気ディスクまたは光ディスクなど、他の形のコンピュータ可読媒体でもあり得る。
【0078】
記憶デバイス706は、コンピューティングデバイス700のために大容量記憶を提供することができる。幾つかの実装では、記憶デバイス706は、フロッピーディスクデバイス、ハードディスクデバイス、光ディスクデバイス、もしくはテープデバイス、フラッシュメモリもしくは他の類似のソリッドステートメモリデバイス、あるいは、ストレージエリアネットワークもしくは他の構成のデバイスを含むデバイスのアレイなどの、コンピュータ可読媒体であり得、あるいはこれらを含み得る。命令は、情報キャリヤにストアされ得る。命令は、1つ以上の処理デバイス(例えば、プロセッサ702)により実行されると、上記の方法の様な1つ以上の方法を実行する。命令は、コンピュータ可読のもしくは機械可読の媒体などの1つ以上の記憶デバイス(例えば、メモリ704、記憶デバイス706、またはプロセッサ702上のメモリ)によってもストアされ得る。
【0079】
高速インターフェース708はコンピューティングデバイス700のための帯域幅集約的オペレーションを管理し、低速インターフェース712は低帯域幅集約的オペレーションを管理する。このような機能割り当ては単なる例である。幾つかの実装では、高速インターフェース708は、メモリ704、ディスプレイ716に(例えば、グラフィクスプロセッサまたはアクセラレータを通して)、および、種々の拡張カードを受け入れ得る高速拡張ポート710に結合される。この実装では、低速インターフェース712は、記憶デバイス706および低速拡張ポート714に結合される。種々の通信ポート(例えば、USB、ブルートゥース、イーサネット、無線イーサネット)を含み得る低速拡張ポート714は、キーボード、ポインティングデバイス、スキャナなどの1つ以上の入力/出力デバイスに、または例えばネットワークアダプタを通して、スイッチもしくはルータなどのネットワーキングデバイスに、結合され得る。
【0080】
コンピューティングデバイス700は、図に示されているように、様々な形で実装され得る。例えば、コンピューティングデバイス700は、標準的サーバ720として、あるいは数回、そのようなサーバのグループにおいて、実装され得る。さらに、コンピューティングデバイス700は、ラップトップコンピュータ722などのパーソナルコンピュータにおいて実装され得る。コンピューティングデバイス700は、ラックサーバシステム724の部分としても実装され得る。あるいは、コンピューティングデバイス700のコンポーネントは、モバイルコンピューティングデバイス750などのモバイルデバイスにおいて他のコンポーネントと組み合わされ得る。そのようなデバイスの各々は、コンピューティングデバイス700およびモバイルコンピューティングデバイス750のうちの1つ以上を含むことができ、システム全体は、互いに通信し合う複数のコンピューティングデバイスから構成され得る。
【0081】
モバイルコンピューティングデバイス750は、プロセッサ752、メモリ764、ディスプレイ754などの入力/出力デバイス、通信インターフェース766、およびトランシーバ768を含むが、他にもコンポーネントはある。モバイルコンピューティングデバイス750は、追加のストレージを提供するマイクロドライブもしくは他のデバイスなどの記憶デバイスも備えることができる。プロセッサ752、メモリ764、ディスプレイ754、通信インターフェース766、およびトランシーバ768の各々は種々のバスを用いて相互に接続され、これらのコンポーネントのうちの幾つかは共通のマザーボード上に、或いは適宜他の仕方で、搭載され得る。
【0082】
プロセッサ752は、メモリ764にストアされている命令を含めて、モバイルコンピューティングデバイス750内で命令を実行することができる。プロセッサ752は、別々の複数のアナログおよびデジタルプロセッサを含むチップのチップセットとして実装され得る。プロセッサ752は、例えば、ユーザインターフェース、モバイルコンピューティングデバイス750により実行されているアプリケーション、およびモバイルコンピューティングデバイス750による無線通信の制御など、モバイルコンピューティングデバイス750の他のコンポーネントの調整に役立ち得る。
【0083】
プロセッサ752は、制御インターフェース758と、ディスプレイ754に結合されているディスプレイインターフェース756とを通して、ユーザと通信することができる。ディスプレイ754は、例えば、TFT(Thin−Film−Transistor Liquid Crystal Display:薄膜トランジスタ液晶表示装置)ディスプレイまたはOLED(Organic Light Emitting Diode:有機発光ダイオード)ディスプレイ、または他の適切なディスプレイ技術であり得る。ディスプレイインターフェース756は、グラフィック情報および他の情報をユーザに提示するためにディスプレイ754を駆動するための適切な回路を含み得る。制御インターフェース758は、ユーザからコマンドを受け取って、それらをプロセッサ752に提出するべく変換することができる。さらに、外部インターフェース762は、モバイルコンピューティングデバイス750の他のデバイスとの近域通信を可能にするために、プロセッサ752との通信を与えることができる。外部インターフェース762は、例えば幾つかの実装で有線通信に、あるいは別の実装で無線通信に役立つことができ、複数のインターフェースも使用され得る。
【0084】
メモリ764は、モバイルコンピューティングデバイス750の中で情報をストアする。メモリ764は、1つまたは複数のコンピュータ可読媒体、1つまたは複数の揮発性メモリユニット、または1つまたは複数の不揮発性メモリユニットのうちの1つ以上として実装され得る。拡張メモリ774も設けられて拡張インターフェース772を通してモバイルコンピューティングデバイス750に接続されることができ、拡張インターフェース772は例えばSIMM(Single In Line Memory Module:シングルインラインメモリモジュール)カードインターフェースを含むことができる。拡張メモリ774は、モバイルコンピューティングデバイス750のために余分のストレージスペースを提供することができ、あるいは、モバイルコンピューティングデバイス750のためのアプリケーションまたは他の情報をストアすることもできる。特に、拡張メモリ774は、上記のプロセスを実行しあるいは補足する命令を含むことができ、セキュア情報も含むことができる。従って、例えば、拡張メモリ774は、モバイルコンピューティングデバイス750のためのセキュリティモジュールとして設けられることができ、モバイルコンピューティングデバイス750のセキュアな使用を可能にする命令でプログラムされることができる。さらに、ハッキングできない仕方で識別情報をSIMMカードに置くなど、追加の情報と共に、SIMMカードを介してセキュアアプリケーションが設けられ得る。
【0085】
メモリは、下記のように、例えば、フラッシュメモリおよび/またはNVRAMメモリ(不揮発性ランダムアクセスメモリ)を含み得る。幾つかの実装では、命令は情報キャリヤにストアされる。それらの命令は、1つ以上の処理デバイス(例えば、プロセッサ752)により実行されると、上記の方法などの、1つ以上の方法を実行する。命令は、1つ以上のコンピュータ可読媒体または機械可読媒体(例えば、メモリ764、拡張メモリ774、またはプロセッサ752上のメモリ)などの1つ以上の記憶デバイスによってもストアされ得る。幾つかの実装では、命令は、例えば、トランシーバ768または外部インターフェース762を伝わる伝播信号で受信され得る。
【0086】
モバイルコンピューティングデバイス750は、必要ならばデジタル信号処理回路を含み得る通信インターフェース766を通して無線で通信することができる。通信インターフェース766は、GSM音声通話(Global System for Mobile communications:モバイル通信のためのグローバルシステム)、SMS(Short Message Service:ショートメッセージサービス)、EMS(Enhanced Messaging Service:エンハンストメッセージングサービス)、またはMMSメッセージング(Multimedia Messaging Service:マルチメディアメッセージングサービス)、CDMA(code division multiple access:符号分割多重アクセス)、TDMA(time division multiple access:時分割多重アクセス)、PDC(Personal Digital Cellular:パーソナルデジタルセルラー)、WCDMA(Wideband Code Division Multiple Access:広帯域符号分割多重アクセス)、CDMA2000、またはGPRS(General Packet Radio Service:汎用パケット無線サービス)およびその他など、種々のモードまたはプロトコルのもとでの通信に役立ち得る。このような通信は、例えば、無線周波数を用いてトランシーバ768を通して生じ得る。さらに、ブルートゥース、WiFi、または他のそのようなトランシーバを用いるなどして、短距離通信が生じ得る。さらに、GPS(Global Positioning System:全地球測位システム)レシーバモジュール770は、追加のナビゲーション関連および位置関連無線データをモバイルコンピューティングデバイス750に提供することができ、そのデータは、モバイルコンピューティングデバイス750で実行中のアプリケーションにより適宜使用され得る。
【0087】
モバイルコンピューティングデバイス750は、ユーザから発話された情報を受け取ってそれを使用可能なデジタル情報に変換し得るオーディオコーデック760を用いて可聴的に通信することもできる。オーディオコーデック760は、同様に、例えばモバイルコンピューティングデバイス750のハンドセットで、スピーカを通すなどして、ユーザのために可聴音を生成することができる。そのような音は、音声電話機通話からの音を含むことができ、記録されている音を含むことができ(例えば、音声メッセージ、ミュージックファイルなど)、モバイルコンピューティングデバイス750で動作しているアプリケーションにより生成された音を含むこともできる。
【0088】
モバイルコンピューティングデバイス750は、図に示されているように、様々な形で実装され得る。例えば、モバイルコンピューティングデバイス750は、携帯電話780として実装され得る。モバイルコンピューティングデバイス750は、スマートフォン582、パーソナルデジタルアシスタント、または他の類似するモバイルデバイスの部分としても実装され得る。
【0089】
本明細書に記載されたシステムおよび技術の種々の実装は、デジタル電子回路、集積回路、特別に設計されたASIC(application specific integrated circuit:特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはこれらの組み合わせにおいて実現され得る。これらの種々の実装は、ストレージシステム、少なくとも1つの入力デバイスおよび少なくとも1つの出力デバイスからデータおよび命令を受信するとともに、それらにデータおよび命令を送信するように結合された、特別目的または汎用のものであり得る少なくとも1つのプログラマブルなプロセッサを含むプログラマブルなシステム上で実行可能および/または解釈可能な1つ以上のコンピュータプログラムにおける実装を含み得る。
【0090】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られている)は、プログラマブルなプロセッサのための機械命令を含み、高レベルな手続き型および/またはオブジェクト指向プログラミング言語において、および/または、アセンブリ/機械語において実装され得る。本明細書で使用される、機械可読媒体およびコンピュータ可読媒体という用語は、機械命令を機械可読信号として受け取る機械可読媒体を含む、機械命令および/またはデータをプログラマブルなプロセッサに提供するために使用される任意のコンピュータプログラム製品、装置および/またはデバイス(例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD:Programmable Logic Device))を指す。機械可読信号という用語は、機械命令および/またはデータをプログラマブルなプロセッサに提供するために使用される任意の信号を指す。
【0091】
ユーザとのインタラクションに備えて、本明細書に記載されたシステムおよび技術は、ユーザに情報を表示するためのディスプレイデバイス(例えば、CRT(cathode ray tube:ブラウン管)またはLCD(liquid crystal display:液晶ディスプレイ)モニタ)ならびに、ユーザがコンピュータに入力を与えることのできるキーボードおよびポインティングデバイス(例えば、マウスまたはトラックボール)を有するコンピュータ上で実装され得る。ユーザとのインタラクションに備えて他の種類のデバイスも使用され得る。例えば、ユーザに与えられるフィードバックは任意の形の感覚フィードバック(例えば、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバック)であり得る。ユーザからの入力は、音響、スピーチ、または触覚的入力を含む、任意の形で受け取られ得る。
【0092】
本明細書に記載されたシステムおよび技術は、バックエンドコンポーネント(例えば、データサーバとして)を含み、またはミドルウェアコンポーネント(例えば、アプリケーションサーバ)を含み、またはフロントエンドコンポーネント(例えば、本明細書に記載されたシステムおよび技術の実装とユーザがインタラクトできるグラフィカルユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータ)を含み、またはそのようなバックエンド、ミドルウェア、もしくはフロントエンドコンポーネントの任意の組み合わせを含むコンピューティングシステムにおいて実装され得る。システムのコンポーネント同士は、デジタルデータ通信の任意の形または媒体(例えば、通信ネットワーク)により相互に接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(LAN:local area network)、ワイドエリアネットワーク(WAN:wide area network)、およびインターネットを含む。
【0093】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、一般に、互い距離を置き、通例通信ネットワークを通してインタラクトする。クライアントおよびサーバの関係は、それぞれのコンピュータ上で実行される、互いにクライアント対サーバの関係を有するコンピュータプログラムのおかげで生じる。
【0094】
幾つかの実装が上で詳しく記載されたが、他の変形が可能である。例えば、クライアントアプリケーションは1つまたは複数のデレゲートにアクセスすると記載されているが、他の実装においては、その1つまたは複数のデレゲートは、1つ以上のサーバ上で実行されるアプリケーションなどの、1つ以上のプロセッサにより実行される他のアプリケーションにより採用され得る。さらに、図示されたロジックフローは、望ましい結果を達成するために、示された特定のオーダー、あるいは順序を必要としない。さらに、他のアクションが設けられてもよく、あるいは、記載されたフローからアクションを削除することができ、記載されたシステムに他のコンポーネントを加えたり取り除いたりすることができる。従って、次の請求項の範囲内に他の実装が存在する。
図1
図2
図3
図4
図5
図6
図7