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