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