(57)【要約】  本発明の態様は、ロボットを識別するための方法、コンピュータ・プログラム製品、およびシステムを開示する。この方法は、第１のロボット・デバイスであることをアサートする未知のロボット・デバイスに対する認証要求を受信するステップを含む。この方法はさらに、第１のロボット・デバイスに対する第１の識別データセットを受信するステップを含む。この方法はさらに、未知のロボット・デバイスに識別活動を発行するステップを含む。この方法はさらに、未知のロボット・デバイスから受信した識別活動に対する応答に基づいて未知のロボット・デバイスに対する第２の識別データセットを生成するステップを含む。この方法はさらに、第１の識別データセットが第２の識別データセットと一致すると判定したことに応答して未知のロボット・デバイスが第１のロボット・デバイスであると判定するステップを含む。この方法はさらに、未知のロボット・デバイスが第１のロボット・デバイスであると判定するステップに応答して未知のロボット・デバイスを認証するステップを含む。
2021528716.tif 000002
【特許請求の範囲】
【請求項１】
ロボット・デバイスを識別するための方法であって、前記方法は、
１つ以上のプロセッサによって、第１のロボット・デバイスであることをアサートする未知のロボット・デバイスに対する認証要求を受信するステップと、
１つ以上のプロセッサによって、前記第１のロボット・デバイスに対する第１の識別データセットを受信するステップと、
１つ以上のプロセッサによって、前記未知のロボット・デバイスに識別活動を発行するステップと、
１つ以上のプロセッサによって、前記未知のロボット・デバイスから受信した前記識別活動に対する応答に基づいて前記未知のロボット・デバイスに対する第２の識別データセットを生成するステップと、
前記第１の識別データセットが前記第２の識別データセットと一致すると判定したことに応答して、１つ以上のプロセッサによって、前記未知のロボット・デバイスが前記第１のロボット・デバイスであると判定するステップと、
前記未知のロボット・デバイスが前記第１のロボット・デバイスであると判定するステップに応答して前記未知のロボット・デバイスを認証するステップと
を含む、方法。
【請求項２】
前記第２の識別データセットを前記生成するステップはさらに、
１つ以上のプロセッサによって、前記未知のロボット・デバイスからオーディオ信号を得るステップと、
１つ以上のプロセッサによって、前記オーディオ信号に対するオーディオ信号伝達処理を実行するステップと、
１つ以上のプロセッサによって、前記未知のロボット・デバイスのオーディオ信号プロファイルを生成するステップと
を含む、請求項１に記載の方法。
【請求項３】
１つ以上のプロセッサによって、前記第１のロボット・デバイスからシグネチャ生体模倣入力を受信するステップと、
１つ以上のプロセッサによって、対応するシグネチャ生体模倣出力を定めるステップと、
１つ以上のプロセッサによって、前記対応するシグネチャ生体模倣出力をモデリングするステップとをさらに含み、
前記第２の識別データセットを生成するステップは、前記未知のロボット・デバイスの前記対応するシグネチャ生体模倣出力に基づいている、請求項１に記載の方法。
【請求項４】
前記未知のロボット・デバイスが前記第１のロボット・デバイスであると判定するステップに応答して前記未知のロボット・デバイスを認証するステップはさらに、
１つ以上のプロセッサによって、前記第１のロボット・デバイスとの通信を開始するステップと、
前記未知のロボット・デバイスが前記第１のロボット・デバイスであると判定するステップに応答して、１つ以上のプロセッサによって、前記第１のロボット・デバイスに対する前記識別データセットを更新するステップと
を含む、請求項１に記載の方法。
【請求項５】
前記未知のロボット・デバイスが前記第１のロボット・デバイスであると判定するステップに応答して前記未知のロボット・デバイスを認証するステップはさらに、
１つ以上のプロセッサによって、光学走査を実行するステップと、
１つ以上のプロセッサによって、前記未知のロボット・デバイスの光学走査画像を生成するステップと、
１つ以上のプロセッサによって、前記生成された未知のロボット・デバイスの光学走査画像が１つ以上のデータベースからの光学走査画像と一致すると判定するステップと
を含む、請求項１に記載の方法。
【請求項６】
前記未知のロボット・デバイスが前記第１のロボット・デバイスであると判定するステップに応答して前記未知のロボット・デバイスを認証するステップはさらに、
１つ以上のプロセッサによって、前記第１のロボット・デバイスからの事前知識に対する要求を開始するステップであって、前記事前知識は前記第１のロボット・デバイスの過去に保存された識別結果に関係する、前記開始するステップと、
１つ以上のプロセッサによって、前記第１のロボット・デバイスから事前知識を受信するステップと、
１つ以上のプロセッサによって、前記事前知識が１つ以上のデータベースにおける前記事前知識と一致すると判定するステップと、
１つ以上のプロセッサによって、１つ以上の制限エリアに対する前記第１のロボット・デバイスのアクセスを許可するステップと
を含む、請求項１に記載の方法。
【請求項７】
前記未知のロボット・デバイスが前記第１のロボット・デバイスであると判定するステップに応答して前記未知のロボット・デバイスを認証するステップはさらに、
１つ以上のプロセッサによって、前記第１のロボット・デバイスであることをアサートする前記未知のロボット・デバイスの尋問を開始するステップと、
１つ以上のプロセッサによって、前記第１のロボット・デバイスであることをアサートする前記未知のロボット・デバイスを尋問するステップと、
１つ以上のプロセッサによって、前記第１のロボット・デバイスであることをアサートする前記未知のロボット・デバイスが１つ以上のデータベースにおけるデータに対応する方式で前記尋問に応答していると判定するステップと、
１つ以上のプロセッサによって、１つ以上の制限エリアに対して前記第１のロボット・デバイスを入場許可するステップと
を含む、請求項１に記載の方法。
【請求項８】
前記第１の識別データセットが前記第２の識別データセットと一致しないと判定したことに応答して、１つ以上のプロセッサによって、シャットダウン・プロトコルを開始するステップをさらに含む、請求項１に記載の方法。
【請求項９】
前記未知のロボット・デバイスが前記第１のロボット・デバイスであると判定するステップに応答することはさらに、
１つ以上のプロセッサによって、前記第１のロボット・デバイスに対する連続的モニタリングを定めるステップと、
１つ以上のプロセッサによって、前記第１のロボット・デバイスをモニタするステップと
を含む、請求項１に記載の方法。
【請求項１０】
ロボット・デバイスを識別するコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は、
１つ以上のコンピュータ可読有形ストレージ媒体と、前記１つ以上のコンピュータ可読ストレージ媒体の少なくとも１つに保存されたプログラム命令とを含み、前記プログラム命令は１つ以上のコンピュータ・プロセッサによって可読／実行可能であり、かつさらに、
第１のロボット・デバイスであることをアサートする未知のロボット・デバイスに対する認証要求を受信するためのプログラム命令と、
前記第１のロボット・デバイスに対する第１の識別データセットを受信するためのプログラム命令と、
前記未知のロボット・デバイスに識別活動を発行するためのプログラム命令と、
前記未知のロボット・デバイスから受信した前記識別活動に対する応答に基づいて前記未知のロボット・デバイスに対する第２の識別データセットを生成するためのプログラム命令と、
前記第１の識別データセットが前記第２の識別データセットと一致すると判定したことに応答して前記未知のロボット・デバイスが前記第１のロボット・デバイスであると判定するためのプログラム命令と、
前記未知のロボット・デバイスが前記第１のロボット・デバイスであると判定したことに応答して前記未知のロボット・デバイスを認証するためのプログラム命令と
を含む、コンピュータ・プログラム製品。
【請求項１１】
前記第２の識別データセットを前記生成することは、前記１つ以上のコンピュータ可読ストレージ媒体に保存されたプログラム命令をさらに含み、前記プログラム命令はプロセッサによって実行されるときに、
前記ロボット・デバイスからオーディオ信号を得ることと、
前記オーディオ信号に対するオーディオ信号伝達処理を実行することと、
前記未知のロボット・デバイスのオーディオ信号プロファイルを生成することと
を前記プロセッサに行わせる、請求項１０に記載のコンピュータ・プログラム製品。
【請求項１２】
前記１つ以上のコンピュータ可読ストレージ媒体に保存されたプログラム命令をさらに含み、前記プログラム命令はプロセッサによって実行されるときに、
前記第１のロボット・デバイスからシグネチャ生体模倣入力を受信することと、
対応するシグネチャ生体模倣出力を定めることと、
前記対応するシグネチャ生体模倣出力をモデリングすることと
を前記プロセッサに行わせ、前記第２の識別データセットを生成することは、前記未知のロボット・デバイスの前記対応するシグネチャ生体模倣出力に基づいている、請求項１０に記載のコンピュータ・プログラム製品。
【請求項１３】
前記未知のロボット・デバイスが前記第１のロボット・デバイスであると判定したことに応答して前記未知のロボット・デバイスを認証することは、前記１つ以上のコンピュータ可読ストレージ媒体に保存されたプログラム命令をさらに含み、前記プログラム命令はプロセッサによって実行されるときに、
前記第１のロボット・デバイスとの通信を開始することと、
前記未知のロボット・デバイスが前記第１のロボット・デバイスであると判定したことに応答して前記第１のロボット・デバイスに対する前記識別データセットを更新することと
を前記プロセッサに行わせる、請求項１０に記載のコンピュータ・プログラム製品。
【請求項１４】
前記未知のロボット・デバイスが前記第１のロボット・デバイスであると判定したことに応答して前記未知のロボット・デバイスを認証することは、前記１つ以上のコンピュータ可読ストレージ媒体に保存されたプログラム命令をさらに含み、前記プログラム命令はプロセッサによって実行されるときに、
光学走査を実行することと、
前記未知のロボット・デバイスの光学走査画像を生成することと、
前記生成された未知のロボット・デバイスの光学走査画像が１つ以上のデータベースからの光学走査画像と一致すると判定することと
を前記プロセッサに行わせる、請求項１０に記載のコンピュータ・プログラム製品。
【請求項１５】
前記未知のロボット・デバイスが前記第１のロボット・デバイスであると判定したことに応答して前記未知のロボット・デバイスを認証することは、前記１つ以上のコンピュータ可読ストレージ媒体に保存されたプログラム命令をさらに含み、前記プログラム命令はプロセッサによって実行されるときに、
前記第１のロボット・デバイスからの事前知識に対する要求を開始することであって、前記事前知識は前記第１のロボット・デバイスの過去に保存された識別結果に関係する、前記開始することと、
前記第１のロボット・デバイスから事前知識を受信することと、
前記事前知識が１つ以上のデータベースにおける前記事前知識と一致すると判定することと、
１つ以上の制限エリアに対する前記第１のロボット・デバイスのアクセスを許可することと
を前記プロセッサに行わせる、請求項１０に記載のコンピュータ・プログラム製品。
【請求項１６】
前記１つ以上のコンピュータ可読ストレージ媒体に保存されたプログラム命令をさらに含み、前記プログラム命令はプロセッサによって実行されるときに、
前記第１のロボット・デバイスであることをアサートする前記未知のロボット・デバイスの尋問を開始することと、
前記第１のロボット・デバイスであることをアサートする前記未知のロボット・デバイスを尋問することと、
前記第１のロボット・デバイスであることをアサートする前記未知のロボット・デバイスが１つ以上のデータベースにおけるデータに対応する方式で前記尋問に応答していると判定することと、
１つ以上の制限エリアに対して前記第１のロボット・デバイスを入場許可することと
を前記プロセッサに行わせる、請求項１０に記載のコンピュータ・プログラム製品。
【請求項１７】
前記１つ以上のコンピュータ可読ストレージ媒体に保存されたプログラム命令をさらに含み、前記プログラム命令はプロセッサによって実行されるときに、
前記第１のロボット・デバイスであることをアサートする未知のロボット・デバイスに対する前記第１の識別データセットが前記第１のロボット・デバイス・プログラミング・データセットと一致しないと判定したことに応答してシャットダウン・プロトコルを開始することを前記プロセッサに行わせる、請求項１０に記載のコンピュータ・プログラム製品。
【請求項１８】
前記未知のロボット・デバイスが前記第１のロボット・デバイスであると判定したことに応答することは、前記１つ以上のコンピュータ可読ストレージ媒体に保存されたプログラム命令をさらに含み、前記プログラム命令はプロセッサによって実行されるときに、
前記第１のロボット・デバイスに対する連続的モニタリングを定めることと、
前記第１のロボット・デバイスをモニタすることと
を前記プロセッサに行わせる、請求項１０に記載のコンピュータ・プログラム製品。
【請求項１９】
１つ以上のコンピュータ・プロセッサと、
１つ以上のコンピュータ可読ストレージ媒体と、
前記１つ以上のコンピュータ・プロセッサの少なくとも１つによる実行のために前記コンピュータ可読ストレージ媒体に保存されたプログラム命令と
を含むコンピュータ・システムであって、前記プログラム命令は、
第１のロボット・デバイスであることをアサートする未知のロボット・デバイスに対する認証要求を受信するためのプログラム命令と、
前記第１のロボット・デバイスに対する第１の識別データセットを受信するためのプログラム命令と、
前記未知のロボット・デバイスに識別活動を発行するためのプログラム命令と、
前記未知のロボット・デバイスから受信した前記識別活動に対する応答に基づいて前記未知のロボット・デバイスに対する第２の識別データセットを生成するためのプログラム命令と、
前記第１の識別データセットが前記第２の識別データセットと一致すると判定したことに応答して前記未知のロボット・デバイスが前記第１のロボット・デバイスであると判定するためのプログラム命令と、
前記未知のロボット・デバイスが前記第１のロボット・デバイスであると判定したことに応答して前記未知のロボット・デバイスを認証するためのプログラム命令と
を含む、コンピュータ・システム。
【請求項２０】
前記第２の識別データセットを前記生成することは、前記１つ以上のコンピュータ可読ストレージ媒体に保存されたプログラム命令をさらに含み、前記プログラム命令はプロセッサによって実行されるときに、
前記ロボット・デバイスからオーディオ信号を得ることと、
前記オーディオ信号に対するオーディオ信号伝達処理を実行することと、
前記未知のロボット・デバイスのオーディオ信号プロファイルを生成することと
を前記プロセッサに行わせる、請求項１９に記載のコンピュータ・システム。
【請求項２１】
前記１つ以上のコンピュータ可読ストレージ媒体に保存されたプログラム命令をさらに含み、前記プログラム命令はプロセッサによって実行されるときに、
前記第１のロボット・デバイスからシグネチャ生体模倣入力を受信することと、
対応するシグネチャ生体模倣出力を定めることと、
前記対応するシグネチャ生体模倣出力をモデリングすることと
を前記プロセッサに行わせ、前記第２の識別データセットを生成することは、前記未知のロボット・デバイスの前記対応するシグネチャ生体模倣出力に基づいている、請求項１９に記載のコンピュータ・システム。
【請求項２２】
前記未知のロボット・デバイスが前記第１のロボット・デバイスであると判定したことに応答して前記未知のロボット・デバイスを認証することは、前記１つ以上のコンピュータ可読ストレージ媒体に保存されたプログラム命令をさらに含み、前記プログラム命令はプロセッサによって実行されるときに、
前記第１のロボット・デバイスとの通信を開始することと、
前記未知のロボット・デバイスが前記第１のロボット・デバイスであると判定したことに応答して前記第１のロボット・デバイスに対する前記識別データセットを更新することと
を前記プロセッサに行わせる、請求項１９に記載のコンピュータ・システム。
【請求項２３】
前記未知のロボット・デバイスが前記第１のロボット・デバイスであると判定したことに応答して前記未知のロボット・デバイスを認証することは、前記１つ以上のコンピュータ可読ストレージ媒体に保存されたプログラム命令をさらに含み、前記プログラム命令はプロセッサによって実行されるときに、
光学走査を実行することと、
前記未知のロボット・デバイスの光学走査画像を生成することと、
前記生成された未知のロボット・デバイスの光学走査画像が１つ以上のデータベースからの光学走査画像と一致すると判定することと
を前記プロセッサに行わせる、請求項１９に記載のコンピュータ・システム。
【請求項２４】
前記未知のロボット・デバイスが前記第１のロボット・デバイスであると判定したことに応答して前記未知のロボット・デバイスを認証することは、前記１つ以上のコンピュータ可読ストレージ媒体に保存されたプログラム命令をさらに含み、前記プログラム命令はプロセッサによって実行されるときに、
前記第１のロボット・デバイスからの事前知識に対する要求を開始することであって、前記事前知識は前記第１のロボット・デバイスの過去に保存された識別結果に関係する、前記開始することと、
前記第１のロボット・デバイスから事前知識を受信することと、
前記事前知識が１つ以上のデータベースにおける前記事前知識と一致すると判定することと、
１つ以上の制限エリアに対する前記第１のロボット・デバイスのアクセスを許可することと
を前記プロセッサに行わせる、請求項１９に記載のコンピュータ・システム。
【請求項２５】
前記１つ以上のコンピュータ可読ストレージ媒体に保存されたプログラム命令をさらに含み、前記プログラム命令はプロセッサによって実行されるときに、
前記第１のロボット・デバイスであることをアサートする前記未知のロボット・デバイスの尋問を開始することと、
前記第１のロボット・デバイスであることをアサートする前記未知のロボット・デバイスを尋問することと、
前記第１のロボット・デバイスであることをアサートする前記未知のロボット・デバイスが１つ以上のデータベースにおけるデータに対応する方式で前記尋問に応答していると判定することと、
１つ以上の制限エリアに対して前記第１のロボット・デバイスを入場許可することと
を前記プロセッサに行わせる、請求項１９に記載のコンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般的にコグニティブ・コンピューティングの分野に関し、より具体的にはロボットのセキュリティに関する。
【０００２】
ロボット工学は、ロボットの設計、構成、動作、および使用、ならびにロボットの制御、感覚フィードバック、および情報処理のためのコンピュータ・システムを取り扱う。
【０００３】
これらの技術を用いて、人間に置き換わって人間の活動を再現できるマシンが開発される。ロボットは任意の状況および任意の目的で使用され得るが、今日多くのロボットが危険な環境（爆弾の検出および不活性化を含む）、製造プロセス、または人間が生存できないような場所において用いられている。ロボットは任意の形を取り得るが、人間に似せた外観に作られたものもある。これは、通常は人々によって行われる特定の再現挙動におけるロボットの受容を助けると言われている。こうしたロボットは歩行、持ち上げ、会話、認識、および基本的に人間が行い得るあらゆることの再現を試みる。今日のロボットの多くは自然から着想されており、バイオインスパイアード・ロボット工学の分野に寄与している。
【０００４】
ロボット手術とは、外科医と（術前計画手順の際に特定の活動を行うようにプログラムされた）手術用ロボットとの相関的活動に対して用いられる用語である。手術用ロボットとは、コンピュータ制御された（一般的にロボット・アームのように見える）機械的デバイスである。ロボット手術は、手順の間の外科医の相互作用の程度によって、次の３タイプに分けることができる。監視制御、遠隔手術、および共有制御である。監視制御システムにおいて、手順はロボットのみによって実行され、ロボットは予めプログラムされた活動を行うこととなる。リモート手術としても公知である遠隔手術システムは、ロボット・アームに予め定められたプログラムによる作業をさせるのではなく、手順の際に外科医がロボット・アームを操作することを必要とする。共有制御システムでは、外科医が機器の安定した操作を提供するロボットを用いることによって手順を行う。ほとんどのロボットにおいては、手術の複雑さおよび症例の特殊性に依存して、各個々の介入に対して作業モードが選択され得る。
【０００５】
リモート手術（遠隔手術としても公知である）は、医師が患者と物理的に同じ場所にいなくても患者に手術を行うことを可能にする。これはテレプレゼンスの形である。ロボット手術システムは一般的に、（外科医によって制御される）１つ以上のアームと、マスタ・コントローラ（コンソール）と、ユーザにフィードバックを与える感覚システムとからなる。リモート手術は、たとえば高速データ接続などのロボット工学の最先端通信技術の要素と、管理情報システムの要素とを組み合わせる。ロボット手術の分野は非常によく確立されているが、これらのロボットのほとんどは手術の場所において外科医によって制御されている。リモート手術は外科医にとって本質的に高度なテレコミューティングであり、ここでは外科医と患者との間の物理的距離は重要でない。
【発明の概要】
【０００６】
本発明の一実施形態によると、ロボット・デバイスを識別するための方法が提供される。この方法は、第１のロボット・デバイスであることをアサートする未知のロボット・デバイスに対する認証要求を受信するステップを含む。この方法はさらに、第１のロボット・デバイスに対する第１の識別データセットを受信するステップを含む。この方法はさらに、未知のロボット・デバイスに識別活動を発行するステップを含む。この方法はさらに、未知のロボット・デバイスから受信した識別活動に対する応答に基づいて未知のロボット・デバイスに対する第２の識別データセットを生成するステップを含む。この方法はさらに、第１の識別データセットが第２の識別データセットと一致すると判定したことに応答して未知のロボット・デバイスが第１のロボット・デバイスであると判定するステップを含む。この方法はさらに、未知のロボット・デバイスが第１のロボット・デバイスであると判定するステップに応答して未知のロボット・デバイスを認証するステップを含む。この方法はさらに、第１のロボット・デバイスからの事前知識に対する要求を開始するステップを含み、この事前知識は第１のロボット・デバイスの過去に保存された識別結果に関係し、この方法はさらに、１つ以上のプロセッサによって第１のロボット・デバイスから事前知識を受信するステップを含む。この方法はさらに、事前知識が１つ以上のデータベースにおける事前知識と一致すると判定するステップと、１つ以上の制限エリアに対する第１のロボット・デバイスのアクセスを許可するステップとを含む。この方法はさらに、第１のロボット・デバイスであることをアサートする未知のロボット・デバイスの尋問を開始するステップと、第１のロボット・デバイスであることをアサートする未知のロボット・デバイスを尋問するステップとを含む。加えてこの方法は、第１のロボット・デバイスであることをアサートする未知のロボット・デバイスが、１つ以上のデータベースにおけるデータに対応する方式で尋問に応答していると判定するステップと、１つ以上の制限エリアに対して第１のロボット・デバイスを入場許可するステップとを含む。
【０００７】
この方法は、ロボット識別のために生体模倣信号識別(biomimetic signal identification)を使用しており、本発明はロボット・デバイスを識別するために多次元の方法を使用するため、このことは有利である。この識別方法は、コグニティブ・ロボット・コンポーネント回帰ベースの事前分布システムを使用して、ロボットの能動的および受動的な識別に対する証拠を蓄積する。信号識別方法は、ロボットの知識の証拠と生体模倣信号識別との組み合わせを使用して、能動的および受動的にロボットを識別する。
【０００８】
別の視点から見ると、本発明はロボット・デバイスを識別するコンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品は、１つ以上のコンピュータ可読有形ストレージ媒体と、この１つ以上のコンピュータ可読ストレージ媒体の少なくとも１つに保存されたプログラム命令とを含み、このプログラム命令は１つ以上のコンピュータ・プロセッサによって可読／実行可能であり、かつさらに、第１のロボット・デバイスであることをアサートする未知のロボット・デバイスに対する認証要求を受信するためのプログラム命令と、第１のロボット・デバイスに対する第１の識別データセットを受信するためのプログラム命令と、未知のロボット・デバイスに識別活動を発行するためのプログラム命令と、未知のロボット・デバイスから受信した識別活動に対する応答に基づいて未知のロボット・デバイスに対する第２の識別データセットを生成するためのプログラム命令と、第１の識別データセットが第２の識別データセットと一致すると判定したことに応答して未知のロボット・デバイスが第１のロボット・デバイスであると判定するためのプログラム命令と、未知のロボット・デバイスが第１のロボット・デバイスであると判定したことに応答して未知のロボット・デバイスを認証するためのプログラム命令とを含む。
【０００９】
好ましくは、本発明が提供するコンピュータ・プログラム製品において、第２の識別データセットを生成することは、１つ以上のコンピュータ可読ストレージ媒体に保存されたプログラム命令をさらに含み、このプログラム命令はプロセッサによって実行されるときに、ロボット・デバイスからオーディオ信号を得ることと、オーディオ信号に対するオーディオ信号伝達処理を実行することと、未知のロボット・デバイスのオーディオ信号プロファイルを生成することとをプロセッサに行わせる。
【００１０】
好ましくは、本発明は１つ以上のコンピュータ可読ストレージ媒体に保存されたプログラム命令をさらに含むコンピュータ・プログラム製品を提供し、このプログラム命令はプロセッサによって実行されるときに、第１のロボット・デバイスからシグネチャ生体模倣入力(signature biomimetic input, シグネチャ・バイオミメティクス入力)を受信することと、対応するシグネチャ生体模倣出力を定めることと、対応するシグネチャ生体模倣出力をモデリングすることとをプロセッサに行わせ、第２の識別データセットを生成することは、未知のロボット・デバイスの対応するシグネチャ生体模倣出力に基づいている。
【００１１】
好ましくは、本発明が提供するコンピュータ・プログラム製品において、未知のロボット・デバイスが第１のロボット・デバイスであると判定したことに応答して未知のロボット・デバイスを認証することは、１つ以上のコンピュータ可読ストレージ媒体に保存されたプログラム命令をさらに含み、このプログラム命令はプロセッサによって実行されるときに、第１のロボット・デバイスとの通信を開始することと、未知のロボット・デバイスが第１のロボット・デバイスであると判定したことに応答して第１のロボット・デバイスに対する識別データセットを更新することとをプロセッサに行わせる。
【００１２】
好ましくは、本発明が提供するコンピュータ・プログラム製品において、未知のロボット・デバイスが第１のロボット・デバイスであると判定したことに応答して未知のロボット・デバイスを認証することは、１つ以上のコンピュータ可読ストレージ媒体に保存されたプログラム命令をさらに含み、このプログラム命令はプロセッサによって実行されるときに、光学走査を実行することと、未知のロボット・デバイスの光学走査画像を生成することと、生成された未知のロボット・デバイスの光学走査画像が１つ以上のデータベースからの光学走査画像と一致すると判定することとをプロセッサに行わせる。
【００１３】
好ましくは、本発明が提供するコンピュータ・プログラム製品において、未知のロボット・デバイスが第１のロボット・デバイスであると判定したことに応答して未知のロボット・デバイスを認証することは、１つ以上のコンピュータ可読ストレージ媒体に保存されたプログラム命令をさらに含み、このプログラム命令はプロセッサによって実行されるときに、第１のロボット・デバイスからの事前知識に対する要求を開始することであって、この事前知識は第１のロボット・デバイスの過去に保存された識別結果に関係する、要求を開始することと、第１のロボット・デバイスから事前知識を受信することと、その事前知識が１つ以上のデータベースにおける事前知識と一致すると判定することと、１つ以上の制限エリアに対する第１のロボット・デバイスのアクセスを許可することとをプロセッサに行わせる。
【００１４】
好ましくは、本発明は１つ以上のコンピュータ可読ストレージ媒体に保存されたプログラム命令をさらに含むコンピュータ・プログラム製品を提供し、このプログラム命令はプロセッサによって実行されるときに、第１のロボット・デバイスであることをアサートする未知のロボット・デバイスの尋問を開始することと、第１のロボット・デバイスであることをアサートする未知のロボット・デバイスを尋問することと、第１のロボット・デバイスであることをアサートする未知のロボット・デバイスが、１つ以上のデータベースにおけるデータに対応する方式で尋問に応答していると判定することと、１つ以上の制限エリアに対して第１のロボット・デバイスを入場許可することとをプロセッサに行わせる。
【００１５】
好ましくは、本発明は１つ以上のコンピュータ可読ストレージ媒体に保存されたプログラム命令をさらに含むコンピュータ・プログラム製品を提供し、このプログラム命令はプロセッサによって実行されるときに、第１のロボット・デバイスであることをアサートする未知のロボット・デバイスに対する第１の識別データセットが第１のロボット・デバイス・プログラミング・データセットと一致しないと判定したことに応答してシャットダウン・プロトコルを開始することをプロセッサに行わせる。
【００１６】
好ましくは、本発明が提供するコンピュータ・プログラム製品において、未知のロボット・デバイスが第１のロボット・デバイスであると判定したことに応答することは、１つ以上のコンピュータ可読ストレージ媒体に保存されたプログラム命令をさらに含み、このプログラム命令はプロセッサによって実行されるときに、第１のロボット・デバイスに対する連続的モニタリングを定めることと、第１のロボット・デバイスをモニタすることとをプロセッサに行わせる。
【００１７】
別の視点から見ると、本発明はコンピュータ・システムを提供し、このコンピュータ・システムは１つ以上のコンピュータ・プロセッサと、１つ以上のコンピュータ可読ストレージ媒体と、１つ以上のコンピュータ・プロセッサの少なくとも１つによる実行のためにコンピュータ可読ストレージ媒体に保存されたプログラム命令とを含み、このプログラム命令は、第１のロボット・デバイスであることをアサートする未知のロボット・デバイスに対する認証要求を受信するためのプログラム命令と、第１のロボット・デバイスに対する第１の識別データセットを受信するためのプログラム命令と、未知のロボット・デバイスに識別活動を発行するためのプログラム命令と、未知のロボット・デバイスから受信した識別活動に対する応答に基づいて未知のロボット・デバイスに対する第２の識別データセットを生成するためのプログラム命令と、第１の識別データセットが第２の識別データセットと一致すると判定したことに応答して未知のロボット・デバイスが第１のロボット・デバイスであると判定するためのプログラム命令と、未知のロボット・デバイスが第１のロボット・デバイスであると判定したことに応答して未知のロボット・デバイスを認証するためのプログラム命令とを含む。
【００１８】
好ましくは、本発明が提供するコンピュータ・システムにおいて、第２の識別データセットを生成することは、１つ以上のコンピュータ可読ストレージ媒体に保存されたプログラム命令をさらに含み、このプログラム命令はプロセッサによって実行されるときに、ロボット・デバイスからオーディオ信号を得ることと、オーディオ信号に対するオーディオ信号伝達処理を実行することと、未知のロボット・デバイスのオーディオ信号プロファイルを生成することとをプロセッサに行わせる。
【００１９】
好ましくは、本発明は１つ以上のコンピュータ可読ストレージ媒体に保存されたプログラム命令をさらに含むコンピュータ・システムを提供し、このプログラム命令はプロセッサによって実行されるときに、第１のロボット・デバイスからシグネチャ生体模倣入力を受信することと、対応するシグネチャ生体模倣出力を定めることと、対応するシグネチャ生体模倣出力をモデリングすることとをプロセッサに行わせ、第２の識別データセットを生成することは、未知のロボット・デバイスの対応するシグネチャ生体模倣出力に基づいている。
【００２０】
好ましくは、本発明が提供するコンピュータ・システムにおいて、未知のロボット・デバイスが第１のロボット・デバイスであると判定したことに応答して未知のロボット・デバイスを認証することは、１つ以上のコンピュータ可読ストレージ媒体に保存されたプログラム命令をさらに含み、このプログラム命令はプロセッサによって実行されるときに、第１のロボット・デバイスとの通信を開始することと、未知のロボット・デバイスが第１のロボット・デバイスであると判定したことに応答して第１のロボット・デバイスに対する識別データセットを更新することとをプロセッサに行わせる。
【００２１】
好ましくは、本発明が提供するコンピュータ・システムにおいて、未知のロボット・デバイスが第１のロボット・デバイスであると判定したことに応答して未知のロボット・デバイスを認証することは、１つ以上のコンピュータ可読ストレージ媒体に保存されたプログラム命令をさらに含み、このプログラム命令はプロセッサによって実行されるときに、光学走査を実行することと、未知のロボット・デバイスの光学走査画像を生成することと、生成された未知のロボット・デバイスの光学走査画像が１つ以上のデータベースからの光学走査画像と一致すると判定することとをプロセッサに行わせる。
【００２２】
好ましくは、本発明が提供するコンピュータ・システムにおいて、未知のロボット・デバイスが第１のロボット・デバイスであると判定したことに応答して未知のロボット・デバイスを認証することは、１つ以上のコンピュータ可読ストレージ媒体に保存されたプログラム命令をさらに含み、このプログラム命令はプロセッサによって実行されるときに、第１のロボット・デバイスからの事前知識に対する要求を開始することであって、この事前知識は第１のロボット・デバイスの過去に保存された識別結果に関係する、要求を開始することと、第１のロボット・デバイスから事前知識を受信することと、その事前知識が１つ以上のデータベースにおける事前知識と一致すると判定することと、１つ以上の制限エリアに対する第１のロボット・デバイスのアクセスを許可することとをプロセッサに行わせる。
【００２３】
好ましくは、本発明は１つ以上のコンピュータ可読ストレージ媒体に保存されたプログラム命令をさらに含むコンピュータ・システムを提供し、このプログラム命令はプロセッサによって実行されるときに、第１のロボット・デバイスであることをアサートする未知のロボット・デバイスの尋問を開始することと、第１のロボット・デバイスであることをアサートする未知のロボット・デバイスを尋問することと、第１のロボット・デバイスであることをアサートする未知のロボット・デバイスが、１つ以上のデータベースにおけるデータに対応する方式で尋問に応答していると判定することと、１つ以上の制限エリアに対して第１のロボット・デバイスを入場許可することとをプロセッサに行わせる。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施形態による分散型データ処理環境を示す機能ブロック図である。
【図２】本発明の実施形態によるロボット・デバイスを識別するためのプログラムであるプログラム２００の動作ステップを示す流れ図である。
【図３】本発明の実施形態によるロボット・デバイスを識別するプログラムの例を示す図である。
【図４】本発明による実施形態における、たとえば図１のサーバ・コンピュータなどのコンピュータ・システムのコンポーネントを示すブロック図である。
【発明を実施するための形態】
【００２５】
本発明の実施形態は、ロボットの急増が一意の問題をもたらすことを認識している。企業のセキュリティから医学的な事柄までにわたるさまざまな状況において、そのロボットがタスクに対する正しいロボットであることを確実にするために、ロボットを積極的に識別して予備尋問できることが要求されるだろう。「予備尋問」という表現を言い換えると「どれが真か」を意味し、この表現はしばしば証拠と、能力と、バイアスに関連するその他の事柄とに関係する。企業のセキュリティを確実にするために、ロボット人員の識別は、人間人員の積極的識別と同じぐらい重要である。適切な許可のないロボットは、ロボットに相当する人間と同様に機密エリアに入れるべきではない。
【００２６】
本発明の実施形態は、医療施設認定合同機構（Ｔｈｅ  Ｊｏｉｎｔ  Ｃｏｍｍｉｓｓｉｏｎ）が病院および外来患者の設定における（ｉ）間違った人物、（ｉｉ）間違った手順、および（ｉｉｉ）間違った部位の手術を防ぐためのユニバーサル・プロトコル（Ｔｈｅ  Ｕｎｉｖｅｒｓａｌ  Ｐｒｏｔｏｃｏｌ）を確立したことを認識している。患者の安全を確実にし、かつ医療過誤の問題に効果的に対処するために、医療手術用ロボットの積極的識別は最重要である。ロボットが手術に参加するためには、ロボットはユニバーサル・プロトコルに準拠できる必要があり、すなわち自身を識別して目下の医療タスクに対する自身の資格を述べ得る必要があるだろう。
【００２７】
本発明の実施形態は、ロボットを識別するための現行のアプローチが無線周波数識別デバイス（ＲＦＩＤ：ｒａｄｉｏ  ｆｒｅｑｕｅｎｃｙ  ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  ｄｅｖｉｃｅｓ）の使用に委ねられていることを認識している。ＲＦＩＤタグは、アクセス制御システムを脅かすリレー・アタックを非常に受けやすい。リレー・アタックは、非正規のタグＢおよび虚偽のリーダの使用を伴う。一例において、（制限エリアにある）元のタグＡおよびリーダは、ある距離を置いて離れている。偽のリーダが元のタグを読取り、その情報を用いてタグＡの識別子によってタグＢをプログラムする。次いでタグＢはタグＡとして活動し、正規のリーダと通信して制限エリアへの違法アクセスを得る。本発明の実施形態は、ＲＦＩＤタグが非常に容易に偽造またはコピーされてタグのなりすましを可能にし得ることも認識している。
【００２８】
本発明の実施形態は、ロボット・デバイスを識別するための現行のアプローチが問題を有することを認識している。ロボット・デバイスのアイデンティティを検証する現行の方法は、時代遅れかつ容易に偽造可能な方法を使用している。たとえば、ＭＡＣアドレス、または単なるバーコード、または電磁シグネチャを使用したロボット・デバイスの識別は、外部エンティティによって非常に容易に乗っ取られる。本発明の実施形態は、アイデンティティが多次元の構成であり、現行の方法はもしあってもロボット・デバイスを識別する１つの方法を使用していることも認識している。
【００２９】
本発明の実施形態は、多次元の識別構成を使用してロボット・デバイスを識別する方法を提供する。本発明は、ロボット識別のために生体模倣信号識別を使用しており、本発明はロボット・デバイスを識別するために多次元の方法を使用するため、このことは有利である。この識別方法は、コグニティブ・ロボット・コンポーネント回帰ベースの事前分布システムを使用して、ロボットの能動的および受動的な識別に対する証拠を蓄積する。信号識別方法は、ロボットの知識の証拠と生体模倣信号識別との組み合わせを使用して、能動的および受動的にロボットを識別する。
【００３０】
ここで図１を参照すると、本開示の実施形態が実施され得る分散型データ処理環境の例の機能ブロック図が示されている。一実施形態において、コンピュータ・デバイス１１０はコンピュータ処理ユニット（ＣＰＵ：ｃｏｍｐｕｔｅｒ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）１２５と、グラフィカル・ユーザ・インターフェース（ＧＵＩ：ｇｒａｐｈｉｃａｌ  ｕｓｅｒ  ｉｎｔｅｒｆａｃｅ）１３０と、グラフィカル処理ユニット（ＧＰＵ：ｇｒａｐｈｉｃａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）１４５と、ウェブ・ブラウザ１５０と、生体模倣チップ１５５と、ストレージ１６０とを含む。コンピュータ・デバイス１１０上のさまざまなプログラムは、ウェブ・ブラウザ、電子メール・クライアント、セキュリティ・ソフトウェア（例、ファイアウォール・プログラム、ジオロケーティング・プログラム、暗号化プログラムなど）、インスタント・メッセージング（ＩＭ：ｉｎｓｔａｎｔ  ｍｅｓｓａｇｉｎｇ）アプリケーション（ａｐｐ：ａｐｐｌｉｃａｔｉｏｎ）、および通信（例、電話）アプリケーションを含む。
【００３１】
コンピュータ・デバイス１１０は、ロボット・デバイス、デスクトップ・コンピュータ、ラップトップ・コンピュータ、タブレット・コンピュータ、特定化されたコンピュータ・サーバ、スマートフォン、ウェアラブル・デバイス（例、スマート・ウォッチ、パーソナル・フィットネス・デバイス、パーソナル・セーフティ・デバイス）、またはインタラクティブ・ディスプレイを有する当該技術分野において公知の任意のプログラマブル・コンピュータ・システム、または当該技術分野において公知の任意のその他のコンピュータ・システムであってもよい。特定の実施形態において、コンピュータ・デバイス１１０は、データ・センタ内およびクラウド・コンピューティング適用で一般的であるとおり、ネットワーク１８５を通じてアクセスされるときにシームレス・リソースの単一のプールとして活動するクラスタ化されたコンピュータおよびコンポーネントを使用するコンピュータ・システムを表す。一般的に、コンピュータ・デバイス１１０は、マシン可読プログラム命令の実行および他のコンピュータ・デバイスとのネットワークを介した通信が可能な任意のプログラマブル電子デバイス、または複数のプログラマブル電子デバイスの組み合わせを表す。
【００３２】
一実施形態において、中央処理ユニット１２５（ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）はデータ入力を受信し、命令を実行し、かつ情報を処理する。ＣＰＵ１２５は入力／出力（Ｉ／Ｏ：Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）デバイスと通信し、この入力／出力（Ｉ／Ｏ）デバイスはデータをＣＰＵに送信し、かつそこから受信する。加えてＣＰＵ１２５は、内部キャッシュ・メモリと通信するためのバックサイド・バスと呼ばれる内部バスを有する。ＣＰＵ、メモリ、チップセット、およびＡＧＰソケットへのデータ転送およびそこからのデータ転送のためのメイン・バスは、フロント・サイド・バスと呼ばれる。ＣＰＵ１２５は、レジスタと呼ばれる内部メモリ・ユニットを含む。これらのレジスタは、ＡＬＵ情報処理において用いられるデータ、命令、カウンタ、およびアドレスを含む。
【００３３】
一実施形態において、グラフィカル・ユーザ・インターフェース１３０はコンピュータ・デバイス１１０において動作する。別の実施形態において、グラフィカル・ユーザ・インターフェース１３０は、たとえばサーバ・コンピュータ（例、サーバ１２０）などの別のコンピュータにおいて、サーバ・ベースの設定で動作する。さらに別の実施形態において、グラフィカル・ユーザ・インターフェース１３０はコンピュータ・デバイス１１０において、ネットワーク１８５を通じて相互接続されたサーバ・コンピュータ（例、サーバ１２０）と同時に動作する。グラフィカル・ユーザ・インターフェース１３０は、たとえばプログラム２００によって収集または生成された情報などの、コンピュータ・デバイス１１０からの情報にアクセスするために用いられる任意のユーザ・インターフェースであってもよい。加えて、グラフィカル・ユーザ・インターフェース１３０は、たとえばプログラム２００への入力のためにユーザによって供給される情報などの情報をコンピュータ・デバイス１１０に供給するために用いられる任意のユーザ・インターフェースであってもよい。いくつかの実施形態において、グラフィカル・ユーザ・インターフェース１３０は、インターネットからのリソースを検索、提供、およびネゴシエートするために用いられる汎用ウェブ・ブラウザを提供してもよい。他の実施形態において、グラフィカル・ユーザ・インターフェース１３０は、コンピュータ・デバイス１１０におけるユーザがネットワーク１８５にアクセスすることを可能にするソフトウェアまたはアプリケーションであってもよい。
【００３４】
さらに別の実施形態において、コンピュータ・デバイス１１０のユーザはタッチ・スクリーンを通じてグラフィカル・ユーザ・インターフェース１３０と対話でき、タッチ・スクリーンはグラフィカル・ユーザ・インターフェース（ＧＵＩ）への入力デバイスと、ソフトウェア・アプリケーションまたは実行中のソフトウェア・アプリケーションを示す画像に関連する複数のアイコンを提示する出力デバイス（すなわち電子ディスプレイ）との両方として動作する。任意には、ソフトウェア・アプリケーション（例、ウェブ・ブラウザ）は、コンピュータ・デバイス１１０のＧＵＩ内で動作するグラフィカル・ユーザ・インターフェース１３０を生成できる。グラフィカル・ユーザ・インターフェース１３０は、マルチタッチ・ディスプレイと呼ばれる触覚センサ・インターフェース（例、タッチ・スクリーンまたはタッチパッド）を含むがそれに限定されない複数の入力／出力（Ｉ／Ｏ）デバイスからの入力を受け入れる。グラフィカル・ユーザ・インターフェース１３０とインターフェースするＩ／Ｏデバイスがコンピュータ・デバイス１１０に接続されてもよく、そのＩ／Ｏデバイスは有線（例、ＵＳＢポート）またはワイヤレス・ネットワーク通信（例、赤外線、ＮＦＣなど）を使用して動作してもよい。本発明の実施形態によると、コンピュータ・デバイス１１０は、図４に関して示されてさらに詳細に説明されるとおりのコンポーネントを含んでもよい。
【００３５】
グラフィックス処理ユニット１４５（ＧＰＵ：Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）は、ディスプレイ機能に対して特定化されたプログラマブル・ロジック・チップ（プロセッサ）である。一例において、ＧＰＵ１４５はコンピュータのスクリーンに対して画像、アニメーション、およびビデオをレンダリングする。ＧＰＵはプラグイン・カード上、マザーボード上のチップセット内、またはＣＰＵ（図示せず）と同じチップ内に位置する。ＧＰＵ１４５は並列動作を行う。ＧＰＵ１４５は２Ｄデータならびにスクリーンのズーミングおよびパニングに対して用いられるが、ＧＰＵ１４５は３Ｄアニメーションおよびビデオの復号およびレンダリングを助ける。ＧＰＵがより高度になるほど解像度が高くなり、かつゲームおよび映画における動きがより速くより円滑になる。スタンド・アロン・カードにおけるＧＰＵは独自のランダム・アクセス・メモリ（ＲＡＭ：ｒａｎｄｏｍ−ａｃｃｅｓｓ  ｍｅｍｏｒｙ）を含むが、チップセットまたはＣＰＵチップにおけるＧＰＵはＣＰＵとメイン・メモリを共有する。ＧＰＵ１４５は、複数のタスクを同時に取り扱うために設計された何千ものより小さくより効率的なコアからなる大規模並列アーキテクチャを有する。ＧＰＵ１４５はＣＰＵの負担を軽くしてサイクルを解放し、そのサイクルが他のジョブに用いられ得る。
【００３６】
ウェブ・ブラウザ１５０は、インターネットからの情報リソースを検索、提供、および横断するために用いられる汎用ウェブ・ブラウザであってもよい。いくつかの実施形態において、ウェブ・ブラウザ１５０はモバイル・デバイスに対して設計されたウェブ・ブラウザであってもよい。他の実施形態において、ウェブ・ブラウザ１５０は、たとえばデスクトップ・コンピュータ、ＰＣ、またはラップトップなどの従来のコンピュータ・デバイスに対して設計されたウェブ・ブラウザであってもよい。一般的にウェブ・ブラウザ１５０は、コンピュータ・デバイス１１０のユーザがネットワーク１８５を通じてウェブページにアクセスすることを可能にする任意のアプリケーションまたはソフトウェアであってもよい。示される環境において、ウェブ・ブラウザ１５０はコンピュータ・デバイス１１０上に存在する。他の実施形態において、ウェブ・ブラウザ１５０または類似のウェブ・ブラウザは、ネットワーク１８５を通じてウェブページにアクセスできる他のコンピュータ・デバイス上に存在してもよい。
【００３７】
生体模倣チップ（Biomimetic chip）１５５は、認知的運動を含むようにトレーニングされた１つ以上のニューラル・ネットワークからの重みと、ロボットを識別するために用いられる音とを含む。一実施形態において、生体模倣チップ１５５は検証されるロボット・デバイス上に位置する。別の実施形態において、生体模倣チップ１５５は、ロボット・デバイスの識別を検証するコンピュータ・デバイス上に位置する。別の実施形態において、生体模倣チップ１５５は検証されるロボット・デバイスと、ロボット・デバイスの識別を検証するコンピュータ・デバイスとの両方のデバイス上に位置する。ある実施形態において、生体模倣チップ１５５は、積極的識別に対する要求またはジェスチャに応答してシグネチャのやり方で動くようにロボットのセンサを較正するニューラル・ネットワークまたはコグニティブ・モジュールによってトレーニングされている。生体模倣チップ１５５は、ロボットを能動的および受動的に識別するために人間の挙動を模倣するように動くか、もしくはシグネチャ音を出すか、またはその両方を行うようにトレーニングされている。一例において、ユーザは手術用ロボット・アームに対して、そのロボット手術用アームが脳手術のために適切であることを検証するように指示する。ロボットは、ロボット・デバイスおよびロボット・デバイスを識別するコンピュータ・デバイスのいずれかまたは両方に位置する生体模倣チップ１５５に配置された、トレーニングされたニューラル・ネットワークを通じて、そのロボットが正しいロボットであることを検証するための特徴的な運動を開始するだろう。
【００３８】
コンピュータ・デバイス１１０上に位置するストレージ１６０（例、データベース）は、コンピュータ・デバイス１１０によってアクセスされて使用されるデータを保存できる任意のタイプのストレージ・デバイスを表す。他の実施形態において、ストレージ１６０は、コンピュータ・デバイス１１０内の複数のストレージ・デバイスを表す。ストレージ１６０は、たとえばアカウント情報、認証のための信用証明、ユーザの選択、好ましいユーザのリスト、過去に訪問したウェブサイト、訪問したＷｉ−Ｆｉポータルの履歴、およびコンピュータ・デバイスの位置の履歴などであるがそれに限定されない情報を保存する。
【００３９】
一般的に、ネットワーク１８５は、コンピュータ・デバイス１１０間の通信をサポートすることとなる接続およびプロトコルの任意の組み合わせであり得る。ネットワーク１８５はたとえば、ローカル・エリア・ネットワーク（ＬＡＮ：ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、広域ネットワーク（ＷＡＮ：ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）、たとえばインターネットなど、セルラ・ネットワーク、または前述のものの任意の組み合わせなどを含んでもよく、さらに有線、ワイヤレス、もしくは光ファイバ接続、またはその組み合わせを含み得る。
【００４０】
サーバ１２０はデスクトップ・コンピュータ、ラップトップ・コンピュータ、タブレット・コンピュータ、特定化されたコンピュータ・サーバ、スマートフォン、または当該技術分野において公知の任意のその他のコンピュータ・システムであってもよい。特定の実施形態において、サーバ１２０は、データ・センタ内およびクラウド・コンピューティング適用で一般的であるとおり、ネットワーク１８５を通じてアクセスされるときにシームレス・リソースの単一のプールとして活動するクラスタ化されたコンピュータおよびコンポーネントを使用するコンピュータ・システムを表す。一般的に、サーバ１２０は、マシン可読プログラム命令の実行および他のコンピュータ・デバイスとのネットワークを介した通信が可能な任意のプログラマブル電子デバイス、または複数のプログラマブル電子デバイスの組み合わせを表す。一実施形態において、サーバ１２０はデータベース１７０と、プログラム２００とを含む。
【００４１】
ある実施形態において、サーバ１２０は、サーバ１２０とコンピュータ・デバイス１１０との間のハンドシェイク・プロセスを開始することができる。ハンドシェイクとは、チャネルを通じた通常の通信を始める前に、２つのエンティティ間に確立された通信チャネルのパラメータを動的に設定するネゴシエーションの自動プロセスである。ハンドシェイクはチャネルの物理的確立の後に続き、かつ通常の情報伝達に先行する。ハンドシェイクは、パラメータを設定するためのユーザの介入を必要とせずに、通信チャネルを通じて異種コンピュータ・システムまたは機器を接続することを容易にする。一例において、サーバ１２０は、サーバ１２０がコンピュータ・デバイス１１０上のプログラムにアクセスするために通信チャネルを確立したいことを示すメッセージをコンピュータ・デバイス１１０に送信することによって、ハンドシェイク・プロセスを開始する。
【００４２】
データベース１７０は、サーバ１２０によって読取られてもよいリポジトリであってもよい。データベース１７０は、サーバ１２０によってアクセスされて使用されるデータを保存できる任意のタイプのストレージ・デバイスを表す。他の実施形態において、データベース１７０は、サーバ１２０内の複数のストレージ・デバイスを表す。データベース１７０は、たとえばアカウント情報、認証のための信用証明、ユーザの選択、好ましいユーザのリスト、過去に訪問したウェブサイト、訪問したＷｉ−Ｆｉポータルの履歴、およびコンピュータ・デバイスの履歴、およびサーバにアクセスするコンピュータ・デバイス上に位置する情報、電話、ビデオ会議、または１人以上のユーザ間の生の会話などであるがそれに限定されない情報を保存する。
【００４３】
一実施形態において、プログラム２００はサーバ１２０において動作する。別の実施形態において、プログラム２００は、たとえば図示されないサーバ・コンピュータなどの別のコンピュータにおいて、サーバ・ベースの設定で動作する。さらに別の実施形態において、プログラム２００はコンピュータ・デバイス１１０において、ネットワーク１８５を通じて相互接続されたサーバ１２０と同時に動作する。プログラム２００は、仮想エージェントとの敵対的会話を検出して軽減するためのケイパビリティを提供する。プログラム２００は、コンピュータ・デバイス１１０と通信するためにＷｉ−Ｆｉ技術、Ｂｌｕｅｔｏｏｔｈ（Ｒ）、近距離無線通信タグ（ＮＦＣ：Ｎｅａｒ  Ｆｉｅｌｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  ｔａｇｓ）、モバイル通信用グローバル・システム（ＧＳＭ：Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ）、および全地球測位システム技術（ＧＰＳ：Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ  Ｔｅｃｈｎｏｌｏｇｙ）を使用できる。
【００４４】
実施形態例において、プログラム２００は、コンピュータ・デバイス１１０における１つ以上のアプリケーション内のコード・スニペットとして動作する。コード・スニペットは、スニペットとアプリケーションとの間の双方向性の範囲を定義する（例、サーバ１２０におけるウェブ・ブラウザ・アプリケーションによってホストされるプログラム２００）。たとえば、プログラム２００はウェブ・ブラウザ１５０内の機能であり、プログラム２００のプロセスは、プログラム２００によって開始されるウェブ・ブラウザ１５０の動作中に自動的に（すなわち、ユーザの介入なしに）もたらされる。動的コード・スニペット・エレメントは、スクリプトのサポートを提供する。この変数は、サーバ１２０を通じたプログラム２００と、グラフィカル・ユーザ・インターフェース１３０、ウェブ・ブラウザ１５０、および生体模倣チップ１５５との間のダイアログを可能にする。
【００４５】
図２は、本発明の実施形態によるロボット・デバイスを識別するためのプログラムであるプログラム２００を示す流れ図である。
【００４６】
ステップ２１０において、プログラム２００は識別データセットを受信する。ある実施形態において、プログラム２００は、第１の未知のロボット・デバイスに対する履歴データセットを含む、図示されないニューラル・ネットワークの出力からの識別データセットを受信する。プログラム２００は、同じロボットの異なる構成部分に対する複数の識別データセットと、そのロボット自体に対する識別データセットとを受信できる。一例において、プログラム２００は、同じ手術用ロボットに取り付けられた４つの異なる手術用アームと、ロボットの本体とに対する５つのデータセットを同時に受信する。受信されたデータセットは個々のアーム、個々のロボットに対する特定のものであり、代替可能ではない。この例において、受信識別データセット１は手術用アーム１に対応し、一方で受信識別データセット２は手術用アーム２に対応し、受信識別データセット３は手術用アーム３に対応し、受信識別データセット４は手術用アーム４に対応する。受信識別データセット５は、ロボットの本体に対応する。
【００４７】
別の実施形態において、プログラム２００は１つのロボットから識別データセットを受信する。一例において、プログラム２００は識別データセットを、１つのロボットの本体から図示されないニューラル・ネットワークからの出力として受信する。このロボットはアームまたはその他の機能コンポーネントを有さないため、識別データセットはロボットの本体に対応する。別の実施形態において、プログラム２００は、ロボットの本体に物理的に接続されていない２つのアームと、ロボットを構成するアームと物理的に近接していないロボットの本体とに対する識別データセットを受信する。
【００４８】
図３は、本発明の実施形態による未知のロボット・デバイスとの通信を開始するプログラム２００の例を示す。この実施形態において、プログラム２００は、ロボット・デバイスに関連付けられたコンピュータ・デバイス３１０において動作し、未知のロボット・デバイス３１５との通信を開始し、この未知のロボット・デバイス３１５には手術用ロボット・アーム３２０、３３０、および３４０が取り付けられている。プログラム２００は、手術用ロボット・アーム３２０、３３０、および３４０の１つ、２つ、またはすべてと独立的および協調的に、未知のロボット・デバイス３１５との通信を開始できる。手術用ロボット・アーム３２０、３３０、および３４０は、個々の付属物と一意に関連付けられたシグネチャ運動を行い得る。
【００４９】
ステップ２２０において、プログラム２００はコンピュータ・デバイス３１０を通じて、３２０、３３０、および３４０が取り付けられた未知のロボット・デバイス３１５と通信する。プログラム２００は、未知のロボット・デバイス３１５ならびに未知の手術用ロボット・アーム３２０、３３０、および３４０との個別の能動的通信および受動的通信を開始でき、かつプログラム２００はそれを受信する。ある実施形態において、プログラム２００は、未知のロボット・デバイス３１５および未知の手術用ロボット・アーム３２０、３３０、もしくは３４０、またはその組み合わせからのオーディオ信号を得て、そのオーディオ信号を処理して未知のロボット・デバイスの未知の手術用ロボット・アームの各々またはすべてのオーディオ・プロファイルを得る。一例において、プログラム２００は、未知のロボット・デバイス３１５の個々のコンポーネント３２０、３３０、および３４０からのアナログまたはデジタル情報信号を受信する。この例において、プログラム２００は二進数としての圧力波形のデジタル表現を通じて未知のロボット・デバイスとの通信を開始して、信号の処理を許可する。未知のロボット・デバイスの１つ以上のコンポーネントとの通信を能動的に開始することを助けるために、プログラム２００はデータの圧縮、等化による増強、フィルタリング、ならびにエコー除去および付加を行い得る。
【００５０】
別の実施形態において、プログラム２００は、未知の手術用アーム３２０、３３０、および３４０の生体模倣シグネチャ・プロファイルのモデリングを開始する。一例において、プログラム２００は、デバイス・シグネチャ・メタ知識を使用して３２０、３３０、および３４０と通信する。プログラム２００は未知の３２０、３３０、および３４０と能動的に通信して、１つ以上のデータベースに保存された３２０、３３０、および３４０のシグネチャ・プロファイルをモデリングすることを３２０、３３０、および３４０に要求する。一例において、プログラム２００は、１つの本体に取り付けられた３つの個別の手術用ロボット・アームである３２０、３３０、および３４０との通信を開始する。この例において、各個別アームは、個々の付属物と一意に関連付けられたシグネチャ運動を行う。１つの個別アームは、シグネチャ運動に対応して上に３回動いてもよい。別の個別アームは、ロボット・アームによってコマンドが受信されるまで、反復的様式で時計方向に回転してもよい。
【００５１】
別の実施形態において、プログラム２００は、ステップ２１０において受信した履歴データセットに基づいて未知のロボット・デバイス３１５からの事前知識の収集を要求して、未知のロボット・デバイスのプログラミングを判定する。一例において、プログラム２００は未知のロボット・デバイスと通信することを通じて、以前のデバイス識別応答知識の収集を要求する。
【００５２】
別の実施形態において、プログラム２００は未知のロボット・デバイス３１５の光学走査を行って、２つの個別ロボット・アームの光学走査画像を生成する。プログラム２００は、画像が正確な再現ではないかもしれないが、走査画像は閾値類似基準に適合することを判定できる。ロボット・アームの光学走査は、人間の虹彩の光学走査と同様の働きをする。光学走査は、たとえば光学走査される個別ロボット・アームに対する特定の刻印バーコードまたはバーコードの組み合わせなどの検証可能な識別マーカを探索する。光学走査は、光ビームを用いてロボット・デバイスの物理的プロファイルに対する適合を探索し、特定のロボット・デバイスに対して一意であるロボット・デバイスの物理的プロファイルのニュアンスに対してロボット・デバイスを走査する。光学走査は、光ビームを用いてロボット・デバイスの識別プロファイルに対応するバーコードを分析することもでき、この識別プロファイルは１つ以上のデータベースに保存されている。プログラム２００は、ロボット・デバイスの光学走査と組み合わせたバーコードの走査の両方を行って、未知のロボット・デバイスと通信することができる。
【００５３】
別の実施形態において、プログラム２００は、分析および尋問の推論プログラミングを通じてロボット・デバイスとの通信を開始する。この例において、プログラム２００はある活動を行い、未知のロボット・デバイスの活動を観察し、開始された未知のロボット・デバイスとの通信の結果としての未知のロボット・デバイスの変化を探索することによって、未知のロボット・デバイス３１５との通信を能動的または受動的に開始できる。
【００５４】
他の実施形態において、プログラム２００はたとえばトルク検知、ロボットの本体に対する運動パターン識別、およびロボット・デバイスの１つ以上の個々の先端の運動パターン識別などの、他の客観的および直接的な識別方法を通じて、未知のロボット・デバイス３１５との通信を開始できる。
【００５５】
ステップ２３０において、プログラム２００は未知のロボット・デバイスのプログラミングを判定する。ある実施形態において、プログラム２００は未知のロボット・デバイス３１５を尋問して、未知のロボット・デバイスの分析および推論プログラミングを判定する。この実施形態において、プログラム２００は進行中の持続的かつ連続的な再バリデーションを通じて、未知のロボット・デバイス３１５のプログラミングを判定する。ステップ２３０は、未知のロボット・デバイス３１５を再バリデーションするための連続的プロセスである。手術用ロボット・アームは外部エンティティによって非常にハッキングされやすいという事実から、一例において、プログラム２００は手術用ロボット・アーム３２０、３３０、および３４０を常時モニタする。この例において、プログラム２００は手術用ロボット・アームに対する機能不良チェックを行って、そのプログラミングが手術用ロボット・アーム３２０、３３０、および３４０に対応するものとして１つ以上のデータベースに保存されているプログラミングに対応するかどうかを判定する。この例において、プログラム２００は５分間の間隔を置いて、手術用ロボット・アームに今行っている活動を中止して命令に応答するように指示する。プログラム２００は、手術用ロボット・アームが機能不良ではないこと、または手術用ロボット・アームがハッキングされていないことを確かめる持続的なやり方として、この手術用ロボット・アームの指示および観察活動を使用する。
【００５６】
ステップ２４０において、プログラム２００は、未知のロボット・デバイス３１５の判定されたプログラミングに基づいてプログラミング・データセットを生成する。ある実施形態において、プログラム２００は、未知のロボット・デバイス３１５の尋問および観察された通信に基づいて、プログラミング・データセットを生成する。一例においてプログラム２００は、一連の指示された運動を通じた、ロボット・デバイスに取り付けられた３つの個別の手術用ロボット・アーム３２０、３３０、および３４０の３つのアクティブな別個の信号を使用して、プログラミング・データセットを生成する。生成されたプログラミング・データセットを用いて、３つの未知の手術用ロボット・アーム３２０、３３０、および３４０に対する３つの識別データセットが生成される。
【００５７】
別の実施形態において、プログラム２００は受動的な識別プロセスを使用して、プログラミング・データセットを生成する。一例において、プログラム２００は、未知のロボット・デバイス３１５のゲートおよび通常の動作音を記録および分析することを通じて、未知のロボット・デバイスの識別データセットを生成する。この例において、未知のロボット・デバイスの識別データセットは、特徴的なゲートおよび通常の動作音を使用して生成される。
【００５８】
ある実施形態において、プログラム２００は光学走査画像、オーディオ信号プロファイル、生体模倣シグネチャ・プロファイル、受信した事前知識、もしくはプログラミング・データセット、またはその組み合わせを比較して、未知のロボット・デバイスのデータセットを生成する。一例において、プログラム２００はステップ２２０およびステップ２３０からの蓄積した証拠を組み合わせて、未知の手術用ロボット・アームの識別データセットを生成する。この例において、プログラム２００は、バーコードの光学走査画像、手術用ロボット・アームの通常の動作音のオーディオ信号プロファイル、手術用ロボット・アームのシグネチャ運動の生体模倣シグネチャ・プロファイル、手術用ロボット・アームの一番最近の活動の受信事前知識に基づいて、個別および組み合わせの手術用ロボット・アームに対するプログラミング・データセットを生成して、個別および組み合わせの手術用ロボット・アームに対する識別データセットを生成する。
【００５９】
決定ステップ２５０において、プログラム２００は、未知のロボット・デバイスの識別データセットが第１のロボット・デバイスの受信識別データセットと一致するかどうかを判定する。ある実施形態において、プログラム２００は、特定のロボット・デバイスがそのロボット・デバイスがアサートしているロボット・デバイスであることの確実性が高レベルであることによって、未知のロボット・デバイスが識別すべき第１のロボット・デバイスであると判定する。一例において、手術用ロボット・アームのプログラミング・データセットは、手術用ロボット・アームの運動に基づいて経時的に進化する。この例において、プログラム２００は、手術用ロボット・アームの定められたプログラミング・データセットに関してステップ２４０において蓄積された情報および証拠を使用して、この手術用ロボット・アームがステップ２１０において受信したものと同じ識別データセットを含むかどうかを判定する。プログラム２００は、手術用ロボット・アームが手術用ロボット・アームの受信識別データセットに適合するかどうかを判定する。
【００６０】
ステップ２６０において、プログラム２００は未知のロボット・デバイスの入場を拒否する。より具体的には、未知のロボット・デバイスが受信識別データセットに適合しないと判定したことに応答して（決定ステップ２５０、「ｎｏ」分岐）、プログラム２００は未知のロボット・デバイスの入場を拒否する。ある実施形態において、プログラム２００は未知のロボット・デバイスの識別を確認することを試みて失敗する。一例において、プログラム２００は、未知の手術用ロボット・アームが手術用ロボット・アームの受信識別データセットに適合することを検証しようと試みる。この例において、プログラム２００は、未知の手術用ロボット・アームと手術用ロボット・アームの受信識別データセットとが適合しないと判定する。プログラム２００は、手術用ロボット・アームの手術室への入場を拒否するためのアラームをアクティブにすることを通じて、未知のロボット・デバイスの入場を拒否する。
【００６１】
決定ステップ２７０において、プログラム２００は未知のロボット・デバイスが第１のロボット・デバイスであるかどうかを判定する（決定ステップ２５０、「ｙｅｓ」分岐）。ある実施形態において、プログラム２００は未知のロボット・デバイスのステップ２４０において蓄積された証拠を使用して、未知のロボット・デバイスがステップ２１０における受信識別データセットと相関する第１のロボット・デバイスであることを積極的に識別および判定する。プログラム２００は、常に未知のロボット・デバイスの識別を持続的に再バリデーションおよび確認している。最初にプログラム２００は決定ステップ２５０において行われる積極的識別判定に基づいて未知のロボット・デバイスが第１のロボット・デバイスであると判定し、プログラミング・データセットの進化する性質によって、プログラム２００は過去に積極的に識別されたものと同じロボット・デバイスがもはや過去に積極的に識別されたロボット・デバイスではないと判定することも起こり得る。
【００６２】
別の実施形態において、プログラム２００は、未知のロボット・デバイスが第１のロボット・デバイスであるかどうかの判定に許容係数を取り入れる。一例において、許容係数９０％を使用するプログラム２００は、１０の個別手術用ロボット・アームをバリデーションしてロボット・デバイスを入場許可するために、１０の個別手術用ロボット・アームを含むロボット・デバイスが適切に識別されるかどうかを判定する。プログラム２００は許容係数９０％を使用して、未知の手術用ロボット・アームが積極的識別を受けるかどうかを判定する。１０の手術用ロボット・アームのうち少なくとも９つが、未知の手術用ロボット・アームによる受信識別データセットに適合する必要がある。この例において、１０のうち９の手術用ロボット・アームが手術用ロボット・アームに対する受信識別と適合するとして適切にバリデーションされた。プログラム２００は、未知の手術用ロボット・アームが第１の手術用ロボット・アームであって積極的識別を受けたと判定する。ロボット全体および１０の手術用ロボット・アームは、生体模倣識別デバイス通信応答に失敗した１つの手術用ロボット・アームを伴って、入場許可される。
【００６３】
別の例において、許容係数９０％を使用するプログラム２００は、１０のうち８の手術用ロボット・アームが手術用ロボット・アームに対する受信識別と適合するとして適切にバリデーションされたと判定する。プログラム２００は、２つの個別の未知の手術用ロボット・アームが最初の８つの手術用ロボット・アームと同様に適切にバリデーションされたと判定することはできない。この場合、ロボット・デバイス全体は積極的識別を受けない。ロボット全体および１０の手術用ロボット・アームは、生体模倣識別デバイス通信応答に失敗した２つの手術用ロボット・アームを伴って、入場許可されない。
【００６４】
ステップ２８０において、プログラム２００はシャットダウン・プロトコルを開始する（決定ステップ２７０、「ｎｏ」分岐）。未知のロボット・デバイスが第１のロボット・デバイスではないと判定したことに応答して、プログラム２００は未知のロボット・デバイスのシャットダウン・プロトコルを開始する。一例において、プログラム２００は、手術用ロボット・アームの過去の積極的生体模倣識別がもはや適切な生体模倣識別と相関しないことを判定する。この例において、プログラム２００は、５つの手術用ロボット・アームの再バリデーションのステップ２１０〜２５０を行う。適切に働いていないか、または積極的に識別されていない手術用ロボット・アームの確立された許容係数８０％に基づくと、５つのうち２つのアームが働いておらず、許容係数８０％を超えているため、プログラム２００は５つの手術用ロボット・アームすべてのシャットダウン・プロトコルを開始する。別の例においては、５つのうち４つのアームが積極的に識別され、かつステップ２４０において生成されるそれらの進化したプログラミング・データセットと一致した適切な生体模倣識別と一致した動きをしており、プログラム２００はそれらの手術用ロボット・アームを用いて動作を継続し、シャットダウンは開始しない。この例における許容係数は超えられていない。
【００６５】
ステップ２９０において、プログラム２００は第１のロボット・デバイスに対する識別データセットを更新する（決定ステップ２７０、「ｙｅｓ」分岐）。未知のロボット・デバイスがステップ２１０からの受信識別データセットに適合すると判定したことに応答して、プログラム２００は付加的なデータによって、第１のロボット・デバイスに対する識別データセットを更新する。ある実施形態においては、コグニティブ・ロボット回帰ベースの事前分布によってプログラミング・データセットが常時進化する。一例において、プログラム２００は、以前のロボット識別から確立された蓄積知識に基づいて、ロボット・デバイスの識別の効率を高める。
【００６６】
図４は、本発明の例示的実施形態によるサーバ１２０のコンポーネントのブロック図を示す。当然のことながら、図４は１つの実施の例示のみを提供するものであり、異なる実施形態が実施され得る環境に関するいかなる制限も意味していない。示される環境に対して多くの変更が行われてもよい。
【００６７】
サーバ１２０は通信ファブリック４０２を含み、この通信ファブリック４０２はキャッシュ４１６と、メモリ４０６と、永続的ストレージ４０８と、通信ユニット４１０と、入力／出力（Ｉ／Ｏ）インターフェース（単数または複数）４１２との間の通信を提供する。通信ファブリック４０２は、プロセッサ（たとえばマイクロプロセッサ、通信およびネットワーク・プロセッサなど）、システム・メモリ、周辺デバイス、およびシステム内の任意のその他のハードウェア・コンポーネントの間でデータもしくは制御情報またはその両方を送るために設計された任意のアーキテクチャによって実現され得る。たとえば、通信ファブリック４０２は１つ以上のバスまたはクロスバー・スイッチによって実現され得る。
【００６８】
メモリ４０６および永続的ストレージ４０８は、コンピュータ可読ストレージ媒体である。この実施形態において、メモリ４０６はランダム・アクセス・メモリ（ＲＡＭ）を含む。一般的に、メモリ４０６は任意の好適な揮発性または不揮発性のコンピュータ可読ストレージ媒体を含み得る。キャッシュ４１６は、メモリ４０６からの最近アクセスされたデータおよびアクセスされたデータに近いデータを保持することによって、コンピュータ・プロセッサ（単数または複数）４０４のパフォーマンスを高める高速メモリである。
【００６９】
プログラム２００は、キャッシュ４１６を介したそれぞれのコンピュータ・プロセッサ４０４の１つ以上による実行のために、永続的ストレージ４０８およびメモリ４０６に保存されてもよい。ある実施形態において、永続的ストレージ４０８は磁気ハード・ディスク・ドライブを含む。代替的に、または磁気ハード・ディスク・ドライブに加えて、永続的ストレージ４０８は固体ハード・ドライブ、半導体ストレージ・デバイス、リード・オンリ・メモリ（ＲＯＭ：ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、消去可能プログラマブル・リード・オンリ・メモリ（ＥＰＲＯＭ：ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、フラッシュ・メモリ、またはプログラム命令もしくはデジタル情報を保存し得る任意のその他のコンピュータ可読ストレージ媒体を含み得る。
【００７０】
永続的ストレージ４０８によって用いられる媒体は、取り外し可能であってもよい。たとえば、永続的ストレージ４０８に対して取り外し可能なハード・ドライブが用いられてもよい。その他の例は光および磁気ディスク、サム・ドライブ、ならびにやはり永続的ストレージ４０８の一部である別のコンピュータ可読ストレージ媒体への転送のためにドライブに挿入されるスマート・カードを含む。
【００７１】
これらの例における通信ユニット４１０は、他のデータ処理システムまたはデバイスとの通信を提供する。これらの例において、通信ユニット４１０は１つ以上のネットワーク・インターフェース・カードを含む。通信ユニット４１０は、物理的およびワイヤレス通信リンクのいずれかまたは両方を用いて通信を提供してもよい。プログラム２００は、通信ユニット４１０を通じて永続的ストレージ４０８にダウンロードされてもよい。
【００７２】
Ｉ／Ｏインターフェース（単数または複数）４１２は、サーバ１２０に接続されてもよい他のデバイスとのデータの入力および出力を可能にする。たとえば、Ｉ／Ｏインターフェース４１２はたとえばキーボード、キーパッド、タッチ・スクリーン、もしくは何らかのその他の好適な入力デバイス、またはその組み合わせなどの外部デバイス４１８との接続を提供してもよい。外部デバイス４１８は、たとえばサム・ドライブ、ポータブルの光または磁気ディスク、およびメモリ・カードなどのポータブル・コンピュータ可読ストレージ媒体も含み得る。たとえばプログラム２００などの、本発明の実施形態を実施するために用いられるソフトウェアおよびデータは、こうしたポータブル・コンピュータ可読ストレージ媒体に保存されてもよく、かつＩ／Ｏインターフェース（単数または複数）４１２を介して永続的ストレージ４０８にロードされ得る。Ｉ／Ｏインターフェース（単数または複数）４１２はディスプレイ４２０にも接続する。
【００７３】
ディスプレイ４２０は、ユーザにデータを表示するための機構を提供し、たとえばコンピュータ・モニタなどであってもよい。
【００７４】
本明細書に記載されるプログラムは、それらが本発明の特定の実施形態において実現されるアプリケーションに基づいて識別される。しかし、当然のことながら本明細書における任意の特定のプログラムの名称は単に簡便のために用いられており、よって本発明はこうした名称によって識別もしくは意味されるか、またはその両方である任意の特定のアプリケーションのみにおける使用に限定されるべきではない。
【００７５】
本発明はシステム、方法、もしくはコンピュータ・プログラム製品、またはその組み合わせであってもよい。コンピュータ・プログラム製品は、本発明の態様をプロセッサに行わせるためのコンピュータ可読プログラム命令を有するコンピュータ可読ストレージ媒体（または複数の媒体）を含んでもよい。
【００７６】
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および保存できる有形デバイスであり得る。コンピュータ可読ストレージ媒体は、たとえば電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または前述の任意の好適な組み合わせなどであってもよいが、それに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的リストは以下を含む。ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリ・メモリ（ＲＯＭ）、消去可能プログラマブル・リード・オンリ・メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ：ｓｔａｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、ポータブル・コンパクト・ディスク・リード・オンリ・メモリ（ＣＤ−ＲＯＭ：ｃｏｍｐａｃｔ  ｄｉｓｃ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、デジタル多用途ディスク（ＤＶＤ：ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋ）、メモリ・スティック、フレキシブル・ディスク、機械的にコード化されたデバイス、たとえばパンチ・カードまたは記録された命令を有する溝の中の隆起構造など、および前述の任意の好適な組み合わせ。本明細書において用いられるコンピュータ可読ストレージ媒体は、たとえば電波もしくはその他の自由に伝播する電磁波、導波路もしくはその他の伝送媒体を通じて伝播する電磁波（例、光ファイバ・ケーブルを通過する光パルス）、またはワイヤを通じて伝送される電気信号など、それ自体が一時的信号であると解釈されるべきではない。
【００７７】
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピュータ／処理デバイスにダウンロードされ得るか、またはたとえばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク、もしくはワイヤレス・ネットワーク、またはその組み合わせなどのネットワークを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードされ得る。ネットワークは銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、もしくはエッジ・サーバ、またはその組み合わせを含んでもよい。各コンピュータ／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信して、そのコンピュータ可読プログラム命令をそれぞれのコンピュータ／処理デバイス内のコンピュータ可読ストレージ媒体に記憶するために転送する。
【００７８】
本発明の動作を実行するためのコンピュータ可読プログラム命令はアセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ：ｉｎｓｔｒｕｃｔｉｏｎ−ｓｅｔ−ａｒｃｈｉｔｅｃｔｕｒｅ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、または１つ以上のプログラミング言語の任意の組み合わせで書かれたソース・コードもしくはオブジェクト・コードであってもよく、このプログラミング言語はオブジェクト指向プログラミング言語、たとえばＳｍａｌｌｔａｌｋ、またはＣ＋＋など、および従来の手続き型プログラミング言語、たとえば「Ｃ」プログラミング言語または類似のプログラミング言語などを含む。コンピュータ可読プログラム命令は、すべてがユーザのコンピュータで実行されてもよいし、スタンド・アロン・ソフトウェア・パッケージとして部分的にユーザのコンピュータで実行されてもよいし、一部がユーザのコンピュータで、一部がリモート・コンピュータで実行されてもよいし、すべてがリモート・コンピュータまたはサーバで実行されてもよい。後者のシナリオにおいて、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）または広域ネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続されてもよいし、（たとえば、インターネット・サービス・プロバイダを用いてインターネットを通じて）外部コンピュータへの接続が行われてもよい。いくつかの実施形態において、たとえばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ：ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙｓ）、またはプログラマブル・ロジック・アレイ（ＰＬＡ：ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ａｒｒａｙｓ）などを含む電子回路は、本発明の態様を行うために電子回路をパーソナライズするためのコンピュータ可読プログラム命令の状態情報を使用することによって、コンピュータ可読プログラム命令を実行してもよい。
【００７９】
本明細書においては、本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品の流れ図もしくはブロック図またはその両方を参照して、本発明の態様を説明している。流れ図もしくはブロック図またはその両方の各ブロック、および流れ図もしくはブロック図またはその両方におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実現され得ることが理解されるだろう。
【００８０】
これらのコンピュータ可読プログラム命令は、汎用目的コンピュータ、特定目的コンピュータ、またはマシンを生成するためのその他のプログラマブル・データ処理装置のプロセッサに提供されることによって、そのコンピュータまたはその他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、流れ図もしくはブロック図またはその両方の単数または複数のブロックにおいて指定される機能／動作を実現するための手段を生じてもよい。これらのコンピュータ可読プログラム命令は、コンピュータ、プログラマブル・データ処理装置、もしくはその他のデバイスまたはその組み合わせに特定の方式で機能するように指示できるコンピュータ可読ストレージ媒体にも保存されることによって、命令が保存されたコンピュータ可読ストレージ媒体が、流れ図もしくはブロック図またはその両方の単数または複数のブロックにおいて指定される機能／動作の態様を実現する命令を含む製造物を含んでもよい。
【００８１】
コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにもロードされて、コンピュータに実現されるプロセスを生成するためにコンピュータ、他のプログラマブル装置、または他のデバイスにおいて一連の動作ステップを行わせることによって、そのコンピュータ、他のプログラマブル装置、または他のデバイスにおいて実行される命令が、流れ図もしくはブロック図またはその両方の単数または複数のブロックにおいて指定される機能／動作を実現してもよい。
【００８２】
図面における流れ図およびブロック図は、本発明のさまざまな実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施のアーキテクチャ、機能、および動作を示すものである。これに関して、流れ図またはブロック図の各ブロックは、指定される論理機能（単数または複数）を実現するための１つ以上の実行可能命令を含むモジュール、セグメント、または命令の一部を表してもよい。いくつかの代替的実施において、ブロック内に示される機能は、図面に示されるものとは異なる順序で起こってもよい。たとえば、連続して示される２つのブロックは、実際には実質的に同時に実行されてもよいし、関与する機能によってはこれらのブロックがときには逆の順序で実行されてもよい。加えて、ブロック図もしくは流れ図またはその両方の各ブロック、およびブロック図もしくは流れ図またはその両方のブロックの組み合わせは、指定された機能または動作を行うか、特定目的のハードウェアおよびコンピュータ命令の組み合わせを実行する特定目的のハードウェア・ベースのシステムによって実現され得ることが注目されるだろう。
【００８３】
本発明のさまざまな実施形態の説明は、例示の目的のために提供されたものであるが、開示される実施形態に対して網羅的または限定的になることは意図されていない。本発明の範囲から逸脱することなく、多くの修正および変形が当業者に明らかになるだろう。本明細書において用いられる用語は、実施形態の原理、実際の適用、もしくは市場に見出される技術に対する技術的改善を最もよく説明するため、または他の当業者が本明細書に開示される実施形態を理解できるようにするために選択されたものである。
【図１】
2021528716.tif 000003
【図２】
2021528716.tif 000004
【図３】
2021528716.tif 000005
【図４】
2021528716.tif 000006
【国際調査報告】
2021528716.tif 000007
2021528716.tif 000008