(57)【特許請求の範囲】
【請求項１】
印刷対象情報と第１の印刷パラメータに対する制約条件とを含む情報を受信する受信手段と、
受信した前記印刷対象情報と第２の印刷パラメータとに基づく印刷結果のシミュレートを、第２の印刷パラメータを評価の最も高い値から順次低下させながら繰り返し実行するシミュレート手段と、
前記シミュレート手段により繰り返し実行されるシミュレートの結果のそれぞれが前記第１の印刷パラメータに対する制約条件を満たすかを判定する判定手段と、
前記シミュレートの結果が前記制約条件を満たすと初めて判定された際の第２の印刷パラメータの値を設定する設定手段と、
該設定手段により設定された前記第２の印刷パラメータの値に基づいて、受信した前記印刷対象情報を印刷する印刷手段とを有することを特徴とする印刷装置。
【請求項２】
前記第２の印刷パラメータは、前記受信手段から受信した情報に含まれていない種類の印刷パラメータであることを特徴とする請求項１に記載の印刷装置。
【請求項３】
前記受信手段から受信した情報に前記第２の印刷パラメータの値が含まれており、前記シミュレート手段は、当該受信した第２の印刷パラメータの値とは異なる値について前記シミュレートを繰り返し実行することを特徴とする請求項１に記載の印刷装置。
【請求項４】
印刷処理のスケジューリングを行なうスケジューリング手段を具え、該スケジューリング手段により決定された印刷スケジュールに基づいて、前記シミュレート手段が印刷結果をシミュレートすることを特徴とする請求項１に記載の印刷装置。
【請求項５】
前記印刷手段の状況を認識する状況認識手段を具え、該状況認識手段により認識された印刷手段の状況によって、前記シミュレート手段が印刷結果をシミュレートすることを特徴とする請求項１に記載の印刷装置。
【請求項６】
前記印刷手段は複数存在し、前記状況認識手段が、当該複数の印刷手段の状況を認識し、認識結果に基づいて、印刷を実行すべき印刷手段を選択することを特徴とする請求項５に記載の印刷装置。
【請求項７】
印刷対象情報と第１の印刷パラメータに対する制約条件とを含む情報を受信する受信工程と、
受信した前記印刷対象情報と第２の印刷パラメータとに基づく印刷結果のシミュレートを、第２の印刷パラメータを評価の最も高い値から順次低下させながら繰り返し実行するシミュレート工程と、
前記シミュレート工程において繰り返し実行されるシミュレートの結果のそれぞれが前記第１の印刷パラメータに対する制約条件を満たすかを判定する判定工程と、
前記シミュレート結果が前記制約条件を満たすと初めて判定された際の第２の印刷パラメータの値を設定する設定工程と、
該設定工程により設定された前記第２の印刷パラメータの値に基づいて、受信した前記印刷対象情報を印刷する印刷工程とを有することを特徴とする印刷方法。
【請求項８】
前記第２の印刷パラメータは、前記受信工程で受信した情報に含まれていない種類の印刷パラメータであることを特徴とする請求項７に記載の印刷方法。
【請求項９】
前記受信工程で受信した情報に前記第２の印刷パラメータの値が含まれており、前記シミュレート工程では、当該受信した第２の印刷パラメータの値とは異なる値について前記シミュレートを繰り返し実行することを特徴とする請求項７に記載の印刷方法。
【請求項１０】
印刷処理のスケジューリングを行なうスケジューリング工程を具え、該スケジューリング工程により決定された印刷スケジュールに基づいて、前記シミュレート工程で印刷結果をシミュレートすることを特徴とする請求項７に記載の印刷方法。
【請求項１１】
前記印刷工程を行なう印刷部の状況を認識する状況認識工程を具え、該状況認識工程により認識された前記印刷部の状況によって、前記シミュレート工程で印刷結果をシミュレートすることを特徴とする請求項７に記載の印刷方法。
【請求項１２】
前記状況認識工程では、複数の印刷部の状況を認識し、認識結果に基づいて、印刷を実行すべき印刷部を選択することを特徴とする請求項１１に記載の印刷方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、印刷装置及びその方法に関するものである。
【０００２】
【従来の技術】
従来の印刷装置においては、用紙サイズや印刷部数、印刷速度や印字品質など、種々の印刷パラメータの設定を変更することによって、それぞれの目的に応じた印刷を行なうことができるようになってきている。
【０００３】
また、ネットワークを介して、複数のユーザがプリンタを共有することが行われている。
【０００４】
【発明が解決しようとする課題】
しかしながら、印刷パラメータの決定要因には、緊急性、経済性、印字品質など、場合によっては相反する要素もあり、設定すべきパラメータも多数になってきており、一般ユーザが適切なパラメータを設定するのは、困難になってきている。また、適切なパラメータの値がわかるとしても、それを１つずつ設定するのは、操作が煩雑である。また、デフォルト値を用いれば、複雑な設定操作を必要としないが、個々の文書にとって、最適なパラメータを設定することはできない。
【０００５】
また、複数のユーザが１台のプリンタを共有する場合、自分の出力した文書と他のユーザの出力した文書とが混じってしまうので、例えば、２人がそれぞれ複数の文書を出力した場合には、出力結果の仕分けを行なう必要があった。また、出力トレイに文書が残っている場合に、誰が出力したものかは内容を調べなければならなかった。
【０００６】
【課題を解決するための手段】
上記課題を解決するために、本発明によれば、印刷装置に、印刷対象情報と第１の印刷パラメータに対する制約条件とを含む情報を受信する受信手段と、受信した前記印刷対象情報と第２の印刷パラメータとに基づく印刷結果のシミュレートを、第２の印刷パラメータを評価の最も高い値から順次低下させながら繰り返し実行するシミュレート手段と、前記シミュレート手段により繰り返し実行されるシミュレートの結果のそれぞれが前記第１の印刷パラメータに対する制約条件を満たすかを判定する判定手段と、前記シミュレートの結果が前記制約条件を満たすと初めて判定された際の第２の印刷パラメータの値を設定する設定手段と、該設定手段により設定された前記第２の印刷パラメータの値に基づいて、受信した前記印刷対象情報を印刷する印刷手段とを備える。
【０００８】
また、他の態様によれば、印刷方法に、印刷対象情報と第１の印刷パラメータに対する制約条件とを含む情報を受信する受信工程と、受信した前記印刷対象情報と第２の印刷パラメータとに基づく印刷結果のシミュレートを、第２の印刷パラメータを評価の最も高い値から順次低下させながら繰り返し実行するシミュレート工程と、前記シミュレート工程において繰り返し実行されるシミュレートの結果のそれぞれが前記第１の印刷パラメータに対する制約条件を満たすかを判定する判定工程と、前記シミュレート結果が前記制約条件を満たすと初めて判定された際の第２の印刷パラメータの値を設定する設定工程と、該設定工程により設定された前記第２の印刷パラメータの値に基づいて、受信した前記印刷対象情報を印刷する印刷工程とを備える。
【００１０】
【発明の実施の形態】
〔実施形態１〕
図１は本実施形態のシステム構成図であり、ネットワークに接続された複数の装置をあらわしている。この中で101はパーソナルコンピュータ(ＰＣ)、102はスキャナ、103はカラープリンタ、104はモノクロプリンタを表わしている。
【００１１】
本実施形態では、複数の装置が接続されたシステム（図１の場合はネットワークに接続されている）において、ある装置にＪＯＢの実行が指示された場合に、ＪＯＢの内容より、その目的を解析し、自分が実行すべきＪＯＢは何であるかを理解する。理解した結果、実行すべきＪＯＢに必要な情報を取得し、実行する。ＪＯＢを実行する際に、指示された内容よりも効果的な手法や別の装置がある場合には、他の装置に処理を指示したり、その手法をユーザに提案するための通知を行なったりする。
【００１２】
また、ＪＯＢの内容によっては、指示そのものを拒否することも行なう。
【００１３】
ここで、ＪＯＢの種類には、利用者の入力操作や他の機器からの実行指示や、これらのＪＯＢを解析した結果や、アイドリング時に自分自身で生成する新たなＪＯＢがある。例えば、スキャナから文書を読みとって、別のプリンタで印刷する場合には、下記のようなＪＯＢが発生する。
▲１▼ユーザがスキャナにセットした文書について、スキャナへの指示の内容の解析▲２▼スキャナがユーザから受け取った指示（及び文書がセットされたこと）を解析して生成した、文書の読取り・解析処理と、読取った文書を印刷する為のプリンタへの指示処理
▲３▼スキャナが指示処理にしたがって生成した、プリンタへの印刷指示
▲４▼プリンタがスキャナから受け取った印刷指示を解析して生成した、印刷処理
【００１４】
このようなＪＯＢの生成管理方法の詳細については、実施形態１１以降で説明する。
【００１５】
以下では、これらの処理を、複数の装置により実行する手順を、図面に基づいて具体的に説明する。
【００１６】
図２は、本実施形態の処理を行うための機能構成図である。ＪＯＢ受取り部201は、ユーザまたは他の装置からＪＯＢを受取る。受取られたＪＯＢは、ＪＯＢテーブル202に登録される。ＪＯＢ解析部203は、ＪＯＢテーブル202に登録されているＪＯＢを取り出して解析する。他機器情報取得部204は、接続している他の機器の属性や現在の状態などを取得する。状況判断部207は、他の機器の現在の状態などから状況を判断する。
【００１７】
最適プランニング部210は、ＪＯＢの実行に関して最適なプランを立てる。ＪＯＢ実行判断部206では、ＪＯＢを実行するか否か、実行する場合は、自装置で実行するのか、他の機器で実行するのか等を判断する。他の機器で実行する場合は、他機器への指示部205により、他の機器へＪＯＢの実行を指示する。自装置で実行する場合は、ＪＯＢ実行部209で実行する。実行通知部211は、実行結果や他の機器に実行を指示したことなどをユーザに通知する。
【００１８】
図３は、本実施形態の処理を実現するための各装置のハードウェア構成図である。
【００１９】
Ｉ／Ｏ301は、装置外部との入出力を行なう。ＣＰＵ302は、プログラムを実行するとともに、装置各部を制御する。ＲＯＭ303は、後述する各フローチャートに対応するＣＰＵ302の実行すべきプログラムや固定データなどを記憶する。
【００２０】
ＲＡＭ304は、ＪＯＢテーブル202や、他機器情報取得部204で取得した他の機器の属性や現在の状態など、処理の実行中に発生する各種変数や中間データなどを一時的に記憶する。また、ＲＡＭ304に装置外部などからプログラムをロードして記憶させるようにしてもよい。
【００２１】
図４は、本実施形態の処理の流れを示したフローチャートである。
【００２２】
まず、ステップS109で、ＪＯＢテーブルの内容を初期化する。ステップS110では、利用者からの入力ＪＯＢや、システムが検知可能なデバイスなどからの入力ＪＯＢや、これらのＪＯＢを解析した結果や、アイドリング時に自分自身で生成した新たなＪＯＢがあるかどうかチェックして、ＪＯＢが入力されたかを判定する。入力されれば、ステップS111で、ＪＯＢテーブルに入力されたＪＯＢを追加する。ステップS112でＪＯＢテーブルにＪＯＢがあるかを調べ、あれば、ステップS113で、ＪＯＢを取り出す。ステップS114では、与えられた指示を解析し、その情報からＪＯＢの目的を解析する。ステップS115では、解析した指示から、更に行なうべきＪＯＢを洗い出す。ステップS116では、ステップS115で洗い出したＪＯＢを登録する。
【００２３】
ステップS117では、未実行のＪＯＢがあるかを調べ、あれば、ステップS118に進む。ステップS118では、ＪＯＢが実行可能か判断を行い、不可能と判断した場合は、ステップS115に戻り、新たに行わなければならないＪＯＢを洗い出す。ステップS119では、ＪＯＢを実行し、ステップS117に戻る。
【００２４】
例えば、スキャナから文書を読みとって、別のプリンタで印刷するように、ユーザが指示を与えた場合には、印刷済みの文書を入手することがユーザの目的だと解析される。また、この場合、スキャナがユーザから受け取った情報を解析して生成した、文書の読取り・解析処理と、読取った文書を印刷する為のプリンタへの指示処理がＪＯＢとして洗い出される。これらの詳細な流れの説明については、具体例に基づいて実施形態１１以降で説明する。
【００２５】
図５は、複数のプリンタから、最適なプリンタを選択して印刷を実行する処理の流れを示した図である。
【００２６】
図５においては、ホストコンピュータからの命令や、リモコンなどからの指示として、あるいはユーザが音声で発した自然言語の命令や、カバーページから読み取ったバーコードあるいは文章を解析するなどして、ＪＯＢ情報が送信・入力される。
【００２７】
送信されてきたＪＯＢ情報を受取ったデバイスは、ＪＯＢを解析し、ＪＯＢに適した処理を実行可能なプリンタを自動的に選択して出力を行い、更に通知指示がある場合には通知先に応じた最適なメディアを選択し通知する。
【００２８】
そのために、ユーザの要求に対して、プリンタの構成を参照し、適切なプリンタを選択して印刷を実行させる。その際、状況に応じて、複数のプリンタへ処理を振り分けることも行なう。また、通知指示がある場合には、通知に最適なメディアを選択して、印刷を実行したプリンタ名や印刷の終了などを通知する。
【００２９】
ユーザの要求としては、用紙サイズ、印字品質、カラー、時間制限(例えば、5時までに印刷したい）などがある。また、プリンタの構成としては、プリンタの種類と台数、性能、現在の状態（正常動作しているか、印刷待ちのキューがあるか、用紙やトナーが不足していないか）などがある。通知のためのメディアとしては、ユーザの端末で音声により報知したり、電話で伝えたり、ポケベルにメッセージを送ったり、あるいは通知内容を文書として電子メールやＦＡＸで送信したりする。
【００３０】
以下では、図４のフローチャートに従って、図５の処理を各装置が処理する状況を説明する。
【００３１】
まず、ステップS110で、例えば、ホストコンピュータに対してある文書を緊急で５時までに出力する指示を与えられた場合、ステップS111で、ＪＯＢテーブルにＪＯＢを追加する。ステップS113で、ＪＯＢを取り出し、ステップS114で、与えられた指示を解析し、その情報からＪＯＢの目的を解析する。ステップS115では、解析した指示から以下のＪＯＢが洗い出される。
▲１▼ 出力するべき文書から出力に適したプリンタを選択するための情報（用紙サイズ、印字品質、カラー文書など）と、制限時間などの情報を取得する。
▲２▼ 接続されたプリンタから▲１▼の情報に適したプリンタを選択する。
▲３▼ 選択したプリンタが出力に障害がないかを検査する。
▲４▼ 自動的に選択したプリンタに出力する。
▲５▼ 選択したプリンタと出力を実行したことを通知する。
【００３２】
ステップS116では、ステップS115で洗い出したＪＯＢを登録する。ステップS117で、洗い出したＪＯＢが全てなくなったと判断されるまで、以下を繰り返す。ステップS118では、ＪＯＢが実行可能か判断を行い、不可能と判断した場合は新たに行わなければならないＪＯＢを洗い出す。ステップS119で、洗い出したＪＯＢを順に実行する。
【００３３】
〔実施形態２〕
図６は、各種デバイスに対して指示する方法として、リモートコントローラ(リモコン)を利用する場合を説明する図である。
【００３４】
このリモコン605は、表示部を具え、プリンタ601、602やＦＡＸ603、ＰＣ604などのデバイスに近づくだけで、そのデバイスに対応したコントロールパネルや情報を表示し、そのデバイスに対して指示を与え、コントロールすることができる。更に、リモコン605の近くのデバイスからネットワークを介して、遠く離れたデバイスをコントロールすることもできる。
【００３５】
また、リモコン605は、各デバイスのステータスをモニタして、表示することができ、リモコン605の近くのデバイスを介して、ネットワーク上にある遠く離れたデバイスのステータスを取得することも可能である。
【００３６】
〔実施形態３〕
図７は、スキャナから文書を読み込み、特定のプリンタに送信しようとした場合の例を示す図である。
【００３７】
文書がスキャナ701から読み込まれた後、利用者が送信先を（音声などを利用して）指定する。あるいは、カバーページに送信先が指定されており、自動的に送信先が決定される。このようにして、送信先として、モノクロプリンタＡ702が決定された後、
▲１▼送信先の状態を取得した結果、送信先が印刷不可能な状態の場合、自動的に代わりのプリンタ(例えば、モノクロプリンタＢ703）に送信し、印刷する。
▲２▼送信先として指定されたプリンタが（カラー、用紙サイズなどの条件から）印刷できない場合、そのページだけを他のプリンタ（例えば、カラーであれば、カラープリンタＣ704）に送信する。
▲３▼大量ページ数の文書の場合、いくつかのプリンタに分けて印刷を行う。
▲４▼送信先に転送先が指定されている場合、自動的に転送先に送信する。
【００３８】
〔実施形態４〕
図８は、スキャナから文書を読み込み、（ネットワークドメインが異なるなどの理由で）スキャナが管理できない特定のプリンタに送信しようとした場合の例を示す図である。
【００３９】
文書がオースティンにあるスキャナ701から読み込まれた後、利用者が送信先を（音声などを利用して）指定する。あるいは、カバーページに送信先が文字列またはバーコードで記載されており、それを読み取って認識・解釈することで、自動的に送信先が決定される。このようにして、送信先として東京にあるモノクロプリンタＡ702が決定され、実際にモノクロプリンタＡ702に文書が送られた後に、
▲１▼モノクロプリンタＡ702が、自分自身では印刷不可能な状態の場合、代わりのプリンタ（モノクロプリンタＢ703）に送信し、印刷する。
▲２▼モノクロプリンタＡ702が、（カラーページを含む、用紙サイズが異なるなどの条件から）受信した文書を印刷できない場合、受信した文書全体あるいは印刷できないページだけを他のプリンタ（例えば、カラーであれば、カラープリンタＣ704）に送信する。
▲３▼大量ページ数の文書の場合、モノクロプリンタＡ702が自分自身で印刷するとともに、他のプリンタにも分けて印刷を行う。
▲４▼モノクロプリンタＡ702が自分自身に転送先が指定されている場合、自動的に転送先に転送する。
【００４０】
実施形態３と実施形態４との相違点は、実施形態３では、スキャナ701が送信先を決定していたのに対し、実施形態４では、スキャナ701から文書を受信したプリンタ702が、転送先を決定する点にある。
【００４１】
〔実施形態５〕
図９は、スキャナから文書を読み込み、（ネットワークドメインが異なるなどの理由により）スキャナが管理できない特定のプリンタに送信しようとした場合の例を示す図である。
【００４２】
文書がオースティンにあるスキャナ701から読み込まれた後、利用者が送信先を（音声やキーボードなどを利用して）指定する。あるいは、カバーページに送信先が文字列またはバーコードで記載されており、それを読み取って認識・解釈することで、自動的に送信先が決定される。このようにして、送信先として東京にあるモノクロプリンタＡ702が決定された後、実際にモノクロプリンタＡ702に文書が送られた後に、より高度な処理が可能なパソコン705に転送される。その結果、パソコン705は、この文書が緊急の文書であると(例えばカバーレターの「至急」という文字から)判断し、文書の受け取り手が今どこに居るのかが、スケジュールデータなどから分かれば、その場所(例えば厚木)に転送する。その際、転送先がプリンタではなく、ＦＡＸ Ｄ706であるなどメディアが異なれば、メディア変換を行なって送信する。
【００４３】
〔実施形態６〕
図１０は、スキャナから文書を読み込み、（ネットワークドメインが異なるなどの理由により）スキャナが管理できない特定のプリンタに送信しようとした場合の例を示す図である。
【００４４】
文書がオースティンにあるスキャナ701から読み込まれた後、利用者が送信先を（音声などを利用して）指定する。あるいは、カバーページに送信先が文字列またはバーコードで記載されており、それを読み取って認識・解釈することで、自動的に送信先が決定される。このようにして、送信先として東京にあるモノクロプリンタＡ702が決定された後、実際にプリンタＡ702に文書が送られた後に、より高度な処理が可能なパソコン705に転送される。その結果、パソコン705は、文書の受け取り手を認識し、通知文を作成して、電話707により、文書の受け取り手に文書の到着を通知することができる。
【００４５】
〔実施形態７〕
図１１は、プリンタの状態を通知する場合の例を示す図である。
【００４６】
ＰＣ1102は、ネットワークを介してプリンタ1103のステータスを取得し、エラーやイベントの発生などステータスの変化を検知すると、その内容に応じて、ユーザあるいは管理者などの通知先を決定し、決定された通知先に対応するメディアを利用して通知を行なう。例えばユーザあるいは管理者の端末1101へ電子メールで通知したり、電話1104に電話連絡したり、ポケットベル1105にメッセージを送信したりする。
【００４７】
これにより、例えば、図１０の例において、電話707に代えて、電子メールやポケットベルで文書の受信を通知してもよい。
【００４８】
〔実施形態８〕
本実施形態では、ＪＯＢを指示された装置が、ＪＯＢを自分で実行する場合に、そのまま行なうのではなく、ＪＯＢの種類や条件によっては、ＪＯＢの内容を実行前にユーザに通知・確認したり、ユーザにとって不要と判断されるＪＯＢを取り消したりする。
【００４９】
図１２７は、ＪＯＢの種類と条件に対応して、事前通知を行うかどうかを指定した情報である。
【００５０】
図１２は、本実施形態の処理手順を表わしたフローチャートである。
【００５１】
まず、ステップS120で、指示されたＪＯＢを実行する前に、実行する処理や内容をユーザに通知するべきかを、図１２７のＪＯＢの種類と条件に対応した事前通知の指定情報を参照したり、実施形態２９で説明するようにカバーページなどに記載されている内容を解析することで、判断する。事前に通知する場合は、ステップS121からステップS122に進み、実行する処理や内容を通知する。更に、ステップS123で、必要があれば、ユーザから実行の許可をもらってから、ステップS124でＪＯＢを実行する。
【００５２】
一方、事前に通知しない場合は、ステップS125で、ユーザにとって必要なＪＯＢであるかを判断し、必要であれば、ステップS127でＪＯＢを実行するが、不要であれば、ステップS128でＪＯＢを破棄する。
【００５３】
次に、ＪＯＢの内容が情報のファイリングの場合に、システムが情報のファイリングを実行する前に内容を解析して、内容をユーザに伝える処理を行う例を説明する。
【００５４】
図１３は、ファイリング処理で、ファイリングする情報を事前にユーザに伝える場合を示す図である。1301はファイル記憶装置、1302はスキャナ、1303はユーザ端末である。
【００５５】
図１３におけるスキャナ1302の処理を、図１２のフローチャートに従って説明する。
【００５６】
ステップS120で、情報のファイリングを行うＪＯＢであるため、図１２７の指定情報を参照して、ファイリングを行う前にファイリングする情報を通知すると判断し、情報をスキャンする。ステップS121で、ファイリングする情報を通知するため処理をステップS122に渡す。ステップS122で、スキャンした情報をネットワークを介してユーザ端末1303に通知する。ステップS124で、ファイリングのＪＯＢを行う。
【００５７】
次に、受信情報がある場合に1枚目を受信して内容を解析し、ユーザに全く関係ない情報と判断された場合は、それ以降の情報を受信しない例を説明する。
【００５８】
図１４は、多量の受信データを最初のページから必要であるか不要であるかを判断し、次ページ以降の情報を破棄する場合の図である。1401は受信側、1402は送信側のＰＣである。
【００５９】
図１４におけるＰＣ1401の処理を、図１２のフローチャートに従って説明する。
【００６０】
ステップS120で、図１２７のＪＯＢの種類と条件に対応した事前通知の指定情報を参照した結果、情報の受信だけなので事前通知は行わないと判断する。ステップS121では、処理をステップS125に渡す。ステップS125で、受信した情報の最初のページを解析し、「庶務担当者へのお知らせ」とあるので、ユーザには関係ない情報であり、この情報の受信は不要であると判断する。ステップS126で、処理をステップS128に渡す。ステップS128では、受信した1枚目を破棄するとともに、2枚目以降の情報を受信しないで処理を終了する。
【００６１】
〔実施形態９〕
図１５は、本実施形態の処理手順を示すフローチャートである。本実施形態では、処理の実行を指示された装置が、装置自身で実行すべきか、他の装置で実行すべきかを判断し、判断結果に応じて、処理を自身で実行あるいは他の装置に指示する。
【００６２】
まず、ステップS150では、ＪＯＢが入力されたかを判定し、入力されれば、ステップS151で、ＪＯＢテーブルに入力されたＪＯＢを追加する。ステップS152でＪＯＢテーブルにＪＯＢがあるかを調べ、あれば、ステップS153で、ＪＯＢを取り出す。ステップS154では、与えられた指示を解析し、その情報からＪＯＢの目的を解析する。ステップS155では、装置自身の状況を判断する。ステップS156では、ＪＯＢの目的に応じた他の装置の状況を判断する。
【００６３】
装置自身及び他の装置の状況に基づいて、自分で実行することが最適であれば、ステップS157からステップS158へ進み、自分で実行することに決定し、ステップS159で、自分でＪＯＢを実行する。一方、自分で実行するのが最適でなく、ＪＯＢの目的に応じた最適な装置が他に存在するなら、ステップS160からステップS161に進み、自分以外の装置でＪＯＢを行なうことを決定し、ステップS162で、目的に応じた他の装置にＪＯＢの実行を指示する。ステップS163では、自分以外の装置でＪＯＢを実行したことをユーザに通知する。
【００６４】
また、ＪＯＢの目的に応じた装置が他にも存在しなければ、ステップS160からステップS164に進み、ＪＯＢの目的を損なわない最適な方法をプランニングして、ステップS165で、そのプランをユーザに提案する。
【００６５】
図１６は、本実施形態の情報の流れを示す図である。
【００６６】
ＰＣ101のユーザが、スキャナ102で入力した情報をプリンタ104に出力するようなＪＯＢを与えた場合に、プリンタ104が例えば印字動作不良の場合に、プリンタ104は、与えられたＪＯＢが実行できないことを判断し、他の装置とコミュニケーションをとり、与えられたＪＯＢを実行可能なプリンタ103を見つける。これにより、ＪＯＢを自分で行わず、プリンタ103で行うとを判断し、プリンタ103にＪＯＢを指示する。更に自分が行った行動をユーザに伝えるために、ＰＣ101に通知する。図１６は、この流れを矢印で表わしたものである。
【００６７】
以下に、図１６の処理において、各装置が処理する手順を、図１５のフローチャートにそって説明する。
【００６８】
まず、スキャナ102の処理を説明すると、ステップS150で、情報をスキャンし、プリンタ104に情報を送信するＪＯＢを受取る。ステップS151で、ＪＯＢテーブルにこのＪＯＢを追加し、ステップS153でＪＯＢをとりだす。ステップS154でデータをスキャンし、送信するＪＯＢであることを理解する。ステップS155で、自分は正常に動作しており、指示された情報をスキャンし送信することに問題がないことを判断する。
【００６９】
ステップS156で、他の装置にＪＯＢをまわすことができないことを理解する。ステップS157では、自分で実行することが最適なため、ステップS158へ処理を渡す。ステップS158で、自分で情報をスキャンすることを決定し、ステップS159で、情報をスキャンし、ネットワークを介して１の経路でプリンタ104に情報を送信する。
【００７０】
一方、プリンタ104では、ステップS150で、受信した情報を出力するＪＯＢを受取る。ステップS151で、ＪＯＢテーブルにこのＪＯＢを追加する。ステップS153でＪＯＢを取り出す。ステップS154で、受信した情報からＰＣ101のユーザの情報を用紙に出力することを理解する。ステップS155で、自分にはトナーがなくなっており、用紙に出力することはできないと判断する。ステップS116では、ネットワークを介して他に受信した情報を出力できるプリンタがないかコミュニケートし、出力可能なプリンタ103があると判断する（２の経路）。
【００７１】
ステップS157で、自分では実行できないためステップS160に処理を渡す。ステップS160では、情報を出力するというＪＯＢをプリンタ103で実行可能であるため、ステップS161で、プリンタ103に受信した情報を送信することを決定する。ステップS162で、プリンタ103に送信する情報を出力するように指示する（３の経路）。ステップS163で、ＪＯＢを指示したユーザのＰＣ101に、指示された出力はプリンタ103で行ったことを電子メールで通知する（４の経路）。
【００７２】
図１２８は、ＪＯＢの目的に応じた装置が存在しない場合の情報の流れを示す図である。
【００７３】
ＰＣ101のユーザが、スキャナ102で入力した情報をプリンタ104に出力するようなＪＯＢを与えた場合に、プリンタ104がトナー切れで印刷不能であると、プリンタ104は、他の装置とコミュニケーションをとり、与えられたＪＯＢの目的に応じたプリンタ103を見つけ、その状況を判断する。ここで、プリンタ103は用紙切れで印刷不能であり、それ以外にＪＯＢの目的に応じたプリンタが存在しないため、最適なプランとして、プリンタ104または103を印刷可能な状態に回復させて印刷することをユーザに提案するために、ＰＣ101に通知する。図１２８は、この流れを矢印で表わしたものである。
【００７４】
次に、図１２８の処理において、各装置が処理する手順を、図１５のフローチャートにそって説明する。
【００７５】
スキャナ102が文書を読取り、プリンタ104に送信するまでは同様である。プリンタ104では、ステップS150で、受信した情報を出力するＪＯＢを受取る。ステップS151で、ＪＯＢテーブルにこのＪＯＢを追加する。ステップS153でＪＯＢを取り出す。ステップS154で、受信した情報からＰＣ101のユーザの情報を用紙に出力することを理解する。ステップS155で、自分にはトナーがなくなっており、用紙に出力することはできないと判断する。ステップS116では、ネットワークを介して他に受信した情報を出力できるプリンタがないかコミュニケートするが、プリンタ103も用紙切れのため印刷不可能であり、その外にも適当なデバイスが存在しないと判断する。
【００７６】
ステップS157で、自分では実行できないためステップS160に処理を渡す。ステップS160では、情報を出力するというＪＯＢを実行可能なデバイスが存在しない為、ステップs164に進む。ステップs164では、情報を出力するというＪＯＢの目的である印刷を実現するための最適な方法をプランニングする。その結果、印刷可能なデバイスのステータスを正常に戻すことが、最適な方法であるとプランニングされる。続くステップs165で、プランニングされた結果に従って、図129に示したようなWindowによって、トナー切れのプリンタ104または用紙切れのプリンタ103を印刷可能な状態に回復させることをユーザに提案する。その後、ユーザの答えや、プリンタ自体のステータスの変化が入力ＪＯＢとして認識され、同様な処理が行われ、ユーザの目的を達成することができる。
【００７７】
上記で述べたプランニングの詳細については、具体例に基づいて実施形態１１以降で説明する。
【００７８】
〔実施形態１０〕
実施形態９の処理において、ステップS158、S159で、自分でＪＯＢを実行すると判断し、実行する場合に、更に指示されたＪＯＢを実行するにあたり、問題の発生の有無を、後述する図１７の手順のように詳細に解析し、ＪＯＢを実行する環境や状況によっては、ＪＯＢ実行することが適さないと判断された場合に問題を通知したり、ＪＯＢを拒否する場合がある。
【００７９】
例えば、機密書類の印刷の指示があった場合に、許可されたユーザと確認されない場合は、その指示を拒否する。
【００８０】
図１７はＪＯＢ実行の詳細な手順を表わすフローチャートである。
【００８１】
ステップS170で、指示されたＪＯＢの実行に問題はないか解析する。ステップS171で、ＪＯＢの実行に問題がなければ、ステップS175で、ＪＯＢを実行する。問題があれば、ステップS172で、発生した問題をユーザに通知するか、ＪＯＢの実行を拒否するかを判断する。通知する場合は、ステップS174で問題を通知する。一方、拒否する場合は、ステップS176で、ＪＯＢを拒否し、拒否を通知する。
【００８２】
以下、ＰＣ101のユーザが、スキャナ102で読んだ機密情報をプリンタ104に出力するよう指示した場合を、図１５、１７に基づいて説明する。図１８は、読み込む機密情報の例を示す図である。
【００８３】
まず、スキャナ102では、ステップS150で、情報をスキャンし、プリンタ104に情報を送信するＪＯＢを受取る。ステップS151で、ＪＯＢテーブルにこのＪＯＢを追加する。ステップS153で、ＪＯＢを取り出す。ステップS154で、データをスキャンし、送信するＪＯＢであることを理解する。ステップS155で、自分は正常に動作しており、指示された情報をスキャンし送信することに問題がないことを判断する。
【００８４】
ステップS155で、他の装置にＪＯＢをまわすことができないことを理解する。ステップS157で、自分で実行することが最適なためステップS158へ処理を渡す。ステップS158で、自分で情報をスキャンすることを決定する。
【００８５】
ステップS170で、情報をスキャンした結果、出力不可の機密書類であることを解析した。ステップS171で、ＪＯＢの実行には問題がある。ステップS172で、ＪＯＢ（情報をスキャンして出力すること）を拒否すると判断する。ステップS173で、ＪＯＢの拒否を行うのでステップS176へ処理を渡す。ステップS176で、ＪＯＢの拒否を通知する。
【００８６】
また、同様にして、同一のシステムを複数のユーザが使用する場合に、ログイン名などから現在のユーザを認識し、他のユーザのファイルの内容の出力の指示も拒否することができる。また、ユーザからの指示ではなく、外部から文書を受信した場合にも、宛先のユーザが現在のユーザと異なれば、受信文書の出力や受信の事実の通知を拒否したり、宛先のユーザがシステムを利用するまで、処理を保留したりすることもできる。
【００８７】
〔実施形態１１〕
図４に従って、処理の流れを説明する。まず、ステップS109で、ＪＯＢテーブルを初期化する。ステップS110で、利用者からの入力や、システムが検知可能なデバイスなどからの入力があるかどうかチェックする。ステップS111で、上記ステップで入力された内容を解析するための、入力解析 ＪＯＢ を ＪＯＢテーブルに追加する。ステップS112で、実行可能な ＪＯＢが存在するかチェックし、あれば、ステップS113で実行可能な ＪＯＢを取得する。ステップS114で、ＪＯＢを実行させようとした背景となる目的を理解する。
【００８８】
ステップS115で、入力された内容や、システムが検知可能なデバイスなどの状態や、システムが現在知っている知識その他から、考えられる処理をプランニングし、ステップS116で、必要ならば新たなＪＯＢを追加する。ステップS117−S119で、ステップS115でプランニングされた内容にしたがって処理を実行する。ＪＯＢがなくなるまで繰り返し、なくなったらステップS110に戻る。
【００８９】
利用者が <file A>を印刷しようとした場合について、説明する。図２２は、<file A>の内容を表わす図であり、車の絵の部分がカラーで描かれているものとする。また、図２３は、本実施形態のシステムの構成を示す図であり、ユーザがＰＣ2301から印刷指示を行い、通常使うプリンタとしてモノクロプリンタ2303が設定されており、それ以外にカラープリンタ2302も接続されている。
【００９０】
ステップS109で、ＪＯＢテーブル初期化する。ステップS111で、入力が何も無い時に行われるＪＯＢをＪＯＢテーブルに追加する(図19)。また、図２０の Windowで、ファイル名 <file A>を指定し、印刷を選択すると、ステップS110で、入力があると判断されステップS111へ進む。ステップS111で、図２１に示すように、入力解析ＪＯＢをＪＯＢテーブルに追加する(図２１)。ステップS112で、実行可能な ＪＯＢが存在するので、ステップS113へ進む。ステップS113では、実行可能な ＪＯＢ:入力 "印刷 <file A>"の解析を取得する。ステップS114で、入力 "印刷 <file A>" の目的は、<file A>を印刷することだと理解する。
【００９１】
ステップS115では、下記の条件・状況から、カラープリンタへの印刷を利用者に提案することをプランニングする。
・<file A>にはカラーの部分が含まれる(図２２の車の部分)。
・使用可能なカラープリンタ2302が存在する(図２３)。
【００９２】
ステップS119で、利用者に「カラープリンタで印刷しますか？」と問い合わせる(図２４)。同時に、ＪＯＢテーブルに、利用者の応答が無い場合の対応のＪＯＢを追加する(図２５)。そして、ステップS110に戻る。
【００９３】
ステップS110で、10分間入力がないと、ステップS112で、実行可能なＪＯＢが存在するので、ステップS113へ進む。ステップS113で、実行可能なＪＯＢ :利用者の応答が無い場合の対応を取得する。
【００９４】
ステップS114で、利用者の応答が無い場合の対応の目的は、提案を受け入れてくれるかどうかを知ることだと理解する。ステップS115で、下記の条件・状況から、電話を使って利用者に問い合わせることを決定する。
・利用者が現在いる場所の電話番号を知っている(図２６のスケジュールデータ)。
・緊急に印刷しなければならない(図２６のスケジュールデータで、13時からの商談にfile Aを使用する)。
【００９５】
ステップS119で、利用者に「カラープリンタで印刷しますか？」と問い合わせる(図２７)。同時に、ＪＯＢテーブルに利用者の応答が無い場合の対応のＪＯＢを追加する(図２８)。ステップS110に戻る
ステップS110で、図２７のように利用者が「はい、よろしく」と言うと、入力があると判断されステップS111へ進む。ステップS111で、入力解析ＪＯＢ をＪＯＢテーブルに追加する(図２１)。ステップS112で、実行可能なＪＯＢが存在するので、ステップS113へ進む。ステップS113で、実行可能なＪＯＢ:入力“はい、よろしく”の解析を取得する。ステップS114で、入力 "はい、よろしく”の目的は、提案を受け入れたことを示すことだと理解する。
【００９６】
ステップS115で、<file A>をカラープリンタ2302に送って、印刷することを決定する。ステップS118 で、<file A>をカラープリンタ2302に送って印刷する。同時に、ＪＯＢテーブルに印刷が正常に終了したかどうかの確認のためのＪＯＢを追加する(図２９)。ステップS110に戻る。
【００９７】
ステップS110で、入力無し、ステップS112で、図３０のように、プリンタステータスが「印刷中」から「印刷済み 文書有り」に変化すると、実行可能なＪＯＢが存在するので、ステップS113へ進む。ステップS113で、実行可能なＪＯＢ:プリンタステータスに対応した処理を取得する。ステップS114で、図３１のプリンタステータス表から、ステータス「印刷済み文書有り」は印刷された文書がプリンタのトレイに残されているという意味なので、その目的は、印刷済み文書が利用者に渡ることだと理解する。
【００９８】
ステップS115で、すぐに利用者が取りに来るかもしれないので、待つことに決定する。ステップS116で、ＪＯＢテーブルに印刷済み文書を取りに来たかどうかの確認のためのＪＯＢを追加する(図３２)。ステップS110に戻る。ステップS110で、10分間入力がない。ステップS112で、印刷済み文書が残されたままだとすると、実行可能なＪＯＢが存在するので、ステップS113へ進む。ステップS113で、実行可能なＪＯＢ:印刷済み文書がある場合の対応を取得する。ステップS114で、図３１から、ステータス「印刷済み文書有り」は印刷された文書がプリンタのトレイに残されているという意味なので、その目的は、印刷済み文書が利用者に渡ることだと理解する。ステップS115で、10分間文書が残されたままなので、利用者は忘れていると判断して、「印刷済み文書がカラープリンタにあります」と通知することに決定する。ステップS119で、「印刷済み文書が BJC600にあります」と通知する(図３３)。同時に、ＪＯＢテーブルに利用者の応答が無い場合の対応のＪＯＢと、印刷済み文書を取りに来た場合の対応のＪＯＢを追加する(図３４)。ステップS110に戻る。
【００９９】
ステップS110で、入力が無い。ステップS112で、図28のようにプリンタステータスが「印刷済み文書有り」から「正常」に変化すると、実行可能なＪＯＢが存在するので、ステップS113へ進む。ステップS113で、実行可能なＪＯＢ:印刷済み文書有りに対応したＪＯＢの見直しを取得する。ステップS114で、印刷済み文書有りに対応したＪＯＢの見直しの目的は、不要になったＪＯＢを削除することだと理解する。ステップS115で、利用者の応答を待っているＪＯＢを削除することを決定する。ステップS119で、利用者の応答を待っているＪＯＢを削除する。ここでは、新しいＪＯＢは追加されない。初期状態で、ステップS110に戻る。
【０１００】
図３６、３７は、プラン及びアクションのルールを示す図である。
【０１０１】
利用者が図２０の印刷 Window において、ボタン〔印刷〕を押した場合、図３６の表のプラン＆アクションを参照して、利用者の目的は現在の状態が「印刷済み文書有り」になることだと判断される。さらに、「印刷済み文書有り」は目的「印刷済み文書取得」の前提条件にもなっているので、最終的な利用者の目的は「印刷済み文書取得」であると判断される。
【０１０２】
利用者が図２４や図３３の質問 Windowや、図２７の電話による問い合せに対して、音声やマウス操作等により賛意表明や反意表明の操作を行った場合、利用者の目的は問い合せに対する賛意表明や反意表明だと判断される。
【０１０３】
図３７において、システムの究極の目的は、ユーザの目的達成である。そのための前提条件として、システムは安定していなければならない。また、その上でシステムは▲１▼ユーザの目的を理解し、▲２▼目的達成のプランニングをし、実行する。
【０１０４】
システムの安定の為には、異状時にシステムを正常化することはもちろん、コストの削減やシステムの不安定化の回避の為、実行している必要のないときには電源をOFFする。
【０１０５】
図３８は、図３７の一部をわかりやすく図示したものである。
【０１０６】
ユーザの目的を理解する為には、入力があった場合、入力を理解する。また、図３６のユーザの目的の「印刷済み文書取得」に対応して、「印刷済み文書をユーザに渡す」ことがシステムの目的として存在する。
【０１０７】
印刷済み文書をユーザに渡す為には、印刷済み文書が存在していることが前提であり、その上で文書がある場所をユーザに教えることで目的を達成しようとしている。もちろん、利用者が実際に文書を取得する為には、利用者が文書を取りに来るか、何らかの方法で利用者に文書を届けなければならないが、本システムでは詳しく定義はしておらず、印刷済み文書が無くなることが利用者が取得したことと等価であると判断している。
【０１０８】
一方、印刷済み文書が有る為には、印刷元文書が有るとともに、印刷条件が明確化されており、対応する印刷環境が正常に存在していることが前提であり、その上で対応する印刷環境を選択し、印刷を実行する。印刷元文書が有る為には、印刷元文書を作成すればよい。印刷条件を明確化する為には、条件が不明確な部分をユーザに問い合せればよい。印刷環境が正常でいるためには、印刷環境が異常な場合、印刷環境を正常化すればよい。また、ユーザの意志を取得する為には、一定時間ユーザからの応答が無い場合、あらためてリプランニングする必要がある。
【０１０９】
各デバイスのプロパティは、各デバイス内部のメモリまたは各デバイスを管理しているサーバ内のメモリに格納されている。図３９は各デバイスのプロパティの例である。各デバイスのステータスは、各デバイス内部に持ち、各デバイスが能動的に発信するか、他のサーバなどの要求に従って受動的に返すことで、他の装置に伝えられる。
【０１１０】
本システムにおいては、プロパティは各デバイス固有のものであり、変化することはないので、システムの起動時あるいはネットワーク上の接続に変更があったときに取得される。一方、ステータスはプランニングを行う過程において、必要に応じて取得されるか、あるいはある一定時間間隔で取得し、内部のメモリ内の情報として更新記憶される。
【０１１１】
〔実施形態１２〕
実施形態１１と同じく、<file A>を印刷する場合に、カラープリンタがBusyの場合の処理の例である。
【０１１２】
まず、入力： "印刷 <file A>"があると、これをＪＯＢテーブルに追加し、目的は印刷であると理解される。ここで、条件・状況として、文書にカラーの部分が含まれており、使用可能なカラープリンタがBusy であるとする。そこで、Busyでなくなるまで待つか、モノクロで印刷するかを、利用者に質問するというプランを立てる。「カラープリンタ がBusy です。待ちますか？それとも、モノクロプリンタで印刷しますか？」をユーザに質問する。利用者が "待つ"を選択した場合、Busyでなくなるまで待機する。
【０１１３】
〔実施形態１３〕
入力：“<file A>は、<file A'>に変更された。”があった場合、ＪＯＢテーブルの更新が目的であると理解する。条件・状況で、ＪＯＢテーブルに<file A>の印刷 ＪＯＢ がある。そこで、印刷対象を<file A'>に変更するか、利用者に質問する。というプランを立てる。そして、「修正前の<file A>の代りに、<file A'>を印刷しますか？」という質問を発する。
【０１１４】
〔実施形態１４〕
本実施形態は、複数の装置が接続されたシステム（この場合はネットワークに接続されている）において、各装置にＪＯＢが指示された場合に、それぞれの装置がＪＯＢの目的を解析し、自分の状況や指示装置の状況から、指示された装置でのＪＯＢ実行を行わない方が良いと判断した場合に、ＪＯＢを他の装置に転送して実行するための実施形態である。
【０１１５】
図４１は、複数の装置がネットワークに接続されている状態を表した２つの例であり、(Ａ)は、スキャナ411、プリンタ412、413の各装置がそれぞれの状況を判断できる環境のネットワークである。(Ｂ)は、スキャナ411が、プリンタ412、413の状況を判断できない環境のネットワークである。
【０１１６】
図４２は本実施形態の処理を行うための機能構成を示す図である。ＪＯＢ受取り部421は、ユーザまたは他の装置からＪＯＢを受取る。受取られたＪＯＢは、ＪＯＢテーブル422に登録される。ＪＯＢ解析部423は、ＪＯＢテーブル422に登録されているＪＯＢを取り出して解析する。他装置状況判断部424は、接続している他の装置の属性や現在の状態などを判断する。自装置状況判断部427は、装置自身の属性や現在の状態などを判断する。
【０１１７】
最適プランニング部425は、ＪＯＢの実行に関して最適なプランを立てる。ＪＯＢ実行判断部426では、ＪＯＢを実行するか否か、実行する場合は、自装置で実行するのか、他の装置で実行するのか等を判断する。自装置で実行する場合は、ＪＯＢ実行部428で実行する。他の装置で実行する場合は、他装置へのＪＯＢ転送部429により、他の機器へＪＯＢを転送する。実行通知部211は、実行結果や他の装置にＪＯＢを転送したことなどをユーザに通知する。
【０１１８】
図４３は本実施形態を実現するための処理の流れを表わしたメインのフローチャートである。
【０１１９】
まず、ステップS430では、利用者からの入力ＪＯＢや、システムが検知可能なデバイスなどからの入力ＪＯＢや、これらのＪＯＢを解析した結果や、アイドリング時に自分自身で生成した新たなＪＯＢがあるかどうかチェックして、ＪＯＢが入力されたかを判定する。入力されれば、ステップS431で、ＪＯＢテーブルに入力されたＪＯＢを追加する。ステップS432でＪＯＢテーブルにＪＯＢがあるかを調べ、あれば、ステップS433で、ＪＯＢを取り出す。ステップS434では、与えられた指示を解析し、その情報からＪＯＢの目的を解析する。ステップS435では、他の装置へのＪＯＢがあるかを判断して、あれば、ステップS436で他の装置を制御する。なければ、ステップS437で自装置を制御する。
【０１２０】
図４４は、メイン処理の中で、ステップS436で他の装置に対して処理を行う場合に他の装置を制御するときの処理の流れを表わすフローチャートである。
【０１２１】
ステップS440で、ＪＯＢ中で指定された装置の状況を判断し、この判断に基づいて、ステップS441では、指定された装置でJOBを実行することに問題があるか判断する。問題がなければ、ステップS442で、指定された装置にＪＯＢを送信する。指定された装置での実行に問題がある場合には、ステップS443で、指定された装置以外の装置で、そのJOBに適した装置があるかを調べ、あれば、その状況を判断する。その結果、指定された装置以外でそのＪＯＢを実行可能な装置があれば、ステップS445で、その装置にＪＯＢを転送し、ステップS446で、ＪＯＢを転送したことをユーザに通知する。一方、指定された装置以外の装置で、そのJOBに適した装置がないか、あっても現在利用できない場合は、ステップS447で、ＪＯＢの目的を損なわない最適なプランを立て、ステップS448で、そのプランをユーザに提案する。
【０１２２】
図４５は、メイン処理の中で、ステップS437で自分の装置で処理を行う場合の処理の流れを表わすフローチャートである。
【０１２３】
ステップS450で、自装置の状況を判断し、この判断に基づいて、ステップS451では、自装置でJOBを実行することに問題があるか判断する。問題がなければ、ステップS452で、ＪＯＢを実行する。自装置での実行に問題がある場合には、ステップS453で、自装置以外の装置で、そのJOBに適した装置があるかを調べ、あれば、その状況を判断する。その結果、自装置以外でそのＪＯＢを実行可能な装置があれば、ステップS445で、その装置にＪＯＢを転送し、ステップS446で、ＪＯＢを転送したことをユーザに通知する。一方、自装置以外の装置で、そのJOBに適した装置がないか、あっても現在利用できない場合は、ステップS447で、ＪＯＢの目的を損なわない最適なプランを立て、ステップS448で、そのプランをユーザに提案する。
【０１２４】
図４６は、図４１の(Ａ)において、スキャナ411から読み込んだ情報をプリンタ412にＡの経路で出力するよう指示されたが、スキャナ411の他装置状況判断部424において、プリンタ412に故障を発見したために、プリンタ413にＢの経路を通して出力を行なったときの図である。
【０１２５】
図４７は、図４１の(Ｂ)において、スキャナ411から読み込んだ情報をプリンタ412にＡの経路で出力するよう指示され、スキャナ411はプリンタ412の状況を確認しようとするが、離れた場所にあるため、ネットワークの状況を考慮して無条件に情報を送信し、プリンタ412が、自分自身が故障しているために、受取った情報（ＪＯＢ）をプリンタ413にＢの経路で転送した場合の図である。
【０１２６】
以下に図４６、４７の処理を行う過程を、図４３−４５のフローチャートに基づいて説明する。
【０１２７】
図４６のスキャナ411からプリンタ412へ出力ＪＯＢが発生した場合、スキャナ411の処理は、以下のようになる。
【０１２８】
まず、ステップS430で、情報をスキャンし、プリンタ412に情報を送信するＪＯＢを受取る。ステップS431で、ＪＯＢテーブルにＪＯＢを追加する。ステップS433で、ＪＯＢを取り出す。ステップS434で、データをスキャンし、このＪＯＢが、指示されたプリンタに送信するＪＯＢであることを理解する。ステップS435で、自分がスキャンした情報をプリンタ412で出力するという他の装置で行うＪＯＢがあることを判断する。この判断により、ステップS436で、図４４の他装置制御処理に処理を渡す。
【０１２９】
ステップS440で、指示されたプリンタ412の現在の状態を取得する。この結果、プリンタ412から故障中である情報を受取り、ステップS441で、出力不可能であることを判断する。この場合、故障中でなくても例えば、用紙切れ、トナー切れなどといった出力を行うことができない状態である場合も考えられる。ステップS443で、指示された装置であるプリンタ412では、ＪＯＢを実行することが不可能なため、ＪＯＢを実行可能な同様な他の装置を、ネットワーク上からコミュニケートをとり、検索する。ステップS444で、ＪＯＢを実行可能なプリンタ413を発見したので、プリンタ413でのＪＯＢの実行を決定する。
【０１３０】
ステップS445で、スキャンした情報をプリンタ413に対して送信する。ステップS446で、指示された以外のことを実行したので、指示した相手に対してＪＯＢの変更を行ったことを通知する。以上で、指示されたＪＯＢの処理を終了したので、次のＪＯＢが入力されるまで待つ。
【０１３１】
次に、図４７のスキャナ411からプリンタ412へ出力ＪＯＢが発生した場合の処理を説明する。
【０１３２】
スキャナ411では、ステップS430で、情報をスキャンし、プリンタ412に情報を送信するＪＯＢを受取る。ステップS431で、ＪＯＢテーブルにＪＯＢを追加し、ステップS433で、ＪＯＢを取り出す。ステップS434で、データをスキャンし、このＪＯＢが、指示されたプリンタに送信するＪＯＢであることを理解する。ステップS435で、自分がスキャンした情報をプリンタ412で出力するという他の装置に対して行うＪＯＢがあることを判断する。この判断により、ステップS436で、図４４の他装置制御処理に処理を渡す。
【０１３３】
ステップS440で、指示されたプリンタ412とコミュニケートしてその状況を知ろうとするが、プリンタ412が離れた場所にあることが確認されるので、プリンタ412の状態に関係なく情報を送信することを判断する。ステップS441で、プリンタ412は離れているので、問題ないものと判断する。ステップS442で、指示された装置であるプリンタ412にスキャンした情報を送信し、ＪＯＢを渡す。以上で、指示されたＪＯＢの処理を終了したので、次のＪＯＢが入力されるまで待つ。
【０１３４】
一方、プリンタ412では、ステップS430で、受信した情報を出力するＪＯＢを受取る。ステップS431で、ＪＯＢテーブルにＪＯＢを追加する。ステップS433で、ＪＯＢを取り出す。ステップS434で、受信した情報を自分が出力するＪＯＢであることを理解する。ステップS435で、他の装置に対するＪＯＢはないと判断する。ステップS437で、図４５の自装置制御処理に処理を渡す。
【０１３５】
ステップS450で、自分の現在の状態を見る。ステップS451で、自分は現在故障中でＪＯＢの実行ができないことを判断する。この場合、故障中でなくても例えば、用紙切れ、トナー切れなどといった出力を行うことができない状態である場合も考えられる。ステップS453で、ＪＯＢを実行可能な、自分と同様な他の装置をネットワーク上からコミュニケートをとり、検索する。
【０１３６】
ステップS454で、ＪＯＢを実行可能なプリンタ413を発見したので、プリンタ413でのＪＯＢの実行を決定する。ステップS455で、プリンタ412に送信されてきた情報をプリンタ413に対して再送信する。ステップS456で、指示された以外の処理を実行したので、指示した相手に対してＪＯＢの変更を行ったことを通知する。ここでは、指示した相手に通知を行ったが、出力先が指示した相手から離れた場所であるため、受取り人に対して通知を行うようにしてもよい。以上で指示されたＪＯＢの処理を終了したので、次のＪＯＢが入力されるまで待つ。プリンタ413は何も問題無く、受取った情報を出力するＪＯＢを実行可能であるため、ＪＯＢの実行を行なう。
【０１３７】
以上の実施形態では、各装置が自動的にＪＯＢの転送を行ったが、それぞれの装置に問題がある場合は、ユーザがＪＯＢを転送するように順位を付けて設定することも可能である。例えば、本実施形態においては、ユーザはスキャンした文書を指定したプリンタで印刷することをＪＯＢとして入力しているが、この時に、指定したプリンタが使用不可能な場合に印刷を代行する第２、第３のプリンタを同時にＪＯＢ中に設定しておいても良い。これにより、ステップs443またはステップs453において、ＪＯＢに適した機器として、設定された第２、第３のプリンタが選択され、その状況が判断される。また、逆にＪＯＢを受け取るプリンタの側に、自分自身が使用不可能な場合に印刷を代行する第２、第３のプリンタを設定しておいても良い。この時には、前述のようにＪＯＢ自身に第２、第３のプリンタを設定されてなかったとしても、ＪＯＢを受け取ったプリンタが、自分自身に設定されている指定にしたがって、ＪＯＢを転送することができる。
【０１３８】
また、故障や動作不能な場合以外であっても、ＪＯＢを行うことに適さないスペック、例えば、モノクロプリンタへのＪＯＢがカラーの情報の印刷である場合や、ＪＯＢ待ちが多く、すぐに処理できない場合などでも、ＪＯＢを行わない判断条件となりうる。
【０１３９】
〔実施形態１５〕
本実施形態は、プリンタが受信した緊急情報をユーザに出力するＪＯＢを実行するにあたり、図４５のステップS450の自装置の状況を判断する処理において、ＪＯＢの実行の問題を判断する判断材料として、目的のユーザのスケジュール情報も加味する場合の処理を表わす。
【０１４０】
ここでは、緊急情報を伝えるべきユーザが外出しており、外出先にネットワークに接続されたプリンタ413が存在する図４８に示す環境の処理を説明する。
【０１４１】
この場合、図４３の手順において、ステップS434で、ＪＯＢの目的は、受信した情報をユーザに緊急に連絡することであることを理解する。ステップS435で、他装置へのＪＯＢはこの時点ではないので、ステップS437に処理を渡す。ステップS437では、図４５の自装置制御処理に処理を渡す。
【０１４２】
ステップS450で、自装置の状況を判断する場合に、送信先として指示されたユーザのスケジュールを装置414に確認し、外出中であると判断する。ステップS451で、ユーザが外出中なので、緊急の連絡には、自装置での実行に問題があると判断する。ステップS453で、外出先に情報を出力可能なプリンタがあるか確認する。ステップS454で、出力可能なプリンタ412があることを確認したので、そのプリンタで出力することを決定する。ステップS455で、プリンタ412に情報を送信する。ステップS456で、ＪＯＢを転送したことを送り元と送り先のユーザに通知する。
【０１４３】
また、ステップS443で、ＪＯＢの転送先として同様の出力が可能な装置がない場合で、ユーザの使用する他の装置、例えばＰＣやＦＡＸ、電話などがあると判断した場合などには、ステップS444では、その装置で実行するとしてもよい。但し、情報をそのまま送信できないため、ステップS445では、プリンタへの出力情報を変換し、電子メール文書やＦＡＸ文書にして送信したり、音声情報に変換して出力することになる。
【０１４４】
この時、ステップS446では、出力に用いるメディアによっては、あらためて別のメディアを利用してＪＯＢを転送したことを通知する必要はなく、同一のメディアで同時に伝えることもできる。例えば、電話を利用して出力情報を送信する時には、出力情報を伝えた後又は前に転送したという事実を伝える方が、よりスマートであると考えられる。
【０１４５】
なお、ステップS443で、上述したＰＣやＦＡＸ、電話などを、プリンタで実行すべきＪＯＢに適した機器とは判断せずに、ステップS447で、それらの装置を利用することをＪＯＢの目的を損なわない最適なプランとして決定し、ステップS448で、そのプランを提案するようにしてもよい。
【０１４６】
〔実施形態１６〕
図４９に、本実施形態の処理手順を示す。図４９は、図４３のフローチャートにＪＯＢがなかった時の処理として、ステップS498〜500を加えたものである。ステップS498で、他の装置の現在の動作状況を調査し、ステップS499で、自分で実行可能なＪＯＢが実行されずに他の装置に溜まっているかを判断し、溜まっている場合に、ステップS500で、そのＪＯＢを取り出して自装置のＪＯＢテーブルに追加し、相手装置のＪＯＢテーブルから削除する。このようにして、本実施形態では、自らＪＯＢを見つけ出して処理する。
【０１４７】
図５０は、この処理を行う状況で、プリンタ412にＪＯＢが存在しておらず、プリンタ413が待ちＪＯＢを10件持っているので、プリンタ415が、プリンタ413のＪＯＢを取り出して、自装置で処理する概念を表わした図である。
【０１４８】
プリンタ415の処理の流れは以下の通りである。ステップS492で、ＪＯＢはないので処理をステップS498に渡す。ステップS498で、他の装置であるプリンタ412とプリンタ413の現在の状況を調査する。ステップS499で、プリンタ413に自分で実行可能なＪＯＢがあることを判断する。ステップS500で、プリンタ413からそのＪＯＢを取り出し、自分のＪＯＢテーブルに追加する。さらに、プリンタ413から、取り出したＪＯＢを削除する。ステップS490で、ＪＯＢの入力はない。ステップS492で、先ほど自分で追加したＪＯＢが存在するので、ＪＯＢの実行を行うために処理をステップS493に渡す。
【０１４９】
以降、実施形態１４、１５で説明した自らの装置で実行するための動作を行ない、処理を終了する。
【０１５０】
〔実施形態１７〕
図５１は、本実施形態の装置を用いたシステムにおける、プリントＪＯＢの流れ、及びその他の情報の流れを示した図である。なお、図中の太い矢印はプリントＪＯＢの流れを表し、点線の矢印はその他の情報の流れを表している。
【０１５１】
ただし、本実施形態で述べているプリントＪＯＢとは、印刷対象となっている文書、及び印刷枚数、印刷品質、印刷サイズなどの印刷時に参照されるパラメータ類を含めたものである。また、その他の情報には、各プリンタが持っている印刷中、正常、用紙無し等のステータスや、プリントＪＯＢスケジューリング部が持っているプリントＪＯＢのスケジュールがある。
【０１５２】
図５１において、クライアントマシン510では、プリントＪＯＢ作成部512でプリントＪＯＢを作成し、プリントＪＯＢ記憶部513にいったん記憶した後、プリントＪＯＢ送信部514により、プリントＪＯＢを作成したクライアントマシン510から、プリンタを管理するサーバマシン511に送信される。
【０１５３】
サーバマシン511では、送られてきたプリントＪＯＢをプリントＪＯＢ受信部516により受け取り、プリントＪＯＢのパラメータ類が未設定の場合はプリントＪＯＢ自動設定部517に渡し、すでに設定されている場合はプリントＪＯＢ自動変更部518に渡す。
【０１５４】
プリントＪＯＢ自動設定部517では、プリントＪＯＢから取得される緊急性、経済性、品質などを考慮しながら、未設定の印刷パラメータを設定する。一方、プリントＪＯＢ自動変更部518では、同様な処理を、すでに設定されているパラメータを変更することでも実現する。このようにして、設定または変更されたプリントＪＯＢは、プリントＪＯＢスケジューリング部520が持っているプリントＪＯＢのスケジュールに登録され、そこから順次プリントＪＯＢ送信部519へ読み出されて、または直接プリントＪＯＢ送信部519に渡り、印刷される。
【０１５５】
ここで、プリントＪＯＢ自動設定部517及びプリントＪＯＢ自動変更部518には、プリンタ状況認識部515を介して取得された、印刷中、正常、用紙無し等の使用可能なプリンタのステータスが渡り、プリントＪＯＢの設定または変更において利用される。また、同様に、プリントＪＯＢスケジューリング部520が持っているプリントＪＯＢの印刷スケジュールも渡り、利用される。
【０１５６】
また、図５１に表してあるように、プリントＪＯＢは異なる経路で流れることも想定される。例えば、プリントＪＯＢを作成したマシンと、プリンタを管理しているマシンが同じ場合には、プリントＪＯＢ送信部514を通らないこともありえる。
【０１５７】
図５２は、プリントＪＯＢ自動設定部517の処理の流れを表したフローチャートである。プリントＪＯＢ自動設定部517では、指定された品質を満足する範囲で、できるだけ速く、できるだけ経済的に印刷できるようにパラメータを自動設定する。
【０１５８】
図５２では、まずステップS520で、シュミレートの準備として、印刷時間やトナー使用量を決定する要因を初期化する。続いて、ステップS521で、品質決定変数を品質最高値（例えば５）で初期化し、ステップS522で、印刷時間をシュミレートする。ステップS523で、シュミレートされた印刷時間が指定値を満たすかを判定する。満たされる場合は、ステップS524で、トナー使用量をシュミレートする。ステップS525で、シュミレートされたトナー使用量が指定値を満たすかを判定する。満たされる場合は、ステップS526で、現在の品質決定変数の値にＪＯＢを変更する。
【０１５９】
ステップS523または525で、指定された値を満たさない場合、ステップS527で、品質決定変数を1つ減らす。ステップS528で、指定された品質が満たされるかを判定し、満たされるなら、ステップS522に処理が戻される。満たされなければ、自動設定不能エラーとなって終了する。
【０１６０】
図５３は、プリンタA521とプリンタB522の指定品質の違いによる、1文字あたりの印刷時間とトナー使用量を表した図である。これらの値は、各プリンタ固有の不変の値でも良いし、過去に行った印刷の所用時間やトナー使用量を測定し、この測定値から平均を取るようにした動的に変化する値でも良い。
【０１６１】
図５４は、本実施形態で印刷されるプリントＪＯＢの内容と、利用者が指定したパラメータを表した図である。本実施形態を用いたシステムでは、図５４で表したプリントＪＯＢの内容と、設定パラメータとをあわせてプリントＪＯＢと呼んでいる。本実施形態では、印刷時間とトナー使用量をシュミレートする為に、プリントＪＯＢの印刷量を文字数換算で500文字として説明している。また、利用者は緊急性のみを1分以内と指定し、経済性や品質はデフォルト値のまま指定しなかったものとしている。
【０１６２】
図５４の例で、プリントＪＯＢ自動設定部517が起動されると、まずステップS520のシュミレートの準備において、印刷時間やトナー使用量を決定する要因を初期化する。例えば、図５３の表に定義したように、プリンタＡ521及びプリンタＢ522の最低品質（＝1）の場合のそれぞれの1文字あたりの印刷時間は平均100mステップSと200mステップSであり、1文字あたりのトナー使用量は平均100mgと200mgである。
【０１６３】
続いて、ステップS521で、品質決定変数を品質最高値（例えば５）で初期化し、ステップS522で、印刷時間をシュミレートする。例えば、プリンタA521とプリンタB522は印刷可能であり、プリントＪＯＢスケジューリングでスケジュールされているプリントＪＯＢが1つも無いとすれば、すぐに印刷を開始することができ、待ち時間は不要である。よって、印刷対象のプリントＪＯＢに500文字含まれているとした場合、プリンタAでは250秒かかり、プリンタBでは500秒かかるとシュミレートされる。
【０１６４】
すると、ステップS523では、図５４の指定パラメータで指定された緊急性1分以内を満たすことができないので、ステップS527で、品質決定変数を1つ減らす。ここで、図５４の指定パラメータでは品質は指定されていないので、再びステップS522の印刷時間のシュミレートに処理が戻される。これらの処理が繰り返された結果、品質が最低品質の１になって初めて印刷時間がプリンタA521で50秒となり、緊急性を満たすので、品質を品質決定変数の値（＝１）に設定し、正常終了する。
【０１６５】
ここで、もし品質を２以上に設定していたとすると、利用者が設定したパラメータを満たすことができないので、自動設定不能エラーとなって終了する。
【０１６６】
〔実施形態１８〕
図５５は、プリントＪＯＢ自動変更部518の処理の流れを表したフローチャートである。プリントＪＯＢ自動変更部518では、指定された緊急性及び経済性を満足する範囲で、できるだけ高品質で印刷できるようにパラメータを自動変更する。その上で、すべての指定を満足することができない場合、最優先の指定を満足させ、その他の指定はできるだけ指定に近いように変更する。
【０１６７】
図５６は、本実施形態で印刷されるプリントＪＯＢの内容と、利用者が指定したパラメータを表した図である。本実施形態を用いたシステムでは、図５６で表したプリントＪＯＢの内容と、設定パラメータをあわせてプリントＪＯＢと呼んでいる。本実施形態では、印刷時間とトナー使用量をシュミレートする為に、プリントＪＯＢの印刷量を文字数換算で500文字として説明している。また、利用者はすべてのパラメータを設定したが、その中でも品質は最優先であると指定している。
【０１６８】
図５５において、プリントＪＯＢ自動変更部518が起動されると、まずステップS550で、シュミレートの準備において、印刷時間やトナー使用量を決定する要因を初期化する。例えば、図５３の表に定義したように、プリンタＡ及びプリンタＢの最低品質（＝1）の場合のそれぞれの1文字あたりの印刷時間は平均100mステップSと200mステップSであり、1文字あたりのトナー使用量は平均100mgと200mgである。
【０１６９】
続いて、ステップS551で、品質決定変数を品質最高値（例えば５）で初期化し、ステップS552で印刷時間をシュミレートする。例えば、プリンタA521とプリンタB522は印刷可能であり、プリントＪＯＢスケジューリング部520でスケジュールされているプリントＪＯＢが1つも無いとすれば、すぐに印刷を開始することができ、待ち時間は不要である。よって、印刷対象のプリントＪＯＢに500文字含まれているとした場合、プリンタA521では250秒かかり、プリンタB522では500秒かかるとシュミレートされる。
【０１７０】
すると、ステップS553では、図５６の指定パラメータで指定された緊急性１分以内を満たすことができないので、ステップS556で、品質決定変数を1つ減らす。ステップS557で、図５６の指定パラメータの品質の指定を満たすので、再びステップS552の印刷時間のシュミレートに処理が戻される。これらの処理が繰り返された結果、利用者が指定した品質（＝３）になっても、印刷時間はプリンタA521で150秒であり、緊急性を満たすことができない。そこで、ステップS556で、品質決定変数を１減らすと、ステップS557で、利用者が指定した品質を満たすことができなくなる為、ステップS558へ進み、品質が最優先の指定パラメータかどうかチェックされ、最優先の場合、ステップS560で、指定された品質でプリントＪＯＢを変更し、正常終了する。
【０１７１】
ここで、もし緊急性が最優先だったとすると、品質が最低品質の１になって初めて印刷時間がプリンタAで50秒となり、緊急性を満たすので、品質を品質決定変数の値（＝１）に設定し、正常終了する。
【０１７２】
〔実施形態１９〕
図５７は、本実施形態の装置を用いたシステムにおける、プリントＪＯＢの流れ、及びその他の情報の流れを示した図である。なお、図中の太い矢印はプリントＪＯＢの流れを表し、点線の矢印はその他の情報の流れを表している。
【０１７３】
ただし、本実施形態で述べているプリントＪＯＢとは、印刷対象となっている文書、及び印刷枚数、印刷品質、印刷サイズなどの印刷時に参照されるパラメータ類を含めたものである。また、その他の情報には、各プリンタが持っている印刷中、正常、用紙無し等のステータスや、プリントＪＯＢスケジューリングが持っているプリントＪＯＢのスケジュールがある。
【０１７４】
図５７において、クライアントマシン510では、プリントＪＯＢ作成部512でプリントＪＯＢを作成し、プリントＪＯＢ記憶部513にいったん記憶した後、プリントＪＯＢ送信部514により、プリントＪＯＢを作成したクライアントマシン510から、プリンタを管理するサーバマシン511に送信される。
【０１７５】
サーバマシン511では、送られてきたプリントＪＯＢをプリントＪＯＢ受信部516により受け取り、プリントＪＯＢ解釈部571に渡す。プリントＪＯＢ解釈部571では、受け取ったプリントＪＯＢに含まれるユーザからの指示を解釈し、システムが処理可能なパラメータ等の情報に変換する。プリントＪＯＢのパラメータ類が未設定の場合はプリントＪＯＢ自動設定部517に渡し、すでに設定されている場合はプリントＪＯＢ自動変更部518に渡す。
【０１７６】
プリントＪＯＢ自動設定部517では、プリントＪＯＢから取得される緊急性、経済性、品質などを考慮しながら、未設定の印刷パラメータを設定する。一方、プリントＪＯＢ自動変更部518では、同様な処理をすでに設定されているパラメータを変更することでも実現する。このようにして、設定または変更されたプリントＪＯＢは、プリントＪＯＢスケジューリング部520が持っているプリントＪＯＢのスケジュールに登録され、そこから順次プリントＪＯＢ送信部519へ読み出されて、または直接プリントＪＯＢ送信部に渡り、印刷される。
【０１７７】
ここで、プリントＪＯＢ自動設定部及びプリントＪＯＢ自動変更部518には、プリンタ状況認識部515を介して取得された印刷中、正常、用紙無し等の使用可能なプリンタのステータスが渡り、プリントＪＯＢの設定または変更において利用される。また、同様にプリントＪＯＢスケジューリング部520が持っているプリントＪＯＢの印刷スケジュールも渡り、利用される。
【０１７８】
また、図５７に表してあるように、プリントＪＯＢは異なる経路で流れることも想定される。例えば、プリントＪＯＢを作成したマシンと、プリンタを管理しているマシンが同じ場合には、プリントＪＯＢ送信部514を通らないこともありえる。
【０１７９】
本実施形態では、図５８に示すように、プリントＪＯＢのパラメータの設定を、自然言語を利用してあいまいに設定している。図１３０は、自然言語による入力文字列に対応して、パラメータ設定におけるその文字列の表わす意味と、その意味を完成させるために必要な要求項目とを示した図である。プリントＪＯＢ解釈部571では、プリントＪＯＢ設定パラメータとして渡された自然言語による指示を、図１３０に示した自然言語による入力文字列に対応した意味と、意味を完成させるために必要な要求項目とを参照して、次のように解釈する。
【０１８０】
入力された自然言語中の文字列「印刷」から、この文字列の意味するユーザの目的となるアクションは、〔印刷〕である。更に、そこから要求される項目、〔対象〕は同時に入力されたプリントＪＯＢの内容そのものであり、〔品質〕及び〔枚数〕は入力された自然言語中の解釈されていない部分で指定されているはずだと、予想される。そこで、文字列「取引先用１枚、メンバー用５枚」を解釈すると、高品位の〔品質〕で〔枚数〕１枚を印刷し、自由な〔品質〕で〔枚数〕５枚を印刷するように指定されていることが理解される。
【０１８１】
これ以降の、プリントＪＯＢ自動設定部517、及びプリントＪＯＢ自動変更部518の処理は、実施形態１７及び１８と同様である。
【０１８２】
〔実施形態２０〕
本実施形態では、図５９に示すように、プリントＪＯＢのパラメータの設定を、プリントＪＯＢの内容である文書自体に記載された配布先と枚数に基づいて行っている。プリントＪＯＢ解釈部571では、プリントＪＯＢの内容を解釈して、次のように動作する。
【０１８３】
アクションは、印刷である。
「取引先用」は、高品位と解釈し、枚数は１枚とする。
「ABCプロジェクト」は、「メンバー用」であり、品位は自由と解釈して、枚数は５枚とする（利用者はABCプロジェクトの一員であるという情報は事前に持っている。）。
【０１８４】
これ以降の、プリントＪＯＢ自動設定部517、及びプリントＪＯＢ自動変更部518以降の処理は、実施形態１７及び１８と同様である。
【０１８５】
〔実施形態２１〕
図６０は、本実施形態の装置を用いたシステムにおける、プリントＪＯＢの流れ、及びその他の情報の流れを示した図である。なお、図中の太い矢印はプリントＪＯＢの流れを表し、点線の矢印はその他の情報の流れを表している。
【０１８６】
ただし、本実施形態で述べているプリントＪＯＢとは、印刷対象となっている文書、及び印刷枚数、印刷品質、印刷サイズなどの印刷時に参照されるパラメータ類を含めたものである。また、その他の情報には、各プリンタが持っている印刷中、正常、用紙無し等のステータスや、プリントＪＯＢスケジューリング部520が持っているプリントＪＯＢのスケジュールがある。
【０１８７】
図６０において、クライアントマシン510では、プリントＪＯＢ作成部512でプリントＪＯＢを作成し、プリントＪＯＢ記憶部513にいったん記憶した後、プリントＪＯＢ送信部514により、プリントＪＯＢを作成したクライアントマシン510から、プリンタを管理するサーバマシン511に送信される。
【０１８８】
サーバマシン511では、送られてきたプリントＪＯＢをプリントＪＯＢ受信部516により受け取り、プリントＪＯＢ解釈部571に渡す。プリントＪＯＢ解釈部571では、受け取ったプリントＪＯＢに含まれるユーザからの指示を解釈し、システムが処理可能なパラメータ等の情報に変換する。プリントＪＯＢのパラメータ類が未設定の場合はプリントＪＯＢ自動設定部517に渡し、すでに設定されている場合はプリントＪＯＢ自動変更部518に渡す。また、プリントＪＯＢシュミレーション部601では、プリントＪＯＢで指定された設定での印刷をシュミレートし、印刷時間及びトナー使用量を求める。
【０１８９】
プリントＪＯＢ自動設定部517では、プリントＪＯＢから取得される緊急性、経済性、品質などを考慮しながら、未設定の印刷パラメータを設定する。一方、プリントＪＯＢ自動変更部518では、同様な処理をすでに設定されているパラメータを変更することでも実現する。このようにして、設定または変更されたプリントＪＯＢは、プリントＪＯＢスケジューリング部520が持っているプリントＪＯＢのスケジュールに登録され、そこから順次プリントＪＯＢ送信部519へ読み出されて、または直接プリントＪＯＢ送信部519に渡り、印刷される。
【０１９０】
ここで、プリントＪＯＢ自動設定部517及びプリントＪＯＢ自動変更部518には、プリンタ状況認識部515を介して取得された印刷中、正常、用紙無し等の使用可能なプリンタのステータスが渡り、プリントＪＯＢの設定または変更において利用される。また、同様にプリントＪＯＢスケジューリング部520が持っているプリントＪＯＢの印刷スケジュールも渡り、利用される。
【０１９１】
また、図６０に表してあるように、プリントＪＯＢは異なる経路で流れることも想定される。例えば、プリントＪＯＢを作成したマシンと、プリンタを管理しているマシンが同じ場合には、プリントＪＯＢ送信部514を通らないこともある。
【０１９２】
図６１は、プリントＪＯＢシュミレーション部601による処理のフローチャートである。プリントＪＯＢシュミレーション部601では、まずステップS611で、シュミレートの準備として、印刷時間やトナー使用量を決定する要因を初期化する。ステップS612で、プリントＪＯＢで指定された設定での印刷時間をシュミレートし、ステップS613で、プリントＪＯＢで指定された設定でのトナー使用量をシュミレートして、印刷時間及びトナー使用量を求める。
【０１９３】
具体的な方法は、実施形態１７及び１８で説明したものと同様である。
【０１９４】
〔実施形態２２〕
本実施形態では、プリンタに複数の出力トレイを設け、利用者に応じて出力するトレイを選択する。
【０１９５】
図６２は、本実施形態のプリンタシステムの処理手順のフローチャートである。プリンタシステムはプリントＪＯＢを受信すると、複数のプリントＪＯＢを同時に受け取った場合の対応などの処理を行った後、図６２の処理を起動する。
【０１９６】
図６３に、本実施形態のプリンタシステムのプリンタの外観図を示す。同図に示すように、このプリンタ631、632は、出力トレイを複数持ち、プリンタ631では、それぞれの出力トレイにそのトレイ上の文書が誰の文書であるかを表示する画面を持ち、プリンタ632では、共通画面にどの出力トレイに誰の文書があるかを表示する。また、それぞれの出力トレイ毎にあらかじめ利用者を設定しておけば、利用者専用の出力トレイになり、特に設定しておかなければそれぞれの出力トレイの利用者は必要に応じて変化することになる。
【０１９７】
本システムにより、文書の到着を知らせる、印刷の終了を知らせる、印刷済み文書の取り忘れを知らせる（センサーがついている）などの機能が実現される。
【０１９８】
以上の処理の流れを説明する。図６２において、ステップS621で、プリントＪＯＢに含まれる情報から、送付先情報を取得する。送付先情報は、実施形態２９で説明するようにプリントＪＯＢの内容中に記入された指定を解釈することで取得するか、Ｅｍａｉｌのように最初からプリントＪＯＢの内容とは別に設定された情報から取得される。この時、従来技術の使用例のように、通常のパソコンの出力デバイスとしてプリンタを使用する場合には、普通、送付先は指定されていないが、本実施形態を用いたシステムのように、ＦＡＸやＥｍａｉｌの代りのようにして使用する場合には、逆に送付先が指定されているのが普通である。ステップS622で、送付先が指定されているかどうかチェックする。ステップS623で、送付先の人に文書が届いたことを通知する。ステップS624で、プリントＪＯＢに含まれる情報から、送付元情報を取得する。送付元情報は、実施形態２９で説明するようにプリントＪＯＢの内容中に記入された指定を解釈することで取得するか、Ｅｍａｉｌのように最初からプリントＪＯＢの内容とは別に設定された情報から取得される。この時、従来のように、通常のパソコンの出力デバイスとしてプリンタを使用する場合には、普通、送付元は本システムの管理範囲にあるが、本実施形態を用いたシステムのように、ＦＡＸの代りのようにして使用する場合には、逆に送付元は管理範囲には無いのが普通である。
【０１９９】
ステップS625で、送付元が管理範囲にあるかどうかチェックする。ステップS626で、送付先が指定されている場合には送付先に対応して、出力トレイを選択する。送付先が指定されておらず、送付元だけが指定されている場合には送付元に対応して、出力トレイを選択する。ステップS627で、図６３の(a)のように、対応する出力トレイに、送付先または送付元の情報を表示する。または、図６３の(b)のように、共通表示画面に、送付先または送付元の情報と出力トレイの場所を表示する。この時、それぞれの出力トレイ毎にあらかじめ利用者を設定してあれば、利用者専用の出力トレイになり、特に設定しておかなければそれぞれの出力トレイの利用者は必要に応じて変化することになる。ステップS628で、印刷を実行する。ステップS629で、印刷が終了し、送付元が管理範囲にあるかチェックする。ステップS630で、送付元に印刷が終了したことを通知する。ステップS631で、一定時間文書が残っていて送付元が管理範囲にあるかチェックする。ステップS632で、送付元に印刷済み文書が長い間残っていることを通知する。
【０２００】
〔実施形態２３〕
本実施形態では、時間に関する情報を取り扱う。図６５は、本実施形態のシステムの機能構成を示す図である。処理部650は、理解部652、プランニング部653、実行部654、応答部655、知識ベース656を備え、データベース651と接続している。
【０２０１】
図６４は、本実施形態の全体的な処理の流れであり、図６５の機能構成における処理手順をフローチャート化したものである。
【０２０２】
ステップS640で、外部からの入力があるかを調べ、あれば、理解部652により、知識ベース656を参照して、ステップS641で、入力された文章を単語やセンテンス単位で解析し、更にステップS643で、入力内容の目的を解析し、理解する。ステップS644で、目的の理解に必要な情報が不足していないかを判断し、不足があれば、ステップS645でユーザに対して問い合わせを行い、ユーザからの回答を知識ベース656に学習してステップS643に戻る。不足がなければ、ステップS646に進む。また、ステップS640で入力がなければ、ステップS642で、実行すべき仕事を見つけ出して、ステップS646に進む。
【０２０３】
ステップS646では、プランニング部653により、目的を達成するためのプランニングを行なう。ステップS647では、プランニングのために必要な情報が不足していないかを判断し、不足があれば、ステップS648でユーザに対して問い合わせを行い、ユーザからの回答を知識ベース656に学習してステップS646に戻る。不足がなければ、ステップS649で、実行部654によりプランを実行する。この時、実行部654は、必要に応じて、データベース651にアクセスしたり、他のアプリケーションと交信したりする。そして、応答部655により、ステップS650で、レスポンスの実行をすべきかを判定し、する場合は、その内容を決定する。更に、ステップS651で、決定された内容に対応するレスポンスを作成してユーザに応答する。
【０２０４】
理解部652は、外部から入力された情報、例えばキーボード入力、音声入力、Email、FAX、ニュース情報などに対して、必要なら認識を行なった上で、内容の解析を行ない、文章中にある言葉から時間的な概念を解析し、時間に関わりのある文章の内容を理解するものである。
【０２０５】
図６７は、電子メールからスケジュール情報を抽出する例を示す図である。上述の処理は、具体的には図６７にあるように、Emailで受取った文書の内容を解析し、「２月２２日」「１３時３０分」「１５：００」という時間的概念を見つけ出して解析し、この概念に関わりのある文章「２月２２日の１３時３０分から１５：００までＢ会議室で、特許システム説明会を予定しています。」を理解することにより、時間に関連する行動をスケジュールへと対応づけることが可能となる。
【０２０６】
また、解析された時間的概念と現在時刻とを比較し、未来の時刻であれば、その行動をスケジュールに登録し、過去の時刻に関する記述であれば、スケジュールに登録せずに破棄する、あるいは過去の出来事の記録として、個人データベースなど、スケジュール以外の種類の情報として登録する。
【０２０７】
また、理解部652は、外部から入力された情報、例えばキーボード入力、音声入力、Email、FAX、ニュース情報などの内容の解析を行ない、文章中にある言葉の中にシステムがまだ知らない言葉（単語、概念など）や実行したことがないプランなどを発見したときには、その言葉やプランに緊急性がない場合は、その言葉やプランに関わる情報を順次見つけていくことで学習を行なっていき、知識ベース656に知識として貯える。
【０２０８】
具体的には、例えば、ＸＹＺという知らない言葉が出てきた時にＸＹＺという何かが存在することを記憶しておき、次に「ＸＹＺは非常においしい」「ＸＹＺは固い」などといった文章を解析することで、ＸＹＺは固くておいしい食べ物である。と学習する。
【０２０９】
プランについても、初めてのプランを指示された場合に、その時の状況から、例えば、ユーザが不在時のプランと理解すれば、ユーザ不在時のプランの立てかたの例として学習を行なうものである。
【０２１０】
更に、システムが行なった行動やプランについて、例えばユーザに関わる情報をニュースなどから取得した時に、その都度ユーザに対して報告を行なっているシステムに対して、ユーザが報告を受けた際に、「次からはこの情報の報告はしなくていいよ。」などといった自然言語でシステムに指示を出すことにより、システムはその情報の報告を行なわないように学習をすることもできる。
【０２１１】
以上のように、このシステムでは、理解部652で、外部から入力された情報の内容の解析を行ない、目的を解析し、プランニング部653で、目的を達成するためにシステムが行なわなければならない行動のプランを立てる。そして、実行部654で、処理の実行を行なうものである。また、応答部655により、実行した処理についてユーザに通知を行なう。
【０２１２】
例えば、図６７にあるようなEmailを受けた場合に、差出人の情報から、個人データベースに未登録の相手からのメールであると理解した場合には、メールからその人に関する情報を抽出し、データベース651の個人データベースに登録する。更に、それ以外に個人データベースに未登録の人物に関する情報がある場合にも、個人データベースに登録するようにしてもよい。
【０２１３】
またメールが説明会の案内であることを理解することにより、データベース651のユーザのスケジュールにアクセスし、既存のスケジュールデータとの時間のマッチングを行なう。新規スケジュールデータに既存のスケジュールデータとの衝突などの問題がなければ、このデータをスケジュールを追加登録するが、図６９で示すように、問題を発見した場合には、送信元に対する返事およびユーザに対する報告を作成する。
【０２１４】
このように、本システムは、受取った情報から内容を理解することにより、システムが行なうべきレスポンスを状況により作り出して実行するものである。
【０２１５】
なお、上記説明では、Emailを送ってきた相手に対して、システムがユーザに確認せずに返事を作成し、返送するという処理を行なったが、これは文書中に「都合の悪い方は、至急ご連絡下さい。」という文章があり、これを解析した結果から、応答の緊急度が高いと判断したために行なった行動である。ここで、開催予定がかなり先の日時であったり、任意参加などの会合で、応答の緊急度が低いと判断された場合には、応答に先立ってユーザに確認を行なうなど、緊急度に応じて行なう行動を決定するものである。
【０２１６】
また、自然言語によるユーザからの指示と同様に、ユーザからの自然言語入力に対して、スケジュールや個人データベース等にアクセスして応答することが可能である。
【０２１７】
例えば、「だれそれの電話番号は何番？」と自然言語で質問することにより、個人データベースのアクセスを行なったり、「１６日の会議は何処である？」と自然言語で質問を受けることによりスケジュールにアクセスし、ユーザに返事をすることが可能である。
【０２１８】
図６６は、本実施形態の全体的な処理を行なうシステムと外部との入出力の種類を表した図である。
【０２１９】
入力としては、キーボードから入力したり、電子メールとして受信した自然言語情報、あるいはスキャナから画像として入力される文書や画像、マイクなどから入力される音声、カメラから入力される画像などが扱える。スキャナにより読み取られた文書には文字認識処理を施し、音声には音声認識処理を施すことにより、自然言語の入力情報を得ることができる。
【０２２０】
入力において、入力無し（Idle）は、図６４のステップS642で示したように、外部からの入力が何もない場合にシステム自らが実行するべき仕事を探して、入力とするものである。例えば、与えられた仕事が無いアイドル状態の時に、ニュースをアクセスし、ユーザに関わりのある情報を自ら取りに行き、入力情報とする。
【０２２１】
また、出力としては、スケジュールなどのデータベースへの登録や、ファイル記憶装置へのファイリング、またはデータの削除。更には、ユーザへの通知や送信元への返答などがある。出力で重要なことは、システムの理解の範囲では処理を行なうことができないという判断をすることができ、できない旨の応答をするなど、処理ができない場合に他のアクションを行なうことが可能な点である。
【０２２２】
また、入出力の相手としては、ユーザや外部の装置、あるいはシステム内部の他の処理部あるいは別のアプリケーションなどがある。
【０２２３】
また、入ってきた文書を解析して、人に関する情報及び時間に関する情報をデータ抽出して、個人情報データベースやスケジュールデータに格納すると共に、期待されているアクションを類推するのに必要な情報も抽出して、プランニングで利用される。
【０２２４】
図６７の例では、入ってきた Email 文書を解析した結果、人に関する記述として、
0003884813.tif 000002
が存在しており、このうちメールアドレスが”kazuyo@abc.canon.co.jp”である人物が個人データベースに登録済みで、他の人物は未登録だとすると、そこから図６７のように、PERSON1,2,3の情報が抽出され、データベース651に登録される。
【０２２５】
一方、時間に関する情報の記述として、「 2月22日の13時30分から15:00までB会議室で、特許システム説明会を予定しています。」が存在するので、そこから EVENT1の情報が抽出される。
【０２２６】
さらに、期待されるアクションを類推するのに利用される記述として、「都合の悪い方は、至急ご連絡下さい。」が存在するので、図７０以降で説明する処理で利用される。
【０２２７】
図６８は、図６７および図６９の処理を実行するための処理の流れを、図６４のフローチャートを元に必要な部分を抜き出し、実行処理ステップS649をより具体的にあらわしたフローチャートである。
【０２２８】
以下に具体的に図６７，６９の流れに合わせて説明する。
【０２２９】
ステップS680で、Emailの入力があると、ステップS681で、入力されたEmail文書を単語やセンテンス毎に解析する。ステップS683で、シグネチャおよびヘッダから、「人の情報がある」、「説明会というイベントがある」ということを理解する。更に、「不都合の時に返事が必要である」ということを理解する。
【０２３０】
ステップS684で、人の情報を抽出し、データベースに登録するプラン、及び説明会イベントをスケジュールに登録するプランをたてる。ステップS685で、実行プランは存在する。ステップS686で、問題がないので、ステップS688へ処理を渡す。ステップS688で、人の情報を抽出しデータベースに登録し、ステップS685に戻る。
【０２３１】
図６７の場合、ステップS685で、説明会イベントをスケジュールに登録するという実行プランが存在する。ステップS686で、このイベントは問題無くスケジュールに登録できるのでステップS688へ処理を渡す。ステップS688で、スケジュールの登録を行なう。ステップS685に戻ると、実行プランはなく、ステップS689で通知文もないので、処理を終了する。
【０２３２】
図６９の場合、ステップS685で、説明会イベントをスケジュールに登録するという実行プランが存在する。ステップS686で、スケジュールの衝突を発見する。プランの実行には問題があるので、ステップS687で、都合が悪いので返事を送り、ユーザへ報告するようにプランを立て直す。ステップS685で、返事を書いて送信するプランが存在する。ステップS686で、プランの実行に問題は無いので、ステップS688で、都合が悪い旨の文書を作成し、送信元の相手にリプライ文書を送信する。ステップS685で、ユーザ通知用の文書作成プランが存在する。ステップS686で実行に問題は無く、ステップS688で、Emailの内容およびスケジュール衝突により、再考をお願いする返事を出したことをユーザに通知する文書を作成する。ステップS685で、実行プランはなく、ステップS689で、通知文があるので適宜ユーザに通知して、処理を終了する。
【０２３３】
図６９の例では、データ抽出されたスケジュール情報 EVENT1 と、以前から予定されていたスケジュール EVENT2を比較した結果、予定が重なっていることが分かる。更に、図６９の例で抽出した情報によれば、都合が悪い場合は連絡しなければならないこともわかる。そこで、本実施形態を用いたシステムでは、手紙作成の知識を利用して、予定が重なっている為会議に出席できないという旨を伝える手紙を作成し、自動的に返事を送信する。
【０２３４】
更に、本実施形態を用いたシステムが自動的に返事を出したことを、本実施形態を用いたシステムの利用者に通知する。
【０２３５】
〔実施形態２４〕
図７０は、利用者が音声により本実施形態のシステムに質問した場合の例を示す図である。
【０２３６】
利用者が「明日の会議はどこでやるんだっけ？」と音声で質問すると、システムは利用者のスケジュール情報を参照して、会議の場所を答えることができる。
【０２３７】
さらに、利用者が会議が行われる場所への行き方がわからない場合、「下丸子のどこにあるの？」と質問すると、それに対してデータベースを参照して、更に利用者にどのように説明すればわかりやすくなるかをプランニングした上で、説明ストーリを作成し、グラフィカルなイメージや音声を交えながら説明を実行する。
【０２３８】
図７１は、図７０の処理の流れを図６４の基本フローチャートに基づいて表わしたフローチャートである。ここでは、外部からの入力が質問となっている。
【０２３９】
１回目の質問に対する処理を説明する。ステップS710で、外部からの音声入力（明日の会議はどこでやるんだっけ？）が行われると、ステップS711で、入力文を解析する。ステップS712で、明日の会議に対する質問であり、ユーザの目的は、その場所を知ることであることを理解する。ステップS713で、質問に答えるため、以下のプランニングを行なう。▲１▼ 明日のスケジュールを取り出す。▲２▼ スケジュールに登録された場所を取得する。▲３▼ 取得した場所を通知するための文書作成を行なう。
【０２４０】
ステップS714で、この場合は情報の不足はないのでステップS716に処理を渡すが、スケジュールに複数の会議が存在した場合には、どの会議かがわからないため、ステップS715でユーザに問い合わせて、再度プランを立て直すことを実行することになる。ステップS716で、ステップS713で立てたプランを実行し、ユーザへの返事の文書を作成する。ステップS717で、ユーザに通知すべき文書が存在するので返事を行なうことを決定する。この時入力が音声であったことを理解し、返事も音声で行なうことも同時に決定する。ステップS718で、音声データに変換した文書をユーザに通知する。
【０２４１】
ここで、一旦処理は終了するが、続けてユーザからの質問が入力される。２回目の質問に対する処理を説明する。
【０２４２】
ステップS710で、外部からの音声入力（下丸子のどこにあるの？）が行われると、ステップS711で、入力文を解析する。ステップS712で、１回目の質問の継続質問であることを理解し、回答した名称の具体的な場所を尋ねる質問であることを理解する。
【０２４３】
ステップS713で、質問に答えるために、以下のプランニングを行なう。▲１▼ 文書では説明困難であることをプラン、▲２▼ 画像を順に流して説明することをプラン、▲３▼ 画像データベースと場所のデータベースから必要な画像を取得するプラン、▲４▼ 画像に合わせた文書を作成するプラン。
【０２４４】
ステップS714では、情報の不足はない。ステップS716では、ステップS713で立てたプランを順次実行し、画像に合わせたユーザへの返事の文書を作成する。ステップS717で、ユーザに通知するべき文書が存在するので、返事を行なうことを決定する。この時、入力が音声であったことを理解し、画像をモニターに表示しながら、説明を音声で行なうことも同時に決定する。ステップS718で、ユーザに通知する。以上で、図７０の一連の処理の流れは終了する。
【０２４５】
〔実施形態２５〕
図７２の例は、予定が重なった場合に、２つのスケジュールの優先度を評価して、どうすべきかをプランニングした上で利用者に提案を行う。
【０２４６】
つまり、この例の場合には、一方の予定が他方よりもより重要な場合、比較的重要でない方の予定をキャンセルするように提案している。
【０２４７】
それに対し、利用者はキャンセルを提案された予定について、代理を送ることが可能だという知識を持っている場合、そのようにシステムに答えることで、システムは、それにあわせたアクションを更に行うことができる。また、この時、代理を送るというプランについて学習することもできる。
【０２４８】
図７２は、図６８のフローチャートで説明したステップS686で、スケジュールの衝突を発見した場合の図６４のステップS646でのプランの立てかたの他の例を組み合わせたものである。
【０２４９】
図６８では、不都合の返事を無条件に相手に送信する処理として説明したが、ここではステップS646のリプランニングの処理方法として、複数のリプライニングを用いた処理を説明する。
【０２５０】
図７３は、スケジュール衝突時のリプライニングとして、文書の内容から優先度を評価してユーザへ提案するための処理のフローチャートである。この処理を以下で説明する。
【０２５１】
上記で述べたスケジュールの優先度は、スケジュール毎にユーザがあらかじめ設定しておいた情報や、スケジュールに含まれるイベントへの出席者や、スケジュールの目的や、受信した文書内容から解析される結果などから総合的に決定される。ここで、出席者から決定される優先度は、ユーザがあらかじめ出席者となるような人物に対して設定しておいても良い。
【０２５２】
また、スケジュールの目的から決定される優先度は、ユーザがあらかじめ設定しておいても良いし、過去の操作から学習したユーザが興味を持っている目的や分野との、共通性を考慮することで決定されるようにしてもよい。つまり、ユーザがコンピュータ関連の仕事に従事している場合、不動産関連のイベントよりは、コンピュータ関連のイベントのスケジュールの方が優先される。もちろん、ユーザが家の購入を検討しており、そのことがユーザに関する情報として記憶されているのであれば、不動産関連のイベントのスケジュールの方が優先されることもありえる。
【０２５３】
一方、文書内容の解析結果から決定される優先度としては、例えば「必ず出席して下さい」という記述の文書と、「できれば出席して下さい」という記述の文書のスケジュールが衝突した場合、前者の方が優先度が高いと判断されるなどとすることができる。
【０２５４】
図７３において、ステップS730で、既存のスケジュール情報を取得する。ステップS731で、新規のスケジュール情報の優先度を評価する。ステップS732で、両情報の優先度の比較を行なう。ステップS733で、比較結果からユーザに問い合わせるための通知文書（例えば、衝突する２つのスケジュールを示し、優先度の低い方について、キャンセルしてよいかなどをたずねる）を作成するプランを立てる。ステップS734で、作成した通知文をユーザに伝える。ステップS735で、プランの問い合わせに対するユーザからの返事を得る。ここで、ユーザの返事を実行するために、ユーザの返事を入力として再度プランニングするために、図６８の返事リプランニングと同様の処理を行なう（図７４）。
【０２５５】
図７４は、上述のリプランニングの処理のフローチャートである。
【０２５６】
ステップS740で、図７３で最終的に得た返事を入力とする。ステップS741で、入力文書を解析する。ステップS742では、スケジュールの変更、初めての指示プランであることを理解する。
【０２５７】
ステップS743では、以下のプランを立てる。(a)スケジュールを変更する。(b)代理の人に通知するための文書を作成する。(c)新しいプランを学習する。(d)ユーザに通知する文書を作成する。(e)思い出しスケジュールがあることを通知する。
【０２５８】
ステップS744では、ステップS743で立てたプランを実行する。(a)スケジュールを変更する。(b)代理の人に通知するための文書を作成し、通知する。(c)代理人を頼むというプランを学習する。(d)ユーザに通知するための文書を作成し、(e)思い出しスケジュールがあることを作成文書に付け加える。
【０２５９】
ステップS745では、ユーザへの通知文をユーザへ伝える。以上で、図７２の処理を実行するための処理の説明を終了する。
【０２６０】
〔実施形態２６〕
図７５は、本実施形態のシステムの入出力も含めた全体イメージを表す図である。図７６は、図７５のシステム全体の処理の流れを表わしたフローチャートである。
【０２６１】
Email、音声、キーボード入力、ＷＷＷ、電話、ＦＡＸ、スキャナ、カメラ等各種入力機器から入力された情報は、すべて入力Management部751で解析され(ステップS760)、Core部752で、内容を理解し、適切な処理をプランニングした後(ステップS761)、出力Management部753により、出力メディアを決定し、出力内容や出力経路の準備をした後(ステップS762)、Email、音声、ＷＷＷ、電話、ＦＡＸ、プリンタ、コピー機等各種出力機器から出力される。
【０２６２】
図７７〜７９は、図７６の全体フローチャートの各ステップであるステップS760(入力Management部751の処理)、ステップS761(Core部752の処理)、ステップS762(出力Management部753の処理)を具体的に表わしたフローチャートである。
【０２６３】
図７７において、入力Management部751は、ステップS770で、新規入力を待つ。ステップS771で入力された情報を取得する。ステップS772では、取得した入力情報の解析処理を必要なら認識を行なった上で実行する。この時、入力Management部751は、種々のメディアから情報を受けつけることができ、各メディアに応じた方法で、認識や解析を行なう。
【０２６４】
図７８において、Core部752は、図７７で解析された入力情報を受取り処理を行なう。
【０２６５】
ステップS780で、解析結果から入力情報の目的を解析、理解する。ステップS781では、入力情報の目的が自分（システム、ユーザ）とどのように関係しているか調べる。ステップS782で、目的に合わせて自分との関係から何を実行するべきかのプランニングを行なう。ステップS783では、ステップS782で作られたプランを実行する。
【０２６６】
図７９において、出力Management部753は、図７８で実行した結果からレスポンスする必要があるかを決定し、必要があれば、レスポンスを作成して出力する。
【０２６７】
ステップS790では、図７８で実行した結果の解析を行なう。ステップS791では、実行した結果に対するレスポンスがあるかを判定する。何もなければこのまま処理を終了する。レスポンスがある場合には、ステップS792で、外部からのレスポンスに対するレスポンスをどのようにするか決定する。ステップS793では、レスポンスを行なうメディアを決定する。ステップS794では決定したメディアに合わせたレスポンスの作成を行なう。ステップS795で作成したレスポンスをメディアに合わせて発行する。ステップS796で、レスポンスを実際に物理的に出力する。以上が、図７５の全体イメージを表わす処理である。
【０２６８】
例えば、ユーザに会議の開催を知らせるＥｍａｉｌが到着した場合、まず、入力Management部751により、図７７の手順で入力情報を解析する。この結果から、Core部752により、図７８の手順で、ユーザ及びシステムがどう対応すべきかをプランニングされ、処理される。その結果が、出力Management部753に渡され、図７９の手順で処理が行われ、レスポンスすべきとプランニングされていた場合、実際にレスポンスが行われる。
【０２６９】
ここで、Ｅｍａｉｌで知らされた会議の内容やそれ以前のユーザのスケジュールの状況によっては、ステップs782で、ユーザに積極的に通知することが必要だとプランニングされるので、レスポンスが必要となる。よって、ステップs791でレスポンスありと判断される。ステップs792では、レスポンスする内容が決定される。例えば、スケジュールが衝突している場合、どちらかのスケジュールの選択を促したり、参加すべきかどうかわからない会議の場合、その判断を問い合せるなどのレスポンスする内容自体がここで決定される。続いて、ステップs793において、上記で決定されたレスポンスの内容をもっとも効果的に伝えることができるメディアが、決定される。例えば、ユーザが外出先にいるならば、電話やＦＡＸ等の外出先のユーザにも通知することができるメディアが選択され、逆にパソコンなどを使用している最中ならば、さまざまな資料を効果的に表示することができるパソコン等のメディアが選択される。続いて、ステップs794、s795において、上記で決定された内容やメディアに合わせて、文書や画像が作成され、さらにメディアによっては自然言語音声に変換されるなどの方法によって、レスポンスが作成され、発行される。
【０２７０】
図８０は、図７５の全体的流れをさらに詳しく、入力された情報からどのようにしてデータが抽出されるかを説明するためのフローチャートである。
【０２７１】
本実施形態を用いたシステムでは、文書が入力された場合、まず、ステップS801で、文書のレイアウト、バーコードなどの種別判別用記号を参照して、文書のタイプを推測する。その結果、文書が手紙か、報告書か、特許公報かなどが推測できれば、ステップS803に進み、推測できなければ、ステップS810に進み、完全なＯＣＲを行なって文書タイプを確定する。
【０２７２】
ステップS803では、ＯＣＲにより、推測された文書タイプが正しいかを確認するために、文書タイプを確認するのに特徴的なブロックをＯＣＲして解釈する（図８２参照）。その結果、ステップS804で、手紙の宛先や特許公報の特許番号などがわかり、文書タイプを確認する。この確認された文書タイプが推測した文書タイプと一致すれば、ステップS806に進み、一致しなければ、ステップS810に進む。例えば、用紙の上部分に帳票の種類を表す文字列が印刷されている帳票類であれば、その用紙の上部をＯＣＲすることで文書タイプ確定が容易である。
【０２７３】
ステップS806では、上記確認された文書タイプの知識ベースを用いて、ＯＣＲにより特定ブロックを読み取り解釈し、ステップS807でその結果得られた情報と関係する情報が過去に存在したかどうかチェックをし、存在した場合ステップS808に進み、存在しなかった場合、ステップS810に進む。その結果、宛先や特許番号などがわかり、過去に送った手紙の返事であるかどうかなどが理解される。
【０２７４】
ステップS808では、上記理解された状況を元に、重要となる本文の内容等から目的を判断し、ステップS809で実行する処理を決定する。
【０２７５】
ステップS811では、上記で理解された目的から、その他のＯＣＲされていない範囲に解析範囲を広げて解析し、ステップS812以降で実際に処理を実行させる。その結果、必要ならばファイリングなどの処理が行われる。
【０２７６】
上記処理により、内容を推測しながらＯＣＲを行うことができるので、従来のようにいきなり完全なＯＣＲを行うよりも、効率よく正確なＯＣＲ結果を得ることが可能になり、ＯＣＲ結果を元に行われる処理も正しく行えるようになる。
【０２７７】
図８１は、データ抽出処理の対象となる手紙／faxの例を示す図である。
【０２７８】
この例において、ステップS801で、文書のレイアウトから文書のタイプを推測する。その結果、DocType1 ＝手紙／fax.となる。
【０２７９】
一方、ステップS803で、ＯＣＲにより、特定ブロックを読み取り、解釈する。（図８２参照）その結果、
From, To, Dear Sirなどが得られ、
ステップS804で、DocType2＝手紙／faxと確認される。
【０２８０】
図８０のステップS803で説明した、ＯＣＲによる特定ブロック読み取りを具体的に説明する。図８２は、この処理を説明する図である。
【０２８１】
本実施形態を用いたシステムでは、下記のようにスキャニングが実行される。
▲１▼解像度の低いプリスキャンにより、高速に読み込む。
▲２▼読み込まれた情報のフォームと、ＤＢ823に貯えてあるフォーム情報とを比較し、一致した場合フォーム以外に入力された情報または、フォーム毎に指定された領域(例えば、図８２のカード上の枠内の部分)の情報だけを高解像度で読み込む。
▲３▼上記で読み込まれた領域だけをＯＣＲの対象として解析し、処理を続行する。
【０２８２】
更に、この例では、同じフォームのカードが複数枚存在していることを想定しているので、一定時間間隔で読み込もうとしている文書は、同じフォームの可能性が高いので、まず、同じフォームのものとして処理を行い、矛盾が発生して初めてフォームが異なるものとして再解析を行う。
【０２８３】
これにより、処理速度の大幅な向上と、解析範囲を限定し、しかもフォームを特定することで解析ドメインを特定し、解析精度の大幅な向上が可能になる。
【０２８４】
図８０のステップS808で説明した、内容等からの目的の判断を具体的に説明する。
【０２８５】
本実施形態を用いたシステムでは、日付のデータを参照して、図８３の手順により、処理の判断が実行される。送り手が利用者の場合、下記の処理を実行する。
▲１▼日付が今日の場合、ＦＡＸで送信すると判断する。
▲２▼日付が昨日以前の場合、以前に同じ文書を送ったかどうか、同じ内容を見たことがあるか等をユーザに問い合せ、ファイリング、再送信、利用者の間違いかどうかを判断する。
▲３▼日付が明日以降の場合、日付に指定されている日まで保持するか、利用者の間違いかどうか問い合せる。
【０２８６】
具体的には、図８１の文書を例にして、Date1を文書の日付、Date2を今日の日付とした時、
0003884813.tif 000003
【０２８７】
図８３は、入力された文書から目的を解析する処理のフローチャートの一例である。文書が入力されると、ステップs830で送信者がユーザかどうか判定され、ユーザ以外の場合には入力された文書が受信した文書であると判断され、ステップs831で、それに対応してファイリングやデータ抽出等といった目的が洗い出され、終了する。
【０２８８】
一方、送信者がユーザの場合には、入力された文書がどのような文書なのかを更に解析する為に、ステップs832以降に進む。ステップs833で文書の日付と今日の日付が比較され、日付が近い場合には、ステップs835で、以前にその文書を送信したかどうかがチェックされ、送信していない場合にはその目的は「文書の送信」だと決定される。また、以前に送信した文書の場合には、ステップs843で、それに対応してファイリングや再送信等の目的が洗い出される。
【０２８９】
一方、文書の日付がかなり以前のものであった場合には、ステップs836に進み、送信したかどうかがチェックされ、送信した文書の場合、同じくステップs843に進む。送信していなかった場合には、ステップs837に進み、文書中の情報から他に日付が記載されていないかチェックされる。日付を見つけた場合には、同じくステップs843に進む。日付が無い場合には、目的として文書の送信が考えられるが、日付が間違えている可能性もあると判断される。
【０２９０】
また、文書の日付が現在の日付よりかなり先のものである場合には、ステップs840で、文書中の情報から他に日付の記載があるかどうかチェックされ、ステップs841で日付を見つけた場合には、目的は「文書の送信」だと決定される。日付が無い場合には、ステップs839に進む。
【０２９１】
〔実施形態２７〕
図８４は、本実施形態を用いたシステムの構成例の１つを示す図である。この例では、システムは現状のＦＡＸのように動作する。
【０２９２】
しかし、本実施形態のシステムによれば、利用者が送信先を指定することなしに、読み込まれた文書に付されたバーコードやカバーシートの情報から、文書の送信先が判断されて、適切な送信先へ送信することができる。
【０２９３】
これにより、プリンタ、ＦＡＸ、Ｅｍａｉｌ、ＷＷＷに適切に情報が送られることになる。
【０２９４】
〔実施形態２８〕
図８５は、本実施形態を用いたシステムの構成例の１つを示す図である。この例では、システムは、机の上にあるあらゆる文書を処理してくれる、デスクソータの機能を実現する。
【０２９５】
つまり、読み込まれた文書の内容に応じて、分類、ファイリング、スケジューリング、その他データ抽出、処理の自動実行が行われる。
【０２９６】
〔実施形態２９〕
図８６は、図８５で説明したシステムをさらに詳細に説明したものである。図８６に基づいて、図８７のフローチャートに従って、処理手順を具体的に説明する。
【０２９７】
図８７は、本実施形態の処理手順を表わすフローチャートである。図８８、図８９は、この処理中に利用される知識を表わしたものであり、図８８は、一般知識ベースの知識を表わしたものである。図８９は、カバーページに特定された分野の知識ベースの知識をあらわしたものである。本実施形態では、図８８、図８９で定義された情報を参照して、入力された文書中に含まれる文字列と、図中の文字列の欄で定義された文字列とを比較し、一致した項目の概念と、その意味を更に特定するRoleと、後続する情報を規定するCondition又は、指示された処理 Actionを取得し、解析を行う。
【０２９８】
図８７において、ステップS870で、カバーページをスキャンしてＯＣＲ処理を実行する。ステップS871で、図８８の知識ベースを参照し、送信者、受信者の氏名、電話番号、FAX番号などの情報を抽出する。ステップS872で、抽出した情報をデータベースに登録する。例えば、図８６の例では受信した文書のカバーページに「To: Macrohard Corp.」という文字列が含まれている。そこで、図８８の文字列の欄に定義されている項目と比較すると、一致する項目「To」が発見され、そのRoleは受信会社名または氏名であるので、受信者の情報として「Macrohard Corp.」が抽出される。
【０２９９】
ステップS873で、図８９のカバーページに特定された分野の知識ベースから、通知方法や手段、ファイリング作業や場所などのアクションやＪＯＢを取り出す。例えば、図８６の例では受信した文書のカバーページに「File: MH/Contract」という文字列が含まれている。そこで、図８９の文字列の欄に定義されている項目と比較すると、一致する項目「File」が発見され、指示されたアクションとして、ファイリングすることが取り出され、ファイリング場所の情報として、文書中から「MH/Contract」が抽出される。
【０３００】
ここで、Date1 = 1996年11月25日 ＆ Date2 = 1996年11月25日であるとすると、図８３につき説明したように、目的−文書送ると判断される。
【０３０１】
ステップS874では、本処理の目的のためのアクションが存在するか確認する。ステップS875では、相手に文書を送信することが目的であるので送信するアクションを実行する。ステップS876で、カバーページの情報からファイリングの必要があるか判断する。ステップS877で、図８６の例では必要があるので、指示された場所である「MH/Contract」にファイリングする。
【０３０２】
ステップS878で、ステップS876と同様に、カバーページの情報から送信者に通知する必要があるか判断する。送信者に音声で通知するように指示されているため、ステップS879で、相手に文書を送信したことを音声で送信者に通知する。ステップS880で、その他のアクションがあるかを判断する。ステップS881では、キーワード指定があるので、ＡＢＣというキーワードでインデックスを作成する。
【０３０３】
〔実施形態３０〕
図９０は、過去に行われた履歴を、音声入力された自然言語による指示に基づいて参照して、処理を実行する例を示す図である。図９０を基に、図９１のフローチャートに従って、処理の説明を行なう。
【０３０４】
図９１は、本実施形態の処理の流れを示すフローチャートである。ユーザから音声により、「Fax Contract again to John. Notify him by Phone.」という指示を受信すると、本システムは受信した自然言語による指示の目的を解析し、「Contractという文書をJohnにＦＡＸで再送信し、到着を電話で知らせる。」ということを理解する。そこで、具体的に文書Contractと、送信先Johnを特定して、処理を実行させる為に、図９１のフローを実行させる。
【０３０５】
ステップs910で、再送信ということは以前に送信が行われているので、データベースから履歴情報を取得する。その結果、文書Contract及びJohnが履歴情報から特定される。ステップS911で、パーソナルデータベースから John の宛先を取得する。データベース中には、John SmithとJohn Bushという2人のJohnが存在しているので、本来であれば送信先を特定することはできないはずであるが、ステップs910で履歴情報を参照したことで、以前に文書Contractを送ったJohnとは、John Smithであると判明し、送信先が特定される。ステップS912で、ファイリングデータベースから「Contract」文書を取得する。ステップS913で、送信先である John に文書を送信する。ステップS914では、通知指示「Notify him by Phone」があるので通知の必要があると判断する。ステップS915では、図８９と同様、知識ベースのルールから、受信者に電話での通知をするように、送信先のＦＡＸ901に指示を行なう。ステップS916で、その外のアクションは指示されていないので処理を終了する。
【０３０６】
更に、文書を受信したＦＡＸ901は、前述の通知指示にしたがって、JohnにMr.Doorsから文書を受信したことを、電話で通知する。なお、ＦＡＸ901が電話で通知することができない場合には、送信元で行なうようにしてもよい。
【０３０７】
〔実施形態３１〕
図９５は、解析された入力文書の内容から、利用者が何かを行うべきと判断し、実際に利用者に問い合せた後、必要な処理を自動実行した例のフローチャートである。図９２は、入力文書の例を示す図である。図９３は、システムとユーザとの会話の内容を表わした図である。図９４は、図９３の会話から判断してシステムが作成した出力文書である。
【０３０８】
図９５のフローチャートに基づいて、図９２の入力文書から図９４の出力文書を作成するまでの処理を説明する。
【０３０９】
ステップS950で、図９２の入力文書を解析して、以下の目的を理解する。(a) John Smith さんが11月28日の3時に横浜に到着すること。(b) John Smith さんは日本語が苦手なこと。(c)駅に迎えに来て欲しいこと。
【０３１０】
ステップS951で、理解した内容から、利用者が何かを行なうべきかを判断する。ここでは、駅に迎えに行かなければならないと判断するので、ステップS952に移る。ステップS952では、自分（システム）が代理で実行できるか判断する。ここでは、システムは自分で迎えに行くことはできないのでステップS953に移る。ステップS953で、利用者に問い合せる必要があるかどうか判断し、ステップS954へ進む。この例では、入力された文書の宛先から Aruna Rohra さん宛ての依頼であることを判断されるので、ステップS954に移る。
【０３１１】
ステップS954で、利用者（Aruna Rohraさん）に問い合わせる為の作業を行ない、問い合わせを行なう。この例では、ステップs951で理解した結果から、利用者にJohnさんを迎えに行かなければならないが、どう対処したら良いかを利用者に問い合せている。ステップS955で、問い合わせた結果から次に何を行なうかを判断し、行動を起こす必要があるか否かを判断する。この例では、利用者が、田中さんに迎えに行くことを頼むように、指示しているので、その指示にしたがって行動を起こす。よって、ここでは田中さんに代わりにお願いできないかを頼む必要が出てきたので、行動を起こす必要があると判断する。ステップS956で、田中さんに代理をお願いするための文書作成および連絡を行なう。ここでは電子メール用の文書を作成し、送信する。この例では、Johnさんが28日に到着するという情報と、利用者の代りに迎えに行って欲しいという指示と、この依頼の元になったオリジナルの文書を添付するということから、文書を自動作成している。
【０３１２】
以上で、入力文書から、利用者が実際に行動を起こさなければならない事柄(ここでは駅に迎えに行くということ)を実施するための処理の流れを説明した。
【０３１３】
〔実施形態３２〕
図９６は、リモコンによりシステムを操作する実施形態を示す図である。
【０３１４】
本実施形態のシステムによれば、デバイスとリモコンが直接あるいは間接的にコミュニケーションすることで、お互いにお互いを特定することができる。それにより、▲１▼自動デバイス特定、▲２▼デバイスの能力をデバイスから取得、▲３▼デバイス固有のＵＩ(ユーザ・インタフェース)、▲４▼音声による操作、▲５▼基本操作はすべてのデバイスに対して共通、▲６▼ユーザ固有のＵＩ、▲７▼状況に応じた自由度の高いＵＩといった機能が実現される。
【０３１５】
つまり、▲１▼リモコンを操作対象機器に向けるだけで操作対象機器を自動的に認識し、▲２▼デバイス毎の情報をデバイス自体からＩｒＤＡや無線ＬＡＮを介して取得し、▲３▼取得されたデバイス毎の情報からデバイス固有のＵＩを実現し、▲４▼音声による操作を可能にする一方、▲５▼基本的な操作は同一のリモコンで操作可能とすることで共通基本操作を実現し、▲６▼ユーザの識別情報を参照することで、ユーザ毎に必要な情報をデータベースやアドレスブックから取得して、ユーザ固有のＵＩを実現するだけでなく、▲７▼状況に応じて最適なＵＩを実現する。
【０３１６】
図９６では、リモコン960をＦＡＸ963に向けることで、ＦＡＸ963から機種識別情報を得て、この機種に対応するＵＩをアクティブとし、表示された「Fax to 」に続けて、タッチペンで、「Fax to John」という文字列を入力してＦＡＸ963に指示することで、パソコン964内のアドレスブック965からJohnのFAX番号を読み出して、その番号に対して、ＦＡＸ963にセットされた文書あるいはパソコン964内のファイル上の指定された文書を送信する。この詳細については、後述する。
【０３１７】
〔実施形態３３〕
図９７は、ステータスモニタの例を示す図である。
【０３１８】
本実施形態のシステムによれば、利用者が直接操作を行っている機械以外の情報を参照することができる。
【０３１９】
それにより、▲１▼リモート ＆ ハンディ管理、▲２▼自動デバイス特定、▲３▼ステータスを見るための共通入出力、▲４▼携帯電話の機能を持つ、▲５▼音声操作、▲６▼赤外線入出力可能なすべてのデバイスに対応できるといった機能が実現される。
【０３２０】
つまり、▲１▼対象機器から離れた場所であっても必要な情報を取得可能になり、▲２▼リモコンを操作対象機器に向けるだけで操作対象機器を自動的に認識し、▲３▼基本的な操作は同一のリモコンで操作可能とすることで共通基本操作を実現し、▲４▼リモコンに携帯電話の機能を持たせることで操作性を向上し、▲５▼音声操作を可能にし、▲６▼一般的なプロトコルを用いることで赤外線入出力可能なすべてのデバイスに対応可能となる。
【０３２１】
図９７では、ステータスモニタ970をプリンタ961、コピー機962、あるいはＦＡＸ963に向けて、タッチペンで、「Status」という文字列を入力して指示することで、ステータスモニタ970を向けたデバイスからステータス情報をステータスモニタ970に読み出して、ステータスモニタ970のユーザが各デバイスのステータスを確認することができる。また、例えば、パソコン964が、ステータスモニタ970からの命令が受信できない場所にある場合でも、このパソコン964とネットワークを介して通信可能なプリンタ961等に対して、パソコン964を指定してステータスを要求することにより、ネットワークとプリンタ961を介して、パソコン964からステータス情報をステータスモニタ970に読み出すこともできる。
【０３２２】
〔実施形態３４〕
図９８は、リモコン960が対象機種を認識し、対応するＵＩをリモコン960の内部から読み出して表示する例を示す図である。対象機種に向けていない状態でのリモコンには、図の中央のように、「操作したい機械に向けて下さい」というメッセージが表示されたデフォルト状態の画面となっている。
【０３２３】
ここで、リモコンと対象機種との間のコミュニケーションの流れを説明する。なお、下記の説明で▲２▼及び▲３▼は必須のものではない。例えば、▲４▼で対象機種が常に一定間隔でリモコンに向けた信号を発しているようにすれば、同じ効果を実現できる。あるいは、対象機種または他の装置によって、リモコン960が対象機種に向けられていることを、リモコン960と対象機種との位置関係から検出するようにしてもよい。また、▲４▼で、リモコン960が、対象機種の装置形状を見て対象機種を識別したり、対象機種に付されたバーコードを読み取って対象機種を識別したりするようにしてもよい。つまり、図９８では必須の部分だけを図示している。
【０３２４】
▲１▼利用者がリモコン960を対象機種に向ける。
▲２▼リモコン960から対象機種に対象機種識別信号要求信号を送るタイミングを決定する為に、利用者がリモコン960のタッチパネルなどに触れる。または、あらかじめ常に一定間隔で対象機種識別信号要求信号を送るように設定されている。
▲３▼リモコン960から対象機種識別信号要求信号を対象機種に送る。
▲４▼リモコン960からの対象機種識別信号要求信号の要求に従って、あるいはあらかじめ常に一定間隔で対象機種識別信号を送るように設定されていれば、その設定にしたがって、対象機種識別信号を送る。
▲５▼対象機種識別信号を受け取ったリモコン960は、信号が示す対象機種にあわせてＵＩを決定し、リモコン960内部で貯えている対応するＵＩを表示する。ここで、識別信号は機種毎としたが、機器毎とすることで、同機種でも機器毎に異なるＵＩを利用することもできる。
【０３２５】
図９９は、リモコンが対象機種を認識し、対応するＵＩをリモコン960の内部から読み出して表示する例における、リモコン側の処理の例を示すフローチャートである。リモコン側の処理の流れを説明する。
【０３２６】
ステップS991で、利用者の指示操作があるまで、待機する。ステップS992で、対象機種から対象機種識別信号を発信してもらう為の、対象機種識別信号要求信号を、赤外線等の方法で発信する。ステップS993で、対象機種から対象機種識別信号が発信されるまで待機する。ステップS994で、受け取った対象機種識別信号に対応するＵＩを、リモコン960が参照可能な内部のメモリなどから取得し、表示する。
【０３２７】
図１００は、リモコン960が対象機種を認識し、対応するＵＩをリモコン960の内部から読み出して表示する例における、対象機種側の処理の例を示すフローチャートである。対象機種側の処理の流れを説明する。
【０３２８】
ステップS1001で、リモコン960からの要求信号があるまで待機する。ステップS1002で、対象機種識別信号を、赤外線通信等の方法で発信する。
【０３２９】
〔実施形態３５〕
図１０１は、リモコンが対象機種からＵＩを受け取り、表示する例を示す図である。対象機種に向けていない状態でのリモコン960には、図１０１の中央のようにデフォルト状態の画面が表示されている。
【０３３０】
ここで、リモコンと対象機種との間のコミュニケーションの流れを説明する。なお、下記の説明で▲２▼から▲３▼は必須のものではない。例えば、▲４▼で対象機種が常に一定間隔でリモコンに向けた信号を発しているようにすれば、同じ効果を実現できる。あるいは、対象機種または他の装置によって、リモコン960が対象機種に向けられていることを、リモコン960と対象機種との位置関係から検出するようにしてもよい。また、▲４▼で、リモコン960が、対象機種の装置形状を見て対象機種を識別したり、対象機種に付されたバーコードを読み取って対象機種を識別したりするようにしてもよい。つまり、図１０１では必須の部分だけを説明している。
【０３３１】
▲１▼利用者がリモコン960を対象機種に向ける。
▲２▼リモコン960から対象機種にＵＩ要求信号を送るタイミングを決定する為に、利用者がリモコン960のタッチパネルなどに触れる。または、あらかじめ常に一定間隔でＵＩ要求信号を送るように設定されている。
▲３▼リモコン960からＵＩ要求信号を対象機種に送る。
▲４▼リモコン960からのＵＩ要求信号の要求に従って、ＵＩを送る。あるいはあらかじめ常に一定間隔でＵＩを送るように設定されていればその設定に従って、ＵＩを送る。
▲５▼ＵＩを受け取ったリモコン960は、ＵＩを表示する。
【０３３２】
図１０２は、リモコン960が対象機種からＵＩを受け取り、表示する例における、リモコン側の処理の例を示すフローチャートである。リモコン側の処理の流れを説明する。
【０３３３】
ステップS1021で、利用者の指示操作があるまで待機する。ステップS1022で、対象機種からＵＩを発信してもらう為の、ＵＩ要求信号を、赤外線通信等の方法で発信する。ステップS1023で、対象機種からＵＩが発信されるまで待機する。ステップS1024で、受け取ったＵＩを表示する。
【０３３４】
図１０３は、リモコンが対象機種からＵＩを受け取り、表示する例における、対象機種側の処理の例を示すフローチャートである。対象機種側の処理の流れを説明する。
【０３３５】
ステップS1031で、リモコン960からの要求信号があるまで待機する。ステップS1032で、ＵＩを、赤外線通信等の方法で発信する。
【０３３６】
〔実施形態３６〕
図１０４は、各デバイスのＵＩは無線ＬＡＮサーバ1041内にあり、リモコン960を対象機種であるコピー機962に向けて、ＵＩを要求すると、コピー機962からの依頼で、無線ＬＡＮサーバ1041からリモコン960に対してＵＩが送信され、表示される例を示す図である。
【０３３７】
対象機種に向けていない状態でのリモコン960には、図１０４の中央のようにデフォルト状態の画面が表示されている。
【０３３８】
ここで、リモコンと対象機種との間のコミュニケーションの流れを説明する。
▲１▼利用者がリモコン960を対象機種（ここでは、コピー機962とする）に向ける。
▲２▼リモコン960から対象機種にＵＩ要求信号を送るタイミングを決定する為に、利用者がリモコン960のタッチパネルなどに触れる。または、あらかじめ常に一定間隔でＵＩ要求信号を送るように設定されている。
▲３▼リモコン960自身を識別するためのリモコン識別情報（リモコンＡとする）と共にＵＩ要求信号を対象機種に送る。
▲４▼リモコンからリモコン識別情報とＵＩ要求信号を受け取った対象機種は、リモコン識別情報（リモコンＡ）と対象機種自身を識別する対象機種識別情報（コピー機)を、対象機種を管理しているサーバ1041に送り、ＵＩの送信を依頼する。
▲５▼サーバ1041はリモコン識別情報で示されるリモコン960に、対象機種識別情報で示される機種のＵＩを、無線ＬＡＮ等を介して発信する。
▲６▼発信された自分宛てのＵＩを受け取ったリモコン960は、ＵＩを表示する。
【０３３９】
図１０５は、リモコンが対象機種からＵＩを直接受け取らず、無線ＬＡＮ等を介してＵＩを受け取り、表示する例におけるリモコン側の処理のフローチャートである。
【０３４０】
リモコン側の処理の流れを説明する。ステップS1051で、利用者の指示操作があるまで待機する。ステップS1052で、対象機種に対して、ＵＩを発信してもらう為のＵＩ要求信号と、リモコン自身を識別するためのリモコン識別情報とを赤外線通信等の方法で発信する。ステップS1053で、どこからかＵＩが発信されるまで待機する。ステップS1054で、受け取ったＵＩを、表示する。
【０３４１】
図１０６は、リモコンが対象機種からＵＩを直接受け取らず、無線ＬＡＮ等を介してＵＩを受け取り、表示する例における、対象機種側の処理の例を示すフローチャートである。対象機種側の処理の流れを説明する。
【０３４２】
ステップS1061で、リモコン960からの要求信号があるまで待機する。ステップS1062で、リモコンから受け取ったリモコン識別情報と、自分自身の対象機種識別情報をサーバ1041に送信し、ＵＩの送信を依頼する。
【０３４３】
図１０７は、リモコンが対象機種からＵＩを直接受け取らず、無線ＬＡＮ等を介してＵＩを受け取り、表示する例における、サーバ側の処理の例を示すフローチャートである。サーバ側の処理の流れを説明する。
【０３４４】
ステップS1071で、対象機種からのＵＩ送信要求信号があるまで待機する。ステップS1072で、対象機種から受け取ったリモコン識別情報が示すリモコン960に、対象機種識別情報が示す機種のＵＩを発信する。
【０３４５】
〔実施形態３７〕
図１０８は、各デバイスのＵＩは無線ＬＡＮサーバ1041内にあり、リモコン960aあるいは960bを対象機種であるＦＡＸ963に向けて、ＵＩを要求すると、ＦＡＸ963からの依頼で、無線ＬＡＮサーバ1041からリモコン960aあるいは960bに対して利用者毎に異なるＵＩが送信され、表示される例を示す図である。
【０３４６】
対象機種に向けていない状態でのリモコン960aあるいは960bには、図１０８の中央のようにデフォルト状態の画面が表示されている。この画面は、リモコン960a、960bに共通である。
【０３４７】
ここで、利用者と、リモコン960aあるいは960bと、対象機種との間のコミュニケーションの流れを説明する。
▲１▼利用者がリモコン960aあるいは960bを対象機種に向ける。
▲２▼リモコン960aあるいは960bから対象機種にＵＩ要求信号を送るタイミングを決定する為に、利用者がリモコン960aあるいは960bのタッチパネルなどに触れる。または、あらかじめ常に一定間隔でＵＩ要求信号を送るように設定されている。
▲３▼リモコン960aあるいは960b自身を識別するためのリモコン識別情報（リモコンＡ、リモコンＢ）と、利用者自身を識別するための利用者識別情報（上級者、初心者）とを、共にＵＩ要求信号を対象機種に送る。
▲４▼リモコン960aあるいは960bから、リモコン識別情報と利用者識別情報とＵＩ要求信号を受け取った対象機種は、受け取ったリモコン識別情報と利用者識別情報と共に、対象機種自身を識別する対象機種識別情報を、対象機種を管理しているサーバ1041に送る。
▲５▼サーバ1041はリモコン識別情報で示されるリモコン960aあるいは960bに、利用者識別情報と対象機種識別情報で示されるＵＩを、無線ＬＡＮ等を介して発信する。図１０８の例では、初心者にとっては利用するのが難しい同報通信機能の為のＵＩを初心者には送らず、上級者だけに送っている。
▲６▼発信された自分宛てのＵＩを受け取ったリモコン960aあるいは960bは、ＵＩを表示する。
【０３４８】
上記の例では、利用者識別情報として、リモコンから利用者のレベル情報を送信するようにしていたが、リモコンからはユーザ名などのユーザを個別に識別する情報を送信するようにして、対象機器あるいはサーバにおいて、受信した識別情報からユーザのレベルを判別するようにしてもよい。
【０３４９】
上記の例ではＵＩに限って説明したが、利用者毎に異なる利用者識別情報を参照すれば、利用者宛てに到着した緊急メールの内容や、すぐに知らせたいスケジュールなどをＵＩに含めてリモコンに送信することができる。
【０３５０】
図１０９は、リモコンが対象機種からＵＩを直接受け取らず、無線ＬＡＮ等を介して利用者毎に異なるＵＩを受け取り、表示する例におけるリモコン側の処理の例を示すフローチャートである。リモコン側の処理の流れを説明する。
【０３５１】
ステップS1091で、利用者の指示操作があるまで待機する。ステップS1092で、対象機種からＵＩを発信してもらう為のＵＩ要求信号と、リモコン自身を識別するためのリモコン識別情報と、利用者自身を識別するための利用者識別情報を赤外線通信等の方法で発信する。ステップS1093で、どこからかＵＩが発信されるまで待機する。ステップS1094で、受け取ったＵＩを、表示する。
【０３５２】
図１１０は、リモコンが対象機種からＵＩを直接受け取らず、無線ＬＡＮ等を介して利用者毎に異なるＵＩを受け取り、表示する例における、対象機種側の処理の例を示すフローチャートである。対象機種側の処理の流れを説明する。
【０３５３】
ステップS1101で、リモコンからの要求信号があるまで待機する。ステップS1102で、リモコンから受け取ったリモコン識別情報と、利用者識別情報と共に、自分自身の対象機種識別情報をサーバ1041に送信し、ＵＩの送信を依頼する。
【０３５４】
図１１１は、リモコンが対象機種からＵＩを直接受け取らず、無線ＬＡＮ等を介して利用者毎に異なるＵＩを受け取り、表示する例における、サーバ側の処理の例を示すフローチャートである。また、図１１２は、対象機種と利用者識別情報から決定されるＵＩを示した表の一例である。サーバ側の処理の流れを説明する。
【０３５５】
ステップS1111で、対象機種からのＵＩ送信要求信号があるまで待機する。ステップS1112で、対象機種から受け取ったリモコン識別情報が示すリモコンに、図１１２のような定義を参照して、対象機種識別情報と利用者識別情報に対応するＵＩを発信する。
【０３５６】
〔実施形態３８〕
図１１３、１１４は、目の前にある操作対象機種が持っていない機能を実現する例を示す図である。この例の利用者とリモコンと対象機種との間のコミュニケーションの流れを説明する。
【０３５７】
▲１▼利用者がリモコン960を対象機種に向け、行いたい機能を指定する。
▲２▼リモコン960からの要求を受け取った操作対象機種は、サーバ1041にその要求を伝える。
▲３▼サーバ1041は要求された機能に対応した機種のＵＩを発信する。
▲４▼リモコン960は受信したＵＩを表示する。
▲５▼利用者はＵＩの指示にしたがって、操作を行う。この例の場合、利用者は目の前にあるコピー機962に送りたい文書をセットし、リモコン960で送り先を指示して実行させる。
▲６▼操作対象機器は、自分ができることは自分で実行し、自分ではできないことを他の機器に依頼する。この例の場合、コピー機962は文書の読み込みは行うが、ＦＡＸ送信することはできないので、ＦＡＸ963に文書データと共に、送信先などの操作指示の内容を送る。
▲７▼ＦＡＸ963は指示に従い、送られてきた文書データを指定された送信先にＦＡＸ送信する。
【０３５８】
上記の例で、コピー機962が自分ではできない機能を依頼する機器を決定するには、各機器が他の機器の機能についての知識を持っているようにしてもよいし、ネットワーク上の各機器に対して、その機能が実行可能かを問い合わせた結果、決定するようにしてもよい。あるいは、機能と対応する機種の知識を持つサーバ1041に問い合わせるようにしてもよい。
【０３５９】
〔実施形態３９〕
図１１５は、目の前にある操作対象機種とリモコンの途中に障害物があるなどの理由で、リモコンが操作対象機種と直接コミュニケーション取れなかった場合に、他の経路で間接的なコミュニケーションを試みる例を示す図である。
【０３６０】
ここで、利用者とリモコンと対象機種との間のコミュニケーションの流れを説明する。なお、下記の説明で▲２▼から▲３▼は必須のものではない。例えば、▲４▼で対象機種が常に一定間隔でリモコンに向けた信号を発しているようにすれば、同じ効果を実現できる。つまり、図１１５では必須の部分だけを図示している。
【０３６１】
▲１▼利用者がリモコン960を対象機種に向ける。
▲２▼リモコン960から対象機種にＵＩ要求信号を送るタイミングを決定する為に、利用者がリモコン960のタッチパネルなどに触れる。または、あらかじめ常に一定間隔でＵＩ要求信号を送るように設定されている。
▲３▼リモコン960からＵＩ要求信号を対象機種に送る。
▲４▼対象機器は、リモコン960からのＵＩ要求信号の要求に従って、あるいはあらかじめ常に一定間隔でＵＩを送るように設定されていればその設定にしたがって、ＵＩを送る。
▲５▼ＵＩを受け取ったリモコン960は、ＵＩを表示する。
▲６▼ここで、リモコン960では、ＵＩ要求信号送信から一定時間経過後、あるいは一定間隔でＵＩを送るように設定されている場合にはその間隔以上の間、ＵＩが送られてこない場合、別経路でＵＩ要求信号を送る。この例では、赤外線信号によるコミュニケーションを実現できない場合、無線ＬＡＮを利用したコミュニケーションを試みる。
▲７▼無線ＬＡＮを介して、取得したＵＩを表示する。
【０３６２】
図１１６は、目の前にある操作対象機種とリモコンの途中に障害物があるなどの理由で、リモコンが操作対象機種と直接コミュニケーション取れなかった場合に、他の経路で間接的なコミュニケーションを試みる例における、リモコン側の処理の例を示すフローチャートである。リモコン側の処理の流れを説明する。
【０３６３】
ステップS1161で、利用者の指示操作があるまで待機する。ステップS1162で、対象機種からＵＩを発信してもらう為のＵＩ要求信号と、リモコン自身を識別するためのリモコン識別情報を赤外線等の方法で発信する。ステップS1163で、ＵＩを受信したかどうかチェックする。ステップS1164で、要求送信後、一定時間経過したかどうかチェックする。ステップS1165で、対象機種からＵＩを発信してもらう為のＵＩ要求信号と、リモコン自身を識別するためのリモコン識別情報とをステップS1162での発信経路とは異なる、無線ＬＡＮ等の方法で発信する。ステップS1166で、受け取ったＵＩを、表示する。
【０３６４】
この場合、操作対象機種自体に直接送信したＵＩ要求信号を、無線ＬＡＮサーバ1041に送ることになるが、ＵＩ要求信号を受け取った無線ＬＡＮサーバ1041では、操作対象機種が不明であるので、まず、機種(機能)を選択するためのメニューが表示される。そして、選択された機種に対応するＵＩが表示される。このＵＩは、無線ＬＡＮサーバ1041がリモコン960から機種選択信号を受信して、その機種に対応するＵＩをリモコン960に送信するようにしてもよいし、前記メニューとともに、そのメニューから選択可能な複数のＵＩを送信するようにしてもよい。
【０３６５】
〔実施形態４０〕
図１１７は、利用者が行った操作・アクションと、時刻とを、それに関わる重要な情報と共に履歴として保存しておく例を示す図である。
【０３６６】
ここで、利用者が行った操作・アクションと、時刻を、それに関わる重要な情報と共に履歴として保存するときの流れについて、説明する。
▲１▼利用者が文書をＦＡＸ963にセットし、利用者（発信者）名と共に、Ａ社のａさんに送信するように指示する。
▲２▼ＦＡＸ963は指示にしたがって文書を送信すると共に、Tomさんの指示により、文書を aさんに送付した事実を、送付した文書及び送付時刻と共にサーバ1041に伝える。
▲３▼サーバ1041は、受け取った文書を適当な名前のファイル〔File ABC〕として保存すると共に、受け取った事実を履歴情報として保存する。
【０３６７】
図１１８は、利用者が行った操作・アクションと、時刻とを、それに関わる重要な情報と共に履歴として保存しておく例における、リモコン側の処理の例を示すフローチャートである。リモコン側の処理の流れを説明する。
【０３６８】
ステップS1181で、利用者の指示操作があるまで待機する。ステップS1182で、利用者が行った指示操作に対する要求信号と、リモコン自身を識別するためのリモコン識別情報と、利用者自身を識別するための利用者識別情報を赤外線通信等の方法で発信する。ステップS1183で、どこからかＵＩが発信されるまで待機する。ステップS1184で、受け取ったＵＩを、表示する。
【０３６９】
図１１９は、利用者が行った操作・アクションと、時刻を、それに関わる重要な情報と共に履歴として保存しておく例における、対象機種側の処理の例を示すフローチャートである。対象機種側の処理の流れを説明する。
【０３７０】
ステップS1191で、リモコン960からの要求信号があるまで待機する。ステップS1192で、リモコン960からの要求信号に対応する処理を実行する。図１１７の例の場合、利用者がセットした文書を読み込み、A社のaさんに送信することになる。ステップS1193で、リモコン960から受け取ったリモコン識別情報と、利用者識別情報と、自分自身の対象機種識別情報と、行ったアクションと関係する重要な情報とをサーバ1041に送信する。図１１７の例の場合、Tomさんの指示により、文書を aさんに送付した事実を、送付時刻と共に、この事実に関わる重要な情報である送付文書自体をサーバ1041に送信する。
【０３７１】
図１２０は、利用者が行った操作・アクションと、時刻とを、それに関わる重要な情報と共に履歴として保存しておく例における、サーバ側の処理の例を示すフローチャートである。また、図１２１は、この処理の結果、更新された履歴情報の一例を示す図である。サーバ側の処理の流れを説明する。
【０３７２】
ステップS1201で、対象機種からの要求信号があるまで待機する。ステップS1202で、受け取った事実に関わる重要な情報を保存する。図１１７の例の場合、Tomさんが送信を指示した文書を File ABC として保存している。ステップS1203で、受け取った事実により、履歴情報を更新する。図１１７の例の場合、Tomさんが1996/7/5 10:00に、Ａ社のａさんに文書を送ったことが、ステップS1201で保存したファイル名と共に、記録される。図１２１は更新された履歴情報の例であり、1996/7/3にMaryがFile  XYZを10部コピーしたという事実に、1996/7/5 10:00に、TomさんがFile ABCをＡ社のａさんに送信したという事実が追加されたものである。ステップS1204で、対象機種から受け取ったリモコン識別情報が示すリモコンに、処理が正しく終了したというＵＩを発信する。
【０３７３】
〔実施形態４１〕
図１２２及び図１２３は、利用者が行った操作・アクションと、時刻を、それに関わる重要な情報と共に履歴として保存した後に、履歴を元に操作を行った例を示す図である。
【０３７４】
ここで、利用者が行った操作・アクションと、時刻を、それに関わる重要な情報と共に履歴として保存した後に、履歴を元に操作を行ったときの流れについて、説明する。
▲１▼リモコン960は、コピー機962に向かって、Tomさんの履歴を見せるように指示する。
▲２▼コピー機962は、この指示に基づいて、履歴を管理するサーバ1041に、Tomさんの履歴を見せるように伝える。
▲３▼サーバ1041は、履歴情報を参照して、Tomさんが関わった履歴のみをＵＩとしてコピー機962に発信し、コピー機962は、このＵＩをリモコン960に送信する。
▲４▼Tomさんは、リモコン960に表示されている履歴の中から特定の事実を選択し、アクションを指示する。この例の場合、以前にＡ社に送った資料があらためて必要になったので、履歴の中から「 File ABCをＡ社のａさんに送信した」という事実を選択し、アクションとして「コピー」を指示することで、目の前のコピー機962からその資料を取り出そうとしている。
▲５▼コピー機962は、利用者からの「 File ABCをコピー」という指示をサーバ1041に伝える。
▲６▼サーバ1041は、対応する文書「 File ABC」をコピー機962に送る。
▲７▼コピー機962は、サーバ1041から受け取った文書を印刷する。
【０３７５】
上記において、ユーザは、目の前のコピー機962から必要な資料を取り出すために、履歴の中から「 File ABCをＡ社のａさんに送信した」という事実を選択するようにしていたが、出力したい文書の名称「 File ABC」を知っている場合には、履歴に代えてファイルの一覧を表示させ、その中からファイル名を選択したり、直接ファイル名を入力したりすることもできる。
【０３７６】
また、上記では、取り出す文書を、ＦＡＸ963で送信するとともに、サーバ1041に保存した文書としていたが、ネットワーク上のＰＣに保存されている文書などを対象とすることもできる。
【０３７７】
図１２４は、以上の実施形態で利用するリモコン960の構成例を示す図である。
【０３７８】
1241は表示部であり、液晶により表示を行なう。更に、表示部1241には抵抗膜が付いており、ペン1242を用いて情報を入力することができる。この入力は、ペン1242で画面上のボタンを選択するものでもよい。更に、文字認識機能を設け、ペン1242で書いた文字を入力することもできる。
【０３７９】
入力された情報は、通信部1243より他の機器へ送信することができる。また、装置内部には、制御のためのＣＰＵ1244とともに、記憶部1245が備えられており、入力情報や通信部1243から受信した情報、操作の履歴などを記憶する。記憶部1245としては、ＳＲＡＭカード、ＳＩＭＭ、ＨＤＤなどを用いることができる。また、バッテリー駆動であり、防滴になっている。
【０３８０】
図１２５は、以上の実施形態で利用するリモコン960の他の構成例を示す図である。
【０３８１】
1251は表示部であり、液晶あるいはCRTにより表示を行なう。更に、表示部1251に、オプションとしてタッチパネルを追加することもできる。これにより、指やペンなどを用いて情報を入力することができる。1252は、ボタンの操作により情報を入力する入力部である。入力された情報は、通信部1253より他の機器へ送信することができる。また、装置内部には、制御のためのＣＰＵ1254とともに、記憶部1255が備えられており、入力情報や通信部1253から受信した情報、操作の履歴などを記憶する。記憶部1255としては、ＳＲＡＭカード、ＳＩＭＭ、ＨＤＤなどを用いることができる。
【０３８２】
図１２５のリモコンは、記憶部1255を取り外しても、ボタンリモコンとして使用できる。また、通信部1253を取り外しても、電子メモ帳（PC）として使用できる。また、入力部1252を取り外しても、タッチパネルを用いて、図１２４のように使用することができる。
【０３８３】
図１２６は、以上の実施形態で利用するリモコン960の他の構成例を示す図である。
【０３８４】
1261は表示部であり、液晶により表示を行なう。1262は、ボタンの操作により情報を入力する入力部である。入力された情報は、赤外通信部1263より他の機器へ送信することができる。また、装置内部には、制御のためのＣＰＵ1264とともに、記憶部1265が備えられており、入力情報や赤外通信部1263から受信した情報、操作の履歴などを記憶する。記憶部1255としては、ＳＲＡＭカード、ＳＩＭＭ、ＨＤＤなどを用いることができる。更に、PCMCIAスロット1266が設けられており、例えば、PCMCIAカードを差し込んで、PCMCIAバスによる接続が可能となり、２系統の通信経路を利用できる。また、赤外通信部1263は発光による送信のみで、受信はPCMCIAバスを使用するようにしてもよい。もちろん、PCMCIAバスによる接続を使用しなくてもよい。
【０３８５】
なお、本発明は、上記実施形態の機能が実現できる範囲において、複数の機器（例えばコンピュータ本体、インターフェイス機器、ディスプレイなど）から構成されるシステムに適用しても、単一の機器からなる装置に適用してもよい。
【０３８６】
また、前述した実施形態の機能を実現するように各種デバイスを動作させることを目的として、該各種デバイスと接続された装置あるいはシステム内のコンピュータに、前述した実施形態の機能を実現するソフトウェアのプログラムコードを供給し、供給されたプログラムにしたがって、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）により、前記各種デバイスを動作させることによって実施したものも、本願発明の範囲に含まれる。またこの場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体、そのプログラムコードをコンピュータに供給する手段、例えばかかるプログラムコードを記憶した記憶媒体は、本発明を構成することになる。
【０３８７】
かかるプログラムコードを供給する為の記憶媒体としては、例えば、フロッピーディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【０３８８】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）、あるいは他のアプリケーションソフトなどと協働して前述の実施形態の機能が実現される場合にも、かかるプログラムコードは本願発明の範囲に含まれることは言うまでもない。
【０３８９】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０３９０】
本願発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードを格納すればよい。
【０３９１】
【発明の効果】
以上説明したように、本発明によれば、煩雑な操作を要さずに、処理の目的に応じた適切な印刷パラメータを利用した印刷が行なえる。また、１台のプリンタを複数のユーザにより効率よく利用できるという効果がある。
【図面の簡単な説明】
【図１】実施形態のシステム構成を表す図である。
【図２】実施形態の機能構成を示す図である。
【図３】実施形態の各装置のハードウェア構成を表す図である。
【図４】実施形態の処理の流れを示したフローチャートである。
【図５】複数のプリンタから、最適なプリンタを選択して印刷を実行する処理の流れを示した図である。
【図６】リモコンを利用する場合を説明する図である。
【図７】スキャナから文書を読み込み、特定のプリンタに送信しようとした場合の例を示す図である。
【図８】スキャナから文書を読み込み、スキャナが管理できない特定のプリンタに送信しようとした場合の例を示す図である。
【図９】スキャナから文書を読み込み、スキャナが管理できない特定のプリンタに送信しようとした場合の例を示す図である。
【図１０】スキャナから文書を読み込み、スキャナが管理できない特定のプリンタに送信しようとした場合の例を示す図である。
【図１１】プリンタの状態を通知する場合の例を示す図である。
【図１２】実施形態８の処理手順を表わしたフローチャートである。
【図１３】ファイリング処理で、ファイリングする情報を事前にユーザに伝える場合を示す図である。
【図１４】受信データの要否を判断し、不要な情報を破棄する場合を示す図である。
【図１５】実施形態９の処理手順を示すフローチャートである。
【図１６】実施形態９の情報の流れを示す図である。
【図１７】ＪＯＢ実行の詳細な手順を表わすフローチャートである。
【図１８】読み込む機密情報の例を示す図である。
【図１９】ＪＯＢテーブルの例を示す図である。
【図２０】印刷Windowの例を示す図である。
【図２１】ＪＯＢテーブルの例を示す図である。
【図２２】  <file A>の内容を示す図である。
【図２３】システム構成例示す図である。
【図２４】質問Windowの例を示す図である。
【図２５】ＪＯＢテーブルの例を示す図である。
【図２６】スケジュールデータの例を示す図である。
【図２７】利用者への問い合わせの例を示す図である。
【図２８】ＪＯＢテーブルの例を示す図である。
【図２９】ＪＯＢテーブルの例を示す図である。
【図３０】プリンタのステータスの変化の例を示す図である。
【図３１】プリンタステータス表を表わす図である。
【図３２】ＪＯＢテーブルの例を示す図である。
【図３３】質問Windowの例を示す図である。
【図３４】ＪＯＢテーブルの例を示す図である。
【図３５】プリンタのステータスの変化の例を示す図である。
【図３６】プラン及びアクションのルールを示す図である。
【図３７】プラン及びアクションのルールを示す図である。
【図３８】目的に対するアクション及び前提条件を示す図である。
【図３９】各デバイスのプロパティの例を示す図である。
【図４０】各デバイスのステータスの例を示す図である。
【図４１】複数の装置がネットワークに接続されている状態を表した図である。
【図４２】実施形態１４の処理を行うための機能構成を示す図である。
【図４３】実施形態１４の処理の流れを表わしたメインのフローチャートである。
【図４４】他の装置を制御するときの処理の流れを表わすフローチャートである。
【図４５】自分の装置で処理を行う場合の処理の流れを表わすフローチャートである。
【図４６】指示されたプリンタとは異なるプリンタで出力を行なう例を示した図である。
【図４７】指示されたプリンタが他のプリンタにＪＯＢを転送する例を示した図である。
【図４８】ユーザのプリンタがユーザの外出先のプリンタにＪＯＢを転送する例を示した図である。
【図４９】実施形態１６の処理の流れを示したフローチャートである。
【図５０】実施形態１６の処理の概念図である。
【図５１】実施形態１７のＪＯＢの流れを示す図である。
【図５２】プリントＪＯＢ自動設定部の処理の流れを表したフローチャートである。
【図５３】複数のプリンタの1文字あたりの印刷時間とトナー使用量を表した図である。
【図５４】プリントＪＯＢの内容と、利用者が指定したパラメータを表した図である。
【図５５】プリントＪＯＢ自動変更部の処理の流れを表したフローチャートである。
【図５６】プリントＪＯＢの内容と、利用者が指定したパラメータを表した図である。
【図５７】実施形態１９のＪＯＢの流れを示す図である。
【図５８】プリントＪＯＢのパラメータを自然言語を利用して設定する例を説明する図である。
【図５９】プリントＪＯＢのパラメータの設定を、文書自体で設定する例を説明する図である。
【図６０】実施形態２１のＪＯＢの流れを示す図である。
【図６１】プリントＪＯＢシュミレーション部による処理のフローチャートである。
【図６２】実施形態２２のプリンタシステムの処理手順のフローチャートである。
【図６３】実施形態２２のプリンタシステムのプリンタの外観図である。
【図６４】実施形態２３の処理手順を示すフローチャートである。
【図６５】実施形態２３のシステムの機能構成を示す図である。
【図６６】実施形態２３の全体的な処理を行なうシステムと外部との入出力の種類を表した図である。
【図６７】電子メールからスケジュールを抽出する例を示す図である。
【図６８】実施形態２３の具体的な処理手順を示すフローチャートである。
【図６９】スケジュールが衝突する例を示す図である。
【図７０】利用者が音声によりシステムに質問した場合の例を示す図である。
【図７１】実施形態２４の処理手順を示すフローチャートである。
【図７２】衝突するスケジュールを調整する例を示す図である。
【図７３】衝突するスケジュールのリプランニングの処理手順を示すフローチャートである。
【図７４】返事のリプランニングの処理手順を示すフローチャートである。
【図７５】実施形態２６のシステムの入出力も含めた全体イメージを表す図である。
【図７６】実施形態２６のシステム全体の処理の流れを表わしたフローチャートである。
【図７７】入力Management部の処理の流れを表わしたフローチャートである。
【図７８】  Core部の処理の流れを表わしたフローチャートである。
【図７９】出力Management部の処理の流れを表わしたフローチャートである。
【図８０】データ抽出処理の手順を表わしたフローチャートである。
【図８１】データ抽出処理の対象となる文書の例を示す図である。
【図８２】特定ブロック読み取り処理を説明する図である。
【図８３】日付データを参照した処理の判断手順を示すフローチャートである。
【図８４】実施形態２７の情報の流れを示す図である。
【図８５】実施形態２８の情報の流れを示す図である。
【図８６】実施形態２８の情報の流れを示す図である。
【図８７】実施形態２８の処理手順を示すフローチャートである。
【図８８】一般知識ベースの知識を表わした図である。
【図８９】カバーページに特定された分野の知識ベースの知識をあらわした図である。
【図９０】過去に行われた履歴を音声で参照して、処理を実行する例を示す図である。
【図９１】実施形態３０の処理の流れを示すフローチャートである。
【図９２】入力文書の例を示す図である。
【図９３】システムとユーザとの会話の内容を表わした図である。
【図９４】会話から判断してシステムが作成した出力文書である。
【図９５】利用者に問い合せた後、必要な処理を自動実行した例のフローチャートである。
【図９６】リモコンによりシステムを操作する実施形態を示す図である。
【図９７】ステータスモニタの例を示す図である。
【図９８】リモコンが対象機種を認識し、対応するＵＩを表示する例を示す図である。
【図９９】リモコンが対象機種を認識し、対応するＵＩを表示する例における、リモコン側の処理のフローチャートである。
【図１００】リモコンが対象機種を認識し、対応するＵＩを表示している例における、対象機種側の処理のフローチャートである。
【図１０１】リモコンが対象機種からＵＩを受け取り、表示する例を示す図である。
【図１０２】リモコンが対象機種からＵＩを受け取り、表示する例における、リモコン側の処理のフローチャートである。
【図１０３】リモコンが対象機種からＵＩを受け取り、表示する例における、対象機種側の処理のフローチャートである。
【図１０４】リモコンが対象機種からＵＩを直接受け取らず、無線ＬＡＮ等を介してＵＩを受け取り、表示する例を示す図である。
【図１０５】リモコンが無線ＬＡＮ等を介してＵＩを受け取り、表示する例におけるリモコン側の処理のフローチャートである。
【図１０６】リモコンが無線ＬＡＮ等を介してＵＩを受け取り、表示する例における、対象機種側の処理の例を示すフローチャートである。
【図１０７】リモコンが無線ＬＡＮ等を介してＵＩを受け取り、表示する例における、サーバ側の処理の例を示すフローチャートである。
【図１０８】リモコンが無線ＬＡＮ等を介して利用者毎に異なるＵＩを受け取り、表示する例を示す図である。
【図１０９】リモコンが無線ＬＡＮ等を介して利用者毎に異なるＵＩを受け取り、表示する例におけるリモコン側の処理のフローチャートである。
【図１１０】リモコンが無線ＬＡＮ等を介して利用者毎に異なるＵＩを受け取り、表示する例における、対象機種側の処理のフローチャートである。
【図１１１】リモコンが無線ＬＡＮ等を介して利用者毎に異なるＵＩを受け取り、表示する例における、サーバ側の処理のフローチャートである。
【図１１２】対象機種と利用者識別情報から決定されるＵＩを示した表を表わす図である。
【図１１３】目の前にある操作対象機種が持たない機能を実現する例を示す図である。
【図１１４】目の前にある操作対象機種が持たない機能を実現する例を示す図である。
【図１１５】目の前にある操作対象機種と直接コミュニケーション取れなかった場合の対応の例を示す図である。
【図１１６】実施形態３９のリモコン側の処理のフローチャートである。
【図１１７】利用者が行った操作・アクションと、時刻とを、それに関わる重要な情報と共に履歴として保存している例を示す図である。
【図１１８】実施形態４０のリモコン側の処理のフローチャートである。
【図１１９】実施形態４０の対象機種側の処理のフローチャートである。
【図１２０】実施形態４０のサーバ側の処理のフローチャートである。
【図１２１】更新された履歴情報の一例を示す図である。
【図１２２】履歴を元に操作を行った例を示す図である。
【図１２３】履歴を元に操作を行った例を示す図である。
【図１２４】リモコンの構成例を示す図である。
【図１２５】リモコンの構成例を示す図である。
【図１２６】リモコンの構成例を示す図である。
【図１２７】事前通知を行うかどうかを指定した情報を示す図である。
【図１２８】ＪＯＢの目的に応じた装置が存在しない場合の情報の流れを示す図である。
【図１２９】最適な方法をユーザに提案するウィンドウの表示例を示す図である。
【図１３０】パラメータ設定における文字列の表わす意味と、その意味を完成させるために必要な要求項目とを示した図である。
【図１】
0003884813.tif 000004
【図２】
0003884813.tif 000005
【図３】
0003884813.tif 000006
【図４】
0003884813.tif 000007
【図５】
0003884813.tif 000008
【図６】
0003884813.tif 000009
【図７】
0003884813.tif 000010
【図８】
0003884813.tif 000011
【図９】
0003884813.tif 000012
【図１０】
0003884813.tif 000013
【図１１】
0003884813.tif 000014
【図１２】
0003884813.tif 000015
【図１３】
0003884813.tif 000016
【図１４】
0003884813.tif 000017
【図１５】
0003884813.tif 000018
【図１６】
0003884813.tif 000019
【図１７】
0003884813.tif 000020
【図１８】
0003884813.tif 000021
【図１９】
0003884813.tif 000022
【図２０】
0003884813.tif 000023
【図２１】
0003884813.tif 000024
【図２２】
0003884813.tif 000025
【図２３】
0003884813.tif 000026
【図２４】
0003884813.tif 000027
【図２５】
0003884813.tif 000028
【図２６】
0003884813.tif 000029
【図２７】
0003884813.tif 000030
【図２８】
0003884813.tif 000031
【図２９】
0003884813.tif 000032
【図３０】
0003884813.tif 000033
【図３１】
0003884813.tif 000034
【図３２】
0003884813.tif 000035
【図３３】
0003884813.tif 000036
【図３４】
0003884813.tif 000037
【図３５】
0003884813.tif 000038
【図３６】
0003884813.tif 000039
【図３７】
0003884813.tif 000040
【図３８】
0003884813.tif 000041
【図３９】
0003884813.tif 000042
【図４０】
0003884813.tif 000043
【図４１】
0003884813.tif 000044
【図４２】
0003884813.tif 000045
【図４３】
0003884813.tif 000046
【図４４】
0003884813.tif 000047
【図４５】
0003884813.tif 000048
【図４６】
0003884813.tif 000049
【図４７】
0003884813.tif 000050
【図４８】
0003884813.tif 000051
【図４９】
0003884813.tif 000052
【図５０】
0003884813.tif 000053
【図５１】
0003884813.tif 000054
【図５２】
0003884813.tif 000055
【図５３】
0003884813.tif 000056
【図５４】
0003884813.tif 000057
【図５５】
0003884813.tif 000058
【図５６】
0003884813.tif 000059
【図５７】
0003884813.tif 000060
【図５８】
0003884813.tif 000061
【図５９】
0003884813.tif 000062
【図６０】
0003884813.tif 000063
【図６１】
0003884813.tif 000064
【図６２】
0003884813.tif 000065
【図６３】
0003884813.tif 000066
【図６４】
0003884813.tif 000067
【図６５】
0003884813.tif 000068
【図６６】
0003884813.tif 000069
【図６７】
0003884813.tif 000070
【図６８】
0003884813.tif 000071
【図６９】
0003884813.tif 000072
【図７０】
0003884813.tif 000073
【図７１】
0003884813.tif 000074
【図７２】
0003884813.tif 000075
【図７３】
0003884813.tif 000076
【図７４】
0003884813.tif 000077
【図７５】
0003884813.tif 000078
【図７６】
0003884813.tif 000079
【図７７】
0003884813.tif 000080
【図７８】
0003884813.tif 000081
【図７９】
0003884813.tif 000082
【図８０】
0003884813.tif 000083
【図８１】
0003884813.tif 000084
【図８２】
0003884813.tif 000085
【図８３】
0003884813.tif 000086
【図８４】
0003884813.tif 000087
【図８５】
0003884813.tif 000088
【図８６】
0003884813.tif 000089
【図８７】
0003884813.tif 000090
【図８８】
0003884813.tif 000091
【図８９】
0003884813.tif 000092
【図９０】
0003884813.tif 000093
【図９１】
0003884813.tif 000094
【図９２】
0003884813.tif 000095
【図９３】
0003884813.tif 000096
【図９４】
0003884813.tif 000097
【図９５】
0003884813.tif 000098
【図９６】
0003884813.tif 000099
【図９７】
0003884813.tif 000100
【図９８】
0003884813.tif 000101
【図９９】
0003884813.tif 000102
【図１００】
0003884813.tif 000103
【図１０１】
0003884813.tif 000104
【図１０２】
0003884813.tif 000105
【図１０３】
0003884813.tif 000106
【図１０４】
0003884813.tif 000107
【図１０５】
0003884813.tif 000108
【図１０６】
0003884813.tif 000109
【図１０７】
0003884813.tif 000110
【図１０８】
0003884813.tif 000111
【図１０９】
0003884813.tif 000112
【図１１０】
0003884813.tif 000113
【図１１１】
0003884813.tif 000114
【図１１２】
0003884813.tif 000115
【図１１３】
0003884813.tif 000116
【図１１４】
0003884813.tif 000117
【図１１５】
0003884813.tif 000118
【図１１６】
0003884813.tif 000119
【図１１７】
0003884813.tif 000120
【図１１８】
0003884813.tif 000121
【図１１９】
0003884813.tif 000122
【図１２０】
0003884813.tif 000123
【図１２１】
0003884813.tif 000124
【図１２２】
0003884813.tif 000125
【図１２３】
0003884813.tif 000126
【図１２４】
0003884813.tif 000127
【図１２５】
0003884813.tif 000128
【図１２６】
0003884813.tif 000129
【図１２７】
0003884813.tif 000130
【図１２８】
0003884813.tif 000131
【図１２９】
0003884813.tif 000132
【図１３０】
0003884813.tif 000133