(57)【要約】      （修正有）【課題】手書きによって多くの文字を容易に入力することができる電子機器、方法及びプログラムを提供する。【解決手段】手書きによって入力される複数の第１ストロークを受信する手段と、第ｍ番目（ｍは１より大きい整数）までの第１ストロークの入力が完了したことに応じて、第１番目から第ｍ番目までの第１ストロークに対応する複数の第２ストローク群のうちの１以上を、第１入力候補として表示する。第ｎ番目（ｎはｍより大きい整数）までの第１ストロークの入力が完了したことに応じて、第１番目から第ｎ番目までの第１ストロークに対応する複数の第３ストローク群のうちの１以上を、第２入力候補として表示する。第１入力候補として表示された１以上の第２ストローク群と、複数の第３ストローク群の少なくとも１つが重複する場合、第２入力候補として表示する１以上の第３ストローク群から、第１入力候補として表示された第２ストローク群が除外される。【選択図】図１１
2015191482.tif 000002
【特許請求の範囲】
【請求項１】
手書きによって入力される複数の第１ストロークを受信する受信手段と、
ｍは１より大きい整数であり、第ｍ番目までの第１ストロークの入力が完了したことに応じて、第１番目から第ｍ番目までの第１ストロークに対応する複数の第２ストローク群のうちの１以上を、第１入力候補として表示するための処理を実行する処理手段とを具備し、
前記処理手段は、ｎはｍより大きい整数であり、第ｎ番目までの第１ストロークの入力が完了したことに応じて、第１番目から第ｎ番目までの第１ストロークに対応する複数の第３ストローク群のうちの１以上を、第２入力候補として表示するための処理を実行するものであって、
前記第１入力候補として表示された１以上の第２ストローク群と、前記複数の第３ストローク群の少なくとも１つが重複する場合、前記処理手段は、前記第２入力候補として表示する１以上の第３ストローク群から、前記第１入力候補として表示された１以上の第２ストローク群を除外するための処理を行う電子機器。
【請求項２】
前記処理手段は、前記複数の第２または第３ストローク群のいずれかが選択されると、選択されたストローク群を前記複数の第１ストロークに代えて表示するための処理を行う請求項１記載の電子機器。
【請求項３】
前記処理手段は、対応する程度に応じた順位に応じて前記複数の第２または第３ストローク群表示し、前記表示の更新時に上位の第２または第３ストローク群の表示を中止する請求項１記載の電子機器。
【請求項４】
前記処理手段は、表示の更新時に、最上位の第２ストローク群の連続表示回数を所定回数以下に制限する請求項３記載の電子機器。
【請求項５】
前記処理手段は、前記表示の更新時に、上位の第２ストローク群の累積表示回数を所定回数以下に制限する請求項３記載の電子機器。
【請求項６】
前記処理手段は、表示される前記第２または第３ストローク群の数が所定数以上の場合、第２または第３ストローク群の表示を中止する請求項１記載の電子機器。
【請求項７】
前記処理手段は、対応する程度に応じた順位に応じて前記複数の第２または第３ストローク群を表示し、順位に応じたポイントの累計値に応じて第２または第３ストローク群の表示を中止する請求項１記載の電子機器。
【請求項８】
前記処理手段は、上位候補に高ポイントを、下位候補に低ポイントを付与し、前記ポイントの累計値が所定値以上の第２または第３ストローク群の表示を中止する請求項７記載の電子機器。
【請求項９】
前記処理手段は、所定順位以下の第２または第３ストローク群のポイントの累計値をクリアする請求項８記載の電子機器。
【請求項１０】
手書きによって入力される複数の第１ストロークを受信することと、
ｍは１より大きい整数であり、第ｍ番目までの第１ストロークの入力が完了したことに応じて、第１番目から第ｍ番目までの第１ストロークに対応する複数の第２ストローク群のうちの１以上を、第１入力候補として表示するための処理を実行することとを具備し、
前記処理を実行することは、ｎはｍより大きい整数であり、第ｎ番目までの第１ストロークの入力が完了したことに応じて、第１番目から第ｎ番目までの第１ストロークに対応する複数の第３ストローク群のうちの１以上を、第２入力候補として表示するための処理を実行するものであって、
前記第１入力候補として表示された１以上の第２ストローク群と、前記複数の第３ストローク群の少なくとも１つが重複する場合、前記処理手段は、前記第２入力候補として表示する１以上の第３ストローク群から、前記第１入力候補として表示された１以上の第２ストローク群を除外する方法。
【請求項１１】
コンピュータにより実行されるプログラムであって、前記プログラムは、
手書きによって入力される複数の第１ストロークを受信することと、
ｍは１より大きい整数であり、第ｍ番目までの第１ストロークの入力が完了したことに応じて、第１番目から第ｍ番目までの第１ストロークに対応する複数の第２ストローク群のうちの１以上を、第１入力候補として表示するための処理を実行することとを具備し、
前記処理を実行することは、ｎはｍより大きい整数であり、第ｎ番目までの第１ストロークの入力が完了したことに応じて、第１番目から第ｎ番目までの第１ストロークに対応する複数の第３ストローク群のうちの１以上を、第２入力候補として表示するための処理を実行するものであって、
前記第１入力候補として表示された１以上の第２ストローク群と、前記複数の第３ストローク群の少なくとも１つが重複する場合、前記処理手段は、前記第２入力候補として表示する１以上の第３ストローク群から、前記第１入力候補として表示された１以上の第２ストローク群を除外するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は手書き入力に関する。
【背景技術】
【０００２】
近年、タブレット、ＰＤＡ、スマートフォンといった種々の電子機器が開発されている。この種の電子機器の多くは、ユーザによる入力操作を容易にするために、タッチスクリーンディスプレイを備えている。ユーザは、タッチスクリーンディスプレイ上に表示されるメニューまたはオブジェクトを指などでタッチすることにより、これらメニューまたはオブジェクトに関連づけられた機能の実行を電子機器に指示することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平６−２５１１８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
文字入力に関しては、ハードウェアキーボードを用いる電子機器の方がタッチ入力の電子機器に優る。従来、手書きによって多くの文字をスムーズに入力することは容易ではなかった。
【０００５】
本発明の一形態の目的は、手書きによって多くの文字を容易に入力することができる電子機器、方法及びプログラムを提供することである。
【課題を解決するための手段】
【０００６】
実施形態によれば、電子機器は、手書きによって入力される複数の第１ストロークを受信する受信手段と、第ｍ（ｍは１より大きい整数）番目までの第１ストロークの入力が完了したことに応じて、第１番目から第ｍ番目までの第１ストロークに対応する複数の第２ストローク群のうちの１以上を、第１入力候補として表示するための処理を実行する処理手段とを具備する。処理手段は、第ｎ（ｎはｍより大きい整数）番目までの第１ストロークの入力が完了したことに応じて、第１番目から第ｎ番目までの第１ストロークに対応する複数の第３ストローク群のうちの１以上を、第２入力候補として表示するための処理を実行するものであって、前記第１入力候補として表示された１以上の第２ストローク群と、前記複数の第３ストローク群の少なくとも１つが重複する場合、前記処理手段は、前記第２入力候補として表示する１以上の第３ストローク群から、前記第１入力候補として表示された１以上の第２ストローク群を除外するための処理を行う。
【図面の簡単な説明】
【０００７】
【図１】図１は実施形態に係る電子機器の外観を示す例示的な斜視図である。
【図２】図２は図１の電子機器と外部装置との連携動作を示す例示的な図である。
【図３】図３は図１の電子機器のタッチスクリーンディスプレイ上に手書きされる手書き文書の例を示す図である。
【図４】図４は図３の手書き文書に対応する時系列情報を説明するための例示的な図である。
【図５】図５は図１の電子機器のシステム構成を示す例示的なブロック図である。
【図６】図６は図１の電子機器によって実行される手書きノートアプリケーションプログラムの機能構成を示す例示的なブロック図である。
【図７】図７は図１の電子機器によって実行されるストローク補完処理の手順を説明するための手書き文書の編集画面の例示的な図である。
【図８】図８は図１の電子機器によって実行されるストローク補完処理の手順を説明するための手書き文書の編集画面の例示的な図である。
【図９】図９は図１の電子機器によって実行されるストローク補完処理の手順を説明するためのクエリストロークとストローク候補の変遷を示す例示的な図である。
【図１０】図１０は図１の電子機器によって実行されるストローク補完処理の手順の一例を説明するための例示的なフローチャートである。
【図１１】図１１は図１の電子機器によって実行されるストローク補完処理の手順を説明するためのクエリストロークとストローク候補の変遷を示す例示的な図である。
【図１２】図１２は図１の電子機器によって実行されるストローク補完処理の手順の他の例を説明するための例示的なフローチャートである。
【図１３】図１３は図１の電子機器によって実行されるストローク補完処理の手順の他の例を説明するための例示的なフローチャートである。
【発明を実施するための形態】
【０００８】
以下、第１の実施形態について図面を参照して説明する。
【０００９】
図１は、一実施形態に係る電子機器の外観を示す斜視図である。電子機器は、例えば、ペン（スタイラスペン、デジタイザペン、タッチペンとも称される）または指によって手書き入力可能なペン・ベースの携帯型機器である。電子機器は、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、スマートフォン、ＰＤＡ等として実現され得る。ここでは、電子機器がタブレットコンピュータ１０として実現されている。タブレットコンピュータ１０は、タブレットまたはスレートコンピュータとも称される。タブレットコンピュータ１０は、本体１１とタッチスクリーンディスプレイ１７とを備える。本体１１は、薄い箱形の筐体を有している。タッチスクリーンディスプレイ１７は、本体１１の上面に重ね合わさるように取り付けられている。
【００１０】
タッチスクリーンディスプレイ１７には、フラットパネルディスプレイと、センサとが組み込まれている。センサは、フラットパネルディスプレイの画面上のペンまたは指の接触位置を検出するように構成されている。フラットパネルディスプレイは、例えば、液晶表示装置（ＬＣＤ）である。センサとしては、例えば、静電容量方式のタッチパネル、電磁誘導方式のデジタイザなどを使用することができる。ここでは、デジタイザとタッチパネルの２種類のセンサの双方がタッチスクリーンディスプレイ１７に組み込まれている。
【００１１】
デジタイザは、例えば、フラットパネルディスプレイの画面の下側に配置される。タッチパネルは、例えば、フラットパネルディスプレイの画面上に配置される。タッチスクリーンディスプレイ１７は、指を使用した画面に対するタッチ操作のみならず、ペン１００を使用した画面に対するタッチ操作も検出することができる。ペン１００は例えばデジタイザペン（電磁誘導ペン）であってもよい。ユーザは、外部オブジェクト（ペン１００又は指）を使用してタッチスクリーンディスプレイ１７上で手書き入力操作を行うことができる。手書き入力操作中においては、画面上の外部オブジェクト（ペン１００又は指）の動きの軌跡、つまり手書きによって入力されるストロークの軌跡がリアルタイムに描画され、これによって各ストロークの軌跡が画面上に表示される。外部オブジェクトが画面に接触されている間の外部オブジェクトの動きの軌跡が１ストロークに相当する。手書きされた文字または図形などに対応する多数のストロークの集合、つまり多数の軌跡の集合が手書き文書を構成する。
【００１２】
本実施形態では、手書き文書は、イメージデータではなく、各ストロークの軌跡の座標列とストローク間の順序関係とを示す時系列情報として記憶媒体に保存される。時系列情報の詳細は図４を参照して後述するが、時系列情報は、複数のストロークにそれぞれ対応するとともに複数のストロークが手書きされた順を示す複数のストロークデータを含む。換言すれば、時系列情報は、複数のストロークにそれぞれ対応する時系列のストロークデータの集合である。各ストロークデータは、ある一つのストロークに対応し、ストロークの軌跡上の点それぞれに対応する座標データ系列（時系列座標）を含む。これらストロークデータの並びの順序は、ストロークそれぞれが手書きされた順序つまり筆順に相当する。
【００１３】
タブレットコンピュータ１０は、記憶媒体から既存の任意の時系列情報を読み出し、時系列情報に対応する手書き文書、つまり時系列情報によって示される複数のストロークデータそれぞれに対応するストロークを画面上に表示することができる。さらに、タブレットコンピュータ１０は編集機能を有している。編集機能は、「消しゴム」ツール、「範囲指定」ツール、および他の各種ツール等を用いたユーザによる編集操作に応じて、表示中の手書き文書内の任意のストロークまたは任意の手書き文字等を削除または移動することができる。さらに、編集機能は、幾つかの手書き操作の履歴を取り消す機能も含んでいる。
【００１４】
さらに、タブレットコンピュータ１０は、ストローク補完機能も有している。ストローク補完機能は、多くのストロークを手書きによって容易に入力できるようにするために、ユーザの手書き入力操作を補助するための機能である。具体的には、１画のストロークが手書きされる毎に、今まで手書きされた１以上のストローク群を含み、ユーザが入力することが予想される過去に入力されたストローク群を１以上のストローク候補としてユーザに提示する。これにより、ユーザは必ずしも全画数手書きする必要がなく、多くのストロークを手書きによって容易に入力できるようになる。
【００１５】
図２は、タブレットコンピュータ１０と外部装置との連携動作の例を示している。タブレットコンピュータ１０は、パーソナルコンピュータ１やクラウドコンピューティングシステムと連携することができる。すなわち、タブレットコンピュータ１０は、無線ＬＡＮなどの無線通信デバイスを備えており、パーソナルコンピュータ１との無線通信を実行することができる。さらに、タブレットコンピュータ１０は、インターネット上のサーバ２との通信を実行することもできる。サーバ２はオンラインストレージサービス、他の各種クラウドコンピューティングサービスを実行するサーバであってもよい。
【００１６】
パーソナルコンピュータ１はハードディスクドライブ（ＨＤＤ）のようなストレージデバイスを備えている。タブレットコンピュータ１０は、時系列情報（手書き文書）をネットワーク越しにパーソナルコンピュータ１に送信して、パーソナルコンピュータ１のＨＤＤに記録することができる（アップロード）。
【００１７】
これにより、タブレットコンピュータ１０内のストレージの容量が少ない場合でも、タブレットコンピュータ１０が多数の時系列情報（手書き文書）あるいは大容量の時系列情報（手書き文書）を扱うことが可能となる。
【００１８】
さらに、タブレットコンピュータ１０は、パーソナルコンピュータ１のＨＤＤに記録されている任意の１以上の手書き文書を読み出すことすができる（ダウンロード）。タブレットコンピュータ１０は、読み出した手書き文書によって示されるストロークそれぞれの軌跡をタブレットコンピュータ１０のタッチスクリーンディスプレイ１７の画面に表示することができる。この場合、複数の手書き文書それぞれのページを縮小することによって得られるサムネイルの一覧をタッチスクリーンディスプレイ１７の画面上に表示してもよいし、これらサムネイルから選ばれた１ページをタッチスクリーンディスプレイ１７の画面上に通常サイズで表示してもよい。
【００１９】
さらに、タブレットコンピュータ１０が通信する先はパーソナルコンピュータ１ではなく、上述したように、ストレージサービスなどを提供するクラウドコンピューティングシステム上のサーバ２であってよい。タブレットコンピュータ１０は、手書き文書をネットワーク越しにサーバ２に送信して、サーバ２のストレージデバイス２Ａに記録することができる（アップロード）。さらに、タブレットコンピュータ１０は、サーバ２のストレージデバイス２Ａに記録されている任意の手書き文書を読み出すことができる（ダウンロード）。タブレットコンピュータ１０は、読み出した手書き文書によって示されるストロークそれぞれの軌跡をタブレットコンピュータ１０のタッチスクリーンディスプレイ１７の画面に表示することができる。
【００２０】
このように、本実施形態では、手書き文書が格納される記憶媒体は、タブレットコンピュータ１０内のストレージデバイス、パーソナルコンピュータ１内のストレージデバイス、サーバ２のストレージデバイスのいずれであってもよい。
【００２１】
次に、図３および図４を参照して、ユーザによって手書きされたストローク（文字、マーク、図形（線図）、表など）と手書き文書との関係について説明する。図３は、ペン１００などを使用してタッチスクリーンディスプレイ１７上に手書きされる手書き文字列の例を示している。
【００２２】
手書き文書では、一旦手書きされた文字や図形などの上に、さらに別の文字や図形などが手書きされるというケースが多い。図３においては、「ＡＢＣ」の手書き文字列が「Ａ」、「Ｂ」、「Ｃ」の順番で手書きされ、この後に、手書きの矢印が、手書き文字「Ａ」のすぐ近くに手書きされた場合が想定されている。
【００２３】
手書き文字「Ａ」は、ペン１００などを使用して手書きされる２つのストローク（「∧」形状の軌跡、「−」形状の軌跡）によって、つまり２つの軌跡によって表現される。最初に手書きされる「∧」形状のペン１００の軌跡は例えば等時間間隔でリアルタイムにサンプリングされ、これによって「∧」形状のストロークの時系列座標ＳＤ１１、ＳＤ１２、…ＳＤ１ｎが得られる。同様に、次に手書きされる「−」形状のペン１００の軌跡も等時間間隔でリアルタイムにサンプリングされ、これによって「−」形状のストロークの時系列座標ＳＤ２１、ＳＤ２２、…ＳＤ２ｎが得られる。
【００２４】
手書き文字「Ｂ」は、ペン１００などを使用して手書きされた２つのストローク、つまり２つの軌跡によって表現される。手書き文字「Ｃ」は、ペン１００などを使用して手書きされた１つのストローク、つまり１つの軌跡によって表現される。手書きの「矢印」は、ペン１００などを使用して手書きされた手書きされた２つのストローク、つまり２つの軌跡によって表現される。
【００２５】
図４は、図３の手書き文字列に対応する時系列情報２００を示している。時系列情報２００は、複数のストロークデータＳＤ１、ＳＤ２、…、ＳＤ７を含む。時系列情報２００内においては、これらストロークデータＳＤ１、ＳＤ２、…、ＳＤ７は、ストローク順に、つまり複数のストロークが手書きされた順に時系列に並べられている。
【００２６】
時系列情報２００において、先頭の２つのストロークデータＳＤ１、ＳＤ２は、手書き文字「Ａ」の２つのストロークをそれぞれ示している。３番目と４番目のストロークデータＳＤ３、ＳＤ４は、手書き文字「Ｂ」を構成する２つのストロークをそれぞれ示している。５番目のストロークデータＳＤ５は、手書き文字「Ｃ」を構成する１つのストロークを示している。６番目と７番目のストロークデータＳＤ６、ＳＤ７は、手書き「矢印」を構成する２つのストロークをそれぞれ示している。
【００２７】
各ストロークデータは、一つのストロークに対応する座標データ系列（時系列座標）、つまり一つのストロークの軌跡上の複数の点それぞれに対応する複数の座標を含む。各ストロークデータにおいては、複数の座標はストロークが書かれた順に時系列に並べられている。例えば、手書き文字「Ａ」に関しては、ストロークデータＳＤ１は、手書き文字「Ａ」の「∧」形状のストロークの軌跡上の点それぞれに対応する座標データ系列（時系列座標）、つまりｎ個の座標データＳＤ１１、ＳＤ１２、…ＳＤ１ｎを含む。ストロークデータＳＤ２は、手書き文字「Ａ」の「−」形状のストロークの軌跡上の点それぞれに対応する座標データ系列、つまりｎ個の座標データＳＤ２１、ＳＤ２２、…ＳＤ２ｎを含む。なお、座標データの数はストロークデータ毎に異なっていてもよい。すなわち、ペン１００の軌跡は等時間間隔でリアルタイムにサンプリングされるので、ストロークの長さが長いほど、あるいはストロークの手書き速度が遅いほど、座標データの数は増加する。
【００２８】
各座標データは、対応する軌跡内のある１点に対応するＸ座標およびＹ座標を示す。例えば、座標データＳＤ１１は、「∧」形状のストロークの始点のＸ座標（Ｘ１１）およびＹ座標（Ｙ１１）を示す。ＳＤ１ｎは、「∧」形状のストロークの終点のＸ座標（Ｘ１ｎ）およびＹ座標（Ｙ１ｎ）を示す。
【００２９】
さらに、各座標データは、その座標に対応する点が手書きされた時点に対応するタイムスタンプ情報Ｔを含んでいてもよい。さらに、各座標データには、筆圧を示す情報（Ｚ）を追加してもよい。
【００３０】
さらに、本実施形態では、上述したように、手書き文書は、イメージまたは文字認識結果ではなく、時系列のストロークデータの集合として記憶されるので、手書き文字の言語に依存せずに手書き文字を扱うことができる。よって、本実施形態の時系列情報２００の構造は、使用言語の異なる世界中の様々な国で共通に使用できる。
【００３１】
図５は、タブレットコンピュータ１０のシステム構成を示す。  
タブレットコンピュータ１０は、ＣＰＵ１０１、システムコントローラ１０２、主メモリ１０３、グラフィクスコントローラ１０４、ＢＩＯＳ−ＲＯＭ１０５、不揮発性メモリ１０６、無線通信デバイス１０７、エンベデッドコントローラ（ＥＣ）１０８等を備える。
【００３２】
ＣＰＵ１０１は、タブレットコンピュータ１０内の各種モジュールの動作を制御するプロセッサである。ＣＰＵ１０１は、ストレージデバイスである不揮発性メモリ１０６から主メモリ１０３にロードされる各種コンピュータプログラムを実行する。これらプログラムには、オペレーティングシステム（ＯＳ）２０１、および各種アプリケーションプログラムが含まれている。アプリケーションプログラムには、手書きノートアプリケーションプログラム２０２が含まれている。手書きノートアプリケーションプログラム２０２は、上述の手書き文書を作成および表示する機能、手書き文書を編集する機能、およびストローク補完機能等を有している。
【００３３】
ＣＰＵ１０１は、ＢＩＯＳ−ＲＯＭ１０５に格納された基本入出力システム（ＢＩＯＳ）も実行する。ＢＩＯＳは、ハードウェア制御のためのプログラムである。
【００３４】
システムコントローラ１０２は、ＣＰＵ１０１のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ１０２には、主メモリ１０３をアクセス制御するメモリコントローラも内蔵されている。また、システムコントローラ１０２は、ＰＣＩ  ＥＸＰＲＥＳＳ規格のシリアルバスなどを介してグラフィクスコントローラ１０４との通信を実行する機能も有している。
【００３５】
グラフィクスコントローラ１０４は、タブレットコンピュータ１０のディスプレイモニタとして使用されるＬＣＤ１７Ａを制御する表示コントローラである。グラフィクスコントローラ１０４によって生成される表示信号はＬＣＤ１７Ａに送られる。ＬＣＤ１７Ａは、表示信号に基づいて画面イメージを表示する。ＬＣＤ１７Ａ上にはタッチパネル１７Ｂおよびデジタイザ１７Ｃが配置されている。タッチパネル１７Ｂは、ＬＣＤ１７Ａの画面上で入力を行うための静電容量式のポインティングデバイスである。指が接触される画面上の接触位置および接触位置の動き等はタッチパネル１７Ｂによって検出される。デジタイザ１７ＣはＬＣＤ１７Ａの画面上で入力を行うための電磁誘導式のポインティングデバイスである。ペン１００が接触される画面上の接触位置および接触位置の動き等はデジタイザ１７Ｃによって検出される。
【００３６】
無線通信デバイス１０７は、無線ＬＡＮまたは３Ｇ移動通信などの無線通信を実行するように構成されたデバイスである。タブレットコンピュータ１０は、無線通信デバイス１０７によりインターネット等を介してサーバ２やパーソナルコンピュータ１と接続される。ＥＣ１０８は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。ＥＣ１０８は、ユーザによるパワーボタンの操作に応じてタブレットコンピュータ１０を電源オンまたは電源オフする機能を有している。
【００３７】
次に、図６を参照して、手書きノートアプリケーションプログラム２０２の機能構成について説明する。手書きノートアプリケーションプログラム２０２は、手書き文書データを扱うことが可能なＷＹＳＩＷＹＧアプリケーションである。この手書きノートアプリケーションプログラム２０２は、例えば、ペン軌跡表示処理部３０１、時系列情報生成部３０２、編集処理部３０３、ページ保存処理部３０４、ページ取得処理部３０５、手書き文書表示処理部３０６、およびストローク補完処理部３０８等を備える。
【００３８】
手書きノートアプリケーションプログラム２０２は、タッチスクリーンディスプレイ１７を用いて入力されるストロークデータを使用することによって、手書き文書（手書きデータ）の作成、表示、編集等を行う。タッチスクリーンディスプレイ１７は、「タッチ」、「移動（スライド）」、「リリース」等のイベントの発生を検出するように構成されている。「タッチ」は、画面上に外部オブジェクトが接触したことを示すイベントである。「移動（スライド）」は、画面上に外部オブジェクトが接触されている間に接触位置が移動されたことを示すイベントである。「リリース」は、画面から外部オブジェクトが離されたことを示すイベントである。
【００３９】
ペン軌跡表示処理部３０１および時系列情報生成部３０２は、タッチスクリーンディスプレイ１７によって発生される「タッチ」または「移動（スライド）」のイベントを受信し、これによって手書き入力操作を検出する。「タッチ」イベントには、接触位置の座標が含まれている。「移動（スライド）」イベントにも、移動先の接触位置の座標が含まれている。したがって、ペン軌跡表示処理部３０１および時系列情報生成部３０２は、タッチスクリーンディスプレイ１７から、接触位置の動きの軌跡に対応する座標列を受信することができる。
【００４０】
ペン軌跡表示処理部３０１は、手書きによって入力されるストロークをタッチスクリーンディスプレイ１７の画面上に表示するように構成された表示処理部として機能する。ペン軌跡表示処理部３０１は、タッチスクリーンディスプレイ１７から座標列を受信する。この座標列に基づいて、ペン軌跡表示処理部３０１は、ペン１００等を使用した手書き入力操作によって入力される複数のストロークをタッチスクリーンディスプレイ１７内のＬＣＤ１７Ａの画面上に表示する。
【００４１】
時系列情報生成部３０２は、タッチスクリーンディスプレイ１７から出力される上述の座標列を受信する。この座標列に基づいて、時系列情報生成部３０２は、上述の複数のストロークに対応する複数のストロークデータ（時系列情報）を生成する。これらストロークデータ、つまり各ストロークの各点に対応する座標は作業メモリ４０１に一時保存してもよい。
【００４２】
ページ保存処理部３０４は、複数のストロークに対応する複数のストロークデータを含む手書き文書情報を記憶媒体４０２内の手書きノートデータベース４０２Ａに保存する。記憶媒体４０２は、上述したように、タブレットコンピュータ１０内のストレージデバイス、パーソナルコンピュータ１内のストレージデバイス、サーバ２のストレージデバイスのいずれであってもよい。
【００４３】
ページ取得処理部３０５は、記憶媒体４０２から任意の手書き文書情報を読み出す。読み出された手書き文書情報は手書き文書表示処理部３０６に送られる。手書き文書表示処理部３０６は、手書き文書情報を解析し、この解析結果に基づいて、手書き文書情報内の複数のストロークデータによって示される複数のストロークの軌跡を画面上に手書きページとして表示する。
【００４４】
編集処理部３０３は現在表示中の手書き文書（手書きページ）を編集するための処理を実行する。すなわち、編集処理部３０３は、タッチスクリーンディスプレイ１７上でユーザによって行われる編集操作に応じて、表示されている複数のストローク内の１以上のストロークを削除または移動等するための編集処理を実行する。さらに、編集処理部３０３は、編集処理の結果を表示中の手書き文書に反映するためにこの手書き文書を更新する。
【００４５】
ユーザは、「消しゴム」ツール等を使用して、表示されている複数のストローク内の任意のストロークを削除することができる。また、ユーザは、画面上の任意の部分を丸または四角によって囲むための「範囲指定」ツールを使用して、表示されている手書きページ内の任意の部分を範囲指定することができる。
【００４６】
ストローク補完処理部３０８は、上述のストローク補完機能を実行するように構成されている。ストローク補完処理部３０８は、過去に入力され手書きノートデータベース４０２Ａに保存されている時系列情報２００（手書き文書情報）から、手書きによって入力される１以上のストロークに対応するストローク群を取得する。そして、ストローク補完処理部３０８は、取得されたストローク群を、手書き入力を補完するストローク候補として画面上に表示することによって、この取得されたストローク群をユーザに推薦する。換言すれば、ストローク補完処理部３０８は、入力される１以上のストロークと記憶されている手書き文書情報とに基づいて、ユーザが手書きしようとしているストローク群（例えば、手書き文字列、手書き図形、等）を予測する。ストローク補完処理部３０８は、予測によって得られるストローク群を画面上に推薦ストローク候補として表示するための処理を実行する。取得する候補の数と、画面に一度に表示する候補の数は一致しても良いし、取得する候補の数が一度に表示できる候補の数より多くても良い。あるいは、取得するストローク群に対して、手書きによって入力される１以上のストロークに対応する程度を示す順位を付与して、画面に一度に表示できる数の上位のストローク群を候補と見なし、それ以下の順位のストローク群は取得されても候補と見なさなくてもよい。
【００４７】
単数の候補を取得し、単数の候補を表示する場合、取得されたストロークデータに対応するストロークが、入力されたストロークに続けて表示される。例えば、ストローク「ａ」が手書きによって入力された場合には、ストローク「ａ」から始まる過去に入力されたストローク群、例えば手書きの語「ａｃｃｅｓｓ」が、ストローク候補として表示される。もしユーザによってストローク候補「ａｃｃｅｓｓ」を入力ストロークとして採用する操作、例えば、ストローク候補「ａｃｃｅｓｓ」に後続する位置に新たなストロークを手書きによって入力する操作など、が行われた場合には、ストローク候補「ａｃｃｅｓｓ」が入力ストロークとして採用されて、入力された手書き文字列となる。これにより、ユーザは必ずしも全画数手書きする必要がなく、多くのストロークを手書きによって容易に入力できる。ユーザが入力したいストロークがストローク候補「ａｃｃｅｓｓ」ではない場合、ストローク候補の表示を無視して、入力したいストロークを書き続ければよい。すなわち、ストローク候補「ａｃｃｅｓｓ」の２番目の文字「ｃ」の上に、２番目のストローク、例えば「ｐ」を書く。これにより、ストローク「ａ」、「ｐ」で始まるストローク群が取得され、表示される。
【００４８】
推薦されるストローク候補は、手書きの語に限らず、手書きのフレーズであってもよい。例えば、ストローク「Ｊ」が手書きによって入力された場合には、過去に入力された手書き文字列「Ｊａｎｕａｒｙ  １３，２０１４」のフレーズが、ストローク候補として表示されてもよい。
【００４９】
このため、ストローク候補取得部３０８Ａは、手書きノートデータベース４０２Ａに保存される手書き文書情報の形態素解析をバックグラウンド処理で行い、手書き文書を構成するストローク集合に対して文字認識処理を実行して、手書き文書を構成する全てのストロークを形態素、単語、文節等に分類している。候補はこの分類の単位から選ばれる。
【００５０】
複数の候補を取得し、取得した複数の候補を同時に表示する場合、画面上に同時に表示できるストローク候補の数は限りがあるので、３〜５程度のストローク候補を取得し、一覧を表示することが多い。例えば、ストローク「ａ」が手書きによって入力された場合、手書きの語「ａｐｐｌｅ」、「ａｒｅａ」、「ａｕｇｕｓｔ」等が候補として提示され、次いでストローク「ｐ」が手書きによって入力された場合、手書きの語「ａｐｐｌｅ」、「ａｐｒｉｌ」、「ａｐｐｌｉｃａｔｉｏｎ」等が候補として提示される。候補の中にユーザが入力する予定のストロークが含まれている場合、その候補を、タップ等により、選ぶと、手書き入力済みストロークが、選択された候補に置き換えられ、手書き入力が完了する。これにより、ユーザは必ずしも全画数手書きする必要がなく、多くのストロークを手書きによって容易に入力できる。なお、表示可能な行数より少ない数のストローク候補しか求められなかった場合、一覧表示に空白行ができる。
【００５１】
画面上に同時に表示できる行数よりも多い候補を取得する場合、求められたストローク候補を順次に全て表示できるようにスクロール方式、あるいはドラムロール方式のＵＩが採用される。スクロール方式の場合、通常３から５の候補が表示され、スクロール操作がされると、次の３から５の候補が表示される。ドラムロール式の場合、通常は１つの候補しか表示されず、回転操作がされると、次の候補が順次表示される。
【００５２】
手書きによって入力された１以上のストロークを含むストロークデータ群を手書きノートデータベース４０２Ａから容易に取得できるようにするために、ストローク補完処理部３０８は、手書きノートデータベース４０２Ａに格納されているストロークの集合（手書き文書情報）に基づいて、ストローク候補データベース４０２Ｂを作成しても良い。ストローク候補データベース４０２Ｂは、複数種の文字列にそれぞれ対応する複数のエントリを備えていてもよい。各エントリは、エントリの文字列に対応するストロークデータ群を格納していてもよい。ストローク補完処理部３０８は、まず、ユーザによって入力された１以上のストロークを文字認識してもよい。そして、ストローク補完処理部３０８は、ストローク候補データベース４０２Ｂを参照し、入力された１以上のストロークの文字認識結果（文字列）に前方一致する文字列を見つけ出す。ストローク補完処理部３０８は、見つけ出した文字列に対応するストロークデータ群を、入力された１以上のストロークに対応するストロークデータ群としてストローク候補データベース４０２Ｂから取得する。あるいは、ストローク候補データベース４０２Ｂの各エントリは、エントリの文字列に対応するストロークデータ群と、ストロークデータ群内の各ストロークの特徴量とを格納していてもよい。あるストロークの特徴量としては、ストロークの手書き特徴を表すことができる任意の特徴を使用することができる。例えば、特徴量としては、ストロークの形状、ストロークの筆画方向、ストロークの傾斜、等を表す特徴量データを使用しても良い。この場合、ストローク補完処理部３０８は、入力された１以上のストロークの特徴量に類似する特徴量を有するストロークデータ群をストローク候補データベース４０２Ｂから取得してもよい。
【００５３】
ストローク補完処理部３０８は、ストローク候補取得部３０８Ａ、例外処理部３０８Ｂ、ストローク候補提示部３０８Ｃを備える。ストローク候補取得部３０８Ａは、ストローク候補データベース４０２Ｂを参照して、入力された１以上のストロークに対応するストロークデータ群（ストローク候補）を取得する。ストローク候補提示部３０８Ｃは、取得されたストロークデータ群をストローク候補として画面上に表示して、ユーザに推薦する。１以上のストローク候補の一つがユーザによって選択された場合、選択されたストローク候補が入力ストロークとして採用される。例外処理部３０８Ｂは、ストローク候補取得部３０８Ａ、ストローク候補提示部３０８Ｃに作用し、ストローク候補の取得処理、ストローク候補の提示処理に例外ルールを適用する。１画目の手書きストローク開始から候補選択（ある文字列の手書き入力の完了）までをセッションと称する。この間、１画のストロークの入力毎に、入力ストロークの組み合わせに対応するストローク群の取得、表示が繰り返し行なわれる。候補が表示され、その中に所望のストローク群があれば、それに対応する候補が選択され、セッションは終わるが、表示された候補の中に所望のストローク群がなければ、次のストロークが手書き入力される。すなわち、次のストロークが手書き入力された時点で表示されている候補は不要な候補と言える。例外処理は、このような不要な候補が取得、あるいは表示されることを防止し、選択される可能性の高い候補を優先的に取得、表示する。ただし、本実施形態では、１回表示されて選択されなかった場合に直ぐに不要な候補と見なすに限らず、複数回表示されて選択されなかった場合に初めて不要な候補と見なしてもよい。例外処理の具体例は後述する。
【００５４】
ストローク補完処理部３０８の処理を説明する。説明の便宜上、例外処理を行わない場合の手書き文書の編集画面の遷移を説明する。図７に示すように、手書き文書の編集画面６００上で行われる手書き入力操作によって１ストローク（クエリストローク）「ｄ」が入力されると、その入力されたクエリストローク６１１が編集画面６００上に表示される。ストローク補完処理部３０８は、ストローク候補データベース４０２Ｂを参照して、クエリストローク「ｄ」に対応するストローク群を取得する。例えば、ユーザが文字列「ＪＳＦ」の次に手書き文字列「ｄｅｖｅｌｏｐｍｅｎｔ」を手書き入力しようとしている場合を想定する。ここでは、手書き文字列「ｄｅｖｅｌｏｐｍｅｎｔ」、「ｄｉｓｃｏｖｅｒ」、「ｄｕｐｌｉｃａｔｅ」がストローク候補データベース４０２Ｂに既に蓄積されているものとする。手書き入力したストロークの近傍にストローク候補ウィンドウ６１２が表示され、そこにこれらの３つの手書き文字列が表示される。各候補は取得時に順位が付けられ、表示の順番は順位の順番である。４つ以上取得される場合、３番目までの候補が表示され、３番目以降の候補は表示されない。
【００５５】
図８に示すように、候補中の手書き文字列「ｄｅｖｅｌｏｐｍｅｎｔ」が選択されると、編集画面６００上に表示されているクエリストローク６１１に代えて選択文字列「ｄｅｖｅｌｏｐｍｅｎｔ」が周囲の筆跡のサイズと合うようにサイズが調整された後表示される。
【００５６】
図９にクエリストロークとストローク候補の他の例を示す。１画目のクエリストロークとして「ｓ」が入力され、２画目のクエリストロークとして「ｔの横棒」が入力され、３画目のクエリストロークとして「ｔの縦棒」が入力され、４画目のクエリストロークとして「ａ」が入力され、５画目のクエリストロークとして「ｔの横棒」が入力されるとする。
【００５７】
１画目のクエリストローク「ｓ」が入力されると、「ｓｔａｔｉｃ」、「ｓｔａｔｕｓ」、「ｓｐａｃｅ」、「ｓｐｅａｋ」、「ｓｔｒｅｅｔ」の５つの候補が表示される。２画目のクエリストローク「ｔの横棒」が入力されると、「ｓｔａｔｉｃ」、「ｓｔａｔｕｓ」、「ｓｔｒｅｅｔ」、「ｓｙｓｔｅｍ」、「ｓｙｍｂｏｌ」の５つの候補が表示される。３画目のクエリストローク「ｔの縦棒」が入力されると、「ｓｔａｔｉｃ」、「ｓｔａｔｕｓ」、「ｓｔｒｅｅｔ」、「ｓｔａｎｄ」、「ｓｙｍｔｅｍ」の５つの候補が表示される。４画目のクエリストローク「ａの横棒」が入力されると、「ｓｔａｔｉｃ」、「ｓｔａｔｕｓ」、「ｓｔａｎｄ」、「ｓｔａｔｉｏｎ」、「ｓｔａｒ」の５つの候補が表示される。５画目のクエリストローク「ｔの縦棒」が入力されると、「ｓｔａｔｉｃ」、「ｓｔａｔｕｓ」、「ｓｔａｔｉｏｎ」、「ｓｔａｙ」、「ｓｔａｔｉｏｎａｒｙ」の５つの候補が表示される。
【００５８】
ストローク候補取得部３０８Ａはストロークが１画入力され、クエリストロークが変化する毎にストローク候補を取得し直す。そのため、取得されるストローク候補は動的に更新されるが、ストローク候補取得部３０８Ａは文脈、過去の選択回数等を基に候補の順位を決めているので、この例では、第１画目から第５画目のストロークの入力において、「ｓｔａｔｉｃ」、「ｓｔａｔｕｓ」は常に第１位、第２位の候補として表示され続けている。このように何度も候補として表示されるということは、その候補が選ばれずに、ストロークが手書き入力されていることである。そのような候補は選択される可能性が非常に低い不要な候補であると見なすことができ、本実施形態では、そのような不要な候補は取得されても表示しないという例外処理を行っている。
【００５９】
図１０のフローチャートは、例外処理を含むストローク補完処理の一手順例を示す。図１１は、図１０の動作中のクエリストロークとストローク候補ウィンドウ６１２の表示との関係を示す図である。ストローク候補ウィンドウ６１２は５つの候補を表示する。
【００６０】
手書き文書の編集画面上で行われる手書き入力操作によって１クエリストロークが入力されると、入力されたクエリストローク（２画目以降の場合は、１画目からのトータルのストローク）が編集画面上に表示される（ブロックＢ１０２）。ストローク補完処理部３０８は、ストローク候補データベース４０２Ｂを参照して、入力されたストロークに対応するストローク候補を取得する（ブロックＢ１０４）。１画目のクエリストロークが「ｓ」である場合、図９と同様に「ｓｔａｔｉｃ」、「ｓｔａｔｕｓ」、「ｓｐａｃｅ」、「ｓｐｅａｋ」、「ｓｔｒｅｅｔ」の５つの候補が取得され、表示される。ストローク候補取得部３０８Ａは、クエリストロークを含むストローク群である候補を先ず取得し、選択回数や文脈等を考慮して、取得した候補に順位を付ける。同時に表示する候補数が決まっている場合は、その数だけ上位の候補を取得する。しかし、クエリストロークによっては、表示候補数以下の候補しか取得されないことがある。
【００６１】
ブロックＢ１０６で、取得された候補の数がｉ個（例えば、４個）以上であるか否か判定される。例外処理は、候補として取得されないようにする、あるいは取得されても表示されないようにするものであるが、取得した候補が少ない場合、表示候補数が非常に少なくなってしまうので、その場合は例外処理を実施しないようにするためである。取得候補が４個、５個の場合だけ、例外処理を実施するようにしている。
【００６２】
ブロックＢ１０６で取得候補の数が４個以上であると判定された場合、ブロックＢ１０８で各候補について、上位候補（例えば、順位１位の候補）について、現在のセッションにおける取得回数がｊ回（例えば、３回）以上か否か判定される。すなわち、３回も順位１で取得された（２回表示された）にも関わらず選択されなかったということは選択される可能性は非常に低い不要な候補であると見なすことができる。上位候補は順位１位に限らず、２位、３位まで含めても良いし、必ずしも同じ順位の取得回数でなくても、上位３位以内の取得回数で判断しても良い。要は、ストローク候補が過去に上位候補として所定回数以上取得されたか否かを判定する。
【００６３】
ブロックＢ１０８で現在のセッションにおける取得回数が３回以上と判定された候補はブロックＢ１１０で候補から除外される（例外処理）。その後、ブロックＢ１１２でストローク候補が表示される。
【００６４】
ブロックＢ１０６で、取得候補数が４個以上ではないと判定された場合、あるいはブロックＢ１０８で、取得回数が３回以上ではないと判定された場合、ブロックＢ１１０の例外処理は実行されず、直ぐにブロックＢ１１２の候補表示が行なわれる。
【００６５】
これにより、ブロックＢ１１２では、ブロックＢ１０４で取得され、ブロックＢ１１０で除外されなかった候補が表示される。このように、ストローク候補取得部３０８Ａは、クエリストロークを含むストローク群を取得するが、１セッション中で何度も候補として挙げられたものは、表示されない。これにより、選択される可能性が低いと見なされる候補は表示されることが無い。
【００６６】
候補の表示後、ブロックＢ１１４でいずれかの候補が選択されたか否か判定される。いずれかの候補が選択された場合は、ブロックＢ１１６で、編集画面に表示されているクエリストローク６１１に代えて選択候補が周囲のストロークのサイズと合うようにサイズが調整された後表示される。
【００６７】
ブロックＢ１１４でいずれかの候補も選択されない場合、クエリストロークの入力を続けるために、ブロックＢ１０２に戻り、次の１画のストロークが入力される。
【００６８】
このように選択される可能性の低い候補が表示されることがなく、選択される可能性の高いストローク候補が表示され、手書きによって多くの文字を容易に入力することができる。
【００６９】
図１０のフローチャートによると、図１１に示す２画目のクエリストローク「ｔの横棒」の入力までは、図９の場合と同様に、「ｓｔａｔｉｃ」、「ｓｔａｔｕｓ」、「ｓｔｒｅｅｔ」、「ｓｙｓｔｅｍ」、「ｓｙｍｂｏｌ」の５つの候補が表示される。しかし、３画目のクエリストローク「ｔの縦棒」が入力されると、「ｓｔａｔｉｃ」、「ｓｔａｔｕｓ」、「ｓｔｒｅｅｔ」、「ｓｔａｎｄ」、「ｓｙｍｔｅｍ」の５つの候補が取得されるが、１位の「ｓｔａｔｉｃ」は３回目の取得なので、候補から外され、ストローク候補「ｓｔａｔｉｃ」の表示が中止され、２位から５位の候補が順次１つ繰り上がり、「ｓｔａｔｕｓ」、「ｓｔｒｅｅｔ」、「ｓｔａｎｄ」、「ｓｙｍｔｅｍ」の４つの候補が表示され、さらに５番目の候補として「ｓｙｍｂｏｌ」が表示される。
【００７０】
４画目のクエリストローク「ａの横棒」が入力されると、「ｓｔａｔｕｓ」、「ｓｔａｎｄ」、「ｓｔａｔｉｏｎ」、「ｓｔａｒ」、「ｓｔａｙ」の５つの候補が表示される。５画目のクエリストローク「ｔの縦棒」が入力されると、「ｓｔａｔｕｓ」、「ｓｔａｔｉｏｎ」、「ｓｔａｙ」、「ｓｔａｔｉｏｎａｒｙ」の５つの候補が取得されるが、１位の「ｓｔａｔｕｓ」は３回目の取得なので、候補から外され、ストローク候補「ｓｔａｔｕｓ」の表示が中止され、２位から５位の候補が順次１つ繰り上がり、「ｓｔａｔｉｏｎ」、「ｓｔａｙ」、「ｓｔａｔｉｏｎａｒｙ」、「ｓｔａｔｅ」の４つの候補が表示される。この場合は、これ以上候補が取得されず、５番目の候補は空白である。
【００７１】
図１２のフローチャートは、例外処理を含むストローク補完処理の他の手順例を示す。ブロックＢ１０２（クエリストロークの入力）、ブロックＢ１０４（ストローク候補の取得）、ブロックＢ１０６（取得回数の判定）までは、図１０のフローチャートと同じである。ただし、図１０の場合は、取得するストローク候補の数は、同時に表示できる候補の数と一致させたが、図１２の場合は、取得するストローク候補の数は、同時に表示できる候補の数より多くてもよい。
【００７２】
ブロックＢ１０６で取得候補の数が４個以上であると判定された場合、ブロックＢ１２２で各候補に対して順位に応じたポイントを付与する。例えば、候補が１０個取得されるとすると、１位に１０ポイント、２位に９ポイント、…、１０位に１ポイントを付与し、各候補に付与したポイントの累計を求める。ただし、候補が１１位以下になった場合、累計値はクリアされる。
【００７３】
ブロックＢ１２４で、各候補の累計値が所定値ｋ（例えば、３０）以上であるか否か判定される。候補の累計値が大きいということは、過去に上位の候補として度々取得されたにも関わらず選択されなかったことであり、選択される可能性は非常に低い不要な候補であると見なすことができる。
【００７４】
ブロックＢ１２４で、各候補の累計値が３０以上であると判定された候補はブロックＢ１１０で候補から除外される（例外処理）。その後、図１０の場合同様にブロックＢ１１２でストローク候補が表示される。
【００７５】
図１２の例でも、選択される可能性の低い候補が表示されることがなく、選択される可能性の高いストローク候補が表示され、手書きによって多くの文字を容易に入力することができる。
【００７６】
図１３のフローチャートは、例外処理を含むストローク補完処理のさらに他の手順例を示す。ブロックＢ１０２（クエリストロークの入力）、ブロックＢ１０４（ストローク候補の取得）までは、図１０のフローチャートと同じである。ただし、図１０の場合は、取得するストローク候補の数は、同時に表示できる候補の数と一致させたが、図１３の場合は、取得するストローク候補の数は、同時に表示できる候補の数より多くてもよい。
【００７７】
ブロックＢ１３２で、上位の候補が以前のストローク入力時にも取得されていれば、当該候補の順位を下げる。例えば、２回連続して２位以内として取得された候補は、例えば、５位と順位を下げる。
【００７８】
ブロックＢ１３４で、候補を表示する。図１１のように、所定個数の上位候補のみを表示してもよいが、ここではスクロール方式あるいはドラムロール方式のＵＩによりすべての候補を１位から順に順位順に表示する。このため、ストローク候補取得部３０８Ａが高順位で取得しても、以前のストローク入力時にも取得されていれば、当該候補の優先度が下がり、優先的に表示されることがなくなり、代わりに選択される可能性の高い候補が表示され、手書きによって多くの文字を容易に入力することができる。
【００７９】
なお、本実施形態の各種処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【００８０】
このコンピュータプログラムがインストールされたコンピュータ内のＣＰＵは上述のストローク補完処理を実行するように構成されたプロセッサとして機能し得る。このコンピュータ内のＧＰＵはストロークそれぞれを画面上に表示するように構成された表示プロセッサとして機能し得る。
【００８１】
また、本実施形態では、タブレットコンピュータを使用する場合を例示して説明したが、本実施形態の手書き文書処理機能は、通常のデスクトップパーソナルコンピュータに適用することもできる。この場合、手書き入力のための入力デバイスであるタブレット等をデスクトップパーソナルコンピュータに接続すれば良い。
【００８２】
なお、これまでの説明では、ある手書き文字の一部に対応する１以上のストロークが入力された段階でストローク候補が表示される構成を説明したが、手書き文字全体が手書き入力されて始めて候補が表示される構成を適用してもよい。
【００８３】
図１０、図１２の例では、過去に入力され手書きノートデータベース４０２Ａに保存されている時系列情報２００（手書き文書情報）から、手書きによって入力される１以上のストロークに対応するストローク群を候補として取得し、取得した候補を表示するとしたが、候補の概念はこれに限定されない。すなわち、取得した候補を全て表示するＵＩではなく、候補は多数取得し、表示するのはその一部の上位候補のみとしてもよいし、取得したストローク群に順位を付けて、上位のストローク群のみを候補と見なしてもよい。さらに、候補表示ＵＩは、所定数の候補のみを同時に表示するものや、複数の候補をスクロールしたりドラムロール的に順次表示するものでもよい。要は、過去に上位の候補として取得されたが選択されないスクロール群が上位の候補として表示され続けることを回避するＵＩであれば、何でも良い。
【００８４】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８５】
１７…タッチスクリーンディスプレイ、１００…ペン、１０２…システムコントローラ、１０３…主メモリ、２０１…ＯＳ、２０２…手書きノートアプリケーション、３０１…ペン軌跡表示処理部、３０２…時系列情報生成部、３０６…手書き文書表示処理部、３０８…ストローク補完処理部、３０８Ａ…ストローク候補取得部、３０８Ｂ…例外処理部、３０８Ｃ…ストローク候補提示部、４０２…記憶媒体、４０２Ａ…手書きノートデータベース、４０２Ｂ…ストローク候補ノートデータベース
【図１】
2015191482.tif 000003
【図２】
2015191482.tif 000004
【図３】
2015191482.tif 000005
【図４】
2015191482.tif 000006
【図５】
2015191482.tif 000007
【図６】
2015191482.tif 000008
【図７】
2015191482.tif 000009
【図８】
2015191482.tif 000010
【図９】
2015191482.tif 000011
【図１０】
2015191482.tif 000012
【図１１】
2015191482.tif 000013
【図１２】
2015191482.tif 000014
【図１３】
2015191482.tif 000015