(57)【特許請求の範囲】
【請求項１】
手書きによって入力される第１ストロークを画面上に表示する表示制御手段と、
前記第１ストロークが入力された場合に、前記第１ストロークから定められる入力の候補である複数の筆跡候補を、前記複数の筆跡候補の優先度に従って前記画面上に表示するための処理を実行する処理手段と、を具備し
前記複数の筆跡候補の表示領域であるｎ行×ｍ列（ｎ，ｍは２以上の整数）の筆跡候補リストボックスは、前記第１ストロークの入力位置に対応する位置に表示される１列目の第１領域と、前記第１領域から横隣りに並ぶ第２領域とを含むｍ個の領域を含み、
前記処理手段は、
前記複数の筆跡候補の内の最も高優先度の第１筆跡候補は、前記筆跡候補リストボックスの前記第１ストロークの入力位置の近傍である前記第１領域内の第１位置に表示し、
前記複数の筆跡候補の内の２番目に高優先度の第２筆跡候補は、前記筆跡候補リストボックスの前記第１位置と列方向に並ぶ、前記第１領域内の第２位置に表示し、
前記複数の筆跡候補の内のｋ番目に高優先度の第ｋ筆跡候補（ｎ＜ｋ≦２ｎ）は、前記筆跡候補リストボックスの前記第１領域の横隣りに並ぶ、前記第２領域内のｋ番目の第ｋ位置に表示する、
電子機器。
【請求項２】
前記処理手段は、
右利きモードが有効である場合には、前記第２領域は前記第１領域の右側に表示し、
左利きモードが有効である場合には、前記第２領域は前記第１領域の左側に表示する請求項１記載の電子機器。
【請求項３】
前記処理手段は、
前記複数の筆跡候補のいずれも選択されること無く、前記第１ストロークの入力の後に第２ストロークが手書きによって入力された場合に、前記第１ストロークおよび前記第２ストロークから定められる新たな入力の候補である複数の筆跡候補を前記筆跡候補リストボックスに表示するための処理を実行し、
前記筆跡候補リストボックスに前回表示された筆跡のいずれかと同一の筆跡候補が前記新たな入力の候補である前記複数の筆跡候補に含まれる場合、前記同一の筆跡候補は、前記新たな入力の候補内における前記同一の筆跡候補の優先度の順位と関係なく、前記同一の筆跡候補が前回表示された前記筆跡候補リストボックス内の位置と同一位置に表示する
請求項１記載の電子機器。
【請求項４】
前記処理手段は、
前記複数の筆跡候補のいずれも選択されること無く前記第１ストロークの入力の後に第２ストロークが手書きによって入力された場合に、前記第１ストロークおよび前記第２ストロークから定められる新たな入力の候補である複数の筆跡候補を前記筆跡候補リストボックスに表示するための処理を実行し、
前記新たな入力の候補である複数の筆跡候補のいずれも選択されること無く、前記第１ストロークおよび前記第２ストロークの入力の後に１以上の第３ストロークが手書きによって入力された場合に、前記第１ストロークを入力されたストロークに決定して取り除き、
前記第２ストロークおよび前記１以上の第３ストロークから定められる新たな入力の候補である複数の筆跡候補を前記筆跡候補リストボックスに表示する
請求項１記載の電子機器。
【請求項５】
手書きによって入力される第１ストロークを画面上に表示することと、
前記第１ストロークが入力された場合に、前記第１ストロークから定められる入力の候補である複数の筆跡候補を、前記複数の筆跡候補の優先度に従って前記画面上に表示することと、を具備し
前記複数の筆跡候補の表示領域であるｎ行×ｍ列（ｎ，ｍは２以上の整数）の筆跡候補リストボックスは、前記第１ストロークの入力位置に対応する位置に表示される１列目の第１領域と、前記第１領域から横隣りに並ぶ第２領域とを含むｍ個の領域を含み、
前記複数の筆跡候補の内の最も高優先度の第１筆跡候補は、前記筆跡候補リストボックスの前記第１ストロークの入力位置の近傍である前記第１領域内の第１位置に表示し、
前記複数の筆跡候補の内の２番目に高優先度の第２筆跡候補は、前記筆跡候補リストボックスの前記第１位置と列方向に並ぶ、前記第１領域内の第２位置に表示し、
前記複数の筆跡候補の内のｋ番目に高優先度の第ｋ筆跡候補（ｎ＜ｋ≦２ｎ）は、前記筆跡候補リストボックスの前記第１領域の横隣りに並ぶ、前記第２領域内のｋ番目の第ｋ位置に表示する、
方法。
【請求項６】
右利きモードが有効である場合には、前記第２領域は前記第１領域の右側に表示され、
左利きモードが有効である場合には、前記第２領域は前記第１領域の左側に表示される請求項５記載の方法。
【請求項７】
前記複数の筆跡候補のいずれも選択されること無く、前記第１ストロークの入力の後に第２ストロークが手書きによって入力された場合に、前記第１ストロークおよび前記第２ストロークから定められる新たな入力の候補である複数の筆跡候補を前記筆跡候補リストボックスに表示し、
前記筆跡候補リストボックスに前回表示された筆跡のいずれかと同一の筆跡が前記新たな入力の候補である前記複数の筆跡候補に含まれる場合、前記同一の筆跡候補は、前記新たな入力の候補内における前記同一の筆跡候補の優先度の順位と関係なく、前記同一の筆跡候補が前回表示された前記筆跡候補リストボックス内の位置と同一位置に表示する請求項５記載の方法。
【請求項８】
前記複数の筆跡候補のいずれも選択されること無く、前記第１ストロークの入力の後に第２ストロークが手書きによって入力された場合に、前記第１ストロークおよび前記第２ストロークから定められる新たな入力の候補である複数の筆跡候補を前記筆跡候補リストボックスに表示し、
前記新たな入力の候補である複数の筆跡候補のいずれも選択されること無く前記第１ストロークおよび前記第２ストロークの入力の後に１以上の第３ストロークが手書きによって入力された場合に、前記第１ストロークを入力されたストロークに決定して取り除き、
前記第２ストロークおよび前記１以上の第３ストロークから定められる新たな入力の候補である複数の筆跡候補を前記筆跡候補リストボックスに表示することを更に具備する請求項５記載の方法。
【請求項９】
手書きによって入力される第１ストロークを画面上に表示することと、
前記第１ストロークが入力された場合に、前記第１ストロークから定められる入力の候補である複数の筆跡候補を、前記複数の筆跡候補の優先度に従って前記画面上に表示することの機能を実行する電子機器のコンピュータに実行させるプログラムであって、
前記複数の筆跡候補の表示領域であるｎ行×ｍ列（ｎ，ｍは２以上の整数）の筆跡候補リストボックスは、前記第１ストロークの入力位置に対応する位置に表示される１列目の第１領域と、前記第１領域から横隣りに並ぶ第２領域とを含むｍ個の領域を含み、
前記複数の筆跡候補の内の最も高優先度の第１筆跡候補は、前記筆跡候補リストボックスの前記第１ストロークの入力位置の近傍である前記第１領域内の第１位置に表示する手順と、
前記複数の筆跡候補の内の２番目に高優先度の第２筆跡候補は、前記筆跡候補リストボックスの前記第１位置と列方向に並ぶ、前記第１領域内の第２位置に表示する手順と、
前記複数の筆跡候補の内のｋ番目に高優先度の第ｋ筆跡候補（ｎ＜ｋ≦２ｎ）は、前記筆跡候補リストボックスの前記第１領域の横隣りに並ぶ、前記第２領域内のｋ番目の第ｋ位置に表示する手順と、
を前記コンピュータに実行させるプログラム。
【請求項１０】
右利きモードが有効である場合には、前記第２領域は前記第１領域の右側に表示され、
左利きモードが有効である場合には、前記第２領域は前記第１領域の左側に表示される請求項９記載のプログラム。
【請求項１１】
前記複数の筆跡候補のいずれも選択されること無く、前記第１ストロークの入力の後に第２ストロークが手書きによって入力された場合に、前記第１ストロークおよび前記第２ストロークから定められる新たな入力の候補である複数の筆跡候補を前記筆跡候補リストボックスに表示する機能を実行する手順と、
前記筆跡候補リストボックスに前回表示された筆跡のいずれかと同一の筆跡候補が前記新たな入力の候補である前記複数の筆跡候補に含まれる場合、前記同一の筆跡候補は、前記新たな入力の候補内における前記同一の筆跡候補の優先度の順位と関係なく、前記同一の筆跡候補が前回表示された前記筆跡候補リストボックス内の位置と同一位置に表示する手順と、
を更に具備する請求項９記載のプログラム。
【請求項１２】
前記複数の筆跡候補のいずれも選択されること無く、前記第１ストロークの入力の後に第２ストロークが手書きによって入力された場合に、前記第１ストロークおよび前記第２ストロークから定められる新たな入力の候補である複数の筆跡候補を前記筆跡候補リストボックスに表示する手順と、
前記新たな入力の候補である複数の筆跡候補のいずれも選択されること無く、前記第１ストロークおよび前記第２ストロークの入力の後に１以上の第３ストロークが手書きによって入力された場合に、前記第１ストロークを入力されたストロークに決定して取り除く手順と、
前記第２ストロークおよび前記１以上の第３ストロークから定まる新たな入力の候補である複数の筆跡候補を前記筆跡候補リストボックスに表示する手順と、
を更に具備する請求項９記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
ここに記載される実施形態は、手書き文書情報を処理する技術に関する。
【背景技術】
【０００２】
近年、タブレット、ＰＤＡ、スマートフォンといった種々の電子機器が開発されている。この種の電子機器の多くは、ユーザによる入力操作を容易にするために、タッチスクリーンディスプレイを備えている。【０００３】
また最近では、手書き文字列を扱うことが可能な電子機器も開発されている。【０００４】
ユーザは、手書き入力をサポートする電子機器を使用することにより、容易にメモをとることができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−２６５１７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、従来では、スムーズな手書き入力を可能にするための技術については考慮されていないのが現状である。【０００７】
本発明の一形態の目的は、スムーズな手書き入力を可能にすることができる電子機器および方法を提供することである。
【課題を解決するための手段】
【０００８】
実施形態によれば、電子機器は、表示制御手段と処理手段とを具備する。前記表示制御手段は、手書きによって入力される第１ストロークを画面上に表示する。前記処理手段は、前記第１ストロークが入力された場合に、前記第１ストロークから定められる入力の候補である複数の筆跡候補を、前記複数の筆跡候補の優先度に従って前記画面上に表示するための処理を実行する。前記複数の筆跡候補の表示領域であるｎ行×ｍ列（ｎ，ｍは２以上の整数）の筆跡候補リストボックスは、前記第１ストロークの入力位置に対応する位置に表示される１列目の第１領域と、前記第１領域から横隣りに並ぶ第２領域とを含むｍ個の領域を含む。前記処理手段は、前記複数の筆跡候補の内の最も高優先度の第１筆跡候補は、前記筆跡候補リストボックスの前記第１ストロークの入力位置の近傍である前記第１領域内の第１位置に表示し、前記複数の筆跡候補の内の２番目に高優先度の第２筆跡候補は、前記筆跡候補リストボックスの前記第１位置と列方向に並ぶ、前記第１領域内の第２位置に表示し、前記複数の筆跡候補の内のｋ番目に高優先度の第ｋ筆跡候補（ｎ＜ｋ≦２ｎ）は、前記筆跡候補リストボックスの前記第１領域の横隣りに並ぶ、前記第２領域内のｋ番目の第ｋ位置に表示する。
【図面の簡単な説明】
【０００９】
【図１】図１は実施形態に係る電子機器の外観を示す例示的な斜視図である。
【図２】図２は図１の電子機器と外部装置との連携動作を示す例示的な図である。
【図３】図３は図１の電子機器のタッチスクリーンディスプレイ上に手書きされる手書き文書の例を示す図である。
【図４】図４は図１の電子機器によって生成される時系列情報を説明するための例示的な図である。
【図５】図５は図１の電子機器のシステム構成を示す例示的なブロック図である。
【図６】図６は図１の電子機器によって実行される手書きノートアプリケーションプログラムの機能構成を示す例示的なブロック図である。
【図７】図７は図１の電子機器によって表示されるユーザインタフェース（編集画面）を示す例示的な図である。
【図８】図８はユーザインタフェース内の編集ビューエリアに表示される筆跡候補リストボックスを示す例示的な図である。
【図９】図９は図８の筆跡候補リストボックス内の複数の筆跡候補の並び順を示す例示的な図である。
【図１０】図１０は編集ビューエリアに表示される筆跡候補リストボックスの他の例を示す図である。
【図１１】図１１は仮ストロークを図８の筆跡候補リストボックス内の選択された筆跡候補で補完する処理を説明するための例示的な図である。
【図１２】図１２は仮ストロークの入力位置の下側に筆跡候補リストボックスを表示する処理を説明するための例示的な図である。
【図１３】図１３は図１２の筆跡候補リストボックス内の複数の筆跡候補の並び順を示す例示的な図である。
【図１４】図１４は右利きモードにおいて表示される筆跡候補リストボックスの構造と左利きモードにおいて表示される筆跡候補リストボックスの構造との関係を示す例示的な図である。
【図１５】図１５は左利きモードにおける仮ストロークの入力位置と筆跡候補リストボックスの表示位置との関係を示す例示的な図である。
【図１６】図１６は前回表示された筆跡候補と同じ筆跡候補が筆跡候補リストボックス内の同じ場所に表示される様子を示す例示的な図である。
【図１７】図１７は仮ストロークと筆跡候補リストボックスとの関係の例を示す例示的な図である。
【図１８】図１８は仮ストロークの入力が続けられるに従って筆跡候補リストボックス内の筆跡候補が変更される様子を示す例示的な図である。
【図１９】図１９は仮ストロークの入力が続けられている間に、筆跡候補の予測に使用される仮ストローク列の起点を自動的に変更する処理を説明するための例示的な図である。
【図２０】図２０は筆跡候補リストボックス内のある筆跡候補が選択される様子を示す例示的な図である。
【図２１】図２１は仮ストローク列を選択された筆跡候補で補完する処理を説明するための例示的な図である。
【図２２】図２２は図１の電子機器によって実行される自動補完処理の手順を示す例示的なフローチャートである。
【図２３】図２３は図１の電子機器によって実行される筆跡候補リストボックス表示処理の手順を示す例示的なフローチャートである。
【図２４】図２４は筆跡候補リストボックス表示処理の手順の他の例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、実施の形態について図面を参照して説明する。  
図１は、一実施形態に係る電子機器の外観を示す斜視図である。この電子機器は、例えば、ペン（スタイラス）または指によって手書き入力可能なペン・ベースの携帯型電子機器である。この電子機器は、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、スマートフォン、ＰＤＡ等として実現され得る。以下では、この電子機器がタブレットコンピュータ１０として実現されている場合を想定する。タブレットコンピュータ１０は、タブレットまたはスレートコンピュータとも称される携帯型電子機器である。タブレットコンピュータ１０は、図１に示すように、本体１１とタッチスクリーンディスプレイ１７とを備える。本体１１は、薄い箱形の筐体を有している。タッチスクリーンディスプレイ１７は、本体１１の上面に重ね合わさるように取り付けられている。
【００１１】
タッチスクリーンディスプレイ１７には、フラットパネルディスプレイと、センサとが組み込まれている。センサは、フラットパネルディスプレイの画面とペンまたは指との接触位置を検出するように構成されている。フラットパネルディスプレイは、例えば、液晶表示装置（ＬＣＤ）であってもよい。センサとしては、例えば、静電容量方式のタッチパネル、電磁誘導方式のデジタイザなどを使用することができる。以下では、限定されないが、タッチパネルがタッチスクリーンディスプレイ１７に組み込まれている場合を想定する。
【００１２】
タッチパネルは、例えば、フラットパネルディスプレイの画面上に配置される。このタッチスクリーンディスプレイ１７は、指を使用した画面に対するタッチ操作のみならず、ペン１００を使用した画面に対するタッチ操作も検出することができる。
【００１３】
ユーザは、外部オブジェクト（ペン１００又は指）を使用してタッチスクリーンディスプレイ１７上で手書き入力操作を行うことができる。手書き入力操作中においては、画面上の外部オブジェクト（ペン１００又は指）の動きの軌跡、つまり筆跡がリアルタイムに描画される。外部オブジェクトが画面に接触されている間の外部オブジェクトの動きの軌跡が１ストロークに相当する。手書きされた文字または手書きされた図形などに対応する多数のストロークの集合が手書き文書を構成する。
【００１４】
本実施形態では、この手書き文書は、イメージデータではなく、各ストロークの軌跡の座標列とストローク間の順序関係とを示す時系列情報として記憶媒体に保存される。この時系列情報の詳細は図４を参照して後述するが、この時系列情報は、複数のストロークにそれぞれ対応する複数のストロークデータを含む。各ストロークデータは、ある一つのストロークに対応し、このストローク上の点それぞれに対応する座標データ系列（時系列座標）を含む。これらストロークデータの並びの順序は、ストロークそれぞれが手書きされた順序つまり筆順に相当する。
【００１５】
タブレットコンピュータ１０は、記憶媒体から既存の任意の時系列情報（手書き文書情報）を読み出し、この手書き文書情報によって示される筆跡（複数のストローク）を画面上に表示することができる。さらに、タブレットコンピュータ１０は編集機能を有している。この編集機能は、「消しゴム」ツール、「範囲選択」ツール、および他の各種ツール等によって、表示中の手書き文書内の任意のストロークまたは任意の手書き文字等を削除または移動することができる。さらに、この編集機能は、幾つかの手書き操作の履歴を取り消す機能も含んでいる。
【００１６】
さらに、タブレットコンピュータ１０は、自動補完（ストローク推薦）機能も有している。この自動補完機能は、多くの文字列を手書きによって容易に入力できるようにするために、ユーザの手書き入力操作をアシストするための機能である。
【００１７】
図２は、タブレットコンピュータ１０と外部装置との連携動作の例を示している。タブレットコンピュータ１０は、パーソナルコンピュータ１やクラウドと連携することができる。すなわち、タブレットコンピュータ１０は、無線ＬＡＮなどの無線通信デバイスを備えており、パーソナルコンピュータ１との無線通信を実行することができる。さらに、タブレットコンピュータ１０は、インターネット上のサーバ２との通信を実行することもできる。サーバ２はオンラインストレージサービス、他の各種クラウドコンピューティングサービスを実行するサーバであってもよい。
【００１８】
パーソナルコンピュータ１はハードディスクドライブ（ＨＤＤ）のようなストレージデバイスを備えている。タブレットコンピュータ１０は、時系列情報（手書き文書）をネットワーク越しにパーソナルコンピュータ１に送信して、パーソナルコンピュータ１のＨＤＤに記録することができる（アップロード）。
【００１９】
これにより、タブレットコンピュータ１０内のストレージの容量が少ない場合でも、タブレットコンピュータ１０が多数の時系列情報（手書き文書）あるいは大容量の時系列情報（手書き文書）を扱うことが可能となる。
【００２０】
さらに、タブレットコンピュータ１０は、パーソナルコンピュータ１のＨＤＤに記録されている任意の１以上の手書き文書を読み出すことすができる（ダウンロード）。タブレットコンピュータ１０は、この読み出した手書き文書によって示されるストロークそれぞれをタブレットコンピュータ１０のタッチスクリーンディスプレイ１７の画面に表示することができる。
【００２１】
さらに、タブレットコンピュータ１０が通信する先はパーソナルコンピュータ１ではなく、上述したように、ストレージサービスなどを提供するクラウド上のサーバ２であってよい。タブレットコンピュータ１０は、手書き文書をネットワーク越しにサーバ２に送信して、サーバ２のストレージデバイス２Ａに記録することができる（アップロード）。さらに、タブレットコンピュータ１０は、サーバ２のストレージデバイス２Ａに記録されている任意の手書き文書を読み出すことができる（ダウンロード）。タブレットコンピュータ１０は、この読み出した手書き文書によって示されるストロークそれぞれをタブレットコンピュータ１０のタッチスクリーンディスプレイ１７の画面に表示することができる。
【００２２】
このように、本実施形態では、手書き文書が格納される記憶媒体は、タブレットコンピュータ１０内のストレージデバイス、パーソナルコンピュータ１内のストレージデバイス、サーバ２のストレージデバイスのいずれであってもよい。
【００２３】
次に、図３および図４を参照して、ユーザによって手書きされたストローク（文字、マーク、図形（線図）、表など）と手書き文書との関係について説明する。図３は、ペン１００などを使用してタッチスクリーンディスプレイ１７上に手書きされる手書き文字列の例を示している。
【００２４】
手書き文書では、一旦手書きされた文字や図形などの上に、さらに別の文字や図形などが手書きされるというケースが多い。図３においては、「ＡＢＣ」の手書き文字列が「Ａ」、「Ｂ」、「Ｃ」の順番で手書きされ、この後に、手書きの矢印が、手書き文字「Ａ」のすぐ近くに手書きされた場合が想定されている。
【００２５】
手書き文字「Ａ」は、ペン１００などを使用して手書きされる２つのストローク（「∧」形状の軌跡、「−」形状の軌跡）によって表現される。最初に手書きされる「∧」形状のペン１００の軌跡は例えば等時間間隔でリアルタイムにサンプリングされ、これによって「∧」形状のストロークの時系列座標ＳＤ１１、ＳＤ１２、…ＳＤ１ｎが得られる。同様に、次に手書きされる「−」形状のペン１００の軌跡も等時間間隔でリアルタイムにサンプリングされ、これによって「−」形状のストロークの時系列座標ＳＤ２１、ＳＤ２２、…ＳＤ２ｎが得られる。
【００２６】
手書き文字「Ｂ」は、ペン１００などを使用して手書きされた２つのストローク、つまり２つの軌跡によって表現される。手書き文字「Ｃ」は、ペン１００などを使用して手書きされた１つのストローク、つまり１つの軌跡によって表現される。手書きの「矢印」は、ペン１００などを使用して手書きされた手書きされた２つのストローク、つまり２つの軌跡によって表現される。
【００２７】
図４は、図３の手書き文字列に対応する時系列情報２００を示している。時系列情報２００は、複数のストロークデータＳＤ１、ＳＤ２、…、ＳＤ７を含む。時系列情報２００内においては、これらストロークデータＳＤ１、ＳＤ２、…、ＳＤ７は、筆跡順に、つまり複数のストロークが手書きされた順に時系列に並べられている。
【００２８】
時系列情報２００において、先頭の２つのストロークデータＳＤ１、ＳＤ２は、手書き文字「Ａ」の２つのストロークをそれぞれ示している。３番目と４番目のストロークデータＳＤ３、ＳＤ４は、手書き文字「Ｂ」を構成する２つのストロークをそれぞれ示している。５番目のストロークデータＳＤ５は、手書き文字「Ｃ」を構成する１つのストロークを示している。６番目と７番目のストロークデータＳＤ６、ＳＤ７は、手書き「矢印」を構成する２つのストロークをそれぞれ示している。
【００２９】
各ストロークデータは、一つのストロークの軌跡上の複数の点それぞれに対応する複数の座標を含む。各ストロークデータにおいては、複数の座標はストロークが書かれた順に時系列に並べられている。例えば、手書き文字「Ａ」に関しては、ストロークデータＳＤ１は、手書き文字「Ａ」の「∧」形状のストロークの軌跡上の点それぞれに対応する座標データ系列（時系列座標）、つまりｎ個の座標データＳＤ１１、ＳＤ１２、…ＳＤ１ｎを含む。ストロークデータＳＤ２は、手書き文字「Ａ」の「−」形状のストロークの軌跡上の点それぞれに対応する座標データ系列、つまりｎ個の座標データＳＤ２１、ＳＤ２２、…ＳＤ２ｎを含む。なお、座標データの数はストロークデータ毎に異なっていてもよい。
【００３０】
各座標データは、対応する軌跡内のある１点に対応するＸ座標およびＹ座標を示す。例えば、座標データＳＤ１１は、「∧」形状のストロークの始点のＸ座標（Ｘ１１）およびＹ座標（Ｙ１１）を示す。ＳＤ１ｎは、「∧」形状のストロークの終点のＸ座標（Ｘ１ｎ）およびＹ座標（Ｙ１ｎ）を示す。
【００３１】
さらに、各座標データは、その座標に対応する点が手書きされた時点に対応するタイムスタンプ情報Ｔを含んでいてもよい。手書きされた時点は、絶対時間（例えば、年月日時分秒）またはある時点を基準とした相対時間のいずれであってもよい。例えば、各ストロークデータに、ストロークが書き始められた絶対時間（例えば、年月日時分秒）をタイムスタンプ情報として付加し、さらに、ストロークデータ内の各座標データに、絶対時間との差分を示す相対時間をタイムスタンプ情報Ｔとして付加してもよい。
【００３２】
さらに、各座標データには、筆圧を示す情報（Ｚ）を追加してもよい。
【００３３】
図５は、タブレットコンピュータ１０のシステム構成を示す。  
タブレットコンピュータ１０は、図５に示されるように、ＣＰＵ１０１、システムコントローラ１０２、主メモリ１０３、グラフィクスコントローラ１０４、ＢＩＯＳ−ＲＯＭ１０５、不揮発性メモリ１０６、無線通信デバイス１０７、エンベデッドコントローラ（ＥＣ）１０８等を備える。
【００３４】
ＣＰＵ１０１は、タブレットコンピュータ１０内の各種コンポーネントの動作を制御するプロセッサである。プロセッサは処理回路を含む。ＣＰＵ１０１は、ストレージデバイスである不揮発性メモリ１０６から主メモリ１０３にロードされる各種コンピュータプログラムを実行する。これらプログラムには、オペレーティングシステム（ＯＳ）２０１、および各種アプリケーションプログラムが含まれている。アプリケーションプログラムには、手書きノートアプリケーションプログラム２０２が含まれている。この手書きノートアプリケーションプログラム２０２は、メモをとることが可能なデジタルノートブックアプリケーションである。この手書きノートアプリケーションプログラム２０２は、上述の手書き文書を作成および表示する機能、手書き文書を編集する機能、および自動補完機能等を有している。
【００３５】
また、ＣＰＵ１０１は、ＢＩＯＳ−ＲＯＭ１０５に格納された基本入出力システム（ＢＩＯＳ）も実行する。ＢＩＯＳは、ハードウェア制御のためのプログラムである。
【００３６】
システムコントローラ１０２は、ＣＰＵ１０１のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ１０２には、主メモリ１０３をアクセス制御するメモリコントローラも内蔵されている。また、システムコントローラ１０２は、ＰＣＩ  ＥＸＰＲＥＳＳ規格のシリアルバスなどを介してグラフィクスコントローラ１０４との通信を実行する機能も有している。
【００３７】
グラフィクスコントローラ１０４は、タブレットコンピュータ１０のディスプレイモニタとして使用されるＬＣＤ１７Ａを制御する表示コントローラである。表示コントローラは表示制御回路を含む。ＬＣＤ１７Ａを含むタッチスクリーンディスプレイ１７（タッチスクリーンディスプレイ１７／ＬＣＤ１７Ａの画面）は、２つの長辺と２つの短辺とを含む長方形の形状を有している。
【００３８】
このグラフィクスコントローラ１０４によって生成される表示信号はＬＣＤ１７Ａに送られる。ＬＣＤ１７Ａは、表示信号に基づいて画面イメージを表示する。このＬＣＤ１７Ａ上にはタッチパネル１７Ｂが配置されている。
【００３９】
無線通信デバイス１０７は、無線ＬＡＮまたは３Ｇ移動通信などの無線通信を実行するように構成されたデバイスである。ＥＣ１０８は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。ＥＣ１０８は、ユーザによるパワーボタンの操作に応じてタブレットコンピュータ１０を電源オンまたは電源オフする機能を有している。
【００４０】
タブレットコンピュータ１０は、入力デバイス１０９（マウス、キーボード等）と通信するため周辺インタフェースを備えていてもよい。
【００４１】
＜手書きノートアプリケーションプログラム２０２の特徴＞
以下、手書きノートアプリケーションプログラム２０２の幾つかの特徴について説明する。
【００４２】
＜アプリケーションの基本的特徴＞
手書きノートアプリケーションプログラム２０２は、編集中のページを周期的に自動的に保存する。手書きノートアプリケーションプログラム２０２が停止／終了される時、手書きノートアプリケーションプログラム２０２は、編集中のページを自動的に保存する。
【００４３】
手書きノートアプリケーションプログラム２０２は、複数の言語をサポートする。手書きノートアプリケーションプログラム２０２は、ＯＳセッティング上でセットされた言語を使用する。
【００４４】
手書きノートアプリケーションプログラム２０２は、文字認識エンジンを含む。この文字認識エンジンは、日本語、英語、韓国語、ロシア語、中国語、他の様々な言語をサポートする。
【００４５】
＜自動補完機能＞
手書きノートアプリケーションプログラム２０２は、自動補完機能を有する。自動補完機能は、手書きによって入力されたストローク（仮ストローク）から定められる入力の候補である筆跡候補のリストを画面上に表示する。仮ストロークは、自動補完されるべきストローク、つまり自動補完モードにおいて入力されるストロークを意味する。自動補完機能は、筆跡候補のいずれかがユーザによって選択される場合、仮ストロークの代わりに、この選択された筆跡候補を入力する。
【００４６】
１．  ユーザは自動補完モードをオンにする（ユーザインタフェース（ＵＩ）は自動補完モードをオンとオフとの間で切り替えることができる）
２．  ユーザはが画面上にストローク（仮ストローク）を入力する。このストロークは画面上に表示される。
【００４７】
３．  手書きノートアプリケーションプログラム２０２は、幾つかの筆跡候補を決定し、筆跡候補のリスト（筆跡候補メニュー）を作成する。各筆跡候補は、１以上のストロークを含むストローク列である。筆跡候補は、その先頭部分に、仮ストロークに類似する筆跡部分を含む筆跡であってもよい。
【００４８】
４．  手書きノートアプリケーションプログラム２０２は、筆跡候補のリスト（筆跡候補メニュー）を画面上に表示する。たとえば、ユーザによって文字「ａ」に対応する仮ストロークが入力された時、文字列「ａｐｐｌｅ」に対応する筆跡、文字列「ａｐｐｌｉｃａｔｉｏｎ」に対応する筆跡等を含む筆跡候補メニューがディスプレイに表示されてもよい。
【００４９】
５．  ユーザが筆跡候補メニュー上のある１つの筆跡候補を選択した時、手書きノートアプリケーションプログラム２０２は、この筆跡候補を、仮ストロークに代えて、入力することとする。つまり、ユーザによって入力された仮ストロークは、この選択された筆跡候補を使用して補完される。この筆跡候補は確定（エンター）された筆跡となる。この筆跡候補のサイズ（高さ、文字間隔）は、例えば、仮ストロークよりも前に入力されたストロークのサイズに対応するサイズに自動的に調整されてもよい。
【００５０】
自動補完機能では、筆跡候補は、ユーザによって過去に入力された手書き情報から抽出される。このことは、ユーザが、ユーザが過去に入力した手書き情報を再利用できることを意味する。ユーザによって過去に入力された手書き情報から収集される筆跡の集合は、自動補完辞書データデータベースに格納されてもよい。手書きノートアプリケーションプログラム２０２は、ユーザの手書きノートブックから筆跡の集合を自動的に収集し、この筆跡の集合を自動補完辞書データデータベースに格納することができる。手書きノートアプリケーションプログラム２０２は、仮ストロークから定まる１以上の筆跡候補を自動補完データデータベースから取得することができる。ユーザは、自動補完データデータベース内の任意の筆跡候補を無効にすることもできる。無効にされた筆跡候補は、自動補完処理に使用されない。
【００５１】
手書きノートアプリケーションプログラム２０２は、より多くの筆跡候補をユーザに提示するために、筆跡候補リストボックスを筆跡候補メニューとして表示する。筆跡候補リストボックスは複数の列、たとえば３つの列を含んでもよい。各例においては、たとえば、３つの筆跡候補が表示されてもよい。各列は３つのボタンエリアを含み。３つの筆跡候補が各列の３つのボタンエリアにそれぞれ表示される。各ボタンエリアは、対応する筆跡候補を選択するための操作領域である。
【００５２】
ユーザがある筆跡候補に対応する操作領域（例えば、ある筆跡候補に対応するボタンエリア）をタップした時、この操作領域に対応する筆跡候補がページにエンター（入力）される。筆跡候補リストボックスは、さらに、確認（ｃｏｎｆｉｒｍ）ボタンを表示してもよい。
【００５３】
ユーザが確認（ｃｏｎｆｉｒｍ）ボタンをタップした時、手書きノートアプリケーションプログラム２０２は、仮ストロークをページにエンター（入力）する。
【００５４】
筆跡候補リストボックスの表示位置について以下に説明する。
【００５５】
筆跡候補リストボックスの表示位置は、ユーザが仮ストロークを手書き入力しながらユーザが操作し易い位置に置かれることが好ましい。これは、ユーザがペンまたは指を僅かに動かすだけで所望の筆跡候補を容易に選択できるようにするためである。手書きノートアプリケーションプログラム２０２は、仮ストロークの入力位置に対応する位置、たとえば、仮ストロークの入力位置の上側に、筆跡候補リストボックスを表示する。
【００５６】
手書きノートアプリケーションプログラム２０２は、左利きまたは右利きの設定を受け付けることができる。ユーザは、手書きノートアプリケーションプログラム２０２によって提供される設定ツールによって、左利きモードまたは右利きモードを選択することができる。
【００５７】
あるいは、ＯＳ２０１の設定ツールが、ユーザの操作に応じて、左利きモードまたは右利きモードを設定してもよい。
【００５８】
手書きノートアプリケーションプログラム２０２は、左利きモード／右利きモードに応じて、筆跡候補リストボックスのレイアウトを変更することができる。
【００５９】
次に、図６を参照して、手書きノートアプリケーションプログラム２０２の構成について説明する。
【００６０】
手書きノートアプリケーションプログラム２０２は、ペン軌跡表示処理部３０１、時系列情報生成部３０２、編集処理部３０３、ページ保存処理部３０４、ページ取得処理部３０５、手書き文書表示処理部３０６、および処理部３０８等を備える。
【００６１】
手書きノートアプリケーションプログラム２０２は、タッチスクリーンディスプレイ１７を用いて入力されるストロークデータを使用することによって、手書き文書（手書きデータ）の作成、表示、編集等を行う。タッチスクリーンディスプレイ１７は、「タッチ」、「移動（スライド）」、「リリース」等のイベントの発生を検出するように構成されている。「タッチ」は、画面上に外部オブジェクトが接触したことを示すイベントである。「移動（スライド）」は、画面上に外部オブジェクトが接触されている間に接触位置が移動されたことを示すイベントである。「リリース」は、画面から外部オブジェクトが離されたことを示すイベントである。
【００６２】
ペン軌跡表示処理部３０１および時系列情報生成部３０２は、タッチスクリーンディスプレイ１７によって発生される「タッチ」または「移動（スライド）」のイベントを受信し、これによって手書き入力操作を検出する。「タッチ」イベントには、接触位置の座標が含まれている。「移動（スライド）」イベントにも、移動先の接触位置の座標が含まれている。したがって、ペン軌跡表示処理部３０１および時系列情報生成部３０２は、タッチスクリーンディスプレイ１７から、接触位置の動きの軌跡に対応する座標列を受信することができる。
【００６３】
ペン軌跡表示処理部３０１は、手書きによって入力される筆跡（１以上のストローク）をタッチスクリーンディスプレイ１７の画面上に表示するように構成された表示制御部として機能する。ペン軌跡表示処理部３０１は、タッチスクリーンディスプレイ１７から座標列を受信する。そして、この座標列に基づいて、ペン軌跡表示処理部３０１は、ペン１００等を使用した手書き入力操作によって入力される複数のストロークをタッチスクリーンディスプレイ１７内のＬＣＤ１７Ａの画面上に表示する。ペン軌跡表示処理部３０１は、処理部３０８の制御の下、ＵＩの表示に関する様々な表示制御を実行することができる。
【００６４】
時系列情報生成部３０２は、タッチスクリーンディスプレイ１７から出力される上述の座標列を受信する。この座標列に基づいて、時系列情報生成部３０２は、上述の複数のストロークに対応する複数のストロークデータ（時系列情報）を生成する。これらストロークデータ、つまり各ストロークの各点に対応する座標および各ストロークのタイムスタンプ情報は作業メモリ４０１に一時保存してもよい。
【００６５】
ページ保存処理部３０４は、複数のストロークに対応する複数のストロークデータを含む手書き文書情報を記憶媒体４０２内の手書きノートデータベース４０２Ａに保存する。記憶媒体４０２は、上述したように、タブレットコンピュータ１０内のストレージデバイス、パーソナルコンピュータ１内のストレージデバイス、サーバ２のストレージデバイスのいずれであってもよい。
【００６６】
ページ取得処理部３０５は、記憶媒体４０２から任意の手書き文書情報を読み出す。読み出された手書き文書情報は手書き文書表示処理部３０６に送られる。手書き文書表示処理部３０６は、手書き文書情報を解析し、この解析結果に基づいて、手書き文書情報内の複数のストロークデータによって示される複数のストロークを画面上にページ（手書きページ）として表示する。
【００６７】
編集処理部３０３は現在表示中のページを編集するための処理を実行する。すなわち、編集処理部３０３は、ユーザによって行われる編集操作に応じて、表示されている複数のストローク内の１以上のストロークを削除または移動等するための編集処理を実行する。さらに、編集処理部３０３は、編集処理の結果を表示中の手書き文書に反映するためにこの手書き文書を更新する。
【００６８】
ユーザは、「消しゴム」ツール等を使用して、表示されている複数のストローク内の任意のストロークを削除することができる。また、ユーザは、画面上の任意の部分を矩形または自由枠によって囲むための「範囲選択」ツールを使用して、表示されている手書きページ内の任意の部分を選択することができる。
【００６９】
処理部３０８は、上述の自動補完を含む様々な処理を実行することができる。処理部３０８は、例えば、自動補完処理部３０８Ａ、ボックス表示制御部３０８Ｂ等を含む。
【００７０】
自動補完処理部３０８Ａは、上述の自動補完機能を実行するように構成された処理部である。自動補完モードにおいては、自動補完処理部３０８Ａは、手書きによって入力される仮ストロークと手書き文書情報とに基づいて、ユーザが手書きしようとしている筆跡、つまりストローク列（手書き文字列）を、予測する。そして、自動補完処理部３０８Ａは、仮ストロークから定められる複数の筆跡候補をＬＣＤ１７Ａの画面上に表示する。これら複数の筆跡候補の表示領域（上述の筆跡候補リストボックス）においては、筆跡候補はそれらの優先度に応じて並べられる。
【００７１】
例えば、仮ストローク「ａ」が手書きによって入力された場合には、手書きの語「ａｄｄ」または「ａｃｃｅｓｓ」のような筆跡候補がユーザに提示されてもよい。もしユーザによって手書きの語「ａｃｃｅｓｓ」が選択されたならば、仮ストローク「ａ」は、この手書きの語「ａｃｃｅｓｓ」によって補完される。そして、この手書きの語「ａｃｃｅｓｓ」が、仮ストローク「ａ」の代わりにページにエンターされる。よって、ユーザは、手書きの語「ａｃｃｅｓｓ」の筆跡を容易に入力することが出来る。
【００７２】
どの筆跡候補も選択されずに、次の仮ストローク、たとえば「ｂ」が入力された場合、自動補完処理部３０８Ａは、今度は、２つの仮ストローク「ａｂ」から定まる筆跡候補のリストを筆跡候補リストボックスに表示してユーザに提示する。
【００７３】
手書き文書情報に格納される手書き文字列の言語はどのような言語であってもよい。利用可能な言語の例は、英語、日本語、および他の様々な言語を含む。英語の文字列に関しては、筆跡（手書き文字列）は、ブロック体の文字列に対応するストローク列であってもよいし、筆記体の文字列に対応するストローク列であってもよい。筆記体で手書きされた単語は１つのストロークから構成される場合がある。したがって、自動補完処理において手書き文書情報から取得される各筆跡（ストローク列）は、必ずしも複数のストロークを含んでいる必要は無く、一つのストロークであってもよい。
【００７４】
仮ストロークから定められる筆跡候補を容易に特定できるようにするために、自動補完処理部３０８Ａは、手書きノートデータベース４０２Ａに格納されているストロークの集合（手書き文書情報）から手書き文字列のような筆跡を自動収集し、これら自動収集された手書き文字列を自動補完辞書データベース４０２Ｂに格納しても良い。
【００７５】
この自動補完辞書データベース４０２Ｂにおいては、例えば、意味のある文字列単位（例えば単語単位で）で、筆跡（ストローク列）と、この筆跡に対応する単語（文字認識結果）とが格納されていても良い。さらに、自動補完辞書データベース４０２Ｂにおいては、単語と、筆跡（ストローク列）に加えて、その単語に対応する読みが格納されていても良い。単語が英語である場合には、その単語の読みの代わりに、その単語のエイリアスが自動補完辞書データベース４０２Ｂに格納されても良い。
【００７６】
自動補完処理部３０８Ａは、まず、ユーザによって入力された仮ストロークを文字認識してもよい。そして、自動補完処理部３０８Ａは、自動補完辞書データベース４０２Ｂを参照し、この仮ストロークの文字認識結果（文字列）に前方一致する単語を見つけ出す。自動補完処理部３０８Ａは、見つけ出した単語に対応する筆跡（ストローク列）を、仮ストロークから定められる筆跡候補として自動補完辞書データベース４０２Ｂから取得する。
【００７７】
あるいは、自動補完辞書データベース４０２Ｂにおいては、例えば、単語単位で、筆跡（ストローク列）と、この筆跡に対応する特徴量とが格納されていても良い。ある筆跡の特徴量としては、この筆跡の手書き特徴を表すことができる任意の特徴を使用することができる。例えば、特徴量としては、ストロークの形状、ストロークの筆画方向、ストロークの傾斜、等を表す特徴量データを使用しても良い。この場合、自動補完処理部３０８Ａは、仮ストロークの特徴量に類似する特徴量を有する筆跡候補を自動補完辞書データベース４０２Ｂから取得してもよい。
【００７８】
自動補完辞書データベース４０２Ｂにおいては、さらに、例えば、単語単位で、各筆跡に対応する追加の情報が登録されていてもよい。追加の情報は、手書き文書情報における各筆跡の出現頻度（共起確率）を示す情報を含んでいてもよい。さらに、追加の情報は、各筆跡の使用頻度を示す情報を含んでいてもよい。各筆跡の使用頻度は、例えば、各筆跡が筆跡候補リストボックスから選択された回数であってもよい。
【００７９】
自動補完処理部３０８Ａは、仮ストロークの特徴量または仮ストロークの文字認識結果の少なくとも一方を使用して、自動補完辞書データベース４０２Ｂから仮ストロークに対応する幾つかの筆跡候補を取得する。これら筆跡候補の各々は、仮ストロークの特徴量と類似する特徴量を有する筆跡であってもよく、あるいは仮ストロークの文字認識結果に前方一致する文字列に対応する筆跡であってもよい。あるいは、これら筆跡候補の各々は、仮ストロークの特徴量と類似する特徴量を有し、かつ仮ストロークの文字認識結果に前方一致する文字列に対応する筆跡であってもよい。
【００８０】
自動補完処理部３０８Ａは、これら筆跡候補の順位付けを行うために、これら筆跡候補それぞれの優先度（優先順位）を決定する。筆跡候補を順位付けるための処理においては、筆跡候補にそれぞれスコアを与えても良い。各筆跡候補のスコアは、仮ストロークの特徴量とその筆跡候補の特徴量との間の類似度に応じて決定されてもよい。高い類似度を有する筆跡候補には、高いスコアが与えられる。最も高いスコアを有する筆跡候補には、最も高い優先度が与えられる。
【００８１】
あるいは、各筆跡候補のスコアは、筆跡候補の出現頻度、または筆跡候補の使用頻度に応じて決定されてもよい。出現頻度が高い筆跡候補は、ユーザによって入力される可能性が高い筆跡であると推定される。このため、出現頻度が高い筆跡候補には、高いスコアが与えられる。使用頻度が多い筆跡候補もまた、ユーザによって入力される可能性が高い筆跡であると推定される。このため、使用頻度（選択回数）が多い筆跡候補に、高いスコアが与えられてもよい。
【００８２】
あるいは、各筆跡候補のスコアは、（１）仮ストロークの特徴量と筆跡候補の特徴量との間の類似度、（２）筆跡候補の出現頻度、（３）筆跡候補の選択回数、の全てに基づいて決定されてもよい。
【００８３】
自動補完処理部３０８Ａは、ユーザ辞書データベース４０２Ｃを使用することもできる。ユーザ辞書データベース４０２Ｃは、予め用意された多数の筆跡候補を格納する。これら筆跡候補は、多数の単語にそれぞれ対応する筆跡である。ユーザは、ユーザ辞書データベース４０２Ｃに新たな筆跡を登録することができる。さらに、ユーザは、ユーザ辞書データベース４０２Ｃから任意の筆跡を削除することもできる。
【００８４】
ボックス表示制御部３０８Ｂは、筆跡候補リストボックスの表示位置、筆跡候補リストボックスのレイアウト、筆跡候補リストボックスにおける筆跡候補の並び順を制御する。優先度（優先順位）の高い筆跡候補ほどユーザが選択する可能性の高い候補であるので、ボックス表示制御部３０８Ｂは、これら筆跡候補の優先度に従って、これら筆跡候補を筆跡候補リストボックスに表示する。つまり、ボックス表示制御部３０８Ｂは、ユーザがスムーズに候補を選択できるようにするために、筆跡候補の優先度と筆跡候補の表示位置とを考慮して、筆跡候補リストボックスの表示を制御する。
【００８５】
図７は、手書きノートアプリケーションプログラム２０２のユーザインタフェース（編集画面）を示す。手書きノートアプリケーションプログラム２０２は、図７に示されるＵＩ（編集画面）を表示する。このＵＩは、４つのエリア、つまりノートブックリスト５０１、ページリスト５０２、編集ツールバー５０３、および編集ビューエリア５０４を含む。
【００８６】
ノートブックリスト５０１は手書きノートアプリケーションプログラム２０２によって管理されているノートブックのリストを示す。ノートブックリスト５０１の上端近傍の２つのアイコン「Ａｄｄ  Ｎｏｔｅ」、「Ａｌｌ  Ｐａｇｅｓ」はコマンドアイコンである。「Ａｄｄ  Ｎｏｔｅ」アイコンがユーザよってタップされると、処理部３０８は、新たなノードブックを追加するための処理を実行する。「Ａｌｌ  Ｐａｇｅｓ」アイコンがユーザよってタップされると、処理部３０８は、全てのノートブック内の全てのページに対応するサムネイルのリストを表示するための処理を実行する。
【００８７】
「Ｕｎｃｌａｓｓｉｆｉｅｄ  ｐａｇｅｓ」アイコンは、ユーザのどのノートブックにも属さないページ群を含むノートブックを示すノートブックアイコンである。「Ｒｅｓｅａｒｃｈ」アイコンは、ユーザのノートブック（タイトル名「Ｒｅｓｅａｒｃｈ」）を示すノートブックアイコンである。「ｉｄｅｓｓ」アイコンは、ユーザのノートブック（タイトル名「ｉｄｅｓｓ」）を示すノートブックアイコンである。「ｐｒｅｓｅｎｔａｔｉｏｎ」アイコンは、ユーザのノートブック（タイトル名「ｐｒｅｓｅｎｔａｔｉｏｎ」）を示すノートブックアイコンである。「Ｍｉｎｕｔｅｓ」アイコンは、ユーザのノートブック（タイトル名「Ｍｉｎｕｔｅｓ」）を示すノートブックアイコンである。「ＴｏＤｏ」アイコンは、ユーザのノートブック（タイトル名「ＴｏＤｏ」）を示すノートブックアイコンである。
【００８８】
これらノートブックアイコンはドラッグ&ドロップ操作によって再配置することができる。
【００８９】
ページリスト５０２は、現在選択されているノートブックアイコンに対応するノートブック内に含まれるページに対応するサムネイルのリストを示す。
【００９０】
ページリスト５０２内の最も上の「Ａｄｄ  Ｐａｇｅ」アイコンは、コマンドアイコンである。「Ａｄｄ  Ｐａｇｅ」アイコンがユーザよってタップされると、処理部３０８は、編集中のノートブックに新たなページを追加するための処理を実行する。
【００９１】
「Ａｄｄ  Ｐａｇｅ」アイコンの下側には、複数のページに対応するサムネイルをそれぞれ示す複数のページアイコンが配置されている。選択されたページアイコンに対応するページに含まれるストロークは、編集ビューエリア５０４に表示される。ユーザは、ページリスト５０２内の任意のページアイコンを選択することによって、任意のページを編集ビューエリア５０４に表示することができる。
【００９２】
これらページアイコンはドラッグ&ドロップ操作によって再配置することができる。ユーザは、ページアイコンをドラッグ&ドロップ操作することによってページ順序を変更（カスタマイズ）することができる。
【００９３】
編集ツールバー５０３は、ページを編集するための幾つかのボタンを含む。「選択ペン」ボタン５１１は、「範囲選択」ツールとして使用される。ユーザは、この「選択ペン」によって編集ビューエリア５０４上の１以上のオブジェクトを選択することができる。「選択ペン」ボタン５１１がユーザによってタップされた時、処理部３０８は、選択タイプ（矩形／自由枠／全選択）を変更するためのメニューを表示する。
【００９４】
「消しゴムペン」ボタン５１２は、「消しゴム」ツールとして使用される。ユーザは、この「消しゴムペン」によって編集ビューエリア５０４上の１以上のストロークを消すことができる。「消しゴムペン」ボタン５１２がユーザによってタップされた時、処理部３０８は、消しゴムサイズ（大／小／ページ全体）を変更するためのメニューを表示する。
【００９５】
「ストローク入力ペン」ボタン５１３は、ストロークを描画するために使用される。ユーザは、「ストローク入力ペン」によって筆跡（ストローク）を編集ビューエリア５０４に描画することができる。「ストローク入力ペン」ボタン５１３がユーザによってタップされた時、処理部３０８は、幾つかのプリセットペンを示すメニューを表示する。これらプリセットペンの各々は、例えば、ペンタイプ（万年筆／鉛筆／ボールペン／鉛筆／マーカー／フェルトペン）、幅、色、透明度の組み合わせを定義している。ユーザは、このメニューからペンを選択することができる。
【００９６】
「アンドゥ」ボタン５１４は、編集操作を取り消すために使用される。「リドゥ」ボタン５１５は、編集操作をやり直すために使用される。
【００９７】
「自動補完（推薦入力）」ボタン５１６は、自動補完モードをオンまたはオフするためのボタンである。
【００９８】
「カメラ」ボタン５１７は、写真を取り、この写真を編集ビューエリア５０４にインポートするために使用される。ユーザは、「カメラ」ボタンによって写真を撮ることができる。処理部３０８は、キャプチャアプリケーションプログラムを起動する。キャプチャアプリケーションプログラムは、タブレットコンピュータ１０に設けられたカメラ（Ｗｅｂカム）によってイメージ（写真）をキャプチャする。処理部３０８は、キャプチャされたイメージをインポートする。
【００９９】
「タッチ入力モード」ボタン５１９は、指またはマウスによって描画可能なタッチ入力モードをオンまたはオフするためのボタンである。
【０１００】
「ヘルプ」ボタン５１９は、ヘルプを表示するためのボタンである。タブボタン５２１は、ノーマルモード／フルスクリーンモードを切り替えるためのボタンである。図７のＵＩはノーマルモードに対応している。
【０１０１】
編集ビューエリア５０４は、手書き入力可能な手書き入力エリアである。ユーザは編集ビューエリア５０４内の所望の箇所にストロークを手書き入力することができる。ユーザが「自動補完（推薦入力）」ボタン５１６をタップすると、自動補完モードがオンする。自動補完モードがオンの場合においては、手書きによって入力されるストローク（仮ストローク）に対応する筆跡候補のリストが入力候補として編集ビューエリア５０４上に表示される。
【０１０２】
図８は編集ビューエリア５０４に表示される筆跡候補リストボックス７０１の例を示す。
【０１０３】
ユーザによって文字「ａ」に対応する仮ストローク６１１と、文字「ｐ」に対応する仮ストローク６１２、６１３が入力されたとすると、編集ビューエリア５０４に手書き文字列「ａｐ」に対応する仮ストローク列が表示される。さらに、仮ストローク列の上部に筆跡候補リストボックス７０１が表示される。
【０１０４】
筆跡候補リストボックス７０１は複数の領域（複数の列）から構成される。ここでは、筆跡候補リストボックス７０１が、横方向に並ぶ３つの領域、つまり３つの列（図９のＣ１、Ｃ２、Ｃ３）を含む場合を想定する。最も左の列は、手書き文字列「ａｐ」に対応する仮ストローク列の入力位置から定まる位置、たとえば仮ストローク列の上部に表示される。なお、手書き文字「ａ」に対応する仮ストローク６１１が入力された時に、筆跡候補リストボックス７０１が表示されてもよい。この場合には、筆跡候補リストボックス７０１は、その最も左の列が仮ストローク６１１の上部に位置する位置に表示される。
【０１０５】
筆跡候補リストボックス７０１の各列においては、複数の筆跡候補が縦方向に並べられる。ここでは、各列において、３つの候補が縦方向に並べられる場合を想定する。
【０１０６】
筆跡候補リストボックス７０１においては、例えば、文字列「ａｐ」を各々が含む９つの単語「ａｐｐｌｅ」、「ａｐｐｌｙ」、「ａｐｐｌｉｃａｉｏｎ」、「ａｐｐｒｅｃｉａｔｅ」、…「ａｐｐｒｏｘｉｍａｔｅ」にそれぞれ対応する９つの筆跡候補が表示される。これら筆跡候補は自動補完辞書データベース４０２Ｂから仮ストローク列６１１〜６１３に類似する筆跡を検索ことにより求められる。各筆跡候補は、１以上のストロークを含むストローク列である。各筆跡候補は、その先頭部分に、仮ストローク列に類似する筆跡を含む筆跡であってもよい。筆跡候補リストボックス７０１は９つのボタンエリアを含む。９つの筆跡候補がこれら９つのボタンエリアにそれぞれ表示される。
【０１０７】
ユーザが筆跡候補リストボックス７０１内のあるボタンエリアをペンによってタップした時、このタップされたボタンエリアに対応する筆跡候補が編集中のページにエンター（入力）される。つまり、ユーザによって入力された仮ストローク列（１以上のストローク）は、この選択された筆跡候補を使用して補完される。この筆跡候補は確定（エンター）された筆跡となる。これにより、ユーザは全ての筆跡を手書き入力せずに、簡単に所望の筆跡を手書き入力することができる。
【０１０８】
最も左の列は、仮ストローク列の入力位置の上側に隣接して表示されているので、ユーザはペン先を僅かに上方向にシフトするだけで、左の列に表示されている３つの筆跡候補のいずれかを容易に選択することができる。ペン先を縦方向に移動する操作は、手首を動かすことなく、指先を僅かに動かすだけで行うことができる。本実施形態では、優先度の高い上位３つの筆跡候補は最も左の列に縦方向に並べられている。これら、上位３つの筆跡候補は、ユーザによって選択される可能性が高い候補である。したがって、ユーザは、指先を僅かに動かすという操作を行うだけで、目的の筆跡候補をスムーズに選択することができる。
【０１０９】
筆跡候補リストボックス７０１は、さらに、確認（ｃｏｎｆｉｒｍ）ボタン７０２を表示してもよい。この確認（ｃｏｎｆｉｒｍ）ボタン７０２がタップされた時、仮ストロークは入力（エンター）されたストロークに決定される。
【０１１０】
図９は図８の筆跡候補リストボックス７０１を拡大表示した図である。
【０１１１】
図９において、点線の矢印は筆跡候補の優先度の順序を示している。矢印の始点の筆跡候補、つまり手書き文字列「ａｐｐｌｅ」に対応する筆跡候補は、最も高優先度の筆跡候補である。２番目に高優先度の筆跡候補は手書き文字列「ａｐｐｌｙ」である。３番目に高優先度の筆跡候補は手書き文字列「ａｐｐｌｉｃａｉｏｎ」である。４番目に高優先度の筆跡候補は手書き文字列「ａｐｐｒｅｃｉａｔｅ」である。５番目に高優先度の筆跡候補は手書き文字列「ａｐｐｅｎｄ」である。６番目に高優先度の筆跡候補は手書き文字列「ａｐｐｅｎｄｉｘ」である。７番目に高優先度の筆跡候補は手書き文字列「ａｐｐｒｏｖｅｄ」である。８番目に高優先度の筆跡候補は手書き文字列「ａｐｐｏｉｎｔｅｄ」である。９番目に高優先度の筆跡候補は手書き文字列「ａｐｐｒｏｘｉｍａｔｅ」である。
【０１１２】
このように、最も高い優先度の筆跡候補「ａｐｐｌｅ」は、仮ストロークの入力位置（現在のペンの位置）に一番近い位置（Ｃ１，Ｒ１）に表示される。上述したように、ペンを横方向（左右）に動かすよりも縦方向（上下）に動かす方が必要な手の動きは少ない。ペンを縦方向に移動する操作は、手首を回すことなく、指先を僅かに上下させるだけで行うことができるからである。このため、２番目に高優先度の筆跡候補は、筆跡候補「ａｐｐｌｅ」の右隣の位置（Ｃ２、Ｒ１）ではなく、筆跡候補「ａｐｐｌｅ」の上の位置（Ｃ１、Ｒ２）に表示されている。３番目に高優先度の筆跡候補「ａｐｐｌｉｃａｔｉｏｎ」は筆跡候補「ａｐｐｌｅ」の上の位置（Ｃ１、Ｒ３）に表示されている。
【０１１３】
もし４番目に高優先度の筆跡候補「ａｐｐｒｅｃｉａｔｅ」が筆跡候補「ａｐｐｌｉｃａｔｉｏｎ」の上に表示されたならば、現在のペン位置から筆跡候補「ａｐｐｒｅｃｉａｔｅ」の表示位置までの距離が長くなり過ぎる可能性がある。つまり、筆跡候補「ａｐｐｒｅｃｉａｔｅ」を選択するためにはペン先を大きく上下方向に移動させる操作が必要となる可能性がある。
【０１１４】
このため、４番目に高優先度の筆跡候補「ａｐｐｒｅｃｉａｔｅ」は、筆跡候補「ａｐｐｌｅ」の右隣りの位置（Ｃ２，Ｒ１）に表示される。位置（Ｃ２，Ｒ１）は、列Ｃ１の右隣の列Ｃ２内の一番下の位置である。位置（Ｃ２，Ｒ１）をペンによって選択するためには、ユーザは手首を僅かに右上方向に向けて回転させる必要がある。しかし、この位置（Ｃ２，Ｒ１）は現在のペンの位置から比較的近い。よって、位置（Ｃ２，Ｒ１）は、位置（Ｃ１、Ｒ３）の次に操作しやすい位置である。
【０１１５】
このように、本実施形態では、ユーザが選択する可能性の高い筆跡候補ほど、選択しやすい位置に表示することができる。よって、筆跡候補のスムーズな選択操作が可能となる。しかも、筆跡候補リストボックス７０１は、複数の列を含むので、ユーザに多くの筆跡候補を提示することができる。
【０１１６】
図８、図９では、筆跡候補リストボックス７０１が３行×３列の表構造を有している場合を例示したが、筆跡候補リストボックス７０１の列数は２であってもよい。また筆跡候補リストボックス７０１の行数は２であってもよい。
【０１１７】
図１０は、筆跡候補リストボックス７０１の別の例を示す。
【０１１８】
ここでは、筆跡候補リストボックス７０１は、列Ｃ１と、列Ｃ１と横方向に並ぶ列Ｃ２とから構成されている。つまり、筆跡候補リストボックス７０１は、３行×２列の表構造を有している。
【０１１９】
最も高優先度の筆跡候補は、仮ストロークの入力位置の近傍の、列Ｃ１内の位置（Ｃ１、Ｒ１）に表示される。２番目に高優先度の筆跡候補は、位置（Ｃ１、Ｒ１）と縦方向に並ぶ、列Ｃ１内の位置（Ｃ１、Ｒ２）に表示される。
【０１２０】
位置（Ｃ１、Ｒ１）と横方向に並ぶ、列２内の位置（Ｃ２、Ｒ１）においては、少なくとも２番目に高優先度の筆跡候補よりも優先度の低い筆跡候補が表示される。たとえば、図１０に示されるように筆跡候補リストボックス７０１が３つ行を含む場合には、４番目に高優先度の筆跡候補が位置（Ｃ２、Ｒ１）に表示される。なお、筆跡候補リストボックス７０１が２つ行を含む場合には、３番目に高優先度の筆跡候補が位置（Ｃ２、Ｒ１）に表示される。
【０１２１】
仮ストロークに類似する筆跡候補の数が４つしか存在しない場合には、位置（Ｃ２、Ｒ２）、位置（Ｃ２、Ｒ３）はブランクであってもよい。
【０１２２】
図１１は仮ストロークを選択された筆跡候補で補完する処理を説明するための図である。
【０１２３】
例えば筆跡候補「ａｐｐｌｅ」がペンによってタップされたならば、仮ストローク列６１１〜６１３の代わりに、筆跡候補「ａｐｐｌｅ」が入力（エンター）される。つまり、仮ストローク列６１１〜６１３は手書き文字列「ａｐｐｌｅ」８０１に置換される。筆跡候補リストボックス７０１は編集ビューエリア５０４から消える。
【０１２４】
エンターされた手書き文字列「ａｐｐｌｅ」８０１に後続して新たな仮ストロークが手書きによって入力されたならば、この新たな仮ストロークから定められる筆跡候補を含む新たな筆跡候補リストボックス７０１が表示される。この新たな筆跡候補リストボックス７０１は、その左列Ｃ１がこの新たな仮ストローク上に位置する位置に、表示される。
【０１２５】
なお、筆跡候補リストボックス７０１の中に所望の筆跡が含まれていない場合、ユーザは仮ストローク列６１１〜６１３に後続する位置にさらに新たな仮ストロークを手書きする。この場合、筆跡候補リストボックス７０１の表示位置は変更されず、筆跡候補リストボックス７０１内の筆跡候補のみが更新される。つまり、筆跡候補リストボックス７０１内の筆跡候補は、仮ストローク列６１１〜６１３と新たな仮ストロークとから定められる筆跡候補に更新される。
【０１２６】
図１２は、仮ストロークの入力位置の下側に筆跡候補リストボックス７０１を表示する例を示す。
【０１２７】
上の説明では、筆跡候補リストボックス７０１は仮ストロークの入力位置の上側に表示したが、仮ストロークがページの上部に入力された場合は、その仮ストロークの上側に表示スペースを確保できない。このため、ボックス表示制御部３０８Ｂは、仮ストロークの入力位置に応じて、筆跡候補リストボックス７０１を仮ストロークの入力位置の上側または下側のいずれかに表示する。
【０１２８】
ボックス表示制御部３０８Ｂは、例えば編集ビューエリア５０４の上部エリアに仮ストロークが入力された場合は、図１２に示されているように、筆跡候補リストボックス７０１を仮ストロークの入力位置の下側に表示する。
【０１２９】
ボックス表示制御部３０８Ｂは、優先度（優先順位）の高い候補を左端の列の上から順に下方向に表示し、予め定めた数（ここでは３）の筆跡候補を表示したら右隣の列の上から順に筆跡候補の続きを表示する。
【０１３０】
図１３は、図１２の筆跡候補リストボックス７０１を拡大表示した図である。
【０１３１】
図１３において、点線の矢印は筆跡候補の優先度の順序を示している。矢印の始点の筆跡候補、つまり手書き文字列「ａｐｐｌｅ」に対応する筆跡候補は、最も高優先度の筆跡候補である。２番目に高優先度の筆跡候補は手書き文字列「ａｐｐｌｙ」である。３番目に高優先度の筆跡候補は手書き文字列「ａｐｐｌｉｃａｉｏｎ」である。４番目に高優先度の筆跡候補は手書き文字列「ａｐｐｒｅｃｉａｔｅ」である。５番目に高優先度の筆跡候補は手書き文字列「ａｐｐｅｎｄ」である。６番目に高優先度の筆跡候補は手書き文字列「ａｐｐｅｎｄｉｘ」である。７番目に高優先度の筆跡候補は手書き文字列「ａｐｐｒｏｖｅｄ」である。８番目に高優先度の筆跡候補は手書き文字列「ａｐｐｏｉｎｔｅｄ」である。９番目に高優先度の筆跡候補は手書き文字列「ａｐｐｒｏｘｉｍａｔｅ」である。
【０１３２】
このように、最も高い優先度の筆跡候補「ａｐｐｌｅ」は、仮ストロークの入力位置（現在のペンの位置）に一番近い位置（Ｃ１，Ｒ３）に表示される。上述したように、ペンを横方向（左右）に動かすよりも縦方向（上下）に動かす方が必要な手の動きは少ない。このため、２番目に高優先度の筆跡候補は、筆跡候補「ａｐｐｌｅ」の右隣の位置（Ｃ２、Ｒ３）ではなく、筆跡候補「ａｐｐｌｅ」の下の位置（Ｃ１、Ｒ２）に表示されている。３番目に高優先度の筆跡候補「ａｐｐｌｉｃａｔｉｏｎ」は筆跡候補「ａｐｐｌｅ」の下の位置（Ｃ１、Ｒ１）に表示されている。
【０１３３】
もし４番目に高優先度の筆跡候補「ａｐｐｒｅｃｉａｔｅ」が筆跡候補「ａｐｐｌｉｃａｔｉｏｎ」の下に表示されたならば、現在のペン位置から筆跡候補「ａｐｐｒｅｃｉａｔｅ」の表示位置までの距離が長くなり過ぎる可能性がある。つまり、筆跡候補「ａｐｐｒｅｃｉａｔｅ」を選択するためにはペン先を大きく上下方向に移動させる操作が必要となる可能性がある。
【０１３４】
このため、４番目に高優先度の筆跡候補「ａｐｐｒｅｃｉａｔｅ」は、筆跡候補「ａｐｐｌｅ」の右隣りの位置（Ｃ２，Ｒ３）に表示される。位置（Ｃ２，Ｒ３）は、列Ｃ１の右隣の列Ｃ２内の一番上の位置である。位置（Ｃ２，Ｒ３）をペンによって選択するためには、ユーザは手首を僅かに左下方向に向けて回転させる必要がある。しかし、この位置（Ｃ２，Ｒ３）は現在のペンの位置から比較的近い。よって、位置（Ｃ２，Ｒ３）は、位置（Ｃ１、Ｒ１）の次に操作しやすい位置である。
【０１３５】
このように、本実施形態では、ボックス表示制御部３０８Ｂは、筆跡候補リストボックス７０１が仮ストロークの上側または下側のどちらに表示されるかに応じて、筆跡候補リストボックス７０１内の筆跡候補の並びを自動的に変更する。
【０１３６】
筆跡候補リストボックス７０１が仮ストロークの上側に表示される場合には、最も高い優先度の筆跡候補は２番目に高優先度の筆跡候補の下側に表示される。一方、筆跡候補リストボックス７０１が仮ストロークの下側に表示される場合には、最も高い優先度の筆跡候補は２番目に高優先度の筆跡候補の上側に表示される。
【０１３７】
これにより、筆跡候補リストボックス７０１が仮ストロークの上側または下側のどちらに表示される場合でも、ユーザが選択する可能性の高い筆跡候補ほど、選択しやすい位置に表示することができる。
【０１３８】
図１４は右利きモードにおいて表示される筆跡候補リストボックス７０１の構造と左利きモードにおいて表示される筆跡候補リストボックス７０１’の構造との関係を示す。
【０１３９】
図９、図１３等を参照して説明した筆跡候補リストボックス７０１は右利きモードに適したレイアウトを有している。ボックス表示制御部３０８Ｂは、右利きモードが有効である場合には、図１４の上部に示される筆跡候補リストボックス７０１を表示する。この筆跡候補リストボックス７０１においては、列Ｃ２が列Ｃ１の右隣に位置し、かつ列Ｃ３が列Ｃ２の右隣に位置している。
【０１４０】
一方、左利きモードが有効である場合には、ボックス表示制御部３０８Ｂは、図１４の下部に示される筆跡候補リストボックス７０１’を表示する。この筆跡候補リストボックス７０１’においては、列Ｃ２が列Ｃ１の左隣に位置し、かつ列Ｃ３が列Ｃ２の左隣に位置している。
【０１４１】
図１５は左利きモードにおける仮ストロークの入力位置と筆跡候補リストボックス７０１’の表示位置との関係を示す。
【０１４２】
筆跡候補リストボックス７０１’の列Ｃ１は仮ストロークの入力位置の上側に位置する。そして列Ｃ２が列Ｃ１の左隣に位置し、かつ列Ｃ３が列Ｃ２の左隣に位置する。
【０１４３】
したがって、左で手書き入力操作を行う場合であっても、手の位置を大きく動かすことなく、目的の筆跡候補をスムーズに選択することができる。
【０１４４】
次に、図１６を参照して、筆跡候補リストボックス７０１の更新時の表示形態を説明する。ユーザによって文字「ｗ」に対応する仮ストロークが入力された場合、例えば、９つの筆跡候補「ｗｏｒｌｄ」、「ｗｅｂ」、「ｗａｒ」…「ｗｈｅｎ」を含む筆跡候補リストボックス７０１が表示される。優先度は、筆跡候補「Ｗｏｒｌｄ」が１位であり、「Ｗｅｂ」が２位、「Ｗａｒ」が３位であり、そして「ｗｈｅｎ」が９位である。このため、筆跡候補「Ｗｏｒｌｄ」は列Ｃ１の一番下に表示される。
【０１４５】
文字「ｗ」に対応する仮ストロークの入力の後に、ユーザによって文字「ｏ」に対応する仮ストロークが入力された場合、これら２つの仮ストロークから筆跡候補が新たに定められる。今、９つの筆跡候補「ｗｏｒｄ」、「ｗｏｒｌｄ」、「ｗｏｒｔｈ」、…「ｗｏｅ」が２つの仮ストロークから定まる新たな入力の候補として決定された場合を想定する。優先度は、筆跡候補「ｗｏｒｄ」が１位であり、「ｗｏｒｌｄ」が２位、「ｗｏｒｔｈ」が３位であり、そして「ｗｏｅ」が９位である。
【０１４６】
この場合、通常では、筆跡候補「ｗｏｒｌｄ」は筆跡候補リストボックス７０１内の列Ｃ１の下から２番目のエントリに表示される。しかし、筆跡候補「Ｗｏｒｌｄ」は前回から表示されている筆跡候補であるので、ユーザは、筆跡候補「Ｗｏｒｌｄ」が筆跡候補リストボックス７０１内の列Ｃ１の一番下にあることを覚えている可能性がある。
【０１４７】
このため、本実施形態では、前回表示された筆跡候補と同じ筆跡候補は、新たな入力の候補内におけるこの筆跡候補の優先度の順位と関係なく、筆跡候補リストボックス７０１内の同じ場所に表示される。すなわち、前回と今回の共通の筆跡候補「ｗｏｒｌｄ」に関しては、筆跡候補リストボックス７０１内の表示位置は変更されない。この結果、筆跡候補「ｗｏｒｌｄ」は、前回と同じ筆跡候補リストボックス７０１内の表示位置、つまり列Ｃ１の１番下に表示される。他の筆跡候補「Ｗｏｒｄ」、「Ｗｏｒｔｈ」、…はこれらの優先度の関係に従って並べられる。
【０１４８】
なお、ここでは、前回と今回の共通の筆跡候補「ｗｏｒｌｄ」の前回の優先度が１位であったので、筆跡候補「ｗｏｒｌｄ」を前回と同じ列Ｃ１の１番下に表示したが、もし筆跡候補「ｗｏｒｌｄ」の前回の優先度が３位であったならば、筆跡候補「ｗｏｒｌｄ」は前回と同じ列Ｃ１の１番上に表示される。
【０１４９】
次に、図１７〜図２１を参照して、仮ストローク列の入力が継続されている間に、筆跡候補の予測に使用される仮ストローク列の起点を自動的に変更する処理について説明する。
【０１５０】
例えば、ユーザが手書き文字列「ａ  ｐｅｎｄａｎｔ」の入力を意図している場合を想定する。
【０１５１】
図１７に示されるように、ユーザによって文字「ａ」に対応する仮ストローク６１１と、文字「ｐ」に対応する仮ストローク６１２、６１３が手書きによってペンによって入力されたとすると、これら仮ストローク列の上部に筆跡候補リストボックス７０１が表示される。なお、文字「ａ」に対応する仮ストローク６１１が入力された時点で、仮ストローク６１１の上部に筆跡候補リストボックス７０１が表示されもよい。
【０１５２】
筆跡候補リストボックス７０１においては、例えば、各々が「ａｐ」から始まる９つの筆跡候補（手書き文字列）が表示される。
【０１５３】
ユーザが意図した筆跡候補は筆跡候補リストボックス７０１内に存在しない。このため、図１８に示すように、ユーザは、どの筆跡候補も選択せずに、仮ストローク６１１〜６１３に後続して文字「ｅ」に対応する仮ストローク６１４をペンによって入力する。自動補完処理部３０８Ａは、図１８に示すように、筆跡候補リストボックス７０１の筆跡候補を更新し、仮ストローク６１１〜６１３と仮ストローク６１４から定まる新たな入力の候補である９つの筆跡候補を筆跡候補リストボックス７０１に表示する。新たな入力の候補である９つの筆跡候補の各々は、「ａｐｅ」から始まる手書き文字列である。この場合、筆跡候補リストボックス７０１の表示位置は変更されない。つまり、筆跡候補リストボックス７０１の表示位置は、筆跡候補リストボックス７０１の左端の列が仮ストローク６１１（または仮ストローク６１１、６１２）の上部に位置する位置に固定される。これにより、筆跡候補リストボックス７０１の筆跡候補を即座に更新することが可能となる。
【０１５４】
ユーザが意図した筆跡候補は筆跡候補リストボックス７０１内に存在しない。このため、ユーザは、図１９に示すように、どの筆跡候補も選択せずに、仮ストローク６１１〜６１４に後続して文字「ｎ」に対応する仮ストローク６１５をペンによって入力する。
【０１５５】
自動補完処理部３０８Ａは、どの筆跡候補も選択されずに仮ストロークの入力が継続されていることを認識する。この場合、自動補完処理部３０８Ａは、最初に入力された文字「ａ」に対応する仮ストローク６１１を入力（エンター）されたストロークに決定し、仮ストローク６１１〜６１５から、この仮ストローク６１１を取り除く。そして、自動補完処理部３０８Ａは、図１９に示すように、仮ストローク６１２〜６１５から定まる新たな入力の候補である９つの筆跡候補を筆跡候補リストボックス７０１に表示する。新たな入力の候補である９つの筆跡候補の各々は、「ｐｅｎ」から始まる手書き文字列である。これら９つの筆跡候補には、手書き文字列「ｐｅｎｄａｎｔ」に対応する筆跡候補が含まれている。
【０１５６】
図２０に示されるように、ユーザは、手書き文字列「ｐｅｎｄａｎｔ」に対応する筆跡候補をペンによって選択する。
【０１５７】
そして、図２１に示すように、自動補完処理部３０８Ａは、手書き文字列「ｐｅｎ」に対応する仮ストローク６１２〜６１５に代えて、手書き文字列「ｐｅｎｄａｎｔ」に対応する筆跡８０２を編集ビューエリア５０４に入力する。筆跡候補リストボックス７０１は編集ビューエリア５０４から消える。
【０１５８】
上述したように、どの筆跡候補も選択されずに仮ストローク列の入力が継続されている間は、筆跡候補リストボックス７０１の表示位置は変更されない。このため、仮ストローク列の入力が継続されるにつれて、現在のペンの位置が、筆跡候補リストボックス７０１の左端の列から離れていく。
【０１５９】
本実施形態では、このような状況においては仮ストローク列の起点を自動的に変更する処理が実行される。したがって、ユーザが意図する筆跡候補を提示できる可能性が高くなる。
【０１６０】
例えば、自動補完処理部３０８Ａは、仮ストローク列（仮筆跡）の外接矩形の高さ（ｈ）に対する幅（ｗ）の比率、つまりｗ／ｈが、ある閾値を超えたことを条件に、仮ストローク列の起点を自動的に変更する処理を実行してもよい。あるいは、自動補完処理部３０８Ａは、仮ストロークの数がある閾値を超えたことを条件に、仮ストローク列の起点を自動的に変更する処理を実行してもよい。
【０１６１】
図２２のフローチャートは、手書きノートアプリケーションプログラム２０２の制御の下にＣＰＵ１０１よって実行される自動補完処理の手順を示す。
【０１６２】
自動補完モードがオンの場合（ステップＳ１１のＹＥＳ）、ＣＰＵ１０１は、仮ストロークが手書きによって入力された時に、その仮ストロークの編集ビューエリア５０４上の入力位置を検出する（ステップＳ１２）。ＣＰＵ１０１は、仮ストロークを編集ビューエリア５０４上に表示するための処理を実行する（ステップＳ１３）。そして、ＣＰＵ１０１は、仮ストロークの入力位置から定まる位置、例えば、仮ストロークの入力位置の上部または下部に、筆跡候補の表示領域である筆跡候補リストボックス７０１を表示する（ステップＳ１４）。筆跡候補リストボックス７０１においては、仮ストロークから定まる筆跡候補のリストが表示される。
【０１６３】
なお、仮ストロークに対応する手書き文字の入力方向に応じて、つまり横書き／縦書きに応じて、筆跡候補リストボックス７０１の表示位置が変更されても良い。この場合、仮ストロークに対応する手書き文字の入力方向が横方向、つまり横書きの場合には、筆跡候補リストボックス７０１は、仮ストロークの入力位置の上部または下部に表示されても良い。一方、仮ストロークに対応する手書き文字の入力方向が縦方向、つまり縦書きの場合には、筆跡候補リストボックス７０１は、例えば、仮ストロークの入力位置の右部または左部に表示されても良い。
【０１６４】
ＣＰＵ１０１は、仮ストロークがさらに手書き入力されたか否かを判定する（ステップＳ１５）。仮ストロークがさらに手書き入力された場合（ステップＳ１５のＹＥＳ）、ＣＰＵ１０１は、ステップＳ１４〜ステップＳ１５を再度実行する。なお、仮ストロークがさらに手書き入力された時の筆跡候補リストボックス表示処理（ステップＳ１５）では、ＣＰＵ１０１は、筆跡候補リストボックス７０１の表示位置を変更せずに、筆跡候補リストボックス７０１内の筆跡候補を変更する。筆跡候補リストボックス７０１内の筆跡候補は、最初に入力された仮ストロークから定められる筆跡候補の集合から、最初に入力された仮ストロークと次に入力された仮ストロークとから定められる筆跡候補の集合に変更される。
【０１６５】
さらなる仮ストロークが手書き入力されない場合（ステップＳ１５のＮＯ）、ＣＰＵ１０１は、筆跡候補が選択されたか否かを判定する（ステップＳ１６）。筆跡候補がユーザによって選択された場合（ステップＳ１６のＹＥＳ）、ＣＰＵ１０１は、選択された筆跡候補のサイズを調整する（ステップＳ１７）。そして、ＣＰＵ１０１は、仮ストロークを選択された筆跡候補を使用して補完して、選択された筆跡候補を確定（エンター）された筆跡にする（ステップＳ１８）。ステップＳ１８では、仮ストロークの代わりに、選択された筆跡候補が入力される。
【０１６６】
どの筆跡候補も選択されない場合（ステップＳ１６のＮＯ）、ＣＰＵ１０１は、確定（ｃｏｎｆｉｒｍ）ボタンがタップされたか否かを判定する（ステップＳ１９）。確定（ｃｏｎｆｉｒｍ）ボタンがタップされた場合（ステップＳ１９のＹＥＳ）、ＣＰＵ１０１は、仮ストロークを確定（エンター）された筆跡にする（ステップＳ２０）。
【０１６７】
確定ボタンがタップされない場合（ステップＳ１９のＮＯ）、処理は、仮ストロークがさらに手書き入力されたかを判定するためのステップＳ１６に戻る。
【０１６８】
図２３のフローチャートは、手書きノートアプリケーションプログラム２０２の制御の下にＣＰＵ１０１よって実行される筆跡候補リストボックス表示処理の手順を示す。
【０１６９】
ＣＰＵ１０１は、入力された１以上の仮ストロークから幾つかの筆跡候補（例えば９個の筆跡候補）を決定する（ステップＳ３１）。そして、ＣＰＵ１０１は、これら筆跡候補を画面上に表示する（ステップＳ３２）。ステップＳ３２では、これら筆跡候補は、これら筆跡候補の優先度に従って、画面上の筆跡候補リストボックス７０１に表示される。
【０１７０】
最も優先度が高い候補筆跡（第１筆跡候補）は、仮ストロークの入力位置から定まる、筆跡候補リストボックス７０１内の第１位置に表示される。例えば、筆跡候補リストボックス７０１が仮ストロークの入力位置の上部に表示される場合には、第１筆跡候補は、列Ｃ１内の一番下の位置に表示される。一方、筆跡候補リストボックス７０１が仮ストロークの入力位置の下部に表示される場合には、第１筆跡候補は、列Ｃ１内の一番上の位置に表示される。
【０１７１】
２番目に優先度が高い候補筆跡（第２筆跡候補）は、第１位置と縦方向に並ぶ第２位置に表示される。例えば、筆跡候補リストボックス７０１が仮ストロークの入力位置の上部に表示される場合には、第２筆跡候補は、列Ｃ１内の下から２番目の位置に表示される。一方、筆跡候補リストボックス７０１が仮ストロークの入力位置の下部に表示される場合には、第２筆跡候補は、列Ｃ１内の上から２番目の位置に表示される。
【０１７２】
そして、少なくとも第２筆跡候補よりも低い優先度を有する候補筆跡（第３筆跡候補）は、第１位置と横方向に並ぶ第３位置に表示される。列Ｃ１に優先度の高い上位３つの筆跡候補が表示されるケースにおいては、第３筆跡候補は４番目に優先度の高い筆跡候補である。一方、列Ｃ１に優先度の高い上位２つの筆跡候補が表示されるケースにおいては、第３筆跡候補は４番目に優先度の高い筆跡候補である。筆跡候補リストボックス７０１が仮ストロークの入力位置の上部に表示される場合には、第３筆跡候補は、列Ｃ２内の一番下の位置に表示される。一方、筆跡候補リストボックス７０１が仮ストロークの入力位置の下部に表示される場合には、第３筆跡候補は、列Ｃ２内の一番上の位置に表示される。
【０１７３】
ＣＰＵ１０１は、仮ストロークがさらに手書き入力されたか否かを判定する（ステップＳ３３）。仮ストロークがさらに手書き入力された場合（ステップＳ３３のＹＥＳ）、ＣＰＵ１０１は、既に入力されている１以上のストロークおよびさらに入力されたストロークから新たな入力の候補である複数の筆跡を決定する（ステップＳ３４）。
【０１７４】
ＣＰＵ１０１は、筆跡候補リストボックス７０１に前回表示された筆跡の何れかと同一の筆跡が上述の新たな入力の候補である複数の筆跡に含まれるか否かを判定する（ステップＳ３５）。
【０１７５】
前回表示された筆跡の何れかと同一の筆跡が上述の新たな入力の候補である複数の筆跡に含まれている場合（ステップＳ３５のＹＥＳ）、ＣＰＵ１０１は、同一の筆跡を、上述の新たな入力の候補内における同一の筆跡の優先度の順位と関係なく、同一の筆跡を、前回表示された筆跡候補リストボックス７０１の位置と同一位置に表示する（ステップＳ３６）。新たな入力の候補内の他の筆跡それぞれは、それらの優先度にしたがって、筆跡候補リストボックス７０１内の残りの位置にそれぞれ表示される。
【０１７６】
前回表示された筆跡の何れかと同一の筆跡が上述の新たな入力の候補である複数の筆跡に含まれていない場合（ステップＳ３５のＮＯ）、ＣＰＵ１０１は、新たな入力の候補である複数の筆跡を、それらの優先度にしたがって、筆跡候補リストボックス７０１にそれぞれ表示する（ステップＳ３７）。
【０１７７】
図２４のフローチャートは、筆跡候補リストボックス表示処理の手順の他の例を示す。
【０１７８】
図２４のフローチャートにおいては、図２３のフローチャートで説明した処理に、ステップＳ４１、Ｓ４２の処理が追加されている。
【０１７９】
仮ストロークがさらに手書き入力された場合（ステップＳ３３のＹＥＳ）、ＣＰＵ１０１は、仮ストローク列の起点を自動的に変更するための条件（仮ストローク列起点変更条件）が満たされているか否かを判定する（ステップＳ４１）。この仮ストローク列起点変更条件が満たされているか否かは、（１）仮ストローク列（仮筆跡）の外接矩形の高さ（ｈ）に対する幅（ｗ）の比率がある閾値を超えたか否か、（２）入力された仮ストロークの数がある閾値を超えたか否か、少なくとも１つに基づいて判定されてもよい。
【０１８０】
仮ストローク列起点変更条件が満たされた場合（ステップＳ４１のＹＥＳ）、ＣＰＵ１０１は、筆跡候補の予測に使用されるべき仮ストローク列の起点を変更する（ステップＳ３４）。すなわち、ＣＰＵ１０１は、現在の仮ストローク列の先頭の仮ストロークを入力（エンター）されたストロークに決定する。そして、ＣＰＵ１０１は、現在の仮ストローク列から先頭の仮ストロークを除く残りのストローク列から、新たな入力の候補である複数の筆跡を決定する。
【０１８１】
以上説明したように、本実施形態においては、自動補完モードにおいて入力されるストローク（仮ストローク）から定められる複数の筆跡が入力の候補として表示領域（筆跡候補リストボックス）に表示される。筆跡候補リストボックスは、少なくとも、仮ストロークの入力位置に対応する位置に表示される第１領域（列Ｃ１）と、第１領域と横方向に並ぶ第２領域（列Ｃ２）とを含む。これら複数の筆跡内の最も高優先度の筆跡（第１筆跡）は、仮ストロークの入力位置の近傍の、第１領域（列Ｃ１）内の第１位置に表示される。そして、２番目に高優先度の第２筆跡は、第１位置と縦方向に並ぶ、第１領域内の第２位置に表示される。そして、これら複数の筆跡の内の第３筆跡であって少なくとも第２筆跡よりも低い優先度を有する第３筆跡は、第１位置と横方向に並ぶ、第２領域（列Ｃ２）内の第３位置に表示される。
【０１８２】
したがって、ユーザによって最も選択される可能性が高い第１筆跡については最も選択しやすい位置、つまり仮ストロークの入力位置に最も近い、第１領域（列Ｃ１）内の第１位置に表示される。また、ユーザによって２番目に選択される可能性が高い第２筆跡については、第１位置と横方向に並ぶ上述の第３位置ではなく、第１位置と縦方向に並ぶ上述の第２位置に表示される。ペン先を縦方向に移動する操作は、手首を動かすことなく、指先を僅かに動かすだけで容易に行うことができる。よって、第１筆跡および第２筆跡が第１領域において縦方向に並べられた状態で表示されることにより、選択される可能性が高い筆跡それぞれを選択しやすい位置に表示することができる。したがって、選択される可能性が高い筆跡候補ほど、選択しやすい位置に表示することができ、これによりスムーズな手書き入力を実現できる。
【０１８３】
さらに、本実施形態では、仮ストロークの上部に筆跡候補リストボックスが表示される場合においては、優先度の高い筆跡候補が第１領域の下から順に上方向に表示され、予め定めた数を表示したら隣の第２領域の下から順に候補の続きが表示される。また、仮ストロークの上部に筆跡候補リストボックスが表示される場合においては、優先度の高い筆跡候補が第１領域の上から順に下方向に表示され、予め定めた数を表示したら隣の第２領域の上から順に候補の続きが表示される。
【０１８４】
したがって、筆跡候補リストボックスが仮ストロークの上部または下部のどちらに表示される場合でも、選択される可能性が高い筆跡候補ほど、選択しやすい位置に表示することができる。
【０１８５】
なお、本実施形態に記載された様々な機能の各々は、処理回路によって実現されてもよい。処理回路の例には、中央処理装置（ＣＰＵ）のような、プログラムされたプロセッサが含まれる。このプロセッサは、メモリに格納されたコンピュータプログラム（命令群）を実行することによって、記載された機能それぞれを実行する。このプロセッサは、電気回路を含むマイクロプロセッサであってもよい。処理回路の例には、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、マイクロコントローラ、コントローラ、他の電気回路部品も含まれる。本実施形態に記載されたＣＰＵ以外の他のコンポーネントの各々もまた処理回路によって実現されてもよい。
【０１８６】
また、本実施形態の各種処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【０１８７】
このコンピュータプログラムがインストールされたコンピュータ内のＣＰＵは上述の筆跡補完処理を実行するように構成されたプロセッサとして機能し得る。このコンピュータ内の表示コントローラはストロークそれぞれを画面上に表示するように構成された表示プロセッサとして機能し得る。
【０１８８】
また、本実施形態では、タブレットコンピュータを使用する場合を例示して説明したが、本実施形態の手書き文書処理機能は、通常のデスクトップパーソナルコンピュータに適用することもできる。この場合、手書き入力のための入力デバイスであるタブレット等をデスクトップパーソナルコンピュータに接続すれば良い。
【０１８９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【図１】
0006499198.tif 000002
【図２】
0006499198.tif 000003
【図３】
0006499198.tif 000004
【図４】
0006499198.tif 000005
【図５】
0006499198.tif 000006
【図６】
0006499198.tif 000007
【図７】
0006499198.tif 000008
【図８】
0006499198.tif 000009
【図９】
0006499198.tif 000010
【図１０】
0006499198.tif 000011
【図１１】
0006499198.tif 000012
【図１２】
0006499198.tif 000013
【図１３】
0006499198.tif 000014
【図１４】
0006499198.tif 000015
【図１５】
0006499198.tif 000016
【図１６】
0006499198.tif 000017
【図１７】
0006499198.tif 000018
【図１８】
0006499198.tif 000019
【図１９】
0006499198.tif 000020
【図２０】
0006499198.tif 000021
【図２１】
0006499198.tif 000022
【図２２】
0006499198.tif 000023
【図２３】
0006499198.tif 000024
【図２４】
0006499198.tif 000025