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