(57)【要約】  実施形態によれば、方法は、手書きで記載される１以上のストロークに対応するストロークデータを入力し、１以上の第１ストロークを用いて定まる１以上のストローク集合を、手書き入力の候補として画面上の第１の領域に表示し、第１ストローク集合の入力がユーザにより指定される場合に、前記第１ストローク集合の第２の座標を用いて、前記第１ストローク集合を前記画面上の第２の領域に表示するものであって、前記第２の座標は、前記１以上の第１ストロークの座標を基準として相対的に定められる前記第１ストローク集合の第１の座標が、前記画面の表示領域に応じて、少なくとも一部が変換されて生成されたものである。
2015059787.tif 000002
【特許請求の範囲】
【請求項１】
手書きで記載される１以上のストロークに対応するストロークデータを入力し、
１以上の第１ストロークを用いて定まる１以上のストローク集合を、手書き入力の候補として画面上の第１の領域に表示し、
第１ストローク集合の入力がユーザにより指定される場合に、前記第１ストローク集合の第２の座標を用いて、前記第１ストローク集合を前記画面上の第２の領域に表示するものであって、
前記第２の座標は、前記１以上の第１ストロークの座標を基準として相対的に定められる前記第１ストローク集合の第１の座標が、前記画面の表示領域に応じて、少なくとも一部が変換されて生成されたものである
方法。
【請求項２】
前記第２の座標は、前記第１の座標に対応する領域に含まれるストロークに応じて、前記第１の座標が少なくとも一部が変換されて生成されたものである、請求項１記載の方法。
【請求項３】
前記第２の座標は、前記画面の表示領域と、前記第１の座標に対応する領域との位置関係に応じて、少なくとも一部が変換されて生成されたものである、請求項１記載の方法。
【請求項４】
前記第１ストローク集合は、前記画面上の別個の領域に分割して表示される、請求項１記載の方法。
【請求項５】
前記第１ストローク集合に対応する文字列は、第１単語と第２単語とを含み、
前記第１単語に対応する前記第１ストローク集合の一部と、前記第２単語に対応する前記第１ストローク集合の一部とは、前記画面上の別個の領域に分割して表示される
請求項４記載の方法。
【請求項６】
手書きで記載される１以上のストロークに対応するストロークデータを入力する入力部と、
１以上の第１ストロークを用いて定まる１以上のストローク集合を、手書き入力の候補として画面上の第１の領域に表示する第１の表示処理部と、
第１ストローク集合の入力がユーザにより指定される場合に、前記第１ストローク集合の第２の座標を用いて、前記第１ストローク集合を前記画面上の第２の領域に表示する第２の表示処理部と
を具備し、
前記第２の座標は、前記１以上の第１ストロークの座標を基準として相対的に定められる前記第１ストローク集合の第１の座標が、前記画面の表示領域に応じて、少なくとも一部が変換されて生成されたものである
電子機器。
【請求項７】
前記第２の座標は、前記第１の座標に対応する領域に含まれるストロークに応じて、前記第１の座標が少なくとも一部が変換されて生成されたものである、請求項６記載の電子機器。
【請求項８】
前記第２の座標は、前記画面の表示領域と、前記第１の座標に対応する領域との位置関係に応じて、少なくとも一部が変換されて生成されたものである、請求項６記載の電子機器。
【請求項９】
前記第１ストローク集合は、前記画面上の別個の領域に分割して表示される、請求項６記載の電子機器。
【請求項１０】
前記第１ストローク集合に対応する文字列は、第１単語と第２単語とを含み、
前記第１単語に対応する前記第１ストローク集合の一部と、前記第２単語に対応する前記第１ストローク集合の一部とは、前記画面上の別個の領域に分割して表示される
請求項９記載の電子機器。
【請求項１１】
コンピュータにより実行されるプログラムであって、前記プログラムは前記コンピュータを、
手書きで記載される１以上のストロークに対応するストロークデータを入力する入力部、
１以上の第１ストロークを用いて定まる１以上のストローク集合を、手書き入力の候補として画面上の第１の領域に表示する第１の表示処理部、
第１ストローク集合の入力がユーザにより指定される場合に、前記第１ストローク集合の第２の座標を用いて、前記第１ストローク集合を前記画面上の第２の領域に表示する第２の表示処理部
として動作させ、
前記第２の座標は、前記１以上の第１ストロークの座標を基準として相対的に定められる前記第１ストローク集合の第１の座標が、前記画面の表示領域に応じて、少なくとも一部が変換されて生成されたものである
プログラム。
【請求項１２】
前記第２の座標は、前記第１の座標に対応する領域に含まれるストロークに応じて、前記第１の座標が少なくとも一部が変換されて生成されたものである、請求項１１記載のプログラム。
【請求項１３】
前記第２の座標は、前記画面の表示領域と、前記第１の座標に対応する領域との位置関係に応じて、少なくとも一部が変換されて生成されたものである、請求項１１記載のプログラム。
【請求項１４】
前記第１ストローク集合は、前記画面上の別個の領域に分割して表示される、請求項１１記載のプログラム。
【請求項１５】
前記第１ストローク集合に対応する文字列は、第１単語と第２単語とを含み、
前記第１単語に対応する前記第１ストローク集合の一部と、前記第２単語に対応する前記第１ストローク集合の一部とは、前記画面上の別個の領域に分割して表示される
請求項１４記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、文字列を手書き入力する技術に関する。
【背景技術】
【０００２】
近年、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、スマートフォン、ＰＤＡといった文書を手書きで入力可能な種々の電子機器が開発されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−０２５５６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の一形態の目的は、手書き文書の作成を容易にすることが可能な電子機器、方法及びプログラムを提供することである。
【課題を解決するための手段】
【０００５】
実施形態によれば、方法は、手書きで記載される１以上のストロークに対応するストロークデータを入力し、１以上の第１ストロークを用いて定まる１以上のストローク集合を、手書き入力の候補として画面上の第１の領域に表示し、第１ストローク集合の入力がユーザにより指定される場合に、前記第１ストローク集合の第２の座標を用いて、前記第１ストローク集合を前記画面上の第２の領域に表示するものであって、前記第２の座標は、前記１以上の第１ストロークの座標を基準として相対的に定められる前記第１ストローク集合の第１の座標が、前記画面の表示領域に応じて、少なくとも一部が変換されて生成されたものである。
【図面の簡単な説明】
【０００６】
【図１】図１は、実施形態に係る電子機器の外観の一例を示す斜視図である。
【図２】図２は、電子機器と他の装置との連係動作の一例を示すブロック図である。
【図３】図３は、タッチスクリーンディスプレイに手書きされる手書き文書の一例を示す図である。
【図４】図４は、ストロークデータの集合である時系列情報の一例を示す図である。
【図５】図５は、電子機器のシステム構成の一例を示すブロック図である。
【図６】図６は、電子機器によって表示されるホーム画面を示す図である。
【図７】図７は、電子機器によって表示されるノートプレビュー画面を示す図である。
【図８】図８は、電子機器によって表示される設定画面を示す図である。
【図９】図９は、電子機器によって表示されるページ編集画面を示す図である。
【図１０】図１０は、電子機器によって表示される検索ダイアログを示す図である。
【図１１】図１１は、電子機器によって実行される手書きノートアプリケーションプログラムの機能構成を示すブロック図である。
【図１２】図１２は、サジェスト特徴テーブルのデータ構造の一例を示す図である。
【図１３】図１３は、サジェストキーワードテーブルのデータ構造の一例を示す図である。
【図１４】図１４は、特徴量登録処理の一例を示すフローチャートである。
【図１５】図１５は、積算文字認識処理について具体的に説明するための図である。
【図１６】図１６は、候補表示処理の一例を示すフローチャートである。
【図１７】図１７は、文字列の候補が表示される候補表示領域の一例を示す図である。
【図１８】図１８は、ユーザによって選択された文字列が表示された手書き入力領域の一例を示す図である。
【図１９】図１９は、ユーザによって手書きで記載される文字列の言語が日本語である場合の図１８に対応する図である。
【図２０】図２０は、ユーザによって手書きで記載される文字列の言語が日本語である場合の図１９に対応する図である。
【図２１】図２１は、選択文字列表示処理の一例を示すフローチャートである。
【図２２】図２２は、選択文字列を手書き入力領域に表示可能でない場合の一例を示す図である。
【図２３】図２３は、選択文字列を手書き入力領域に表示可能でない場合の他の例を示す図である。
【図２４】図２４は、選択文字列の第１の表示例について具体的に説明するための図である。
【図２５】図２５は、ユーザによって手書きで記載される文字列の言語が日本語である場合の図２２に対応する図である。
【図２６】図２６は、ユーザによって手書きで記載される文字列の言語が日本語である場合の図２４に対応する図である。
【図２７】図２７は、選択文字列の第２の表示例について具体的に説明するための図である。
【図２８】図２８は、第２の表示例において改行部分を表示する位置について具体的に説明するための図である。
【図２９】図２９は、ユーザによって手書きで記載される文字列の言語が日本語である場合の図２７に対応する図である。
【図３０】図３０は、選択文字列の第３の表示例について具体的に説明するための図である。
【図３１】図３１は、ユーザによって手書きで記載される文字列の言語が日本語である場合の図３０に対応する図である。
【図３２】図３２は、選択文字列が表示される領域について説明するための図である。
【図３３】図３３は、選択文字列が表示される領域について説明するための図である。
【図３４】図３４は、選択文字列が表示される領域について説明するための図である。
【図３５】図３５は、ユーザによって手書きで記載される文字列の言語が日本語である場合の図３２に対応する図である。
【図３６】図３６は、ユーザによって手書きで記載される文字列の言語が日本語である場合の図３３に対応する図である。
【発明を実施するための形態】
【０００７】
以下、実施の形態について図面を参照して説明する。
【０００８】
図１は、一実施形態に係る電子機器の外観の一例を示す斜視図である。この電子機器は、例えば、ペンまたは指によって手書き入力可能なペン・ベースの携帯型電子機器である。この電子機器は、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、スマートフォン、ＰＤＡ等として実現され得る。以下では、この電子機器がタブレットコンピュータ１０として実現されている場合を説明する。タブレットコンピュータ１０は、タブレットまたはスレートコンピュータとも称される携帯型電子機器であり、本体１１は、薄い箱型の筐体を有している。
【０００９】
タッチスクリーンディスプレイ１７は、本体１１の上面に重ね合わせるように取り付けられている。タッチスクリーンディスプレイ１７には、フラットパネルディスプレイと、フラットパネルディスプレイの画面上のペンまたは指の接触位置を検出するように構成されたセンサとが組み込まれている。フラットパネルディスプレイは、例えば、液晶表示装置（ＬＣＤ）であってもよい。センサとしては、例えば、静電容量方式のタッチパネル、電磁誘導方式のデジタイザ等を使用することができる。以下では、デジタイザ及びタッチパネルの２種類のセンサの双方がタッチスクリーンディスプレイ１７に組み込まれている場合を説明する。このため、タッチスクリーンディスプレイ１７は、指を使用した画面に対するタッチ操作のみならず、ペン１００を使用した画面に対するタッチ操作も検出することができる。
【００１０】
ペン１００は、例えばデジタイザペン（電磁誘導ペン）であってもよい。ユーザは、ペン１００を使用してタッチスクリーンディスプレイ１７上で手書き入力操作を行うことができる（ペン入力モード）。ペン入力モードにおいては、画面上のペン１００の動きの軌跡、つまり、手書き入力操作によって手書きされるストロークが求められ、これによって手書きにより入力された複数のストロークが画面上に表示される。ペン１００が画面に接触されている間のペン１００の動きの軌跡が１つのストロークに相当する。複数のストロークが文字、記号等を構成する。手書きされた文字、手書きされた図形、手書きされた表等に対応する多数のストロークの集合が手書き文書を構成する。
【００１１】
本実施形態では、この手書き文書は、イメージデータではなく、各ストロークの軌跡の座標列とストローク間の順序関係とを示す時系列情報（手書き文書データ）として記憶媒体に保存される。ただし、この手書き文書は、イメージデータに基づいて生成されても良い。時系列情報の詳細は図４を参照して後述するが、時系列情報は、複数のストロークが手書きされた順を示し、かつ複数のストロークにそれぞれ対応する複数のストロークデータを含む。換言すれば、時系列情報は、複数のストロークにそれぞれ対応する時系列のストロークデータの集合を意味する。各ストロークデータは、ある１つのストロークに対応し、このストロークの軌跡上の点それぞれに対応する座標データ系列（時系列座標）を含む。これらストロークデータの並びの順序は、ストロークそれぞれが手書きされた順序に相当する。
【００１２】
タブレットコンピュータ１０は、記憶媒体から既存の任意の時系列情報を読み出し、この時系列情報に対応する手書き文書、つまり、この時系列情報によって示される複数のストロークを画面上に表示することができる。時系列情報によって示される複数のストロークも、手書きによって入力される複数のストロークである。
【００１３】
更に、本実施形態に係るタブレットコンピュータ１０は、ペン１００を使用せずに、指で手書き入力操作を行うためのタッチ入力モードも有している。タッチ入力モードが有効な場合、ユーザは、指を使用してタッチスクリーンディスプレイ１７上で手書き入力操作を行うことができる。タッチ入力モードにおいては、画面上の指の動きの軌跡、つまり、手書き入力操作によって手書きされるストロークが求められ、これによって手書きにより入力された複数のストロークが画面上に表示される。
【００１４】
タブレットコンピュータ１０は、編集機能を有している。この編集機能は、「消しゴム」ツール、範囲選択ツール、及び他の各種ツール等を用いたユーザによる編集操作に応じて、範囲選択ツールによって選択される表示中の手書き文書内の任意の手書き部分（手書き文字、手書きマーク、手書き図形及び手書き表等）を削除または移動することができる。また、範囲選択ツールによって選択される手書き文書内の任意の手書き部分を、手書き文書を検索するための検索キーとして指定することもできる。また、範囲選択ツールによって選択される手書き文書内の任意の手書き部分に対して、手書き文字認識／手書き図形認識／手書き表認識のような認識処理を実行することもできる。
【００１５】
本実施形態では、手書き文書は、１つまたは複数のページとして管理され得る。この場合、時系列情報（手書き文書データ）を１つの画面に収まる面積単位で区切ることによって、１つの画面に収まる時系列情報のまとまりを１つのページとして記録してもよい。あるいは、ページのサイズを可変できるようにしてもよい。この場合、ページのサイズは１つの画面のサイズよりも大きい面積に広げることができるので、画面のサイズよりも大きな面積の手書き文書を１つのページとして扱うことができる。１つのページ全体をディスプレイに同時に表示できない場合は、そのページを縮小して表示するようにしてもよいし、縦横スクロールによってページ内の表示対象部分を移動するようにしてもよい。
【００１６】
図２は、タブレットコンピュータ１０と外部装置との連係動作の一例を示している。タブレットコンピュータ１０は、無線ＬＡＮ等の無線通信デバイスを備えており、パーソナルコンピュータ１との無線通信を実行することができる。更に、タブレットコンピュータ１０は、無線通信デバイスを使用してインターネット３上のサーバ２との通信を実行することもできる。サーバ２は、オンラインストレージサービス、他の各種クラウドコンピューティングサービスを実行するサーバであってもよい。
【００１７】
パーソナルコンピュータ１は、ハードディスクドライブ（ＨＤＤ：Hard Disk Drive）のようなストレージデバイスを備えている。タブレットコンピュータ１０は、時系列情報（手書き文書データ）をパーソナルコンピュータ１に送信して、パーソナルコンピュータ１のＨＤＤに記録することができる（アップロード）。タブレットコンピュータ１０とパーソナルコンピュータ１との間のセキュアな通信を確保するために、通信開始時には、パーソナルコンピュータ１がタブレットコンピュータ１０を認証するようにしてもよい。この場合、タブレットコンピュータ１０の画面上にユーザに対してＩＤまたはパスワードの入力を促すダイアログを表示してもよいし、タブレットコンピュータ１０のＩＤ等を自動的にタブレットコンピュータ１０からパーソナルコンピュータ１に送信してもよい。
【００１８】
これにより、タブレットコンピュータ１０内のストレージの容量が少ない場合でも、タブレットコンピュータ１０が多数の時系列情報あるいは大容量の時系列情報を扱うことが可能となる。
【００１９】
更に、タブレットコンピュータ１０は、パーソナルコンピュータ１のＨＤＤに記録されている任意の１以上の時系列情報を読み出し（ダウンロード）、その読み出した時系列情報によって示されるストロークをタブレットコンピュータ１０のディスプレイ１７の画面に表示することができる。この場合、複数の時系列情報それぞれのページを縮小することによって得られるサムネイルの一覧をディスプレイ１７の画面上に表示してもよいし、これらサムネイルから選ばれた１ページをディスプレイ１７の画面上に通常サイズで表示してもよい。
【００２０】
更に、タブレットコンピュータ１０が通信する先はパーソナルコンピュータ１ではなく、上述したように、ストレージサービス等を提供するクラウド上のサーバ２であってもよい。タブレットコンピュータ１０は、時系列情報（手書き文書データ）をインターネットを介してサーバ２に送信して、サーバ２のストレージデバイス２Ａに記録することができる（アップロード）。更に、タブレットコンピュータ１０は、サーバ２のストレージデバイス２Ａに記録されている任意の時系列情報を読み出して（ダウンロード）、その時系列情報によって示されるストロークそれぞれの軌跡をタブレットコンピュータ１０のディスプレイ１７の画面に表示することができる。
【００２１】
このように、本実施形態では、時系列情報が保存される記憶媒体は、タブレットコンピュータ１０内のストレージデバイス、パーソナルコンピュータ１内のストレージデバイス、サーバ２のストレージデバイスのいずれであってもよい。
【００２２】
次に、図３及び図４を参照して、ユーザによって手書きされたストローク（文字、図形及び表等）と時系列情報との関係について説明する。図３は、ペン１００等を使用してタッチスクリーンディスプレイ１７上に手書きされる手書き文書（手書き文字列）の一例を示している。
【００２３】
手書き文書では、一旦手書きによって入力される文字や図形などの上に、更に別の文字や図形などが手書きによって入力されるというケースが多い。図３においては、「Ａ」、「Ｂ」及び「Ｃ」の手書き文字が、この順番で手書きによって入力され、この後に、手書きの矢印が、手書き文字「Ａ」のすぐ近くに手書きによって入力されている。
【００２４】
手書き文字「Ａ」は、ペン１００等を使用して手書きされた２つのストローク（「∧」形状の軌跡、「−」形状の軌跡）によって、つまり、２つの軌跡によって表現される。最初に手書きされる「∧」形状のペン１００の軌跡は例えば等時間間隔でリアルタイムにサンプリングされ、これによって「∧」形状のストロークの時系列座標ＳＤ１１、ＳＤ１２、…、ＳＤ１ｎが得られる。同様に、次に手書きされる「−」形状のペン１００の軌跡も等時間間隔でリアルタイムにサンプリングされ、これによって「−」形状のストロークの時系列座標ＳＤ２１、ＳＤ２２、…、ＳＤ２ｎが得られる。
【００２５】
手書き文字「Ｂ」は、ペン１００等を使用して手書きされた２つのストローク、つまり、２つの軌跡によって表現される。手書き文字「Ｃ」は、ペン１００等を使用して手書きされた１つのストローク、つまり、１つの軌跡によって表現される。手書きの「矢印」は、ペン１００等を使用して手書きされた２つのストローク、つまり、２つの軌跡によって表現される。
【００２６】
図４は、図３の手書き文書に対応する時系列情報２００を示している。時系列情報は、複数のストロークデータＳＤ１、ＳＤ２、…、ＳＤ７を含む。時系列情報２００内においては、これらストロークデータＳＤ１、ＳＤ２、…、ＳＤは、これらのストロークが手書きされた順に時系列に並べられている。
【００２７】
時系列情報２００において、先頭の２つのストロークデータＳＤ１、ＳＤ２は、手書き文字「Ａ」の２つのストロークをそれぞれ示している。３番目と４番目のストロークデータＳＤ３、ＳＤ４は、手書き文字「Ｂ」を構成する２つのストロークをそれぞれ示している。５番目のストロークデータＳＤ５は、手書き文字「Ｃ」を構成する１つのストロークを示している。６番目と７番目のストロークデータＳＤ６、ＳＤ７は、手書き「矢印」を構成する２つのストロークをそれぞれ示している。
【００２８】
各ストロークデータは、１つのストロークに対応する座標データ系列（時系列座標）、つまり、１つのストローク軌跡上の複数のサンプリング点それぞれに対応する複数の座標を含む。各ストロークデータにおいては、複数のサンプリング点の座標はストロークが書かれた順（サンプリングされた順）に時系列に並べられている。例えば、手書き文字「Ａ」に関しては、ストロークデータＳＤ１は、手書き文字「Ａ」の「∧」形状のストロークの軌跡上の点それぞれに対応する座標データ系列（時系列座標）、つまり、ｎ個の座標データＳＤ１１、ＳＤ１２、…、ＳＤ１ｎを含む。ストロークデータＳＤ２は、手書き文字「Ａ」の「−」形状のストロークの軌跡上の点それぞれに対応する座標データ系列、つまり、ｎ個の座標データＳＤ２１、ＳＤ２２、…、ＳＤ２ｎを含む。なお、座標データの数はストロークデータ毎に異なっていてもよい。ストロークを等時間間隔でサンプリングすると、ストロークの長さが異なっているので、サンプリング点の数も異なる。
【００２９】
各座標データは、対応する軌跡内のある１点のＸ座標及びＹ座標を示す。例えば、座標データＳＤ１１は、「∧」形状のストロークの始点のＸ座標（Ｘ１１）及びＹ座標（Ｙ１１）を示す。ＳＤｎ１は、「∧」形状のストロークの終点のＸ座標（Ｘ１ｎ）及びＹ座標（Ｙ１ｎ）を示す。
【００３０】
各座標データは、その座標に対応する点が手書きされた時点（サンプリングタイミング）に対応するタイムスタンプ情報Ｔを含んでいてもよい。手書きされた時点は、絶対時間（例えば、年月日時分秒）またはある時点を基準とした相対時間のいずれであってもよい。例えば、各ストロークデータに、ストロークが書き始められた絶対時間（例えば、年月日時分秒）をタイムスタンプ情報として付加し、更に、ストロークデータ内の各座標データに、絶対時間との差分を示す相対時間をタイムスタンプ情報Ｔとして付加してもよい。
【００３１】
このように、各座標データにタイムスタンプ情報Ｔが追加された時系列情報を使用することにより、ストローク間の時間的関係をより精度よく表すことができる。図４には示していないが、各座標データには、筆圧を示す情報（Ｚ）を追加してもよい。
【００３２】
図４で説明したような構造を有する時系列情報２００は、個々のストロークの筆跡だけでなく、ストローク間の時間的関係も表すことができる。したがって、この時系列情報２００を使用することにより、図３に示すようにたとえ手書き「矢印」の先端部が手書き文字「Ａ」上に重ねてまたは手書き文字「Ａ」に近接して書かれたとしても、手書き文字「Ａ」と手書き「矢印」の先端部とを異なる文字または図形として扱うことが可能となる。
【００３３】
更に、本実施形態では、上述したように、手書き文書データは、イメージまたは文字認識結果ではなく、時系列のストロークデータの集合から構成される時系列情報２００として記憶されるので、手書き文字の言語に依存せずに手書き文字を扱うことができる。したがって、本実施形態における時系列情報２００の構造は、使用言語の異なる世界中の様々な国で共通に使用できる。
【００３４】
図５は、タブレットコンピュータ１０のシステム構成を示す図である。
【００３５】
タブレットコンピュータ１０は、ＣＰＵ１０１、システムコントローラ１０２、主メモリ１０３、グラフィクスコントローラ１０４、ＢＩＯＳ−ＲＯＭ１０５、不揮発性メモリ１０６、無線通信デバイス１０７及びエンベデッドコントローラ（ＥＣ）１０８等を備える。
【００３６】
ＣＰＵ１０１は、タブレットコンピュータ１０内の各種モジュールの動作を制御するプロセッサである。ＣＰＵ１０１は、ストレージデバイスである不揮発性メモリ１０６から主メモリ１０３にロードされる各種ソフトウェアを実行する。これらソフトウェアには、オペレーティングシステム（ＯＳ）２０１及び各種アプリケーションプログラムが含まれている。各種アプリケーションプログラムには、手書きノートアプリケーションプログラム２０２が含まれている。以下では、手書き文書データを手書きノートとも称する。この手書きノートアプリケーションプログラム２０２は、上述の手書き文書データを作成及び表示する機能、手書き文書データを編集する機能、所望の手書き部分を含む手書き文書データや、ある手書き文書データ内の所望の手書き部分を検索するための手書き文書検索機能を有している。
【００３７】
ＣＰＵ１０１は、ＢＩＯＳ−ＲＯＭ１０５に格納された基本入出力システム（ＢＩＯＳ）も実行する。ＢＩＯＳは、ハードウェア制御のためのプログラムである。
【００３８】
システムコントローラ１０２は、ＣＰＵ１０１のローカルバスと各種コンポーネント・モジュールとの間を接続するデバイスである。システムコントローラ１０２には、主メモリ１０３をアクセス制御するメモリコントローラも内蔵されている。システムコントローラ１０２は、ＰＣＩ  ＥＸＰＲＥＳＳ規格のシリアルバス等を介してグラフィクスコントローラ１０４との通信を実行する機能も有している。
【００３９】
グラフィクスコントローラ１０４は、タブレットコンピュータ１０のディスプレイモニタとして使用されるＬＣＤ１７Ａを制御する表示コントローラである。グラフィクスコントローラ１０４によって生成される表示信号はＬＣＤ１７Ａに送られる。ＬＣＤ１７Ａは、表示信号に基づいて画面イメージを表示する。タッチパネル１７Ｂ、ＬＣＤ１７Ａ及びデジタイザ１７Ｃは互いに重ね合わされている。タッチパネル１７Ｂは、ＬＣＤ１７Ａの画面上で入力を行うための静電容量式のポインティングデバイスである。指が接触される画面上の接触位置及び当該接触位置の動き等は、タッチパネル１７Ｂによって検出される。デジタイザ１７Ｃは、ＬＣＤ１７Ａの画面上で入力を行うための電磁誘導式のポインティングデバイスである。ペン（デジタイザペン）１００が接触される画面上の接触位置及び当該接触位置の動き等は、デジタイザ１７Ｃによって検出される。
【００４０】
無線通信デバイス１０７は、無線ＬＡＮまたは３Ｇ移動通信等の無線通信を実行するように構成されたデバイスである。ＥＣ１０８は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。ＥＣ１０８は、ユーザによるパワーボタンの操作に応じて本タブレットコンピュータ１０を電源オンまたは電源オフする機能を有している。
【００４１】
次に、手書きノートアプリケーションプログラム２０２によってユーザに提示される幾つかの代表的な画面の例を説明する。
【００４２】
図６は、手書きノートアプリケーションプログラム２０２のホーム画面の一例を示す。ホーム画面は複数の手書き文書データを扱うための基本画面であり、ノートの管理や、アプリケーション全体の設定を行うことができる。
【００４３】
ホーム画面は、デスクトップ画面領域７０と引き出し画面領域７１とを含む。デスクトップ画面領域７０は、作業中の複数の手書きノートに対応する複数のノートアイコン８０１〜８０５を表示するテンポラリ領域である。ノートアイコン８０１〜８０５の各々は、対応する手書きノート内のあるページのサムネイルを表示する。デスクトップ画面領域７０は、更に、ペンアイコン７７１、カレンダーアイコン７７２、スクラップノート（ギャラリー）アイコン７７３及びタグ（ラベル）アイコン７７４を表示する。
【００４４】
ペンアイコン７７１は、表示画面をホーム画面からページ編集画面に切り替えるためのグラフィカルユーザインタフェース（ＧＵＩ）である。カレンダーアイコン７７２は、現在の日付を示すアイコンである。スクラップノートアイコン７７３は、他のアプリケーションプログラムからまたは外部ファイルから取り込んだデータ（スクラップデータまたはギャラリーデータ）を閲覧するためのＧＵＩである。タグアイコン７７４は、任意の手書きノート内の任意のページにラベル（タグ）を貼り付けるためのＧＵＩである。
【００４５】
引き出し画面領域７１は、作成済みの全ての手書きノートを格納するためのストレージ領域を閲覧するための表示領域である。引き出し画面領域７１は、全ての手書きノート内の幾つかの手書きノートに対応するノートアイコン８０Ａ、８０Ｂ及び８０Ｃを表示する。ノートアイコン８０Ａ、８０Ｂ及び８０Ｃの各々は、対応する手書きノート内のあるページのサムネイルを表示する。手書きノートアプリケーションプログラム２０２は、ペン１００または指を使用してユーザによって行われる引き出し画面領域７１上のあるジェスチャ（例えば、スワイプジェスチャ等）を検出することができる。このジェスチャ（例えば、スワイプジェスチャ等）の検出に応答して、手書きノートアプリケーションプログラム２０２は、引き出し画面領域７１上の画面イメージを左方向または右方向にスクロールする。これにより、引き出し画面領域７１に任意の手書きノートそれぞれに対応するノートアイコンを表示することができる。
【００４６】
手書きノートアプリケーションプログラム２０２は、ペン１００または指を使用してユーザによって行われる引き出し画面領域７１のノートアイコン上の他のジェスチャ（例えば、タップジェスチャ等）を検出することができる。引き出し画面領域７１上のあるノートアイコン上のジェスチャ（例えば、タップジェスチャ等）の検出に応答して、手書きノートアプリケーションプログラム２０２は、このノートアイコンをデスクトップ画面領域７０の中央部に移動する。そして、手書きノートアプリケーションプログラム２０２は、このノートアイコンに対応する手書きノートを選択し、デスクトップ画面の代わりに図７に示すノートプレビュー画面を表示する。図７のノートプレビュー画面は、選択された手書きノート内の任意のページを閲覧可能な画面である。
【００４７】
更に、手書きノートアプリケーションプログラム２０２は、ペン１００または指を使用してユーザによって行われるデスクトップ画面領域７０上のジェスチャ（例えば、タップジェスチャ等）も検出することができる。デスクトップ画面領域７０の中央部に位置するノートアイコン上のジェスチャ（例えば、タップジェスチャ等）の検出に応答して、手書きノートアプリケーションプログラム２０２は、中央部に位置するノートアイコンに対応する手書きノートを選択し、そして、デスクトップ画面の代わりに、図７に示すノートプレビュー画面を表示する。
【００４８】
更に、ホーム画面は、メニューを表示することができる。このメニューは、画面の下部、例えば引き出し画面領域７１に表示されるノート一覧ボタン８１Ａ、ノート作成ボタン８１Ｂ、ノート削除ボタン８１Ｃ、検索ボタン８１Ｄ及び設定ボタン８１Ｅを備える。ノート一覧ボタン８１Ａは、手書きノートの一覧を表示するためのボタンである。ノート作成ボタン８１Ｂは、新しい手書きノートを作成（追加）するためのボタンである。ノート削除ボタン８１Ｃは、手書きノートを削除するためのボタンである。検索ボタン８１Ｄは、検索画面（検索ダイアログ）を開くためのボタンである。設定ボタン８１Ｅは、アプリケーションの設定画面を開くためのボタンである。
【００４９】
なお、図示しないが、引き出し画面領域７１の下にも、戻るボタン、ホームボタン、リーセントアプリケーションボタンが表示される。
【００５０】
図８は、設定ボタン８１Ｅがペン１００または指でタップされた際に開かれる設定画面の一例を示す。
【００５１】
この設定画面は、様々な設定項目を表示する。これら設定項目には、「バックアップと復元」、「入力モード（ペン、またはタッチ入力モード）」、「ライセンス情報」及び「ヘルプ」等が含まれる。
【００５２】
ホーム画面においてノート作成ボタン８１Ｂがペン１００または指でタップされるとノート作成画面が表示される。ここで、タイトル欄にノートの名前を手書き入力する。なお、ノートの表紙と用紙とを選択することができる。作成ボタンを押すと、新規なノートが作成され、当該作成されたノートは引き出し画面領域７１に置かれる。
【００５３】
図７は、上述のノートプレビュー画面の一例を示す。
【００５４】
ノートプレビュー画面は、選択された手書きノート内の任意のページを閲覧可能な画面である。ここでは、ホーム画面のデスクトップ画面領域７０のノートアイコン８０１に対応する手書きノートが選択された場合を説明する。この場合、手書きノートアプリケーションプログラム２０２は、この手書きノートに含まれる複数のページ９０１、９０２、９０３、９０４及び９０５を、これらページ９０１、９０２、９０３、９０４及び９０５それぞれの少なくとも一部分が視認可能で、かつ、これらページ９０１、９０２、９０３、９０４及び９０５が重なった形態で表示する。
【００５５】
ノートプレビュー画面は、更に、上述のペンアイコン７１１、カレンダーアイコン７７２及びスクラップノートアイコン７７３を表示する。
【００５６】
ノートプレビュー画面は、更に、メニューを画面下部に表示することができる。このメニューは、ホームボタン８２Ａ、ページ一覧ボタン８２Ｂ、ページ追加ボタン８２Ｃ、ページ編集ボタン８２Ｄ、ページ削除ボタン８２Ｅ、ラベルボタン８２Ｆ、検索ボタン８２Ｇ及びプロパティ表示ボタン８２Ｈを備える。ホームボタン８２Ａは、ノートのプレビューを閉じてホーム画面を表示するためのボタンである。ページ一覧ボタン８２Ｂは、現在選択されている手書きノート内のページの一覧を表示するためのボタンである。ページ追加ボタン８２Ｃは、新しいページを作成（追加）するためのボタンである。編集ボタン８２Ｄは、ページ編集画面を表示するためのボタンである。ページ削除ボタン８２Ｅは、ページを削除するためのボタンである。ラベルボタン８２Ｆは、使用可能なラベルの種類の一覧を表示するためのボタンである。検索ボタン８２Ｇは、検索画面を表示するためのボタンである。プロパティ表示ボタン８２Ｈは、このノートのプロパティを表示するためのボタンである。
【００５７】
手書きノートアプリケーションプログラム２０２は、ユーザによって行われるノートプレビュー画面上の様々なジェスチャを検出することができる。例えば、あるジェスチャの検出に応答して、手書きノートアプリケーションプログラム２０２は、一番上に表示されるべきページを任意のページに変更する（ページ送り、ページ戻し）。また、一番上のページ上で行われるあるジェスチャ（例えば、タップジェスチャ）の検出に応答して、またはペンアイコン７７１上で行われるジェスチャ（例えば、タップジェスチャ）の検出に応答して、あるいは編集ボタン８２Ｄ上で行われるあるジェスチャ（例えば、タップジェスチャ）の検出に応答して、手書きノートアプリケーションプログラム２０２は、一番上のページを選択し、そしてノートプレビュー画面の代わりに、図９に示すページ編集画面を表示する。
【００５８】
図９のページ編集画面は、手書きノート内のページ（手書きページ）の新規作成、及び既存のページの閲覧及び編集が可能な画面である。図７のノートプレビュー画面上のページ９０１が選択された場合には、図９に示すように、ページ編集画面は、ページ９０１の内容を表示する。
【００５９】
このページ編集画面において、破線で囲まれた矩形の領域５００は、手書き可能な手書き入力領域である。手書き入力領域５００においては、デジタイザ１７Ｃからの入力イベントは手書きストロークの表示（描画）のために使用され、タップ等のジェスチャを示すイベントとしては使用されない。一方、ページ編集画面における手書き入力領域５００以外の領域においては、デジタイザ１７Ｃからの入力イベントはタップ等のジェスチャを示すイベントとしても使用され得る。
【００６０】
タッチパネル１７Ｂからの入力イベントは、手書きストロークの表示（描画）には使用されず、タップ及びスワイプ等のジェスチャを示すイベントとして使用される。
【００６１】
ページ編集画面は、更に、ユーザによって予め登録された３種類のペン５０１〜５０３と、範囲選択ペン５０４、消しゴムペン５０５とを含むクイックセレクトメニューを手書き入力領域５００外の画面上部に表示する。ここでは、黒ペン５０１、赤ペン５０２及びマーカー５０３がユーザによって予め登録されている場合が説明されている。ユーザは、ペン１００または指でクイックセレクトメニュー内のあるペン（ボタン）をタップすることにより、使用するペンの種類を切り替えることができる。例えば、黒ペン５０１がユーザによるペン１００または指を使用したタップジェスチャによって選択された状態で、ペン１００を用いた手書き入力操作がページ編集画面上で行われると、手書きノートアプリケーションプログラム２０２は、ペン１００の動きに合わせて黒色のストローク（軌跡）をページ編集画面上に表示する。
【００６２】
クイックセレクトメニュー内の上述の３種類のペンは、ペン１００のサイドボタン（図示せず）の操作によっても切り替えることができる。クイックセレクトメニュー内の上述の３種類のペンの各々には、よく使うペンの色やペンの太さの組み合わせを設定することができる。
【００６３】
ページ編集画面は、更に、メニューボタン５１１、ページ戻し（ノートプレビュー画面に戻る）ボタン５１２及び新規ページ追加ボタン５１３を、手書き入力領域５００外の画面下部に表示する。メニューボタン５１１は、メニューを表示するためのボタンである。
【００６４】
このメニューは、例えば、このページをゴミ箱に入れる、コピーやカットしたページの一部を貼り付ける、検索画面を開く、エクスポートサブメニューを表示する、インポートサブメニューを表示する、ページをテキストに変換してメールを送る、ペンケースを表示する等のボタンを表示してもよい。エクスポートサブメニューは、例えば、ページ編集画面上に表示されている手書きページを認識して電子文書ファイル、プレゼンテーションファイル、画像ファイル等に変換する機能、あるいはページを画像ファイルに変換して他のアプリケーションと共有する機能をユーザに選択させる。インポートサブメニューは、例えば、メモギャラリーからメモをインポートする機能、あるいはギャラリーから画像をインポートする機能をユーザに選択させる。ペンケースは、クイックセレクトメニュー内の３種類のペンの各々の色（描画される線の色）及び太さ（描画される線の太さ）を変更可能なペン設定画面を呼び出すためのボタンである。
【００６５】
図１０は、検索画面（検索ダイアログ）の例を示す。図１０では、図７に示すノートプレビュー画面上で検索ボタン８２Ｇが選択され、当該ノートプレビュー画面上に検索画面（検索ダイアログ）が開かれた場合が説明されている。
【００６６】
検索画面は、検索キー入力領域５３０、筆跡検索ボタン５３１、テキスト検索ボタン５３２、デリートボタン５３３及び検索実行ボタン５３４を表示する。筆跡検索ボタン５３１は、筆跡検索を選択するためのボタンである。テキスト検索ボタン５３２は、テキスト検索を選択するためのボタンである。テキスト検索ボタン５３２は、テキスト検索を選択するためのボタンである。検索実行ボタン５３４は、検索処理の実行を要求するためのボタンである。
【００６７】
筆跡検索においては、検索キー入力領域５３０は、検索キーとすべき文字列、図形及び表等を手書きするための入力領域として使用される。図１０においては、検索キー入力領域５３０に手書き文字列「Ｄｅｔｅｒｍｉｎｅ」が検索キーとして入力されている。ユーザは、手書き文字列に限らず、手書き図形及び手書き表等を検索キー入力領域５３０にペン１００で手書きすることができる。検索キー入力領域５３０に手書き文字列「Ｄｅｔｅｒｍｉｎｅ」が検索キーとして入力された状態で検索実行ボタン４３４がユーザによって選択されると、手書き文字列「Ｄｅｔｅｒｍｉｎｅ」を構成するストローク集合（クエリーストローク集合）を用いて、このクエリーストローク集合に対応するストローク集合を含む手書き文書（ノート）を検索するための筆跡検索が実行される。筆跡検索では、ストローク間のマッチングによって、クエリーストローク集合に類似するストローク集合が検索される。クエリーストローク集合とある別のストローク集合との間の類似度の算出においては、ＤＰ（Dynamic Programming）マッチングを使用してもよい。
【００６８】
テキスト検索においては、例えばソフトウェアキーボードが画面上に表示される。ユーザは、ソフトウェアキーボードを操作することによって任意のテキスト（文字列）を検索キーとして検索キー入力領域５３０に入力することができる。検索キー入力領域５３０にテキストが検索キーとして入力された状態で検索実行ボタン５３４がユーザによって選択されると、このテキスト（クエリーテキスト）を表すストローク集合を含む手書きノートを検索するためのテキスト検索が実行される。
【００６９】
筆跡検索／テキスト検索は、全ての手書き文書を対象に実行することもできるし、選択された手書き文書のみを対象に実行することもできる。筆跡検索／テキスト検索が実行されると、検索結果画面が表示される。検索結果画面においては、クエリーストローク集合（またはクエリーテキスト）に対応するストローク集合を含む手書き文書（ページ）の一覧が表示される。なお、ヒットワード（クエリーストローク集合またはクエリーテキストに対応するストローク集合）は、強調表示される。
【００７０】
次に、図１１を参照して、手書きノートアプリケーションプログラム２０２の機能構成について説明する。
【００７１】
手書きノートアプリケーションプログラム２０２は、手書き文書データを扱うことが可能なＷＹＳＩＷＹＧアプリケーションである。この手書きノートアプリケーションプログラム２０２は、例えば、表示処理部３０１、時系列情報生成部３０２、編集処理部３０３、ページ保存処理部３０４、ページ取得処理部３０５、特徴量登録処理部３０６及び作業メモリ４０１等を備える。表示処理部３０１は、手書きデータ入力部３０１Ａ、筆跡描画部３０１Ｂ及び候補表示処理部３０１Ｃを含む。
【００７２】
上述したタッチパネル１７Ｂは、「タッチ（接触）」、「移動（スライド）」及び「リリース」等のイベントの発生を検出するように構成されている。「タッチ（接触）」は、画面上のオブジェクト（指）が接触したことを示すイベントである。「移動（スライド）」は、画面上にオブジェクト（指）が接触されている間に接触位置が移動されたことを示すイベントである。「リリース」は、画面からオブジェクト（指）が離されたことを示すイベントである。
【００７３】
上述したデジタイザ１７Ｃも、「タッチ（接触）」、「移動（スライド）」及び「リリース」等のイベントの発生を検出するように構成されている。「タッチ（接触）」は、画面上にオブジェクト（ペン１００）が接触したことを示すイベントである。「移動（スライド）」は、画面上にオブジェクト（ペン１００）が接触されている間に接触位置が移動されたことを示すイベントである。「リリース」は、画面からオブジェクト（ペン１００）が離されたことを示すイベントである。
【００７４】
手書きノートアプリケーションプログラム２０２は、手書きページデータの作成、閲覧及び編集を行うためのページ編集画面をタッチスクリーンディスプレイ１７上に表示する。
【００７５】
表示処理部３０１及び時系列情報生成部３０２は、デジタイザ１７Ｃによって発生される「タッチ（接触）」、「移動（スライド）」または「リリース」のイベントを受信し、これによって手書き入力操作を検出する。「タッチ（接触）」イベントには、接触位置の座標が含まれている。「移動（スライド）」イベントには、移動先の接触位置の座標が含まれている。したがって、表示処理部３０１及び時系列情報生成部３０２は、デジタイザ１７Ｃから接触位置の動きの軌跡に対応する座標列を受信することができる。
【００７６】
表示処理部３０１は、デジタイザ１７Ｃを用いて検出される画面上のオブジェクト（ペン１００）の動きに応じて手書きストロークを画面上に表示する。この表示処理部３０１により、画面にペン１００が接触している間のペン１００の軌跡、つまり、各ストロークの軌跡がページ編集画面上に表示される。
【００７７】
時系列情報生成部３０２は、デジタイザ１７Ｃから出力される上述の座標列を受信し、この座標列に基づいて、図４で詳述したような構造を有する時系列情報（座標データ系列）を含む手書きデータを生成する。時系列情報生成部３０２は、生成された手書きデータを作業メモリ４０１に一時保存する。
【００７８】
編集処理部３０３は、現在表示中の手書きページを編集するための処理を実行する。すなわち、編集処理部３０３は、タッチスクリーンディスプレイ１７上でユーザによって行われる編集操作及び手書き入力操作に応じて、現在表示中の手書きページに新たなストローク（新たな手書き文字及び新たな手書きマーク等）を追加する処理、表示されている複数のストローク内の１以上のストロークを削除または移動する処理等を含む編集処理を実行する。更に、編集処理部３０３は、編集処理の結果を表示中の時系列情報に反映するために作業メモリ４０１内の時系列情報を更新する。
【００７９】
ページ保存処理部３０６は、作成中の手書きページ上の複数の手書きストロークに対応する複数のストロークデータを含む手書きページデータを記憶媒体４０２に保存する。記憶媒体４０２は、例えばタブレットコンピュータ１０内のストレージデバイスであってもよいし、サーバコンピュータ２のストレージデバイスであってもよい。
【００８０】
ページ取得処理部３０７は、記憶媒体４０２から任意の手書きページデータを取得する。この取得された手書きページデータは、表示処理部３０１に送られる。表示処理部３０１は、手書きページデータに含まれる複数のストロークデータに対応する複数のストロークを画面上に表示する。
【００８１】
特徴量登録処理部３０６は、ページ保存処理部３０６によって手書き文書（データ）が記憶媒体４０２に保存される際に、当該手書き文書を構成するストローク集合に対して文字認識処理を実行することによって、当該手書き文書を構成する全てのストロークを文字列（単語）に変換する。特徴量登録処理部３０６は、変換された文字列をキーワードとし、当該キーワード、手書き文書において当該キーワードに変換された（つまり、文字認識処理によって当該キーワードとして文字認識された）ストローク集合における各ストロークを時系列順に１ストロークずつ積算してなる各ストローク集合に対する文字認識結果及び当該ストローク集合におけるストローク数を対応づけてサジェスト特徴テーブルに登録する。更に、特徴量登録処理部３０６は、変換された文字列（キーワード）及び当該文字列に変換されたストローク集合に対応するストロークデータを対応づけてサジェストキーワードテーブルに登録する。なお、サジェスト特徴テーブル及びサジェストキーワードテーブルは、例えば記憶媒体４０２に保存されているものとする。
【００８２】
次に、図１１に示す表示処理部３０１の詳細について説明する。
【００８３】
前述したように、タッチスクリーンディスプレイ１７は、画面に対するタッチ操作をタッチパネル１７Ｂまたはデジタイザ１７Ｃで検出する。手書きデータ入力部３０１Ａは、タッチパネル１７Ｂまたはデジタイザ１７Ｃから出力される検出信号を入力するモジュールである。検出信号には、タッチ位置の座標情報（Ｘ，Ｙ）が含まれている。このような検出信号を時系列順に入力することによって、手書きデータ入力部３０１Ａは、手書きで記載されるストロークに対応するストロークデータを入力する。手書きデータ入力部３０１Ａによって入力されたストロークデータ（検出信号）は、筆跡描画部３０１Ｂに供給される。
【００８４】
筆跡描画部３０１Ｂは、手書き入力の軌跡（筆跡）を描画してタッチスクリーンディスプレイ１７のＬＣＤ１７Ａに表示するモジュールである。筆跡描画部３０１Ｂは、手書きデータ入力部３０１Ａからのストロークデータ（検出信号）に基づき、手書き入力の軌跡（筆跡）に対応する線分を描画する。
【００８５】
手書きデータ入力部３０１Ａによって入力されたストロークデータが上述したページ編集画面（上の手書き入力領域５００）において手書きされたストロークに対応するものである場合、当該ストロークデータは、候補表示処理部３０１Ｃにも供給される。このようにストロークデータが手書きデータ入力部３０１Ａによって入力される場合、候補表示処理部３０１Ｃは、当該手書きデータ入力部３０１Ａから供給されたストロークデータが入力された時点で入力されているストロークデータ（つまり、当該入力されたストロークデータ及び既に入力されているストロークデータ）に基づいて、ユーザが手書き入力しようとする文字列（つまり、ユーザが意図する文字列）の候補をページ編集画面上の候補表示領域（第１の領域）に表示する。具体的には、候補表示処理部３０１Ｃは、１以上のストローク（第１ストローク）を用いて定まる１以上のストローク集合を、文字列（手書き入力）の候補として候補表示領域に表示する。この文字列の候補としてページ編集画面上の候補表示領域に表示されるストローク集合は、後述するように上記した記憶媒体４０２に保存されているサジェスト特徴テーブル及びサジェストキーワードテーブルを参照して特定される。
【００８６】
なお、以下の説明では、ページ編集画面上の候補表示領域に表示されるストローク集合を、便宜的に、単に文字列の候補と称する。
【００８７】
このようにページ編集画面の候補表示領域に文字列の候補が表示された場合、ユーザは、当該文字列の候補を手書き入力領域５００に表示（記載）する文字列として選択（指定）することができる。候補表示領域に表示された文字列の候補がユーザによって選択される場合（つまり、当該文字列の候補の入力がユーザにより指定される場合）、筆跡描画部３０１Ｂは、当該文字列（の候補）をページ編集画面上の手書き入力領域５００に表示する。このとき、筆跡描画部３０１Ｂは、上記したように候補表示処理部３０１Ｃによって文字列の候補として特定されたストローク集合（つまり、文字列の候補として候補表示領域に表示されたストローク集合）の座標（第１の座標）に基づいて、当該ストローク集合（文字列の候補）を手書き入力領域５００に表示する。なお、このストローク集合の座標は、既に入力されているストロークデータ（に含まれる時系列座標）を基準として相対的に定められる。以下の説明においては、文字列の候補（として候補表示領域に表示されたストローク集合）の座標を、便宜的に、相対座標と称する。
【００８８】
ここで、上記したように文字列の候補を手書き入力領域５００に表示する場合、手書きで記載されているストロークの画面上の位置（つまり、手書きデータ入力部３０１Ａによって入力されたストロークデータに含まれる時系列座標）によっては、手書き入力領域５００にスペース（余白）がないために、上記した相対座標に基づいて当該文字列（の候補）を手書き入力領域５００内に表示できない場合がある。この場合、筆跡描画部３０１Ｂは、相対座標が変換された座標（以下、変換座標と表記）を用いて、文字列を手書き入力領域５００表示する。なお、変換座標は、画面の表示領域（手書き入力領域５００）に応じて相対座標の少なくとも一部が変換されて生成されたものである。
【００８９】
なお、図１１においては図示されていないが、手書きノートアプリケーションプログラム２０２は、上記した以外に、上述した筆跡検索及びテキスト検索等を実行するための検索処理部等を備える。
【００９０】
図１２は、上記した記憶媒体４０２に保存されているサジェスト特徴テーブルのデータ構造の一例を示す。図１２に示すように、サジェスト特徴テーブルには、キーワード、文字認識結果及び画数が対応づけて保持（登録）されている。キーワードは、上述した文字列の候補に相当する文字列（テキスト）である。文字認識結果は、当該文字認識結果に対応づけられているキーワードとして文字認識されるストローク集合（手書き文字列）の一部のストローク集合に対する文字認識結果を示す。画数は、当該画数に対応づけられている文字認識結果が得られたストローク集合におけるストローク数を示す。
【００９１】
図１２に示す例では、サジェスト特徴テーブルには、例えばキーワード「ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）」、文字認識結果「ＨＤＤ（」及び画数「８」が対応づけて保持されている。これによれば、キーワード「ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）」として文字認識されるストローク集合がユーザによって手書きされる際に、８ストロークが手書きされた時点で文字認識処理を行った場合の文字認識結果が「ＨＤＤ（」であることが示されている。
【００９２】
また、サジェスト特徴テーブルには、例えばキーワード「ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）」、文字認識結果「ＨＤＤ（｜」及び画数「９」が対応づけて保持されている。これによれば、キーワード「ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）」として文字認識されるストローク集合がユーザによって手書きされる際に、９ストロークが手書きされた時点で文字認識処理を行った場合の文字認識結果が「ＨＤＤ（｜」であることが示されている。
【００９３】
このように、サジェスト特徴テーブルには、キーワード「ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）」を構成するストローク数（つまり、画数）が１加算される毎の文字認識結果が保持される。すなわち、サジェスト特徴テーブルには、上記したようにキーワードとして文字認識されたストローク集合における各ストロークを時系列順に１ストロークずつ積算してなる各ストローク集合に対する文字認識結果及び当該ストローク集合におけるストローク数が当該キーワードに対応づけて保持されている。
【００９４】
詳細については後述するが、上述したように文字列の候補を表示する際には、文字認識結果及び画数をキーとした検索が行われる。
【００９５】
図１３は、上記した記憶媒体４０２に保存されているサジェストキーワードテーブルのデータ構造の一例を示す。図１３に示すように、サジェストキーワードテーブルには、主キーとなるキーワード及びストロークデータが対応づけて保持（登録）されている。キーワードは、上述した文字列の候補に相当する文字列（テキスト）である。ストロークデータは、当該ストロークデータに対応づけられているキーワードとして文字認識されるストローク集合に対応するデータ（当該ストロークのバイナリデータ）である。
【００９６】
図１３に示す例では、サジェストキーワードテーブルには、例えばキーワード「ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）」及びストロークデータ「（１０，１０）−（１３，８）−…」が対応づけて保持されている。これによれば、キーワード「ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）」として文字認識されるストローク集合に対応するストロークデータが「（１０，１０）−（１３，８）−…」であることが示されている。なお、上記したようにストロークデータには、ストロークの軌跡上の複数のサンプリング点それぞれに対応する複数の座標が含まれている。
【００９７】
ここでは、キーワード「ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）」についてのみ説明したが、他のキーワードについても同様である。
【００９８】
以下、本実施形態に係るタブレットコンピュータ１０の動作について説明する。ここでは、本実施形態に係るタブレットコンピュータ１０によって実行される処理のうち、特徴量登録処理、候補表示処理及び選択文字列表示処理について説明する。
【００９９】
まず、図１４のフローチャートを参照して、特徴量登録処理の処理手順について説明する。なお、特徴量登録処理は、上記した手書き文書（データ）が記憶媒体４０２に保存される際に特徴量登録処理部３０６によって実行される。
【０１００】
特徴量登録処理において、特徴量登録処理部３０６は、ページ保存処理部３０５によって手書き文書が記憶媒体４０２に保存される際に、当該手書き文書を例えば作業メモリ４０１から取得する（ブロックＢ１）。なお、手書き文書は、上述したページ編集画面上の手書き入力領域５００においてユーザによって手書きで記載されたストローク集合から構成され、当該ストローク集合に対応するストロークデータを含む。
【０１０１】
次に、特徴量登録処理部３０６は、取得された手書き文書（に含まれるストロークデータに対応するストローク集合）に対して文字認識処理を実行する（ブロックＢ２）。これにより、手書き文書を構成するストローク集合が文字列に変換される。このとき、手書き文書を構成する各ストローク（に対応するストロークデータ）は、文字認識処理が実行されることによって変換された文字列中の当該ストロークが属する文字（当該ストロークが構成する文字）と対応づけられているものとする。
【０１０２】
特徴量登録処理部３０６は、変換された文字列に対して形態素分析（形態素解析）処理を実行する（ブロックＢ３）。これにより、変換された文字列は、単語単位に分割される。このとき、特徴量登録処理部３０６は、上記した文字列中の各文字に対応づけられたストロークに基づいて、形態素分析処理によって分割された各単語に属するストローク集合を特定する。
【０１０３】
次に、特徴量登録処理部３０６は、形態素分析処理によって分割された各単語に属するストローク集合に対して積算文字認識処理を実行する（ブロックＢ４）。この積算文字認識処理は、各ストローク毎に特徴量となる文字認識結果（文字列）を取得する処理である。
【０１０４】
ここで、図１５を参照して、積算文字認識処理について具体的に説明する。ここでは、便宜的に、単語「ａｐｐｌｅ」に属するストローク集合に対して積算文字認識処理が実行される場合について説明する。なお、図１５に示す例では、文字「ａ」及び「ｐ」はそれぞれ１ストローク（つまり、１画）で記載された場合を想定している。
【０１０５】
この場合、ストローク数（画数）が１であるストローク（集合）１００１に対して文字認識処理を実行した場合の文字認識結果は「ａ」となる。
【０１０６】
次に、ストローク数（画数）が２であるストローク集合１００２に対して文字認識処理を実行した場合の文字認識結果は「ａｐ」となる。
【０１０７】
同様に、ストローク数（画数）が３であるストローク集合１００３に対して文字認識処理を実行した場合の文字認識結果は「ａｐｐ」となる。
【０１０８】
更に、ストローク数（画数）が４であるストローク集合１００４に対して文字認識処理を実行した場合の文字認識結果は「ａｐｐｌ」となる。
【０１０９】
最後に、ストローク数（画数）が５であるストローク集合１００５に対して文字認識処理を実行した場合の文字認識結果は「ａｐｐｌｅ」となる。
【０１１０】
上記したように単語「ａｐｐｌｅ」に属するストローク集合に対して積算文字認識処理が実行された場合、図１５に示す積算文字認識結果１１００を得ることができる。この積算文字認識結果１１００には、単語、ストローク集合に対応する文字認識結果及び画数（当該ストローク集合におけるストローク数）が含まれる。
【０１１１】
なお、上記したブロックＢ４においては単語に属するストローク集合に対して積算文字認識処理が実行されるものとして説明したが、当該積算文字認識処理は、１つのまとまりとして扱うことが可能な複数の単語を含む文字列に対して実行されても構わない。この１つのまとまりとして扱うことが可能な複数の単語を含む文字列としては、例えば「ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）」のような略称の後の括弧内において当該略称の正式名称を記述した文字列等が含まれるものとする。更に、積算文字認識処理は、複数の単語（形態素）からなる複合語に対して実行されても構わない。
【０１１２】
再び図１４に戻ると、特徴量登録処理部３０６は、取得された積算文字認識結果１１００に基づいて、上記したサジェスト特徴テーブル及びサジェストキーワードテーブル対して各種情報を登録する（ブロックＢ５）。
【０１１３】
具体的には、特徴量登録処理部３０６は、積算文字認識結果１１００に含まれる単語（キーワード）、文字認識結果及び画数を対応づけてサジェスト特徴テーブルに登録する。また、特徴量登録処理部３０６は、積算文字認識結果に含まれる単語（キーワード）及び当該単語に属するストローク集合に対応するストロークデータをサジェストキーワードテーブルに登録する。
【０１１４】
なお、上記したブロックＢ５において、サジェスト特徴テーブル及びサジェストキーワードテーブルに既に同一の情報が保持されている場合には、当該情報の登録処理は省略される。
【０１１５】
上記したように特徴量登録処理によれば、手書き文書が記憶媒体４０２に保存される際に、後述する候補表示処理において用いられる必要な情報を自動的にサジェスト特徴テーブル及びサジェストキーワードテーブルに登録することができる。
【０１１６】
次に、図１６のフローチャートを参照して、候補表示処理の処理手順について説明する。なお、候補表示処理は、上記したページ編集画面上の手書き入力領域５００において手書きで記載されるストロークに対応するストロークデータが入力される際に候補表示処理部３０１Ｃによって実行される。
【０１１７】
候補表示処理において、候補表示処理部３０１Ｃは、ページ編集画面上の手書き入力領域５００においてユーザによって手書きで記載される１ストロークに対応するストロークデータを入力する（ブロックＢ１１）。以下、ブロックＢ１１において入力されたストロークデータを対象ストロークデータと称する。
【０１１８】
次に、候補表示処理部３０１Ｃは、対象ストロークデータが入力された時点で入力されているストロークデータに対応するストローク集合（つまり、手書き入力領域５００に手書きで記載されているストローク集合）に対して文字認識処理（積算文字認識処理）を実行する（ステップＢ１２）。具体的には、対象ストロークデータが手書き文字列のｎ画目のストロークに対応するストロークデータであるものとすると、候補表示処理部３０１Ｃは、１画目〜ｎ画目のストローク集合に対して文字認識処理を実行する。これにより、候補表示処理部３０１Ｃは、文字認識結果を取得する。なお、１画目のストロークは、例えば手書き入力領域５００に手書きで記載されている他のストロークの位置等に基づいて特定されるものとする。
【０１１９】
候補表示処理部３０１Ｃは、取得された文字認識結果及び当該文字認識結果が取得されたストローク集合におけるストローク数に基づいて、当該ストローク集合（つまり、１画目〜ｎ画目のストローク集合）に応じたキーワード（つまり、ユーザが手書き入力しようとする文字列の候補）を検索する（ブロックＢ１３）。具体的には、候補表示処理部３０１Ｃは、取得された文字認識結果及び当該文字認識結果が取得されたストローク集合におけるストローク数（つまり、画数）に対応づけてサジェスト特徴テーブルに保持されているキーワードを検索する。なお、ブロックＢ１３においては、複数のキーワードが検索されても構わない。
【０１２０】
次に、候補表示処理部３０１Ｃは、検索されたキーワードを構成するストローク集合に対応するストロークデータを取得する（ブロックＢ１４）。具体的には、候補表示処理部３０１Ｃは、検索されたキーワードに対応づけてサジェストキーワードテーブルに保持されているストロークデータを取得する。
【０１２１】
候補表示処理部３０１Ｃは、取得されたストロークデータ（に対応するストローク集合）をページ編集画面上の候補表示領域に描画することによって、文字列の候補を表示する。
【０１２２】
ここで、図１７を参照して、上述した候補表示処理によって文字列の候補が表示される候補表示領域について具体的に説明する。ここでは、前述した図９と同一の部分には同一参照符号を付してその詳しい説明を省略する。
【０１２３】
図１７に示すように、ユーザがページ編集画面上の手書き入力領域５００において文字列「ＨＤＤ（」を手書きで記載した場合を想定する。この場合、ページ編集画面上には、候補表示領域５００ａが表示される。また、この候補表示領域５００ａには、ユーザが最後に手書きで記載したストローク「（」に対応するストロークデータが入力された時点で入力されているストロークデータに対応するストローク集合（つまり、手書き文字列「ＨＤＤ（」を構成するストローク集合）に応じたストローク集合（つまり、手書き文字列「ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）」を構成するストローク集合）が文字列の候補として表示される。
【０１２４】
なお、この文字列の候補として候補表示領域５００ａに表示されるストローク集合（手書き文字列「ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）」）は、上述した図１６に示すステップＳ１４において取得されたストロークデータに対応するストローク集合である。
【０１２５】
ユーザは、図１７に示すページ編集画面上の候補表示領域５００ａにおいて表示された文字列の候補を選択（指定）することができる。この場合には、図１８に示すように、ユーザによって選択された文字列（の候補）が手書き入力領域５００に表示される。
【０１２６】
なお、図１７及び図１８においては手書き入力領域５００においてユーザによって手書きで記載される文字列の言語が英語である場合の例について説明したが、図１９及び図２０は当該言語が日本語である場合の例である。
【０１２７】
また、図１７においては候補表示領域５００ａには１つの文字列の候補（ストローク集合）のみが表示されているが、上述したブロックＢ１３において複数のキーワードが検索された場合、候補表示領域５００ａには図１９に示すように複数の文字列の候補が表示される。この場合における複数の文字列の候補は、例えば記憶媒体４０２に保存されている手書き文書において当該文字列の候補（ストローク集合）が出現する頻度（以下、出現頻度と表記）に基づく優先度の順に候補表示領域５００ａに表示されるような構成であっても構わない。また、出現頻度に基づく優先度に加えて、過去に文字列の候補が候補表示領域５００ａに表示された際に当該文字列の候補が手書き入力領域５００に表示（記載）する文字列としてユーザによって選択された回数（以下、選択回数と表記）に基づく優先度が更に考慮されるようにしてもよい。また、出現頻度に基づく優先度に代えて、選択回数に基づく優先度のみが利用されても構わない。
【０１２８】
なお、出現頻度及び選択回数の情報は、必要に応じて、文字列の候補（キーワード）毎に上述したサジェストキーワードテーブル等に保持されていればよい。
【０１２９】
次に、図２１のフローチャートを参照して、選択文字列表示処理の処理手順について説明する。なお、選択文字列表示処理は、上記した候補表示処理において表示された文字列の候補がユーザによって選択された（つまり、当該文字列の候補の入力がユーザにより指定された）際に筆跡描画部３０１Ｂによって実行される。以下の説明では、候補表示処理において表示され、ユーザによって選択された文字列の候補を、選択文字列と称する。
【０１３０】
選択文字列表示処理において、筆跡描画部３０１Ｂは、選択文字列（手書き文字列）を構成するストローク集合に対応するストロークデータを取得する（ブロックＢ２１）。ここで取得されるストロークデータには、各ストロークの軌跡上の複数のサンプリング点それぞれに対応する時系列座標（複数の座標）が含まれている。なお、このストロークデータは、例えば上述したサジェストキーワードテーブルから取得される。
【０１３１】
次に、筆跡描画部３０１Ｂは、取得されたストロークデータに基づいて、選択文字列が文字列の候補として候補表示領域５００ａに表示された際に既に入力されているストロークデータ（つまり、手書き入力領域５００に既に記載されているストローク集合）を基準として相対的に定められる当該選択文字列の座標（相対座標）を決定する（ブロックＢ２２）。
【０１３２】
具体的には、例えば既に入力されているストロークデータに対応するストローク集合（手書き文字列）の外接矩形（座標）を算出する。ここで、ユーザが横書きで手書き文字列（ストローク集合）を記載している場合には、当該算出された外接矩形の左端（例えば、外接矩形の左上の頂点）を基準として選択文字列の相対座標が決定される。また、既に入力されているストロークデータに対応するストローク集合のうちの１画目のストロークの始点を基準として選択文字列の相対座標が決定されても構わない。
【０１３３】
このように決定された相対座標を用いることにより、ユーザによって手書き入力領域５００に既に記載されているストローク集合に対して適切な位置に選択文字列を表示することができる。
【０１３４】
次に、筆跡描画部３０１Ｂは、決定された相対座標に基づいて選択文字列（を構成するストローク集合）を手書き入力領域５００に表示可能であるか否かを判定する（ブロックＢ２３）。この場合、筆跡描画部３０１Ｂは、手書き入力領域５００内に相対座標に基づいて選択文字列を表示可能なスペースが存在するか否かを判定する。なお、選択文字列を表示可能なスペースとは、手書き入力領域５００内の領域であって、他のストロークが表示されていない領域である。
【０１３５】
ここで、図２２を参照して、相対座標に基づいて選択文字列を手書き入力領域５００に表示可能でない場合の一例について説明する。
【０１３６】
図２２に示すように、ユーザがページ編集画面上の手書き入力領域５００の中央より右側から手書き文字列「ＨＤＤ（」を記載した場合を想定する。この場合、ページ編集画面上には、候補表示領域５００ａが表示される。また、この候補表示領域５００ａには、手書き文字列「ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）」（を構成するストローク集合）が文字列の候補として表示される。
【０１３７】
この場合において、候補表示領域５００ａに表示された文字列の候補（手書き文字列「ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）」）がユーザによって選択された場合には、手書き入力領域５００ａに既に記載されている手書き文字列「ＨＤＤ（」に代えて当該選択文字列（手書き文字列「ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）」）が手書き入力領域５００ａに表示（挿入）される。
【０１３８】
ここで、図２２に示す例ではユーザは横書きで手書き文字列を記載しているため、選択文字列は、手書き入力領域５００に既に記載されている手書き文字列「ＨＤＤ（」の右側に表示されることとなる。しかしながら、ユーザによって手書き入力領域５００に既に記載されている手書き文字列「ＨＤＤ（」の右側には、選択文字列（手書き文字列「ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）」を表示するスペースはない。換言すれば、相対座標に基づいて選択文字列を表示するものとすると、当該選択文字列の表示範囲の一部が手書き入力領域５５０内に収まらない。
【０１３９】
したがって、図２２に示すような場合、ブロックＢ２３においては、相対座標に基づいて選択文字列を手書き入力領域５００に表示可能でないと判定される。
【０１４０】
換言すれば、ブロックＢ２３においては、相対座標に基づいて手書き入力領域５００に選択文字列を表示した場合に、当該選択文字列を同一の行（つまり、手書き入力領域５００に既に記載されている手書き文字列「ＨＤＤ（」を含む行）内に表示できない場合には、相対座標に基づいて選択文字列を手書き入力領域５００に表示できないと判定される。
【０１４１】
一方、前述した図１７（及び図１８）に示すような場合には選択文字列を表示するスペースがあるため、ブロックＢ２３においては、相対座標に基づいて選択文字列を手書き入力領域５００に表示可能であると判定される。
【０１４２】
また、上述したように選択文字列を表示可能なスペースとは他のストロークが表示されていない領域である。このため、図２３に示すように、他のストロークとして例えば図形１２００等がユーザによって手書き入力領域５００に既に記載されている手書き文字列「ＨＤＤ（」の右側に表示（記載）されている場合、ブロックＢ２３においては、相対座標に基づいて選択文字列を手書き入力領域５００に表示可能でないと判定される。
【０１４３】
再び図２１に戻ると、ブロックＢ２３において相対座標に基づいて選択文字列を手書き入力領域５００に表示可能でないと判定された場合、筆跡描画部３０１Ｂは、当該選択文字列の相対座標（の少なくとも一部を）を変換する（ブロックＢ２４）。このとき、筆跡描画部３０１Ｂは、選択文字列が手書き入力領域５００内に収まるように当該選択文字列の相対座標を変換する。具体的には、選択文字列の相対座標（の少なくとも一部）は、相対座標に対応する領域に含まれるストロークや、画面上の手書き入力領域５００と相対座標に対応する領域との位置関係に応じて変換される。
【０１４４】
筆跡描画部３０１Ｂは、変換された座標に基づいて選択文字列を手書き入力領域５００に表示する（ブロックＢ２５）。
【０１４５】
一方、ブロックＢ２３において相対座標に基づいて選択文字列を手書き入力領域５００に表示可能であると判定された場合には、ブロックＢ２４の処理は実行されず、ブロックＢ２５の処理が実行される。すなわち、選択文字列が相対座標に基づいて表示可能な場合には、当該相対座標を変換することなく、当該相対座標に基づいて選択文字列が手書き入力領域５００に表示される。
【０１４６】
ここで、図２１に示すブロックＢ２４及びＢ２５の処理が実行されることによる選択文字列の第１〜第３の表示例について具体的に説明する。ここでは、上述した図２２に示すように手書き入力領域５００に手書き文字列「ＸＸＸＸＸＸＸ」及び手書き文字列「ＨＤＤ（」が同一の行で記載され、候補表示領域５００ａに手書き文字列「ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）」が文字列の候補として表示されている状態で、当該文字列の候補がユーザに選択されたものとして説明する。
【０１４７】
まず、第１の表示例では、選択文字列（を構成するストローク集合）が手書き入力領域５００内に収まるように縮小表示されるものとする。この場合、手書き入力領域５００に既に記載されている手書き文字列「ＸＸＸＸＸＸＸ」を構成するストローク集合に対応するストロークデータに含まれる座標及び選択文字列の相対座標が、当該手書き文字列及び選択文字列における文字幅及び文字間隔が縮小されるように変換される。
【０１４８】
これによれば、第１の表示例においては、図２４に示すように、手書き文字列「ＸＸＸＸＸＸＸ」及び選択文字列（手書き文字列「ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）」）を構成するストローク集合が行方向に縮小されて（つまり、当該行方向に詰めて）表示される。
【０１４９】
なお、縮小率は、手書き文字列「ＸＸＸＸＸＸ」及び選択文字列を１行で表示可能なように、当該手書き文字列「ＸＸＸＸＸＸＸ」及び選択文字列が表示されるスペースの幅（他のストロークが記載されていないスペースの幅）に基づいて設定される。なお、同一の行に含まれる文字列については、当該文字列を構成する各ストロークに対応するストロークデータに含まれる座標から認識される。
【０１５０】
なお、ここでは図２２及び図２４を用いて手書き入力領域５００においてユーザによって手書きで記載される文字列の言語が英語である場合の例について説明したが、図２５及び図２６は、当該言語が日本語である場合における第１の表示例を示している。
【０１５１】
次に、第２の表示例では、選択文字列が画面上の別個の領域に分割して表示されるものとする。具体的には、第２の表示例では、選択文字列の一部が改行されて表示される。この場合、選択文字列のうち相対座標に基づいて手書き入力領域５００に表示可能な部分（以下、非改行部分と表記）については、手書き入力領域５００に既に記載されている手書き文字列「ＸＸＸＸＸＸＸ」と同一の行として当該相対座標に基づいて手書き入力領域５００に表示される。一方、選択文字列のうち相対座標に基づいて手書き入力領域５００に表示可能でない部分（以下、改行部分と表記）については、手書き入力領域５００に既に記載されている手書き文字列「ＸＸＸＸＸＸＸ」とは異なる行に改行して表示されるように、当該改行部分の相対座標が変換される。
【０１５２】
これによれば、第２の表示例においては、図２７に示すように、選択文字列（手書き文字列「ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）」）のうち、「ＨＤＤ（Ｈａｒｄ  Ｄ」の部分については手書き文字列「ＸＸＸＸＸＸＸ」と同一の行に表示され、残りの「ｉｓｋ  Ｄｒｉｖｅ）」の部分については改行されて表示される。
【０１５３】
ここで、図２８を参照して、第２の表示例において改行部分を表示する位置について具体的に説明する。
【０１５４】
まず、筆跡描画部３０１Ｂは、手書き入力領域５００に既に記載されている手書き文字列「ＸＸＸＸＸＸＸ」及び「ＨＤＤ（」の外接矩形（座標）１３００を算出する。ここで算出される外接矩形１３００は、手書き入力領域５００に既に記載されている手書き文字列及び非改行部分を含む行を表す。
【０１５５】
次に、筆跡描画部３０１Ｂは、図２８に示すように、算出された外接矩形１３００の高さｙをａ倍した分だけ当該外接矩形１３００の上辺から下の位置であって、かつ、当該外接矩形１３００の左辺の延長線上にある位置１４００を特定する。なお、ａは、１より大きい値であり、例えば１．２〜１．５程度であるものとする。
【０１５６】
筆跡描画部３０１Ｂは、改行部分の相対座標（前述した図２１に示すブロックＢ２２において決定された相対座標）を、特定された位置１４００を基準として相対的に定められる座標に変換する。
【０１５７】
このように変換された座標に基づいて改行部分が手書き入力領域５００に表示されることによって、当該改行部分は、既に記載されている手書き文字列及び非改行部分を含む行に対して適切な行間隔を保持し、かつ、当該行の先頭が一致する位置に表示されることができる。
【０１５８】
なお、ここでは外接矩形１３００の高さｙをａ倍した分だけ当該外接矩形１３００の上辺から下の位置を基準とするものとして説明したが、例えば手書き入力領域５００に既に複数行の文字列が記載されている場合には、当該行間隔に合わせるように改行部分の表示位置が決定されるようにしても構わない。
【０１５９】
なお、ここでは図２７を用いて手書き入力領域５００においてユーザによって手書きで記載される文字列の言語が英語である場合の例について説明したが、図２９は、当該言語が日本語である場合における第２の表示例を示している。
【０１６０】
次に、第３の表示例では第２の表示例と同様に選択文字列の一部が改行されて表示されるが、当該第３の表示例は、改行が選択文字列に含まれる単語の区切れに基づいて行われる点が第２の表示例とは異なる。換言すれば、第３の表示例では、選択文字列に含まれる単語（第１単語）に対応する選択文字列の一部と当該選択文字列に含まれる別の単語（第２単語）に対応する選択文字列の一部とが、画面上の別個の領域に分割して表示される。この場合、選択文字列のうち相対座標に基づいて手書き入力領域５００に表示可能な部分（非改行部分）については、手書き入力領域５００に既に記載されている手書き文字列「ＸＸＸＸＸＸＸ」と同一の行として当該相対座標に基づいて手書き入力領域５００に表示される。一方、選択文字列のうち相対座標に基づいて手書き入力領域５００に表示可能でない部分（改行部分）については、手書き入力領域５００に既に記載されている手書き文字列「ＸＸＸＸＸＸＸ」とは異なる行に改行して表示されるように、当該改行部分の相対座標が変換される。
【０１６１】
なお、この第３の表示例では、選択文字列は、当該選択文字列に含まれる単語の区切れで非改行部分と改行部分とに分割される。選択文字列を構成する各ストロークが属する単語については、前述した特徴量登録処理部３０６の処理等によって把握することができる。また、選択文字列の言語が英語である場合には、当該選択文字列中の単語間にはスペースが存在するため、当該スペースによって単語の区切れを判別するようにしてもよい。
【０１６２】
これによれば、第３の表示例においては、図３０に示すように、選択文字列（手書き文字列「ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）」）のうち、「ＨＤＤ（Ｈａｒｄ」の部分については手書き文字列「ＸＸＸＸＸＸＸ」と同一の行に表示され、残りの「Ｄｉｓｋ  Ｄｒｉｖｅ）」の部分については改行されて表示される。このように第３の表示例では、選択文字列は単語と単語の間で改行されて表示される。
【０１６３】
なお、改行部分を表示する位置については、上記した第２の表示例において説明した通りであるため、その詳しい説明を省略する。
【０１６４】
また、ここでは図３０を用いて手書き入力領域５００においてユーザによって手書きで記載される文字列の言語が英語である場合の例について説明したが、図３１は、当該言語が日本語である場合における第３の表示例を示している。
【０１６５】
なお、上記した第１〜第３の表示例は一例であるため、手書き入力領域５００に収まるような態様であれば選択文字列は他の態様で表示されても構わない。また、第１〜第３の表示例ではユーザが横書きで手書き文字列を記載する場合について説明したが、ユーザが縦書きで手書き文字列を記載する場合であっても同様に、手書き文字列及び選択文字列を縮小して表示する、または当該選択文字列の一部を改行して別の位置から表示することが可能である。
【０１６６】
また、本実施形態において、選択文字列は手書き入力領域５００内であって他のストロークが表示されていない領域に表示される。このため、例えば図３２に示すように手書き入力領域５００の左側の領域に他のストロークとして図形１５００等がユーザによって記載されている場合において候補表示領域５００ａに表示されている文字列の候補（手書き文字列「ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）」）がユーザによって選択された場合には、図３３に示すように当該選択文字列の一部（ここでは、「Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ」）が改行されて表示される。
【０１６７】
なお、図３３においては図形１５００の下の領域（スペース）が空いているため、選択文字列の一部が手書き入力領域５００の左端から表示されているが、例えば既に記載されている手書き文字列と先頭が一致する位置に改行されても構わない。
【０１６８】
また、前述した図２３に示す場合において候補表示領域５００ａに表示されている文字列の候補がユーザによって選択された場合には、図３４に示すように選択文字列が改行されて表示されればよい。
【０１６９】
更に、上記した第２及び第３の表示例においては、手書き入力領域５００のスペースによって選択文字列が複数回改行されて表示されても構わない。
【０１７０】
なお、図３５及び図３６は、手書き入力領域５００においてユーザによって手書きで記載される文字列の言語が日本語である場合における上述した図３２及び図３３に対応する表示例を示している。
【０１７１】
上記したように本実施形態においては、手書きで記載されるストロークに対応するストロークデータを入力し、当該ストロークデータが入力される場合、当該ストロークデータが入力された時点で入力されているストロークデータに対応する第１のストローク集合（例えば、手書き文字列「ＨＤＤ（」）に応じた第２のストローク集合（例えば、手書き文字列「ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）」）を文字列の候補として画面上の第１の領域（候補表示領域５００ａ）に表示し、当該第２のストローク集合に対して既に入力されているストロークデータを基準として相対的に定められる第１の座標（相対座標）に基づいて第２のストローク集合を画面上の第２の領域（手書き入力領域５００）に表示する。これにより、本実施形態においては、ユーザは手書き文書の作成の際に文字列の全てを手書きで記載する必要がなく、ユーザの手間を削減することができるため、ユーザによる手書き文書の作成を容易にすることが可能となる。
【０１７２】
また、本実施形態においては、上記した第１の座標（相対座標）に基づいて第２のストローク集合を第２の領域に表示することができない場合、当該第１の座標の少なくとも一部を第２の座標に変換して第２のストローク集合を表示する。なお、第２のストローク集合が表示される領域は、他のストロークが表示されていない領域である。
【０１７３】
具体的には、本実施形態によれば、第２の領域の残りの表示スペースと相対座標に基づく第２のストローク集合の表示範囲を鑑み、当該第２のストローク集合を同一の行内に全て表示することができない（つまり、第２のストローク集合を第２の領域に表示できない）を場合は、第２の領域内に収まるように第２のストローク集合が縮小表示される。これによれば、第２のストローク集合を詰めて表示することができるため、同一の行内に第２のストローク集合によって構成される文字列の全てを表示することが可能となる。
【０１７４】
また、本実施形態によれば、第２のストローク集合によって構成される文字列の一部が改行して表示されてもよい。これにより、上記した第２のストローク集合を縮小表示した場合における文字列の視認性の低下等を回避することが可能となる。
【０１７５】
更に、第２のストローク集合によって構成される文字列の一部が改行される場合には、当該第２のストローク集合によって構成される文字列に含まれる単語間の区切れで当該文字列を改行する。これによれば、第２のストローク集合によって構成される文字列に含まれる単語が分断されてしまうことを回避することができるため、よりユーザの視認性を向上させることが可能となる。
【０１７６】
すなわち、本実施形態においては、相対座標に基づいて第２のストローク集合を表示する際に、当該表示可能なスペースが第２の領域内に存在しない場合であっても、第２のストローク集合（の座標）を適宜変換して適切に表示することが可能となる。
【０１７７】
なお、本実施形態の処理はコンピュータプログラムによって実現することができるため、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをコンピュータにインストールして実行するだけで、本実施形態と同お湯の効果を容易に実現することができる。
【０１７８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。  
【符号の説明】
【０１７９】
１７…タッチスクリーンディスプレイ、１７Ａ…ＬＣＤ、１７Ｂ…タッチパネル、１７Ｃ…デジタイザ、１００…ペン、１０１…ＣＰＵ、１０２…システムコントローラ、１０３…主メモリ、１０４…グラフィクスコントローラ、１０５…ＢＩＯＳ−ＲＯＭ、１０６…不揮発性メモリ、１０７…無線通信デバイス、１０８…ＥＣ、２０１…ＯＳ、２０２…手書きノートアプリケーション、３０１…表示処理部、３０１Ａ…手書きデータ入力部、３０１Ｂ…筆跡描画部（第２の表示処理部）、３０１Ｃ…候補表示処理部（第１の表示処理部）、３０２…時系列情報生成部、３０３…編集処理部、３０４…ページ保存処理部、３０５…ページ取得処理部、３０６…特徴量登録処理部、４０１…作業メモリ、４０２…記憶媒体。
【図１】
2015059787.tif 000003
【図２】
2015059787.tif 000004
【図３】
2015059787.tif 000005
【図４】
2015059787.tif 000006
【図５】
2015059787.tif 000007
【図６】
2015059787.tif 000008
【図７】
2015059787.tif 000009
【図８】
2015059787.tif 000010
【図９】
2015059787.tif 000011
【図１０】
2015059787.tif 000012
【図１１】
2015059787.tif 000013
【図１２】
2015059787.tif 000014
【図１３】
2015059787.tif 000015
【図１４】
2015059787.tif 000016
【図１５】
2015059787.tif 000017
【図１６】
2015059787.tif 000018
【図１７】
2015059787.tif 000019
【図１８】
2015059787.tif 000020
【図１９】
2015059787.tif 000021
【図２０】
2015059787.tif 000022
【図２１】
2015059787.tif 000023
【図２２】
2015059787.tif 000024
【図２３】
2015059787.tif 000025
【図２４】
2015059787.tif 000026
【図２５】
2015059787.tif 000027
【図２６】
2015059787.tif 000028
【図２７】
2015059787.tif 000029
【図２８】
2015059787.tif 000030
【図２９】
2015059787.tif 000031
【図３０】
2015059787.tif 000032
【図３１】
2015059787.tif 000033
【図３２】
2015059787.tif 000034
【図３３】
2015059787.tif 000035
【図３４】
2015059787.tif 000036
【図３５】
2015059787.tif 000037
【図３６】
2015059787.tif 000038
【手続補正書】
【提出日】平成28年11月7日(2016.11.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
手書きで入力される１以上のストロークに対応するストロークデータを画面上の第１領域に入力し、
入力される前記ストロークデータに対して文字認識処理を実行し、
前記文字認識処理の認識結果により取得した１以上のストローク集合を、前記手書き入力の候補として前記画面上の第２領域に表示し、
前記１以上のストローク集合中の第１ストローク集合がユーザにより指定される場合に、前記ストロークデータに代えて前記第１ストローク集合を前記画面上の前記第１領域に表示するものであって、
前記第１領域の入力行の既に入力されているストロークデータに応じて前記第１ストローク集合の相対座標が決定され、その相対座標から前記第１領域の入力行に前記第１ストローク集合が表示できないと判断される場合、前記第１領域の入力行に前記第１ストローク集合が収まるように前記第１ストローク集合の文字幅及び文字間隔が縮小変換される
方法。
【請求項２】
前記第１ストローク集合の縮小率は、前記既に入力されているストロークデータ及び前記第１ストローク集合が表示される前記入力行のスペース幅に基づいて決定される請求項１記載の方法。
【請求項３】
前記第１ストローク集合に対応する文字列は、第１単語と第２単語とに分割され、
前記第１単語は、前記相対座標に基づいて前記第１領域の入力行に表示され、
前記第２単語は、改行後の前記入力行に表示される
請求項１記載の方法。
【請求項４】
手書きで入力される１以上のストロークに対応するストロークデータを画面上の第１領域に入力する入力部と、
入力される前記ストロークデータに対して文字認識処理を実行し、その文字認識処理の認識結果により取得した１以上のストローク集合を、前記手書き入力の候補として前記画面上の第２領域に表示する第１の表示処理部と、
前記１以上のストローク集合中の第１ストローク集合がユーザにより指定される場合に、前記ストロークデータに代えて前記第１ストローク集合を前記画面上の前記第１領域に表示する第２の表示処理部と
を具備し、
前記第１領域の入力行の既に入力されているストロークデータに応じて前記第１ストローク集合の相対座標が決定され、その相対座標から前記第１領域の入力行に前記第１ストローク集合が表示できないと判断される場合、前記第１領域の入力行に前記第１ストローク集合が収まるように前記第１ストローク集合の文字幅及び文字間隔が縮小変換される
電子機器。
【請求項５】
前記第１ストローク集合の縮小率は、前記既に入力されているストロークデータ及び前記第１ストローク集合が表示される前記入力行のスペース幅に基づいて決定される請求項４記載の電子機器。
【請求項６】
前記第１ストローク集合に対応する文字列は、第１単語と第２単語とに分割され、
前記第１単語は、前記相対座標に基づいて前記第１領域の入力行に表示され、
前記第２単語は、改行後の前記入力行に表示される
請求項４記載の電子機器。
【請求項７】
入力部から手書きで入力される１以上のストロークに対応するストロークデータを画面上の第１領域に入力する携帯端末に内蔵されるコンピュータにより実行されるプログラムであって、
入力される前記ストロークデータに対して文字認識処理を実行し、その文字認識処理の認識結果により取得した１以上のストローク集合を、前記手書き入力の候補として前記画面上の第２領域に表示する機能と、
前記１以上のストローク集合中の第１ストローク集合がユーザにより指定される場合に、前記ストロークデータに代えて前記第１ストローク集合を前記画面上の前記第１領域に表示する機能と、
前記第１領域の入力行の既に入力されているストロークデータに応じて前記第１ストローク集合の相対座標が決定され、その相対座標から第１領域の入力行に前記第１ストローク集合が表示できないと判断される場合、前記第１領域の入力行に前記第１ストローク集合が収まるように前記第１ストローク集合の文字幅及び文字間隔を縮小変換する機能と
を前記コンピュータに実行させるプログラム。
【請求項８】
前記第１ストローク集合の縮小率は、前記既に入力されているストロークデータ及び前記第１ストローク集合がｌ表示される前記入力行のスペース幅に基づいて決定される請求項７記載のプログラム。
【請求項９】
前記第１ストローク集合に対応する文字列は、第１単語と第２単語とに分割され、
前記第１単語は、前記相対座標に基づいて前記第１領域の入力行に表示され、
前記第２単語は、改行後の前記入力行に表示される
請求項７記載のプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００５
【補正方法】変更
【補正の内容】
【０００５】
実施形態によれば、方法は、手書きで入力される１以上のストロークに対応するストロークデータを画面上の第１領域に入力し、入力される前記ストロークデータに対して文字認識処理を実行し、前記文字認識処理の認識結果により取得した１以上のストローク集合を、前記手書き入力の候補として前記画面上の第２領域に表示し、前記１以上のストローク集合中の第１ストローク集合がユーザにより指定される場合に、前記ストロークデータに代えて前記第１ストローク集合を前記画面上の前記第１領域に表示するものであって、前記第１領域の入力行の既に入力されているストロークデータに応じて前記第１ストローク集合の相対座標が決定され、その相対座標から前記第１領域の入力行に前記第１ストローク集合が表示できないと判断される場合、前記第１領域の入力行に前記第１ストローク集合が収まるように前記第１ストローク集合の文字幅及び文字間隔が縮小変換される。
【国際調査報告】
2015059787.tif 000039
2015059787.tif 000040
2015059787.tif 000041