(57)【要約】      （修正有）【課題】印刷デバイスの検索および管理システムならびに方法を提供する。【解決手段】印刷デバイスの検索方法は、複数の文字を含む検索入力データを受信する工程及び、複数の文字の第１の部分に基づいて、検索条件を決定する工程が含まれる。この方法には、複数の文字の第２の部分に基づいて、コマンドを決定する工程がさらに含まれる。さらに、この方法には、複数の印刷デバイスのうちの少なくとも１つの印刷デバイスが検索条件により指定された基準を満たしているかどうかを判定する工程が含まれる。少なくとも１つの印刷デバイスがその基準を満たす場合、この方法には、検索条件により指定された基準を満たす１つ以上の印刷デバイスを特定する工程が含まれる。さらに、方法には、特定された１つ以上の印刷デバイスのうちの少なくとも１つの特定の印刷デバイスに関連する決定コマンドを、決定コマンドにより指定されたデバイス上で実行する工程も含まれる。【選択図】図９
2016181258.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティング・デバイスであって、
少なくとも１つのプロセッサと、
メモリと、
前記メモリに記憶されたプログラム命令であって、前記少なくとも１つのプロセッサによる実行の際に、前記コンピューティング・デバイスに、
検索入力データを入力可能な検索プロンプトを表示デバイスに表示させる工程と、
複数の文字を含む前記検索入力データをコンピューティング・デバイスで受信する工程と、
前記複数の文字の第１の部分に基づいて検索条件を決定する工程であって、所与の検索条件は、所与の印刷デバイスの特性に関する基準を示す工程と、
前記複数の文字の第２の部分に基づいてコマンドを決定する工程であって、所与のコマンドは、実行可能な動作を示し、前記所与のコマンドは、前記動作を実行する所与のデバイスを指定し、前記所与のコマンドは、印刷デバイスに関連して実行可能である工程と、
複数の印刷デバイスのうちの少なくとも１つの印刷デバイスが、前記検索条件により指定された前記基準を満たしているかどうかを判定する工程と、
少なくとも１つの印刷デバイスが前記基準を満たしているという判定に基づいて、前記検索条件により指定された前記基準を満たしている１つ以上の印刷デバイスを特定する工程と、
前記特定された１つ以上の印刷デバイスのうちの少なくとも１つの特定の印刷デバイスに関連する前記決定コマンドを、前記決定コマンドにより指定されたデバイス上で実行する工程と、を含む工程を実施させるプログラム命令を備える、コンピューティング・デバイス。
【請求項２】
請求項１に記載のコンピューティング・デバイスであって、
前記コマンドを決定する工程には、前記複数の文字の前記第２の部分が、コマンドのデータベース内の前記コマンドの名前と一致するかどうかを判定することが含まれ、前記コマンドのデータベースには、複数の記述項目が含まれ、特定の記述項目は、特定のコマンドに関連し、前記特定のコマンドの名前を含む、コンピューティング・デバイス。
【請求項３】
請求項２に記載のコンピューティング・デバイスであって、さらに、
前記コマンドを表す名前を示す名前の入力データを受信する工程と、
前記名前の入力データを、前記コマンドのデータベース内の前記コマンドの前記名前として指定する工程と、
を実施させるプログラム命令を含む、コンピューティング・デバイス。
【請求項４】
請求項２又は３に記載のコンピューティング・デバイスであって、
前記特定のコマンドの前記名前は、第１の言語で示され、前記特定の記述項目は、第２の言語で示された前記特定のコマンドの前記名前をさらに含み、前記コマンドを決定する工程には、
前記複数の文字の前記第２の部分が、（ｉ）前記第１の言語で示される前記コマンドの前記名前、および（ｉｉ）前記第２の言語で示される前記コマンドの前記名前のうちの少なくとも１方と一致するかどうかを判定することがさらに含まれる、コンピューティング・デバイス。
【請求項５】
請求項２乃至４のいずれか１項に記載のコンピューティング・デバイスであって、
前記複数の文字の前記第２の部分が、前記コマンドのデータベース内のコマンドのどの名前とも一致せず、前記方法が、さらに
前記複数の文字の前記第２の部分と、前記コマンドのデータベース内の前記コマンドの前記名前との間の類似度を決定する工程と、
前記類似度が類似度の閾値を超えていることに基づいて、前記複数の文字の前記第２の部分が、前記コマンドに対応することを判定する工程と、を含む、コンピューティング・デバイス。
【請求項６】
請求項５に記載のコンピューティング・デバイスであって、
前記コマンドの前記名前は、第１のコマンドの名前であり、前記類似度は、第１の類似度であり、前記方法が、さらに
前記複数の文字の前記第２の部分と、前記コマンドのデータベース内の第２のコマンドの名前との間の第２の類似度が、前記類似度の閾値を超えているかどうかを判定する工程と、
前記第１の類似度と前記第２の類似度の両方が前記類似度の閾値を超えていることに基づいて、前記第１のコマンドと前記第２のコマンドのうちの１方を選択するためのプロンプトを表示ユニットに表示させる工程と、を含む、コンピューティング・デバイス。
【請求項７】
請求項１乃至６のいずれか１項に記載のコンピューティング・デバイスであって、
前記１つ以上の印刷デバイスを特定する工程には、
前記決定した検索条件により指定された前記特性に関する前記基準を満たす印刷デバイスを印刷デバイスのデータベースに問い合わせることであって、前記印刷デバイスのデータベースには、前記複数の印刷デバイスに対応する複数の記述項目が含まれ、所与の記述項目には、（ｉ）特定の印刷デバイスの識別子、および（ｉｉ）前記特定の印刷デバイスの前記特性の値が含まれる工程と、
前記印刷デバイスのデータベースへの問合せに応じて、前記１つ以上の印刷デバイスに対応する１つ以上の識別子を受信する工程と、が含まれる、コンピューティング・デバイス。
【請求項８】
請求項１乃至７のいずれか１項に記載のコンピューティング・デバイスであって、
前記検索条件は、第１の検索条件であり、前記１つ以上の印刷デバイスは、１つ以上の第１の印刷デバイスであり、前記方法が、さらに、
前記複数の文字の第３の部分に基づいて、第２の検索条件を決定する工程と、
前記複数の文字の第４の部分に基づいて、論理演算子を決定する工程と、
前記第２の検索条件に基づいて、前記第２の検索条件により指定された前記特性に対応する１つ以上の第２の印刷デバイスを特定する工程と、
前記１つ以上の第１の印刷デバイスおよび前記１つ以上の第２の印刷デバイスに前記論理演算子を適用することにより、１つ以上の第３の印刷デバイスを決定する工程と、を含む、コンピューティング・デバイス。
【請求項９】
請求項１乃至８のいずれか１項に記載のコンピューティング・デバイスであって、さらに
前記複数の印刷デバイスのうちのどの印刷デバイスも前記基準を満たしていないという判定に基づいて、新しい検索入力データのためのプロンプトを提供する工程を実施させるプログラム命令を含む、コンピューティング・デバイス。
【請求項１０】
請求項１乃至９のいずれか１項に記載のコンピューティング・デバイスであって、さらに、
前記コンピューティング・デバイスを指定する前記決定コマンドに基づいて、前記少なくとも１つの特定の印刷デバイスに関連する前記決定コマンドを、前記コンピューティング・デバイス上で実行する工程を実施させるプログラム命令を含む、コンピューティング・デバイス。
【請求項１１】
請求項１乃至１０のいずれか１項に記載のコンピューティング・デバイスであって、さらに、
前記少なくとも１つの特定の印刷デバイスを指定する前記決定コマンドに基づいて、前記決定コマンドを、前記少なくとも１つの特定の印刷デバイス上で実行する工程を含む、コンピューティング・デバイス。
【請求項１２】
プログラムであって、
検索入力データを入力可能な検索プロンプトを表示デバイスに表示させる工程と、
複数の文字を含む前記検索入力データをコンピューティング・デバイスで受信する工程と、
前記複数の文字の第１の部分に基づいて検索条件を決定する工程であって、所与の検索条件は、所与の印刷デバイスの特性に関する基準を示す工程と、
前記複数の文字の第２の部分に基づいてコマンドを決定する工程であって、所与のコマンドは、実行可能な工程を示し、前記所与のコマンドは、前記工程を実行する所与のデバイスを指定し、前記所与のコマンドは、印刷デバイスに関連して実行可能である工程と、
複数の印刷デバイスのうちの少なくとも１つの印刷デバイスが、前記検索条件により指定された前記基準を満たしているかどうかを判定する工程と、
少なくとも１つの印刷デバイスが前記基準を満たしているという判定に基づいて、前記検索条件により指定された前記基準を満たしている１つ以上の印刷デバイスを特定する工程と、
前記特定された１つ以上の印刷デバイスのうちの少なくとも１つの特定の印刷デバイスに関連する前記決定コマンドを、前記決定コマンドにより指定されたデバイス上で実行する工程と、
を備える一連の工程を前記コンピューティング・デバイスに実行させる、プログラム。
【請求項１３】
請求項１２に記載のプログラムであって、
前記表示デバイスに前記検索プロンプトを表示させる工程は、キーボードからのキーストローク入力を受けて前記コンピューティング・デバイスにより実行される、プログラム。
【請求項１４】
請求項１２又は１３に記載のプログラムであって、
前記検索入力データは、特定の検索入力データであり、前記工程には、
複数の検索入力データを含む検索入力データの履歴を受信する工程であって、前記特定の検索入力データが、前記複数の検索入力データに含まれる工程と、
前記特定の検索入力データを含む前記複数の検索入力データの一部を表示ユニットに表示させる工程と、
前記特定の検索入力データの選択を受信する工程と、がさらに含まれる、プログラム。
【請求項１５】
コンピューティング・デバイスおよび複数の印刷デバイスを含むシステムであって、前記コンピューティング・デバイスが、表示デバイスを含み、命令を実行するよう構成され、前記命令には、
印刷デバイス情報（ＰＤＩ）に対する複数の要求を、前記複数の印刷デバイスに送信する命令であって、所与のＰＤＩには、（ｉ）所与の印刷デバイスの名前、および（ｉｉ）前記所与の印刷デバイスの特性の値が少なくとも含まれる命令と、
前記複数の印刷デバイスから、それぞれ複数のＰＤＩを受信する命令と、
前記受信した複数のＰＤＩに基づいて、印刷デバイスのデータベースを生成する命令と、
前記所与の印刷デバイスの特性に関する基準を示す検索条件を受信する命令と、
前記複数の印刷デバイスのうちの少なくとも１つの印刷デバイスが、前記検索条件により指定された前記基準を満たしているかどうかを判定する命令と、
少なくとも１つの印刷デバイスが前記基準を満たしているという判定に基づいて、前記検索条件により指定された前記基準を満たしている１つ以上の印刷デバイスを特定する命令と、
前記特定された１つ以上の印刷デバイスの前記名前を前記表示デバイスに表示させる命令と、が含まれる、システム。
【請求項１６】
請求項１５に記載のシステムであって、
前記受信した複数のＰＤＩは符号化されており、前記命令には、前記符号化された複数ＰＤＩを復号化する命令がさらに含まれる、システム。
【請求項１７】
請求項１５又は１６に記載のシステムであって、
前記命令には、さらに、
特定の印刷デバイスから特定のＰＤＩを受信する命令と、
前記特定のＰＤＩが前記印刷デバイスのデータベース内に存在しないという判定に基づいて、前記特定のＰＤＩを前記印刷デバイスのデータベースに加える命令と、が含まれる、システム。
【請求項１８】
請求項１５乃至１７のいずれか１項に記載のシステムであって、
前記命令には、さらに、
特定の印刷デバイスから特定のＰＤＩを受信する命令と、
前記特定のＰＤＩが前記印刷デバイスのデータベース内に存在するという判定に基づいて、前記印刷デバイスのデータベース内の前記特定のＰＤＩを更新する命令と、が含まれる、システム。
【請求項１９】
請求項１５乃至１８のいずれか１項に記載のシステムであって、
前記所与ＰＤＩには、（ｉｉｉ）前記所与の印刷デバイスのＩＰアドレスがさらに含まれ、前記命令には、さらに
前記特定された１つ以上の印刷デバイスからの特定の印刷デバイスの選択を受信する命令と、
前記特定の印刷デバイスの前記ＩＰアドレスに基づいて、前記コンピューティング・デバイスと前記特定の印刷デバイスとの間のネットワーク接続を確立する命令と、が含まれる、システム。
【請求項２０】
請求項１９に記載のシステムであって、
前記命令には、さらに、
前記確立されたネットワーク接続を介して、コマンドを前記特定の印刷デバイスに送信する命令であって、前記コマンドは、前記特定の印刷デバイス上で実行可能な工程を示す、命令が含ふくまれる、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷デバイスの検索および管理のための技術に関する。
【背景技術】
【０００２】
本明細書で別段の指示がない限り、本セクションで記載される事項は、本出願の請求項に対する先行技術ではなく、かつ、本セクションに含めることにより先行技術として認められるものでもない。
【０００３】
画像形成装置とは、人間が読取り可能な画像表現、および／またはテキストを物理媒体上に作成する任意の周辺装置でよい。画像形成装置の例として、プリンタや多機能周辺装置（ＭＦＰ）が挙げられる。画像形成装置は、印刷、走査、ファックス送信、およびその他の数多くの用途などの様々な作業に利用可能である。
【０００４】
近年、一般的なオフィス環境内の印刷デバイスの数は大幅に増えている。１００台を超える印刷デバイスがローカルネットワーク内で稼働するオフィスも珍しくはない。様々な機能（例えば、コピー、ファクシミリ、カラー印刷、および種々の両面オプション）を有する印刷デバイスを、オフィスの至る所に配置することで、ユーザに利便性を提供することができる。しかし、コンピューティング・デバイスから特定の印刷デバイスにアクセスするには、通常、印刷デバイスの名前のリストからその印刷デバイスを特定しなければならない。その結果、その印刷デバイスに関する情報がほとんどない場合、所望の印刷デバイスを見つけることは面倒な作業となる。
【０００５】
通常、ユーザは、印刷デバイスの種々の機能にアクセスする前に、あるいは、その印刷デバイスに関連する操作を行う前に、印刷デバイス・ドライバをインストールしなければならない。しかし、ネットワーク内の全ての印刷デバイスに対して、印刷デバイス・ドライバをコンピューティング・デバイスにインストールすることは面倒なことであり得る。さらに、そのような多くの印刷デバイス・ドライバをインストールすることで、印刷デバイスのロングリストから、所望の印刷デバイスを調べ、選択しなければならず、これが時間の浪費となる可能性がある。
【発明の概要】
【０００６】
本出願は、印刷デバイスの検索および管理システムならびに方法に関する実施形態を開示する。一様態では、本出願により方法が説明される。この方法には、検索入力データを入力可能な検索プロンプトを表示デバイスに表示させる工程が含まれる。この方法には、複数の文字を含む検索入力データをコンピューティング・デバイスで受信する工程も含まれる。この方法には、複数の文字の第１の部分に基づいて、検索条件を決定する工程もさらに含まれる。所与の検索条件は、所与の印刷デバイスの特性に関する基準を示す。さらに、この方法には、複数の文字の第２の部分に基づいて、コマンドを決定する工程も含まれる。所与のコマンドは、実行可能な動作を示す。所与のコマンドにより、その動作を実行する所与のデバイスが指定される。所与のコマンドは、印刷デバイスに関連して実行可能である。さらに、この方法には、複数の印刷デバイスのうちの少なくとも１つの印刷デバイスが、検索条件により指定された基準を満たしているかどうかを判定する工程が含まれる。この方法には、少なくとも１つの印刷デバイスが、検索条件により指定された基準を満たしているという判定に基づいて、その基準を満たしている１つ以上の印刷デバイスを特定する工程も含まれる。この方法には、特定された１つ以上の印刷デバイスのうちの少なくとも１つの特定の印刷デバイスに関連する決定コマンドを、その決定コマンドにより指定されたデバイス上で実行する工程もさらに含まれる。
【０００７】
別の様態では、少なくとも１つのプロセッサにより実行されると、コンピューティング・デバイスに一連の動作を実行させる命令を格納する非一時的コンピュータ可読媒体が、本開示により説明される。これらの動作には、検索入力データを入力可能な検索プロンプトを表示デバイスに表示させる動作が含まれる。これらの動作には、コンピューティング・デバイスで、複数の文字を含む検索入力データを受信する動作も含まれる。これらの動作には、複数の文字の第１の部分に基づいて、検索条件を決定する動作もさらに含まれる。所与の検索条件は、所与の印刷デバイスの特性に関する基準を示す。さらに、これらの動作には、複数の文字の第２の部分に基づいて、コマンドを決定する動作が含まれる。所与のコマンドは、実行可能な動作を示す。所与のコマンドにより、その動作を実行する所与のデバイスが指定される。所与のコマンドは、印刷デバイスに関連して実行可能である。さらに、これらの動作には、複数の印刷デバイスのうちの少なくとも１つの印刷デバイスが、検索条件により指定された基準を満たしているかどうかを判定する動作が含まれる。これらの動作には、少なくとも１つの印刷デバイスが、検索条件により指定された基準を満たしているという判定に基づいて、その基準を満たしている１つ以上の印刷デバイスを特定する動作も含まれる。これらの動作には、特定された１つ以上の印刷デバイスのうちの少なくとも１つの特定の印刷デバイスに関連する決定コマンドを、その決定コマンドにより指定されたデバイス上で実行する動作がさらに含まれる。
【０００８】
さらに別の様態では、コンピューティング・デバイスおよび複数の印刷デバイスを含むシステムが、本出願により説明される。このコンピューティング・デバイスは、表示デバイスを含み、命令を実行するよう構成される。これらの命令には、印刷デバイス情報（ＰＤＩ）に対する複数の要求を複数の印刷デバイスに送信する命令が含まれる。所与のＰＤＩには、少なくとも（ｉ）所与の印刷デバイスの名前、および（ｉｉ）所与の印刷デバイスの特性の値が含まれる。これらの命令には、複数の印刷デバイスから、それぞれ複数のＰＤＩを受信する命令も含まれる。これらの命令には、受信した複数のＰＤＩに基づいて、印刷デバイスのデータベースを生成する命令もさらに含まれる。さらに、これらの命令には、所与の印刷デバイスの特性に関する基準を示す検索条件を受信する命令も含まれる。さらに、これらの命令には、複数の印刷デバイスのうちの少なくとも１つの印刷デバイスが、検索条件により指定された基準を満たしているかどうかを判定する命令が含まれる。これらの命令には、少なくとも１つの印刷デバイスが、検索条件により指定された基準を満たしているという判定に基づいて、その基準を満たしている１つ以上の印刷デバイスを特定する命令も含まれる。これらの命令には、特定された１つ以上の印刷デバイスの名前を表示デバイスに表示させる命令もさらに含まれる。
【０００９】
別の様態では、システムが本出願により説明される。このシステムは、検索入力データを入力可能な検索プロンプトを表示デバイスに表示させる手段を含む。このシステムは、コンピューティング・デバイスで、複数の文字を含む検索入力データを受信する手段も含む。このシステムは、複数の文字の第１の部分に基づいて、検索条件を決定する手段もさらに含む。所与の検索条件は、所与の印刷デバイスの特性に関する基準を示す。さらに、このシステムは、複数の文字の第２の部分に基づいて、コマンドを決定する手段も含む。所与のコマンドは、実行可能な動作を示す。所与のコマンドにより、その動作を実行する所与のデバイスが指定される。所与のコマンドは、印刷デバイスに関連して実行可能である。さらに、このシステムは、複数の印刷デバイスのうちの少なくとも１つの印刷デバイスが、検索条件により指定された基準を満たしているかどうかを判定する手段も含む。このシステムは、少なくとも１つの印刷デバイスが、検索条件により指定された基準を満たしているという判定に基づいて、その基準を満たしている１つ以上の印刷デバイスを特定する手段も含む。このシステムは、特定された１つ以上の印刷デバイスのうちの少なくとも１つの特定の印刷デバイスに関連する決定コマンドを、その決定コマンドにより指定されたデバイス上で実行する手段もさらに含む。
【００１０】
上述した発明の概要は、説明だけを目的としており、決して限定することを意図するものではない。上述の例示の態様、実施形態、および特徴に加え、図面および以下の詳細な説明を参照することにより、さらなる態様、実施形態、および特徴が明らかとなる。
【図面の簡単な説明】
【００１１】
【図１】例示の実施形態に係る、画像形成装置の概略ブロック図である。
【図２】例示の実施形態に係る、印刷デバイスの概略ブロック図である。
【図３】例示の実施形態に係る、コンピューティング・デバイスの概略ブロック図である。
【図４】例示の実施形態に係る、システムの概略ブロック図である。
【図５】例示の実施形態に係る、コマンドのデータベースの例を示す図である。
【図６】例示の実施形態に係る、印刷デバイス情報（ＰＤＩ）の例を示す図である。
【図７】例示の実施形態に係る、検索ボックスの例を示す図である。
【図８】例示の実施形態に係る、方法の例を示すデータ流れ図である。
【図９】例示の実施形態に係る、方法を示すフローチャートである。
【発明を実施するための形態】
【００１２】
例示的な方法およびシステムを本明細書で説明する。本明細書に説明される全ての実施形態または特徴は、必ずしも、その他の実施形態または特徴よりも好適である、あるいは優れていると解釈されるものではない。本明細書で説明する例示的な実施形態は、限定を意図するものではない。開示されるシステムおよび方法の特定の様態を多種多様な構成で配置し、組合せることが可能であり、それらの全てが本明細書で検討される、ということは容易に理解されよう。
【００１３】
さらに、図面で示されている特定の配置は、限定として見なされないものとする。他の実施形態は、所与の図面に示される各要素をより多く、または、より少なく含むことができることは理解されよう。さらに、例示の要素のうちのいくつかを、組み合わせたり省略したりすることも可能である。その上、例示的な実施形態は、図示されない要素も含むことができる。
［Ｉ．概要］
【００１４】
例示的な実施形態は、印刷デバイスの検索および管理システムならびに方法に関する。ネットワーク内で特定の印刷デバイスを手動検索することは、面倒な作業であり得る。いくつかのシナリオでは、コンピューティング・デバイスは、ネットワーク上の印刷デバイスのリストにアクセスすることが可能である。しかし、そのような印刷デバイスのリストには、通常、管理者が指定した名前やモデル番号など、印刷デバイスに関する基本情報だけしか記載されていない。大抵の場合、ユーザは、管理者や別のユーザを探して、それらの印刷デバイスの位置、およびそれらの印刷デバイスの能力を判定しなければならない。場合によっては、ユーザは、その名前に基づいて印刷デバイスを任意に選択し、その印刷デバイスに関するプリンタドライバをインストールして、その能力を判定することができるが、そのような手順では、ユーザのニーズに合うプリンタを見つけるまでには、ある程度の試行錯誤が必要となる恐れがある。
【００１５】
本出願の印刷デバイスの検索および管理システムは、種々の作業を実行可能な「ユニバーサル」検索ボックスを提供することができる。このユニバーサル検索ボックスを使用することで、ユーザは、より素早く効率的に、ネットワーク内の印刷デバイスを検索し、かつ／または、それらの印刷デバイスに関連するコマンドを実行するこができる。本明細書で開示されている言語解析技術などを用いることにより、このユニバーサル検索ボックスは、ユーザが入力した検索基準と一致する印刷デバイスを見つけることができる。いくつかの実施形態では、ユーザは、ユニバーサル検索ボックスに検索入力データを自然な言葉で入力することができ、検索ボックスは、その検索入力データを分析し、分析された検索入力データから１つ以上の検索条件を特定することができる。したがって、ユーザは、１回の検索操作で、検索入力データにより指定された１つ以上の特性を有する印刷デバイスを検索することができる。
【００１６】
検索条件を特定にする以外に、ユニバーサル検索ボックスは、検索入力データからコマンドを決定し、そのコマンドを実行することができる。ユーザは、検索条件とコマンドの両方を含む検索入力データをユニバーサル検索ボックスに入力することができる。コマンドとは、コンピューティング・デバイス上、または印刷デバイス上で行う動作でよい。コンピューティング・デバイス上でコマンドを実行するとき、そのコマンドは印刷デバイスに関連して実行され得る。例えば、プリンタドライバをコンピューティング・デバイス上にインストールするコマンドでは、そのプリンタドライバは、特定の印刷デバイスに関連し得る。別のケースでは、印刷デバイスの操作パネルのキーボードを変更するコマンドは、１つ以上の印刷デバイス上で実行可能である。
【００１７】
したがって、本出願の印刷デバイスの検索および管理システムは、印刷デバイスを検索し、それらのデバイスに関連する種々の動作を実行する、より速く効率的な方法を提供することができる。例えば、検索入力データを入力することにより、トナーレベルが１０％未満のネットワーク上の全ての印刷デバイスを見つけることができ、サービス員はこの情報を用いてメンテナンスが必要な印刷デバイスを特定することができる。別の例では、検索入力データを入力することにより、操作パネルを有する全ての印刷デバイスに対してオンスクリーン・キーボードの言語を英語に設定することができる。これらの各例では、１回の検索入力データの入力で、それらの作業を行うことができる。
【００１８】
本明細書に記載される全ての例示的な検索入力データ、および／または動作は、説明のために提供されていることは理解されよう。検索入力データの入力を複数回行うことにより、同じ動作が実行される。特定の動作によっては、開示されている例示的な検索入力データによって、必ずしも動作が実行されない可能性もある。これらの例は、本出願の印刷デバイスの検索および管理システムの理解を容易にするため提供され、必ずしも特定の実装形態には対応していない。
［ＩＩ．画像形成装置および印刷デバイスの例］
【００１９】
図１は、例示の実施形態に係る画像形成装置１００を示す概略ブロック図である。この画像形成装置１００は、プロセッサ（複数可）１０２、命令１０６を格納するデータ記憶部１０４、脱着自在ストレージ・インターフェース１０８、ネットワーク・インターフェース１１０、プリンタ１１２、スキャナ１１４、ファクシミリ（ＦＡＸ）ユニット１１６、制御ユニット１１８、および表示デバイス１２２と入力デバイス１２４を含む操作パネル１２０を含む。画像形成装置１００の各ユニットはバスに接続し、これにより、これらのユニットは互いにやり取りを行うことができる。例えば、プロセッサ（複数可）１０２は、データ記憶部１０４に格納された情報を要求することができる。
【００２０】
プロセッサ（複数可）１０２には、命令１０６などの、画像形成装置１００に種々の動作を実行させる、命令を実行可能な１つ以上のプロセッサが含まれ得る。プロセッサ（複数可）１０２は、汎用の中央処理装置（ＣＰＵ）およびキャッシュメモリを含むことができる。プロセッサ（複数可）１０２には、特定用途向け集積回路（ＡＳＩＣ）およびフィールドプログラマブルゲートアレイ（ＦＰＧＡ）などの特殊な目的のための処理ユニットを組み込むこともできる。画像形成装置１００特有の動作を実行するために、その他のプロセッサを含むこともできる。
【００２１】
データ記憶部１０４は、プロセッサ（複数可）１０２が実行可能な命令１０６を格納することができる。データ記憶部１０４は、種々のプログラムおよびアプリケーションに関する情報、ならびに画像形成装置１００に特有のデータを格納することもできる。例えば、データ記憶部１０４は、オペレーティングシステム（ＯＳ）を動かすためのデータを格納することができる。さらに、データ記憶部１０４は、いくつものユーザに関する様々な種類の情報を含むユーザデータも格納することができる。データ記憶部１０４は、揮発性メモリと不揮発性メモリの両方を含むことができる。揮発性メモリには、ランダム・アクセス・メモリ（ＲＡＭ）が含まれ得る。不揮発性メモリの例として、リード・オンリー・メモリ（ＲＯＭ）、フラッシュメモリ、電気的消去可能プログラマブルリード・オンリー・メモリ（ＥＥＰＲＯＭ）、デジタルテープ、ハードディスクドライブ（ＨＤＤ）、およびソリッドステートドライブ（ＳＳＤ）などが挙げられる。データ記憶部１０４は、読取り可能な揮発性メモリおよび／または書き込み可能な揮発性メモリ、および／または不揮発性メモリの任意の組み合わせを、その他の可能性のある記憶装置と共に含むことができる。
【００２２】
脱着自在ストレージ・インターフェース１０８は、外部データ記憶部との接続を可能にするインターフェースであり、それ故、プロセッサ（複数可）１０２、および／または制御ユニット１１８に設けることができる、あるいは、データ記憶部１０４にコピーすることができる。この脱着自在ストレージ・インターフェース１０８は、外部の記憶装置との物理的接続を可能にする複数の接続ポート、プラグ、および／またはスロットを含むことができる。この脱着自在ストレージ・インターフェース１０８を介して画像形成装置１００とインターフェース接続する脱着可能な記憶装置の例にとして、ＵＳＢフラッシュドライブ、セキュアデジタル（ＳＤ）カード（種々の形状および／またはサイズのＳＤカードを含む）、コンパクトディスク（ＣＤ）、デジタルビデオディスク（ＤＶＤ）、およびその他のメモリカードまたは光学記憶媒体が挙げられる。
【００２３】
ネットワーク・インターフェース１１０は、画像形成装置１００とその他のデバイスとのネットワーク接続を可能にする。ネットワーク・インターフェース１１０は、ローカルエリアネットワーク（ＬＡＮ）、および／または、インターネットなどのワイドエリアネットワーク（ＷＡＮ）に接続可能である。このネットワーク・インターフェースは、ネットワークに有線接続（例えば、イーサネット）するためのインターフェース、および／または無線接続（例えば、Ｗｉ−Ｆｉ）するためのインターフェースを含むことができる。ネットワーク・インターフェース１１０は、また、他の無線プロトコルの中でも特に、ブルートゥース、無線周波数識別（ＲＦＩＤ）、近距離無線通信（ＮＦＣ）、ＣＤＭＡ、ＥＶＤＯ、ＧＳＭ／ＧＰＲＳなどの３Ｇ移動体通信、あるいはＷｉＭＡＸまたはＬＴＥなどの４Ｇ移動体通信などのその他の無線プロトコルを介して通信することもできる。それに加えて、ネットワーク・インターフェース１１０は、電話地上回線を介して通信することもできる。ネットワーク・インターフェース１１０には、有線および／または無線ネットワーク・インターフェースならびにプロトコルの任意の組み合わせが含まれ得る。
【００２４】
プリンタ１１２は、永続的で人間が読取り可能な画像および／またはテキストを紙などの印刷媒体上に生成可能な任意のデバイスまたは周辺装置でよい。プリンタ１１２は、印刷する画像および／またはテキストを表す印刷データを画像形成装置１００の別のユニットから受信することができる。プリンタ１１２は、他の技術の中でも特に、インク印刷、トナー印刷、および感熱印刷などの様々な技術を用いることができる。プリンタ１１２を機械デバイスおよび／または電気機械デバイスで構成することにより、印刷媒体の搬送と、画像および／またはテキストの印刷媒体への転写とを容易にすることができる。例えば、プリンタ１１２は、印刷媒体を保管・分類するためのトレイと、印刷媒体をプリンタ１１２内で搬送するためのローラとを含むことができる。プリンタ１１２は、インクを印刷媒体上に吐出するインクヘッド、その表面にレーザ光を当ててドラムを帯電させ、印刷媒体上に転写されるトナーを引き寄せる感光体ドラム、および／または印刷媒体の特定の領域を加熱して画像および／またはテキストを生成する感熱ヘッドも含むことができる。その他のデバイスもプリンタ１１２内に組み込むことができる。
【００２５】
スキャナ１１４は、文書、画像、またはその他の対象（以後本明細書では、集合的に「スキャン媒体」と呼ぶ）を走査し、そのスキャン媒体を表すデジタル画像を生成可能な任意のデバイスでよい。スキャナ１１４は、（例えば、ＬＥＤを介して）スキャン媒体上に光を当て、（例えば、電荷結合素子（ＣＣＤ）ラインセンサ、または相補型金属酸化膜半導体（ＣＭＯＳ）ラインセンサを介して）そのスキャン媒体から反射される光を感知することができる。いくつかの実装形態では、スキャナ１１４は、プラテンガラスを含み、その上に走査される文書を置くことができる。さらに、スキャナ１１４は、その他の後処理動作の中でも特に、回転、データの圧縮、および／または光学式文字認識（ＯＣＲ）などの後処理を走査後の画像に対して行うことができる。
【００２６】
ファクシミリユニット１１６は、文書および／または画像（以後本明細書では、集合的に「印刷物」と呼ぶ）を走査し、電話回線を介して走査された印刷物を送信することができる（すなわち、走査された印刷物をファックス送信する）。ファクシミリユニット１１６は、ネットワーク・インターフェース１１０を介して、走査された印刷物をファックス送信することができる。また、ファクシミリユニット１１６は、ファックス送信されたデータを受信し、そのデータを印刷するために、プリンタ１１２に送信することもできる。いくつかの実装形態では、ファクシミリユニット１１６は、他の構成要素の中でも特に、ファクシミリユニット１１６を構成し、電話番号をダイヤルするためのボタンと、ファックス送信の状態を表示するためのディスプレイとを含む。
【００２７】
制御ユニット１１８は、画像形成装置１００の種々の電気的構成要素および／または機械的構成要素を制御することができる。例えば、制御ユニット１１８は、プリンタ１１２内で用紙を搬送するための、１つ以上の給紙装置、コンベア、ローラ、およびその他の機械的デバイスを操作することができる。制御ユニット１１８は、デバイス・ドライバも含むことができ、このデバイス・ドライバにより、ネットワーク通信、電子表示、および画像形成装置１００に接続する様々なセンサまたはリーダからの情報の読み取りを容易にすることができる。いくつかの実装形態では、制御ユニット１１８は、プロセッサ（複数可）１０２を、画像形成装置１００の種々のユニットにインターフェース接続するソフトウェアアプリケーションすなわちプログラムである。
【００２８】
操作パネル１２０は、人間と画像形成装置１００のやり取りを容易にするための、表示デバイス１２２および入力デバイス１２４を含む。表示デバイス１２２は、液晶ディスプレイ（ＬＣＤ）などの任意の電子ビデオディスプレイでよい。入力デバイス１２４には、ボタン、キーボード、スイッチ、および／またはダイヤルなどのデバイスの任意の組み合わせが含まれ得、これらのデバイスを用いて、ユーザは操作パネル１２０に情報を入力することができる。これに加えて、入力デバイス１２４は、表示デバイス１２２に被せるタッチスクリーン・デジタイザを含むことができ、このタッチスクリーン・デジタイザにより、接触を感知し、表示デバイス１２２とやり取りを行うことができる。
【００２９】
図２は、例示の実施形態に係る印刷デバイス２００を示す概略ブロック図である。この印刷デバイス２００は、図２に示されているユニット以外に、画像形成装置１００のユニットのうちの１つ以上を含むことができる。
【００３０】
データ記憶部２０２は、ハードディスクドライブ（ＨＤＤ）、ソリッドステートディスク（ＳＳＤ）、またはリード・オンリー・メモリ（ＲＯＭ）などの不揮発性記憶装置でよい。データ記憶部２０２は、モデル名、モデル番号、製造番号、および印刷デバイス２００の能力などの印刷デバイス２００に関する不変の情報を格納することができる。データ記憶部２０２は、現在のＩＰアドレス、印刷デバイス２００のユーザ指定の名前、顧客情報、トナー／インクのレベル、用紙のレベル、および印刷デバイスがビジーかどうかなどの印刷デバイス２００の状態に関する情報も格納することもできる。上記の情報はどれでも印刷デバイス情報（ＰＤＩ）２０４に含ませることができる。トナー／インクのレベルまたは用紙のレベルなどの特定の情報は、定期的に、あるいは、印刷デバイス２００上で行われている動作に応じて更新することができる。
【００３１】
制御ユニット２０６は、印刷デバイス２００上で動作を実行するソフトウェア、および／またはハードウェアの任意の組み合わせでよい。この制御ユニット２０６は、その他の可能性のあるユニットまたはソフトウェアモジュールの中でも特に、印刷デバイス情報回答ユニット２０８を含むことができる。この印刷デバイス情報回答ユニット２０８は、コンピューティング・デバイスからＰＤＩ２０４に対する要求を受け取り、それに応えて、コンピューティング・デバイスにＰＤＩ２０４のコピー含む応答を送信することができる。制御ユニット２０６は、データ記憶部２０２からＰＤＩ２０４にアクセスすることができる。いくつかの実施形態では、制御ユニット２０６は、要求しているコンピューティング・デバイスにＰＤＩ２０４のコピーを送信する前に、データ記憶部２０２のＰＤＩ２０４を更新することもできる。
【００３２】
本明細書で使用される「ユニット」とは、特定の作業を実行するデバイス、構成要素、モジュール、またはその他の電気的要素および／または機械的要素の組み合わせのことを指す。いくつかの例では、ユニットは、ファクシミリユニット１１６などの、特定の動作を行う物理的デバイスのことを指し得る。その他の例では、ユニットは、印刷デバイス情報回答ユニット２０８などの特定の目的のための動作を実行するソフトウェアモジュールを指し得る。ユニットを構成するハードウェアの構成要素とソフトウェアの構成要素の組み合わせには関係なく、そのユニットは特定の作業を行うために動作可能であり、ハードウェアのインターフェースおよび／またはソフトウェアのインターフェースを介して、その他のユニットとやり取りを行うことができることは理解されよう。
【００３３】
本明細書で言及される印刷デバイスおよび画像形成装置は、他の可能性のある構成要素の中でも特に、画像形成装置１００および／または印刷デバイス２００からの構成要素の任意の組み合わせを組み込むことができる。例えば、画像形成装置は、種々の構成要素が使用するために、電力を変換する電源を含むことができる。その他の付加的な構成要素も特定の画像形成装置に含まれ得ることは理解されよう。
［ＩＩＩ．コンピューティング・デバイスの例］
【００３４】
図３は、例示の実施形態に係るコンピューティング・デバイス３００を示す概略ブロック図である。このコンピューティング・デバイス３００は、プロセッサ（複数可）３０２、表示ユニット３０４、入力ユニット３０６、メモリ３０８、ネットワーク・インターフェース３１０、マイクロフォン３１２、音声認識部３１４、およびデータ記憶部３１６を含む。コンピューティング・デバイス３００の各ユニットはバスに接続し、これにより、これらのユニットは互いにやり取りを行うことができる。
【００３５】
プロセッサ（複数可）３０２には、データ記憶部３１６に格納されたアプリケーションおよび／またはプログラムを実行可能な１つ以上のプロセッサが含まれ得る。プロセッサ（複数可）３０２は、汎用の中央処理装置（ＣＰＵ）およびキャッシュメモリを含むことができる。プロセッサ（複数可）３０２には、特定用途向け集積回路（ＡＳＩＣ）およびフィールドプログラマブルゲートアレイ（ＦＰＧＡ）などの特殊な目的のための処理ユニットを組み込むこともできる。コンピューティング・デバイス３００に特有の動作を実行するために、その他のプロセッサも含まれ得る。
【００３６】
表示ユニット３０４は、人間が読取り可能なテキストおよび／または画像を表示可能な、任意の種類のデバイスでよい。この表示ユニット３０４は、例えば、ユーザインターフェースを表示することができ、ユーザは、このユーザインターフェースを用いて、印刷デバイスの検索を行い、かつ／または、印刷デバイスに関連するコマンドを実行する。表示ユニット３０４は、例えば、検索ボックス、プロンプト、および／または検索結果を表示することができる。いくつかの例示的な表示ユニットには、その他の可能性のある表示技術の中でも特に、液晶ディスプレイ（ＬＣＤ）、発光ダイオード（ＬＥＤ）ディスプレイ、プラズマディスプレイ、またはブラウン管（ＣＲＴ）が含まれる。使用されるディスプレイの種類には関係なく、表示ユニット３０４は、情報および本出願のユーザインターフェースを表示可能な出力デバイスである。
【００３７】
入力ユニット３０６は、ユーザから入力データを受け取り、その入力データをコンピュータが理解可能な情報に変換する、任意の種類のヒューマン・インターフェース・デバイス（ＨＩＤ）でよい。入力ユニットの例として、その他の可能性のある入力デバイスの中でも特に、キーボード、マウス、タッチパッド、および／またはタッチスクリーンなどが挙げられる。いくつかの例では、入力ユニット３０６は、オンスクリーン・キーボードまたはタッチスクリーンのポインタデバイスのことを指し得る。ユーザは、入力ユニット３０６とのやり取りを行って、検索入力データを入力し、かつ／または、コマンドに関連する所望の印刷デバイスを選択することができる。使用する入力デバイスの種類には関係なく、入力ユニット３０６は、ユーザが、本出願の印刷デバイス検索システム、アプリケーション、またはプログラムとやり取りを行うことができるインターフェースを提供することができる。
【００３８】
メモリ３０８は、ＲＡＭなどの揮発性メモリでよい。メモリ３０８は、コンピューティング・デバイス３００のアプリケーションおよび／またはプログラムが使用する一時的な格納場所として使用され得る。
【００３９】
ネットワーク・インターフェース３１０は、有線および／または無線の通信インターフェースでよく、このインターフェースにより、コンピューティング・デバイスは、ネットワークへの接続、およびネットワークを介した通信が可能となる。このネットワーク・インターフェース３１０は、１つ以上の印刷デバイスからＰＤＩなどの情報を検索するために、本出願のアプリケーションおよび／またはプログラムにより使用され得る。コンピューティング・デバイス３００は、サーバと通信して、そのサーバ上に格納されるコマンドのデータベースおよび／または印刷デバイスのデータベースにアクセスし、それらのデータベースを変更することもできる。
【００４０】
マイクロフォン３１２は、音および／またはユーザの声を取り込み可能な記録デバイスでよい。マイクロフォン３１２は、ユーザが話した１つ以上の言葉の音声セグメントを取り込むことができる。このように記録される音声は、メモリ３０８および／またはデータ記憶部３１６に格納され得る。いくつかの実施形態では、マイクロフォン３１２により記録された音声セグメントを、音声認識部３１４に供給して、分析し文字化することができる。
【００４１】
音声認識部３１４は、ソフトウェア構成要素および／またはハードウェア構成要素の任意の組み合わせでよく、マイクロフォン３１２が取り込む音声セグメントからユーザが話す１つ以上の言葉を判定する。この音声認識部３１４は、ユーザの話す言葉を文字化するために、様々な音声認識技術を用いることができる。次いで、文字化された言葉は、印刷デバイス・メンテナンス・アプリケーション３１８に供給され、検索入力データとして使用され得る。
【００４２】
いくつかの実施形態では、印刷デバイス・メンテナンス・アプリケーション３１８が音声認識部を使用し、これにより、ユーザは、音声からテキストへの検索入力を行うことができる。印刷デバイス・メンテナンス・アプリケーション３１８は、ボタンまたはその他のグラフィカル要素を表示することができ、これらが選択されると、マイクロフォン３１２が起動し、ユーザの音声を記録し始める。次いで、印刷デバイス・メンテナンス・アプリケーション３１８は、音声認識部３１４を用いて、ユーザが話す言葉を認識しテキスト文字列に変換し、変換されたテキスト文字列は検索入力データとして検索ボックスに入力される。
【００４３】
いくつかの実装形態では、音声認識部３１４は、文字化を行う際、完全な辞書を用いることができる。他の実装形態では、音声認識部３１４は、より範囲を絞り込んだ専門辞書を用いることができ、この専門辞書には、既知のコマンド、コマンド名、および／または予想される検索条件が含まれる。音声認識部３１４は、特定の種類の言語の音声を認識するよう構成され得る、あるいは、複数の言語の音声を同時に認識するよう構成され得る。
【００４４】
いくつかの実装形態では、音声認識部３１４は、記録された音声をウェブサービスに供給することができ、このウェブサービスにより文字化が容易になる。したがって、音声認識部３１４は、ネットワーク・インターフェース３１０に接続し、インターネットなどのワイドエリアネットワークを介して、そのようなウェブサービスにアクセス可能である。他の実装形態では、音声認識部は、上記の専門辞書を用いて音声を解釈するよう設計された専門の音声認識ツールでよく、この音声認識ツールは、必ずしも、ネットワークへのアクセスすなわち外部サービスを必要としない。
【００４５】
データ記憶部３１６は、本出願の動作を行うアプリケーションおよび／またはプログラムを格納することができる。アプリケーションおよびプログラムは、特定の作業を行うための動作の集まりを含むことができる。データ記憶部の種類の例として、リード・オンリー・メモリ（ＲＯＭ）、フラッシュメモリ、電気的消去可能プログラマブルリード・オンリー・メモリ（ＥＥＰＲＯＭ）、デジタルテープ、ハードディスクドライブ（ＨＤＤ）、およびソリッドステートドライブ（ＳＳＤ）などが挙げられる。
【００４６】
印刷デバイス・メンテナンス・アプリケーション３１８は、ユーザインターフェースを表示し、印刷デバイスを検索し、印刷デバイスに関連するコマンドを実行するための動作を行うことができる。印刷デバイス・メンテナンス・アプリケーション３１８は、コンピューティング・デバイス上、または特定の印刷デバイス上のどちらかでコマンドを実行可能である。例えば、特定の印刷デバイスに関連する「インストール＿ドライバ」というコマンドが入力されると、印刷デバイス・メンテナンス・アプリケーション３１８は、その特定の印刷デバイスに関するドライバをコンピューティング・デバイスにインストールすることができる（すなわち、コンピューティング・デバイス上でその「インストール＿ドライバ」のコマンドが実行される）。別の例として、「キーボード＿設定」というコマンドが入力されると、特定の印刷デバイスの操作パネル上のオンスクリーン・キーボードディスプレイの種類を変更することができる（すなわち、その特定の印刷デバイス上で「キーボード＿設定」のコマンドが実行される）。
【００４７】
印刷デバイス・メンテナンス・アプリケーション３１８のユーザインターフェースは、ネットワーク内の１つ以上の印刷デバイスに関する情報を表示することができる。印刷デバイス・メンテナンス・アプリケーション３１８は、検索入力データを入力可能な検索ボックスを表示することができる。印刷デバイス・メンテナンス・アプリケーション３１８により表示されるユーザインターフェースは、検索入力データが入力され、検索が始まると更新することができる。印刷デバイス・メンテナンス・アプリケーション３１８は、入力された特定の検索入力データに依存するその後の入力データを要求するプロンプトを表示することもできる。
【００４８】
いくつかの実施形態では、印刷デバイス・メンテナンス・アプリケーション３１８の検索ボックスは、「ユニバーサル」検索ボックスでよい。本出願のため、「ユニバーサル」検索ボックスは多機能で、自然言語を解析し理解して、入力されたテキストから、検索条件および／またはコマンドを特定することができる。いくつかの実施形態では、ユニバーサル検索ボックスは、「知能」を有し得る。すなわち、無関係な言葉、スペルミス、あるいは不完全な検索文字列を含む検索入力データを解釈することができる。
【００４９】
さらに、本出願の検索ボックスは、ブール演算子を用いて、検索結果を論理的に絞り込む
論理ブール演算を実行することができる。例えば、「ｐｐｍ＞６０」および「両面印刷」の２つの検索条件を「ＡＮＤ」で組み合せることで、毎分６０ページより速い印刷と両面印刷の両方が可能な印刷デバイスに関する検索入力データを表す。このように論理的に絞り込んだ検索により、高速のフル機能プリンタをより効率的に見つけることができる。別の例として、「トナー＜５％」および「用紙＜１０％」の２つの検索条件を「ＯＲ」で組み合せることで、５％未満のトナーレベルまたは１０％未満の用紙レベルのどちらかの印刷デバイスに関する検索入力データを表す。そのような範囲を広げた検索は、検索を何度も行うことなしに、緊急の注意を要する全ての印刷デバイスを特定しようとするサービス員にとっては好ましい。
【００５０】
場合によっては、上記の検索ボックスに入力された検索入力データの一部が、２つ以上のコマンドを示しているかもしれないと、印刷デバイス・メンテナンス・アプリケーション３１８が認識する可能性がある。印刷デバイス・メンテナンス・アプリケーション３１８が、検索入力データの一部をコマンドの部分であると決定し、その後、そのコマンド部分が２つ以上のコマンドと実質的に類似すると決定した場合に、こういった状況が起こり得る。いくつかの実装形態では、コマンド部分が既知のコマンドと比較され、その類似度が類似の閾値を超えている場合に、そのコマンド部分は、既知のコマンドと「実質的に類似する」と見なされ得る。そのような比較は、近似文字列照合技術、またはその他の種類の定量化可能な文字列比較技術を用いて行うことができる。特定の実装形態には関係なく、この印刷デバイス・メンテナンス・アプリケーション３１８は、プロンプトで実質的に類似するコマンドを表示して、ユーザに意図するコマンドの選択を要求することができる。
【００５１】
いくつかの実施形態では、印刷デバイス・メンテナンス・アプリケーション３１８は、検索入力データの履歴を表示することができ、この履歴から以前入力された検索入力データを選択することができる。多数の検索データが以前入力されている場合、検索入力データの履歴には、以前入力された検索入力データのほんの一部だけが表示される（例えば、直近に入力された検索入力データの３〜１０個が表示され得る）。検索入力データの履歴は、例えば、検索ボックスの真下に表示され得る。以前入力された検索入力データを選択すると、その検索入力データが検索ボックスに移り、次いでユーザにより修正される。別の実装形態では、以前入力された検索入力データを選択することにより、印刷デバイス・メンテナンス・アプリケーション３１８は、その検索入力データを用いた検索を実行することができる。図７には、以前入力された検索入力データの表示例が示されており、これについては、後程、より詳細に説明する。
【００５２】
印刷デバイス情報データベース作成プログラム３２０は、印刷デバイス情報（ＰＤＩ）のデータベースを生成するための動作を実行することができる。いくつかの例では、ＰＤＩのデータベースが存在しない場合、ＰＤＩデータベース作成プログラム３２０は、ＰＤＩのデータベースを作成するために、複数の初期動作を実行することができる。これらの初期動作には、図８に示される動作が含まれ得る。一般に、初期動作には、１つ以上の印刷デバイスからＰＤＩを要求すること、それらの印刷デバイスに関するＰＤＩを受け取ること、受け取ったＰＤＩでテーブルを生成することが含まれ得る。図６には、ＰＤＩの例が示されている。
【００５３】
ＰＤＩデータベース作成プログラム３２０は、また、ＰＤＩのデータベースを更新するための動作も実行することができる。ＰＤＩデータベース作成プログラム３２０は、既にＰＤＩのデータベース内に存在するＰＤＩを印刷デバイスから受け取ることができる。いくつかの例では、ＰＤＩデータベース作成プログラム３２０は、特定の印刷デバイスの情報を更新するために、その印刷デバイスに関連するデータベース内のＰＤＩの一部を変更することができる。例えば、ＰＤＩには、特定の印刷デバイスのトナーレベルに関する情報が含まれ得る。トナーレベルは、経時的に変化し得るが、そのような場合、ＰＤＩデータベース作成プログラム３２０は、特定の印刷デバイスに関する最新のトナーレベルを検索し、ＰＤＩのデータベース内のそのトナーレベルを更新することができる。ＰＤＩのデータベースの更新には、印刷デバイスの状態に関する情報の中でも特に、トナーの色ごとの最新のトナーレベル、用紙レベル、およびＩＰアドレスを検索することが含まれ得る。
【００５４】
いくつかの実施形態では、ＰＤＩのデータベースは、コンピューティング・デバイス３００上に格納され得る。他の実施形態では、ＰＤＩのデータベースはサーバ上に格納され、コンピューティング・デバイス３００が、ＰＤＩのデータベースのコピーを要求する。さらに別の実施形態では、ＰＤＩのデータベースはサーバ上に格納され、コンピューティング・デバイス３００は、サーバに問合せ要求を送信して、ＰＤＩのデータベース内の情報を検索し、かつ／または、ＰＤＩのデータベース内の記述項目を更新する。
【００５５】
いくつかの実装形態では、ＰＤＩデータベース作成プログラム３２０の機能は、印刷デバイス・メンテナンス・アプリケーション３１８により利用され得る、あるいは、印刷デバイス・メンテナンス・アプリケーション３１８と関連して実行され得る。例えば、印刷デバイス・メンテナンス・アプリケーション３１８が、入力オプションを提供して（指定されたボタンを介して、あるいは、ユニバーサル検索ボックスに特定のコマンドを入力することにより）ＰＤＩのデータベースを作成することができる、かつ／または、更新することができる。
【００５６】
コマンドリスト・データベース作成プログラム３２２は、コマンドリストのデータベースを生成するための動作、および／または、コマンドリストのデータベースを更新するための動作を実行することができる。コマンドリストのデータベースには、コンピューティング・デバイス上、または特定の印刷デバイス上のどちらかで実行可能な一連のコマンドに関する情報を格納することができる。図５には、コマンドリストのデータベースの一例が示されている。
【００５７】
いくつかの実装形態では、コマンドリストのデータベースには、一連の記述項目が含まれる。各記述項目には、一意のコマンドＩＤ、固定コマンド名（すなわち、例えば、プログラマーにより指定された「ハードコードされた」名前）、および１種類以上の言語のユーザ割り当てのコマンド名が含まれ得る。各記述項目により、関連するコマンドを実行可能なデバイスも指定され得る。例えば、「Ｉｎｓｔａｌｌ  Ｄｒｉｖｅｒ（ドライバをインストールする）」という記述項目には、コンピューティング・デバイス上でコマンド「インストール＿ドライバ」を実行可能なことを示すフラグ、ビット、すなわち一種のデータが含まれ得る。さらに、「インストール＿ドライバ」のようなコマンドは、特定の印刷デバイスに関連して実行され得る。すなわち、この例では、インストールするドライバは、特定の印刷デバイス用のドライバである。したがって、所与のコマンドは、コンピューティング・デバイス上で印刷デバイスと関連して実行可能である、あるいは、その特定の印刷デバイス上で実行可能である。所与の記述項目には、関連するコマンドを実行可能な方法を示す情報も含まれ得る。
【００５８】
コマンドリスト・データベース作成プログラム３２２は、また、ユーザ割り当てのコマンド名を設定したり変更したりするユーザ入力に応じても更新され得る。一例として、あるユーザは、印刷デバイスを再起動させるための「再スタート」というコマンドを「Ｒｅｂｏｏｔ（再起動）」と指定することができる。あるいは、別のユーザは、この「再スタート」のコマンドを「ｃｙｃｌｅ  ｐｏｗｅｒ（再起動）」と指定することができる。さらに別の例では、日本語を話すユーザが、「再スタート」のコマンドに「Ｓａｉｋｉｄｏｏ（再起動）」というコマンド名を割り当てることができる。コマンドリスト・データベース作成プログラム３２２は、コマンドごとに複数のユーザ割り当ての名前を複数の言語で格納することができる。
【００５９】
いくつかの実施形態では、コマンドリストのデータベースは、特定のユーザに関連することができる。したがって、ユーザ割り当ての全てのコマンド名は、その特定のユーザにとって一意であり得る。このことは、別々のユーザが別々の専門用語を好んだり、別々のユーザが別々の言語を好んだりする場合に都合がいい。
【００６０】
いくつかの実施形態では、コマンドリストのデータベースを、コンピューティング・デバイス３００上で格納することができる。他の実施形態では、コマンドリストのデータベースをサーバ上で格納し、コンピューティング・デバイス３００が、そのコマンドリストのデータベースのコピーを要求する。さらに別の実施形態では、コマンドリストのデータベースをサーバ上に格納し、コンピューティング・デバイス３００が、サーバに問合せ要求を送信して、コマンドリストのデータベースの情報を検索し、かつ／または、コマンドリストのデータベース内の記述項目を更新する。
【００６１】
いくつかの実装形態では、コマンドリスト・データベース作成プログラム３２２の機能は、印刷デバイス・メンテナンス・アプリケーション３１８により利用され得る、あるいは、印刷デバイス・メンテナンス・アプリケーション３１８と関連して実行され得る。例えば、印刷デバイス・メンテナンス・アプリケーション３１８が、入力オプションを提供して（指定されたボタンを介して、あるいは、ユニバーサル検索ボックスに特定のコマンドを入力することにより）コマンドリストのデータベースを作成することができる、かつ／または、更新することができる。
［ＩＶ．システムの例］
【００６２】
図４は、例示の実施形態に係るシステム４００の概略ブロック図である。このシステム４００は、コンピューティング・デバイス４０４、サーバ４０６、および印刷デバイス４０８のグループが、ネットワーク４０２により通信可能に接続したシステムの一例である。印刷デバイス４０８のグループには、多機能周辺装置（ＭＦＰ）４１０を含む印刷デバイスの任意の組み合わせが含まれ得る。
【００６３】
ネットワーク４０２は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはそれらの組み合わせでよい。いくつかの実施形態では、コンピューティング・デバイス４０４および印刷デバイス４０８は全て同じローカルエリアネットワークに接続することができる。別の実施形態では、コンピューティング・デバイス４０４は、インターネットなどのワイドエリアネットワークを介して、１つ以上の周辺装置４０８と接続する遠隔のコンピューティング・デバイスである。ネットワーク４０２は、任意の種類のネットワーク通信媒体でよく、このネットワーク通信媒体を介して、システム４００内のデバイスは、情報の通信、送信、および／または受信が可能なことは理解されよう。
【００６４】
コンピューティング・デバイス４０４は、印刷デバイス４０８のうちの１つ以上に情報を送信可能で、かつ周辺装置４０８のうちの１つ以上から受信した情報を処理可能な任意のコンピューティング・デバイスでよい。このコンピューティング・デバイス４０４は、コンピューティング・デバイス３００の１つ以上のユニットを含むことができる。コンピューティング・デバイス４０４は、本明細書に記載される、印刷デバイスの検索および管理に関する種々の動作を実行可能である。いくつかの実装形態では、コンピューティング・デバイス４０４は、検索入力データを入力可能な入力デバイスと、検索結果を表示可能な表示デバイスと、を含む。コンピューティング・デバイス４０４は、デスクトップコンピュータとして示されているが、コンピューティング・デバイス４０４は、サーバ、ラップトップコンピュータ、タブレット、スマートフォン、またはその他のモバイル・コンピューティング・デバイスでよい。
【００６５】
サーバ４０６は、コマンドリストのデータベースおよびＰＤＩのデータベースなどの情報を格納可能な任意のコンピューティング・デバイスでよい。サーバ４０６は、そのサーバ内に格納された情報に対する要求（すなわち、問合せ）をコンピューティング・デバイス４０４から受け、その回答をコンピューティング・デバイス４０４に送信することができる。サーバ４０６はネットワーク４０２に接続することができ、コンピューティング・デバイス４０４からアクセス可能である。
【００６６】
いくつかの実施形態では、印刷デバイス・メンテナンス・アプリケーション３１８を動かすコンピューティング・デバイス４０４は、サーバ４０６に情報を要求することができる。そのような要求すなわち問合せには、サーバ４０６上の１つ以上のデータベースを検索するためのテキストまたはその他の情報が含まれ得る。場合によっては、このテキストは、入力される検索入力データの一部、不完全な検索入力データの修正バージョン、または検索条件またはコマンドをトークン化した、あるいは、符号化した情報表現の可能性がある。
【００６７】
例えば、サーバ４０６は、コンピューティング・デバイス４０４から「ｓｅｔ  ｋｅｙｂｏａｒｄ（キーボードを設定する）」に対する問合せを受け、「ｓｅｔ  ｋｅｙｂｏａｒｄ」に関連するコマンド名および／またはコマンドＩＤを要求することができる。サーバ４０６（この例では、図５に示されるコマンドのデータベース５００を格納する）は、コマンド名「キーボード＿設定」を用いて、コマンドＩＤ「００００」に関する検索項目を探し出すことができる。このコマンド名は、例えば、印刷デバイス・メンテナンス・アプリケーション３１８のメソッドまたは関数名に関連し得る。次いで、サーバ４０６は、コンピューティング・デバイス４０４にそのコマンドＩＤおよび／またはコマンド名を回答として送信することができる。
【００６８】
いくつかの実施形態では、サーバ４０６は、入力された検索入力データの履歴を格納することができる。検索終了後、コンピューティング・デバイス４０４は、検索入力データをサーバ４０６に送信して、その検索入力データを格納されている検索入力データの履歴（すなわち、以前入力された検索入力データのリスト）に加えることができる。動作中、印刷デバイス・メンテナンス・アプリケーション３１８を動かすコンピューティング・デバイス４０４は、検索入力データの履歴をユーザに見せることができ、かつ、以前入力された検索入力データのうちの１つを選択して、再度実行することもできる。
【００６９】
印刷デバイスのグループ４０８には、印刷デバイスの任意の組み合わせが含まれ得る。図４には、ＭＦＰ４１０、印刷デバイス４１２、および印刷デバイス４１４を含む印刷デバイスのグループ４０８が示されている。印刷デバイスのグループ４０８には、様々な印刷デバイスおよびＭＦＰが含まれ得る。場合によっては、印刷デバイスのグループ４０８内には、同じモデルの複数の印刷デバイスが存在し得る。いくつかの例では、数例を挙げるとすれば、印刷デバイスのグループ４０８は、会社、その会社の特定のオフィス、そのオフィス内のフロアなどに関連し得る。その他の例では、印刷デバイスのグループ４０８は、稼働中の特定のモデルの全ての印刷デバイスであり得る。デバイスのその他の組み合わせも、印刷デバイスのグループ４０８内には含まれ得る。
【００７０】
ＭＦＰ４１０は、任意の種類の多機能周辺装置でよい。いくつかの実装形態では、ＭＦＰは、画像形成装置１００と同様、あるいは同じでよい。いくつかの実施形態では、ＭＦＰ４１０は、表示デバイスおよび／または入力デバイスを含む操作パネルを含むことができる。入力デバイスは、物理的キーボード、仮想キーボード、マウス、またはタッチスクリーン・デジタイザなどの、検索入力データを入力可能な任意のデバイスでよい。表示デバイスは、液晶ディスプレイ（ＬＣＤ）などの、検索結果を表示可能な任意のデバイスでよい。
【００７１】
システム４００は、説明のために提供された、システムの一例であることは理解されよう。あらゆる数のモバイルデバイス、コンピュータ、ラップトップコンピュータ、またはその他のモバイルデバイスが存在し、様々な方法でシステム４００と接続可能である。
［Ｖ．コマンドのデータベースの例］
【００７２】
図５には、例示の実施形態に係るコマンドのデータベース５００の一例が示されている。このコマンドのデータベース５００には、「キーボード＿設定」、「インストール＿ドライバ」、および「再スタート」の３種類のコマンドの記述項目が示されている。いくつかの実施形態では、これらのコマンドは、印刷デバイス・メンテナンス・アプリケーション内の特定の動作を実行するメソッドまたは関数名を示す。これらのコマンドはそれぞれ、ＩＤ番号に関連することができる。
【００７３】
各コマンドの記述項目は、それらに割り当てられる１つ以上の名前を有することができる。例えば、「キーボード＿設定」というコマンドには、英語名の「Ｓｅｔ  Ｋｅｙｂｏａｒｄ（キーボードを設定する）」、および日本語名の「キーボード設定（Ｋｉｉｂｏｏｄｏ  ｓｅｔｔｅｉ）」が割り当てられ得る。動作中、検索入力データは、これらの割り当てられた名前のうちの１つを含むことにより、ユーザが特定のコマンドを実行しようとしていることを示すことができる。しかし、ユーザは、印刷デバイス・メンテナンス・アプリケーション３１８のプログラムされた関数すなわちメソッド名を覚える必要はなく、最も使いやすい言語で、より自然な検索入力データを入力することができる。したがって、割り当てられたコマンド名のうちの１つをユーザが入力すると、印刷デバイス・メンテナンス・アプリケーション３１８は、その名前をコマンドのデータベース５００に問い合わせて対応するコマンドを検索することができる。一致したコマンドが見つかると、そのコマンドおよび／またはコマンドＩＤは、印刷デバイス・メンテナンス・アプリケーション３１８に送信され得、これにより、印刷デバイス・メンテナンス・アプリケーション３１８は、そのコマンドまたはコマンドＩＤのどちらかを用いて、対応するメソッドまたは関数を実行することができる。
【００７４】
特定のコマンドが入力されると、印刷デバイス・メンテナンス・アプリケーション３１８が起動して、ユーザに追加の情報を促す。例えば、「キーボード＿設定」というコマンドを実行すると、プロンプトが表示されて、印刷デバイスの操作パネル上のキーボードのレイアウトを変更したいのか、あるいは、印刷デバイスの操作パネル上のキーボードの言語を変更したいのかをユーザに質問する。このプロンプトには、各オプションに対応する２つ以上の選択ボタンが含まれ得る。あるいは、ユーザは、ユーザの所望のオプションをテキストで入力することもできる。
【００７５】
所与の記述項目に割り当てられた名前は、ユーザにより変更可能である、あるいは上書き可能である。場合によっては、ユーザは、検索入力データを検索ボックスに入力することにより、記述項目のうちの１つの変更を要求することができる。可能性のある例として、「ｒｅｐｌａｃｅ  Ｉｎｓｔａｌｌ  Ｄｒｉｖｅｒ  ｗｉｔｈ  Ｌｏａｄ  Ｄｒｉｖｅｒ」と検索入力することで、記述項目ＩＤ「０００１」に割り当てられた英語名を「Ｉｎｓｔａｌｌ  Ｄｒｉｖｅｒ」から「Ｌｏａｄ  Ｄｒｉｖｅｒ」に変更することができる。このような動作は、コマンドのデータベース５００にアクセスする全てのユーザに適用可能である、あるいは、変更操作を行う特定のユーザにのみ適用可能である。いくつかの実施形態では、コマンドリストのデータベースを図表で表示可能であり、ユーザにより割り当てられたコマンド名を手動で編集することもできる。
［ＶＩ．印刷デバイス情報の例］
【００７６】
図６には、例示の実施形態に係る印刷デバイス情報（ＰＤＩ）６００の一例が示されている。ＰＤＩ６００は、名前、ＩＰアドレス、印刷速度、およびトナーレベルの４つの領域を含む。このＰＤＩ６００は、印刷デバイス２００などの印刷デバイスに関連し得る。これらの各領域を本明細書では「特性」と呼ぶことができ、各特性に関連するプリンタ固有の情報を本明細書ではその特性「値」と呼ぶことができる。
【００７７】
図６に示される例では、印刷デバイスの名前は「１階南」であり、これにより、この印刷デバイスが１階のオフィスの南側に配置されていることが示されている。この名前は、その印刷デバイスを表すために、ユーザまたは管理者により割り当てられ得る
【００７８】
このＩＰアドレスは、ローカルネットワーク内の印刷デバイスに割り当てられたＩＰアドレスであり、例えば、印刷デバイス・メンテナンス・アプリケーション３１８は、このＩＰアドレスを用いて、コンピューティング・デバイスと、このＩＰアドレスを有する印刷デバイスとの間のネットワーク接続を確立することができる。ネットワーク接続が確立された後、コンピューティング・デバイスは、印刷デバイス上で種々の動作を実行するために、コマンドおよびその他の情報を送信することができる。
【００７９】
印刷速度とは、ハードコードされた速度であり、その速度で印刷デバイスがページを印刷可能である。この例において、「３０ｐｐｍ」とは、印刷デバイスが毎分３０ページの速度で印刷可能であることを示している。なお、いくつかの実装形態では、ＰＤＩは、その情報をテキスト文字列としては格納せず、その代り整数として格納するようにしてもよい（「ｐｐｍ」の単位が理解されている場合）。
【００８０】
トナーレベルは、印刷デバイス内に残るトナーのパーセントを表すことができる。この例では、「１５％」が、１５パーセントのトナーが残っていることを示している。このトナーレベルは、定期的に、かつ／または、トナーレベルが現在のものかを確認するためのＰＤＩに対する要求の受信に応じて更新することができる。なお、特定の印刷デバイスによっては、インクなどのその他の種類の印刷材料もＰＤＩに含むことができる。
【００８１】
図６に示されるＰＤＩ６００は、単に、領域および情報の例を示すＰＤＩの表示例であることは理解されよう。本出願で記載されるＰＤＩには、トナーの色ごとのトナーレベル、印刷デバイスのモデル情報、製造番号、ＭＡＣアドレス、および／または印刷デバイスの能力に関する情報など、その他の様々な種類の情報が含まれ得る。
［ＶＩＩ．検索ボックスの例］
【００８２】
図７は、例示の実施形態に係る例示的な検索ボックス７０４の表現７００である。図７には、印刷デバイス・メンテナンス・アプリケーション用のユーザインターフェース７０２が示されている。このユーザインターフェース７０２は、検索ボックス７０４を含む。検索ボックス７０４内には、部分的に入力された検索入力データ７０６が示されている。図７に示されている例では、印刷デバイス・メンテナンス・アプリケーションは、以前入力された検索入力データ７０８を表示中である。
【００８３】
例示の動作において、ユーザは、キーボードまたはその他の入力デバイスを用いて、検索入力データ７０６内に「Ｆｉｎｄ  ｐｒｉｎｔｅｒｓ  ｗｉｔｈ」と入力することができ、この検索入力データが、検索ボックス７０４内に表示される。検索入力データ７０６の一部が入力されたことを受けて、印刷デバイス・メンテナンス・アプリケーションは、格納されている検索入力データの履歴に基づき、以前入力された検索入力データ７０８を表示する。図７に示される通り、いくつかの実施形態では、以前入力された検索入力データ７０８は、部分的に入力された検索入力データ７０６を含む以前の検索入力データでよい。この例では、以前入力された検索入力データ７０８は、全て「Ｆｉｎｄ  ｐｒｉｎｔｅｒｓ  ｗｉｔｈ（〜であるプリンタを検索する）」で始まって表示され、検索条件および／またはコマンドも含んでいる。例えば、以前入力された検索入力データ７０８の１つは、「Ｆｉｎｄ  ｐｒｉｎｔｅｒｓ  ｗｉｔｈ  ｐｐｍ＞５５（ｐｐｍ＞５５であるプリンタを検索する）」であり、「ｐｐｍ＞５５」は毎分５５ページより速く印刷可能なプリンタを検索するという検索条件を示す。別の例として、以前入力された検索入力データ「Ｆｉｎｄ  ｐｒｉｎｔｅｒｓ  ｗｉｔｈ  ＩＰ  １２３．４５．６７．８９  ａｎｄ  ｒｅｓｔａｒｔ（ＩＰアドレスが１２３．４５．６７．８９であるプリンタを検索し、再スタートさせる）」は、「１２３．４５．６７．８９」のＩＰアドレスを有するプリンタ（ＰＤＩ６００により表されるプリンタなどの）を検索し、その特定のプリンタを再スタートさせるよう、印刷デバイス・メンテナンス・アプリケーション７０２に命令するものである。ユーザは、以前入力された検索入力データ７０８のうちの１つを選択して、印刷デバイス・メンテナンス・アプリケーションに実行させることができる。
【００８４】
いくつかの実施形態では、印刷デバイス・メンテナンス・アプリケーションを動かすコンピューティング・デバイスは、印刷デバイス・メンテナンス・アプリケーションの動作が終了した後、検索入力データを格納することができる。これらの検索入力データを、テーブルまたはデータベースに記録することができ、これらのテーブルまたはデータベースは、例えば、コンピューティング・デバイスの記憶装置に格納することができる。印刷デバイス・メンテナンス・アプリケーションは、以前入力された検索入力データ７０８を表示するためのベースとして、これらの格納されている以前入力された検索入力データを使用することができる。
【００８５】
場合によっては、検索入力データ７０６が入力されていない可能性がある。このような場合、以前入力された検索入力データ７０８は、直近に入力された検索入力データであり得る。いくつかの実装形態では、以前入力された検索入力データ７０８は、最も頻繁に入力された検索入力データであり得る。格納された検索入力データのうちのどれを表示するべきかを決定するために、論理、フィルタリング、および分析の任意の組み合わせを実行することができることは理解されよう。
【００８６】
いくつかの実施形態では、図７に示される例と同様に、検索ボックス７０４は、検索データの一部が入力されると、検索入力データの完成形を提案することができる。このような例示的な実施形態は、「自動補完」と呼ばれ得る。検索入力データ７０６の一部が入力されると、以前入力された検索入力データ７０８が自動的に現れ得る。いくつかの実装形態では、ボタンまたはその他のグラフィカル制御要素を設けることができ、これらを押したり、あるいは、起動したりすると、以前入力された検索入力データ７０８が表示される。
【００８７】
図７に示される、印刷デバイス・メンテナンス・アプリケーションのユーザインターフェース７０２、検索ボックス７０４、部分的な検索入力データ７０６、および以前入力された検索入力データ７０８は、説明のために提供されたグラフィカル表示の例であることは理解されよう。ユーザインターフェース７０２の相対的なサイズ、形状、フォント、およびその他のグラフィカル特性は、特定の実装形態によって異なり得る。
［ＶＩＩＩ．方法の例］
【００８８】
図８は、例示の実施形態に係る方法の一例を示すデータ流れ図８００である。このデータ流れ図８００には、コンピューティング・デバイス８１０、印刷デバイス（複数可）８２０、およびサーバ８３０の間での情報のやり取りが示されている。より具体的には、データ流れ図８００には、印刷デバイス情報（ＰＤＩ）を検索し格納するための処理が示されている。なお、データ流れ図８００は、単にシステム内のデバイス間のデータの流れの一例を示しているだけであり、種々の実装形態では、図８に示される例とは異なり、存在し得るデバイスの数はこれより多くても少なくてもよく、かつ、本出願で開示される印刷データの検索を達成するために、実行され得る工程もこれより多くても少なくてもよい。
【００８９】
なお、コンピューティング・デバイス８１０は、コンピューティング・デバイス３００と同様、あるいは同じでよい。さらに、印刷デバイス（複数可）８２０は、画像形成装置１００および／または印刷デバイス２００の１つ以上のユニットを含むことができる。以下の説明のため、印刷デバイス（複数可）８２０には、２つ以上の印刷デバイスが含まれ、したがって複数形で言及される。単一のＰＤＩがシステム内でやり取りされ得ることも理解されよう。
【００９０】
まず、コンピューティング・デバイス８１０がＰＤＩに対する要求を生成する。この要求は、コンピューティング・デバイスが、印刷デバイス８２０のうちの各印刷デバイス上に格納されているＰＤＩのコピーを要求していることを示すメッセージでよい（例えば、ＳＮＭＰメッセージ、ＷＳＤＬメッセージなど）。
【００９１】
次いで、コンピューティング・デバイス８１０は、ＰＤＩに対する要求を印刷デバイス８２０に送信する。この要求は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはそれらの組み合わせを介して送信され得る。
【００９２】
次いで、コンピューティング・デバイス８１０からＰＤＩに対する要求を受信したことを受けて、印刷デバイス８２０は、ＰＤＩを含む回答をコンピューティング・デバイス８１０に送り返す。各印刷デバイスは、そのデバイスのＰＤＩを格納するローカル記憶部を備えることができる。各印刷デバイスにより送られる回答には、格納されているこれらのＰＤＩのコピーが含まれ得る。
【００９３】
次いで、いくつかの実施形態では、ＰＤＩの回答を復号化する。ＰＤＩは符号化されている可能性があり（すなわち、数字またはビットのストリームで表されている）、送信されてくる情報を理解するために、このＰＤＩを復号化する必要がある。コンピューティング・デバイス８１０は、メッセージ方式を認識し、予想されたメッセージ形式が記載されているライブラリファイルなどを利用することができる。コンピューティング・デバイスは、ＰＤＩを復号化するために、この情報を用いることができる。他の実施形態では、ＰＤＩは、パスコードまたはキーを用いて暗号化されており、コンピューティング・デバイスは、同じパスコードまたは対応するキーを用いて、暗号化されたＰＤＩを復号化することができる。
【００９４】
次いで、コンピューティング・デバイス８１０は、印刷デバイスのデータベースを生成する。この動作には、受信した（かつ、もしかしたら復号化された）ＰＤＩの回答を、ＰＤＩのテーブルまたはデータベースに集めることが含まれ得る。各回答は、データベース内の記述項目を作成するために用いられ得、かつ、これらの回答には、一意の識別子も割り当てられ得る。
【００９５】
次いで、コンピューティング・デバイス８１０は、印刷デバイスのデータベースをサーバ８３０に送信する。サーバは、この印刷デバイスのデータベースのコピーを非一時的記憶媒体に格納することができる。
【００９６】
印刷デバイスのデータベースをコンピューティング・デバイス８１０から受信した後、サーバ８３０は、その印刷デバイスのデータベースのコピーを格納する。その後、コンピューティング・デバイス８１０は、印刷デバイスのデータベースに格納された情報を問い合わせることができる。
【００９７】
図８の動作は特定の順番で実行されているが、これらの工程を異なる順番で実行してもよく、かつ／または、特定の工程を他の工程と同時に実行してもよいことは理解されよう。図８に示された動作の順番は、説明のために提供されたものである。
【００９８】
図９は、例示の実施形態に係る方法９００を示すフローチャートである。この方法９００は、本出願の印刷デバイスの検索および管理を集合的に行う一連の動作の一例でよい。方法９００の動作は、コンピューティング・デバイス４０４などの、図４に示されるシステム４００内の１つ以上のデバイス上で実行可能である。
【００９９】
工程９０２では、この方法９００は検索ボックスを表示することを含む。上記の通り、この検索ボックスは、検索入力データを入力可能なユニバーサル検索ボックスでよい。この検索ボックスは、長方形のグラフィカル・ユーザー・インターフェース要素として表示され得る。いくつかの実施形態では、この検索ボックスは、キーストロークおよび／またはキーストロークの組み合わせを入力デバイスから受信することで表示され得る（例えば、「Ｃｏｎｔｒｏｌ＋ｆ」、「Ｆ２」などの機能キー、または機能キー、通常キー、および修飾キーの任意の組み合わせを物理的キーボードまたはオンスクリーン・キーボードに入力する）。
【０１００】
工程９０４では、この方法９００は、複数の文字を含む検索入力データを受信することを含む。例えば、検索入力データは、ユーザが物理的キーボードまたは仮想キーボードにタイピングを行うことにより入力することができる。
【０１０１】
工程９０６では、この方法９００は、複数の文字の第１の部分に基づいて、検索条件を決定することを含む。この検索条件は、印刷デバイスのデータベース内の印刷デバイスを検索するための基準（複数可）を表し得る。工程９０６は、どの文字が検索条件に対応するのかを決定し、次いで、その文字部分から意図する検索条件を決定することを含むようにしてもよい。特定のキーワードまたはフレーズが、検索条件の開始または終了の合図となり得る。検索入力データの別の部分がコマンドに対応しているとき、検索条件に対応する検索入力データの部分を特定する必要があり得る。例えば、「ｉｎｓｔａｌｌ  ｄｒｉｖｅｒ  ｆｏｒ  ｐｒｉｎｔｅｒｓ  ｗｉｔｈ  ｃｏｌｏｒ」という検索入力データは、コマンド部分の「ｉｎｓｔａｌｌ  ｄｒｉｖｅｒ」と、検索条件の「ｐｒｉｎｔｅｒｓ  ｗｉｔｈ  ｃｏｌｏｒ」との２つの部分を含むようにしてもよい。なお、この例では、キーワード「ｆｏｒ」が、検索条件の合図となっている。別の例として、「ｒｅｂｏｏｔ  ｐｒｉｎｔｅｒｓ  ｗｉｔｈ  ｄｕｐｌｅｘ  ｐｒｉｎｔｉｎｇ」という検索入力データでは、キーワード「ｗｉｔｈ」が、検索条件「ｄｕｐｌｅｘ  ｐｒｉｎｔｉｎｇ」の合図となっている。その後に続く検索条件を示すことができる、その他のキーワードの例として、可能性のあるキーワードの中でも特に、「ｆｏｒ」、「ｗｉｔｈ」、「ｈａｖｉｎｇ」、および「ｔｈａｔ」が挙げられる。さらに、検索条件は「＝」、「＜」、「＞」、またはこれらの任意の組み合わせなどの比較演算子により特定することもできる。
【０１０２】
いくつかの例では、検索入力データは、コマンド部分を含まないこともある。これは、ユーザが１つ以上の印刷デバイスを探し出そうとしているが、必ずしも、それらの印刷デバイスに関連する動作を実行しようとは思っていない場合である。これらの例では、工程９０６は、検索入力データが２つ以上の部分に分割することを含まないことがある。
【０１０３】
いくつかの実施形態では、検索入力データの第１の部分に、スペルミスまたはその他の不備が含まれ、この第１の部分が、どの既知の検索基準とも正確に一致しない可能性がある。このような場合、最も近い既知の検索基準を特定するために、「あいまい」検索技術（すなわち、近似文字列照合技術）を用いることができる。このような技術では、検索入力データの第１の部分と１つ以上の既知の検索基準との間の類似度を判定することができる。いくつかの実装形態では、第１の部分と既知の検索基準との間の類似度が類似度の閾値を超えている場合、方法９００の残りの部分で、この既知の基準を検索条件として用いることができる。
【０１０４】
場合によっては、２つ以上の既知の基準と検索入力データの第１の部分と間の類似度が類似度の閾値と一致する、あるいは超えていることがあり得る。そのようなシナリオでは、プロンプトを表示して、ユーザに意図する検索条件を選択するよう要求することができる。
【０１０５】
工程９０８では、この方法９００は、複数の文字の第２の部分に基づいて、コマンドを決定することを含む。工程９０８は、コマンド部分（すなわち、第２の部分）を検索条件の部分ではない検索入力データの残りの部分として決定することを含むようにしてもよい。いくつかの実装形態では、コマンド部分もキーワードまたはフレーズで合図され得る。その後に続くコマンドを示すことができる、いくつかのキーワードの例として、その他の可能性のあるキーワードの中でも特に、「ｅｘｅｃｕｔｅ」および「ｐｅｒｆｏｒｍ」が挙げられる。あるいは、コマンド部分は、検索条件のキーワードより前にくる検索入力データの部分として特定することもできる。但し、検索条件を表す複数の文字の第１の部分、およびコマンドを表す複数の文字の第２の部分はどのような順番で配置されてもよい。場合によっては、所与の検索入力データにおいて、検索条件がコマンドの前にくることもあり得る。その他の場合では、別の検索入力データにおいて、コマンドが検索条件の前にくることもあり得る。さらに、複数のコマンドおよび／または検索条件がある場合、特定の検索入力データによっては、それらのコマンドおよび検索条件はどのような順番でも現れ得る。
【０１０６】
工程９１０では、この方法９００は、少なくとも１つの印刷デバイスが検索条件を満たしているかどうかを判定することを含む。場合によっては、検索条件が印刷デバイスのデータベース内のどの印刷デバイスにも対応していない可能性がある。例えば、毎分３００ページよりも速く印刷可能な印刷デバイスに関連するデータベース内に記載項目が存在しないため、「ｐｐｍ＞３００」の検索条件は、そのデータベース内のどの印刷デバイスにも対応し得ない。検索条件により指定された基準（複数可）を満たす印刷デバイスが見つからない場合、この方法９００は工程９０４に戻って、新しい検索入力データを受け取る。少なくとも１つの印刷デバイスが見つかった場合、方法９００は工程９１２に進む。
【０１０７】
上記の工程９０８と同様、検索入力データの第２の部分にスペルミスまたはその他のエラーが含まれ、第２の部分が既知のコマンドと正確に一致しない可能性がある。既知のコマンドは、コマンドおよびコマンドリストのデータベースから割り当てられるそれらのコマンド名でよい。コンピューティング・デバイスは、上記の工程９０８で説明した技術と同様の「あいまい」検索技術を用いて、検索入力データの第２の部分と大幅に一致するコマンドを決定することができる。検索入力データの第２の部分とコマンドとの類似度が、類似度の閾値を超えている場合、方法９００の残りの部分で、この一致したコマンドを用いることができる。場合によっては、２つ以上のコマンドが検索入力データの第２の部分と「一致」する場合、プロンプトを表示して、ユーザに意図するコマンドを選択するよう要求することができる。
【０１０８】
工程９１２では、この方法９００は、検索条件により指定された基準を満たしている１つ以上の印刷デバイスを特定することを含む。工程９１２では、印刷デバイスのデータベースに、検索条件を満たす印刷デバイスを問い合わせることを含むようにしてもよい。印刷デバイスのデータベースは、検索条件の基準（複数可）を満たす１つ以上の印刷デバイス含む回答を送り返すことができる。
【０１０９】
工程９１４では、この方法９００は、特定の印刷デバイスに関連する決定コマンドを実行することを含む。決定コマンドは、そのコマンドを実行可能なデバイスを指定する。例えば、印刷デバイスと通信するために、コンピューティング・デバイスがドライバを用いるため、「インストール＿ドライバ」というコマンドは、コンピューティング・デバイス上での実行を指定する。なお、コマンド「インストール＿ドライバ」は、特定の印刷デバイスに関連して、コンピューティング・デバイス上で実行される。つまり、コンピューティング・デバイスにインストールされるドライバは、その特定の印刷デバイス用のドライバである。
【０１１０】
場合によっては、キーボード設定は印刷デバイスの操作パネルに関連するため、「キーボード＿設定」などのコマンドは、印刷デバイス上での実行を指定する。これらの場合では、コマンド「キーボード＿設定」は、特定の印刷デバイス上で実行される。いくつかの実装形態では、コマンドをその特定の印刷デバイスに送信して、その印刷デバイスに、「キーボード＿設定」のコマンドを実行して所望の設定にするよう命令する。
【０１１１】
図８または図９を参照して説明してきたこれらの例は、単なる動作の例であることは理解されよう。その他の動作も本出願の範囲を逸脱することなく実行可能である。
［ＩＸ．変形例］
【０１１２】
いくつかの実施形態では、コマンドリストのデータベースは、ユーザ割り当ての音声コマンドの１つ以上の音声セグメントを格納することができる。動作中、マイクロフォン３１２により、ユーザが話したコマンドを取り込むことができ、その後、コンピューティング・デバイスにより、取り込まれた音声セグメントを、コマンドリストのデータベース内に格納されている音声セグメントと比較することができる。このように音声を比較することにより、たった今取り込まれた音声コマンドと格納されている音声コマンドとの間の類似度を示す値が生成される。その値が類似度の閾値を超えている場合、コンピューティング・デバイスは、たった今取り込まれた音声コマンドを格納されている音声コマンドに関連するコマンドと特定することができる。
Ｘ．結論
【０１１３】
上記の詳細な説明では、添付図面を参照して、開示のシステム、デバイス、および方法の様々な特徴および機能を説明してきた。本明細書には種々の様態および実施形態が開示されているが、その他の様態および実施形態も明らかである。本明細書で開示されている種々の様態および実施形態は説明を目的としたものであり、限定を意図するものではなく、その本当の範囲は以下の請求項により示されるものとする。
符号の説明
【０１１４】
１００  画像形成装置
１０２  プロセッサ
１０４  データ記憶部
１０６  命令
１０８  脱着自在ストレージ・インターフェース
１１０  ネットワーク・インターフェース
１１２  プリンタ
１１４  スキャナ
１１６  ファクシミリユニット
１１８  制御ユニット
１２０  操作パネル
１２２  表示デバイス
１２４  入力デバイス
【図１】
2016181258.tif 000003
【図２】
2016181258.tif 000004
【図３】
2016181258.tif 000005
【図４】
2016181258.tif 000006
【図５】
2016181258.tif 000007
【図６】
2016181258.tif 000008
【図７】
2016181258.tif 000009
【図８】
2016181258.tif 000010
【図９】
2016181258.tif 000011
【外国語明細書】
Printing Device Searching and Management System and Method
FIELD
[0001]       The present invention relates to a technique for searching and management of printing device.
BACKGROUND
[0002]       Unless otherwise indicated herein, the materials described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
[0003]       An image forming apparatus may be any peripheral that produces a human-readable representation of graphics and/or text onto a physical medium.  Example image forming apparatuses include printers and multifunction peripherals (MFPs).  An image forming apparatus may be utilized for various tasks such as printing, scanning, and faxing, as well as many other uses.
[0004]       In recent years, the number of printing devices in a typical office environment has grown substantially.  It is not uncommon for an office to have over one hundred printing devices operating within a local network.  Having many printing devices with various features (e.g. copying, facsimile, color printing, and various duplex options) interspersed within an office may provide a convenience for users.  However, accessing a particular printing device at a computing device typically involves identifying it from a list of printing device names.  As a result, finding a desired printing device can be a difficult task when little information about that printing device is available.
[0005]       Typically, a user is required to install a printing device driver before accessing the various features of a printing device or performing an action in association with that printing device.  However, installing printing device drivers on a computing device for all printing devices within a network may be difficult.  Furthermore, installing such a large number of printing device drivers may require a user to sort through and select a desired printing device from a long list of printing devices for each print operation, which can be time consuming. 
SUMMARY
[0006]       The present application discloses embodiments that relate to a printing device searching and management system and method.  In one aspect, the present application describes a method.  The method includes causing a display device to display a search prompt into which a search input can be entered.  The method also includes receiving, at a computing device, the search input comprising a plurality of characters.  The method further includes determining a search condition based on a first portion of the plurality of characters.  A given search condition is indicative of a criterion for a characteristic of a given printing device.  Additionally, the method includes determining a command based on a second portion of the plurality of characters.  A given command is indicative of an executable action.  The given command specifies a given device on which to execute the action.  The given command is executable in association with a printing device.  Further, the method includes determining whether at least one printing device of a plurality of printing devices meets the criterion specified by the search condition.  The method also includes identifying one or more printing devices that meet the criterion specified by the search condition based on determining that at least one printing device meets the criterion.  The method further includes executing the determined command in association with at least one particular printing device from among the identified one or more printing devices on a device specified by the determined command.
[0007]       In another aspect, the present disclosure describes a non-transitory computer-readable medium having instructions stored thereon that, upon execution by at least one processor, cause a computing device to perform a set of operations.  The operations include causing a display device to display a search prompt into which a search input can be entered.  The operations also include receiving, at a computing device, the search input comprising a plurality of characters.  The operations further include determining a search condition based on a first portion of the plurality of characters.  A given search condition is indicative of a criterion for a characteristic of a given printing device.  Additionally, the operations include determining a command based on a second portion of the plurality of characters.  A given command is indicative of an executable action.  The given command specifies a given device on which to execute the action.  The given command is executable in association with a printing device.  Further, the operations include determining whether at least one printing device of a plurality of printing devices meets the criterion specified by the search condition.  The operations also include identifying one or more printing devices that meet the criterion specified by the search condition based on determining that at least one printing device meets the criterion.  The operations further include executing the determined command in association with at least one particular printing device from among the identified one or more printing devices on a device specified by the determined command.
[0008]       In yet another aspect, the present application describes a system that includes a plurality of printing devices and a computing device.  The computing device includes a display device and is configured to execute instructions.  The instructions include sending a plurality of requests for printing device information (PDI) to the plurality of printing devices.  A given PDI includes at least (i) a name of a given printing device and (ii) a value of a characteristic of the given printing device.  The instructions also include receiving, from the plurality of printing devices, a respective plurality of PDIs.  The instructions further include generating a printing device database based on the received plurality of PDIs.  Additionally, the instructions include receiving a search condition indicative of a criterion for the characteristic of a given printing device.  Further, the instructions include determining whether at least one printing device of the plurality of printing devices meets the criterion specified by the search condition.  The instructions also include identifying one or more printing devices that meet the criterion specified by the search condition based on determining that at least one printing device meets the criterion.  The instructions further include causing the display device to display the names of the identified one or more printing devices.
[0009]       In another aspect, the present application describes a system.  The system includes a means for causing a display device to display a search prompt into which a search input can be entered.  The system also includes a means for receiving, at a computing device, the search input comprising a plurality of characters.  The system further includes a means for determining a search condition based on a first portion of the plurality of characters.  A given search condition is indicative of a criterion for a characteristic of a given printing device.  Additionally, the system includes a means for determining a command based on a second portion of the plurality of characters.  A given command is indicative of an executable action.  The given command specifies a given device on which to execute the action.  The given command is executable in association with a printing device.  Further, the system includes a means for determining whether at least one printing device of a plurality of printing devices meets the criterion specified by the search condition.  The system also includes a means for identifying one or more printing devices that meet the criterion specified by the search condition based on determining that at least one printing device meets the criterion.  The system further includes a means for executing the determined command in association with at least one particular printing device from among the identified one or more printing devices on a device specified by the determined command.
[0010]       The foregoing summary is illustrative only and is not intended to be in any way limiting.  In addition to the illustrative aspects, embodiments, and features described above, further aspects, embodiments, and features will become apparent by reference to the figures and the following detailed description.
BRIEF DESCRIPTION OF THE FIGURES
[0011]       Figure 1 is a schematic block diagram illustrating an image forming apparatus, according to an example embodiment;
Figure 2 is a schematic block diagram illustrates a printing device, according to an example embodiment;
Figure 3 is a schematic block diagram illustrates a computing device, according to an example embodiment;
Figure 4 is a schematic block diagram of a system, according to an example embodiment;
Figure 5 is a representation of an example command database, according to an example embodiment;
Figure 6 is a representation of an example printing device information (PDI), according to an example embodiment;
Figure 7 is a representation of an example search box, according to an example embodiment;
Figure 8 is a data flow diagram illustrating an example method, according to an example embodiment; and
Figure 9 is a flowchart illustrating a method, according to an example embodiment.
DETAILED DESCRIPTION
[0012]       Example methods and systems are described herein.  Any example embodiment or feature described herein is not necessarily to be construed as preferred or advantageous over other embodiments or features.  The example embodiments described herein are not meant to be limiting.  It will be readily understood that certain aspects of the disclosed systems and methods can be arranged and combined in a wide variety of different configurations, all of which are contemplated herein.
[0013]       Furthermore, the particular arrangements shown in the Figures should not be viewed as limiting.  It should be understood that other embodiments might include more or less of each element shown in a given Figure.  Further, some of the illustrated elements may be combined or omitted.  Yet further, an example embodiment may include elements that are not illustrated in the Figures.
I.    Overview
[0014]       An example embodiment is directed to a printing device searching and management system and method.  Manually searching for a particular printing device within a network may be a difficult task.  A computing device may, in some scenarios, have access to a list of printing devices on the network.  However, such a list of printing devices usually depicts only basic information about those printing devices, such as administrator-designated names and model numbers.  Often, a user must seek out an administrator or another user to determine the location of those printing devices and the capabilities of those printing devices.  In some cases, a user may arbitrarily select a printing device based on its name and install a printer driver for that printing device to determine its capabilities; however, such a process may require some extent of trial-and-error before finding printer that suits the needs of the user.
[0015]       A printing device searching and management system of the present application may provide a “universal” search box capable of performing a variety of tasks.  The universal search box may allow a user to more quickly and efficiently search for printing devices within a network and/or execute commands in association with those printing devices.  By employing language analysis techniques, such as those disclosed herein, the universal search box may find printing devices that match search criteria entered by a user.  In some embodiments, a user may enter a search input into the universal search box in natural language, and the search box may analyze the search input and identify one or more search conditions from that search input.  Thus, a user may search for printing devices having one or more characteristics specified by the search input in a single search operation.
[0016]       The universal search box may, in addition to identifying search conditions, determine a command from a search input and execute that command.  A user may enter into the universal search box a search input that includes both search conditions and a command.  The command may be an operation to perform on a computing device, or may alternatively be an operation to perform on a printing device.  When the command is performed on a computing device, executing the command may be done in association with a printing device.  For example, a command to install a printer driver on a computing device, the printer driver may be associated with a particular printing device.  In other cases, a command to change a printing device’s operation panel keyboard may be performed on one or more printing devices.
[0017]       Thus, the printing device searching and management system of the present application may provide a more quick and efficient manner of searching for printing devices and performing various operations in association with those devices.  For example, a search input may find all printing devices on a network that have toner levels below 10%, which a serviceperson might use to identify which printing devices need to be serviced.  As another example, a search input may set the language of the on-screen keyboard to English for all printing devices that have operation panels.  In each of these examples, a single search input may be sufficient for performing the task. 
[0018]       It should be understood that any example search input and/or operation described herein are provided for explanatory purposes.  Multiple search inputs may cause execution of the same operation.  Example search inputs disclosed may not necessarily cause execution of an operation, depending upon the particular operation.  The examples are provided to facilitate understanding of the printing device searching and management system of the present application and may not necessarily correspond to any particular implementation. 
II.   Example Image Forming Apparatus and Printing Device
[0019]       Figure 1 is a schematic block diagram of illustrating an image forming apparatus 100, according to an example embodiment.  The image forming apparatus 100 includes processor(s) 102, data storage 104 that has stored thereon instructions 106, a removable storage interface 108, a network interface 110, a printer 112, a scanner 114, a facsimile (FAX) unit 116, a control unit 118, and an operation panel 120 that includes a display device 122 and an input device 124.  Each unit of image forming apparatus 100 may be connected to a bus, allowing the units to interact with each other.  For example, the processor(s) 102 may request information stored on data storage 104.
[0020]       The processor(s) 102 may include one or more processors capable of executing instructions, such as instructions 106, that cause the image forming apparatus 100 to perform various operations.  The processor(s) 102 may include general-purpose central processing units (CPUs) and cache memory.  The processor(s) 102 may also incorporate processing units for specific purposes, such as application-specific integrated circuits (ASICs) and field-programmable gate arrays (FPGAs).  Other processors may also be included for executing operations particular to image forming apparatus 100.
[0021]       The data storage 104 may store thereon instructions 106, which are executable by the processor(s) 102.  The data storage 104 may also store information for various programs and applications, as well as data specific to the image forming apparatus 100.  For example, the data storage 104 may include data for running an operating system (OS).  In addition, the data storage 104 may store user data that includes various kinds of information about any number of users.  The data storage 104 may include both volatile memory and non-volatile memory.  Volatile memory may include random-access memory (RAM).  Some examples of non-volatile memory include read-only memory (ROM), flash memory, electrically erasable programmable read only memory (EEPROM), digital tape, a hard disk drive (HDD), and a solid-state drive (SSD).  The data storage 104 may include any combination of readable and/or writable volatile memories and/or non-volatile memories, along with other possible memory devices. 
[0022]       The removable storage interface 108 may allow for connection of external data storage, which may then be provided to the processor(s) 102 and/or the control unit 118 or copied into data storage 104.  The removable storage interface 108 may include a number of connection ports, plugs, and/or slots that allow for a physical connection of an external storage device.  Some example removable storage devices that may interface with image forming apparatus 100 via the removable storage interface 108 include USB flash drives, secure-digital (SD) cards (including various shaped and/or sized SD cards), compact discs (CDs), digital video discs (DVDs), and other memory cards or optical storage media. 
[0023]       The network interface 110 allows the image forming apparatus 100 to connect to other devices over a network.  The network interface 110 may connect to a local-area network (LAN) and/or a wide-area network (WAN), such as the Internet.  The network interface may include an interface for a wired connection (e.g. Ethernet) and/or wireless connection (e.g. Wi-Fi) to a network.  The network interface 110 may also communicate over other wireless protocols, such as Bluetooth, radio-frequency identification (RFID), near field communication (NFC), 3G cellular communication such as CDMA, EVDO, GSM/GPRS, or 4G cellular communication, such as WiMAX or LTE, among other wireless protocols.  Additionally, the network interface 110 may communicate over a telephone landline.  Any combination of wired and/or wireless network interfaces and protocols may be included in network interface 110.
[0024]       The printer 112 may be any device or peripheral capable of producing persistent human-readable images and/or text on a printing medium, such as paper.  The printer 112 may receive print data from other units of image forming apparatus 100 representing images and/or text for printing.  The printer 112 may employ a variety of technologies, such ink-based printing, toner-based printing, and thermal printing, among other technologies.  An assortment of mechanical and/or electro-mechanical devices may make up the printer 112 to facilitate the transportation of printing media and the transferring of images and/or text onto the printing media.  For example, the printer 112 may include trays for the storage and staging of printing media and rollers for conveying the printing media through the printer 112.  The printer 112 may also include ink heads for dispensing ink onto a printing medium, photosensitive drums onto which lasers are shone to charge the drums and attract toner that is transferred onto a printing medium, and/or a thermal head for heating certain areas of a printing medium to generate images and/or text.  Other devices may also be incorporated within printer 112.
[0025]       The scanner 114 may be any device that can scan a document, image, or other object (which may collectively be referred to as “scanning medium” hereinafter) and produce a digital image representative of that scanning medium.  The scanner 114 may emit light (e.g. via LEDs) onto the scanning medium and sense the light reflecting off the scanning medium (e.g. via a charge coupled device (CCD) line sensor or a complementary metal oxide semiconductor (CMOS) line sensor).  In some implementations, the scanner 114 includes a platen glass onto which a document may be placed to be scanned.  In addition, the scanner 114 may perform post-processing on the scanned image, such as rotation, compression of the data, and/or optical character recognition (OCR), among other post-processing operations.
[0026]       The facsimile unit 116 may scan a document and/or images (which may be collectively referred to as “printed material” hereinafter) and transmit the scanned printed material over a telephone line (i.e. fax the scanned printed material).  The facsimile unit 116 may fax the scanned printed material via the network interface 110.  The facsimile unit 116 may also receive a fax transmission and communicate the received data to the printer 112 for printing.  In some implementations, the facsimile unit 116 includes buttons for configuring the facsimile unit 116 and dialling a phone number and a display for displaying the status of the fax transmission, among other things.
[0027]       The control unit 118 may control various electrical and/or mechanical components of the image forming apparatus 100.  For example, the control unit 118 may operate one or more paper sheet feeders, conveyors, rollers, and other mechanical devices for transporting paper through the printer 112.  The control unit 118 may also include device drivers that facilitate network communication, electronic displays, and the reading of information from various sensors or readers coupled to the image forming apparatus 100.  In some implementations, the control unit 118 is a software application or program that interfaces the processor(s) 102 with the various units of the image forming apparatus 100.
[0028]       The operation panel 120 includes a display device 122 and an input device 124 for facilitating human interaction with the image forming apparatus 100.  The display device 122 may be any electronic video display, such as a liquid-crystal display (LCD).  The input device 124 may include any combination of devices that allow users to input information into the operation panel 120, such as buttons, a keyboard, switches, and/or dials.  In addition, the input device 124 may include a touch-screen digitizer overlaid onto the display device 122 that can sense touch and interact with the display device 122.
[0029]       Figure 2 is a schematic block diagram illustrating a printing device 200, according to an example embodiment.  The printing device 200 may, in addition to the units depicted in Figure 2, include one or more of the units of image forming apparatus 100.
[0030]       The data storage 202 may be a non-volatile storage device, such as a hard disk drive (HDD), solid state disk (SSD), or read-only memory (ROM).  The data storage 202 may store unchanging information pertaining to the printing device 200, such as its model name, model number, serial number, and capabilities of the printing device 200.  The data storage 202 may also store information about the state of the printing device 200, such as its current IP address, a user-designated name of the printing device 200, customer information, toner/ink levels, paper levels, and whether or not the printing device is busy.  Any of the previously described information may be encompassed within printing device information (PDI) 204.  Certain pieces of information, such as the toner/ink or paper levels may be updated either periodically or in response to an operation being performed on the printing device 200. 
[0031]       The control unit 206 may be any combination of software and/or hardware that executes operations on the printing device 200.  The control unit 206 may include printing device information response unit 208, among other possible units or software modules.  The printing device information response unit 208 may receive a request for PDI 204 from a computing device and responsively transmit a response to the computing device containing a copy of the PDI 204.  The control unit 206 may access the PDI 204 from the data storage 202.  In some embodiments, the control unit 206 may also update the PDI 204 on the data storage 202 prior to transmitting a copy of the PDI 204 to a requesting computing device.
[0032]       A “unit” as referred to herein may refer to a device, component, module, or other combination of electrical and/or mechanical elements that accomplish a particular task.  In some instances, a unit may refer to a physical device that performs certain activities, such as the facsimile unit 116.  In other instances, a unit may refer to a software module that executes operations for a certain purpose, such as the printing device information response unit 208.  Regardless of the combination of hardware and software components that make up a unit, it should be understood that units are operable to accomplish certain tasks, and may interact with other units through hardware and/or software interfaces.
[0033]       Printing devices and image forming apparatuses referred to herein may incorporate any combination of components from image forming apparatus 100 and/or printing device 200, among other possible components.  For instance, an image forming apparatus may include a power supply that converts electrical power for use by various components.  It should be understood that other additional components might also be included on a particular image forming apparatus.
III.  Example Computing Device
[0034]       Figure 3 is a schematic block diagram illustrates a computing device 300, according to an example embodiment.  The computing device 300 includes processor(s) 302, a display unit 304, an input unit 306, a memory 308, a network interface 310, a microphone 312, a speech recognition unit 314, and data storage 316.  Each unit of computing device 300 may be connected to a bus, allowing the units to interact with each other.
[0035]       The processor(s) 302 may include one or more processors capable of executing applications and/or programs stored on data storage 316.  The processor(s) 302 may include general-purpose central processing units (CPUs) and cache memory.  The processor(s) 302 may also incorporate processing units for specific purposes, such as application-specific integrated circuits (ASICs) and field-programmable gate arrays (FPGAs).  Other processors may also be included for executing operations particular to the computing device 300.
[0036]       The display unit 304 may be any kind of device capable of displaying human-readable text and/or graphics.  The display unit 304 may, for example, display a user interface with which a user may perform searches for printing devices and/or execute commands in association with printing devices.  The display unit 304 may, for example, display search boxes, prompts, and/or search results.  Some example display units include a liquid crystal display (LCD), a light-emitting diode (LED) display, a plasma display, or a cathode ray tube (CRT), among other possible display technologies.  Regardless of the kind of display used, the display unit 304 is an output device that can display information and user interfaces of the present application. 
[0037]       The input unit 306 may be any kind of human interface device (HID) that receives input from a user and translates that input into computer-understandable information.  Some example input units include a keyboard, a mouse, a touchpad, and/or a touchscreen, among other possible input devices.  In some instances, the input unit 306 may refer to an on-screen keyboard or pointer device of a touchscreen.  A user may interact with input unit 306 to enter a search input and/or select a desired printing device with which to associate a command.  Regardless of the kind of input device used, the input unit 306 may provide an interface through which a user can interact with a printing device searching system, application, or program of the present application.
[0038]       The memory 308 may be a volatile memory, such as RAM.  The memory 308 may be used as a temporary storage location used by applications and/or programs of the computing device 300. 
[0039]       The network interface 310 may be a wired and/or wireless communication interface that allows the computing device to connect to and communicate over a network.  The network interface 310 may be utilized by applications and/or programs of the present application to retrieve information-such as PDI-from one or more printing devices.  The computing device 300 may also communicate with a server to access and modify a command database and/or printing device database stored on the server. 
[0040]       The microphone 312 may be a recording device capable of capturing sounds and/or a user’s voice.  The microphone 312 may capture audio segments of a user speaking one or more words.  Such recorded audio may be stored on the memory 308 and/or the data storage 316.  In some embodiments, audio segments recorded by the microphone 312 may be provided to the speech recognition unit 314 to be analyzed and transcribed.
[0041]       The speech recognition unit 314 may be any combination of software and/or hardware components that determines one or more words spoken by a user from an audio segment captured by the microphone 312.  The speech recognition unit 314 may employ various speech recognition techniques in order to transcribe a user’s speech into words.  The transcribed words may then be provided to the printing device maintenance application 318 and used as a search input.
[0042]       In some embodiments, the printing device maintenance application 318 utilizes the speech recognition unit to allow a user to perform speech-to-text search input.  The printing device maintenance application 318 may display a button or other graphical element that, when selected, activates the microphone 312 and begins recording the speech of a user.  The printing device maintenance application 318 may then employ the speech recognition unit 314 to identify words spoken by the user and transcribe them into a text string, which is entered into a search box as a search input.
[0043]       In some implementations, the speech recognition unit 314 may utilize a full dictionary when performing the transcription.  In other implementations, the speech recognition unit 314 may utilize a more narrowed specific dictionary that includes known commands, command names, and/or expected search conditions.  The speech recognition unit 314 may be configured to identify speech of a certain kind of language, or of multiple languages simultaneously.
[0044]       In some implementations, the speech recognition unit 314 may provide recorded speech to a web service that facilitates the transcription.  Thus, the speech recognition unit 314 may be connected to the network interface 310 to access such a web service over a wide area network, such as the Internet.  In other implementations, the speech recognition unit may be a specialized speech recognition tool designed to interpret speech using the above-described specific dictionary, which may not necessarily require network access or external services. 
[0045]       The data storage 316 may store thereon applications and/or programs that perform operations of the present application.  The applications and programs may include a collection of operations that perform a certain task.  Some examples kinds of data storage include read-only memory (ROM), flash memory, electrically erasable programmable read only memory (EEPROM), digital tape, a hard disk drive (HDD), and a solid-state drive (SSD).
[0046]       The printing device maintenance application 318 may perform operations for displaying a user interface, searching for printing devices, and executing commands in association with a printing device.  The printing device maintenance application 318 may be capable of executing commands on either the computing device or on a particular printing device.  For example, in response to an “Install Driver” command associated with a particular printing device being entered, the printing device maintenance application 318 may install a driver for that particular printing device onto the computing device (i.e. the install driver command is executed on the computing device).  As another example, in response to a “keyboard setting” command being entered, the type of on-screen keyboard displayed on an operation panel of a particular printing device may be changed (i.e. the keyboard setting command is executed on that particular printing device).
[0047]       The user interface of printing device maintenance application 318 may display information pertaining to one or more printing devices within a network.  The printing device maintenance application 318 may display a search box into which a search input may be entered.  The user interface displayed by printing device maintenance application 318 may update in response to a search input being entered and a search being run.  The printing device maintenance application 318 may also display prompts requesting subsequent input depending upon the particular search input that is entered.
[0048]       In some embodiments, the search box of printing device maintenance application 318 may be a “universal” search box.  For the purposes of this application, the “universal” search box is multi-functional, and may be capable of parsing and understanding natural language to identify search conditions and/or commands from the entered text.  In some embodiments, the universal search box may be “intelligent”; in other words, it may be capable of interpreting search inputs that contain extraneous words, spelling mistakes, or are otherwise imperfect search strings.
[0049]       Furthermore, the search box of the present application may implement logical Boolean operations that logically narrow search results using Boolean operators.  For instance, two search conditions “ppm > 60” and “duplex printing” combined with an “AND” represents a search input for printing devices that can both print faster than 60 pages per minute and are capable of duplex printing.  Such a logically narrowed search might be more efficient in finding a fast, full-featured printer.  As another example, two search conditions “toner < 5%” and “paper < 10%” combined with an “OR” represents a search input for printing devices that have either toner levels of less than 5% or paper levels of less than 10%.  Such a broadened search might be preferred for a serviceperson that wants to identify all printing devices that require immediate attention, without having to run multiple searches.
[0050]       In some instances, the printing device maintenance application 318 may identify a portion of the search input entered into the above-described search box as possibly being indicative of two or more commands.  This may occur if the printing device maintenance application 318 determines a portion of the search input as the command portion, then subsequently determines that the command portion is substantially similar to two or more commands.  In some implementations, the command portion may be considered “substantially similar” to a known command when it is compared to that known command and has an extent of similarity that exceeds a threshold similarity.  Such a comparison may utilize approximate string matching techniques or other kinds of quantifiable string comparison techniques.  Regardless of the particular implementation, the printing device maintenance application 318 may display a prompt including the substantially similar commands requesting selection of the intended command.
[0051]       In some embodiments, the printing device maintenance application 318 may display a search input history from which a previously-entered search input can be selected.  If a large number of searches have been previously input, the search input history displayed may be a small portion of the previously-entered search inputs (e.g. 3-10 of the most recently entered search inputs) may be displayed.  The search input history may be displayed, for example, beneath the search box.  If a previously-entered search input is selected, the search box may be populated with that search input, which can then be modified by a user.  In alternative implementations, selecting a previously-entered search input may cause the printing device maintenance application 318 to perform the search using that search input.  An example representation of displayed previously-entered search inputs is depicted in Figure 7, which is described in more detail below.
[0052]       The printing device information database creating program 320 may perform operations for generating a printing device information (PDI) database.  In some instances, when no PDI database exists, the PDI database creating program 320 may execute a number of initialization operations in order to create a PDI database.  The initialization operations may include operations depicted in Figure 8.  Generally, the initialization operations may involve requesting PDI from one or more printing devices, responsively receiving PDI for those printing devices, and then generating a table with the received PDI.  An example PDI is depicted in Figure 6.
[0053]       The PDI database creating program 320 may also include operations for updating the PDI database.  The PDI database creating program 320 may receive PDI from a printing device that already exists within the PDI database.  In some instances, the PDI database creating program 320 may replace portions of the PDI in the database associated with that particular printing device in order to update its information.  For example, PDI might include therein information about the toner level of the particular printing device.  Over time, that toner level may change; in such instances, the PDI database creating program 320 may retrieve the latest toner level for a particular printing device and update that toner level within the PDI database.  A PDI database update may also involve retrieving the latest toner levels for each color of toner, paper levels, and IP address, among other information about the state of the printing device.
[0054]       In some embodiments, the PDI database may be stored on the computing device 300.  In other embodiments, the PDI database is stored on a server, and the computing device 300 requests a copy of that PDI database.  In additional embodiments, the PDI database is stored on a server, and the computing device 300 transmits query requests to the server to retrieve information from the PDI database and/or update entries within the PDI database.
[0055]       In some implementations, the functionality of the PDI database creating program 320 may be utilized by or executed in conjunction with the printing device maintenance application 318.  For example, the printing device maintenance application 318 may provide input options (via a designated button or by entering a certain command into the universal search box) to create and/or update the PDI database. 
[0056]       The command list database creating program 322 may perform operations for generating and/or updating a command list database.  A command list database may store information about a set of commands that can be executed on either the computing device or on a particular printing device.  An example command list database is depicted in Figure 5.
[0057]       In some implementations, the command list database contains a series of entries.  Each entry may contain a unique command ID, the static command name (i.e. a “hard-coded” name designated by, for example, a programmer) and user-assigned command names in one or more languages.  Each entry may also indicate the device on which the associated command can be executed.  For instance, an entry of “Install Driver” may include a flag, bit, or kind of data indicating that the “install_driver” command is executable on a computing device.  Additionally, such a command like “install_driver” may be executed in association with a particular printing device; in this example, the driver to install is the driver for the particular printing device.  Thus, a given command may either be executed on the computing device in association with a printing device, or on a particular printing device itself.  A given entry may include information stored therein indicating the manner in which the associated command may be executed. 
[0058]       The command list database creating program 322 may also be updated in response to a user input that specifies setting or replacing a user-assigned command name.  As one example, a user may designate a “restart” command that cycles the power on a printing device as “Reboot.”  Alternatively, a different user may designate the “restart” command as “cycle power.”  In yet another example, a user that speaks Japanese may prefer to assign the “restart” command name as “Saikidoo.”  The command list database creating program 322 may store multiple user-assigned names for each command in any number of languages.
[0059]       The command list database may, in some embodiments, be associated with a particular user.  Thus, any user-assigned commands names may be unique to that particular user.  This may be beneficial if different users prefer different terminologies, or if different users prefer different languages. 
[0060]       In some embodiments, the command list database may be stored on the computing device 300.  In other embodiments, the command list database is stored on a server, and the computing device 300 requests a copy of that command list database.  In additional embodiments, the command list database is stored on a server, and the computing device 300 transmits query requests to the server to retrieve information from the command list database and/or update entries within the command list database.
[0061]       In some implementations, the functionality of the command list database creating program 322 may be utilized by or executed in conjunction with the printing device maintenance application 318.  For example, the printing device maintenance application 318 may provide input options (via a designated button or by entering a certain command into the universal search box) to create and/or update the command list database.
IV.   Example Systems
[0062]       Figure 4 is a schematic block diagram of a system 400, according to an example embodiment.  The system 400 is an example system that includes a network 402 that communicatively connects computing device 404, server 406, and a group of printing devices 408.  The group of printing devices 408 may include any combination of printing devices, including multi-function peripheral (MFP) 410. 
[0063]       The network 402 may be a local area network, a wide area network, or a combination thereof.  In some embodiments, the computing device 404 and the printing devices 408 may all be connected to the same local area network.  In another embodiment, the computing device 404 is a remote computing device that connects to one or more peripheral devices 408 over a wide area network, such as the Internet.  It should be understood that the network 402 may be any type of network communication medium through which the devices within system 400 may communicate, transmit, and/or receive information.
[0064]       The computing device 404 may be any computing device capable of sending information to one or more of the printing devices 408 and processing information received from one or more of the peripheral devices 408.  The computing device 404 may include one or more units of computing device 300.  The computing device 404 may perform various operations of the printing device searching and management techniques described herein.  In some implementations, the computing device 404 includes an input device into which a search input may be entered and a display device on which search results may be displayed.  Although the computing device 404 is depicted as a desktop computer, the computing device 404 may be a server, a laptop computer, a tablet, a smart phone, or another mobile computing device.
[0065]       The server 406 may be any computing device capable of storing information, such as a command list database and a PDI database.  The server 406 may receive requests for information (i.e. queries) stored thereon from the computing device 404 and transmit a response back to the computing device 404.  The server 406 may be connected to network 402 and accessible by the computing device 404.  
[0066]       In some embodiments, the computing device 404 running the printing device maintenance application 318 may request information from the server 406.  Such a request or query may include text or other information with which to search one or more databases on server 406.  In some instances, this text may be a portion of an entered search input, a corrected version of an imperfect search input, or tokenized or encoded information representative of search conditions or commands.  
[0067]       For instance, the server 406 may be queried by computing device 404 with “set keyboard” and request a command name and/or command ID associated with “set keyboard.”  The server 406-which, for this example, has stored thereon the command database 500 illustrated in Figure 5-may locate the search entry for command ID “0000” with the command name “keyboard_setting”.  This command name may, for example, be associated with a method or function name of the printing device maintenance application 318.  The server 406 may then responsively transmit that command ID and/or command name back to the computing device 404.
[0068]       In some embodiments, the server 406 may store a history of entered search inputs.  Upon completion of a search, the computing device 404 may transmit the search input to server 406 to add that search input to the stored history of search inputs (i.e. list of previously-entered search inputs).  During operation, the computing device 404 running the printing device maintenance application 318 may allow a user to view the search input history and possibly select one of the previously-entered search inputs to run again.
[0069]       The group of printing devices 408 may include any combination of printing devices.  Figure 4 illustrates the group printing devices 408 as including MFP 410, printing device 412, and printing device 414.  Any variety of printing devices and MFPs may be included within the group of printing devices 408.  In some cases, multiple printing devices of the same model may exist within the group of printing devices 408.  In some instances, the group of printing devices 408 may be associated with a company, a particular office of that company, or a floor within such an office, to name a few examples.  In other instances, the group of printing devices 408 may be all printing devices of a particular model in operation.  Any other combination of devices may be included within the group of printing devices 408.
[0070]       The MFP 410 may be any kind of multi-function peripheral.  The MFP, in some implementations, may be similar to or the same as image forming apparatus 100.  In some embodiments, the MFP 410 may have operation panel that includes a display device and/or an input device.  An input device may be any device into which a search input may be entered, such as a physical keyboard, a virtual keyboard, a mouse, or a touch-screen digitizer.  A display device may be any device on which search results may be displayed, such as a liquid crystal display (LCD).
[0071]       It should be understood that the system 400 is an example system that is provided for explanatory purposes.  Any number of mobile devices, computers, laptops, or other mobile devices may be present and connected to the system 400 in a variety of ways.
V.    Example Command Database
[0072]       Figure 5 is a representation of an example command database 500, according to an example embodiment.  The command database 500 depicts three command entries: “keyboard_setting,” “install_driver,” and “restart.”  In some embodiments, these commands represent method or function names that execute a certain operation within the printing device maintenance application.  Each of these commands may be associated with an ID number.  
[0073]       Each command entry may have one or more names assigned thereto.  For example, the “keyboard_setting” command may have an assigned English name of “Set Keyboard” and an assigned Japanese name of “Kiiboodo settei”.  During operation, a search input may include one of these assigned names, indicating a user wishes to perform a certain command.  However, instead of requiring a user to memorize programmed function or method names of the printing device maintenance application 318, a user may enter a more natural search input in the language that they are most comfortable with.  Accordingly, when a user enters one of the assigned command names, the printing device maintenance application 318 may query the command database 500 with that name to search for the corresponding command.  Once a matching command is found, the command and/or the command ID may be provided to the printing device maintenance application 318, which may utilize either the command or the command ID to invoke the corresponding method or function.   
[0074]       Entry of certain commands may invoke the printing device maintenance application 318 to prompt a user for additional information.  For example, executing command “keyboard_setting” may cause a prompt to display that requests whether the user wishes to either change the keyboard layout on a printing device’s operation panel or to change the keyboard language on the printing device’s operation panel.  The prompt may include two or more selectable buttons corresponding to each option.  Alternatively, a user may enter in text indicative of the user’s desired option.
[0075]       Assigned names of a given entry may be changed or overwritten by a user.  In some instances, a search input entered into a search box may represent a user requesting modification of one of the entries.  As one possible example, a search input of “replace Install Driver with Load Driver” may replace the assigned English name of entry ID “0001” from “Install Driver” to “Load Driver.”  Such an operation may apply to all users accessing the command database 500, or only to the particular user performing the modification operation.  In some embodiments, the command list database may be displayed graphically, and a user may edit assigned command names manually.
VI.   Example Printer Device Information
[0076]       Figure 6 is a representation of an example printing device information (PDI) 600, according to an example embodiment.  PDI 600 includes four fields: the name, IP address, print speed, and toner level.  The PDI 600 may be associated with a printing device, such as printing device 200.  Each of these fields may be herein referred to as “characteristics,” and the printer-specific information associated with each characteristic may be herein referred to the “value” of that characteristic.
[0077]       In the example shown in Figure 6, the name of the printing device is “Ground Floor South,” which may indicate that it is located on the ground floor and on the south side of an office.  The name may be assigned by a user or an administrator to describe the printing device.
[0078]       The IP address may be IP address assigned to the printing device within the local network that can be utilized by, for example, the printing device maintenance application 318 in order to establish a network connection between a computing device and the printing device with that IP address.  After the network connection has been established, the computing device may transmit commands and other information for executing various actions on the printing device.
[0079]       The print speed may be a hard-coded rate at which the printing device is capable of printing pages.  In this example, “30 ppm” indicates that the printing device is capable of printing at a rate of thirty pages per minute.  Note that, in some implementations, the PDI may not store that information as a text string, but instead as an integer (where “ppm” units are understood).
[0080]       The toner level may represent a percentage of toner that is remaining in the printing device.  In this example, “15 %” indicates that fifteen percent of the toner is remaining.  This toner level may be updated periodically and/or in response to receiving a request for PDI, to ensure that the toner level is current.  Note that other kinds of printing materials, such as ink, may be included within the PDI depending upon the particular printing device.
[0081]       It should be understood that the PDI 600 shown in Figure 6 is merely an example representation of PDI with example fields and information.  PDI as described in the present application may include a variety of other kinds of information, such as toner levels for each color of toner, printing device model information, a serial number, MAC address, and/or information about the capabilities of the printing device. 
VII.  Example Search Box
[0082]       Figure 7 is a representation 700 of an example search box 704, according to an example embodiment.  A user interface 702 for the printing device maintenance application is shown in Figure 7.  The user interface 702 includes a search box 704.  A partially entered search input 706 is shown in the search box 704.  In the example illustration of Figure 7, the printing device maintenance application is displaying previously-entered search inputs 708.
[0083]       In an example operation, a user may enter in the search input 706 “Find printers with” using a keyboard or other input device, which is displayed within the search box 704.  Upon receiving an entry of the partial search input 706, the printing device maintenance application may, based on a stored search input history, display previously-entered search inputs 708.  As shown in Figure 7, the previously-entered search inputs 708 may, in some embodiments, be previous search inputs that contain the partially entered search input 706.  In this example, the previously-entered search inputs 708 that are displayed all begin with “Find printers with” and also include a search condition and/or command.  For example, one of the previously-entered search inputs 708 is “Find printers with ppm > 55”, where “ppm > 55” is a search condition indicating that the search is for printers capable of printing at a rate faster than 55 pages-per-minute.  As another example, the previously-entered search input “Find printers with IP 123.45.67.89 and restart” instructs the printing device maintenance application to find the printer with the IP address of “123.45.67.89”-such as the printer represented by PDI 600-and cause that particular printer to restart.  A user may select one of the previously-entered search inputs 708 to be executed by the printing device maintenance application.
[0084]       In some embodiments, a computing device running the printing device maintenance application may store search inputs after they have been run.  These search inputs may be logged on a table or database, which may be stored on a storage device of the computing device, for example.  The printing device maintenance application may use these stored previously-entered search inputs as a basis for displaying previously-entered search inputs 708.
[0085]       In some cases, no search input 706 may be entered.  In these cases, the previously-entered search inputs 708 may be the most recently entered search inputs.  In some implementations, the previously-entered search inputs 708 may be the most frequently entered search inputs.  It should be understood that any combination of logic, filtering, and analysis may be performed in order to determine which stored search inputs should be displayed.
[0086]       The search box 704 may, in some embodiments, provide suggested completions of partially entered searches, similarly to the example depicted in Figure 7.  Such example embodiments may be referred to as “auto-completion.”  The previously-entered search inputs 708 may automatically appear upon entering of partial search input 706.  In some implementations, a button or other graphical control element may be provided that, when pressed or otherwise activated, causes the previously-entered search inputs 708 to be displayed.
[0087]       It should be understood that the printing device maintenance application user interface 702, search box 704, partial search input 706, and previously-entered search inputs 708 depicted in Figure 7 are example graphical depictions provided for explanatory purposes.  The relative sizes, shapes, fonts, and other graphical properties of the user interface 702 may vary depending upon the particular implementation.
VIII. Example Methods
[0088]       Figure 8 is a data flow diagram 800 illustrating an example method, according to an example embodiment.  The data flow diagram 800 depicts information passing among the computing device 810, printing device(s) 820, and server 830.  More specifically, the data flow diagram 800 depicts a process through printing device information (PDI) is retrieved and stored.  Note that the data flow diagram 800 is merely depicts an example of data flow among the devices in the system; in various implementations, fewer or additional devices may be present and fewer or additional steps may be performed different from those depicted in Figure 8 to accomplish the print data retrieval disclosed in the present application.
[0089]       Note that computing device 810 may be similar to or the same as computing device 300.  Additionally, printing device(s) 820 may include one or more units from image forming apparatus 100 and/or printing device 200.  For the purposes of the following explanation, printing device(s) 820 includes two or more printing devices, and is referred to in a plural form.  It should be understood that a single PDI may be passed through the system as well. 
[0090]       First, the computing device 810 generates requests for PDI.  The requests may be a message (e.g. an SNMP message, WSDL message, etc.) indicating that the computing device is requesting a copy of the PDI stored on each respective printing device of the printing devices 820.
[0091]       Then, the computing device 810 sends the requests for PDI the printing devices 820.  The requests may be sent over a local area network, a wide area network, or a combination thereof. 
[0092]       Then, in response to receiving the requests for PDI from the computing device 810, the printing devices 820 send responses with PDI back to the computing device 810.  Each printing device may have local storage on which its PDI is stored.  The response sent by each printing device may include a copy of such a stored PDI. 
[0093]       Then, in some embodiments, the PDI responses are decoded.  The PDI may be encoded-that is, represented by a stream of numbers or bits-which require decoding in order to understand the information being transmitted.  The computing device 810 may be aware of a messaging scheme and may utilize, for example, a library file that describes the expected message format.  The computing device may use this information in order to decode the PDI.  In other embodiments, the PDI is encrypted using a passcode or a key, and the computing device decrypts the encrypted PDI using the same passcode or corresponding key. 
[0094]       Then, the computing device 810 generates a printing device database.  This operation may involve assembling the received (and possibly decoded) PDI responses into a PDI table or database.  Each response may be used to create an entry in the database, and may also be assigned a unique identifier.
[0095]       Then, the computing device 810 sends the printing device database to the server 830.  The server may store a copy of this printing device database on a non-transitory storage medium.
[0096]       Upon receiving the printing device database from the computing device 810, the server 830 stores a copy of that printing device database.  The computing device 810 may query information from the stored printing device database thereafter.
[0097]       It should be understood that, although the operations in Figure 8 appear to be performed in a particular order, the steps may be performed in a different order and/or certain steps may be performed simultaneously with other steps.  The order of the operations depicted in Figure 8 are provided for explanatory purposes. 
[0098]       Figure 9 is a flowchart illustrating a method 900, according to an example embodiment.  The method 900 may be one example set of operations that collectively performs printing device searching and management of the present application.   Operations of method 900 may be performed on one or more devices in the system 400 shown in Figure 4, such as computing device 404.
[0099]       At step 902, the method 900 involves displaying a search box.  As described above, the search box may be a universal search box into which search inputs may be input.  The search box may be displayed as a rectangular graphical user interface element.  In some embodiments, the search box may be displayed in response to receiving a keystroke and/or a combination of keystrokes from an input device (e.g. “Control + f” from a physical or on-screen keyboard, a functional key such as “F2”, or any combination of function keys, normal keys, and modifier keys).
[00100]      At step 904, the method 900 involves receiving a search input comprising a plurality of characters.  The search input may be entered by a user typing into a physical or virtual keyboard, for example.
[00101]      At step 906, the method 900 involves determining a search condition based on a first portion of the plurality of characters.  The search condition may represent a criteria or criterion with which to search for printing devices within a printing device database.  Step 906 may involve determining which characters correspond to the search condition, then determining the intended search condition from that portion of characters.  Certain keywords or phrases may signal the start or end of a search condition.  Identifying the portion of the search input corresponding to the search condition may be necessary when another portion of the search input corresponds to a command.  For example, a search input of “install driver for printers with color” may comprise two portions: “install driver,” which is the command portion; and “printers with color,” which is the search condition.  Note that the search condition in this example is signaled by the keyword “for.”  As another example, a search input of “reboot printers with duplex printing” signals the search condition “duplex printing” with the keyword “with.”  Other example keywords that may indicate a following search condition include “for,” “with,” “having,” and “that,” among other possible keyword signals.  Furthermore, a search condition might be identified by comparator operators, such as “=”, “<”, “>”, or any combination thereof.
[00102]      In some instances, the search input does not include a command portion.  This may be the case when a user wishes to locate one or more printing devices, but not necessarily perform an action in association with those printing devices.  In these instances, step 906 might not involve separating the search input into two or more portions.
[00103]      In some embodiments, the first portion of the search input may contain spelling mistakes or other imperfections such that it does not exactly match any known search criteria.  In these cases, a “fuzzy” search (i.e. approximate string matching) techniques may be employed in order to identify the closest known search criterion.  Such techniques may determine an extent of similarity between the first portion of the search input and one or more known search criteria.  In some implementations, if this extent of similarity between the first portion and a known search criterion exceeds a threshold extent of similarity, the known criterion may be used as the search condition for the remainder of method 900.  
[00104]      In some cases, two or more known criteria may meet or exceed this threshold extent of similarity with the first portion of the search input.  In such scenarios, a prompt may be displayed requesting the user to select the intended search condition. 
[00105]      At step 908, the method 900 involves determining a command based on a second portion of the plurality of characters.  Step 908 may involve determining the command portion (i.e. the second portion) as the remaining portion of the search input that is not the search condition portion.  In some implementations, the command portion might also be signaled by a keyword or phrase.  Some example keywords that may be indicative a following command include “execute” and “perform,” among other possible keywords.  Alternatively, the command portion may be identified as the portion of the search input that precedes a search condition keyword.  Note that the first portion of the plurality of characters representing the search condition and the second portion of the plurality of characters representing the command may be in any order.  In some cases, the search condition may come before the command in a given search input.  In other cases, the command may come before the search condition in a different search input.  Furthermore, when multiple commands and/or search conditions are present, they may appear in any order, depending upon the particular search input.
[00106]      At step 910, the method 900 involves determining whether at least one printing device matches the search condition.  In some cases, a search condition may not correspond to any printing device within a printing device database.  For example, a search condition of “ppm > 300” may not correspond to any printing devices in a database because no entries exist within the database associated with a printing device capable of printing greater than three-hundred pages per minute.  If no printing devices are found that meet the criterion or criteria specified by the search condition, the method 900 returns to step 904 to receive a new search input.  If at least one printing device is found, the method 900 moves on to step 912.
[00107]      Similarly to step 908 above, the second portion of the search input may contain spelling mistakes or other errors such that the second portion does not exactly match a known command.  The known commands may be the commands and their assigned names from a command list database.  A computing device might employ “fuzzy” search techniques similarly to those described above in step 908 to determine a command that closely matches the second portion of the search input.  If the extent of similarity between the second portion of the search input and a command exceeds a threshold extent of similarity, the matching command may be utilized for the remainder of method 900.  In some cases, if two or more commands “match” the second portion of the search input, a prompt may be displayed requesting the user to select the intended command.
[00108]      At step 912, the method 900 involves identifying one or more printing devices that meet a criterion specified by the search condition.  Step 912 may involve querying a printing device database for the printing devices with the search condition.  The printing device database may return one or more printing devices that satisfy the search condition criterion or criteria.
[00109]      At step 914, the method 900 involves executing the determined command in association with a particular printing device.  The determined command specifies a device on which the command can be executed.  For example, an “install_driver” command specifies execution on a computing device, since the computing device utilizes the driver in order to communicate with the printing device.  Note that the command “install_driver” is executed on the computing device in association with a particular printing device; that is, the driver installed on the computing device is a driver for that particular printing device.  
[00110]      In some cases, a command, such as “keyboard_setting,” specifies execution on a printing device, since the keyboard settings are associated with the operation panel of a printing device.  In these cases, the command “keyboard_setting” is executed on a particular printing device.  In some implementations, this involves transmitting the command to that particular printing device instructing it to execute the “keyboard_setting” command with the desired settings.
[00111]      It should be understood that the examples described with respect to Figure 8 or Figure 9 are merely example operations.  Other operations may also be performed without departing from the scope of this application.
IX.   Variations
[00112]      In some embodiments, a command list database may store one or more audio segments of a user-assigned voice command.  During operation, the microphone 312 may capture a user speaking a command, and a computing device may subsequently compare the captured audio segment to the stored audio segment in the command list database.  Such an audio comparison may produce a value indicative of the degree of similarity between the recently-captured spoken command and the stored spoken command.  If that value exceeds a threshold degree of similarity, the computing device may identify the recently-captured spoken command as the command associated with the stored spoken command.
X.    Conclusion
[00113]      The above detailed description describes various features and functions of the disclosed systems, devices, and methods with reference to the accompanying figures.  While various aspects and embodiments have been disclosed herein, other aspects and embodiments will be apparent.  The various aspects and embodiments disclosed herein are for purposes of illustration and are not intended to be limiting, with the true scope being indicated by the following claims.
REFFERENCE SIGNS LIST
[00114]         
100    Image Forming Apparatus
102    Processor(s)
104    Data Storage
106    Instructions
108    Removable Storage Interface
110    Network Interface
112    Printer
114    Scanner
116    Facsimile Unit
118    Control Unit
120    Operation Panel
122    Display Device
124    Input Device
What is claimed is:
1.     A computing device comprising:
at least one processor;
memory; and
program instructions, stored in the memory, that upon execution by the at least one processor cause the computing device to perform operations including:
causing a display device to display a search prompt into which a search input can be entered;
receiving the search input comprising a plurality of characters;
determining a search condition based on a first portion of the plurality of characters, wherein a given search condition is indicative of a criterion for a characteristic of a given printing device;
determining a command based on a second portion of the plurality of characters, wherein a given command is indicative of an executable action, wherein the given command specifies a given device on which to execute the action, and wherein the given command is executable in association with a printing device;
determining whether at least one printing device of a plurality of printing devices meets the criterion specified by the search condition;
based on determining that at least one printing device meets the criterion, identifying one or more printing devices that meet the criterion specified by the search condition; and
executing the determined command in association with at least one particular printing device from among the identified one or more printing devices on a device specified by the determined command.
2.     The computing device of claim 1, wherein
determining the command comprises:
determining that the second portion of the plurality of characters matches a name of the command in a command database, wherein the command database comprises a plurality of entries, and wherein a particular entry is associated with a particular command and includes a name of the particular command.
3.     The computing device of claim 2, wherein
the program instructions cause the computing device to perform operations further including:
receiving a name input indicative of a name representative of the command; and
designating the name input as the name of the command in the command database.
4.     The computing device of claim 2 or 3, wherein
the name of the particular command is in a first language, and wherein the particular entry further includes the name of the particular command name in a second language, and wherein determining the command further comprises:
determining that the second portion of the plurality of characters matches at least one of (i) the name of the command in the first language and (ii) the name of the command in the second language.
5.     The computing device of any of claims 2 to 4, wherein
the second portion of the plurality of characters does not match any names of commands in the command database, and wherein the method further comprises:
determining an extent of similarity between the second portion of the plurality of characters and the name of the command in the command database; and
based on the extent of similarity exceeding a threshold extent of similarity, determining that the second portion of the plurality of characters corresponds to the command.
6.     The computing device of claim 5, wherein
the name of the command is a name of the first command, wherein the extent of similarity is a first extent of similarity, and wherein the method further comprises:
determining that a second extent of similarity between the second portion of the plurality of characters and a name of a second command in the command database exceeds the threshold extent of similarity; and
based on the first extent of similarity and the second extent of similarity both exceeding the threshold extent of similarity, causing a display unit to display a prompt for selecting one of the first command and the second command.
7.     The computing device of any of claims 1 to 6, wherein
identifying the one or more printing devices comprises:
querying a printing device database for printing devices that meet the criterion for the characteristic specified by the determined search condition, wherein the printing device database comprises a plurality of entries corresponding to the plurality of printing devices, and wherein a given entry includes (i) an identifier of a certain printing device and (ii) a value of the characteristic of the certain printing device; and
in response to querying the printing device database, receiving one or more identifiers corresponding to the one or more printing devices.
8.     The computing device of any of claims 1 to 7, wherein
the search condition is a first search condition, wherein the one or more printing devices are one or more first printing devices, and wherein the method further comprises:
determining a second search condition based on a third portion of the plurality of characters;
determining a logical operator based on a fourth portion of the plurality of characters;
identifying, based on the second search condition, one or more second printing devices that correspond to the characteristic specified by the second search condition; and
determining one or more third printing devices by applying the logical operator to the one or more first printing devices and the one or more second printing devices.
9.     The computing device of any of claims 1 to 8, wherein
the program instructions cause the computing device to perform operations further including, based on determining that no printing devices of the plurality of printing devices meet the criterion, providing a prompt for a new search input.
10.    The computing device of any of claims 1 to 9, wherein
the program instructions cause the computing device to perform operations further including, based on the determined command specifying the computing device, executing the determined command in association with the at least one particular printing device on the computing device.
11.    The computing device of any of claims 1 to 10, wherein
the program instructions cause the computing device to perform operations including, based on the determined command specifying the at least one particular printing device, executing the determined command on the at least one particular printing device.
12.    A program causing a computing device to perform operations comprising:
causing a display device to display a search prompt into which a search input can be entered;
receiving, at a computing device, the search input comprising a plurality of characters;
determining a search condition based on a first portion of the plurality of characters, wherein a given search condition is indicative of a criterion for a characteristic of a given printing device;
determining a command based on a second portion of the plurality of characters, wherein a given command is indicative of an executable action, wherein the given command specifies a given device on which to execute the action, and wherein the given command is executable in association with a printing device;
determining whether at least one printing device of a plurality of printing devices meets the criterion specified by the search condition;
based on determining that at least one printing device meets the criterion, identifying one or more printing devices that meet the criterion specified by the search condition; and
executing the determined command in association with at least one particular printing device from among the identified one or more printing devices on a device specified by the determined command.
13.    The program of claim 12, wherein
causing the display device to display the search prompt is performed by the computing device in response to receiving an input keystroke from a keyboard.
14.    The program of claim 12 or 13, wherein
the search input is a particular search input, and wherein the operations further comprise:
receiving a search input history comprising a plurality of search inputs, wherein the particular search input is among the plurality of search inputs;
causing a display unit to display a portion of the plurality of search inputs including the particular search input; and
receiving a selection of the particular search input.
15.    A system comprising a plurality of printing devices and a computing device, wherein the computing device comprises a display device and is configured to execute instructions, and wherein the instructions comprise:
sending a plurality of requests for printing device information (PDI) to the plurality of printing devices, wherein a given PDI includes at least (i) a name of a given printing device and (ii) a value of a characteristic of the given printing device;
receiving, from the plurality of printing devices, a respective plurality of PDIs;
generating a printing device database based on the received plurality of PDIs;
receiving a search condition indicative of a criterion for the characteristic of the given printing device;
determining whether at least one printing device of the plurality of printing devices meets the criterion specified by the search condition;
based on determining that at least one printing device meets the criterion, identifying one or more printing devices that meet the criterion specified by the search condition; and
causing the display device to display the names of the identified one or more printing devices.
16.    The system of claim 15, wherein
the received plurality of PDIs are encoded, and wherein the instructions further comprise decoding the encoded plurality of PDIs.
17.    The system of claim 15 or 16, wherein the instructions further comprise:
receiving a particular PDI from a particular printing device; and
based on determining that the particular PDI does not exist in the printing device database, adding the particular PDI to the printing device database.
18.    The system of any of claims 15 to 17, wherein the instructions further comprise:
receiving a particular PDI from a particular printing device; and
based on determining that the particular PDI exists in the printing device database, updating the particular PDI to the printing device database.
19.    The system of any of claims 15 to 18, wherein
the given PDI further includes (iii) an IP address of the given printing device, and wherein the instructions further comprise:
receiving a selection of a particular printing device from the identified one or more printing devices; and
establishing a network connection between the computing device and the particular printing device based on the IP address of the particular printing device.
20.    The system of claim 19, wherein the instructions further comprise:
transmitting, via the established network connection, a command to the particular printing device, wherein the command is indicative of an action that can be performed on the particular printing device.
1.  Abstract
PROBLEM TO BE SOLVED
To provide a technique for searching and management of printing device.
2.  SOLUTION
The present disclosure is directed to a printing device searching and management system and method.  The method involves receiving a search input comprising a plurality of characters.  The method also involves determining a search condition based on a first portion of the plurality of characters.  The method further involves determining a command based on a second portion of the plurality of characters.  Additionally, the method involves determining whether at least one printing device of the plurality of printing devices meets a criterion specified by the search condition.  If at least one printing device meets the criterion, the method involves identifying one or more printing devices that meet the criterion specified by the search condition.  Further, the method involves executing the determined command in association with at least one particular printing device from among the identified one or more printing devices on a device specified by the determined command.
3.        Representative Drawing: Fig. 1
2016181258.tif 000012
2016181258.tif 000013
2016181258.tif 000014
2016181258.tif 000015
2016181258.tif 000016
2016181258.tif 000017
2016181258.tif 000018
2016181258.tif 000019
2016181258.tif 000020