(57)【特許請求の範囲】
【請求項１】
タッチスクリーンディスプレイと、
前記タッチスクリーンディスプレイ上で行われる手書き入力操作によって手書きされる複数のストロークそれぞれの軌跡を、前記タッチスクリーンディスプレイの画面上に表示する第１の表示処理手段と、
前記複数のストロークに対応する複数のストロークデータと前記複数のストロークデータの手書きタイミングを示す複数の時間情報とを含む第１の手書き文書情報であって、前記複数のストロークデータが前記複数のストロークの手書き順に並べられている第１の手書き文書情報を、記憶媒体に保存する保存手段と、
前記第１の手書き文書情報に基づいて前記複数のストロークそれぞれに対応する軌跡を、前記画面上に表示する第２の表示処理手段と、
前記タッチスクリーンディスプレイ上で行われる範囲指定操作に応じて、前記第１の手書き文書情報から処理対象の手書き文書情報部分を選択する選択手段とを具備し、
前記選択手段は、
前記範囲指定操作によって指定される前記画面上の指定範囲内に複数の第１のストロークデータが含まれる場合、
前記第１の手書き文書情報において前記複数の第１のストロークデータ内の第２のストロークデータと前記複数の第１のストロークデータ内の他のストロークデータとの間に第１の数以上のストロークデータが存在する場合には、前記第２のストロークデータを前記処理対象の手書き文書情報部分から除外し、
前記第１の数以上のストロークデータが存在しない場合には、前記第２のストロークデータに対応する時間情報と前記他のストロークデータに対応する時間情報とを前記第１の手書き文書情報から取得し、前記第２のストロークデータに対応する時間情報と前記他のストロークデータに対応する時間情報との間の差が第１の時間以上であることを条件に前記第２のストロークデータを前記処理対象の手書き文書情報部分から除外する、電子機器。
【請求項２】
前記第１の手書き文書情報から、検索キーとして指定される手書き文書情報部分に対応するストロークの軌跡との類似度が基準値以上であるストロークの軌跡を有する手書き文書情報部分を見つけ出す検索手段をさらに具備する請求項１記載の電子機器。
【請求項３】
前記検索手段は、検索対象とすべき文字列または図形を手書きするための検索キー入力領域を前記画面上に表示し、前記検索キー入力領域に手書きされる文字列または図形を前記検索キーとして使用する請求項２記載の電子機器。
【請求項４】
前記検索手段は、前記選択手段によって選択される前記処理対象の手書き文書情報部分を、前記検索キーとして使用する請求項２記載の電子機器。
【請求項５】
前記検索手段は、前記選択手段によって選択される前記処理対象の手書き文書情報部分を除く前記第１の手書き文書情報内の他の手書き文書情報部分から、前記選択される前記処理対象の手書き文書情報部分に対応するストロークの軌跡との類似度が基準値以上であるストロークの軌跡を有する手書き文書情報部分を見つけ出すように構成されている請求項４記載の電子機器。
【請求項６】
互いに近傍に位置し且つ連続的に手書きされたストロークにそれぞれ対応するストロークデータ同士が同一ブロックに分類されるように前記第１の手書き文書情報に含まれる複数のストロークデータをグループ化処理することによって得られる複数のブロックの各々を文字認識して、前記複数のブロック内の手書き文字それぞれを文字コードに変換する文字認識手段をさらに具備する請求項１記載の電子機器。
【請求項７】
互いに近傍に位置し且つ連続的に手書きされたストロークにそれぞれ対応するストロークデータ同士が同一ブロックに分類されるように前記第１の手書き文書情報に含まれる複数のストロークデータをグループ化処理することによって得られる複数のブロック内の処理対象ブロックを、複数の図形オブジェクトの一つに変換するための図形認識処理を実行する図形認識手段をさらに具備する請求項１記載の電子機器。
【請求項８】
前記図形認識手段は、前記複数のブロックが文字であるか否かを判定する判定手段を含み、文字以外の各ブロックを対象に前記図形認識処理を実行するように構成されている請求項７記載の電子機器。
【請求項９】
互いに近傍に位置し且つ連続的に手書きされたストロークにそれぞれ対応するストロークデータ同士が同一ブロックに分類されるように前記第１の手書き文書情報に含まれる複数のストロークデータをグループ化処理することによって得られる複数のブロック内の処理対象ブロックが、幾つかの線状の軌跡の組み合わせを含む表形状であるか否かを認識し、前記処理対象ブロックが表形状であることが認識された場合、前記処理対象ブロックを、前記認識された表形状の縦横の要素数と同じ縦横の要素数を有するテーブルオブジェクトに変換する表認識手段をさらに具備する請求項１記載の電子機器。
【請求項１０】
前記表認識手段は、前記複数のブロックが文字であるか否かを判定する判定手段を含み、文字以外の各ブロックを対象に前記表認識処理を実行するように構成されている請求項９記載の電子機器。
【請求項１１】
タッチスクリーンディスプレイを備える電子機器によって手書き文書を処理するための手書き文書処理方法であって、
前記タッチスクリーンディスプレイ上で行われる手書き入力操作によって手書きされる複数のストロークそれぞれの軌跡を、前記タッチスクリーンディスプレイの画面上に表示することと、
前記複数のストロークに対応する複数のストロークデータと前記複数のストロークデータの手書きタイミングを示す複数の時間情報とを含む第１の手書き文書情報であって、前記複数のストロークデータが前記複数のストロークの手書き順に並べられている第１の手書き文書情報を、記憶媒体に保存することと、
前記第１の手書き文書情報を前記記憶媒体から読み出し、前記読み出される前記第１の手書き文書情報に基づいて前記複数のストロークそれぞれに対応する軌跡を、前記画面上に表示することと、
前記タッチスクリーンディスプレイ上で行われる範囲指定操作に応じて、前記第１の手書き文書情報から処理対象の手書き文書情報部分を選択することとを具備し、
前記選択することは、
前記範囲指定操作によって指定される前記画面上の指定範囲内に複数の第１のストロークデータが含まれる場合、
前記第１の手書き文書情報において前記複数の第１のストロークデータ内の第２のストロークデータと前記複数の第１のストロークデータ内の他のストロークデータとの間に第１の数以上のストロークデータが存在する場合には、前記第２のストロークデータを前記処理対象の手書き文書情報部分から除外することと、
前記第１の数以上のストロークデータが存在しない場合には、前記第２のストロークデータに対応する時間情報と前記他のストロークデータに対応する時間情報とを前記第１の手書き文書情報から取得し、前記第２のストロークデータに対応する時間情報と前記他のストロークデータに対応する時間情報との間の差が第１の時間以上であることを条件に前記第２のストロークデータを前記処理対象の手書き文書情報部分から除外することとを含む、手書き文書処理方法。
【請求項１２】
タッチスクリーンディスプレイを備えるコンピュータにより実行されるプログラムであって、前記プログラムは、
前記タッチスクリーンディスプレイ上で行われる手書き入力操作によって手書きされる複数のストロークそれぞれの軌跡を、前記タッチスクリーンディスプレイの画面上に表示する手順と、
前記複数のストロークに対応する複数のストロークデータと前記複数のストロークデータの手書きタイミングを示す複数の時間情報とを含む第１の手書き文書情報であって、前記複数のストロークデータが前記複数のストロークの手書き順に並べられている第１の手書き文書情報を、記憶媒体に保存する手順と、
前記第１の手書き文書情報を前記記憶媒体から読み出し、前記読み出される前記第１の手書き文書情報に基づいて前記複数のストロークそれぞれに対応する軌跡を、前記画面上に表示する手順と、
前記タッチスクリーンディスプレイ上で行われる範囲指定操作に応じて、前記第１の手書き文書情報から処理対象の手書き文書情報部分を選択する手順とを前記コンピュータに実行させ、
前記選択する手順は、
前記範囲指定操作によって指定される前記画面上の指定範囲内に複数の第１のストロークデータが含まれる場合、
前記第１の手書き文書情報において前記複数の第１のストロークデータ内の第２のストロークデータと前記複数の第１のストロークデータ内の他のストロークデータとの間に第１の数以上のストロークデータが存在する場合には、前記第２のストロークデータを前記処理対象の手書き文書情報部分から除外する手順と、
前記第１の数以上のストロークデータが存在しない場合には、前記第２のストロークデータに対応する時間情報と前記他のストロークデータに対応する時間情報とを前記第１の手書き文書情報から取得し、前記第２のストロークデータに対応する時間情報と前記他のストロークデータに対応する時間情報との間の差が第１の時間以上であることを条件に前記第２のストロークデータを前記処理対象の手書き文書情報部分から除外する手順とを含む、プログラム。
【請求項１３】
タッチスクリーンディスプレイと、
複数のストロークに対応する複数のストロークデータと前記複数のストロークデータの手書きタイミングを示す複数の時間情報とを含む手書き文書情報であって、前記複数のストロークデータが前記複数のストロークの手書き順に並べられている手書き文書情報に基づいて、前記複数のストロークそれぞれに対応する軌跡を、前記タッチスクリーンディスプレイの画面上に表示する表示処理手段と、
前記タッチスクリーンディスプレイ上で行われる範囲指定操作に応じて、前記手書き文書情報から処理対象の手書き文書情報部分を選択する選択手段とを具備し、
前記選択手段は、
前記範囲指定操作によって指定される前記画面上の指定範囲内に複数の第１のストロークデータが含まれる場合、
前記手書き文書情報において前記複数の第１のストロークデータ内の第２のストロークデータと前記複数の第１のストロークデータ内の他のストロークデータとの間に第１の数以上のストロークデータが存在する場合には、前記第２のストロークデータを前記処理対象の手書き文書情報部分から除外し、
前記第１の数以上のストロークデータが存在しない場合には、前記第２のストロークデータに対応する時間情報と前記他のストロークデータに対応する時間情報とを前記手書き文書情報から取得し、前記第２のストロークデータに対応する時間情報と前記他のストロークデータに対応する時間情報との間の差が第１の時間以上であることを条件に前記第２のストロークデータを前記処理対象の手書き文書情報部分から除外する、電子機器。
【請求項１４】
タッチスクリーンディスプレイを備えるコンピュータにより実行されるプログラムであって、前記プログラムは、
複数のストロークに対応する複数のストロークデータと前記複数のストロークデータの手書きタイミングを示す複数の時間情報とを含む手書き文書情報であって、前記複数のストロークデータが前記複数のストロークの手書き順に並べられている手書き文書情報に基づいて、前記複数のストロークそれぞれに対応する軌跡を、前記タッチスクリーンディスプレイの画面上に表示する手順と、
前記タッチスクリーンディスプレイ上で行われる範囲指定操作に応じて、前記手書き文書情報から処理対象の手書き文書情報部分を選択する手順とを前記コンピュータに実行させ、
前記選択する手順は、
前記範囲指定操作によって指定される前記画面上の指定範囲内に複数の第１のストロークデータが含まれる場合、
前記手書き文書情報において前記複数の第１のストロークデータ内の第２のストロークデータと前記複数の第１のストロークデータ内の他のストロークデータとの間に第１の数以上のストロークデータが存在する場合には、前記第２のストロークデータを前記処理対象の手書き文書情報部分から除外する手順と、
前記第１の数以上のストロークデータが存在しない場合には、前記第２のストロークデータに対応する時間情報と前記他のストロークデータに対応する時間情報とを前記手書き文書情報から取得し、前記第２のストロークデータに対応する時間情報と前記他のストロークデータに対応する時間情報との間の差が第１の時間以上であることを条件に前記第２のストロークデータを前記処理対象の手書き文書情報部分から除外する手順とを含む、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、手書き文書を処理することが可能な電子機器および同電子機器で用いられる手書き文書処理方法に関する。
【背景技術】
【０００２】
近年、タブレット、ＰＤＡ、スマートフォンといった種々の電子機器が開発されている。この種の電子機器の多くは、ユーザによる入力操作を容易にするために、タッチスクリーンディスプレイを備えている。
【０００３】
ユーザは、タッチスクリーンディスプレイ上に表示されるメニューまたはオブジェクトを指などでタッチすることにより、これらメニューまたはオブジェクトに関連づけられた機能の実行を携帯型電子機器に指示することができる。
【０００４】
しかし、タッチスクリーンディスプレイを備える既存の電子機器の多くは、画像、音楽、他の各種メディアデータに対する操作性を追求したコンシューマ向け製品であり、会議、商談、商品開発などのビジネスシーンにおける利用については必ずしも適していない場合がある。このため、ビジネスシーンにおいては、いまなお、紙の手帳が広く利用されている。
【０００５】
最近では、タブレット等を使用して手書きされた文字を認識するための文字認識技術も開発されている。ユーザによって手書きされた文字は文字コードに変換される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第３９１３７１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、文字認識技術は多数の文字コードから構成されるデジタル文書データを作成するためのフロントエンドとして用いられることがほとんどである。
【０００８】
ビジネスシーンにおいては、電子機器は、人の発想活動の支援を可能にしたり、過去に作成した文書のような資料の再利用を容易にしたりするためのデジタルツールとして機能することが期待される場合がある。
【０００９】
本発明は、手書き文書を容易に扱うことができる電子機器および手書き文書処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
実施形態によれば、電子機器は、タッチスクリーンディスプレイと、第１の表示処理手段と、保存手段と、第２の表示処理手段と、選択手段とを具備する。第１の表示処理手段は、前記タッチスクリーンディスプレイ上で行われる手書き入力操作によって手書きされる複数のストロークそれぞれの軌跡を、前記タッチスクリーンディスプレイの画面上に表示する。前記保存手段は、前記複数のストロークに対応する複数のストロークデータと前記複数のストロークデータの手書きタイミングを示す複数の時間情報とを含む第１の手書き文書情報であって、前記複数のストロークデータが前記複数のストロークの手書き順に並べられている第１の手書き文書情報を、記憶媒体に保存する。前記第２の表示処理手段は、前記第１の手書き文書情報に基づいて前記複数のストロークそれぞれに対応する軌跡を、前記画面上に表示する。前記選択手段は、前記タッチスクリーンディスプレイ上で行われる範囲指定操作に応じて、前記第１の手書き文書情報から処理対象の手書き文書情報部分を選択する。前記選択手段は、前記範囲指定操作によって指定される前記画面上の指定範囲内に複数の第１のストロークデータが含まれる場合、前記第１の手書き文書情報において前記複数の第１のストロークデータ内の第２のストロークデータと前記複数の第１のストロークデータ内の他のストロークデータとの間に第１の数以上のストロークデータが存在する場合には、前記第２のストロークデータを前記処理対象の手書き文書情報部分から除外し、前記第１の数以上のストロークデータが存在しない場合には、前記第２のストロークデータに対応する時間情報と前記他のストロークデータに対応する時間情報とを前記第１の手書き文書情報から取得し、前記第２のストロークデータに対応する時間情報と前記他のストロークデータに対応する時間情報との間の差が第１の時間以上であることを条件に前記第２のストロークデータを前記処理対象の手書き文書情報部分から除外する。
【図面の簡単な説明】
【００１１】
【図１】実施形態に係る電子機器の外観を示す斜視図。
【図２】同実施形態の電子機器と外部装置との連携動作を示す図。
【図３】同実施形態の電子機器のタッチスクリーンディスプレイ上に手書きされる手書き文書の例を示す図。
【図４】同実施形態の電子機器によって記憶媒体に保存される、図３の手書き文書に対応する時系列情報を説明するための図。
【図５】同実施形態の電子機器のシステム構成を示すブロック図。
【図６】同実施形態の電子機器によって実行されるデジタルノートブックアプリケーションプログラムの機能構成を示すブロック図。
【図７】同実施形態の電子機器によって実行される手書き文書作成処理の手順を示すフローチャート。
【図８】同実施形態の電子機器によって実行される、処理対象の時系列情報部分を選択するための選択処理の手順を示すフローチャート。
【図９】同実施形態の電子機器によって表示される検索画面を示す図。
【図１０】図９の検索画面上に表示される検索結果を示す図。
【図１１】図９の検索画面からあるページにジャンプする様子を示す図。
【図１２】同実施形態の電子機器によって実行される、表示中の時系列情報内の特定の時系列情報部分を検索クエリとして選択するための動作を説明するための図。
【図１３】同実施形態の電子機器によって実行される検索処理の手順を示すフローチャート。
【図１４】図６のデジタルノートブックアプリケーションプログラムに含まれる認識処理部の機能構成を示すブロック図。
【図１５】同実施形態の電子機器によって実行される、時系列情報をペイント系アプリケーションデータに変換するための認識処理を説明するための図。
【図１６】同実施形態の電子機器によって実行される認識処理の手順を示すフローチャート。
【発明を実施するための形態】
【００１２】
以下、実施の形態について図面を参照して説明する。  
図１は、一実施形態に係る電子機器の外観を示す斜視図である。この電子機器は、例えば、ペンまたは指によって手書き入力可能なペン・ベースの携帯型電子機器である。この電子機器は、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、スマートフォン、ＰＤＡ等として実現され得る。以下では、この電子機器がタブレットコンピュータ１０として実現されている場合を想定する。タブレットコンピュータ１０は、タブレットまたはストレートコンピュータとも称される携帯型電子機器であり、図１に示すように、本体１１とタッチスクリーンディスプレイ１７とを備える。タッチスクリーンディスプレイ１７は、本体１１の上面に重ね合わせるように取り付けられている。
【００１３】
本体１１は、薄い箱形の筐体を有している。タッチスクリーンディスプレイ１７には、フラットパネルディスプレイと、フラットパネルディスプレイの画面上のペンまたは指の接触位置を検出するように構成されたセンサとが組み込まれている。フラットパネルディスプレイは、例えば、液晶表示装置（ＬＣＤ）であってもよい。センサとしては、例えば、静電容量方式のタッチパネル、電磁誘導方式のデジタイザなどを使用することができる。以下では、デジタイザとタッチパネルの２種類のセンサの双方がタッチスクリーンディスプレイ１７に組み込まれている場合を想定する。
【００１４】
デジタイザおよびタッチパネルタッチの各々は、フラットパネルディスプレイの画面を覆うように設けられる。このタッチスクリーンディスプレイ１７は、指を使用した画面に対するタッチ操作のみならず、ペン１００を使用した画面に対するタッチ操作も検出することができる。ペン１００は例えば電磁誘導ペンであってもよい。ユーザは、外部オブジェクト（ペン１００又は指）を使用してタッチスクリーンディスプレイ１７上で手書き入力操作を行うことができる。手書き入力操作中においては、画面上の外部オブジェクト（ペン１００又は指）の動きの軌跡、つまり手書き入力操作によって手書きされるストロークの軌跡（筆跡）がリアルタイムに描画され、これによって各ストロークの軌跡が画面上に表示される。外部オブジェクトが画面に接触されている間の外部オブジェクトの動きの軌跡が１ストロークに相当する。手書きされた文字または図形などに対応する多数のストロークの集合、つまり多数の軌跡（筆跡）の集合が手書き文書を構成する。
【００１５】
本実施形態では、この手書き文書は、イメージデータではなく、各ストロークの軌跡の座標列とストローク間の順序関係を示す時系列情報として記憶媒体に保存される。この時系列情報の詳細は図４を参照して後述するが、この時系列情報は、複数のストロークが手書きされた順を示し、且つ複数のストロークにそれぞれ対応する複数のストロークデータを含む。換言すれば、この時系列情報は、複数のストロークにそれぞれ対応する時系列のストロークデータの集合を意味する。各ストロークデータは、ある一つのストロークに対応し、このストロークの軌跡上の点それぞれに対応する座標データ系列（時系列座標）を含む。これらストロークデータの並びの順序は、ストロークそれぞれが手書きされた順序つまり筆順に相当する。
【００１６】
タブレットコンピュータ１０は、記憶媒体から既存の任意の時系列情報を読み出し、この時系列情報に対応する手書き文書、つまりこの時系列情報によって示される複数のストロークそれぞれに対応する軌跡を画面上に表示することができる。さらに、タブレットコンピュータ１０は編集機能を有している。この編集機能は、「消しゴム」ツール、範囲指定ツール、および他の各種ツール等を用いたユーザによる編集操作に応じて、表示中の手書き文書内の任意のストロークまたは任意の手書き文字等を削除または移動することができる。さらに、この編集機能は、幾つかの手書き操作の履歴を取り消す機能も含んでいる。
【００１７】
本実施形態では、時系列情報（手書き文書）は、１つまたは複数のページとして管理されうる。この場合、時系列情報（手書き文書）を１つの画面に収まる面積単位で区切ることによって、１つの画面に収まる時系列情報のまとまりを１つのページとして記録してもよい。あるいは、ページのサイズを可変できるようにしてもよい。この場合、ページのサイズは１つの画面のサイズよりも大きい面積に広げることができるので、画面のサイズよりも大きな面積の手書き文書を一つのページとして扱うことができる。１つのページ全体をディスプレイに同時に表示できない場合は、そのページを縮小してするようにしてもよいし、縦横スクロールによってページ内の表示対象部分を移動するようにしてもよい。
【００１８】
図２は、タブレットコンピュータ１０と外部装置との連携動作の例を示している。タブレットコンピュータ１０は、パーソナルコンピュータ１やクラウドと連携することができる。すなわち、タブレットコンピュータ１０は、無線ＬＡＮなどの無線通信デバイスを備えており、パーソナルコンピュータ１との無線通信を実行することができる。さらに、タブレットコンピュータ１０は、インターネット上のサーバ２との通信を実行することもできる。サーバ２はオンラインストレージサービス、他の各種クラウドコンピューティングサービスを実行するサーバであってもよい。
【００１９】
パーソナルコンピュータ１はハードディスクドライブ（ＨＤＤ）のようなストレージデバイスを備えている。タブレットコンピュータ１０は、時系列情報（手書き文書）をネットワーク越しにパーソナルコンピュータ１に送信して、パーソナルコンピュータ１のＨＤＤに記録することができる（アップロード）。タブレットコンピュータ１０とパーソナルコンピュータ１との間のセキュアな通信を確保するために、通信開始時には、パーソナルコンピュータ１がタブレットコンピュータ１０を認証するようにしてもよい。この場合、タブレットコンピュータ１０の画面上にユーザに対してＩＤまたはパスワードの入力を促すダイアログを表示してもよいし、タブレットコンピュータ１０のＩＤなどを自動的にタブレットコンピュータ１０からパーソナルコンピュータ１に送信してもよい。
【００２０】
これにより、タブレットコンピュータ１０内のストレージの容量が少ない場合でも、タブレットコンピュータ１０が多数の時系列情報（手書き文書）あるいは大容量の時系列情報（手書き文書）を扱うことが可能となる。
【００２１】
さらに、タブレットコンピュータ１０は、パーソナルコンピュータ１のＨＤＤに記録されている任意の１以上の時系列情報を読み出し（ダウンロード）、その読み出した時系列情報によって示されるストロークそれぞれの軌跡をタブレットコンピュータ１０のディスプレイ１７の画面に表示することができる。この場合、複数の時系列情報（手書き文書）それぞれのページを縮小することによって得られるサムネイルの一覧をディスプレイ１７の画面上に表示してもよいし、これらサムネイルから選ばれた１ページをディスプレイ１７の画面上に通常サイズで表示してもよい。
【００２２】
さらに、タブレットコンピュータ１０が通信する先はパーソナルコンピュータ１ではなく、上述したように、ストレージサービスなどを提供するクラウド上のサーバ２であってよい。タブレットコンピュータ１０は、時系列情報（手書き文書）をネットワーク越しにサーバ２に送信して、サーバ２のストレージデバイス２Ａに記録することができる（アップロード）。さらに、タブレットコンピュータ１０は、サーバ２のストレージデバイス２Ａに記録されている任意の時系列情報を読み出して（ダウンロード）、その時系列情報によって示されるストロークそれぞれの軌跡をタブレットコンピュータ１０のディスプレイ１７の画面に表示することができる。
【００２３】
このように、本実施形態では、時系列情報が格納される記憶媒体は、タブレットコンピュータ１０内のストレージデバイス、パーソナルコンピュータ１内のストレージデバイス、サーバ２のストレージデバイスのいずれであってもよい。
【００２４】
次に、図３および図４を参照して、ユーザによって手書きされたストローク（文字、マーク、図形、表など）と時系列情報との関係について説明する。図３は、ペン１００などを使用してタッチスクリーンディスプレイ１７上に手書きされる手書き文書（手書き文字列）の例を示している。
【００２５】
手書き文書では、一旦手書きされた文字や図形などの上に、さらに別の文字や図形などが手書きされるというケースが多い。図３においては、「ＡＢＣ」の手書き文字列が「Ａ」、「Ｂ」、「Ｃ」の順番で手書きされ、この後に、手書きの矢印が、手書き文字「Ａ」のすぐ近くに手書きされた場合が想定されている。
【００２６】
手書き文字「Ａ」は、ペン１００などを使用して手書きされる２つのストローク（「∧」形状の軌跡、「−」形状の軌跡）によって、つまり２つの軌跡によって表現される。最初に手書きされる「∧」形状のペン１００の軌跡は例えば等時間間隔でリアルタイムにサンプリングされ、これによって「∧」形状のストロークの時系列座標ＳＤ１１、ＳＤ１２、…ＳＤ１ｎが得られる。同様に、次に手書きされる「−」形状のペン１００の軌跡もサンプリングされ、これによって「−」形状のストロークの時系列座標ＳＤ２１、ＳＤ２１、…ＳＤ２ｎが得られる。
【００２７】
手書き文字「Ｂ」は、ペン１００などを使用して手書きされた２つのストローク、つまり２つの軌跡によって表現される。手書き文字「Ｃ」は、ペン１００などを使用して手書きされた手書きされた１つのストローク、つまり１つの軌跡によって表現される。手書きの「矢印」は、ペン１００などを使用して手書きされた手書きされた２つのストローク、つまり２つの軌跡によって表現される。
【００２８】
図４は、図３の手書き文書に対応する時系列情報２００を示している。時系列情報は、複数のストロークデータＳＤ１、ＳＤ２、…、ＳＤ７を含む。時系列情報２００内においては、これらストロークデータＳＤ１、ＳＤ２、…、ＳＤ７は、筆跡順に、つまり複数のストロークが手書きされた順に時系列に並べている。
【００２９】
時系列情報２００において、先頭の２つのストロークデータＳＤ１、ＳＤ２は、手書き文字「Ａ」の２つのストロークをそれぞれ示している。３番目と４番目のストロークデータＳＤ３、ＳＤ４は、手書き文字「Ｂ」を構成する２つのストロークをそれぞれ示している。５番目のストロークデータＳＤ５は、手書き文字「Ｃ」を構成する１つのストロークを示している。６番目と７番目のストロークデータＳＤ６、ＳＤ７は、手書き「矢印」を構成する２つのストロークをそれぞれ示している。
【００３０】
各ストロークデータは、一つのストロークに対応する座標データ系列（時系列座標）、つまり一つのストロークの軌跡上の複数の点それぞれに対応する複数の座標を含む。各ストロークデータにおいては、複数の座標はストロークが書かれた順に時系列に並べられている。例えば、手書き文字「Ａ」に関しては、ストロークデータＳＤ１は、手書き文字「Ａ」の「∧」形状のストロークの軌跡上の点それぞれに対応する座標データ系列（時系列座標）、つまりｎ個の座標データＳＤ１１、ＳＤ１２、…ＳＤ１ｎを含む。ストロークデータＳＤ２は、手書き文字「Ａ」の「−」形状のストロークの軌跡上の点それぞれに対応する座標データ系列、つまりｎ個の座標データＳＤ２１、ＳＤ２２、…ＳＤ２ｎを含む。なお、座標データの数はストロークデータ毎に異なっていてもよい。
【００３１】
各座標データは、対応する軌跡内のある１点に対応するＸ座標およびＹ座標を示す。例えば、座標データＳＤ１１は、「∧」形状のストロークの始点のＸ座標（Ｘ１１）およびＹ座標（Ｙ１１）を示す。ＳＤ１ｎは、「∧」形状のストロークの終点のＸ座標（Ｘ１ｎ）およびＹ座標（Ｙ１ｎ）を示す。
【００３２】
さらに、各座標データは、その座標に対応する点が手書きされた時点に対応するタイムスタンプ情報Ｔを含んでいてもよい。手書きされた時点は、絶対時間（例えば、年月日時分秒）またはある時点を基準とした相対時間のいずれであってもよい。例えば、各ストロークデータに、ストロークが書き始められた絶対時間（例えば、年月日時分秒）をタイムスタンプ情報として付加し、さらに、ストロークデータ内の各座標データに、絶対時間との差分を示す相対時間をタイムスタンプ情報Ｔとして付加してもよい。
【００３３】
このように、各座標データにタイムスタンプ情報Ｔが追加された時系列情報を使用することにより、ストローク間の時間的関係をより精度よく表すことができる。
【００３４】
さらに、各座標データには、筆圧を示す情報（Ｚ）を追加してもよい。
【００３５】
図４で説明したような構造を有する時系列情報２００は、個々のストロークの筆跡だけでなく、ストローク間の時間的関係も表すことができる。したがって、この時系列情報２００を使用することにより、図３に示すようにたとえ手書き「矢印」の先端部が手書き文字「Ａ」上に重ねてまたは手書き文字「Ａ」に近接して書かれたとしても、手書き文字「Ａ」と手書き「矢印」の先端部とを異なる文字または図形として扱うことが可能となる。
【００３６】
いま、図３に破線の四角で示されているように、ユーザによって画面上のある範囲が指定された場合を想定する。破線の四角によって示される指定範囲には、手書き文字「Ａ」の２つのストロークと、手書き「矢印」の先端部に対応する１つのストロークが含まれている。通常であれば、手書き文字「Ａ」の２つのストロークのみならず、手書き「矢印」の先端部に対応する１つのストロークも、処理対象の時系列情報部分として選択されてしまう可能性がある。
【００３７】
しかし、本実施形態では、時系列情報２００を使用することにより、手書き「矢印」の先端部を処理対象の時系列情報部分から除外することができる。すなわち、本実施形態では、時系列情報２００が解析され、これによって手書き文字「Ａ」の２つのストローク（ストロークデータＳＤ１、ＳＤ２）については連続的に手書きされたものと判定され、さらに、手書き「矢印」の先端部（ストロークデータＳＤ７）の手書きタイミングは、手書き文字「Ａ」の手書きタイミングと不連続であることが判定される。したがって、手書き「矢印」の先端部（ストロークデータＳＤ７）を処理対象の時系列情報部分から除外することができる。この場合、手書き「矢印」の先端部（ストロークデータＳＤ７）の手書きタイミングが手書き文字「Ａ」の手書きタイミングと不連続であるか否かの判定は、時系列情報２００内のストロークデータの並びに基づいて行うことができる。
【００３８】
例えば、図４の時系列情報２００においては、ストロークデータＳＤ２とストロークデータＳＤ７との間に多数のストロークそれぞれに対応する多数のストロークデータデータが存在しているので、ストロークデータＳＤ７の書き込みタイミングがストロークデータＳＤ２の書き込みタイミングと不連続であると判定することができる。
【００３９】
あるいは、この判定処理は、時系列情報２００内のストロークデータの並びを使用する代わりに、上述のタイムスタンプ情報Ｔを使用して実行してもよい。タイムスタンプ情報Ｔを使用することにより、ストロークデータの並びを使用する場合よりも、上述の判定処理をより高精度に判定することができる。例えば、ストロークデータＳＤ２のタイムスタンプ情報とストロークデータＳＤ７のタイムスタンプ情報との間の差分に基づいて、ストロークデータＳＤ７の書き込みタイミングとストロークデータＳＤ２の書き込みタイミングとが不連続（時間的に不連続）であるか否か、すなわち、ストロークデータＳＤ７の書き込みタイミングとストロークデータＳＤ７の手書きタイミングとの間の時間距離が所定時間以上離れているか否かを判定してもよい。
【００４０】
このように、指定範囲内に属するストローク群（第１のストローク群）それぞれに対応するタイムスタンプ情報を上述の判定処理に使用することにより、第１のストローク群の中から、手書きタイミングが他のストロークの手書きタイミングと不連続（時間的に不連続）であるストロークを処理対象の時系列情報部分から容易に除外することができる。
【００４１】
例えば、いま、図３の矢印が文字列「ＡＢＣ」が手書きされた後では無く、文字「Ａ」が手書きに続いて手書きされた場合を想定する。例えば、もし「−」形状のストロークの次に「矢印」の先端部に対応するストロークが手書きされたならば、時系列情報２００においては、「−」形状のストロークに対応するストロークデータＳＤ２のすぐ下に、「矢印」の先端部に対応するストロークデータＳＤ７が配置されうる。
【００４２】
このような場合であっても、指定範囲内に属する個々のストロークに対応するタイムスタンプ情報Ｔを使用して上述の判定処理を行うことにより、手書き「矢印」の先端部を処理対象の時系列情報部分から除外することができる。なぜなら、通常、同じ文字内においては、筆順が連続する２つのストロークそれぞれの手書きタイミング間の差はある基準時間よりも短いことが多い。これに対し、異なる文字間においては、連続する２つのストロークそれぞれの手書きタイミング間の差は比較的大きくなる場合が多い。
【００４３】
したがって、上述のように、文字「Ａ」が手書きされた後に「矢印」の先端部が手書きされた場合においては、「∧」形状のストロークデータＳＤ１のタイムスタンプ情報と「−」形状のストロークデータＳＤ２のタイムスタンプ情報との間の差は少ないが、「−」形状のストロークデータＳＤ２のタイムスタンプ情報と「矢印」の先端部に対応するストロークデータＳＤ７のタイムスタンプ情報との間の差は大きくなる。
【００４４】
よって、たとえ「−」形状のストロークの次に「矢印」の先端部に対応するストロークが手書きされたとしても、つまり、指定範囲内に属するストロークデータＳＤ１、ＳＤ２、ＳＤ７が時系列情報２００内において互いに近接して配置されていたとしても、例えば、ストロークデータＳＤ２のタイムスタンプ情報とストロークデータＳＤ７のタイムスタンプ情報とを比較することにより、手書き「矢印」の先端部（ストロークデータＳＤ７）の手書きタイミングが手書き文字「Ａ」の「−」形状のストロークの手書きタイミングと（時間的に）不連続であると判定することができる。
【００４５】
なお、ストロークデータＳＤ１のタイムスタンプ情報としては、ストロークデータＳＤ１の内の複数の座標それぞれに対応する複数のタイムスタンプ情報Ｔ１１からＴ１ｎから選択される任意の一つを、あるいはタイムスタンプ情報Ｔ１１からＴ１ｎの平均値などを使用してもよい。同様に、ストロークデータＳＤ２のタイムスタンプ情報としては、ストロークデータＳＤ２の内の複数の座標点それぞれに対応する複数のタイムスタンプ情報Ｔ２１からＴ２ｎから選択される任意の一つを、あるいはタイムスタンプ情報Ｔ２１からＴ２ｎの平均値などを使用してもよい。また、同様に、ストロークデータＳＤ７のタイムスタンプ情報としては、ストロークデータＳＤ７の内の複数の座標点それぞれに対応する複数のタイムスタンプ情報Ｔ７１からＴ７ｎから選択される任意の一つを、あるいはタイムスタンプ情報Ｔ７１からＴ７ｎの平均値などを使用してもよい。
【００４６】
あるいは、先行するストロークの最後の座標点に対応するタイムスタンプ情報と後続するストロークの先頭の座標点に対応するタイムスタンプ情報とを比較するようにしてもよい。例えば、ストロークデータＳＤ２とストロークＳＤ７とが近接して配置されている場合には、ストロークデータＳＤ２の最後の座標点に対応するタイムスタンプ情報Ｔ２ｎとストロークデータＳＤ７内の先頭の座標点に対応するタイムスタンプ情報Ｔ７１とを比較してもよい。
【００４７】
また、上述の判定処理は、時系列情報内のストロークデータの並びとタイムスタンプ情報Ｔの双方に基づいて実行してもよい。
【００４８】
例えば、ストロークデータＳＤ２とストロークデータＳＤ７との間に所定数以上のストロークデータが含まれている場合には、ストロークデータＳＤ７の書き込みタイミングがストロークデータＳＤ２の書き込みタイミングと不連続であると即座に判定し、ストロークデータＳＤ２とストロークデータＳＤ７との間のストロークデータ数が所定数よりも少ない場合には、ストロークデータＳＤ２内のタイムスタンプ情報とストロークデータＳＤ７のタイムスタンプ情報とに基づいて、ストロークデータＳＤ７の書き込みタイミングがストロークデータＳＤ２の書き込みタイミングと不連続であるか否かを判定してもよい。
【００４９】
この場合、ストロークデータＳＤ２内の最後の座標データに付加されたタイムスタンプ情報Ｔ２ｎとストロークデータＳＤ７内の先頭の座標データに付加されたタイムスタンプ情報Ｔ７１とを比較してもよい。
【００５０】
さらに、本実施形態の時系列情報２００においては、上述したように、ストロークデータＳＤ１、ＳＤ２、…、ＳＤ７の並びは手書き文字の筆順を示す。例えば、ストロークデータＳＤ１およびＳＤ２の並びは、最初に「∧」形状のストロークが手書きされ、次に「−」形状のストロークが手書きされたことを表す。したがって、たとえ２つの手書き文字の筆跡同士が互いに類似していても、それら２つの手書き文字の筆順が互いに異なる場合には、それら２つの手書き文字を異なる文字として区別することができる。
【００５１】
さらに、本実施形態では、上述したように、手書き文書は、イメージまたは文字認識結果ではなく、時系列のストロークデータの集合から構成される時系列情報２００として記憶されるので、手書き文字の言語に依存せずに手書き文字を扱うことができる。よって、本実施形態の時系列情報２００の構造は、使用言語の異なる世界中の様々な国で共通に使用できる。
【００５２】
図５は、タブレットコンピュータ１０のシステム構成を示す図である。  
タブレットコンピュータ１０は、図５に示されるように、ＣＰＵ１０１、システムコントローラ１０２、主メモリ１０３、グラフィクスコントローラ１０５、ＢＩＯＳ−ＲＯＭ１０５、不揮発性メモリ１０６、無線通信デバイス１０７、エンベデッドコントローラ（ＥＣ）１０８等を備える。
【００５３】
ＣＰＵ１０１は、タブレットコンピュータ１０内の各種モジュールの動作を制御するプロセッサである。ＣＰＵ１０１は、ストレージデバイスである不揮発性メモリ１０６から主メモリ１０３にロードされる各種ソフトウェアを実行する。これらソフトウェアには、オペレーティングシステム（ＯＳ）２０１、および各種アプリケーションプログラムが含まれている。アプリケーションプログラムには、デジタルノートブックアプリケーションプログラム２０２が含まれている。このデジタルノートブックアプリケーションプログラム２０２は、上述の手書き文書を作成および表示する機能、手書き文書を編集する機能、筆跡検索機能、および文字・図表認識機能等を有している。
【００５４】
また、ＣＰＵ１０１は、ＢＩＯＳ−ＲＯＭ１０５に格納された基本入出力システム（ＢＩＯＳ）も実行する。ＢＩＯＳは、ハードウェア制御のためのプログラムである。
【００５５】
システムコントローラ１０２は、ＣＰＵ１０１のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ１０２には、主メモリ１０３をアクセス制御するメモリコントローラも内蔵されている。また、システムコントローラ１０２は、ＰＣＩ  ＥＸＰＲＥＳＳ規格のシリアルバスなどを介してグラフィクスコントローラ１０４との通信を実行する機能も有している。
【００５６】
グラフィクスコントローラ１０４は、本タブレットコンピュータ１０のディスプレイモニタとして使用されるＬＣＤ１７Ａを制御する表示コントローラである。このグラフィクスコントローラ１０４によって生成される表示信号はＬＣＤ１７Ａに送られる。ＬＣＤ１７Ａは、表示信号に基づいて画面イメージを表示する。このＬＣＤ１７Ａ上にはタッチパネル１７Ｂおよびデジタイザ１７Ｃが配置されている。タッチパネル１７Ｂは、ＬＣＤ１７Ａの画面上で入力を行うための静電容量式のポインティングデバイスである。指が接触される画面上の接触位置および接触位置の動き等はタッチパネル１７Ｂによって検出される。デジタイザ１７ＣはＬＣＤ１７Ａの画面上で入力を行うための電磁誘導式のポインティングデバイスである。ペン１００が接触される画面上の接触位置および接触位置の動き等はデジタイザ１７Ｃによって検出される。
【００５７】
無線通信デバイス１０７は、無線ＬＡＮまたは３Ｇ移動通信などの無線通信を実行するように構成されたデバイスである。ＥＣ１０８は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。ＥＣ１０８は、ユーザによるパワーボタンの操作に応じて本タブレットコンピュータ１０を電源オンまたは電源オフする機能を有している。
【００５８】
次に、図６を参照して、デジタルノートブックアプリケーションプログラム２０２の機能構成について説明する。
【００５９】
デジタルノートブックアプリケーションプログラム２０２は、ペン軌跡表示処理部３０１、時系列情報生成部３０２、編集処理部３０３、ページ保存処理部３０４、ページ取得処理部３０５、手書き文書表示処理部３０６、処理対象ブロック選択部３０７、および処理部３０８等を備える。
【００６０】
デジタルノートブックアプリケーションプログラム２０２は、タッチスクリーンディスプレイ１７を用いて入力されるストロークデータを使用することによって、手書き文書の作成、表示、編集等を行う。タッチスクリーンディスプレイ１７は、「タッチ」、「移動（スライド）」、「リリース」等のイベントの発生を検出するように構成されている。「タッチ」は、画面上に外部オブジェクトが接触したことを示すイベントである。「移動（スライド）」は、画面上に外部オブジェクトが接触されている間に接触位置が移動されたことを示すイベントである。「リリース」は、画面から外部オブジェクトが離されたことを示すイベントである。
【００６１】
ペン軌跡表示処理部３０１および時系列情報生成部３０２は、タッチスクリーンディスプレイ１７によって発生される「タッチ」または「移動（スライド）」のイベントを受信し、これによって手書き入力操作を検出する。「タッチ」イベントには、接触位置の座標が含まれている。「移動（スライド）」イベントにも、移動先の接触位置の座標が含まれている。したがって、ペン軌跡表示処理部３０１および時系列情報生成部３０２は、タッチスクリーンディスプレイ１７から、接触位置の動きの軌跡に対応する座標列を受信することができる。
【００６２】
ペン軌跡表示処理部３０１は、タッチスクリーンディスプレイ１７から座標列を受信し、この座標列に基づいて、ペン１００等を使用した手書き入力操作によって手書きされる各ストロークの軌跡をタッチスクリーンディスプレイ１７内のＬＣＤ１７Ａの画面上に表示する。このペン軌跡表示処理部３０１により、画面にペン１００が接触している間のペン１００の軌跡、つまり各ストロークの軌跡がＬＣＤ１７Ａの画面上に描かれる。
【００６３】
時系列情報生成部３０２は、タッチスクリーンディスプレイ１７から出力される上述の座標列を受信し、この座標列に基づいて、図４で詳述したような構造を有する上述の時系列情報を生成する。この場合、時系列情報、つまりストロークの各点に対応する座標およびタイムスタンプ情報は作業メモリ４０１に一時保存してもよい。
【００６４】
ページ保存処理部３０４は、生成された時系列情報を手書き文書（手書きページ）として記憶媒体４０２に保存する。記憶媒体４０２は、上述したように、タブレットコンピュータ１０内のストレージデバイス、パーソナルコンピュータ１内のストレージデバイス、サーバ２のストレージデバイスのいずれであってもよい。
【００６５】
ページ取得処理部３０５は、記憶媒体４０２から既に格納されている任意の時系列情報を読み出す。読み出された時系列情報は手書き文書表示処理部３０６に送られる。手書き文書表示処理部３０６は、時系列情報を解析し、この解析結果に基づいて、時系列情報によって示される各ストロークの軌跡を画面上に手書きページとして表示する。
【００６６】
編集処理部３０３は現在表示中の手書きページを編集するための処理を実行する。すなわち、編集処理部３０３は、タッチスクリーンディスプレイ１７上でユーザによって行われる編集操作に応じて、表示されている複数のストローク内の１以上のストロークを削除または移動等するための編集処理を実行する。さらに、編集処理部３０３は、編集処理の結果を表示中の時系列情報に反映するためにこの時系列情報を更新する。
【００６７】
ユーザは、「消しゴム」ツール等を使用して、表示されている複数のストローク内の任意のストロークを削除することができる。また、ユーザは、画面上の任意の部分を丸または四角によって囲むための「範囲指定」ツールを使用して、表示中の時系列情報（手書きページ）内の任意の部分を範囲していることができる。この範囲指定操作によって指定される画面上の指定範囲に応じて、処理対象の時系列情報部分、つまり処理対象のストロークデータ群が処理対象ブロック選択部３０７によって選択される。すなわち、処理対象ブロック選択部３０７は、表示中の時系列情報を使用して、指定範囲内に属するストロークそれぞれに対応する第１のストロークデータ群の中から、処理対象の時系列情報部分を選択する。
【００６８】
例えば、処理対象ブロック選択部３０７は、表示中の時系列情報から、指定範囲内に属するストロークそれぞれに対応する第１のストロークデータ群を抽出し、この第１のストロークデータ群内の他のストロークデータと不連続である第２のストロークデータを除く、第１のストロークデータ群内の個々のストロークデータを処理対象の時系列情報部分に決定する。
【００６９】
編集処理部３０３は、ユーザによって編集メニューから「削除」または「移動」等のメニューが選択された場合、処理対象ブロック選択部３０７によって選択されているストロークデータ群に対する削除、移動等の処理を実行する。この場合、複数のストロークデータが処理対象のストロークデータ群として選択されている場合には、編集処理部３０３は、これら複数のストロークデータをまとめて画面上から削除または画面上に別の位置に移動することができる。時系列情報においては、移動された各ストロークデータの時系列座標は、移動先位置に応じて自動的に変更してもよい。また、移動された各ストロークデータの時系列座標を変更したことを表す操作履歴を時系列情報に追加してもよい。削除された各ストロークデータも、時系列座標から必ずしも削除しなくてもよく、これら各ストロークデータを削除したことを表す操作履歴を時系列情報に追加してもよい。
【００７０】
処理部３０８は、処理対象の時系列情報に対して様々な処理、例えば、筆跡検索処理、認識処理等を実行することができる。この処理部３０８は、検索処理部３０９および認識処理部３１０を含む。
【００７１】
検索処理部３０９は、記憶媒体４０２内に既に格納されている複数の時系列情報（複数の手書きページ）を検索してこれら複数の時系列情報内の特定の時系列情報部分（特定の手書き文字列等）を見つけ出す。この検索処理部３０９は、特定の時系列情報部分を検索キーつまり検索クエリとして指定するように構成された指定モジュールを含んでいる。検索処理部３０９は、複数の時系列情報の各々から、特定の時系列情報部分に対応するストロークの軌跡との類似度が基準値以上であるストロークの軌跡を有する時系列情報部分を見つけ出し、見つけ出された時系列情報部分に対応する軌跡をＬＣＤ１７Ａの画面上に視認可能に表示する。
【００７２】
例えば、検索クエリとして指定される特定の時系列情報部分は、例えば、特定の手書き文字、特定の手書き文字列、特定の手書き記号、特定の手書き図形等が使用しうる。以下では、特定の手書き文字列が検索クエリとして指定される場合を想定する。
【００７３】
この検索処理部３０９によって実行される検索処理は筆跡検索であり、すでに記録されている複数の手書きページの中から、検索クエリである特定の手書き文字列と類似する筆跡を有する手書き文字列を検索する。なお、現在表示中のある一つの手書きページのみを対象に筆跡検索を行ってもよい。
【００７４】
手書き文字間の類似度の計算方法としては、様々な方法を使用することができる。例えば各ストロークの座標列をベクトルとして扱ってもよい。この場合、比較対象のベクトル同士の類似度を計算するために、それら比較対象のベクトル間の内積を比較対象のベクトル間の類似度として算出してもよい。また他の例としては、各ストロークの軌跡を画像として扱い、比較対象の軌跡間の画像の重なりがもっとも多くなる部分の面積の大きさを上述の類似度として計算してもよい。さらに計算処理量を減らすための任意の工夫をしてもよい。また、手書き文字間の類似度の計算方法として、ＤＰ（Dynamic Programming）マッチングを使用してもよい。
【００７５】
この検索処理部３０９内の上述の指定モジュールは、検索対象とすべき文字列または図形を手書きするための検索キー入力領域を画面上に表示してもよい。ユーザによって検索キー入力領域に手書きされた文字列等が検索クエリとして使用される。
【００７６】
あるいは、指定モジュールとして、上述の処理対象ブロック選択部３０７を使用してもよい。この場合、処理対象ブロック選択部３０７は、ユーザによって行われる範囲指定操作に応じて、表示中の時系列情報内の特定の時系列情報部分を、検索対象とすべき文字列または図形として選択することができる。ユーザは、表示中のページ内の一部の文字列を囲むように範囲指定してもよいし、表示中のページの余白などに検索クエリ用の文字列を新たに手書きし、この検索クエリ用の文字列を囲むように範囲指定してもよい。
【００７７】
例えば、ユーザは、表示中のページ内の一部を手書きの丸で囲むことによって範囲指定することができる。あるいは、ユーザは、あらかじめ用意されているメニューを用いてデジタルノートブックアプリケーションプログラム２０２を「選択」モードに設定し、この後、表示中のページ内の一部をペン１００でなぞってもよい。
【００７８】
このように、表示中の時系列情報（手書きページ）内の時系列情報部分（手書き文字列）が検索クエリとして選択された場合においては、検索処理部３０９は、検索クエリとして選択された時系列情報部分を検索対象から除外する。すなわち、検索処理部３０９は、表示中の時系列情報全体では無く、選択された時系列情報部分を除く、表示中の時系列情報内の他の時系列情報部分から、選択され時系列情報部分に対応するストロークの軌跡との類似度が基準値以上であるストロークの軌跡を有する時系列情報部分を見つけ出す。
【００７９】
このように、検索クエリとして選択された時系列情報部分を検索対象から除外するという処理を行うことにより、選択された時系列情報部分（検索されて当然の文字列）それ自体が検索結果として表示されてしまうことを防止することができる。
【００８０】
よって、ユーザは、表示中のページに検索クエリとして使用すべき文字列を新たに手書きし、この文字列を選択するという操作を行うことによって、検索クエリの入力を行うことが可能となる。この場合、新たに手書きされた文字列（検索クエリ）自体は検索対象から除外されるので、新たに手書きされた文字列自体が検索結果として表示されることはない。よって、検索キー入力領域を画面上に表示することなく、表示中の手書きページの一部を容易に検索クエリとして使用することができる。
【００８１】
このように、本実施形態では、既に記録されている複数の手書きページから、検索クエリとして選択されたある手書き文字の特徴に類似する手書き文字を検索することができる。よって、過去に作成および保存した多数の手書きページから、ユーザの意図に合った手書きページを簡単に検索することができる。
【００８２】
本実施形態の筆跡検索においては、テキスト検索の場合とは異なり、文字認識を行う必要が無い。したがって、言語に依存しないため、あらゆる言語で手書きされた手書きページを検索対象とすることができる。さらに、図形等を筆跡検索のための検索クエリとして使用することもでき、また言語以外の記号、マーク等を筆跡検索のための検索クエリとして使用することもできる。
【００８３】
認識処理部３１０は、表示中の時系列情報（手書きページ）に対して手書き文字認識、手書き図形認識、手書き表認識などの認識処理を実行する。この認識処理は、手書きページを、ペイント系アプリケーションプログラム等が扱うことが可能な構造を有するアプリケーションデータに変換するために利用することができる。認識処理部３１０の詳細は図１４を参照して後述する。
【００８４】
次に、図７のフローチャートを参照して、デジタルノートブックアプリケーションプログラム２０２によって実行される手書きページ作成処理の手順について説明する。
【００８５】
ユーザがペン１００を使用して手書き入力操作を行うと（ステップＳ１１）、「タッチ」や「移動」のイベントが発生される。これらイベントに基づいて、デジタルノートブックアプリケーションプログラム２０２は、ペン１００の動きの軌跡を検出する（ステップＳ１２）。ペン１００の動きの軌跡が検出されたならば（ステップＳ１２のＹＥＳ）、デジタルノートブックアプリケーションプログラム２０２は、検出されたペン１００の動きの軌跡をディスプレイに表示する（ステップＳ１３）。さらに、デジタルノートブックアプリケーションプログラム２０２は、検出されたペン１００の動きの軌跡に対応する座標列に基づいて上述の時系列情報を生成し、その時系列情報を作業メモリ４０１に一時保存する（ステップＳ１４）。
【００８６】
次に、図８のフローチャートを参照して、デジタルノートブックアプリケーションプログラム２０２の処理対象ブロック選択部３０７によって実行される選択処理の手順について説明する。
【００８７】
いま、ある時系列情報に基づいて、手書き文書が表示されている場合を想定する。処理対象ブロック選択部３０７は、ユーザによる範囲指定操作に応じて、その時系列情報の中から、処理対象の時系列情報部分を選択する。処理対象の時系列情報部分を選択する処理においては、対象ブロック選択部３０７は、時系列情報を使用して、画面上の指定範囲内に属する全てのストロークデータの中から、処理対象の時系列情報部分、つまり処理対象とすべき１以上のストロークデータを選択する。この選択処理は、上述したように、指定範囲内に属するストロークデータ間の連続性に基づいて行うことができる。
【００８８】
すにわち、処理対象ブロック選択部３０７は、まず、表示中の時系列情報から、ユーザによる範囲指定操作によって指定される画面上の指定範囲内に属する全てのストロークデータを抽出する（ステップＳ２１）。このステップＳ２１の抽出処理は、時系列情報内の各ストロークデータに対応する時系列座標に基づいて実行される。
【００８９】
次いで、処理対象ブロック選択部３０７は、抽出されたストロークデータ間の並び、または抽出された各ストロークデータ内の各座標データに付加されたタイムスタンプ情報に基づいて、抽出されたストロークデータの集合から、時間的関連度が低いストロークデータを特定する（ステップＳ２２）。
【００９０】
時間的関連度が低いストロークデータは、上述したように、手書きタイミングが、抽出されたストロークデータの集合内の他のストロークデータの手書きタイミングと不連続であるストロークデータを意味する。
【００９１】
いま、抽出されたストロークデータの集合内の第１のストロークデータが上述の不連続のストロークデータであるか否かを決定するための処理を行う場合を想定する。この場合、まず、抽出されたストロークデータの集合から、第１のストロークデータの手書きタイミングに手書きタイミングが最も近い第２のストロークデータが特定される。そして、第２のストロークデータと第１のストロークデータとの間に存在するストローク数が所定の基準ストローク数以上であるか否か、あるいは第２のストロークデータのタイムスタンプ情報と第１のストロークデータのタイムスタンプ情報との間の差（時間距離）が所定の基準時間以上であるか否かが判定される。この判定結果に基づき、第１のストロークデータが上述の不連続のストロークデータであるか否かが決定される。
【００９２】
処理対象ブロック選択部３０７は、特定されたストロークデータ（不連続のストロークデータ）を除く、他の抽出された全てのストロークデータを、処理対象データに決定する（ステップＳ２３）。そして、処理対象データに決定された各ストロークデータに対して所定の処理が実行される（ステップＳ２４）。
【００９３】
ユーザによる範囲指定操作によって図３の破線の四角が指定された場合を想定する。まず、図３の破線の四角によって示される指定範囲内に属するストロークデータとして、図４のストロークデータＳＤ１、ＳＤ２、ＳＤ７が抽出される。ストロークデータＳＤ１、ＳＤ２は手書きタイミングが互いに連続しているが、ストロークデータＳＤ７の手書きタイミングはストロークデータＳＤ２の手書きタイミングと不連続である。したがって、ストロークデータＳＤ７は、上述の不連続のストロークデータとして特定される。
【００９４】
なお、ここでは、基準ストローク数または基準時間を用いて不連続のストロークデータを特定する場合を説明したが、他の方法を使用して不連続のストロークデータを特定してもよい。たとえば、互いに近傍に位置し且つ連続的に手書きされたストロークにそれぞれ対応するストロークデータ同士が同一ブロックに分類されるように、指定範囲上に存在する全てのストロークデータを２以上のブロックにグループ分けしてもよい。そして、これらブロックそれぞれと指定範囲内との重複面積を算出し、最大の重複面積を有するブロック以外の他の各ブロックに含まれるストロークデータそれぞれを不連続のストロークデータとして特定してもよい。
【００９５】
図９は、デジタルノートブックアプリケーションプログラム２０２によってユーザに提示される筆跡検索画面５００の例示である。
【００９６】
筆跡検索画面５００は、検索キー入力領域５０１、検索ボタン５０１Ａ、クリアボタン５０１Ｂを表示する。検索キー入力領域５０１は、検索対象とすべき文字列または図形を手書きするための入力領域である。検索ボタン５０１Ａは、筆跡検索処理の実行を指示するためのボタンである。クリアボタン５０１Ｂは、検索キー入力領域５０１に手書きされた文字列または図形の削除（クリア）を指示するためのボタンである。
【００９７】
筆跡検索画面５００は、さらに、複数の手書きページサムネイル６０１を表示する。図９の例においては、９個の手書きページそれぞれに対応する９個の手書きページサムネイル６０１が表示されている。
【００９８】
図１０に示されているように、検索キー入力領域５０１に手書き文字列「ＴＡＢＬＥＴ」が入力されている状態で検索ボタン５０１Ａが押下された場合、９個の手書きページの各々から手書き文字列「ＴＡＢＬＥＴ」を見つけ出すための筆跡検索処理が開始される。そして、筆跡検索画面５００上には、手書き文字列「ＴＡＢＬＥＴ」を含む幾つかの手書きページそれぞれに対応する手書きページサムネイルが表示される。図１０においては、９個の手書きページの中の５個の手書きページが手書き文字列「ＴＡＢＬＥＴ」を含む手書きページとして検索された場合が例示されている。ヒットワード、つまり５個の手書きページサムネイル中の手書き文字列「ＴＡＢＬＥＴ」は強調表示される。
【００９９】
検索される５個の手書きページサムネイルの１つがユーザによって選択されたならば、図１１に示すように、選択された手書きページサムネイル６０１Ａに対応する手書きページ６０１Ｂが通常のサイズで画面上に表示される。手書きページ６０１Ｂには、検索ボタン７００が表示される。ユーザによって検索ボタン７００が押下されたならば、表示画面の内容は、図１１の左側に示される検索画面に戻される。
【０１００】
図１２は、表示されている手書きページ８００内の一部分を検索対象とすべき文字列または図形として使用する例を示している。ユーザは、手書きページ８００内の一部分を例えば手書きの丸８０１によって囲むことにより、手書きページ８００内の一部分を範囲指定することができる。手書きの丸８０１には、手書き文字「Ａ」と手書きの矢印の先頭部分とが含まれているが、上述したように、手書きの矢印の先頭部は処理対象から除外することができる。よって、手書き文字「Ａ」を検索対象とすべき文字として指定することができる。
【０１０１】
次に、図１３のフローチャートを参照して、上述の筆跡検索処理の手順を説明する。  
デジタルノートブックアプリケーションプログラム２０２は、ユーザ操作に応じて、手書きブロック（時系列情報部分）、つまり手書き文字列又は手書きの図形等を、検索キー（検索クエリ）として指定する（ステップＳ３１）。そして、デジタルノートブックアプリケーションプログラム２０２は、複数の手書き文書（手書きページ）から、検索キーとして指定された手書きブロック内のストロークの軌跡との類似度が基準値以上であるストロークの軌跡を有する手書きブロックを検索する（ステップＳ３２）。検索された手書きブロックは強調表示される（ステップＳ３３）。
【０１０２】
図１４は、認識処理部３１０の構成例を示している。  
認識処理部３１０は、認識制御部８１０、文字認識処理部８１１、図形認識処理部８１２、表認識処理部８１３を含む。認識制御部８１０は、文字認識処理部８１１、図形認識処理部８１２、および表認識処理部８１３の３つの認識モジュールを制御するためのモジュールである。
【０１０３】
文字認識処理部８１１は、認識処理対象の時系列情報によって示される複数のストロークデータをグループ化処理することによって得られる複数のブロック（手書きブロック）の各々を文字認識して、これら複数のブロック内の手書き文字それぞれを文字コードに変換する。グループ化処理では、互いに近傍に位置し且つ連続的に手書きされたストロークにそれぞれ対応するストロークデータ同士が同一ブロックに分類されるように、認識処理対象の時系列情報によって示される複数のストロークデータがグループ化される。
【０１０４】
図形認識処理部８１２は、認識処理対象の時系列情報によって示される複数のストロークデータを上述のようにグループ化処理することによって得られる複数のブロック内の処理対象ブロックを、複数の図形オブジェクトの一つに変換するための図形認識処理を実行する。手書き文書（手書きページ）内に含まれる手書きの図形は、PowerPoint（登録商標）などのペイント系アプリケーションプログラムが扱うことが可能な図形オブジェクトに変換される。図形認識処理部８１２は、例えば、複数の図形オブジェクトそれぞれの特徴を示す図形情報を予め保持しており、手書き図形と複数の図形オブジェクトそれぞれとの間の類似度を算出する。そして、手書き図形は、この手書き図形に関する類似度が最も高い図形オブジェクトに変換される。
【０１０５】
類似度の算出においては、手書き図形を必要に応じて回転、拡大、または縮小してもよく、回転、拡大、または縮小された後の手書き図形と複数の図形オブジェクトそれぞれとの間の類似度が求められる。そして、手書き図形に関する類似度が最も高い図形オブジェクトが選択され、この選択された図形オブジェクトは、手書き図形に対して施された回転、拡大、または縮小の処理内容に基づいて変形される。この変形された図形オブジェクトが、手書き図形の代わりに表示される。
【０１０６】
上述の類似度の計算においては、手書き図形のストロークの軌跡情報および各図形オブジェクトの軌跡情報の各々をベクトルの集合として扱い、ベクトルの集合同士の比較を行うことによって類似度を算出することができる。これにより、手書きで描いた図形を容易にPowerPointなどのペイント系の文書（アプリケーションデータ）に変換することができる。
【０１０７】
表認識処理部８１３は、認識処理対象の時系列情報によって示される複数のストロークデータを上述のようにグループ化処理することによって得られる複数のブロック内の処理対象ブロックが、幾つかの線状の軌跡の組み合わせを含む表形状であるか否かを認識する。処理対象ブロックが表形状であることが認識された場合、表認識処理部８１３は、この処理対象ブロックを、認識された表形状の縦横の要素数と同じ縦横の要素数を有するテーブルオブジェクトに変換する。
【０１０８】
手書き文書（手書きページ）内に含まれる手書きの表は、Excel（登録商標）などの表計算アプリケーションプログラムが扱うことが可能なテーブルオブジェクトに変換される。表認識処理部８１３は、手書きページ内の縦横の線の組み合わせを認識し、
それらの組み合わせが表の状態になっていることを認識する。テーブルオブジェクトへの変換処理において、手書きの表内の各手書き要素を手書きデータのままテーブルオブジェク内の要素に入力してもよい。あるいは、手書きの表内の各手書き要素を文字認識することによって得られる文字コードを、テーブルオブジェクト内の要素に入力してもよい。
【０１０９】
図１５は、手書きページ９０１をPowerPointなどのペイント系アプリケーションのデータ９０２に変換する処理を示している。手書きページ９０１は、手書き文字列、手書きの図形、手書きの表を含む。これら手書き文字列、手書きの図形、手書きの表は、文字コード、図形オブジェクト、テーブルオブジェクトにそれぞれ変換され、これによってペイント系アプリケーションのデータ９０２が得られる。
【０１１０】
次に、図１６のフローチャートを参照して、上述の認識処理の手順を説明する。  
デジタルノートブックアプリケーションプログラム２０２は、認識処理対象の時系列情報によって示される複数のストロークデータをグループ化処理することによって得られる複数のブロック（手書きブロック）が文字であるか否かを判定し、全てのブロックを、文字を含む文字ブロックと文字を含まないブロックとに分ける（ステップＳ４１）。デジタルノートブックアプリケーションプログラム２０２は、文字を含まない各ブロックを対象に上述の図形認識処理および上述の表認識処理を実行する（ステップＳ４２、Ｓ４３）。そして、デジタルノートブックアプリケーションプログラム２０２は、各文字ブロックに対して文字認識処理を実行する（ステップＳ４４）。
【０１１１】
このように、本実施形態では、図形認識処理および表認識処理の前処理として、全てのブロックを文字を含む文字ブロックと文字を含まないブロックとに分けるための文字判定処理が行われる。これにより、文字と判定された部分は上記の図表変換処理の変換対象から除外することができるので、図形認識処理および表認識処理の各々の認識率を向上させることができる。文字判定においては、例えば、すべてのブロックを文字認識し、文字との類似度がある一定以上になるブロックを文字ブロックと判定してもよい。この場合、図１６のステップＳ４４の処理は、ステップＳ４１内で実行される。
【０１１２】
以上説明したように、本実施形態においては、手書きされる複数のストロークは、ストロークの軌跡上の点それぞれに対応する座標データ系列を各々が含む複数のストロークデータが時系列に並べられている第１の時系列情報として保存される。そして、タッチスクリーンディスプレイ上で行われる範囲指定操作に応じて、第１の時系列情報から処理対象の時系列情報部分を選択するための選択処理においては、第１の時系列情報を使用して、範囲指定操作によって指定される画面上の指定範囲内に属するストロークそれぞれに対応する第１のストロークデータ群の中から、処理対象の時系列情報部分が選択される。
【０１１３】
手書き文書では、一旦手書きされた文字や図形などの上に、さらに別の文字や図形などが手書きされるというケースが多い。上述の選択処理では、たとえば、たとえ指定範囲内に、ある手書き文字のストローク群のみならず、後で追加された手書き文字または手書きマークのストロークなどが含まれている場合でも、後で追加された手書き文字または手書きマークのストロークを処理対象から除外することができる。よって、例えば、ユーザは、表示中のページ内の一部を手書きの丸で囲むといった簡単な範囲指定操作によって、処理対象の時系列情報部分を容易に指定することができる。
【０１１４】
また、上述の選択処理は、ストロークデータ間の連続性の有無に基づいて行うことができる。この場合、選択処理においては、第１の時系列情報から、範囲指定操作によって指定される画面上の指定範囲内に属するストロークそれぞれに対応する第１のストロークデータ群が抽出され、第１のストロークデータ群の中から、第１のストロークデータ群内の他のストロークデータと手書きされたタイミングが不連続である第２のストロークデータが特定され、第２のストロークデータを除く、第１のストロークデータ群内の個々のストロークデータが処理対象の時系列情報部分に決定される。
【０１１５】
また、本実施形態では、第１の時系列情報内の各ストロークデータは、対応するストロークの軌跡上の各点の手書きタイミングを示すタイムスタンプ情報を含みうる。このタイムスタンプ情報を使用することにより、ストローク間の手書きタイミングの差などをより精度よく識別することができる。また、タイムスタンプ情報を使用して上述の選択処理を行うことにより、より精度よく選択処理を実行することが可能となる。
【０１１６】
なお、上述の筆跡検索処理および認識処理（文字認識処理、図形認識処理、表認識処理）は、タブレットコンピュータ１０と連携して動作する、パーソナルコンピュータ１またはインターネット上のサーバ２によって実行してもよい。また、上述の選択処理も、パーソナルコンピュータ１またはサーバ２によって実行してもよい。
【０１１７】
また、本実施形態では、タイムスタンプ情報が、ストローク単位ではなく、ストローク内の点単位で、手書きタイミングを示す場合を例示したが、タイムスタンプ情報は、ストローク単位で、その手書きタイミングを示すものであってもよい。この場合、時系列情報は、複数のストロークそれぞれに対応する複数のストロークデータと、前記複数のストロークそれぞれの手書きタイミングを示すタイムスタンプ情報とを含めばよい。この構造の時系列情報においては、一つのタイムスタンプ情報が１つのストロークに関連づけられる。
【０１１８】
本実施形態の手書き文書に対する各種処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをタッチスクリーンディスプレイを備えた通常のコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【０１１９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１２０】
１０…タブレットコンピュータ、２００…時系列情報、３０１…ペン軌跡表示処理部、３０２…時系列情報生成部、３０３…編集処理部、３０４…ページ保存処理部、３０５…ページ取得処理部、３０６…手書き文書表示処理部、３０７…処理対象ブロック選択部、３０８…処理部、３０９…検索処理部、３１０…認識処理部。
【要約】
【課題】手書き文書を容易に扱うことができる電子機器を実現する。
【解決手段】実施形態によれば、電子機器は、タッチスクリーンディスプレイ上で行われる手書き入力操作によって手書きされる複数のストロークそれぞれの軌跡を画面上に表示する。電子機器は、複数のストロークにそれぞれ対応する複数のストロークデータを含み、前記複数のストロークが手書きされた順を示す第１の時系列情報を、記憶媒体に保存する。電子機器は、タッチスクリーンディスプレイ上で行われる範囲指定操作に応じて、第１の時系列情報から処理対象の時系列情報部分を選択する。
【選択図】図６【図１】
0005349645.tif 000002
【図２】
0005349645.tif 000003
【図３】
0005349645.tif 000004
【図４】
0005349645.tif 000005
【図５】
0005349645.tif 000006
【図６】
0005349645.tif 000007
【図７】
0005349645.tif 000008
【図８】
0005349645.tif 000009
【図９】
0005349645.tif 000010
【図１０】
0005349645.tif 000011
【図１１】
0005349645.tif 000012
【図１２】
0005349645.tif 000013
【図１３】
0005349645.tif 000014
【図１４】
0005349645.tif 000015
【図１５】
0005349645.tif 000016
【図１６】
0005349645.tif 000017