(57)【要約】      （修正有）【課題】サインインが容易な手書き入力装置を提供する。【解決手段】タッチパネルに接触している入力手段２５００の位置に基づいて手書きされたストロークデータを表示する手書き入力装置２であって、ストロークデータを認識してテキストデータに変換する手書き認識制御手段と、ストロークデータに基づき、ユーザーを認証する認証制御手段と、認証制御手段がユーザーの認証が成功したと判定した場合、テキストデータと共にサインインを受け付ける表示部品を表示する表示手段と、を有する。【選択図】図２
2020173788.tif 000002
【特許請求の範囲】
【請求項１】
タッチパネルに接触している入力手段の位置に基づいて手書きされたストロークデータを表示する手書き入力装置であって、
前記ストロークデータを認識してテキストデータに変換する手書き認識制御手段と、
前記ストロークデータに基づき、ユーザーを認証する認証制御手段と、
前記認証制御手段がユーザーの認証が成功したと判定した場合、前記テキストデータと共にサインインを受け付ける表示部品を表示する表示手段と、
を有することを特徴とする手書き入力装置。
【請求項２】
前記手書き認識制御手段が変換したテキストデータに基づいて前記手書き入力装置が実行する操作コマンドを認識する操作コマンド認識制御手段を、有し、
前記表示手段は、前記操作コマンドとして前記表示部品を表示することを特徴とする請求項１に記載の手書き入力装置。
【請求項３】
前記手書き認識制御手段が変換したテキストデータが、前記手書きサインデータを登録する前記操作コマンドの文字列と部分一致した場合、
前記表示手段は、前記手書きサインデータを登録するための前記操作コマンドを前記テキストデータと共に表示することを特徴とする請求項２に記載の手書き入力装置。
【請求項４】
前記手書き認識制御手段が変換したテキストデータが、サインアウトするための前記操作コマンドの文字列と部分一致した場合、
前記表示手段は、サインアウトするための前記操作コマンドを前記テキストデータと共に表示することを特徴とする請求項２又は３に記載の手書き入力装置。
【請求項５】
前記入力手段と通信する入力手段通信手段と、
前記入力手段の識別情報に対応付けて、前記入力手段の制御データを保存する制御データ保存手段と、
サインインを受け付ける前記表示部品の押下を受け付けた場合、前記表示部品の押下時に前記入力手段通信手段が受信した前記入力手段の識別情報に対応付けて、認証が成功したと前記認証制御手段が判定したユーザーの識別情報を前記制御データ保存手段に登録する制御手段と、を有することを特徴とする請求項２〜４のいずれか１項に記載の手書き入力装置。
【請求項６】
サインインを受け付ける前記表示部品の押下を受け付けた後、
前記制御手段は前記入力手段通信手段が受信した前記入力手段の識別情報に、前記制御データ保存手段において対応付けられている前記ユーザーの識別情報を取得し、
前記ユーザーの識別情報により特定される、ユーザーに関するユーザー定義データを用いて、前記操作コマンドを実行することを特徴とする請求項５に記載の手書き入力装置。
【請求項７】
前記ユーザー定義データには、ユーザーごとにユーザー名、パスワード、又は、フォルダーファイル名が定義されており、
前記制御手段は、前記ユーザーの識別情報により特定されるユーザー名、パスワード、又は、フォルダーファイル名を前記操作コマンドに設定して該操作コマンドを実行することを特徴とする請求項６に記載の手書き入力装置。
【請求項８】
前記手書き認識制御手段が変換したテキストデータが、前記ユーザー定義データを変更するための前記操作コマンドの文字列と部分一致した場合、
前記表示手段は、前記ユーザー定義データを変更するための前記操作コマンドを前記テキストデータと共に表示することを特徴とする請求項６又は７に記載の手書き入力装置。
【請求項９】
前記手書きサインデータを登録するための前記操作コマンドの押下を受け付けた場合、
前記表示手段は、手書きサインデータを登録するためのフォームを表示し、
前記認証制御手段は前記フォームに入力された前記手書きサインデータを登録することを特徴とする請求項５に記載の手書き入力装置。
【請求項１０】
前記認証制御手段は前記手書きサインデータを登録する場合、前記手書きサインデータを識別する識別情報を採番し、前記ユーザーの識別情報を採番して、ユーザーに関する情報を定義するユーザー定義データに前記手書きサインデータの識別情報と前記ユーザーの識別情報を対応付けて登録することを特徴とする請求項９に記載の手書き入力装置。
【請求項１１】
前記ユーザー定義データを変更するための前記操作コマンドの押下を受け付けた場合、
前記表示手段は、前記ユーザー定義データの変更を受け付けるためのフォームを表示し、
前記手書き認識制御手段は、前記フォームに入力された変更値で前記ユーザー定義データを変更することを特徴とする請求項８に記載の手書き入力装置。
【請求項１２】
サインアウトするための前記操作コマンドの押下を受け付けた場合、
前記制御手段は、前記操作コマンドの押下時に前記入力手段通信手段が受信した前記入力手段の識別情報に対応付けられている、前記ユーザーの識別情報を前記制御データ保存手段から削除することを特徴とする請求項５に記載の手書き入力装置。
【請求項１３】
前記制御手段は、フォームへの手書き入力とフォーム以外の手書き入力を区別せずに手書き入力を受け付けることを特徴とする請求項９又は１１に記載の手書き入力装置。
【請求項１４】
前記表示手段は、前記ストロークデータの位置に応じた位置に前記操作コマンドを含む操作ガイドを表示することを特徴とする請求項２〜１３のいずれか１項に記載の手書き入力装置。
【請求項１５】
前記表示手段は、前記ストロークデータの位置に基づいた画面内の位置に、前記操作コマンドを含む操作ガイドを表示することを特徴とする請求項２〜１３のいずれか１項に記載の手書き入力装置。
【請求項１６】
前記認証制御手段は、前記ストロークデータが予め登録されている手書きサインデータと適合するかに基づきユーザーを認証することを特徴とする請求項１に記載の手書き入力装置。
【請求項１７】
タッチパネルに接触している入力手段の位置に基づいて手書きされたストロークデータを手書き入力装置が表示する手書き入力方法であって、
手書き認識制御手段が、前記ストロークデータを認識してテキストデータに変換するステップと、
認証制御手段が、前記ストロークデータに基づきユーザーを認証するステップと、
表示手段が、前記認証制御手段がユーザーの認証が成功したと判定した場合、前記テキストデータと共にサインインを受け付ける表示部品を表示するステップと、
を有することを特徴とする手書き入力方法。
【請求項１８】
タッチパネルに接触している入力手段の位置に基づいて手書きされたストロークデータを表示する手書き入力装置に、
前記ストロークデータを認識してテキストデータに変換するステップと、
前記ストロークデータに基づきユーザーを認証するステップと、
認証するステップでユーザーの認証が成功したと判定された場合、前記テキストデータと共にサインインを受け付ける表示部品を表示するステップと、
を実行させることを特徴とするプログラム。
【請求項１９】
手書き入力装置と情報処理システムとが通信する入力システムであって、
前記手書き入力装置は、
ディスプレーに接触しているペン又はユーザーの指の位置を用いて、ストロークデータを受け付ける手書き入力手段と、
前記手書き入力手段が受け付けた前記ストロークデータを表示手段に表示する表示制御手段と、
前記手書き入力手段が受け付けた前記ストロークデータを前記情報処理システムに送信して、前記ストロークデータから変換されたテキストデータとサインインを受け付ける表示部品を受信する受信手段と、を有し、
前記情報処理システムは、
前記手書き入力装置から送信された前記ストロークデータを認識してテキストデータに変換する手書き認識制御手段と、
前記ストロークデータに基づきユーザーを認証する認証制御手段と、
前記認証制御手段がユーザーの認証が成功したと判定した場合、前記テキストデータと共にサインインを受け付ける表示部品を前記手書き入力装置に送信する送信手段と、
を有する入力システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、手書き入力装置、手書き入力方法、プログラム、及び入力システムに関する。
【背景技術】
【０００２】
一般的なコンピュータ制御のホワイトボード装置又は手書き入力が可能なアプリケーション（以下、手書き入力装置という）では、入力手段がペン又は指に限られている。このため、文字の色などを変更するペン機能と文字の消去などの編集機能をユーザーが切り替えて使えるように操作メニューが用意されている。通常、ペン機能メニューでは色や太さ等を選択でき、編集機能メニューでは消去、移動、変倍、回転、切り取り、コピー、貼り付け等を選択できる（例えば、特許文献１参照。）。
【０００３】
特許文献１には、ペンボタンの押下により、色設定、透明度設定、太さ設定、線種設定、スタンプ設定、及び動作設定のメニューが表示される手書き入力装置について開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の手書き入力装置では、サインインが容易でないという問題があった。すなわち、手書き入力装置にユーザーがサインインするために、例えば多くの操作が必要であったり、ユーザー名とパスワードの入力が容易でなかったり、ＩＣカードリーダーなど特別なハードウェアが必要であったりした。
【０００５】
本発明は、上記課題に鑑み、サインインが容易な手書き入力装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題に鑑み、本発明は、タッチパネルに接触している入力手段の位置に基づいて手書きされたストロークデータを表示する手書き入力装置であって、前記ストロークデータを認識してテキストデータに変換する手書き認識制御部と、前記ストロークデータに基づき、ユーザーを認証する認証制御部と、前記認証制御部がユーザーの認証が成功したと判定した場合、前記テキストデータと共にサインインを受け付ける表示部品を表示する表示部と、を有することを特徴とする。
【発明の効果】
【０００７】
サインインが容易な手書き入力装置を提供することができる。
【図面の簡単な説明】
【０００８】
【図１】手書き入力装置にユーザーがサインインする際のサインイン操作方法の比較例を示す図である。
【図２】手書き入力装置へのサインインの概略を説明する図である。
【図３】ペンの斜視図の一例を示す図である。
【図４】手書き入力装置の全体構成図の一例を示す図である。
【図５】手書き入力装置のハードウェア構成図の一例である。
【図６】手書き入力装置とペンが有する機能について説明する図である。
【図７】定義済み制御データの一例を示す図である。
【図８】手書き認識辞書部の辞書データの一例を示す図である。
【図９】文字列変換辞書部の辞書データの一例を示す図である。
【図１０】予測変換辞書部の辞書データの一例を示す図である。
【図１１】操作コマンド定義部が保持する操作コマンド定義データとシステム定義データの一例を示す図である。
【図１２】手書きオブジェクトにより選択された選択オブジェクトがある場合の操作コマンド定義データの一例を示す図である。
【図１３】操作コマンド定義部が保持するユーザー定義データの一例を示す図である。
【図１４】手書きサインデータ保存部が保持する手書きサインデータの一例を示す図である。
【図１５】手書き入力保存部が保存している手書き入力保存データの一例を示す図である。
【図１６】ペンＩＤ制御データ保存部が保存するペンＩＤ制御データを説明する図である。
【図１７】操作ガイドと操作ガイドが表示する選択可能候補の一例を示す図である。
【図１８】操作ガイドの位置と手書きオブジェクト矩形領域表示の位置の関係を説明する図である。
【図１９】手書きオブジェクト矩形領域表示の上方に表示された操作ガイドを示す図である。
【図２０】選択オブジェクトの指定例を説明する図の一例である。
【図２１】手書きオブジェクトがある場合の操作コマンド定義データに基づく操作コマンドの候補の表示例を示す図である。
【図２２】手書きオブジェクトがある場合の操作コマンド定義データに基づく操作コマンドの候補の表示例を示す図である。
【図２３】９０度の角度情報の入力方法を説明する図である。
【図２４】角度情報の別の入力方法を説明する図である。
【図２５】手書きサインデータの登録方法を説明する図である。
【図２６】ユーザーが登録した手書きサインデータである「すずき」を手書きした場合に表示される操作ガイドの一例を示す図である。
【図２７】ユーザー定義データの変更方法を説明する図である。
【図２８】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である（その１）。
【図２９】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である（その２）。
【図３０】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である（その３）。
【図３１】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である（その４）。
【図３２】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である（その５）。
【図３３】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である（その６）。
【図３４】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である（その７）。
【図３５】手書き入力装置の他の構成例を示す図である。
【図３６】手書き入力装置の他の構成例を示す図である。
【図３７】手書き入力装置の他の構成例を示す図である。
【図３８】手書き入力装置の他の構成例を示す図である。
【図３９】手書き入力システムのシステム構成図の一例である（実施例２）。
【図４０】情報処理システムのハードウェア構成図の一例である。
【図４１】手書き入力システムが有する機能をブロック状に示す機能ブロック図の一例である。
【図４２】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である（その１）。
【図４３】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である（その２）。
【図４４】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である（その３）。
【図４５】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である（その４）。
【図４６】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である（その５）。
【図４７】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である（その６）。
【図４８】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である（その７）。
【図４９】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である（その８）。
【発明を実施するための形態】
【０００９】
以下、本発明を実施するための形態の一例として、手書き入力装置及び手書き入力装置が行う手書き入力方法について図面を参照しながら説明する。
【実施例１】
【００１０】
＜手書き入力装置の比較例について＞
本実施形態における手書き入力装置の説明の便宜上、まず、手書き入力装置へのサインインに関する比較例について簡単に説明する。
【００１１】
図１は、手書き入力装置２にユーザーがサインインする際のサインイン操作方法の比較例を示す。図１（ａ）はディスプレーの操作画面１０１を示す。図１（ｂ）はサインイン画面１０２を示す。図１（ｃ）はサインイン画面１０２の拡大図とソフトキーボード１０５を示す。サインイン画面１０２は、ユーザー名入力欄１０３とパスワード入力欄１０４を有しており、ユーザーが入力したユーザー名とパスワードの組み合わせが手書き入力装置２に登録されていれば、認証が成功してユーザーが識別された状態で手書き入力装置２を使用できるようになる。
【００１２】
手書き入力装置２にはペンが付属しており、文字、数字、記号、アルファベット等（以下単に、文字等という）等を手書きできるようになっているが、サインイン時は操作画面１０１に表示されたソフトキーボード１０５をユーザーが操作して、ユーザー名とパスワードをペンで押下する必要がある。キーボードは両手を下向きにして打鍵するのに使いやすい入力装置であって、操作画面１０１に表示されたソフトキーボード１０５の各キーをペンで押下しやすいようには設計されていない。つまり、ソフトキーボード１０５は、キーボードが付属していない装置でもユーザーがキー入力できるように実物のキーボードが模倣されているに過ぎない。
【００１３】
操作画面１０１上に表示されたソフトキーボード１０５は使いにくいため、図１（ｃ）に示すように、ユーザーはＩＣカードでサインインすることもできる。ユーザーは「ＩＣカードを使用する」ボタン１０６を押して、ＩＣカードをＩＣカードリーダーにかざすだけでサインインできる。ＩＣカードをすでに導入している企業などであれば、ＩＣカードリーダーを装着するだけでＩＣカードを用いたサインインが可能になるが、ＩＣカードは会社ごとに異なるデータを保持しているため、テレワークが導入されている企業などで新規に導入すると莫大なコストがかかる。
【００１４】
手書き入力装置２では文字等を手書き入力できることを利用して、ペンでユーザー名等を手書してサインインできればよいが、ユーザーが手書きでサインインするための特別な枠を表示させる必要があるなどの余分な操作が必要であった。すなわち、文字等の入力と手書きサインの入力を区別せずにユーザーが手書きすることができなかった。
【００１５】
＜本実施形態における手書き入力装置のサインインの概略＞
そこで、本実施形態の手書き入力装置２は文字等の入力と区別なく手書きされたユーザー名等でユーザーを認証する。ユーザー名等、ユーザーがサインインするためのストロークデータを手書きサインデータという。ユーザーはサインインするための操作を何ら必要とせずに、ユーザーは文字等を手書き入力する場合と同様に、ユーザー名等を手書きすればサインインすることができる。
【００１６】
図２は、本実施形態の手書き入力装置２へのサインインの概略を説明する図である。図２（ａ）は操作画面１０１を示す。まず、ユーザーがサインインする場合、操作画面１０１にユーザー名を手書きする。任意の文字等を手書きする場合と同様に、単にユーザー名を手書きすればよく、これからサインイン操作を行う旨を入力したり、サインイン画面を表示したりする操作は不要である。手書き入力装置２には予め手書きサインデータが登録されている。
【００１７】
図２（ｂ）は操作ガイド５００の一例を示す。ユーザーが手書きを開始すると、手書き入力装置２は手書きオブジェクト５０４の下方に操作ガイド５００を表示する。図２ではユーザー名（すずき）が手書きオブジェクト５０４である。
【００１８】
また、操作ガイド５００には１つ以上の選択可能候補５３０が表示されている。図２（ｂ）では選択可能候補５３０の中に操作コマンド５１２（表示部品の一例）と文字列候補５３９（後述する手書き認識文字列/言語文字列候補、変換文字列候補、文字列/予測変換の候補）が表示されている。操作コマンド５１２は「手書きサインインする」ための操作コマンドで、ユーザーが手書きした「すずき」というストロークデータが予め登録されている手書きサインデータに適合し、認証が成功した場合に表示される。すなわち、ユーザーの認証が成功した場合に表示される。ユーザーが操作コマンド５１２をペン２５００等で押下すると、手書き入力装置２にサインインすることができる。ユーザーの認証が成功しなければ、手書きオブジェクト５０４の認識結果が表示される。
【００１９】
手書き入力装置２には操作コマンド５１２に他にも各種の操作コマンドが用意されている。手書きされたストロークデータから変換されたテキストデータが、予め登録されている操作コマンドを呼び出すための文字列と部分一致（一部又は全体で一致すること）すれば対応する操作コマンドが表示される。つまり、ユーザーは他の操作コマンドを呼び出す場合と同様に手書きすることでサインインするための操作コマンド５１２を呼び出すことができる。
【００２０】
このように、本実施形態の手書き入力装置２は、文字等の入力と手書きサインの入力を区別せずにユーザーが手書きすることができ、各種の操作コマンドとサインインするための操作コマンド５１２を区別せずにユーザーが手書きで呼び出すことができる。
【００２１】
また、本実施形態の手書き入力装置２は、画面上のソフトキーボードを使わず、ＩＣカードのような特別なハードウェアを追加することなく、また、ユーザーが直感的に手書きするだけでユーザー認証することが可能になる。
【００２２】
＜用語について＞
入力手段とはタッチパネルに手書きが可能な手段であればよい。例えば、ペン、人の指や手、棒状部材などがある。また、視線入力が可能でもよい。
【００２３】
ストロークデータとは自由に手書きされた線である。連続した点の集合を有し、適宜、補間されてよい。
【００２４】
操作コマンドとは手書き入力装置２を操作するために用意されている、特定の処理の実行を指示する命令をいう。本実施形態では一例として、編集系、修飾系、入出力系、ペン状態の操作コマンドを例にするが、画面反転、ページ切り替え、動作モードの設定など、手書き入力装置２を操作する全てのコマンドが対象となる。
【００２５】
手書きサインデータは、手書きでサインインするためのストロークデータである。手書きサインデータ保存部に登録されているストロークデータであればユーザー名には限られない。
【００２６】
サインインとはコンピュータに自分の身元を示す情報を入力し、接続や利用開始を申請することをいう。コンピュータが保管している身元情報に一致すると、予め決められた権限に基づいてそのコンピュータを利用することが可能になる。ログイン又はログオンともいう。
【００２７】
サインインを受け付ける表示部品は、サインインを受け付けるために表示されるソフトキーであればよく、操作コマンドに限らず、アイコン、ボタンなどでもよい。
【００２８】
＜ペンの外観の一例＞
図３は、ペン２５００の斜視図の一例を示す。図３は多機能なペン２５００の一例を示す。電源を内蔵して手書き入力装置２に命令を送信できるペン２５００をアクティブペンという（電源を内蔵しないペンをパッシブペンという）。図３のペン２５００は、物理的なスイッチがペン先に一つ、ペン尻に一つ、ペン側面に二つあり、ペン先が筆記用、ペン尻が消去用、ペン側面はユーザー機能割り当て用である。本実施形態では、更に、不揮発性のメモリーを有しており、他のペンと重複しないペンＩＤを記憶している。
【００２９】
なお、スイッチ付きのペンであれば、ユーザーの手書き入力装置２の操作手順を減らすことも可能である。スイッチ付きのペンとは主にアクティブペンを言うが、電磁誘導方式では電源を内蔵しないパッシブペンでもＬＣ回路だけで電力を発生できるため、アクティブペンだけでなく電磁誘導方式のパッシブペンを含む。電磁誘導方式以外の光学方式、赤外線方式、及び、静電容量方式のスイッチのあるペンはアクティブペンである。
【００３０】
なお、ペン２５００のハードウェア構成は、通信機能とマイコンを備えた一般的な制御方式と同様であるとする。ペン２５００は、電磁誘導方式、アクティブ静電結合方式などがある。また、筆圧検知、傾き検知、ホバー機能（ペンが触れる前にカーソルを表示）、などの機能を有していてよい。
【００３１】
＜装置の全体構成＞
図４を用いて、本実施形態に係る手書き入力装置２の全体構成を説明する。図４は、手書き入力装置２の全体構成図を示した図である。図４（ａ）では、手書き入力装置２の一例として、壁につり下げられた横長の電子黒板として使用される手書き入力装置２を示している。
【００３２】
図４（ａ）に示されているように、手書き入力装置２の上部には表示装置の一例としてのディスプレー２２０が設置されている。ユーザーＵは、ペン２５００を用いて、ディスプレー２２０に文字等を手書きする（入力、描画ともいう）ことができる。
【００３３】
図４（ｂ）は壁につり下げられた縦長の電子黒板として使用される手書き入力装置２を示している。
【００３４】
図４（ｃ）は机２３０に平置きされた手書き入力装置２を示す。手書き入力装置２は厚みが１ｃｍ程度なので、一般の机に平置きしても机の高さを調整する必要がない。また、容易に移動できる。
【００３５】
＜装置のハードウェア構成＞
続いて、図５を用いて、手書き入力装置２のハードウェア構成を説明する。手書き入力装置２は図示するように情報処理装置又はコンピュータの構成を有している。図５は、手書き入力装置２のハードウェア構成図の一例である。図５に示されているように、手書き入力装置２は、ＣＰＵ(Central Processing Unit)２０１、ＲＯＭ(Read Only Memory)２０２、ＲＡＭ(Random Access Memory)２０３、及び、ＳＳＤ(Solid State Drive)２０４を備えている。
【００３６】
これらのうち、ＣＰＵ２０１は、手書き入力装置２全体の動作を制御する。ＲＯＭ２０２は、ＣＰＵ２０１やＩＰＬ(Initial Program Loader)等のＣＰＵ２０１の駆動に用いられるプログラムを記憶する。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される。ＳＳＤ２０４は、手書き入力装置２用のプログラム等の各種データを記憶する。
【００３７】
また、手書き入力装置２は、ディスプレーコントローラー２１３、タッチセンサーコントローラー２１５、タッチセンサー２１６、ディスプレー２２０、電源スイッチ２２７、チルトセンサー２１７、シリアルインターフェイス２１８、スピーカー２１９、マイク２２１、無線通信装置２２２、赤外線Ｉ／Ｆ２２３、電源制御回路２２４、ＡＣアダプター２２５、及びバッテリー２２６を備えている。
【００３８】
ディスプレーコントローラー２１３は、出力画像をディスプレー２２０等へ出力するために画面表示の制御及び管理を行う。タッチセンサー２１６は、ディスプレー２２０上にペン２５００やユーザーの手等（ペンやユーザーの手は入力手段となる）が接触したことを検知する。また、タッチセンサー２１６はペンＩＤを受信する。
【００３９】
タッチセンサーコントローラー２１５は、タッチセンサー２１６の処理を制御する。タッチセンサー２１６は、座標の入力及び座標の検出を行う。この座標の入力及び座標の検出する方法は、例えば、光学式の場合、ディスプレー２２０の上側両端部に設置された２つ受発光装置が、ディスプレー２２０に平行して複数の赤外線を放射し、ディスプレー２２０の周囲に設けられた反射部材によって反射されて、受光素子が放射した光の光路と同一の光路上を戻って来る光を受光する方法である。タッチセンサー２１６は、物体によって遮断された２つの受発光装置が放射した赤外線の位置情報をタッチセンサーコントローラー２１５に出力し、タッチセンサーコントローラー２１５が、物体の接触位置である座標位置を特定する。また、タッチセンサーコントローラー２１５は通信ユニット２１５ａを有しており、ペン２５００と無線で通信することができる。例えば、Bluetooth（登録商標）などの規格で通信している場合は、市販されているペンを使用することができる。通信ユニット２１５ａに予め１つ以上のペン２５００を登録しておくと、ユーザーはペン２５００を手書き入力装置２と通信させる接続設定を行わなくても通信できる。
【００４０】
電源スイッチ２２７は、手書き入力装置２の電源のＯＮ／ＯＦＦを切り換えるためのスイッチである。チルトセンサー２１７は、手書き入力装置２の傾き角度を検出するセンサーである。主に、手書き入力装置２が図４（ａ）、図４（ｂ）又は、図４（ｃ）のいずれかの設置状態で使用されているかを検出するために使用され、設置状態に応じて文字等の太さを自動で変更することができる。
【００４１】
シリアルインターフェイス２１８はＵＳＢなどの外部との通信インターフェースである。外部からの情報の入力などに使用される。スピーカー２１９は音声の出力に使用され、マイク２２１は音声の入力に使用される。無線通信装置２２２は、ユーザーが携帯する端末と通信し、例えばインターネットへの接続を中継する。無線通信装置２２２はWi−FiやBluetooth（登録商標）などで通信するが、通信規格は問われない。無線通信装置２２２はアクセスポイントを形成しており、ユーザーが入手したＳＳＩＤ（Service Set Identifier）とパスワードをユーザーが携帯する端末に設定すると、アクセスポイントに接続できる。
【００４２】
なお、無線通信装置２２２に２つのアクセスポイントが用意されているとよい。
a. アクセスポイント→インターネット
b. アクセスポイント→社内ネットワーク→インターネット
ａのアクセスポイントは社外のユーザー用で、ユーザーは社内ネットワークにはアクセスできないが、インターネットを利用できる。ｂのアクセスポイントは社内のユーザー用で、ユーザーは社内ネットワーク及びインターネットを利用できる。
【００４３】
赤外線Ｉ／Ｆ２２３は隣に配置された手書き入力装置２を検出する。赤外線の直進性を利用して、隣に配置された手書き入力装置２のみを検出できる。赤外線Ｉ／Ｆ２２３は各辺に１つずつ設けられることが好ましく、手書き入力装置２のどの方向に他の手書き入力装置２が配置されたのかを検出できる。隣の手書き入力装置２には過去に手書きされた手書き情報（１つのディスプレー２２０の広さを１ページとして別のページの手書き情報）を表示できる。
【００４４】
電源制御回路２２４は手書き入力装置２の電源であるＡＣアダプター２２５とバッテリー２２６を制御する。ＡＣアダプター２２５は商用電源が共有する交流を直流に変換する。
【００４５】
ディスプレー２２０がいわゆる電子ペーパーの場合、画像が描画された後の画像を維持するためにほとんど又は一切電力を消費しないので、バッテリー２２６による駆動も可能である。これにより、屋外など電源を接続しにくい場所でもデジタルサイネージなどの用途で手書き入力装置２を使用することが可能になる。
【００４６】
更に、手書き入力装置２は、バスライン２１０を備えている。バスライン２１０は、図５に示されているＣＰＵ２０１等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
【００４７】
なお、タッチセンサー２１６は、光学式に限らず、静電容量の変化を検知することにより接触位置を特定する静電容量方式のタッチパネル、対向する２つの抵抗膜の電圧変化によって接触位置を特定する抵抗膜方式のタッチパネル、接触物体が表示部に接触することによって生じる電磁誘導を検知して接触位置を特定する電磁誘導方式のタッチパネルなどの種々の検出手段を用いてもよい。タッチセンサー２１６は、ペン先のタッチの有無を検知するのに電子ペンが必要ない方式であってよい。この場合はタッチ操作をするのに指先やペン型の棒を使用できる。なお、ペン２５００は、細長いペン型である必要はない。
【００４８】
＜装置の機能について＞
次に、図６を用いて、手書き入力装置２とペン２５００が有する機能について説明する。図６（ａ）は手書き入力装置２が有する機能をブロック状に示す機能ブロック図の一例である。手書き入力装置２は、手書き入力部２１、表示部２２、手書き入力表示制御部２３、候補表示タイマー制御部２４、手書き入力保存部２５、手書き認識制御部２６、手書き認識辞書部２７、文字列変換制御部２８、文字列変換辞書部２９、予測変換制御部３０、予測変換辞書部３１、操作コマンド認識制御部３２、操作コマンド定義部３３、ペンＩＤ制御データ保存部３６、手書きサイン認証制御部３８、及び、手書きサインデータ保存部３９を備えている。手書き入力装置２が有する各機能は、図５に示されている各構成要素のいずれかが、ＳＳＤ２０４からＲＡＭ２０３上に展開されたプログラムに従ったＣＰＵ２０１からの命令によって動作することで実現される機能又は手段である。
【００４９】
手書き入力部２１はタッチセンサー２１６等により実現されており、ユーザーによる手書き入力を受け付け、ペンＩＤを受信する。手書き入力部２１はユーザーのペン入力ｄ１をペンＩＤ付きのペン操作データｄ２（ペンアップ、ペンダウン、又はペン座標データ）に変換し、手書き入力表示制御部２３に送信する。ペン座標データは離散値として定期的に送信され、離散値間の座標は補完計算される。
【００５０】
表示部２２はディスプレー２２０等により実現され、手書きされたオブジェクトや操作メニューを表示する。表示部２２は手書き入力表示制御部２３がビデオメモリーに書き込んだ描画データｄ３をディスプレー２２０の特性に応じたデータに変換し、ディスプレー２２０に送信する。
【００５１】
手書き入力表示制御部２３は手書き入力と表示に関する全体的な制御を行う。手書き入力表示制御部２３は手書き入力部２１からのペン操作データｄ２を処理し、表示部２２に送信することで表示させる。ペン操作データｄ２の処理及びストロークの表示の詳細は後述の図２８〜図３４にて説明する。
【００５２】
候補表示タイマー制御部２４は、選択可能候補の表示制御タイマーである。タイマーを開始又は停止して選択可能候補の表示を開始するタイミングと表示を消去するタイミングを生成する。選択可能候補とは、後述する操作ガイドに選択可能に表示される手書き認識文字列/言語文字列候補、変換文字列候補、文字列/予測変換の候補、操作コマンドの候補、である。候補表示タイマー制御部２４は手書き入力表示制御部２３からタイマー開始要求ｄ４（タイマー停止要求の場合もある）を受信し、タイムアウトイベントｄ５を手書き入力表示制御部２３に送信する。
【００５３】
手書き入力保存部２５はユーザーデータ（手書きオブジェクト/文字列オブジェクト）を保存しておくストレージの機能を有する。手書き入力保存部２５は手書き入力表示制御部２３からユーザーデータｄ６−１を受信し、手書き入力保存部２５に保存する。手書き入力保存部２５は手書き入力表示制御部２３から取得要求ｄ６−２を受け取って、手書き入力保存部２５に保存されたユーザーデータｄ７を送信する。手書き入力保存部２５は、確定オブジェクトの位置情報ｄ３６を操作コマンド認識制御部３２に送信する。
【００５４】
手書き認識制御部２６はオンライン手書き認識を行う認識エンジンである。一般的なＯＣＲ(Optical Character Reader)とは異なり、ユーザーのペン操作と並行して文字（日本語だけでなく英語などの多国語）、数字、記号（％、＄、＆など）、図形（線、丸、三角など）等を認識していく。認識方法については様々なアルゴリズムが考案されているが、本実施形態では公知の技術を利用できるとして詳細を割愛する。
【００５５】
手書き認識制御部２６はペン操作データｄ８−１を手書き入力表示制御部２３から受信し、手書き認識を実行して手書き認識文字列候補を保持する。また、手書き認識制御部２６は手書き認識辞書部２７を使用して手書き認識文字列候補ｄ１２から変換した言語文字列候補を保持しておく。別途、取得要求ｄ８−２を手書き入力表示制御部２３から受信した場合、手書き認識制御部２６は保持している手書き認識文字列候補及び言語文字列候補ｄ９を手書き入力表示制御部２３に送信する。
【００５６】
手書き認識辞書部２７は手書き認識の言語変換用の辞書データである。手書き認識辞書部２７は手書き認識文字列候補ｄ１２を手書き認識制御部２６から受信し、言語的に確からしい言語文字列候補ｄ１３に変換して手書き認識制御部２６に送信する。例えば、日本語の場合は、平仮名を漢字や片仮名へ変換する。
【００５７】
文字列変換制御部２８は変換文字列候補の文字列への変換を制御する。変換文字列とは手書き認識文字列又は言語文字列を含んで生成される可能性が高い文字列である。文字列変換制御部２８は手書き認識文字列及び言語文字列候補ｄ１１を手書き認識制御部２６から受信し、文字列変換辞書部２９を使用して変換文字列候補に変換して保持しておく。別途、取得要求ｄ１４を手書き入力表示制御部２３から受信した場合、保持している変換文字列候補ｄ１５を手書き入力表示制御部２３に送信する。
【００５８】
文字列変換辞書部２９は文字列変換用の辞書データである。文字列変換辞書部２９は文字列変換制御部２８から手書き認識文字列及び言語文字列候補ｄ１７を受信し、変換文字列候補ｄ１８を文字列変換制御部２８に送信する。
【００５９】
予測変換制御部３０は手書き認識文字列及び言語文字列候補ｄ１０を手書き認識制御部２６から受信し、変換文字列候補ｄ１６を文字列変換制御部２８から受信する。予測変換制御部３０は手書き認識文字列、言語文字列候補、及び、変換文字列候補それぞれについて予測変換辞書部３１を使用して予測文字列候補に変換しておく。予測変換文字列とは手書き認識文字列、言語文字列又は変換文字列を含んで生成される可能性が高い文字列である。別途、取得要求ｄ１９を手書き入力表示制御部２３から受信した場合、予測文字列候補ｄ２０を手書き入力表示制御部２３に送信する。
【００６０】
予測変換辞書部３１は予測変換用の辞書データである。予測変換辞書部３１は手書き認識文字列及び言語文字列候補と変換文字列候補ｄ２１を予測変換制御部３０から受信し、予測文字列候補ｄ２２を予測変換制御部３０に送信する。
【００６１】
操作コマンド認識制御部３２は手書き認識文字列及び言語文字列候補ｄ３０を手書き認識制御部２６から受信し、変換文字列候補ｄ２８を文字列変換制御部２８から受信する。操作コマンド認識制御部３２は予測文字列候補ｄ２９を予測変換制御部３０から受信する。操作コマンド認識制御部３２は手書き認識文字列、言語文字列候補、変換文字列候補、及び、予測文字列候補それぞれについて操作コマンド変換要求ｄ２６を操作コマンド定義部３３に送信し、操作コマンド定義部３３から操作コマンドの候補ｄ２７を受信する。操作コマンド認識制御部３２は操作コマンドの候補ｄ２７を保持しておく。
【００６２】
操作コマンド定義部３３は操作コマンド変換要求ｄ２６が操作コマンド定義と部分一致している場合は操作コマンドの候補ｄ２７を操作コマンド認識制御部３２に送信する。
【００６３】
また、操作コマンド認識制御部３２はペン操作データｄ２４−１を手書き入力表示制御部２３から受信する。操作コマンド認識制御部３２は過去に入力され確定した確定オブジェクトの位置情報取得要求ｄ２３を手書き入力保存部２５に送信する。操作コマンド認識制御部３２はペン操作データが指定している確定オブジェクトを選択オブジェクト（位置情報を含む）として保持しておく。操作コマンド認識制御部３２はペン操作データｄ２４−１の位置と所定の基準を満たす選択オブジェクトを特定する。別途、取得要求ｄ２４−２を手書き入力表示制御部２３から受信した場合、保持している操作コマンドの候補と特定した選択オブジェクトｄ２５を手書き入力表示制御部２３に送信する。
【００６４】
ペンＩＤ制御データ保存部３６は、ペンＩＤ制御データを保持している（記憶手段といってもよい）。手書き入力表示制御部２３が表示部２２に表示データを送信する前に、ペンＩＤ制御データ保存部３６はペンＩＤ制御データｄ４１を手書き入力表示制御部２３に送信する。手書き入力表示制御部２３は、ペンＩＤに対応付けて保存されている動作条件で表示データを描画する。また、手書き認識制御部２６が手書き認識を実行する前に、ペンＩＤ制御データ保存部３６は手書き認識制御部２６にペンＩＤ制御データの角度情報ｄ４４を送信して、手書き認識制御部２６はペンＩＤに対応づけて保存されている角度情報でストロークを回転して手書き認識を実行する。
【００６５】
また、手書き認識制御部２６が、ユーザーが文字等を手書きする時の角度情報を設定するための直線を認識した後、手書き認識制御部２６はペンＩＤ制御データの角度情報ｄ４３をペンＩＤ制御データ保存部３６に送信して、ペンＩＤに対応付けて角度情報ｄ４３を保存する。また、手書き入力表示制御部２３が角度情報を設定する操作コマンドを実行後に、手書き入力表示制御部２３はペンＩＤ制御データｄ４２をペンＩＤ制御データ保存部３６に送信して、操作コマンドの実行結果（ユーザーが設定した角度情報）をペンＩＤに対応付けて保存する。以降、そのペンＩＤのストロークは設定した角度情報で回転してから手書き認識が実行される。
【００６６】
また、手書き認識制御部２６はペンＩＤ制御データの角度情報で時計回りに回転させたストロークデータｄ４９を手書きサイン認証制御部３８に送信する。これにより、ユーザーの位置（手書き入力装置２に対しどの方向から手書きするか）に関わりなく手書きサインの認証が可能になる。
【００６７】
手書きサインデータ保存部３９は、手書きサインデータを保持する。手書きサインデータ保存部３９は、手書きサインデータ取得要求ｄ４５を手書きサイン認証制御部３８から受信した場合、手書きサインデータｄ４６を手書きサイン認証制御部３８に送信する。手書きサインデータのフォーマットは手書きサイン認証制御部３８の手書きサイン認証のアルゴリズムに依存するものとする。手書きサインデータ保存部３９のデータについては図１４にて説明する。
【００６８】
手書きサイン認証制御部３８は手書き認識制御部２６から時計回りに回転したストロークデータｄ４９を受信すると、手書きサインデータ保存部３９に手書きサインデータ取得要求ｄ４５を送信し、手書きサインデータ保存部３９は手書きサインデータｄ４６を手書きサイン認証制御部３８に送信する。
【００６９】
手書きサイン認証制御部３８は手書きサインデータに基づいてユーザーの認証を行う。手書きサインデータに基づくユーザーの認証には様々なアルゴリズムが考案されているが、本実施形態では実用に支障がない認識率で認識できる技術を使用するものとする。例えば、手書きサインデータを構成する座標、筆圧、ストロークを書く時間などを要素とする特徴ベクトルを生成して、要素に適宜重み付けをして、登録済みの手書きサインデータの特徴ベクトルとサインイン時にユーザーが手書きしたユーザー名等の特徴ベクトルを比較する。一致度が閾値以上の場合、認証成功と判定し、閾値未満の場合、認証失敗と判定する。
【００７０】
手書きサイン認証制御部３８はストロークデータｄ４９と手書きサインデータｄ４６の比較結果である手書きサインの認証結果を保持しておき、別途、手書き入力表示制御部２３から取得要求ｄ４８を受信した場合、保持している手書きサインの認証結果ｄ４７を手書き入力表示制御部２３に送信する。手書きサインの認証結果は、ストロークデータｄ４９と手書きサインデータｄ４６が一致したと見なせるか否か、及び、一致したと見せる場合は、一致した手書きサインデータｄ４６に対応付けられている後述するSignatureIdを有する。
【００７１】
手書き認識制御部２６の手書き認識結果が手書きサイン登録の実行を指示する操作コマンドに適合する場合、手書き認識制御部２６は手書き入力保存部２５から手書きサイン登録フォーム（後述するように、手書きサインデータが入力される枠）に入力されたデータｄ５２を取得し、データｄ５２のうち手書きサインデータｄ５０を手書きサイン認証制御部３８に送信する。手書きサイン認証制御部３８は受信した手書きサインデータｄ５０を手書きサインデータ保存部３９に送信して登録する。
【００７２】
手書き認識制御部２６の手書き認識結果が手書きサインの取消指示又は登録の実行の場合、手書き認識制御部２６は手書き入力保存部２５に手書きサイン登録フォームの削除要求ｄ５１を送信して、手書き入力保存部２５から手書きサイン登録フォームを削除する。
【００７３】
手書き認識制御部２６の手書き認識結果がユーザー定義データ変更の実行指示の場合、手書き認識制御部２６は手書き入力保存部２５からユーザー定義データ変更フォームに入力されたデータｄ５３を取得する。手書き認識制御部２６はデータｄ５３のうち変更値ｄ５４を操作コマンド定義部３３に送信し、ユーザー定義データを変更する。ユーザー定義データについては図１３にて説明する。
【００７４】
手書き認識制御部２６の手書き認識結果がユーザー定義データ変更フォームの取消指示又は登録の実行の場合、手書き認識制御部２６は手書き入力保存部２５にユーザー定義データ変更フォームの削除要求ｄ５５を送信し、手書き入力保存部２５からユーザー定義データ変更フォームを削除する。
【００７５】
図６（ｂ）は、ペン２５００の機能をブロック状に示す機能ブロック図である。ペン２５００はペンイベント送信部４１を有している。ペンイベント送信部４１はペンアップ、ペンダウン、ペン座標のイベントデータにペンＩＤをつけて手書き入力装置２に送信する。
【００７６】
＜定義済み制御データについて＞
次に、図７を用いて、手書き入力装置２が各種の処理に使用する定義済み制御データについて説明する。図７は定義済み制御データの一例を示す。図７の例では制御項目ごとに制御データを示す。
【００７７】
選択可能候補表示タイマー４０１は、選択可能候補を表示するまでの時間を定義する（第一の時間の一例）。手書き中に選択可能候補を表示しないためである。図７では、ペンアップからTimerValue＝５００〔ms〕以内にペンダウンが発生しなければ選択可能候補が表示されることを意味している。選択可能候補表示タイマー４０１は候補表示タイマー制御部２４が保持している。選択可能候補表示タイマー４０１は、後述する図３０のステップS18−2において選択可能候補表示タイマー開始時に使用される。
【００７８】
選択可能候補消去タイマー４０２は表示した選択可能候補を消去するまでの時間を定義する（第二の時間の一例）。ユーザーが選択可能候補を選択しない場合に選択可能候補を消去するためである。図７では、選択可能候補の表示からTimerValue＝５０００〔ms〕以内に選択可能候補が選択されなければ選択可能候補表示データが消去されることを意味している。選択可能候補消去タイマー４０２は候補表示タイマー制御部２４が保持している。選択可能候補消去タイマー４０２は図３２のステップS64において選択可能候補表示消去タイマー開始時に使用される。
【００７９】
手書きオブジェクト近傍矩形領域４０３は手書きオブジェクトの近傍とみなす矩形領域を定義する。図７の例では、手書きオブジェクト近傍矩形領域４０３は、手書きオブジェクトの矩形領域を水平方向に推定文字サイズの50%(Horizontal)拡大し、垂直方向に推定文字サイズの80%(Vertical)拡大した矩形領域となる。図７の例では推定文字サイズの割合（％指定）となっているが、単位を"mm"等とすれば固定長にすることも可能である。手書きオブジェクト近傍矩形領域４０３は手書き入力保存部２５が保持している。推定文字サイズ４０５は図２９のステップS10において、手書きオブジェクト近傍矩形領域とストローク矩形領域の重なり状況の判定で使用される。
【００８０】
推定書字方向/文字サイズ判定条件４０４は、書字方向と文字サイズの測定方向を判定するための定数を定義する。図７の例では、手書きオブジェクト矩形領域の最初にストロークが追加された時刻と最後にストロークが追加された時刻の差分がMinTime＝1000〔ms〕以上で、手書きオブジェクト矩形領域の水平距離（幅）と垂直距離（高さ）の差分がMinDiff＝10〔mm〕以上あり、水平距離が垂直距離より長い場合は、推定書字方向は「横書き」、推定文字サイズは垂直距離と判定することを意味する。水平距離が垂直距離より短い場合は、推定書字方向は「縦書き」、推定文字サイズは水平距離と判定することを意味する。以上の条件を満たさない場合は、推定書字方向は「横書き」(DefaultDir="Horizontal")、推定文字サイズは水平距離と垂直距離の長い方の距離と判定する。推定書字方向/文字サイズ判定条件４０４は手書き入力保存部２５が保持している。推定書字方向/文字サイズ判定条件４０４は図３２のステップS59における推定書字方向取得と、図３４のステップS81における文字列オブジェクトフォント取得で使用される。
【００８１】
推定文字サイズ４０５は文字等のサイズを推定するためのデータを定義する。図７の例では、推定書字方向/文字サイズ判定条件４０４で判定された推定文字サイズが、推定文字サイズ４０５の小さめ文字４０５ａ（以下、最小フォントサイズ、と呼ぶ）と大きめ文字４０５ｃ（以下、最大フォントサイズ）と比較されることを意味する。推定文字サイズが最小フォントサイズより小さい場合、推定文字サイズは最小フォントサイズと判定される。推定文字サイズが最大フォントサイズより大きい場合、推定文字サイズは最大フォントサイズと判定される。それ以外は、中くらい文字４０５ｂの文字サイズと判定される。推定文字サイズ４０５は手書き入力保存部２５が保持している。推定文字サイズ４０５は、図３４のステップS81における文字列オブジェクトフォント取得で使用される。
【００８２】
手書き入力保存部２５は具体的には、推定書字方向/文字サイズ判定条件４０４で判定された推定文字サイズを推定文字サイズ４０５のFontSizeと比較して、最も近いサイズのフォントを使用する。例えば、推定文字サイズが25〔mm〕(小さめ文字のFontSize)以下の場合は「小さめ文字」、推定文字サイズが25mm超50mm(中くらい文字のFontSize)以下の場合は「中くらい文字」、推定文字サイズが100mm(大きめ文字のFontSize)超の場合は「大きめ文字」と判定する。「小さめ文字」４０５ａは明朝体の25mmフォント(FontStyle="明朝体" FontSize="25mm")、「中くらい文字」４０５ｂは明朝体の50mmフォント(FontStyle="明朝体" FontSize="50mm")、「大きめ文字」４０５ｃはゴシック体の100mmフォント(FontStyle="ゴシック体" FontSize="100mm")を使用する。もっとフォントのサイズ又はスタイルの種類を増やしたい場合は、推定文字サイズ４０５の種類を増やせばよい。
【００８３】
跨ぎ線判定条件４０６は複数のオブジェクトが選択されたか否かの判定に使用されるデータを定義する。手書きオブジェクトが単数のストロークであり、図７の例では、手書きオブジェクトの長辺の長さが100〔mm〕以上(MinLenLongSide="100mm")、かつ、短辺の長さが50〔mm〕以下(MaxLenShortSide="50mm")、かつ、手書きオブジェクトとの長辺方向と短辺方向の重なり率が80〔%〕以上(MinOverLapRate="80%")のオブジェクトがあれば、複数のオブジェクトが選択された（選択オブジェクト）と判定する。跨ぎ線判定条件４０６は操作コマンド認識制御部３２が保持している。跨ぎ線判定条件４０６は図３１のステップS50における選択オブジェクトの判定の跨ぎ線判定で使用される。
【００８４】
囲み線判定条件４０７は、オブジェクトが囲み線か否かの判定に使用されるデータを定義する。図７の例では、操作コマンド認識制御部３２は手書きオブジェクトの長辺方向と短辺方向の重なり率が100%以上(MinOverLapRate="100%")の確定オブジェクトを選択オブジェクトと判定する。囲み線判定条件４０７は、操作コマンド認識制御部３２が保持している。囲み線判定条件４０７は、図３１のステップS50における選択オブジェクトの判定の囲み線判定で使用される。
【００８５】
なお、跨ぎ線判定条件４０６と囲み線判定条件４０７はどちらが優先して判定されてもよい。例えば、跨ぎ線判定条件４０６を緩やかにして（跨ぎ線を選択しやすくした場合）、囲み線判定条件４０７は厳密にした場合（囲み線のみを選択できるような値とした場合）、操作コマンド認識制御部３２は囲み線判定条件４０７を優先して判定するのがよい。
【００８６】
＜辞書データの一例＞
図８〜図１０を用いて辞書データについて説明する。図８は手書き認識辞書部２７の辞書データの一例である。図９は文字列変換辞書部２９の辞書データの一例である。図１０は予測変換辞書部３１の辞書データの一例である。なお、これらの辞書データはそれぞれ図３１のステップS33〜S42で使用される。
【００８７】
本実施形態では、図８の手書き認識辞書部２７の辞書データによる変換結果を言語文字列候補、図９の文字列変換辞書部２９の辞書データによる変換結果を変換文字列候補、図１０の予測変換辞書部３１の辞書データによる変換結果を予測文字列候補と呼ぶ。各辞書データの「変換前」は辞書データを検索する文字列、「変換後」は検索する文字列に対応した変換後の文字列、「確率」はユーザーが選択する確率を表す。確率は過去にユーザーが各文字列を選択した結果から算出されている。したがって、ユーザーごとに確率が算出されてもよい。確率の計算方法として様々なアルゴリズムが考案されているが、適宜、適切な方法で計算するものとすればよく、詳細は割愛する。本実施形態では、推定書字方向から文字列候補を選択確率降順で表示することを特徴とする。
【００８８】
図８の手書き認識辞書部２７の辞書データでは、手書きされた「ぎ」は、確率0.55で「議」、確率0.4で「技」、手書きされた「ぎし」は、確率0.5で「技士」、確率0.45で「技師」に変換されることを示す。その他の「変換前」の文字列についても同様である。図８では「変換前」の文字列が手書きされた平仮名となっているが、平仮名以外を「変換前」に登録してもよい。
【００８９】
図９の文字列変換辞書部２９の辞書データでは、文字列「議」は確率0.95で「議事録」に、文字列「技」は確率0.85で「技量試」に変換されることを示す。その他の「変換前」の文字列についても同様である。
【００９０】
図１０の予測変換辞書部３１の辞書データでは、文字列「議事録」は確率0.65で「議事録の送付先」に、文字列「技量試」は確率0.75で「技量試を決裁」に変換されることを示す。図１０の例では変換前の文字列がすべて漢字になっているが、漢字以外を登録してもよい。
【００９１】
なお、辞書データに言語依存はなく、変換前と変換後にどのような文字列が登録されていてもよい。
【００９２】
＜操作コマンド定義部が保持する操作コマンド定義データ＞
次に、図１１、図１２を用いて操作コマンド認識制御部３２が使用する操作コマンド定義データについて説明する。図１１は、操作コマンド定義部３３が保持する操作コマンド定義データとシステム定義データの一例を示す。
【００９３】
図１１（ａ）は操作コマンド定義データの一例を示す。図１１（ａ）の操作コマンド定義データは、手書きオブジェクトにより選択された選択オブジェクトがない場合の操作コマンド定義データ例であり、手書き入力装置２を操作する全ての操作コマンドが対象となる。図１１（ａ）の操作コマンドは操作コマンド名(Name)、文字列候補と部分一致する文字列(String)、実行する操作コマンド文字列(Command)を有する。操作コマンド文字列内の「%〜%」は変数であり、図１１（ｂ）に示すようにシステム定義データと対応付けられている。つまり、「%〜%」は図１１（ｂ）に示すシステム定義データで置き換えられる。
【００９４】
まず、操作コマンド定義データ７０１は、操作コマンド名が「議事録テンプレートを読み込む」、文字列候補と部分一致する文字列が「議事録」又は「テンプレート」、実行する操作コマンド文字列が「ReadFile https://%username%:%password%@server.com/template/minutes.pdf」であることを示す。この例では、実行する操作コマンド文字列に「%〜%」のシステム定義データが含まれており「%username%」「%password%」はそれぞれシステム定義データ７０４、７０５で置き換えられることを示す。したがって、最終的に実行する操作コマンド文字列は「ReadFile https://taro.tokkyo:x2PDHTyS@server.com/template/minutes.pdf」という文字列となり、「https://taro.tokkyo:x2PDHTyS@server.com/template/minutes.pdf」というファイルを読み込む(ReadFile)ことを示す。
【００９５】
操作コマンド定義データ７０２は、操作コマンド名が「議事録フォルダーに保存する」、文字列候補と部分一致する文字列が「議事録」又は「保存」、実行する操作コマンド文字列が「WriteFile https://%username%:%password%@server.com/minutes/%machinename%_%yyyy−mm−dd%.pdf」であることを示す。操作コマンド定義データ７０１と同様に、操作コマンド文字列の「%username%」「%password%」「%machinename%」はそれぞれシステム定義データ７０４〜７０６で置き換えられる。なお、「%yyyy−mm−dd%」は現在日で置き換えることを示す。例えば、現在日が2018年9月26日であれば「2018−09−26」で置き換えることを示す。最終的に実行する操作コマンドは「WriteFile https://taro.tokkyo:x2PDHTyS@server.com/minutes/%My−Machine_2018−09−26.pdf」となり、議事録を「https://taro.tokkyo:x2PDHTyS@server.com/minutes/%My−Machine_2018−09−26.pdf」というファイルに保存する(WriteFile)ことを示す。
【００９６】
操作コマンド定義データ７０３は、操作コマンド名が「印刷する」、文字列候補と部分一致する文字列が「印刷」又は「プリント」、実行する操作コマンド文字列が「PrintFile https://%username%:%password%@server.com/print/%machinename%−"%yyyy−mm−dd%.pdf」であることを示す。操作コマンド定義データ７０２と同様に操作コマンド文字列を置き換えると、最終的に実行する操作コマンドは「PrintFile https://taro.tokkyo:x2PDHTyS@server.com/print/%My−Machine_2018−09−26.pdf」となり、「https://taro.tokkyo:x2PDHTyS@server.com/print/%My−Machine_2018−09−26.pdf」というファイルを印刷する(PrintFile)ことを示す。つまり、ファイルがサーバーに送信される。ユーザーがプリンターをサーバーと通信させ、ファイルを指定するとプリンターが用紙にファイルの内容を印刷する。
【００９７】
このように、文字列候補から操作コマンド定義データ７０１〜７０３を特定できるため、ユーザーが手書きすることで操作コマンドを表示させることができる。また、ユーザーの認証が成功した場合にはユーザー情報で操作コマンド定義データの「%username%」「%password%」等が置き換えられるので、ユーザーに対応付けてファイルの入出力が可能になる。
【００９８】
ユーザーの認証が行われない場合（認証が失敗したがユーザーが手書き入力装置２を使用できる場合は認証失敗の場合も含む）、手書き入力装置２は、予め設定されている手書き入力装置２の「%username%」「%password%」等に置き換える。したがって、ユーザー認証なしでも手書き入力装置２に対応付けてファイルの入出力が可能になる。
【００９９】
操作コマンド定義データ７０９、７１０、７１１は、ペン状態を変更する操作コマンドである。ペン状態とはペンの種類と称してもよい。操作コマンド定義データ７０９、７１０、７１１それぞれの操作コマンド名は「細ペン」「太ペン」「マーカー」、文字列候補と部分一致する文字列が「細」、「ペン」、「太」「ペン」、「マーカー」又は「ペン」、操作コマンド文字列が「ChangePen fine」「ChangePen bold」又は「Changepen marking」である。この操作コマンドが実行されると、ペン状態はペンＩＤ制御データ保存部３６に保存されるので、ユーザーは設定したペン状態でストロークを手書きできる。
【０１００】
操作コマンド定義データ７１２は、テキストデータの方向を一定方向に揃えるための操作コマンドである。操作コマンド定義データ７１２の操作コマンド名は「テキスト方向を揃える」、文字列候補と部分一致する文字列が「テキスト」「向き」又は「方向」、操作コマンド文字列が「AlignTextDirection」である。ユーザーが天地方向以外から書き込んだテキストデータは向きがばらばらなので、ある１つの方向から全てを読み取りにくい。操作コマンド定義データ７１２をユーザーが実行すると、手書き入力装置２は手書き認識した文字列を同一方向（例えば、天地方向）に揃える。この場合の揃えるとは、テキストデータを角度情報だけ回転させることをいう。
【０１０１】
操作コマンド定義データ７１３は、操作コマンド名が「手書きサイン登録する」、文字列候補と部分一致する文字列が「サイン」と「登録」、操作コマンド文字列が「RegistSignature」であることを示す。RegistSignatureコマンドが実行されると、手書き入力保存部２５に手書きサイン登録フォームが追加され、操作画面１０１に手書きサイン登録フォームが表示される。手書きサイン登録フォームの一例については後述する（図２５参照）。
【０１０２】
操作コマンド定義データ７１４は、操作コマンド名が「手書きサインインする」、文字列候補と部分位置する文字列が「%signature%」、操作コマンドが「Signin」であることを示す。ここで「%signature%」はシステム定義データの予約語であり、登録済みの手書きサインデータとユーザー名等のストロークデータが適合した事実を表すものとする。つまり適合すると操作コマンド定義データ７１４に基づく操作コマンド５１２が操作ガイド５００に表示される（図２、図２６参照）。
【０１０３】
Singinコマンドが実行されると、ユーザー名等のストロークデータを手書きしたペン２５００のペンＩＤ制御データに、適合した手書きサインデータのSignatureIdをもつユーザーのAccountIdが保存される。これによってペンＩＤとAccountIdが対応付けられ、このAccountIdで特定されるユーザー定義データを手書き入力装置２が使用することができる（図１６（ａ）参照）。
【０１０４】
操作コマンド定義データ７１５は、操作コマンド名が「手書きサインアウトする」、文字列候補と部分一致する文字列が「サイン」又は「アウト」、操作コマンドが「Signout」であることを示す。Signoutコマンドが実行されると、手書きサインアウトを操作したペン２５００のペンＩＤ制御データからAccountIdが削除される。これによってペンＩＤとAccountIdの対応付けがなくなり、ペン２５００を任意のユーザーが使用できるようになる。
【０１０５】
操作コマンド定義データ７１６は、操作コマンド名が「設定変更する」、文字列候補と部分一致する文字列が「設定」又は「変更」、操作コマンドが「ConfigSettings」であることを示す。ConfigSettingsコマンドが実行されると、手書き入力保存部２５にユーザー定義データ変更フォームが追加され、操作画面１０１にユーザー定義データ変更フォームが表示される。ユーザー定義データ変更フォームについては後述する（図２７参照）。
【０１０６】
続いて、手書きオブジェクトがある場合の操作コマンド定義データ、つまり編集系及び修飾系の操作コマンド定義データについて説明する。図１２は手書きオブジェクトにより選択された選択オブジェクトがある場合の操作コマンド定義データの一例を示す。図１２の操作コマンド定義データは、操作コマンド名(Name)、操作コマンドの候補のグループ名(Group)、実行する操作コマンド文字列(Command)を有する。
【０１０７】
操作コマンド定義データ７０７は編集系(Group="Edit")の操作コマンドを定義しており、編集系の操作コマンド名「消去」「移動」「回転」「選択」の定義データ例である。つまり、選択オブジェクトに対してこれらの操作コマンドが表示され、ユーザーが所望の操作コマンドを選択できる。
【０１０８】
操作コマンド定義データ７０８は修飾系(Group="Decorate")の操作コマンドを定義しており、修飾系の操作コマンド名「太く」「細く」「大きく」「小さく」「下線」の定義データ例である。選択オブジェクトに対してこれらの操作コマンドが表示され、ユーザーが所望の操作コマンドを選択できる。この他、色の操作コマンドが表示されてもよい。
【０１０９】
したがって、ユーザーが選択オブジェクトを手書きオブジェクトで選択することで、操作コマンド定義データ７０７、７０８が特定されるため、ユーザーが手書きすることで操作コマンドを表示させることができる。
【０１１０】
＜ユーザー定義データ＞
次に、図１３を用いてユーザー定義データについて説明する。図１３は、操作コマンド定義部３３が保持するユーザー定義データの一例を示す。図１３のユーザー定義データは一人分のユーザーの定義データ例である。ユーザー定義データ７１７のAccountIdはユーザーごとに自動的に採番されるユーザーの識別情報、AccountUsernameとAccountPasswordはユーザー名とパスワード、SignatureIdは手書きサインデータ登録時に自動的に採番される手書きサインデータの識別情報、username, password, machinenameはそれぞれシステム定義データ７０４〜７０６の替わりに操作コマンド定義データ７０１〜７０３に設定される文字列である。これにより、ユーザー定義データを使用した操作コマンドの実行が可能になる。
【０１１１】
ユーザーがユーザー名などを手書きしてサインインした場合、ペンＩＤとAccountIdがペンＩＤ制御データに対応付けられていることを利用して（図１６（ａ）参照）、ユーザーが使用するペン２５００のペンＩＤで対応付けられているAccountIdを有するユーザー定義データの文字列が操作コマンドの実行時に使用される。ユーザーがサインアウトした後は、ユーザーがサインインに使用したペン２５００を使用しても、システム定義データの文字列が操作コマンドの実行時に使用される。
【０１１２】
ユーザー定義データ７１８は、ユーザー定義データ変更フォームで使用されるデータである。Nameはユーザー定義データ７１７のAccountUsername、AccountPassword、username, password, 又はmachinenameの項目名であり、DataはAccountUsername、AccountPassword、username, password, 又はmachinenameの変更値になる。この例では、「名前」のデータは「%AccountName%」、「パスワード」のデータは「%AccountPassword%」、「フォルダーユーザー名」のデータは「%username%」、「フォルダーパスワード」のデータは「%password」、「フォルダーファイル名」のデータは「%machinename」であり、ユーザー定義データ７１７の各項目と対応している。ユーザー定義データ変更フォームで入力されたこれらの項目は、ユーザー定義データ７１７に反映される。
【０１１３】
＜手書きサインデータ＞
次に、図１４を用いて、手書きサインデータについて説明する。図１４は、手書きサインデータ保存部３９が保持する手書きサインデータの一例を示す。手書きサインデータはSignatureIdに対応付けられた手書きサインを表すDataを有する。SignatureIdは手書きサインデータ登録時に自動的に採番される識別情報、Dataは手書きサイン認証制御部３８の手書きサイン認証アルゴリズムが、手書きサイン認証制御部３８から受信したストロークデータから計算したデータである。
【０１１４】
＜手書き入力保存部が保存する手書き入力保存データ＞
次に、図１５を用いて、手書き入力保存データについて説明する。図１５は、手書き入力保存部２５が保存している手書き入力保存データの一例を示す。図１５の１行が１つのストロークを表す。１つの手書き入力保存データは、DataId、Type、PenId, Color, Width, Pattern, Angle、AccountId 、StartPoint、StartTime、EndPoint、EndTime、Point、及び、Pressureの各項目を有している。
【０１１５】
DataIdはストロークの識別情報である。Typeはストロークの種別である。種別にはストローク(Stroke)、グループ(Group)、及びテキスト(Text)がある。手書き入力保存データ８０１、８０２の種別はStrokeであり、手書き入力保存データ８０３の種別はGroupである。Groupとは他のストロークをグループ化することを意味し、種別がGroupの手書き入力保存データは、DataIdでグループ化の対象のストロークを指定する。PenId、Color, Width, Pattern, Angle、AccountIdは次述するペンＩＤ制御データが転記されたものである。StartPointはストロークの始点座標であり、StartTimeはストロークの始点時刻である。EndPointはストロークの終点座標であり、EndTimeはストロークの終点時刻である。Pointは始点から終点までの座標列であり、Pressureは始点から終点までの筆圧である。Angleに示すように、手書き入力保存データ８０４，８０５はそれぞれ１８０度、２７０度だけ時計回りに回転してから手書き認識されたことを示す。８０２，８０５はユーザー定義データのAccountId=1のユーザーが入力したデータであることを示す。
【０１１６】
＜ペンＩＤ制御データ保存部が保存するペンＩＤ制御データ＞
次に、図１６を用いて、ペンＩＤ制御データについて説明する。図１６は、ペンＩＤ制御データ保存部３６が保存するペンＩＤ制御データを説明する図である。図１６（ａ）の１行が１つのペンのペンＩＤ制御データを示す。また、図１６（ｂ）は手書き入力装置２に対しユーザーが手書きする時の角度情報を説明する図である。角度情報はユーザーが存在する方向の角度とも言えるし、ペンが使用される方向の角度とも言えるし、ユーザーが手書きした文字の回転に関する角度とも言える。手書き入力装置２の所定の方向（例えば天地方向）を０度（基準）として、各ユーザーの角度情報は反時計回りに４５度、９０度、１３５度、１８０度、２２５度、２７０度、３１５度、である。
【０１１７】
ユーザーの角度情報は、手書き入力装置２が平置きされた場合に、手書き入力装置２に対しユーザーが存在する位置である。すなわちユーザーの角度情報は位置に関する情報ということができる。手書き入力装置２から見てどの方向にユーザーがいるかを特定できる。角度情報の他、手書き入力装置２から見た方向を時計に見立て、０度：６時方向、４５度：４時方向と５時方向の間、９０度：３時方向、１３５度：１時方向と２時方向の間、１８０度：１２時方向、２２５度：１０時方向と１１時方向の間、２７０度：９時方向、３１５度：７時方向と８時方向の間、と表現してもよい。
【０１１８】
なお、角度情報はユーザーの位置によって自動的に決まるわけではなく、各ユーザーが角度情報を入力する（指定する）。指定可能な角度情報の分解能（図１６では４５度）は一例に過ぎず、より小さい５度〜３０度などでもよい。ただし、４５度くらいで回転した文字であれば、ユーザーは読めると考えられる。
【０１１９】
ペンＩＤ制御データは、PenId、Color、Width、Pattern、Angle及びAccountIdを有している。PenIdはペン内部に保存されている識別情報である。Colorはこのペンに設定されているストロークの色である（ユーザーが任意に変更可能）。Widthはこのペンに設定されているストロークの太さである（ユーザーが任意に変更可能）。Patternはこのペンに設定されているストロークの線種である（ユーザーが任意に変更可能）。Angleはこのペンに設定されているストロークの角度情報である（ユーザーが任意に変更可能）。図１６（ａ）の例では、各ペンの角度情報は反時計回りに０度、９０度、１８０度、２７０度となっている。AccountIdはユーザーの識別情報である。ペンＩＤにAccountIdが対応付けられることで、ユーザーが使用するペン２５００のペンＩＤに対応付けられているAccountIdを特定でき、ユーザー定義データを使用して操作コマンドを実行できる。
【０１２０】
ペンＩＤ制御データ９０１はペンＩＤが１の制御データで、色は黒(Black)、太さは1ピクセル(1 px)、パターンはベタ塗り(Solid)、角度情報は０度、AccountId=1である。AccountId=1のユーザーは図１３のユーザー定義データ７１７のユーザーである。このユーザーがペンＩＤ＝１のペンでユーザー名などを手書きしてサインインしたことを示す。AccountIdがないペンＩＤ制御データはサインアウト状態（ユーザーと対応付けられていない）であることを示す。
【０１２１】
同様に、ペンＩＤ制御データ９０２はペンＩＤが２である。色は黒である。太さは１ピクセルである。パターンはベタ塗りである。角度情報は９０度である。AccountIdはなしである。ペンＩＤ制御データ９０３は、ペンＩＤが３である。色は黒である。太さは１０ピクセルである。パターンはベタ塗りである。角度情報は１８０度である。AccountIdはなしである。ペンＩＤ制御データ９０４は、色が黒である。太さは10ピクセルである。パターンはハーフトーンドットである。角度情報は２７０度である。AccountIdはなしである。
【０１２２】
このデータは、図２８のステップS5（ペンＩＤ制御データ取得）、図３０のステップS20（ペンＩＤ制御データの角度情報を保存）、図３０のステップS21（ペンＩＤ制御データの角度情報を取得）、図３２のステップS60（ペンＩＤ制御データの取得）、図３４のステップS88（ペンＩＤ制御データの角度情報を保存）、で使用される。
【０１２３】
＜選択可能候補の表示例＞
図１７は操作ガイドと操作ガイドが表示する選択可能候補５３０の一例である。ユーザーが手書きオブジェクト５０４を手書きすることで（選択可能候補表示タイマーのタイムアウトにより）、操作ガイド５００が表示される。操作ガイド５００は、操作ヘッダー５２０、操作コマンドの候補５１０、手書き認識文字列候補５０６、変換文字列候補５０７、文字列/予測変換の候補５０８、及び、手書きオブジェクト矩形領域表示５０３を有している。選択可能候補５３０は、操作コマンドの候補５１０、手書き認識文字列候補５０６、変換文字列候補５０７、文字列/予測変換の候補５０８である。この例では言語変換文字列がないが表示される場合がある。また、操作コマンドの候補５１０を除く選択可能候補５３０を文字列候補５３９という。
【０１２４】
操作ヘッダー５２０はボタン５０１、５０９、５０２、５０５を有する。ボタン５０１は予測変換とカナ変換の切り替え操作を受け付ける。図１７の例ではユーザーが「予測」と表示されているボタン５０９を押下すると手書き入力部２１がそれを受け付けて手書き入力表示制御部２３にその旨を通知し、表示部２２が「かな」というボタン５０９に表示を変更する。予測変換からカナ変換への変更後は、文字列候補５３９が「カナ変換」の確率降順で並ぶ。
【０１２５】
ボタン５０２は候補表示のページ操作をする。図１７の例では候補表示ページは３ページあり、現在は１ページ目を表示している。ボタン５０５は操作ガイド５００の消去を受け付ける。ユーザーがボタン５０５を押下すると手書き入力部２１が受け付けて手書き入力表示制御部２３にその旨を通知し、表示部２２が手書きオブジェクト以外の表示を消去する。ボタン５０９は一括表示消去を受け付ける。ユーザーがボタン５０９を押下すると手書き入力部２１が受け付けて手書き入力表示制御部２３にその旨を通知する。表示部２２が手書きオブジェクトを含め、図１７に示されているすべての表示を消去する。ユーザーは最初から手書きをしなおすことができる。
【０１２６】
手書きオブジェクト５０４はユーザーが手書きした「ぎ」という文字である。手書きオブジェクト５０４を囲む手書きオブジェクト矩形領域表示５０３が表示される。表示の手順は図２８〜図３４のシーケンス図で説明する。図１７の例では点線枠で手書きオブジェクト矩形領域表示５０３が表示されている。
【０１２７】
手書き認識文字列候補５０６、変換文字列候補５０７、文字列/予測変換の候補５０８にはそれぞれの文字列候補が確率降順で並んでいる。手書き認識文字列候補５０６の「ぎ」は認識結果の候補である。この例では正しく「ぎ」を認識している。
【０１２８】
変換文字列候補５０７は言語文字列候補から変換された変換文字列候補である。この例の「技量試」とは「技術量産試作」の略名である。文字列/予測変換の候補５０８は言語文字列候補又は変換文字列候補から変換された予測文字列候補である。この例では「技量試を決裁」と「議事録の送付先」が表示されている。
【０１２９】
操作コマンドの候補５１０は図１１（ａ）の操作コマンド定義データ７０１〜７０３、７０９〜７１６に基づいて選択された操作コマンドの候補である。図１７の例では行頭文字の「》」５１１が操作コマンドの候補であることを示している。図１７では手書きオブジェクト５０４である「ぎ」が選択する選択オブジェクトがなく、「ぎ」の文字列候補である「議事録」が、図１１（ａ）の操作コマンド定義データ７０１，７０２と部分一致したため、操作コマンドの候補５１０として表示されている。
【０１３０】
ユーザーが「議事録テンプレートを読み込む」を選択すると、操作コマンド定義データ７０１で定義された操作コマンドが実行され、「議事録フォルダーに保存する」を選択すると、操作コマンド定義データ７０２で定義された操作コマンドが実行される。このように操作コマンドの候補は、変換された文字列を含む操作コマンド定義データが見つかる場合に表示されるため、常に表示されるとは限らない。
【０１３１】
図１７に示すように、文字列候補と操作コマンドの候補が同時に（共に）表示されるため、ユーザーは自分が入力しようとした文字列候補と操作コマンドのどちらも任意に選択できる。
【０１３２】
＜操作ガイドの位置と手書きオブジェクト矩形領域表示の位置の関係＞
表示部２２は、ストロークデータの位置に応じた位置にテキストデータを含む操作ガイド５００を表示する。表示部２２は、ストロークデータの位置に基づいた画面内の位置に、テキストデータを含む操作ガイド５００を表示する。このように、操作ガイド５００の位置はストロークデータの位置によって定まる。
【０１３３】
図１８は、操作ガイドの位置と手書きオブジェクト矩形領域表示の位置の関係を説明する図である。まず、操作ガイド５００の横幅Ａ及び高さＨ１は一定である。手書きオブジェクト矩形領域表示５０３の右端と操作ガイド５００の右端は一致する。
【０１３４】
手書きオブジェクト矩形領域表示５０３の横幅Ｂは、ユーザーが手書きした手書きオブジェクト５０４の長さによって定まる。図１８（ａ）では、手書きオブジェクト矩形領域表示５０３の横幅Ｂが１文字分であり、Ａ＞Ｂなので、操作ガイド５００の左上コーナーＰの座標（ｘ0、ｙ0）は以下のように算出される。なお、手書きオブジェクト矩形領域表示５０３の左上コーナーＱの座標を（ｘ1、ｙ1）とする。手書きオブジェクト矩形領域表示５０３の高さをＨ２とする。
ｘ0 ＝ ｘ1 −（Ａ−Ｂ）
ｙ0 ＝ ｙ１＋Ｈ２
一方、図１８（ｂ）に示すように、手書きオブジェクト矩形領域表示の横幅ＢがＡより大きい場合、操作ガイド５００の左上コーナーＰの座標（ｘ0、ｙ0）は以下のように算出される。
ｘ0 ＝ ｘ1＋（Ｂ−Ａ）
ｙ0 ＝ ｙ１＋Ｈ２
なお、図１８等では手書きオブジェクト矩形領域表示５０３の下方に操作ガイド５００が表示されているが、操作ガイド５００は手書きオブジェクト矩形領域表示５０３の上方に表示されてもよい。
【０１３５】
図１９は、手書きオブジェクト矩形領域表示５０３の上方に表示された操作ガイド５００を示す。ｘ1の算出方法は図１８と同様であるが、ｙ  図１８は、操作ガイドの位置と手書きオブジェクト矩形領域表示の位置の関係を説明する図である。まず、操作ガイド５００の横幅Ａ及び高さＨ１は一定である。手書きオブジェクト矩形領域表示５０３の右端と操作ガイド５００の右端は一致する。
【０１３６】
手書きオブジェクト矩形領域表示５０３の横幅Ｂは、ユーザーが手書きした手書きオブジェクト５０４の長さによって定まる。図１８（ａ）では、手書きオブジェクト矩形領域表示５０３の横幅Ｂが１文字分であり、Ａ＞Ｂなので、操作ガイド５００の左上コーナーＰの座標（ｘ0、ｙ0）は以下のように算出される。なお、手書きオブジェクト矩形領域表示５０３の左上コーナーＱの座標を（ｘ1、ｙ1）とする。手書きオブジェクト矩形領域表示５０３の高さをＨ２とする。
ｘ0 ＝ ｘ1 −（Ａ−Ｂ）
ｙ0 ＝ ｙ１＋Ｈ２
一方、図１８（ｂ）に示すように、手書きオブジェクト矩形領域表示の横幅ＢがＡより大きい場合、操作ガイド５００の左上コーナーＰの座標（ｘ0、ｙ0）は以下のように算出される。
ｘ0 ＝ ｘ1＋（Ｂ−Ａ）
ｙ0 ＝ ｙ１＋Ｈ２
なお、図１８等では手書きオブジェクト矩形領域表示５０３の下方に操作ガイド５００が表示されているが、操作ガイド５００は手書きオブジェクト矩形領域表示５０３の上方に表示されてもよい。
【０１３７】
図１９は、手書きオブジェクト矩形領域表示５０３の上方に表示された操作ガイド５００を示す。ｘ1の算出方法は図１８と同様であるが、ｙ0の算出方法が変わる。
ｙ0 ＝ ｙ１− Ｈ１
なお、操作ガイド５００は手書きオブジェクト矩形領域表示５０３の右側又は左側に表示されてもよい。また、ユーザーがディスプレーの端に手書きしたため操作ガイド５００の表示スペースがない場合、操作ガイド５００は表示スペースがある側に表示される。
0の算出方法が変わる。
【０１３８】
＜選択オブジェクトの指定例＞
本実施形態の手書き入力装置２は確定オブジェクトをユーザーが手書きにより選択することで選択オブジェクトを指定できる。選択オブジェクトは編集又は修飾の対象となる。
【０１３９】
図２０は、選択オブジェクトの指定例を説明する図の一例である。図２０では、手書きオブジェクト１１は黒色実線、手書きオブジェクト矩形領域１２を灰色網掛け、確定オブジェクト１３を黒線、選択オブジェクト矩形領域１４を点線でそれぞれ表示している。なお、それぞれを区別する場合に小文字のアルファベットを符号に付加する。また、確定オブジェクトを選択オブジェクトと判定するための判定条件（所定の関係にあるか否か）として、図７に示した定義済み制御データの跨ぎ線判定条件４０６又は囲み線判定条件４０７を使用している。
【０１４０】
図２０（ａ）は横書きの２つの確定オブジェクト１３ａ、１３ｂをユーザーが跨ぎ線（手書きオブジェクト１１ａ）で指定した例である。この例では、手書きオブジェクト矩形領域１２ａの短辺の長さＨ１と長辺の長さＷ１が跨ぎ線判定条件４０６の条件を満たしており、確定オブジェクト１３ａ、１３ｂとの重なり率が跨ぎ線判定条件４０６の条件を満たしているため、「議事録」と「ぎじ」の両方の確定オブジェクト１３ａ、１３ｂが選択オブジェクトとして指定されている。
【０１４１】
図２０（ｂ）は横書きの確定オブジェクト１３ｃを囲み線（手書きオブジェクト１１ｂ）で指定した例である。この例では、確定オブジェクト１３ｃと手書きオブジェクト矩形領域１２ｃの重なり率が囲み線判定条件４０７の条件を満たしている「議事録」という確定オブジェクト１３ｃだけが選択オブジェクトとして指定されている。
【０１４２】
図２０（ｃ）は縦書きの複数の確定オブジェクト１３ｄ、１３ｅを跨ぎ線（手書きオブジェクト１１ｃ）で指定した例である。この例では、図２０（ａ）と同様に、手書きオブジェクト矩形領域１２ｄの短辺の長さＨ１と長辺の長さＷ１が跨ぎ線判定条件４０６の条件を満たしており、「議事録」と「ぎじ」という２つの確定オブジェクト１３ｄ、１３ｅそれぞれとの重なり率が跨ぎ線判定条件４０６の条件を満たしているため、「議事録」と「ぎじ」の両方の確定オブジェクト１３ｄ、１３ｅが選択オブジェクトとして指定されている。
【０１４３】
図２０（ｄ）は縦書きの確定オブジェクト１３ｆを囲み線（手書きオブジェクト１１ｄ）で指定した例である。この例では、図２０（ｂ）と同様に、「議事録」という確定オブジェクト１３ｆだけが選択オブジェクトとして指定されている。
【０１４４】
＜操作コマンドの候補の表示例＞
図２１は、図１２に示した手書きオブジェクトがある場合の操作コマンド定義データに基づく操作コマンドの候補の表示例を示す。図２１（ａ）は編集系の操作コマンドの候補であり、図２１（ｂ）は修飾系の操作コマンドの候補である。また、図２１（ａ）は図２０（ａ）の手書きオブジェクト１１ａで選択オブジェクトが指定された例を示す。
【０１４５】
図２１（ａ）（ｂ）に示すように、行頭文字「》」５１１に続いて表示された操作コマンドの候補がメインメニュー５５０である。メインメニュー５５０には最後に実行された操作コマンド名又は操作コマンド定義データで先頭の操作コマンド名が表示される。１行目の行頭文字「》」５１１ａは編集系の操作コマンドの候補であり、２行目の行頭文字「》」５１１ｂは修飾系の操作コマンドの候補である。
【０１４６】
行末の「〉」５１２はサブメニューがあることを示す（サブメニューボタンの一例）。１行目の「〉」５１２ａは編集系の操作コマンドの候補についてサブメニュー（最後に選択された）を表示させる。２行目の「〉」５１２ｂは修飾系の操作コマンドの候補について残りのサブメニューを表示させる。ユーザーが「〉」５１２を押下すると、その右側にサブメニュー５６０が表示される。サブメニュー５６０には操作コマンド定義データで定義されている全ての操作コマンドが表示される。図２１（ａ）の表示例ではメインメニューが表示された時から１行目の「〉」５１２ａに対応したサブメニュー５６０も表示されている。１行目の「〉」５１２ａの押下により表示されてもよい。
【０１４７】
ユーザーがペンでいずれかの操作コマンド名を押下すると、操作コマンド名に対応付けられた操作コマンド定義データのCommandを手書き入力表示制御部２３が選択オブジェクトに対して実行する。すなわち「消去」５２１が選択されると「Delete」、「移動」５２２が選択されると「Move」、「回転」５２３が選択されると「Rotate」、「選択」５２４が選択されると「Select」をそれぞれ実行する。
【０１４８】
例えば、ユーザーが「消去」５２１をペンで押下すると「議事録」と「ぎじ」を消去でき、「移動」５２２，「回転」５２３、「選択」５２４を押すとバウンディングボックス（選択オブジェクトの外接矩形）が表示され、「移動」５２２と「回転」５２３ではペンのドラッグ動作で移動又は回転でき、「選択」５２４ではその他のバウンディングボックスの操作を実行できる。
【０１４９】
操作コマンドの候補以外の文字列候補である「一」５４１、「一、」５４２、「〜」５４３、「→」５４４、「⇒」５４５は跨ぎ線（手書きオブジェクト１１ａ）の認識結果であり、ユーザーが操作コマンドでなく文字列を入力するつもりであった場合は文字列候補を選択できる。
【０１５０】
図２１（ｂ）では２行目の「〉」５１２ｂの押下により、図２１（ｂ）のサブメニューが表示される。図２１（ｂ）の表示例も図２１（ａ）と同様にメインメニュー５５０とサブメニュー５６０が表示されている。図１２の操作コマンド定義データに基づいて、「太く」５３１が選択されると「Thick」、「細く」５３２が選択されると「Thin」、「大きく」５３３が選択されると「Large」、「小さく」５３４が選択されると「Small」、下線５３５が選択されると「Underline」を手書き入力表示制御部２３が選択オブジェクトに対してそれぞれ実行する。
【０１５１】
なお、「太く」５３１が選択された場合にどのくらい太くするか、「細く」５３２が選択された場合にどのくらい細くするか、「大きく」５３３が選択された場合にどのくらい大きくするか、「小さく」５３４が選択された場合にどのくらい小さくするか、下線５３５が選択された場合の線種等は、固定値が別途定義されている。あるいは、図２１（ｂ）のサブメニューが選択されると別途、選択メニューが開かれユーザーが調整できるようになっているとなおよい。
【０１５２】
ユーザーが「太く」５３１をペンで押下すると「議事録」と「ぎじ」という確定オブジェクト１３ａ、１３ｂを構成する線を手書き入力表示制御部２３が太くする。「細く」５３２をペンで押下すると、「議事録」と「ぎじ」を構成する線を手書き入力表示制御部２３が細くでき、「大きく」５３３をペンで押下すると手書き入力表示制御部２３が大きくでき、「小さく」５３４をペンで押下すると手書き入力表示制御部２３が小さくでき、「下線」５３５をペンで押下すると下線を手書き入力表示制御部２３が追加できる。
【０１５３】
図２２は、図１２に示した手書きオブジェクトがある場合の操作コマンド定義データに基づく操作コマンドの候補の表示例を示す。図２１（ａ）（ｂ）との相違は、図２２（ａ）（ｂ）は図２０（ｂ）の手書きオブジェクト１１ｂ（囲み線）で選択オブジェクトが指定された例を示す。図２１と図２２を比較すると分かるように手書きオブジェクトが線か囲み線かによって表示される操作コマンドの候補に違いはない。手書き入力表示制御部２３は選択オブジェクトが指定されると操作コマンドの候補を表示部２２に表示させるためである。しかし、手書きオブジェクトを認識して手書きオブジェクトに応じて表示する操作コマンドの候補を変更してもよい。この場合、認識された手書きオブジェクト（一や○など）に図１２のような操作コマンド定義データを対応付けておく。
【０１５４】
図２２において操作コマンドの候補以外の文字列候補である「○」５５１、「∞」５５２、「０」５５３、「００」５５４、「ロ」５５５は囲み線（手書きオブジェクト１１ｂ）の認識結果であり、ユーザーが操作コマンドでなく文字列を入力するつもりであった場合は文字列候補を選択できる。
【０１５５】
＜角度情報の入力例＞
次に、図２３を用いて角度情報の入力方法を説明する。図２３は、角度情報の入力方法を説明する図の一例である。図２３では手書き入力装置２の３時の方向に存在するユーザーが角度情報を入力する場合を説明する。３時の方向から手書きされた文字等は時計回りに９０度回転されると正しく認識されるので、９０度の角度情報が入力されるとよい。
【０１５６】
図２３（ａ）は、ペンＩＤ制御データの角度情報が０度（初期値）の状態で、手書き入力装置２の３時の方向に存在するユーザーが「ぎ」を手書きしたため、操作ガイド５００が表示された状態を示す。手書き入力装置２は３時の方向から手書きした「ぎ」を、角度情報が０度のまま文字認識するため、期待とは違う選択可能候補５３０が表示されている。
【０１５７】
角度情報を入力する場合、ユーザーは操作ガイド５００内に、ユーザーから見て上から下方向に直線を手書きする。図２３（ｂ）はこの直線５２１の一例を示す。角度情報が０度である６時の方向とこの直線５２１との反時計回りのなす角αが角度情報である。すなわち、始点Ｓから６時の方向に下ろした直線５２２と、ユーザーが入力した直線５２１の反時計回りのなす角αが角度情報である。簡単には、直線５２１の終点方向が角度情報である。したがって、図２３（ｂ）でユーザーが入力した角度情報は９０度である。
【０１５８】
なお、直線の検出には、例えば、始点Ｓから終点Ｅまでの座標を最小二乗法で直線に変換し、得られた相関係数と閾値を比較して直線か否かを判定する方法がある。
【０１５９】
ユーザーが直線５２１を書き始めた直後（ペン２５００を直線５２１の始点Ｓに触れた直後）、手書き入力装置２は操作ガイド５００を消去する。また、直線５２１を書き終わった直後（ペン２５００を直線５２１の終点Ｅから離した直後）、手書き入力装置２は、４５度、９０度、１３５度、１８０度、２１５度、２７０度、３１５度、３６０度から上記のなす角αが最も近い値を探してそれを角度情報に決定する。なす角αそのものを角度情報としてもよい。ペンＩＤ制御データのAngleには決定した角度情報が設定される。ペン２５００のペンイベント送信部４１は、手書きなどのためにペン先が押圧されると、ペンＩＤを手書き入力装置２に送信するので、手書き入力装置２はペンＩＤ制御データに角度情報を対応付けることができる。
【０１６０】
なお、ユーザーが直線を手書きして角度情報を入力できるのは操作ガイド５００に限られている。これにより、ユーザーが操作ガイド５００以外で直線を手書きすると「１」や「一」などと認識され、操作ガイド５００で直線を手書きすると角度情報を入力できる。すなわち、手書き認識制御部２６は、所定範囲から直線を検出し、所定範囲外に手書きされたストロークデータをテキストデータに変換する。
【０１６１】
図２３（ｃ）は、図２３（ｂ)の操作直後の操作ガイド５００を示す。ペンＩＤ制御データには角度情報(Angle)として９０度が設定されたので、手書きオブジェクト（ストロークデータ）が内部的に９０度だけ時計回りに回転して手書き認識され、操作ガイド５００は９０度だけ反時計回りに回転して表示されている。
【０１６２】
図２４は、角度情報の別の入力方法を説明する図の一例である。図２４では手書き入力装置２の３時の方向にユーザーが存在するものとする。図２４は、角度情報が０度（初期値）の状態で、手書き入力装置２の３時の方向に存在するユーザーが「ぎ」を手書きしたため、操作ガイド５００と選択可能候補５３０が表示されている。図２４の操作ガイド５００は操作ヘッダー５２０に回転操作ボタン５１１を有している。
【０１６３】
回転操作ボタン５１１は、ユーザーがペン２５００で押下するたびに、ペンＩＤ制御データの角度情報を９０度ずつ加算して３６０度で割った余りに変更するボタンである。この余りが角度情報となる。なお、回転操作ボタン５１１の１回の押下で加算される角度を４５度としてもよい。
【０１６４】
＜手書きサインデータの登録例＞
次に、図２５を用いて手書きサインデータの登録例を説明する。図２５は手書きサインデータの登録方法を説明する図である。まず、図２５（ａ）は「サイン」とユーザーが手書きした場合に表示される選択可能候補５３０の一例である。「サイン」という文字列と部分一致する、操作コマンド定義データ７１３，７１５に基づく「手書きサイン登録する」と「手書きサインアウトする」の二つの操作コマンド５１３，５１４と、「サイン」「サイン会」「サイン入り」の文字列候補が表示されている。２つの操作コマンド５１３，５１４が表示されたのは、図１１の操作コマンド定義データ７１３，７１５のStringが「サイン」を有するためである。
【０１６５】
ユーザーがペン２５００で「手書きサイン登録する」を押下すると、手書き入力保存部２５に図２５（ｂ）の手書きサイン登録フォーム５６１が追加され、操作画面１０１に表示される。例えば、図２５（ａ）の操作ガイド５００が消去され、操作ガイド５００と同じ場所に手書きサイン登録フォーム５６１が表示される。手書きサイン登録フォーム５６１は上段から、名前入力欄５６１ａ、サイン入力欄５６１ｂ〜５６１ｄ、及び、登録確定欄５６１ｅを有する。ユーザーは、名前入力欄５６１ａに名前のテキスト、サイン入力欄５６１ｂ〜５６１ｄに１回目の手書きサイン、２回目の手書きサイン、３回目の手書きサイン、登録確定欄５６１ｅにチェックマーク又は取消マークを入力する。名前のテキストはこのユーザーの表示名であり、テキストデータに変換される。手書きサインが３回も入力されるのは、手書きサインはユーザーが書くたびに異なり完全一致しない前提で特徴量を登録しておくためである。
【０１６６】
なお、手書きサインは一般にはユーザー名等、ユーザーに関する文字等であり、ユーザー名の他、社員番号などの数字、ニックネーム、似顔絵などでもよい。また、手書きサインはユーザーに関する文字等に限られず、何らかの手書きオブジェクトであればよい。例えば、丸、三角形、四角形、記号やその組み合わせでもよい。手書きサインは、座標だけが特徴データとなるわけではないので、同姓のユーザー（例えば、鈴木さん）がどちらも「すずき」という手書きサインを登録しても正しく認証できる。
【０１６７】
手書きサイン登録フォーム５６１にユーザーが指示通りに手書きをすると、図２５（ｃ）に示す手書きサイン登録フォーム５６１となる。登録確定欄５６１ｅに「チェックマーク」をユーザーが手書きすると手書きサインデータが手書きサインデータ保存部３９に登録され手書きサイン登録フォーム５６１は削除される。登録によりSignatureIdが採番される。同様に採番されたAccountIdと名前入力欄５６１ａに名前のテキストがSignatureIdに対応付けてユーザー定義データに登録される。ユーザーがユーザー名等を手書きしてサインインすると、ユーザー定義データでAccountIdに対応付けられたSignatureIdが取得され手書きサインインに使用したペン２５００のペンＩＤに対応づけてペンＩＤ制御データに登録される。以降は、ユーザーがペン２５００を使用すればペンＩＤが手書き入力装置２に送信されので、ペンＩＤ制御データでペンＩＤに対応付けられたAccountIdが特定される。ユーザーが意識しなくてもユーザー定義データを使用した操作コマンドの実行が可能になる。
【０１６８】
登録確定欄５６１ｅに「×」をユーザーが手書きすると手書きサイン登録は取消され手書きサイン登録フォーム５６１は削除される。なお、登録に関して何らかのエラーが発生した場合、操作画面１０１のシステム予約領域などにその旨が表示される。
【０１６９】
このように、手書き入力表示制御部２３はフォームへの手書き入力とフォーム以外の手書き入力を区別せずに手書き入力を受け付けることができる。
【０１７０】
＜手書きよるサインインの一例＞
次に、図２６を用いて、手書きサインデータの登録後に、ユーザーがサインインする方法を説明する。図２６は、ユーザーが登録した手書きサインデータである「すずき」と手書きした場合に表示される操作ガイド５００の一例である。「すずき」が手書きサインデータとして操作コマンド定義部３３に登録されているので、「すずき」が手書きサインデータと適合する。このため、「手書きサインインする」という操作コマンド５１２が表示されている。
【０１７１】
また、手書きサインデータが適合したので「すずき」を表すSignatureIdが特定され、このSignatureIdに対応付けられているAccountIdを有するユーザー定義データが特定される。
【０１７２】
ユーザーが「手書きサインインする」という操作コマンド５１２を選択すると、使用しているペン２５００のペンＩＤに「すずき」のAccountIdを対応付けてペンＩＤ制御データに追加され、「すずき」のユーザー定義データが操作コマンドの使用時に使用されるようになる。
【０１７３】
図２６の手書きサイン登録フォーム５６１を用いた手書きサインデータの登録は、文字等の通常の手書き入力における処理の一環として制御されるので、手書きサイン登録フォーム５６１は文字等が手書きされる操作画面と同じ操作画面に表示される。手書きサイン登録フォーム５６１の内外の手書き操作に違いはなく、ユーザーは手書きサイン登録フォーム５６１の罫線で区切られた領域に手書き入力するだけで手書きサイン登録フォーム５６１への入力を完了させることができる。
【０１７４】
＜ユーザー定義データの変更操作例＞
次に、図２７を用いて、ユーザー定義データの変更方法を説明する。図２７は、ユーザー定義データの変更方法を説明する図である。図２７（ａ）は、ユーザーが「せ」と手書きした時に表示される操作ガイド５００の一例である。図１１に示した操作コマンド定義データ７１６はStringに「設定」が定義されており、「せ」の予測文字列に「設定」があったため、「設定変更する」という操作コマンドが表示された。
【０１７５】
ユーザーが、手書きでサインインしたペン２５００で「設定変更する」を選択すると、ペンＩＤ制御データでこのペン２５００のペンＩＤに対応付けられているユーザーのAccountIdが特定される。これにより、サインインしたユーザーのユーザー定義データが特定される。図２７（ｂ）のユーザー定義データ変更フォーム５６２が手書き入力保存部２５に追加され、操作画面１０１に表示される。図２７の例では、図１３のユーザー定義データ７１８に従ってユーザー定義データ変更フォーム５６２が作成される。ユーザー定義データ変更フォーム５６２は名前欄５６２ａ、パスワード欄５６２ｂ、フォルダーユーザー名欄５６２ｃ、フォルダーパスワード欄５６２ｄ、フォルダーファイル名欄５６２ｅ、及び、登録又は取消欄５６２ｆを有する。
【０１７６】
なお、予めユーザーが手書きでサインインしていないと手書き入力装置２はユーザーのAccountIdを特定できないのでエラーとなり、操作画面１０１のシステム予約領域などにエラーメッセージが表示される。
【０１７７】
図２７（ｂ）のユーザー定義データ変更フォーム５６２の、パスワード欄５６２ｂにパスワードを、フォルダーユーザー名欄５６２ｃにフォルダーユーザー名を、フォルダーパスワード欄５６２ｄにフォルダーパスワードを、フォルダーファイル名欄５６２ｅにフォルダーファイル名を、及び、登録又は取消欄５６２ｆに「チェックマーク」又は「×」をユーザーが手書きするとユーザー定義データの変更が実行され、ユーザー定義データ変更フォーム５６２は削除される。
【０１７８】
このように、ユーザーはユーザー定義データ変更フォーム５６２を呼び出すストロークデータを手書きすることで、ユーザー定義データ変更フォーム５６２を表示させ、ユーザー定義データを任意に変更できる。手書き入力表示制御部２３はフォームへの手書き入力とフォーム以外の手書き入力を区別せずに手書き入力を受け付ける。
【０１７９】
なお、名前欄５６２ａには、ユーザー定義データが有するAccountUsernameが自動で表示される。また、ユーザー定義データ変更フォーム５６２は変更だけでなく登録にも使用可能である。
【０１８０】
図２７のユーザー定義データ変更フォーム５６２を用いたユーザー定義データの変更は、文字等の通常の手書き入力における処理の一環として制御されるので、ユーザー定義データ変更フォーム５６２は文字等が手書きされる操作画面と同じ操作画面に表示される。ユーザー定義データ変更フォーム５６２の内外の手書き操作に違いはなく、ユーザーはユーザー定義データ変更フォーム５６２の罫線で区切られた領域に手書き入力するだけでユーザー定義データ変更フォーム５６２への入力を完了させることができる。
【０１８１】
＜動作手順＞
以上の構成と図２８〜図３４を用いて、手書き入力装置２の動作について説明する。図２８〜図３４は手書き入力装置２が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である。図２８の処理は、手書き入力装置２が起動すると（アプリケーションが起動すると）スタートする。なお、図２８〜図３４ではスペースの都合上、符号で図６の機能を示した。
【０１８２】
S1：まず、手書き入力表示制御部２３が手書きオブジェクト開始を手書き入力保存部２５に送信する。手書き入力保存部２５は手書きオブジェクト領域（手書きオブジェクトを保存するメモリー領域）を確保する。ユーザーがペンを手書き入力部２１に接触させてから手書きオブジェクト領域を確保してもよい。
【０１８３】
S2：次にユーザーが手書き入力部２１にペンを接触させる。手書き入力部２１はペンダウンを検出して手書き入力表示制御部２３に送信する。
【０１８４】
S3：手書き入力表示制御部２３は手書き入力保存部２５にストローク開始を送信し、手書き入力保存部２５はストローク領域を確保する。
【０１８５】
S4：ユーザーがペンを手書き入力部２１に接触させたまま移動させると、手書き入力部２１はペン座標を手書き入力表示制御部２３に送信する。
【０１８６】
S5：手書き入力表示制御部２３は座標の入力と同時にペン２５００から受信したペンＩＤを指定して、ペンＩＤ制御データ保存部３６に保存されている現在のペンＩＤ制御データを取得する。ペンＩＤは座標の入力時に送信されるので、ストロークとペンＩＤが対応付けられる。ペンＩＤ制御データ保存部３６はペンＩＤ制御データ（色、太さ、パターン、角度情報）を手書き入力表示制御部２３に送信する。なお、角度情報はまだ初期値のゼロである。
【０１８７】
S6：手書き入力表示制御部２３はペン座標補完表示データ（離散的なペン座標を補間するデータ）を表示部２２に送信する。表示部２２はペン座標補完表示データを用いてペン座標を補間して線を表示する。
【０１８８】
S7：手書き入力表示制御部２３はペン座標とその受信時刻を手書き入力保存部２５に送信する。手書き入力保存部２５はペン座標をストロークに追加する。ユーザーがペンを動かしている間は、手書き入力部２１は定期的に手書き入力表示制御部２３へのペン座標の送信を繰り返すため、ステップS4〜S7の処理がペンアップされるまで繰り返される。
【０１８９】
S8：ユーザーが手書き入力部２１からペンを離すと、手書き入力部２１はペンアップを手書き入力表示制御部２３に送信する。
【０１９０】
S9：手書き入力表示制御部２３は手書き入力保存部２５にストローク終了を送信し、手書き入力保存部２５はストロークのペン座標を確定させる。ストロークのペン座標の確定により以降はストロークにペン座標を追加できなくなる。
【０１９１】
S10：次に、手書き入力表示制御部２３は手書きオブジェクト近傍矩形領域４０３に基づいて、手書きオブジェクト近傍矩形領域とストローク矩形領域の重なり状況取得を手書き入力保存部２５に送信する。手書き入力保存部２５は重なり状況を計算して重なり状況を手書き入力表示制御部２３に送信する。
【０１９２】
続く、ステップS11〜S17は、手書きオブジェクト近傍矩形領域とストローク矩形領域が重なっていない場合に実行される。
【０１９３】
S11：手書きオブジェクト近傍矩形領域とストローク矩形領域が重なっていない場合、１つの手書きオブジェクトが確定するので、手書き入力表示制御部２３は保持データクリアを手書き認識制御部２６に送信する。
【０１９４】
S12〜S14：手書き認識制御部２６は保持データクリアをそれぞれ文字列変換制御部２８、予測変換制御部３０、操作コマンド認識制御部３２に送信する。手書き認識制御部２６、文字列変換制御部２８、予測変換制御部３０及び操作コマンド認識制御部３２がこれまでに保持している文字列候補と操作コマンドの候補に係るデータをクリアする。なお、クリアの時点では最後に手書きされたストロークは手書きオブジェクトに追加されていない。
【０１９５】
S15：手書き入力表示制御部２３は手書きオブジェクト終了を手書き入力保存部２５に送信する。手書き入力保存部２５は手書きオブジェクトを確定させる。手書きオブジェクトの確定とは１つの手書きオブジェクトが完成したこと（これ以上、ストロークが追加されないこと）をいう。
【０１９６】
S16：手書き入力表示制御部２３は手書きオブジェクト開始を手書き入力保存部２５に送信する。次の手書きオブジェクトの手書きが開始（ペンダウン）されることに備えて、手書き入力保存部２５は新しい手書きオブジェクト領域を確保する。
【０１９７】
S17：次に手書き入力表示制御部２３はステップS9で終了したストロークに関してストローク追加を手書き入力保存部２５に送信する。ステップS11〜S17が実行された場合、追加されるストロークは手書きオブジェクトの最初のストロークであり、手書き入力保存部２５は開始中の手書きオブジェクトにストロークデータを追加する。ステップS11〜S17が実行されてない場合、追加されるストロークはすでに手書き中の手書きオブジェクトに追加される。
【０１９８】
S18：続いて手書き入力表示制御部２３はストローク追加を手書き認識制御部２６に送信する。手書き認識制御部２６は文字列候補が格納されるストロークデータ保持領域（ストロークデータが一時的に格納される領域）にストロークデータを追加する。
【０１９９】
S19：手書き認識制御部２６はストロークデータ保持領域に対してジェスチャー手書き認識を実行する。ジェスチャー手書き認識とは、直線から角度情報を認識することをいう。なお、ジェスチャー手書き認識は操作ガイド５００の内部で行われるため、手書き認識制御部２６は操作ガイド５００の内部の直線を検出する。操作ガイド５００の位置情報は後述するステップS67で手書き認識制御部２６に送信される。
【０２００】
S20：操作ガイド５００内の直線が検出された場合、直線の始点から６時の方向に下ろした直線５２２と、ユーザーが入力した直線５２１の反時計回りのなす角αを、４５度単位で決定する。そして、手書き認識制御部２６は、決定した角度情報を直線５２１のストロークデータが有するペンＩＤに対応付けてペンＩＤ制御データ保存部３６に保存する。なお、ステップS20は操作ガイド５００内で直線が検出された場合に実行される。
【０２０１】
S21：次に、手書き認識制御部２６は、手書き入力部２１から受信したペンＩＤを指定して、ペンＩＤ制御データ保存部３６から現在のペンＩＤ制御データの角度情報を取得する。
【０２０２】
S22：手書き認識制御部２６は、ストロークデータ保持領域のストロークデータを取得した角度情報で時計回りに回転する。
【０２０３】
S23：手書き認識制御部２６は、手書きサイン認証制御部３８に回転後のストロークデータを送信する。このようにストロークデータが手書きサインかどうかは不明な状態で常に手書きサイン認証制御部３８に送信する。
【０２０４】
S24：手書きサイン認証制御部３８はストロークデータを受信し、手書きサインデータ保存部３９から登録済みの手書きサインデータを受信する。そして、ストロークデータと手書きサインデータの比較（マッチング）を行い、後段のステップS61で手書きサインの認証結果を取得できるように手書きサインの認証結果を保持しておく。
【０２０５】
S25：次に、手書き認識制御部２６はストロークデータに手書き認識を実行し、フォームの登録又は取消欄の「チェックマーク」又は「×」である場合はフォームの処理を行い、そうでない場合は通常の手書き認識の処理を行う。
【０２０６】
S26：手書きサインデータ登録フォームの登録又は取消欄内が「チェックマーク」であった場合、後述するステップS86で手書き入力表示制御部２３が手書き入力保存部２５に生成した手書きサイン登録フォームに対しユーザーが入力した手書きサインデータ（ストロークデータ）を、手書き認識制御部２６が手書きサイン認証制御部３８に送信する。
【０２０７】
S27：手書きサイン認証制御部３８は受信した手書きサインデータ（ストロークデータ）を手書きサインデータ保存部３９に登録する。これにより、SignatureIdが採番される。SignatureIdは手書き認識制御部２６に返却される。手書き認識制御部２６はSignatureId及び手書きサイン登録フォーム５６１の名前入力欄５６１ａに入力された名前がユーザー定義データにない場合、ユーザー定義データを新規に追加しAccountIdを採番する。手書き認識制御部２６はそのユーザー定義データにSignatureIdを保存する。名前入力欄５６１ａに入力された名前がユーザー定義データにある場合は、そのユーザー定義データにSignatureIdを保存する。この処理によってAccountIdとSignatureIdは紐づけられる。なお、ユーザー定義データを新規に追加した場合はその他の値が設定されていないが、ユーザー定義データ変更フォーム５６２からユーザーが登録及び変更可能である。
【０２０８】
S28：手書きサインデータの登録により、手書き認識制御部２６は手書きサイン登録フォーム５６１を手書き入力保存部２５から削除する。
【０２０９】
S29：ユーザー定義データ変更フォームの登録又は取消欄内が「チェックマーク」であった場合、後述するステップS86で手書き入力表示制御部２３が手書き入力保存部２５に生成したユーザー定義データ変更フォーム５６２に入力された変更値を手書き認識制御部２６が操作コマンド定義部３３に送信する。
【０２１０】
S30：ユーザー定義データの変更の実行により、手書き認識制御部２６はユーザー定義データ変更フォーム５６２を手書き入力保存部２５から削除する。
【０２１１】
S31：後述するステップS86で追加したフォームの登録又は取消欄内が「×」であった場合、手書き認識制御部２６はステップS86で追加したフォームを手書き入力保存部２５から削除する。
【０２１２】
S33：フォーム処理でなかった場合、手書き認識制御部２６はこの実行結果である手書き認識文字列候補を手書き認識辞書部２７に送信する。手書き認識辞書部２７は言語的に確からしい言語文字列候補を手書き認識制御部２６に送信する。
【０２１３】
S34：手書き認識制御部２６は手書き認識文字列候補及び受信した言語文字列候補を文字列変換制御部２８に送信する。
【０２１４】
S35：文字列変換制御部２８は手書き認識文字列候補及び言語文字列候補を文字列変換辞書部２９に送信する。文字列変換辞書部２９は変換文字列候補を文字列変換制御部２８に送信する。
【０２１５】
S36：文字列変換制御部２８は受信した変換文字列候補を予測変換制御部３０に送信する。
【０２１６】
S37：予測変換制御部３０は受信した変換文字列候補を予測変換辞書部３１に送信する。予測変換辞書部３１は予測文字列候補を予測変換制御部３０に送信する。
【０２１７】
S38:予測変換制御部３０は受信した予測文字列候補を操作コマンド認識制御部３２に送信する。
【０２１８】
S39:操作コマンド認識制御部３２は受信した予測文字列候補を操作コマンド定義部３３に送信する。操作コマンド定義部３３は操作コマンドの候補を操作コマンド認識制御部３２に送信する。これにより、操作コマンド認識制御部３２は予測文字列候補と一致する文字列(String)を有する操作コマンド定義データに対応する操作コマンドの候補を取得できる。
【０２１９】
以降ステップS40〜S47で説明される操作コマンドの候補の送信まで同様に処理を行う。
S40：文字列変換制御部２８は受信した変換文字列候補を操作コマンド認識制御部３２に送信する。
【０２２０】
S41:操作コマンド認識制御部３２は受信した変換文字列候補を操作コマンド定義部３３に送信する。操作コマンド定義部３３は操作コマンドの候補を操作コマンド認識制御部３２に送信する。これにより、操作コマンド認識制御部３２は変換文字列候補と一致する文字列(String)を有する操作コマンド定義データに対応する操作コマンドの候補を取得できる。
【０２２１】
S42：手書き認識制御部２６は手書き認識文字列候補及び言語文字列候補を予測変換制御部３０に送信する。
【０２２２】
S43：予測変換制御部３０は手書き認識文字列候補及び受信した言語文字列候補を予測変換辞書部３１に送信する。予測変換辞書部３１は予測文字列候補を予測変換制御部３０に送信する。
【０２２３】
S44:予測変換制御部３０は受信した予測文字列候補を操作コマンド認識制御部３２に送信する。
【０２２４】
S45:操作コマンド認識制御部３２は受信した予測文字列候補を操作コマンド定義部３３に送信する。操作コマンド定義部３３は操作コマンドの候補を操作コマンド認識制御部３２に送信する。これにより、操作コマンド認識制御部３２は予測文字列候補と一致する文字列(String)を有する操作コマンド定義データに対応する操作コマンドの候補を取得できる。
【０２２５】
S46:手書き認識制御部２６は手書き認識文字列候補及び受信した言語文字列候補を操作コマンド認識制御部３２に送信する。
【０２２６】
S47:操作コマンド認識制御部３２は手書き認識文字列候補及び受信した言語文字列候補を操作コマンド定義部３３に送信する。操作コマンド定義部３３は操作コマンドの候補を操作コマンド認識制御部３２に送信する。これにより、操作コマンド認識制御部３２は言語文字列候補と一致する文字列(String)を有する操作コマンド定義データに対応する操作コマンドの候補を取得できる。
【０２２７】
S48:次に手書き認識制御部２６はストローク追加を操作コマンド認識制御部３２に送信する。
【０２２８】
S49：操作コマンド認識制御部３２は確定オブジェクトの位置情報取得を手書き入力保存部２５に送信する。手書き入力保存部２５は確定オブジェクトの位置情報を操作コマンド認識制御部３２に送信する。
【０２２９】
S50:操作コマンド認識制御部３２は選択オブジェクトの判定のため、ステップS48のストローク追加で手書き認識制御部２６から受信したストロークの位置情報と、手書き入力保存部２５から受信した確定オブジェクトの位置情報が所定の関係にあるか否かを跨ぎ線判定条件４０６及び囲み線判定条件４０７に基づいて判定し、選択されていると判定できる確定オブジェクトを選択オブジェクトとして保存しておく。また、この場合、選択オブジェクトが特定されるので入出力系の操作コマンドの候補を操作コマンド定義部３３から取得する。
【０２３０】
また、手書き認識制御部２６、文字列変換制御部２８、予測変換制御部３０、及び、操作コマンド認識制御部３２はそれぞれ手書き認識文字列候補、言語文字列候補、変換文字列候補、予測文字列候補、操作コマンドの候補、及び、選択オブジェクトに係るデータを後段のステップS55〜S58で取得できるよう保持しておく。
【０２３１】
S18−2：手書き入力表示制御部２３はステップS18でストローク追加を手書き認識制御部２６に送信した直後、選択可能候補表示タイマー開始を候補表示タイマー制御部２４に送信する。候補表示タイマー制御部２４はこのタイマーを開始する。
【０２３２】
続く、ステップS51〜S53は一定時間が経過する前に（タイマーがタイムアウトする前に）ペンダウンが発生した場合に実行される。
【０２３３】
S51：タイマーがタイムアウトする前に、ユーザーが手書き入力部２１にペンを接触させた場合、手書き入力部２１はペンダウン（ステップS2と同じイベント）を手書き入力表示制御部２３に送信する。
【０２３４】
S52:手書き入力表示制御部２３はストローク開始（ステップS3と同じ）を手書き入力保存部２５に送信する。この後のシーケンスはステップS3以降と同じである。
【０２３５】
S53：更に手書き入力表示制御部２３は選択可能候補表示タイマー停止を候補表示タイマー制御部２４に送信する。候補表示タイマー制御部２４はタイマーを停止させる。ペンダウンが検出されたのでタイマーが不要になるからである。
【０２３６】
ステップS54〜S89は一定時間が経過する前に（タイマーがタイムアウトする前に）ペンダウンが発生しない場合に実行される。したがって、図１７に示した操作ガイド５００が表示される。
【０２３７】
S54:選択可能候補表示タイマー開始中にユーザーが手書き入力部２１にペンを接触させなかった場合、候補表示タイマー制御部２４はタイムアウトを手書き入力表示制御部２３に送信する。
【０２３８】
S55:手書き入力表示制御部２３は手書き認識文字列/言語文字列候補取得を手書き認識制御部２６に送信する。手書き認識制御部２６は現在保持している手書き認識文字列/言語文字列候補を手書き入力表示制御部２３に送信する。
【０２３９】
S56:手書き入力表示制御部２３は変換文字列候補取得を文字列変換制御部２８に送信する。文字列変換制御部２８は現在保持している変換文字列候補を手書き入力表示制御部２３に送信する。
【０２４０】
S57:手書き入力表示制御部２３は予測文字列候補取得を予測変換制御部３０に送信する。予測変換制御部３０は現在保持している予測文字列候補を手書き入力表示制御部２３に送信する。
【０２４１】
S58:手書き入力表示制御部２３は操作コマンドの候補取得を操作コマンド認識制御部３２に送信する。操作コマンド認識制御部３２は現在保持している操作コマンドの候補と選択オブジェクトを手書き入力表示制御部２３に送信する。
【０２４２】
S59:更に、手書き入力表示制御部２３は推定書字方向取得を手書き入力保存部２５に送信する。手書き入力保存部２５は手書きオブジェクト矩形領域のストローク追加時間と水平距離と垂直距離から判定して、推定書字方向を手書き入力表示制御部２３に送信する。
【０２４３】
S60：次に、手書き入力表示制御部２３は、手書き入力部２１から受信したペンＩＤを指定して、ペンＩＤ制御データ保存部３６から現在のペンＩＤ制御データの角度情報を取得する。
【０２４４】
S61：手書き入力表示制御部２３は手書きサイン認証制御部３８から手書きサインの認証結果を取得する。これにより、ユーザーのSignatureIdが得られるので、後述する操作コマンドの実行時にペンＩＤにAccountIdが対応付けて登録される。
【０２４５】
S62:手書き入力表示制御部２３はこれらの手書き認識文字列候補（図１７では「ぎ」）、言語文字列候補（図１７では表示がないが例えば「議」）、変換文字列候補（図１７では「議事録」「技量試」）、予測文字列候補（図１７では「技量試を決済」「議事録の送付先」）、操作コマンドの候補（図１７では「議事録テンプレートを読み込む」「議事録フォルダーに保存する）、各選択確率、及び、推定書字方向から図１７のような選択可能候補表示データを作成する。また、手書き入力表示制御部２３はステップS60で取得した角度情報で選択可能候補表示データ（操作ガイド５００）を反時計回りに回転させ、回転後の選択可能候補表示データ（操作ガイド５００）を表示部２２に送信することで表示させる。
【０２４６】
S63:また、手書き入力表示制御部２３は手書きオブジェクトと選択オブジェクトの矩形領域表示データ（矩形枠）（図１７では手書きオブジェクト矩形領域表示５０３）を、ステップS60で取得した角度情報で反時計回りに回転させ、表示部２２に送信することで表示させる。
【０２４７】
S64:手書き入力表示制御部２３は選択可能候補表示データの表示から一定時間後に消去するため選択可能候補表示消去タイマー開始を候補表示タイマー制御部２４に送信する。候補表示タイマー制御部２４はこのタイマーを開始する。
【０２４８】
ステップS65〜S70は、選択可能候補消去タイマー開始中に、ユーザーが表示部２２に表示された選択可能候補表示を消去したか、手書きオブジェクトの変化が発生した場合（即ち手書きオブジェクトのストロークの追加、削除、移動、変形又は分割された場合）、又は、タイムアウトまでに候補が選択されなかった場合に実行される。
【０２４９】
更に、ステップS65〜S67は、候補表示が消去されるか、又は、手書きオブジェクトの変化が発生した場合に実行される。
【０２５０】
S65：手書き入力部２１は選択可能候補表示消去又は手書きオブジェクトの変化の発生を手書き入力表示制御部２３に送信する。
【０２５１】
S66：手書き入力表示制御部２３は選択可能候補消去タイマー停止を送信する。候補表示タイマー制御部２４はそのタイマーを停止する。一定時間内に手書きオブジェクトに対し操作があったためタイマーが不要になるからである。
【０２５２】
S67：手書き入力表示制御部２３は、ステップS19のジェスチャー手書き認識のジェスチャー判定で使用できるよう、操作ガイド５００の位置情報を手書き認識制御部２６に保存する。位置情報は例えば左上コーナーと右下コーナーの座標又はこれと同等の座標である。これにより、手書き認識制御部２６は角度情報の入力に使用される直線が操作ガイド５００内かどうかを判定できる。
【０２５３】
S69：手書き入力表示制御部２３は選択可能候補表示データ消去を表示部２２に送信することで、表示を消去させる。
【０２５４】
S70：手書き入力表示制御部２３は手書きオブジェクトと選択オブジェクトの矩形領域表示データ消去を表示部２２に送信することで、表示を消去させる。したがって、操作コマンド候補が選択される以外の条件で、操作コマンド候補の表示を消去した場合、手書きオブジェクトはそのまま表示が維持される。
【０２５５】
S68:一方、選択可能候補消去タイマー開始中に、選択可能候補表示消去又は手書きオブジェクトの変化が発生しなかった場合（ユーザーがペン操作をしなかった場合は）、候補表示タイマー制御部２４はタイムアウトを手書き入力表示制御部２３に送信する。
【０２５６】
選択可能候補表示消去タイマーのタイムアウトの後も同様に、手書き入力表示制御部２３はステップS69とS70を実行する。一定時間の経過で選択可能候補表示データ、手書きオブジェクトと選択オブジェクトの矩形領域表示データを消去してよいためである。
【０２５７】
選択可能候補消去タイマー開始中に、ユーザーが選択可能候補を選択した場合、ステップS71〜S89が実行される。
【０２５８】
S71：選択可能候補消去タイマー開始中に、ユーザーが選択可能候補を選択した場合、手書き入力部２１は文字列候補又は操作コマンドの候補選択を手書き入力表示制御部２３に送信する。
【０２５９】
S71−2:手書き入力表示制御部２３は選択可能候補表示消去タイマー停止を候補表示タイマー制御部２４に送信する。候補表示タイマー制御部２４はこのタイマーを停止する。
【０２６０】
S72:次に手書き入力表示制御部２３は保持データクリアを手書き認識制御部２６に送信する。
【０２６１】
S73:手書き認識制御部２６は保持データクリアを文字列変換制御部２８に送信する。
【０２６２】
S74:手書き認識制御部２６は保持データクリアを予測変換制御部３０に送信する。
【０２６３】
S75：手書き認識制御部２６は保持データクリアを操作コマンド認識制御部３２に送信する。
【０２６４】
手書き認識制御部２６、文字列変換制御部２８、予測変換制御部３０、及び、操作コマンド認識制御部３２はこれまで保持していた文字列候補及び操作コマンドの候補に係るデータをクリアする。
【０２６５】
S76:次に手書き入力表示制御部２３は選択可能候補表示データ消去を表示部２２に送信することで表示を消去させる。
【０２６６】
S77：手書き入力表示制御部２３は手書きオブジェクトと選択オブジェクトの矩形領域表示データ消去を表示部２２に送信することで表示を消去させる。
【０２６７】
S78：手書き入力表示制御部２３は手書きオブジェクト表示データ消去及びステップS6で送信したペン座標補完表示データ消去を表示部２２に送信することで表示を消去させる。文字列候補又は操作コマンドの候補が選択されたため、手書きオブジェクト等が不要になるためである。
【０２６８】
S79：手書き入力表示制御部２３は手書きオブジェクト削除を手書き入力保存部２５に送信する。
【０２６９】
文字列候補が選択された場合、ステップS80〜S82が実行される。
【０２７０】
S80:文字列候補が選択された場合、手書き入力表示制御部２３は文字列オブジェクト追加を手書き入力保存部２５に送信する。
【０２７１】
S81：更に手書き入力表示制御部２３は文字列オブジェクトフォント取得を手書き入力保存部２５に送信する。手書き入力保存部２５は手書きオブジェクトの推定文字サイズから定義済みフォントを選択して手書き入力表示制御部２３に送信する。
【０２７２】
S82:次に手書き入力表示制御部２３は手書き入力保存部２５から受信した定義済みフォントを使用して、手書きオブジェクトと同じ位置に表示させる文字列オブジェクト表示データを表示部２２に送信させることで、表示させる。
【０２７３】
操作コマンドの候補が選択された場合、ステップS83〜S88が実行される。更に、選択オブジェクトがある場合はステップS83〜S85が実行される。
【０２７４】
S83：選択オブジェクトへの操作コマンドの候補が選択された場合（選択オブジェクトが存在する場合）は、手書き入力表示制御部２３は選択オブジェクト表示データ消去を表示部２２に送信することで表示を消去させる。いったん、元の選択オブジェクトを消去するためである。
【０２７５】
S84:次に、手書き入力表示制御部２３は選択オブジェクトへの操作コマンド実行を手書き入力保存部２５に送信する。手書き入力保存部２５は新しい選択オブジェクトの表示データ（編集又は修飾後の表示データ）を手書き入力表示制御部２３に送信する。
【０２７６】
S85:次に手書き入力表示制御部２３は選択オブジェクト表示データを表示部２２に送信することで、操作コマンド実行後の選択オブジェクトを再表示させる。
【０２７７】
S86：入出力系の操作コマンドである操作コマンド定義データ７１３の「手書きサイン登録する」又は操作コマンド定義データ７１６の「設定変更する」が指定された場合、手書き入力表示制御部２３は手書きサイン登録フォーム５６１又はユーザー定義データ変更フォームを手書き入力保存部２５に追加する。
【０２７８】
S87：その他、入出力系の操作コマンドが選択された場合、手書き入力表示制御部２３はユーザーが選択した操作コマンドに対応する操作コマンド定義データの操作コマンド文字列(Command)を実行する。
【０２７９】
サインインするための操作コマンド５１２が実行された場合、手書き入力表示制御部２３は操作コマンド５１２の実行時に入力手段通信部３７が受信したペンＩＤを取得する。手書き入力表示制御部２３はステップS61で取得したSignatureIdを有するユーザー定義データを特定してAccountIdをユーザー定義データから取得する。そして、ペンＩＤに対応付けてAccountIdをペンＩＤ制御データに登録する。これにより、ペン２５００とユーザーが紐付いた形となり、手書き入力装置２はユーザー定義データを使って処理が可能になる。
【０２８０】
ユーザーがサインインした後に操作コマンドが実行された場合、手書き入力表示制御部２３は、操作コマンドの実行時に入力手段通信部３７が受信したペンＩＤに対応付けられているAccountIdをペンＩＤ制御データから取得する。手書き入力表示制御部２３は、このAccountIdでユーザー定義データを特定し、操作コマンドの％〜％に設定して実行する。
【０２８１】
S88：図２４に示したように、操作ヘッダー５２０の回転操作ボタン５１１をユーザーが押下した場合、手書き入力表示制御部２３は回転操作ボタン５１１の押下数によって、角度情報を受け付ける。手書き入力表示制御部２３は受け付けた角度情報を、回転操作ボタン５１１の押下時にペン２５００から受信したペンＩＤに対応付けてペンＩＤ制御データ保存部３６に保存する。
【０２８２】
S89：次の手書きオブジェクトのために手書き入力表示制御部２３は手書きオブジェクト開始を手書き入力保存部２５に送信する。手書き入力保存部２５は手書きオブジェクト領域を確保する。これ以降、ステップS2〜S89の処理が繰り返される。
【０２８３】
＜まとめ＞
以上説明したように、本実施形態の手書き入力装置２は、文字等の入力と手書きサインの入力を区別せずにユーザーが手書きすることができ、各種の操作コマンドとサインインするための操作コマンド５１２を区別せずにユーザーが手書きで呼び出すことができる。
【０２８４】
また、本実施形態の手書き入力装置２は画面上のキーボードを使わず、また、ＩＣカードのような特別なハードウェアを追加することなく、ユーザーが直感的に手書きするだけでユーザー認証することが可能になる。手書きという作業は直感的なのでユーザーが手書き入力装置を操作する方法を学習するコストを下げる効果が期待できる。また、同様に、所定の文字等を手書きするだけでサインアウトできる。また、ユーザーは手書きだけで手書きサインデータを登録できる。
【０２８５】
手書きでサインインした後は、サインインに使用したペンにユーザーの識別情報（AccountId）が対応付けられ、ユーザー定義データを使用して操作コマンドを実行できる。また、手書きでユーザー定義データを変更できる。
【０２８６】
また、本実施形態の手書き入力装置２は、操作メニューを選択してボタンのリストから操作を選択するという作業が必要なく、文字等を手書きする場合と同様に操作コマンドを入力できる。操作ガイドには操作コマンドと選択可能候補５３０が同時に表示されるので、ユーザーは文字等の入力と操作コマンドの選択を区別せずに手書き入力装置２を使用できる。ユーザーが手書きオブジェクトを手書きしたり確定オブジェクトを囲み線で囲んだりすることで、任意の操作コマンドの候補を表示させることができる。したがって、手書きした状態から任意の機能（編集機能、入出力機能、又はペン機能等）を呼び出すことができる。これにより、メニューボタンを押下して所望の機能を呼び出すステップバイステップの操作を不要にでき、ユーザーが手書きしている状態から任意の機能を呼び出すまでの操作手順を低減できる。
【０２８７】
＜＜手書き入力装置の構成の別の例１＞＞
本実施形態の手書き入力装置２は大型のタッチパネルを有するものとして説明されているが、手書き入力装置はタッチパネルを有するものに限られない。
【０２８８】
図３５は、手書き入力装置の他の構成例を示す図である。図３５では、通常のホワイトボード４１３の上辺にプロジェクター４１１が設置されている。このプロジェクター４１１が手書き入力装置に相当する。通常のホワイトボード４１３とは、タッチパネルと一体のフラットパネルディスプレーではなく、ユーザーがマーカーで直接、手書きするホワイトボードである。なお、ホワイトボードは黒板でもよく、映像を投影するだけの広さの平面であればよい。
【０２８９】
プロジェクター４１１は超短焦点の光学系を有しており、１０ｃｍ程度から歪みの少ない映像をホワイトボード４１３に投影できる。この映像は、無線又は有線で接続されたＰＣ４００ー１から送信されてもよいし、プロジェクター４１１が記憶していてもよい。
【０２９０】
ユーザーは専用の電子ペン２５０１を使ってホワイトボード４１３に手書きする。電子ペン２５０１は、ユーザーが手書きのためにホワイトボード４１３に押しつけるとスイッチがＯＮになり発光する発光部を例えば先端部に有している。光の波長は近赤外や赤外なのでユーザーの目には見えない。プロジェクター４１１はカメラを有しており、発光部を撮像して画像を解析し電子ペン２５０１の方向を特定する。また、電子ペン２５０１は発光と共に音波を発信しており、プロジェクター４１１は音波の到達時間により距離を算出する。方向と距離により電子ペン２５０１の位置を特定できる。電子ペン２５０１の位置にはストロークが描画（投影）される。
【０２９１】
プロジェクター４１１はメニュー４３０を投影するので、ユーザーが電子ペン２５０１でボタンを押下すると、プロジェクター４１１が電子ペン２５０１の位置とスイッチのＯＮ信号により押下されたボタンを特定する。例えば、保存ボタン４３１が押下されると、ユーザーが手書きしたストローク（座標の集合）がプロジェクター４１１で保存される。プロジェクター４１１は、予め定められたサーバー４１２又はＵＳＢメモリー２６００等に手書き情報を保存する。手書き情報はページごとに保存されている。画像データではなく座標のまま保存されるので、ユーザーが再編集することができる。ただし、本実施形態では操作コマンドを手書きで呼び出せるのでメニュー４３０は表示されなくてもよい。
【０２９２】
＜＜手書き入力装置の構成の別の例２＞＞
図３６は、手書き入力装置２の他の構成例を示す図である。図３６の例では、手書き入力装置２として、端末装置６００、画像投影装置７００Ａ、及び、ペン動作検出装置８１０を有する。
【０２９３】
端末装置６００は、画像投影装置７００Ａ及びペン動作検出装置８１０と有線で接続されている。画像投影装置７００Ａは、端末装置６００により入力された画像データをスクリーン８００に投影させる。
【０２９４】
ペン動作検出装置８１０は、電子ペン８２０と通信を行っており、スクリーン８００の近傍における電子ペン８２０の動作を検出する。具体的には、電子ペン８２０は、スクリーン８００上において、電子ペン８２０が示している点を示す座標情報を検出し、端末装置６００へ送信する。
【０２９５】
端末装置６００は、ペン動作検出装置８１０から受信した座標情報に基づき、電子ペン８２０によって入力されるストローク画像の画像データを生成する。端末装置６００は、画像投影装置７００Ａによってストローク画像をスクリーン８００に描画させる。
【０２９６】
また、端末装置６００は、画像投影装置７００Ａに投影させている背景画像と、電子ペン８２０によって入力されたストローク画像とを合成した重畳画像を示す重畳画像データを生成する。
【０２９７】
＜＜手書き入力装置の構成の別の例３＞＞
図３７は、手書き入力装置の構成例を示す図である。図３７の例では、手書き入力装置として、端末装置６００とディスプレー８００Ａと、ペン動作検出装置８１０とを有する。
【０２９８】
ペン動作検出装置８１０は、ディスプレー８００Ａの近傍に配置される。ペン動作検出装置８１０は、ディスプレー８００Ａ上で電子ペン８２０Ａが示している点を示す座標情報を検出し、端末装置６００へ送信する。なお、図３７の例では、電子ペン８２０Ａは、端末装置６００によってＵＳＢコネクタを介して充電されても良い。
【０２９９】
端末装置６００は、ペン動作検出装置８１０から受信した座標情報に基づき、電子ペン８２０Ａによって入力されるストローク画像の画像データを生成する。端末装置６００ディスプレー８００Ａに表示させる。
【０３００】
＜＜手書き入力装置の構成の別の例４＞＞
図３８は、手書き入力装置の構成例を示す図である。図３８の例では、手書き入力装置として、端末装置６００と、画像投影装置７００Ａとを有する。
【０３０１】
端末装置６００は、電子ペン８２０Ｂと無線通信（例えばＢｌｕｅｔｏｏｔｈ：登録商標）を行って、スクリーン８００上において電子ペン８２０Ｂが示す点の座標情報を受信する。そして、端末装置６００は、受信した座標情報に基づき、電子ペン８２０Ｂにより入力されるストローク画像の画像データを生成する。端末装置６００は、画像投影装置７００Ａにストローク画像を投影させる。
【０３０２】
また、端末装置６００は、画像投影装置７００Ａに投影させている背景画像と、電子ペン８２０によって入力されたストローク画像とを合成した重畳画像を示す重畳画像データを生成する。
【０３０３】
以上のように、上記した各実施形態は、様々なシステム構成において適用することができる。
【実施例２】
【０３０４】
本実施例では、ネットワーク上の情報処理システムが手書き認識等の処理を行って、処理の結果を手書き入力装置２に返すシステム形態の手書き入力システムについて説明する。
【０３０５】
なお、本実施例の説明においては、実施例１で同一の符号を付した構成要素又は図の内容については同様の機能を果たすので、一度説明した構成要素の説明を省略あるいは相違点についてのみ説明する場合がある。
【０３０６】
図３９は、手書き入力システム１００のシステム構成図の一例である。手書き入力システム１００はネットワークＮを介して通信可能な手書き入力装置２と情報処理システム１０とを有している。
【０３０７】
手書き入力装置２は社内などの施設に配置されており、施設内に敷設されたＬＡＮやＷｉ−Ｆｉに接続されている。情報処理システム１０は例えばデータセンタ等に配置されている。手書き入力装置２はファイアウォール８を介してインターネットｉと接続しており、情報処理システム１０もデータセンタ内の高速なＬＡＮ等を経由してインターネットｉに接続している。
【０３０８】
手書き入力装置２は電話回線網等の無線通信を使用してインターネットｉに接続してもよい。この場合、無線通信は、３Ｇ（3rd  Generation）、４Ｇ（4rd  Generation）、５Ｇ（5rd  Generation）、ＬＴＥ（Long  Term  Evolution）、ＷｉＭＡＸ（Worldwide  Interoperability  for  Microwave  Access）等である。
【０３０９】
情報処理システム１０は１つ以上の情報処理装置を有しており、１つ以上の情報処理装置がサーバーとして手書き入力装置２にサービスを提供する。サーバーとは、クライアントからの要求に対して情報や処理結果を提供する機能を果たすコンピュータやソフトウェアである。情報処理システム１０は後述するように手書き入力装置２からペン座標を受信して、図１７に示した操作ガイド５００を表示するために必要な情報を手書き入力装置２に送信する。
【０３１０】
サーバー側のシステムをクラウドシステムという場合がある。クラウドシステムとは、クラウドコンピューティングを利用したシステムであり、クラウドコンピューティングは、特定ハードウェア資源が意識されずにネットワーク上のリソースが利用される利用形態をいう。クラウドシステムはインターネット上に配置されるとは限らない。図３９では情報処理システムがインターネット上に配置されているが、ローカルネットワーク（この場合をオンプレミスという）に配置される場合がある。
【０３１１】
更に、ある実施形態では、情報処理システム１０は、サーバークラスタといった複数のコンピューティングデバイスを含む。複数のコンピューティングデバイスは、ネットワークや共有メモリーなどを含む任意のタイプの通信リンクを介して互いに通信するように構成されており、本明細書に開示された処理を実施する。
【０３１２】
手書き入力装置２の構成は実施例１と同様でよいが、本実施例ではタッチパネル、ディスプレー、及び、通信機能を有していればよい。手書き入力装置２は、互いに通信するように構成された複数のコンピューティングデバイスを含むことができる。
【０３１３】
本実施例ではＰＣやタブレットなどの一般的な情報処理装置がＷｅｂブラウザや専用のアプリケーションを実行することができる。Ｗｅｂブラウザや専用のアプリケーションは情報処理システム１０と通信する。Ｗｅｂブラウザが動作する場合、ユーザーが情報処理システム１０のＵＲＬを入力又は選択して、手書き入力装置を情報処理システム１０に接続させる。手書き入力装置２は情報処理システム１０が提供するＷｅｂアプリをＷｅｂブラウザで実行する。Ｗｅｂアプリとは、Ｗｅｂブラウザ上で動作するプログラミング言語（たとえばJavaScript（登録商標））によるプログラムとＷｅｂサーバー側のプログラムが協調することによって動作し、Ｗｅｂブラウザ上で実行されるソフトウェア又はその仕組みを言う。
【０３１４】
専用のアプリケーションが動作する場合、予め登録されている情報処理システム１０のＵＲＬに接続する。専用のアプリケーションはプログラムやユーザインタフェースを有しているので、プログラムが必要な情報を情報処理システム１０と送受信してユーザインタフェースに表示する。
【０３１５】
通信方法は、ＨＴＴＰ、ＨＴＴＰｓ、WebSocketなど汎用の通信プロトコルでもよいし、専用の通信プロトコルで通信してもよい。
【０３１６】
＜ハードウェア構成例＞
手書き入力装置２のハードウェア構成は図５と同様でよい。本実施例では情報処理システム１０のハードウェア構成例を説明する。
【０３１７】
図４０は、情報処理システム１０のハードウェア構成図である。図４０に示されているように、情報処理システム１０は、コンピュータによって構築されており、図４０に示されているように、ＣＰＵ６０１、ＲＯＭ６０２、ＲＡＭ６０３、ＨＤ６０４、ＨＤＤ(Hard Disk Drive)コントローラ６０５、ディスプレー６０６、外部機器接続Ｉ／Ｆ(Interface)６０８、ネットワークＩ／Ｆ６０９、バスライン６１０、キーボード６１１、ポインティングデバイス６１２、ＤＶＤ−ＲＷ(Digital Versatile Disk Rewritable)ドライブ６１４、メディアＩ／Ｆ６１６を備えている。
【０３１８】
これらのうち、ＣＰＵ６０１は、情報処理システム１０全体の動作を制御する。ＲＯＭ６０２は、ＩＰＬ等のＣＰＵ６０１の駆動に用いられるプログラムを記憶する。ＲＡＭ６０３は、ＣＰＵ６０１のワークエリアとして使用される。ＨＤ６０４は、プログラム等の各種データを記憶する。ＨＤＤコントローラ６０５は、ＣＰＵ６０１の制御にしたがってＨＤ６０４に対する各種データの読み出し又は書き込みを制御する。ディスプレー６０６は、カーソル、メニュー、ウィンドウ、文字、又は画像などの各種情報を表示する。外部機器接続Ｉ／Ｆ６０８は、各種の外部機器を接続するためのインターフェースである。この場合の外部機器は、例えば、ＵＳＢ(Universal Serial Bus)メモリーやプリンター等である。ネットワークＩ／Ｆ６０９は、通信ネットワークを利用してデータ通信をするためのインターフェースである。バスライン６１０は、図４０に示されているＣＰＵ６０１等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
【０３１９】
また、キーボード６１１は、文字、数値、各種指示などの入力のための複数のキーを備える。ポインティングデバイス６１２は、各種指示の選択や実行、処理対象の選択、カーソルの移動などを行う入力手段の一種である。ＤＶＤ−ＲＷドライブ６１４は、着脱可能な記録媒体の一例としてのＤＶＤ−ＲＷ６１３に対する各種データの読み出し又は書き込みを制御する。なお、ＤＶＤ−ＲＷに限らず、ＤＶＤ−Ｒ等であってもよい。メディアＩ／Ｆ６１６は、フラッシュメモリー等の記録メディア６１５に対するデータの読み出し又は書き込み（記憶）を制御する。
【０３２０】
＜装置の機能について＞
次に、図４１を用いて、手書き入力システム１００が有する機能について説明する。図４１は手書き入力システム１００が有する機能をブロック状に示す機能ブロック図の一例である。なお、図４１の説明では、主に図６との相違を説明する。なお、ペン２５００の機能は実施例１と同様でよい。
【０３２１】
本実施例では、手書き入力装置２は表示部２２、表示制御部４４、手書き入力部２１、及び、通信部４２を有している。手書き入力装置２が有する各機能は、図４０に示されている各構成要素のいずれかがＳＳＤ２０４からＲＡＭ２０３上に展開されたプログラムに従ったＣＰＵ２０１からの命令によって動作することで実現される機能又は手段である。
【０３２２】
本実施例の手書き入力部２１の機能は実施例１と同様でよい。手書き入力部２１はユーザーのペン入力ｄ１をペン操作データｄａ（ペンアップ、ペンダウン、又はペン座標データ）に変換し、表示制御部４４に送信する。
【０３２３】
表示制御部４４は、手書き入力装置２の表示に関する制御を行う。まず、表示制御部４４は、離散値であるペン座標データの離散値間の座標を補完計算してペンダウンからペンアップまでのペン座標データを１本のストロークｄｂにして表示部２２に送信する。
【０３２４】
また、表示制御部４４はペン操作データｄｃを通信部４２に送信し、通信部４２から各種の表示データｄｄを取得する。表示データは、図１７の操作ガイド５００を表示するための情報を含んでいる。表示制御部４４は表示データｄｅを表示部２２に送信する。
【０３２５】
通信部４２は、ペン操作データｄｃを情報処理システム１０に送信し、情報処理システム１０から各種の表示データｄｄを受信して表示制御部４４に送信する（第一の通信部の一例）。通信部４２は例えばJSON形式やXML形式などでデータを送受信する。
【０３２６】
表示部２２の機能は実施例１と同様でよい。表示部２２はストロークｄｂや表示データｄｅを表示する。表示部２２は表示制御部４４がビデオメモリーに書き込んだストロークｄｂや表示データｄｅをディスプレー２２０の特性に応じたデータに変換し、ディスプレー２２０に送信する。
【０３２７】
＜＜情報処理システムの機能＞＞
情報処理システム１０は、通信部４３、手書き入力表示制御部２３、候補表示タイマー制御部２４、手書き入力保存部２５、手書き認識制御部２６、手書き認識辞書部２７、文字列変換制御部２８、文字列変換辞書部２９、予測変換制御部３０、予測変換辞書部３１、操作コマンド認識制御部３２、操作コマンド定義部３３、ペンＩＤ制御データ保存部３６、手書きサイン認証制御部３８、及び、手書きサインデータ保存部３９を備えている。情報処理システム１０が有する各機能は、図４０に示されている各構成要素のいずれかが、ＨＤ６０４からＲＡＭ６０３上に展開されたプログラムに従ったＣＰＵ６０１からの命令によって動作することで実現される機能又は手段である。
【０３２８】
通信部４３は、ペン操作データｄｃを手書き入力装置２から受信し、手書き入力表示制御部２３にペン操作データｄｆを送信する。通信部４３は、手書き入力表示制御部２３から表示データｄｄを受信して、手書き入力装置２に送信する（第二の通信部の一例）。通信部４３は例えばJSON形式やXML形式などでデータを送受信する。
【０３２９】
その他の機能については実施例１と同様か、異なるとしても本実施形態の説明の上では支障がないものとする。
【０３３０】
＜動作手順＞
以上の構成と図４２〜図４９を用いて、手書き入力システム１００の動作について説明する。図４２〜図４９は手書き入力装置２が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である。図４２の処理は、手書き入力装置２が起動して（Ｗｅｂブラウザ又は専用のアプリケーションが起動して）、情報処理システム１０との通信が確立するとスタートする。なお、図４２〜図４９の全体的な流れは図２８〜図３４と同様でよい。
【０３３１】
S1：通信が確立すると手書き入力装置２のメモリー領域を確保するため、手書き入力表示制御部２３が手書きオブジェクト開始を手書き入力保存部２５に送信する。手書き入力保存部２５は手書きオブジェクト領域（手書きオブジェクトを保存するメモリー領域）を確保する。ユーザーがペンを手書き入力部２１に接触させてから手書きオブジェクト領域を確保してもよい。
【０３３２】
S2a：次にユーザーが手書き入力部２１にペンを接触させる。手書き入力部２１はペンダウンを検出して表示制御部４４に送信する。
【０３３３】
S2b：表示制御部４４はペンダウンを情報処理システム１０に通知するため、ペンダウンを通信部４２に送信する。
【０３３４】
S2c：通信部４２はペンダウンを情報処理システム１０に送信する。
【０３３５】
S2d：情報処理システム１０の通信部４３はペンダウンを受信して、手書き入力表示制御部２３に送信する。
【０３３６】
S3：手書き入力表示制御部２３は手書き入力保存部２５にストローク開始を送信し、手書き入力保存部２５はストローク領域を確保する。
【０３３７】
S4ａ：ユーザーがペンを手書き入力部２１に接触させたまま移動させると、手書き入力部２１はペン座標を表示制御部４４に送信する。
【０３３８】
S4b：表示制御部４４はペン座標を情報処理システム１０に通知するため、ペン座標を通信部４２に送信する。
【０３３９】
S4c：通信部４２はペン座標を情報処理システム１０に送信する。
【０３４０】
S4d：情報処理システム１０の通信部４３はペン座標を受信して、手書き入力表示制御部２３に送信する。
【０３４１】
S6：表示制御部４４はペン座標補完表示データ（離散的なペン座標を補間するデータ）を表示部２２に送信する。表示部２２はペン座標補完表示データを用いてペン座標を補間して線を表示する。ステップS7の処理は実施例１と同様になる。
【０３４２】
S8a：ユーザーが手書き入力部２１からペンを離すと、手書き入力部２１はペンアップを表示制御部４４に送信する。
【０３４３】
S8b：表示制御部４４はペンアップを情報処理システム１０に通知するため、ペンアップを通信部４２に送信する。
【０３４４】
S8c：通信部４２はペンアップを情報処理システム１０に送信する。
【０３４５】
S8d：情報処理システム１０の通信部４３はペンアップを受信して、手書き入力表示制御部２３に送信する。
【０３４６】
以降のステップS9〜S17、及び、ステップS18〜S50については実施例１と同様になる。
【０３４７】
S51a：タイマーがタイムアウトする前に、ユーザーが手書き入力部２１にペンを接触させた場合、手書き入力部２１はペンダウン（ステップS2と同じイベント）を表示制御部４４に送信する。ステップS51b〜S51dの処理はステップS2b〜S2dと同様でよい。また、ステップS52〜S61の処理は実施例１と同様になる。
【０３４８】
S62a:手書き入力表示制御部２３は図１７に示した各文字列候補、操作コマンドの候補、各選択確率、及び、推定書字方向を含む選択可能候補表示データを作成し、文字列候補と操作コマンドの候補からなる選択可能候補表示データを通信部４３に送信する。
【０３４９】
S62b:通信部４３は手書き入力装置２に選択可能候補表示データを送信する。
【０３５０】
S62c:手書き入力装置２の通信部４２は選択可能候補表示データを受信し、表示制御部４４に送信する。
【０３５１】
S62d:表示制御部４４は選択可能候補表示データを受信したので、表示部２２に送信することで表示させる。
【０３５２】
S63a:また、手書き入力表示制御部２３は手書きオブジェクトと選択オブジェクトの矩形領域表示データ（矩形枠）（図１７では手書きオブジェクト矩形領域表示５０３）を通信部４３に送信する。
【０３５３】
S63b:通信部４３は手書き入力装置２に矩形領域表示データを送信する。
【０３５４】
S63c:手書き入力装置２の通信部４２は矩形領域表示データを受信し、表示制御部４４に送信する。
【０３５５】
S63d:表示制御部４４は矩形領域表示データを受信したので、表示部２２に送信することで表示させる。ステップS64の処理は実施例１と同様になる。
【０３５６】
S65a：ユーザーが選択可能候補を消去したり、手書きオブジェクトに追加で手書きしたりすると、手書き入力部２１は選択可能候補表示消去又は手書きオブジェクトの変化の発生を表示制御部４４に送信する。
【０３５７】
S65b：表示制御部４４は選択可能候補表示消去又は手書きオブジェクトの変化の発生を情報処理システム１０に通知するため、通信部４２に送信する。
【０３５８】
S65c：通信部４２は選択可能候補表示消去又は手書きオブジェクトの変化の発生を情報処理システム１０に送信する。
【０３５９】
S65d：情報処理システム１０の通信部４３は選択可能候補表示消去又は手書きオブジェクトの変化の発生を受信して、手書き入力表示制御部２３に送信する。ステップS66、S67、S68の処理は実施例１と同様になる。
【０３６０】
S69a：手書き入力表示制御部２３は選択可能候補表示データ消去を通信部４３に送信する。
【０３６１】
S69b:通信部４３は手書き入力装置２に選択可能候補表示データ消去を送信する。
【０３６２】
S69c:手書き入力装置２の通信部４２は選択可能候補表示データ消去を受信し、表示制御部４４に送信する。
【０３６３】
S69d:表示制御部４４は選択可能候補表示データ消去を受信したので、表示部２２に送信することで選択可能候補を消去させる。
【０３６４】
S70a：手書き入力表示制御部２３は手書きオブジェクトと選択オブジェクトの矩形領域表示データ消去を通信部４３に送信する。
【０３６５】
S70b:通信部４３は手書き入力装置２に手書きオブジェクトと選択オブジェクトの矩形領域表示データ消去を送信する。
【０３６６】
S70c:手書き入力装置２の通信部４２は手書きオブジェクトと選択オブジェクトの矩形領域表示データ消去を受信し、表示制御部４４に送信する。
【０３６７】
S70d:表示制御部４４は手書きオブジェクトと選択オブジェクトの矩形領域表示データ消去を受信したので、表示部２２に送信することで手書きオブジェクトと選択オブジェクトの矩形領域を消去させる。したがって、操作コマンド候補が選択される以外の条件で、操作コマンド候補の表示を消去した場合、手書きオブジェクトはそのまま表示が維持される。
【０３６８】
選択可能候補消去タイマー開始中に、ユーザーが選択可能候補を選択した場合、ステップS71〜S89が実行される。
【０３６９】
S71a：選択可能候補消去タイマー開始中に、ユーザーが選択可能候補を選択した場合、手書き入力部２１は文字列候補又は操作コマンドの候補選択を表示制御部４４に送信する。
【０３７０】
S71b：表示制御部４４は文字列候補又は操作コマンドの候補選択を情報処理システム１０に通知するため、通信部４２に送信する。
【０３７１】
S71c：通信部４２は文字列候補又は操作コマンドの候補選択を情報処理システム１０に送信する。
【０３７２】
S71d：情報処理システム１０の通信部４３は文字列候補又は操作コマンドの候補選択を受信して、手書き入力表示制御部２３に送信する。ステップS72〜S75の処理は実施例１と同様になる。
【０３７３】
S76a: 次に手書き入力表示制御部２３は選択可能候補表示データ消去を通信部４３に送信する。
【０３７４】
S76b：通信部４３は選択可能候補表示データ消去を手書き入力装置２に送信する。
【０３７５】
S76c：手書き入力装置２の通信部４２は選択可能候補表示データ消去を受信し、表示制御部４４に送信する。
【０３７６】
S76d：表示制御部４４は選択可能候補表示データ消去を受信したので、表示部２２に選択可能候補を消去させる。
【０３７７】
S77a：手書き入力表示制御部２３は手書きオブジェクトと選択オブジェクトの矩形領域表示データ消去を通信部４３に送信する。
【０３７８】
S77b：通信部４３は矩形領域表示データ消去を手書き入力装置２に送信する。
【０３７９】
S77c：手書き入力装置２の通信部４２は矩形領域表示データ消去を受信し、表示制御部４４に送信する。
【０３８０】
S77d：表示制御部４４は矩形領域表示データ消去を受信したので、表示部２２に矩形領域を消去させる。
【０３８１】
S78a：手書き入力表示制御部２３は手書きオブジェクト表示データ消去を通信部４３に送信する。
【０３８２】
S78b：通信部４３は手書きオブジェクト表示データ消去を手書き入力装置２に送信する。
【０３８３】
S78c：手書き入力装置２の通信部４２は手書きオブジェクト表示データ消去を受信し、表示制御部４４に送信する。
【０３８４】
S78d：表示制御部４４は手書きオブジェクト表示データ消去を受信したので、表示部２２に手書きオブジェクトとペン座標補完表示データを消去させる。ステップS79の処理は実施例１と同様でよい。
【０３８５】
文字列候補が選択された場合、ステップS80〜S82が実行される。ステップS80、S81の処理は実施例１と同様でよい。
【０３８６】
S82a: 次に手書き入力表示制御部２３は手書き入力保存部２５から受信した定義済みフォントを使用して、手書きオブジェクトと同じ位置に表示させる文字列オブジェクト表示データを通信部４３に送信する。
【０３８７】
S82b：通信部４３は文字列オブジェクト表示データを手書き入力装置２に送信する。
【０３８８】
S82c：手書き入力装置２の通信部４２は文字列オブジェクト表示データを受信し、表示制御部４４に送信する。
【０３８９】
S82d：表示制御部４４は文字列オブジェクト表示データを受信したので、表示部２２に文字列オブジェクトを表示させる。
【０３９０】
操作コマンドの候補が選択された場合、ステップS83〜S87が実行される。更に、選択オブジェクトがある場合はステップS83〜S85が実行される。
【０３９１】
S83a：選択オブジェクトへの操作コマンドの候補が選択された場合（選択オブジェクトが存在する場合）は、手書き入力表示制御部２３は選択オブジェクト表示データ消去を通信部４３に送信する。いったん、元の選択オブジェクトを消去するためである。
【０３９２】
S83b：通信部４３は選択オブジェクト表示データ消去を手書き入力装置２に送信する。
【０３９３】
S83c：手書き入力装置２の通信部４２は選択オブジェクト表示データ消去を受信し、表示制御部４４に送信する。
【０３９４】
S83d：表示制御部４４は選択オブジェクト表示データ消去を受信したので、表示部２２に選択オブジェクトを消去させる。
【０３９５】
S84:次に、手書き入力表示制御部２３は選択オブジェクトへの操作コマンド実行を手書き入力保存部２５に送信する。手書き入力保存部２５は新しい選択オブジェクトの表示データ（編集又は修飾後の表示データ）を手書き入力表示制御部２３に送信する。
【０３９６】
S85a: 次に手書き入力表示制御部２３は選択オブジェクト表示データを通信部４３に送信する。
【０３９７】
S85b：通信部４３は選択オブジェクト表示データを手書き入力装置２に送信する。
【０３９８】
S85c：手書き入力装置２の通信部４２は選択オブジェクト表示データを受信し、表示制御部４４に送信する。
【０３９９】
S85d：表示制御部４４は選択オブジェクト表示データを受信したので、表示部２２に操作コマンド実行後の選択オブジェクトを再表示させる。ステップS86〜S89の処理は実施例１と同様でよい。
【０４００】
このように、手書き入力装置２と情報処理システム１０とが通信するシステム形態でも、実施例１と同様の効果を奏することができる。なお、図４２〜図４９の処理の流れは一例であって、手書き入力装置２と情報処理システム１０とが通信することにより生じる処理が含まれていたり、又は、処理が省略されたりしてもよい。また、情報処理システム１０が行う処理の一部を手書き入力装置２が行ってもよい。例えば、削除に関する処理を手書き入力装置２が行ってもよい。
【０４０１】
＜その他の適用例＞
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【０４０２】
例えば、本実施形態では電子黒板を一例として説明したが、タッチパネルを有する情報処理装置であれば好適に適用できる。タッチパネルを搭載した情報処理装置としては、例えば、ＰＪ（Projector：プロジェクター）、デジタルサイネージ等の出力装置、ＨＵＤ（Head Up Display）装置、産業機械、撮像装置、集音装置、医療機器、ネットワーク家電、ノートＰＣ（Personal Computer）、携帯電話、スマートフォン、タブレット端末、ゲーム機、ＰＤＡ（Personal Digital Assistant）、デジタルカメラ、ウェアラブルＰＣ又はデスクトップＰＣ等であってもよい。
【０４０３】
また、本実施形態ではペン先の座標をタッチパネルで検知する方法でペンの座標を検出したが、ペン先の座標を超音波により検出してもよい。また、ペンは発光と共に超音波を発信しており、手書き入力装置２は超音波の到達時間により距離を算出する。方向と距離によりペンの位置を特定できる。ペンの軌跡をストロークとしてプロジェクターが描画（投影）する。
【０４０４】
また、本実施形態では、選択オブジェクトがある場合に編集系及び修飾系の操作コマンドの候補を表示し、選択オブジェクトがない場合に入出力系の操作コマンドの候補を表示した。しかし、編集系及び修飾系の操作コマンドの候補と入出力系の操作コマンドの候補を同時に表示してもよい。
【０４０５】
また、ユーザーの手書きサインデータは手書き入力装置２が持っていなくてもよい。クラウド上や社内の情報処理装置が保持していてもよい。
【０４０６】
また、図６などの構成例は、手書き入力装置２による処理の理解を容易にするために、主な機能に応じて分割したものである。処理単位の分割の仕方や名称によって本願発明が制限されることはない。手書き入力装置２の処理は、処理内容に応じて更に多くの処理単位に分割することもできる。また、１つの処理単位が更に多くの処理を含むように分割することもできる。
【０４０７】
また、上記で説明した実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP（digital signal processor）、FPGA（field programmable gate array）や従来の回路モジュール等のデバイスを含むものとする。
【０４０８】
ペンＩＤ制御データ保存部３６は制御データ保存手段の一例である。表示部２２は請求項１の表示手段の一例である。手書き認識制御部２６は手書き認識制御手段の一例である。通信部４２は受信手段の一例である。通信部４３は送信手段の一例である。操作コマンド認識制御部３２は操作コマンド認識制御手段の一例である。入力手段通信部３７は入力手段通信手段の一例である。手書きサイン認証制御部３８は認証制御手段の一例である。手書き入力部２１は手書き入力手段の一例である。ディスプレー２２０は表示制御手段の一例である。
【符号の説明】
【０４０９】
２          手書き入力装置
２１        手書き入力部
２２        表示部
２３        手書き入力表示制御部
２４        候補表示タイマー制御部
２５        手書き入力保存部
２６        手書き認識制御部
２７        手書き認識辞書部
２８        文字列変換制御部
２９        文字列変換辞書部
３０        予測変換制御部
３１        予測変換辞書部
３２        操作コマンド認識制御部
３３        操作コマンド定義部
３６        ペンＩＤ制御データ保存部
３８        手書きサイン認証制御部
３９        手書きサインデータ保存部
【先行技術文献】
【特許文献】
【０４１０】
【特許文献１】特開2018−026185号公報
【図１】
2020173788.tif 000003
【図２】
2020173788.tif 000004
【図３】
2020173788.tif 000005
【図４】
2020173788.tif 000006
【図５】
2020173788.tif 000007
【図６】
2020173788.tif 000008
【図７】
2020173788.tif 000009
【図８】
2020173788.tif 000010
【図９】
2020173788.tif 000011
【図１０】
2020173788.tif 000012
【図１１】
2020173788.tif 000013
【図１２】
2020173788.tif 000014
【図１３】
2020173788.tif 000015
【図１４】
2020173788.tif 000016
【図１５】
2020173788.tif 000017
【図１６】
2020173788.tif 000018
【図１７】
2020173788.tif 000019
【図１８】
2020173788.tif 000020
【図１９】
2020173788.tif 000021
【図２０】
2020173788.tif 000022
【図２１】
2020173788.tif 000023
【図２２】
2020173788.tif 000024
【図２３】
2020173788.tif 000025
【図２４】
2020173788.tif 000026
【図２５】
2020173788.tif 000027
【図２６】
2020173788.tif 000028
【図２７】
2020173788.tif 000029
【図２８】
2020173788.tif 000030
【図２９】
2020173788.tif 000031
【図３０】
2020173788.tif 000032
【図３１】
2020173788.tif 000033
【図３２】
2020173788.tif 000034
【図３３】
2020173788.tif 000035
【図３４】
2020173788.tif 000036
【図３５】
2020173788.tif 000037
【図３６】
2020173788.tif 000038
【図３７】
2020173788.tif 000039
【図３８】
2020173788.tif 000040
【図３９】
2020173788.tif 000041
【図４０】
2020173788.tif 000042
【図４１】
2020173788.tif 000043
【図４２】
2020173788.tif 000044
【図４３】
2020173788.tif 000045
【図４４】
2020173788.tif 000046
【図４５】
2020173788.tif 000047
【図４６】
2020173788.tif 000048
【図４７】
2020173788.tif 000049
【図４８】
2020173788.tif 000050
【図４９】
2020173788.tif 000051