(57)【要約】【課題】手書き文書を精度よく検索できる情報処理装置を実現する。【解決手段】実施形態によれば、情報処理装置は記憶媒体及び検索手段を具備する。記憶媒体は、手書き入力された複数のストロークに対応する複数のストロークデータを含む手書き文書データと、前記複数のストロークデータに対応する複数の文字コードとを記憶する。検索手段は、検索キーに基づく手書き文書データに対する検索が要求される場合、検索キーのストロークデータを用いて、前記手書き文書データから検索キーに対応するストロークデータを取得する筆跡検索と、検索キーの文字コードと前記複数のストロークデータに対応する複数の文字コードとを用いて、検索キーに対応するストロークデータを取得する文字検索のいずれか少なくとも一方を実行する。【選択図】図７
2014052914.tif 000002
【特許請求の範囲】
【請求項１】
手書き入力された複数のストロークに対応する複数のストロークデータを含む手書き文書データと、前記複数のストロークデータに対応する複数の文字コードとを記憶する記憶媒体と、
検索キーに基づく手書き文書データに対する検索が要求される場合、検索キーのストロークデータを用いて、前記手書き文書データから検索キーに対応するストロークデータを取得する筆跡検索と、検索キーの文字コードと前記複数のストロークデータに対応する複数の文字コードとを用いて、検索キーに対応するストロークデータを取得する文字検索のいずれか少なくとも一方を実行する検索手段とを具備する情報処理装置。
【請求項２】
前記検索手段は、前記手書き文書データを作成したユーザと、検索キーに基づく前記手書き文書データに対する検索を要求したユーザとが同じである場合、少なくとも筆跡検索を実行する請求項１記載の情報処理装置。
【請求項３】
前記検索手段は、検索キーのストロークデータの特徴量と、前記複数のストロークデータのいずれかの特徴量との類似度がしきい値以上である特徴量が含まれる場合、前記手書き文書データが検索キーを含むと決定する請求項１記載の情報処理装置。
【請求項４】
前記検索手段は、前記手書き文書データを作成したユーザと、検索キーに基づく前記手書き文書データに対する検索を要求したユーザとが異なる場合、少なくとも文字検索を実行する請求項１記載の情報処理装置。
【請求項５】
前記検索手段は、前記複数のストロークデータに対応する複数の文字コードに、検索キーの文字コードが含まれる場合、前記手書き文書データが検索キーを含むと決定する請求項１記載の情報処理装置。
【請求項６】
前記検索手段は、検索キーに基づく手書き文書データに対する検索が要求される場合であって、検索キーが文字コードにより入力される場合、文字検索を実行する請求項１記載の情報処理装置。
【請求項７】
前記検索手段は、検索キーに基づく手書き文書データに対する検索が要求される場合であって、検索キーが手書き入力される場合、手書き入力された検索キーを文字認識して、文字検索を実行する請求項１記載の情報処理装置。
【請求項８】
前記複数のストロークデータに対応する複数のストロークを画面に表示し、前記複数のストロークの内、検索キーに対応するストロークを強調して表示する表示処理手段をさらに具備する請求項１記載の情報処理装置。
【請求項９】
タッチスクリーンディスプレイをさらに具備し、
前記タッチスクリーンディスプレイを介して、検索キーが手書き入力され、
前記タッチスクリーンディスプレイは、前記複数のストロークを表示可能であって、また、前記検索手段で取得されるストロークデータに応じたストロークの表示が可能である請求項１記載の情報処理装置。
【請求項１０】
手書き入力された複数のストロークに対応する複数のストロークデータを含む手書き文書データと、前記複数のストロークデータに対応する複数の文字コードとを記憶媒体に記憶し、
検索キーに基づく手書き文書データに対する検索が要求される場合、検索キーのストロークデータを用いて、前記手書き文書データから検索キーに対応するストロークデータを取得する筆跡検索と、検索キーの文字コードと前記複数のストロークデータに対応する複数の文字コードとを用いて、検索キーに対応するストロークデータを取得する文字検索のいずれか少なくとも一方を実行する手書き文書検索方法。
【請求項１１】
コンピュータにより実行されるプログラムであって、前記プログラムは、
手書き入力された複数のストロークに対応する複数のストロークデータを含む手書き文書データと、前記複数のストロークデータに対応する複数の文字コードとを記憶媒体に記憶する手順と、
検索キーに基づく手書き文書データに対する検索が要求される場合、検索キーのストロークデータを用いて、前記手書き文書データから検索キーに対応するストロークデータを取得する筆跡検索と、検索キーの文字コードと前記複数のストロークデータに対応する複数の文字コードとを用いて、検索キーに対応するストロークデータを取得する文字検索のいずれか少なくとも一方を実行する手順とを前記コンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、手書き文書を検索することが可能な情報処理装置および同情報処理装置で用いられる手書き文書検索方法に関する。
【背景技術】
【０００２】
近年、タブレット、ＰＤＡ、スマートフォンといった種々の電子機器が開発されている。この種の電子機器の多くは、ユーザによる入力操作を容易にするために、タッチスクリーンディスプレイを備えている。
【０００３】
ユーザは、タッチスクリーンディスプレイ上に表示されるメニューまたはオブジェクトを指などでタッチすることにより、これらメニューまたはオブジェクトに関連づけられた機能の実行を電子機器に指示することができる。
【０００４】
このような電子機器では、ユーザが、タッチスクリーンディスプレイ上で文字や図形等を手書きするための機能を有するものもある。このような手書きの文字や図形を含む手書き文書（手書きページ）は保存され、必要に応じて閲覧される。
【０００５】
しかし、多くの手書き文書が保存された場合、それら手書き文書から見たい文書を探し出すことが困難になる可能性がある。そのため、手書き文書を検索するための種々の方法が提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１０−１２４５０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、手書きされる文字や図形等の形状や筆順は、ユーザ毎の特徴を有するものである。しかし、保存された手書き文書は、その文書を作成したユーザだけでなく、他のユーザによっても検索されるので、手書き文書の検索では、手書き入力におけるユーザ毎の特徴を有効に利用できない可能性がある。
【０００８】
本発明の一形態は、手書き文書を精度よく検索できる情報処理装置および手書き文書検索方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
実施形態によれば、情報処理装置は、記憶媒体及び検索手段を具備する。記憶媒体は、手書き入力された複数のストロークに対応する複数のストロークデータを含む手書き文書データと、前記複数のストロークデータに対応する複数の文字コードとを記憶する。検索手段は、検索キーに基づく手書き文書データに対する検索が要求される場合、検索キーのストロークデータを用いて、前記手書き文書データから検索キーに対応するストロークデータを取得する筆跡検索と、検索キーの文字コードと前記複数のストロークデータに対応する複数の文字コードとを用いて、検索キーに対応するストロークデータを取得する文字検索のいずれか少なくとも一方を実行する。
【図面の簡単な説明】
【００１０】
【図１】実施形態に係る情報処理装置（クラウドサーバ）とクライアント端末との連携動作を示す図。
【図２】同実施形態の情報処理装置のシステム構成を示すブロック図。
【図３】図１のクライアント端末の外観を示す斜視図。
【図４】図１のクライアント端末のシステム構成を示すブロック図。
【図５】同実施形態の情報処理装置によって管理される手書き文書の例を示す図。
【図６】同実施形態の情報処理装置によって記憶媒体に保存される、図５の手書き文書に対応する時系列情報を説明するための図。
【図７】同実施形態の情報処理装置によって実行される手書き文書管理プログラムの機能構成を示すブロック図。
【図８】同実施形態の情報処理装置によって用いられる手書き文書データの一構成例を示す図。
【図９】同実施形態の情報処理装置によって用いられる特徴量データの一構成例を示す図。
【図１０】同実施形態の情報処理装置によって用いられる文字データの一構成例を示す図。
【図１１】図１のクライアント端末によって表示される検索画面を示す図。
【図１２】図１１の検索画面上に表示される検索結果の例を示す図。
【図１３】図１１の検索画面上に表示される検索結果の別の例を示す図。
【図１４】同実施形態の情報処理装置によって実行される手書き文書検索処理の手順の例を示すフローチャート。
【発明を実施するための形態】
【００１１】
以下、実施の形態について図面を参照して説明する。  
まず、図１を参照して、一実施形態に係る情報処理装置と、当該情報処理装置と連携する電子機器とを含むクラウドサービスシステムについて説明する。この情報処理装置は、例えば、サーバコンピュータ（以下、クラウドサーバとも称する）１として実現され得る。クラウドサーバ１は、オンラインストレージサービス、他の各種クラウドコンピューティングサービスを実行する。クラウドサーバ１は、手書き端末２Ａや閲覧端末２Ｂ，２Ｃのような各種の電子機器（以下、クライアント端末とも称する）と連携することができる。
【００１２】
手書き端末２Ａは、例えば、ペン又は指によって手書き入力可能なペン・ベースの携帯型電子機器である。この手書き端末２Ａは、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、スマートフォン、ＰＤＡ等として実現され得る。また、閲覧端末２Ｂ，２Ｃは、手書き端末２Ａを用いた手書き入力によって作成された手書き文書を閲覧するための電子機器である。この閲覧端末２Ｂ，２Ｃは、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、デスクトップ型コンピュータ、スマートフォン、ＰＤＡ等として実現され得る。
【００１３】
クラウドサーバ１は、例えば、ＬＡＮなどの通信デバイスを備えている。また、手書き端末２Ａ及び閲覧端末２Ｂ，２Ｃは、例えば、無線ＬＡＮなどの無線通信デバイスを備えている。したがって、クラウドサーバ１は、手書き端末２Ａ及び閲覧端末２Ｂ，２Ｃの各々との通信を実行することができる。
【００１４】
手書き端末２Ａは、ユーザによる手書き入力操作に応じて作成された、文字や図形を含む手書き文書のデータを、ネットワーク（例えば、インターネット）を介してクラウドサーバ１に送信して、クラウドサーバ１内のストレージ（例えば、ハードディスクドライブ（ＨＤＤ））に記録することができる（アップロード）。クラウドサーバ１と手書き端末２Ａとの間のセキュアな通信を確保するために、通信開始時には、クラウドサーバ１が手書き端末２Ａを認証するようにしてもよい。この場合、手書き端末２Ａの画面上に、ユーザに対してＩＤやパスワードの入力を促すダイアログを表示してもよいし、手書き端末２ＡのＩＤなどを自動的に手書き端末２Ａからクラウドサーバ１に送信してもよい。  
これにより、手書き端末２Ａ上で作成された手書き文書データを、クラウドサーバ１で管理することが可能になる。
【００１５】
クラウドサーバ１は、クラウドサーバ１のストレージに記録されている手書き文書データを、ネットワーク（例えば、インターネット）を介して閲覧端末２Ｂ，２Ｃに送信する。例えば、クラウドサーバ１は、クラウドサーバ１のストレージに記録されている複数の手書き文書データから、閲覧端末２Ｂ，２Ｃによる検索要求（検索クエリ）に応じた手書き文書データを検索し、その検索結果を閲覧端末２Ｂ，２Ｃに送信する。閲覧端末２Ｂ，２Ｃは、クラウドサーバ１によって送信された検索結果を受信し（ダウンロード）、その検索結果を閲覧端末２Ｂ，２Ｃのディスプレイの画面に表示することができる。閲覧端末２Ｂ，２Ｃは、受信した検索結果に基づいて、例えば、取得された手書き文書の一覧や、取得された手書き文書を画面に表示する。
【００１６】
クラウドサーバ１に手書き文書の検索を要求する閲覧端末は、手書き入力可能な閲覧端末２Ｂであってもよいし、手書き入力ができない閲覧端末２Ｃであってもよい。手書き入力可能な閲覧端末２Ｂでは、ユーザによる手書き入力操作によって手書きされた文字や図形に対応する手書きデータを含む検索要求をサーバ１に送信することによって、その手書きデータを検索キーとした検索結果を取得することができる。手書き入力ができない閲覧端末２Ｃでは、キーボード等を用いて入力された文字列に対応する文字コードを含む検索要求をサーバ１に送信することによって、その文字コードを検索キーとした検索結果を取得することができる。なお、手書き入力可能な閲覧端末２Ｂでも、ソフトウェアキーボード等を用いて入力された文字列に対応する文字コードを含む検索要求をサーバ１に送信することによって、その文字コードを検索キーとした検索結果を取得してもよい。
【００１７】
クラウドサーバ１と閲覧端末２Ｂ，２Ｃとの間のセキュアな通信を確保するために、通信開始時には、クラウドサーバ１が閲覧端末２Ｂ，２Ｃを認証するようにしてもよい。この場合、閲覧端末２Ｂ，２Ｃの画面上に、ユーザに対してＩＤやパスワードの入力を促すダイアログを表示してもよいし、閲覧端末２Ｂ，２ＣのＩＤなどを自動的に閲覧端末２Ｂ，２Ｃからクラウドサーバ１に送信してもよい。なお、手書き端末２Ａを閲覧端末２Ｂとして用いることもできる。
【００１８】
図２は、クラウドサーバ１のシステム構成の例を示す。クラウドサーバ１は、ＣＰＵ（Central Processing Unit）１１、主メモリ１２、Ｉ／Ｏデバイス１３、ハードディスクドライブ（ＨＤＤ）１４、グラフィクスコントローラ１５、ＬＣＤ（Liquid Crystal Display）１６、及びＬＡＮコントローラ１７等を備える。
【００１９】
ＣＰＵ１１は各種プログラムを実行するプロセッサである。ＣＰＵ１１は、各種演算処理を実行すると共に、クラウドサーバ１内の各部を制御する。
【００２０】
主メモリ１２は、ＣＰＵ１１によって実行される、オペレーティングシステム（ＯＳ）１２Ａ、手書き文書管理プログラム１２Ｂのような各種アプリケーションプログラム、及び各種データを格納するためのメインメモリである。主メモリ１２には、例えばＯＳ１２Ａ及び手書き文書管理プログラム１２Ｂがロードされている。手書き文書管理プログラム１２Ｂは、クライアント端末からアップロードされた複数の手書き文書データを管理する。手書き文書管理プログラム１２Ｂは、クライアント端末からアップロードされた手書き文書データをストレージデバイスに保存する機能と、保存された複数の手書き文書データから、クライアント端末による検索要求に応じた手書き文書データを取得する機能とを有する。
【００２１】
Ｉ／Ｏデバイス１３は、クラウドサーバ１に対するデータの入出力を実行するための各種入出力デバイスである。また、ＨＤＤ１４は、各種プログラムやデータを格納するためのストレージデバイスである。ＨＤＤ１４に格納された各種プログラムやデータは、クラウドサーバ１内の各部による要求に応じて、主メモリ１２へロードされる。また、このＨＤＤ１４には、上述のように、クライアント端末からアップロードされた複数の手書き文書データが格納される。
【００２２】
グラフィクスコントローラ１５は、クラウドサーバ１のディスプレイモニタとして使用されるＬＣＤ１６を制御する。このグラフィクスコントローラ１５によって生成される表示信号はＬＣＤ１６に送られる。グラフィクスコントローラ１５及びＬＣＤ１６を用いることにより、例えば、管理者による操作に応じた画面を表示することができる。  
ＬＡＮコントローラ１７は、例えばＥｔｈｅｒｎｅｔ（登録商標）規格の有線通信を実行する有線通信デバイスである。
【００２３】
また、図３は、手書き入力可能な閲覧端末２Ｂの外観を示す斜視図である。以下では、この閲覧端末２Ｂがタブレットコンピュータとして実現されていることを想定する。タブレットコンピュータ２Ｂは、タブレット又はスレートコンピュータとも称される携帯型電子機器であり、図３に示すように、本体２０とタッチスクリーンディスプレイ２０６とを備える。タッチスクリーンディスプレイ２０６は、本体２０の上面に重ね合わせるように取り付けられている。
【００２４】
本体２０は、薄い箱形の筐体を有している。タッチスクリーンディスプレイ２０６には、フラットパネルディスプレイと、フラットパネルディスプレイの画面上のペン又は指の接触位置を検出するように構成されたセンサとが組み込まれている。フラットパネルディスプレイは、例えば、液晶表示装置（ＬＣＤ）であってもよい。センサには、例えば、静電容量方式のタッチパネル、電磁誘導方式のデジタイザなどを使用することができる。以下では、デジタイザとタッチパネルの２種類のセンサの双方がタッチスクリーンディスプレイ２０６に組み込まれていることを想定する。
【００２５】
デジタイザ及びタッチパネルタッチの各々は、フラットパネルディスプレイの画面を覆うように設けられる。このタッチスクリーンディスプレイ２０６は、指を使用した画面に対するタッチ操作のみならず、ペン１００を使用した画面に対するタッチ操作も検出することができる。ペン１００は例えば電磁誘導ペンであってもよい。ユーザは、外部オブジェクト（ペン１００又は指）を使用してタッチスクリーンディスプレイ２０６上で手書き入力操作を行うことができる。手書き入力操作中においては、画面上の外部オブジェクト（ペン１００又は指）の動きの軌跡、つまり手書き入力操作によって手書きされるストロークの軌跡（筆跡）がリアルタイムに描画され、これによって各ストロークの軌跡が画面上に表示される。外部オブジェクトが画面に接触されている間の外部オブジェクトの動きの軌跡が１ストロークに相当する。手書きされた文字又は図形などに対応する多数のストロークの集合、つまり多数の軌跡（筆跡）の集合は、イメージデータではなく、各ストロークの軌跡の座標列とストローク間の順序関係を示す時系列情報を含む手書きデータとして用いられる。また、この手書きデータを、例えば、ページ毎の手書き文書データとして用いることもできる。手書きデータに含まれる時系列情報の詳細は図６を参照して後述するが、この時系列情報は、概して、複数のストロークにそれぞれ対応する時系列のストロークデータの集合を意味する。各ストロークデータは、ある１つのストロークに対応し、このストロークの軌跡上の点それぞれに対応する座標データ系列（時系列座標）を含む。これらストロークデータの並びの順序は、ストロークそれぞれが手書きされた順序つまり筆順に相当する。
【００２６】
タブレットコンピュータ２Ｂは、サーバ１に検索キーとなる手書きデータを送信し、この検索キーに基づいて検索された手書き文書データをサーバ１から受信する。閲覧端末２Ｂは、受信した手書き文書データに対応する手書き文書、つまりこの手書き文書データに含まれる時系列情報によって示される複数のストロークそれぞれに対応する軌跡を画面上に表示することができる。
【００２７】
なお、タブレットコンピュータ２Ｂは、記憶媒体から既存の任意の手書き文書データを読み出し、読み出した手書き文書データに対応する手書き文書を画面上に表示することもできる。その場合、ユーザは、タッチスクリーンディスプレイ２０６を用いて、表示された手書き文書の一部を検索キーとして選択することもできる。タブレットコンピュータ２Ｂは、選択された手書き文書の一部に対応する手書きデータ（ストロークデータ）を含む検索要求をサーバ１に送信し、この検索キーに基づいて検索された手書き文書データをサーバ１から受信する。
【００２８】
また、本実施形態では、手書き文書データ（時系列情報）は、１つ又は複数のページとして管理されうる。この場合、手書き文書データを１つの画面に収まる面積単位で区切ることによって、１つの画面に収まる時系列情報のまとまりを１つのページとして記録してもよい。あるいは、ページのサイズを可変できるようにしてもよい。この場合、ページのサイズは１つの画面のサイズよりも大きい面積に広げることができるので、画面のサイズよりも大きな面積の手書き文書を一つのページとして扱うことができる。１つのページ全体をディスプレイに同時に表示できない場合は、そのページを縮小してするようにしてもよいし、縦横スクロールによってページ内の表示対象部分を移動するようにしてもよい。
【００２９】
図４は、タブレットコンピュータ２Ｂのシステム構成の例を示す。タブレットコンピュータ２Ｂは、ＣＰＵ（Central Processing Unit）２０１、主メモリ２０２、ソリッドステートドライブ（ＳＳＤ）２０４、グラフィクスコントローラ２０５、タッチスクリーンディスプレイ２０６、及び無線ＬＡＮコントローラ２０７等を備える。
【００３０】
ＣＰＵ２０１は各種プログラムを実行するプロセッサである。ＣＰＵ２０１は、各種演算処理を実行すると共に、タブレットコンピュータ２Ｂ内の各部を制御する。
【００３１】
主メモリ２０２は、ＣＰＵ２０１によって実行される、オペレーティングシステム２０２Ａ、デジタルノートブックアプリケーションプログラム２０２Ｂのような各種アプリケーションプログラム、及び各種データを格納するためのメインメモリである。主メモリ２０２には、例えばＯＳ２０２Ａ及びデジタルノートブックアプリケーションプログラム２０２Ｂがロードされている。デジタルノートブックアプリケーションプログラム２０２Ｂは、サーバ１に手書き文書データの検索を要求し、その検索結果を受信して表示する機能を有する。また、デジタルノートブックアプリケーションプログラム２０２は、手書き文書データを作成し、その手書き文書データをサーバ１に送信する機能も有し得る。
【００３２】
ＳＳＤ２０４は、各種プログラムやデータを格納するための不揮発性の記憶装置である。ＳＳＤ２０４に格納された各種プログラムやデータは、タブレットコンピュータ２Ｂ内の各部による要求に応じて、主メモリ２０２へロードされる。
【００３３】
グラフィクスコントローラ２０５は、タッチスクリーンディスプレイ２０６に表示すべき表示信号を生成する。タッチスクリーンディスプレイ２０６には、フラットパネルディスプレイ２０６Ａと、フラットパネルディスプレイ２０６Ａの画面上のペン又は指の接触位置を検出するように構成されたセンサとが組み込まれている。フラットパネルディスプレイ２０６Ａは、例えば、液晶表示装置（ＬＣＤ）であってもよい。センサとしては、例えば、静電容量方式のタッチパネル２０６Ｂ、電磁誘導方式のデジタイザなどを使用することができる。  
無線ＬＡＮコントローラ２０７はＩＥＥＥ  ８０２．１１規格に基づいて無線通信を実行するように構成されている。
【００３４】
手書き入力可能なタブレットコンピュータ（閲覧端末）２Ｂは、手書き文書を作成および編集するための手書き端末２Ａとしても使用され得る。つまり、上述のタブレットコンピュータ２Ｂの構成によって、手書き文書を作成又は編集し、サーバ１にアップロードすることができる。
【００３５】
なお、手書き入力ができない閲覧端末２Ｃは、例えば、タッチスクリーンディスプレイ２０６が設けられていないコンピュータである。閲覧端末２Ｃは、例えば、キーボードを用いて入力された文字列に対応する文字コードを検索キーとしてサーバ１に送信し、この検索キーに基づいて検索された手書き文書データをサーバ１から受信する。閲覧端末２Ｃでも、手書き入力可能な閲覧端末２Ｂと同様に、受信した手書き文書データに対応する手書き文書、つまりこの手書き文書データに含まれる時系列情報によって示される複数のストロークそれぞれに対応する軌跡を画面上に表示することができる。なお、閲覧端末２Ｃは、記憶媒体から既存の任意の手書き文書データを読み出し、読み出した手書き文書データに対応する手書き文書を画面上に表示することもできる。ユーザは、マウスやタッチパッドのようなポインティングデバイスを用いて、表示された手書き文書の一部を検索キーとして選択することもできる。閲覧端末２Ｃは、選択された手書き文書の一部に対応する手書きデータ（ストロークデータ）を含む検索要求をサーバ１に送信し、この検索キーに基づいて検索された手書き文書データをサーバ１から受信する。
【００３６】
次いで、図５および図６を参照して、ユーザによって手書きされたストローク（文字、マーク、図形、表など）と時系列情報との関係について説明する。図５は、ペン１００などを使用してタッチスクリーンディスプレイ２０６上に手書きされる手書き文書（手書き文字列及び手書き図形）の例を示している。
【００３７】
手書き文書では、一旦手書きされた文字や図形などの上に、さらに別の文字や図形などが手書きされるというケースが多い。図５においては、「ＡＢＣ」の手書き文字列が「Ａ」、「Ｂ」、「Ｃ」の順番で手書きされ、この後に、手書きの矢印が、手書き文字「Ａ」のすぐ近くに手書きされた場合が想定されている。
【００３８】
手書き文字「Ａ」は、ペン１００などを使用して手書きされる２つのストローク（「∧」形状の軌跡、「−」形状の軌跡）によって、つまり２つの軌跡によって表現される。最初に手書きされる「∧」形状のペン１００の軌跡は例えば等時間間隔でリアルタイムにサンプリングされ、これによって「∧」形状のストロークの時系列座標ＳＤ１１、ＳＤ１２、…ＳＤ１ｎが得られる。同様に、次に手書きされる「−」形状のペン１００の軌跡もサンプリングされ、これによって「−」形状のストロークの時系列座標ＳＤ２１、ＳＤ２１、…ＳＤ２ｎが得られる。
【００３９】
手書き文字「Ｂ」は、ペン１００などを使用して手書きされた２つのストローク、つまり２つの軌跡によって表現される。手書き文字「Ｃ」は、ペン１００などを使用して手書きされた手書きされた１つのストローク、つまり１つの軌跡によって表現される。手書きの「矢印」は、ペン１００などを使用して手書きされた手書きされた２つのストローク、つまり２つの軌跡によって表現される。
【００４０】
図６は、図５の手書き文書に対応する時系列情報４１Ｂを示している。時系列情報は、複数のストロークデータＳＤ１、ＳＤ２、…、ＳＤ７を含む。時系列情報４１Ｂ内においては、これらストロークデータＳＤ１、ＳＤ２、…、ＳＤ７は、筆跡順に、つまり複数のストロークが手書きされた順に時系列に並べている。
【００４１】
時系列情報４１Ｂにおいて、先頭の２つのストロークデータＳＤ１、ＳＤ２は、手書き文字「Ａ」の２つのストロークをそれぞれ示している。３番目と４番目のストロークデータＳＤ３、ＳＤ４は、手書き文字「Ｂ」を構成する２つのストロークをそれぞれ示している。５番目のストロークデータＳＤ５は、手書き文字「Ｃ」を構成する１つのストロークを示している。６番目と７番目のストロークデータＳＤ６、ＳＤ７は、手書き「矢印」を構成する２つのストロークをそれぞれ示している。
【００４２】
各ストロークデータは、一つのストロークに対応する座標データ系列（時系列座標）、つまり一つのストロークの軌跡上の複数の点それぞれに対応する複数の座標を含む。各ストロークデータにおいては、複数の座標はストロークが書かれた順に時系列に並べられている。例えば、手書き文字「Ａ」に関しては、ストロークデータＳＤ１は、手書き文字「Ａ」の「∧」形状のストロークの軌跡上の点それぞれに対応する座標データ系列（時系列座標）、つまりｎ個の座標データＳＤ１１、ＳＤ１２、…ＳＤ１ｎを含む。ストロークデータＳＤ２は、手書き文字「Ａ」の「−」形状のストロークの軌跡上の点それぞれに対応する座標データ系列、つまりｎ個の座標データＳＤ２１、ＳＤ２２、…ＳＤ２ｎを含む。なお、座標データの数はストロークデータ毎に異なっていてもよい。
【００４３】
各座標データは、対応する軌跡内のある１点に対応するＸ座標およびＹ座標を示す。例えば、座標データＳＤ１１は、「∧」形状のストロークの始点のＸ座標（Ｘ１１）およびＹ座標（Ｙ１１）を示す。ＳＤ１ｎは、「∧」形状のストロークの終点のＸ座標（Ｘ１ｎ）およびＹ座標（Ｙ１ｎ）を示す。
【００４４】
さらに、各座標データは、その座標に対応する点が手書きされた時点に対応するタイムスタンプ情報Ｔを含んでいてもよい。手書きされた時点は、絶対時間（例えば、年月日時分秒）またはある時点を基準とした相対時間のいずれであってもよい。例えば、各ストロークデータに、ストロークが書き始められた絶対時間（例えば、年月日時分秒）をタイムスタンプ情報として付加し、さらに、ストロークデータ内の各座標データに、絶対時間との差分を示す相対時間をタイムスタンプ情報Ｔとして付加してもよい。
【００４５】
このように、各座標データにタイムスタンプ情報Ｔが追加された時系列情報を使用することにより、ストローク間の時間的関係をより精度よく表すことができる。  
さらに、各座標データには、筆圧を示す情報（Ｚ）を追加してもよい。
【００４６】
本実施形態では、上述したように、手書き文書は、イメージまたは文字認識結果ではなく、時系列のストロークデータの集合から構成される時系列情報４１Ｂとして記憶されるので、手書き文字の言語に依存せずに手書き文字を扱うことができる。よって、本実施形態の時系列情報４１Ｂの構造は、異なる言語で用いられる様々な文字で共通に使用できる。
【００４７】
次いで、図７を参照して、サーバ１によって実行される手書き文書管理プログラム１２Ｂの機能構成について説明する。手書き文書管理プログラム１２Ｂは、上述のように、クライアント端末（例えば、手書き端末２Ａ）からアップロードされた手書き文書データをストレージデバイスに保存する機能と、保存された複数の手書き文書データから、クライアント端末（例えば、閲覧端末２Ｂ，２Ｃ）による検索要求に応じた手書き文書データを取得する機能とを有する。
【００４８】
手書き文書管理プログラム１２Ｂは、例えば、手書き文書受信部３１、特徴量算出部３２、文字認識部３３、検索要求受信部３４、検索決定部３５、筆跡検索部３６、文字検索部３７、手書き文書リード部３８、送信部３９を備える。
【００４９】
まず、クライアント端末（手書き端末２Ａ）からサーバ１に手書き文書データがアップロードされた際の動作について説明する。  
手書き文書受信部３１は、クライアント端末によってアップロードされた手書き文書データを受信する。手書き文書受信部３１は、受信した手書き文書データを手書き文書データベース４１（例えば、ＨＤＤ１４のような記憶媒体）に記憶する。手書き文書受信部３１は、例えば、受信した手書き文書データに対して、その手書き文書（手書きページ）を一意に識別可能な識別情報（ページＩＤ）と、当該手書き文書を作成したユーザの識別情報（ユーザＩＤ）とを付加して手書き文書データベース４１に格納する。
【００５０】
図８は、手書き文書データベース４１に格納された手書き文書データ４１Ａの一構成例を示す。手書き文書データ４１Ａは、複数の手書き文書（手書きページ）に対応する複数のエントリを含む。各エントリは、例えば、ページＩＤ、ユーザＩＤ、ストロークＩＤ、ストロークデータを含む。ある手書き文書に対応するエントリにおいて、「ページＩＤ」は、その手書き文書に付与された識別情報を示す。「ユーザＩＤ」は、その手書き文書を作成したユーザに付与された識別情報を示す。「ストロークＩＤ」は、その手書き文書に手書きされたストロークに付与された識別情報を示す。「ストロークデータ」は、その手書き文書に手書きされたストロークに対応する座標データ系列（時系列座標）４１Ｂを示す。
【００５１】
図８に示しているように、ある手書き文書に対応するエントリには、その手書き文書に手書きされた複数のストロークに対応して、複数の「ストロークＩＤ」と「ストロークデータ」とのペアが含まれる。つまり、ある手書き文書に対応するエントリには、その手書き文書に手書きされたストロークの数だけ、「ストロークＩＤ」と「ストロークデータ」とのペアが含まれる。  
なお、手書き文書データ４１Ａは、上記のエントリと同様の内容が記述された手書き文書ファイルであってもよい。
【００５２】
また、手書き文書受信部３１は、受信した手書き文書データ４１Ａを特徴量算出部３２と文字認識部３３とに出力する。
【００５３】
特徴量算出部３２は、手書き文書受信部３１によって受信された手書き文書データ４１Ａに含まれる複数のストロークデータ（時系列情報）４１Ｂを解析することによって、手書き文書に手書きされた複数のストロークそれぞれに対応する複数の特徴量を算出する。特徴量算出部３２は、各ストロークに対応する座標データ系列を用いて、例えば、ストロークの傾きのような形状を表す特徴量であって、ストロークのサイズ（長さ）や、ストローク上でサンプリングされた座標点数（座標データ数）のような形状以外の特徴が正規化された特徴量を算出する。特徴量算出部３２は、算出された特徴量を含む特徴量データ４２Ａを特徴量データベース４２（例えば、ＨＤＤ１４のような記憶媒体）に記憶する。
【００５４】
図９は、特徴量データベース４２に格納された特徴量データ４２Ａの一構成例を示す。特徴量データ４２Ａは、手書き文書（手書きページ）に含まれる複数のストロークに対応する複数のエントリを含む。各エントリは、例えば、ページＩＤ、ストロークＩＤ、特徴量を含む。あるストロークに対応するエントリにおいて、「ページＩＤ」は、そのストロークが手書きされた手書き文書に付与された識別情報を示す。「ストロークＩＤ」は、そのストロークに付与された識別情報を示す。「特徴量」は、そのストロークを解析することによって算出された特徴量を示す。
【００５５】
文字認識部３３は、手書き文書受信部３１によって受信された手書き文書データ４１Ａに含まれるストロークデータ（時系列情報）４１Ｂを解析することによって、手書き文書に手書きされた複数のストロークに対応する複数の手書きの文字や記号を認識し、それら複数の手書きの文字や記号のそれぞれを文字コードに変換する。より具体的には、まず、文字認識部３３は、複数のストロークを文字毎のストロークを含む文字ブロックに分割する。そして、文字認識部３３は、予め用意された手書き文字の辞書データを用いて、文字ブロック毎に、文字ブロック内のストロークに対応する文字を認識する。手書き文字の辞書データでは、例えば、様々な文字や記号のそれぞれに対して、多くの手書き文字データ（多数人による手書き文字データ）を解析することによって得られた手書き文字（記号）の標準パターンが関連付けられている。文字認識部３３は、例えば、手書き文字の辞書データに示される複数の文字から、その標準パターンと文字ブロック内のストロークとの類似度がしきい値以上である文字を認識する。なお、認識される文字は、文字認識に誤りが生じる可能性を考慮して、類似度がしきい値以上である複数の文字候補であってもよい。文字認識部３３は、認識された文字を文字コードに変換する。
【００５６】
次いで、文字認識部３３は、ストローク（ストローク群）と文字コードとの関係を示す文字データ４３Ａを文字データベース４３に格納する。文字認識部３３は、例えば、ストローク群に対応するストロークＩＤの範囲と文字コードとを含む文字データ４３Ａを文字データベース４３（例えば、ＨＤＤ１４のような記憶媒体）に記憶する。文字認識部３３は、文字ブロック毎に認識された文字（文字候補）が、単語単位や手書き文書上の行単位で結合された文字列（文字列候補）の文字コードと、その文字列に対応するストローク群のストロークＩＤの範囲とを含む文字データ４３Ａを文字データベース４３に格納してもよい。
【００５７】
図１０は、文字検索データベース４３に格納された文字データ４３Ａの一構成例を示す。文字データ４３Ａは、例えば、手書き文書（手書きページ）に手書きされたストロークを解析することによって認識された複数のストローク群に対応する複数のエントリを含む。各エントリは、例えば、「ページＩＤ」、「ストロークＩＤ範囲」、「文字列」を含む。あるストローク群に対応するエントリにおいて、「ページＩＤ」は、そのストローク群が手書きされた手書き文書の識別情報を示す。「ストロークＩＤ範囲」は、そのストローク群に付与された識別情報の範囲を示す。「文字列」は、そのストローク群に対する文字認識結果に対応する複数の文字列候補の文字コード（文字コード群）を示す。
【００５８】
上述したように、文字データ４３Ａでは、あるストローク群に対して、文字認識結果に基づく複数の文字列候補（文字コード）が関連付けられてもよい。すなわち、あるエントリにおいて第１文字コードに関連付けられたストローク範囲と重複するストローク範囲が、別のエントリにおいて第２文字コードに関連付けられていてもよい。文字認識部３３によって、あるストローク群に対して複数の文字列候補を関連付けておくことにより、後述する文字コードを用いた文字検索の際に、ユーザが取得したい手書き文書を精度よく取得することができる。
【００５９】
次いで、クライアント端末（閲覧端末）２Ｂ，２Ｃからサーバ１に、検索キーに基づく手書き文書データに対する検索が要求された際の動作について説明する。手書き文書管理プログラム１２Ｂは、検索キーのストロークデータ（筆跡）を用いて、手書き文書データから検索キーに対応するストロークデータを取得する筆跡検索と、検索キーの文字コードと手書き文書データに含まれる複数のストロークデータに対応する複数の文字コードとを用いて、検索キーに対応するストロークデータを取得する文字検索のいずれか少なくとも一方を実行することによって、ストレージに保存された手書き文書データ４１Ａを検索する。
【００６０】
まず、検索要求受信部３４は、クライアント端末２Ｂ，２Ｃから送信された検索要求（検索クエリ）を受信する。この検索要求には、例えば、クライアント端末２Ｂ，２Ｃを使用しているユーザ（すなわち、手書き文書の検索を要求したユーザ）のユーザＩＤと、検索キーとが含まれている。検索要求受信部３４は、受信した検索要求を検索決定部３５に出力する。
【００６１】
検索決定部３５は、手書き文書データベース４１から、検索対象の手書き文書の一覧を取得する。検索決定部３５は、手書き文書データベース４１を参照して、例えば、検索を要求したユーザによるアクセスが許可されている手書き文書を検出し、それら手書き文書の一覧を、検索対象の手書き文書の一覧として生成する。そして、検索決定部３５は、取得した手書き文書一覧に含まれる手書き文書のそれぞれに対して、筆跡検索と文字検索のいずれの検索処理を実行するかを決定する。筆跡検索では、手書きされたストローク群それぞれの形状を示す特徴量（特徴量データ４２Ａ）や、ストローク群の時系列順（筆順）に基づいて、手書き文書が検索される。文字検索では、手書きされたストローク群に対する文字認識結果（文字データ４３Ａ）に基づいて、手書き文書が検索される。
【００６２】
より具体的には、検索決定部３５は、まず、取得した一覧から、検索キーが含まれるか否かを判定する対象の手書き文書（以下、判定対象手書き文書とも称する）を選択する。次いで、検索決定部３５は、検索要求に含まれる検索キーが手書き入力データを含む否か、すなわち、検索キーがストロークデータを含む時系列情報を含むか否かを判定する。この手書き入力データは、例えば、図５及び図６を参照して説明した構造を有するものである。
【００６３】
検索キーが手書き入力データでない場合、すなわち、検索キーが１以上の文字コードを含む場合、検索決定部３５は、判定対象手書き文書に対して文字コードを用いた文字検索を行うことを決定する。検索決定部３５は、文字検索部３７に対して、判定対象手書き文書に対して文字コードを用いた文字検索を行うことを要求する。
【００６４】
文字検索部３７は、検索決定部３５による要求に応じて、文字検索データベース４３から、判定対象手書き文書に対応する文字データ４３Ａを読み出す。そして、文字検索部３７は、読み出された文字データ４３Ａに示される文字コード（例えば、複数の文字列候補の文字コード）に、検索キーの文字コードが含まれているか否かを判定する。換言すると、文字検索部３７は、判定対象手書き文書に対応する複数の文字コードと検索キーに対応する１以上の文字コードとを用いて文字検索を実行することによって、判定対象手書き文書に対応する複数の文字コードに、検索キーに対応する１以上の文字コードが含まれるか否かを判定する。そして、判定対象手書き文書に対応する複数の文字コードに、検索キーに対応する１以上の文字コードが含まれるとき、判定対象の手書き文書を、検索キーを含む手書き文書であると決定する。その場合、文字検索部３７は、判定対象手書き文書を、検索キーに該当する手書き文書として、該当文書一覧に追加する。文字検索部３７は、例えば、判定対象手書き文書に付与された識別情報（ページＩＤ）を該当文書一覧に追加する。
【００６５】
一方、検索キーが手書き入力データである場合、検索決定部３５は、判定対象手書き文書を作成した作成ユーザと、クライアント端末を使用している検索ユーザ（手書き文書の検索を要求した検索ユーザ）とが同じであるか否かを判定する。つまり、検索決定部３５は、判定対象手書き文書を作成した作成ユーザのユーザＩＤと、クライアント端末を使用している検索ユーザのユーザＩＤとが同一であるか否かを判定する。判定対象手書き文書を作成したユーザとクライアント端末を使用しているユーザとが同じである場合、判定対象手書き文書に対して、少なくとも手書き入力データを用いた筆跡検索を行うことを決定する。検索決定部３５は、特徴量算出部３２および筆跡検索部３６に対して、判定対象手書き文書に対して手書き入力データを用いた筆跡検索を行うこと要求する。
【００６６】
特徴量算出部３２は、検索決定部３５による要求に応じて、検索キーであるストロークデータ（時系列情報）を解析することによって、検索キーとして手書きされた１以上のストロークそれぞれに対応する１以上の特徴量を算出する。特徴量算出部３２は、各ストロークに対応する座標データ系列を用いて、例えば、ストロークの傾きのような形状を表す特徴量であって、ストロークのサイズ（長さ）や、ストローク上でサンプリングされた座標点数（座標データ数）のような形状以外の特徴が正規化された特徴量を算出する。そして、特徴量算出部３２は、算出された検索キーの１以上の特徴量を筆跡検索部３６に出力する。
【００６７】
筆跡検索部３６は、特徴量データベース４２から判定対象手書き文書に対応する特徴量を読み出す。判定対象手書き文書に対応する特徴量は、この手書き文書に含まれる複数のストロークに対応する複数の特徴量である。筆跡検索部３６は、読み出された判定対象手書き文書に対応する複数の特徴量と、検索キーに対応する１以上の特徴量とを用いて筆跡検索を実行することによって、読み出された判定対象手書き文書に対応する複数の特徴量の中に、検索キーの特徴量に相当する特徴量があるか否かを判定する。つまり、筆跡検索部３６は、判定対象手書き文書に対応する複数の特徴量と検索キーの特徴量とを用いて、判定対象手書き文書内に検索キーに類似する手書き文字や図形（すなわち、検索キーに近しい手書き文字や図形）が含まれているか否かを判定する。より具体的には、筆跡検索部３６は、例えば、判定対象手書き文書に対応する複数の特徴量に、検索キーに対応する１以上の特徴量との類似度がしきい値以上である特徴量が含まれる場合、判定対象手書き文書を、検索キーを含む手書き文書であると決定する。その場合、筆跡検索部３６は、判定対象手書き文書を、検索キーに該当する手書き文書として、該当文書一覧に追加する。筆跡検索部３６は、例えば、判定対象手書き文書に付与された識別情報（ページＩＤ）を該当文書一覧に追加する。
【００６８】
上述の筆跡検索では、判定対象の手書き文書を作成したユーザと手書き文書の検索を要求したユーザとが同じである場合に、手書き文字の辞書データのような、ユーザ間で共通の特徴を有する手書き文字の標準パターンを利用することなく、各ユーザの手書きによる文字の形状や筆順、文字の略し方等の特徴を利用して、手書き文書を検索することができる。したがって、ユーザ固有の特徴を含む手書き文書の特徴量と検索キーの特徴量とが用いられるので、ある手書き文書に検索キーが含まれているか否かを判定する精度を向上することができ、また、対応する文字コードがない記号や図形（文字コードに変換できない記号や図形）を検索キーとして手書き文書検索を行うこともできる。
【００６９】
一方、判定対象手書き文書を作成したユーザとクライアント端末を使用しているユーザとが異なる場合には、検索決定部３５は、判定対象手書き文書に対して、少なくとも手書き入力データを用いた文字検索を行うことを決定する。検索決定部３５は、文字認識部３３および文字検索部３７に対して、判定対象手書き文書に対する手書き入力データを用いた文字検索を行うことを要求する。
【００７０】
文字認識部３３は、検索決定部３５による要求に応じて、検索キーである手書き入力データに含まれる時系列情報を解析することによって、検索キーとして手書きされた複数のストロークに対応する文字や記号を認識する。上述した手書き文書に対する文字認識と同様に、文字認識部３３は、まず、複数のストロークを文字毎のストロークを含む文字ブロックに分割する。そして、文字認識部３３は、予め用意された手書き文字の辞書データを用いて、文字ブロック毎に、文字ブロック内のストロークに対応する文字を認識する。手書き文字の辞書データでは、例えば、様々な文字や記号のそれぞれに対して、多くの手書き文字データ（例えば、多数人が手書きした手書き文字のデータ）を解析することによって得られた、手書き文字（記号）の標準パターンが関連付けられている。文字認識部３３は、例えば、手書き文字の辞書データに示される複数の文字から、その標準パターンと文字ブロック内のストロークとの類似度が最大である文字を検出し、検出された文字を文字コードに変換する。なお、検索キーに複数の手書き文字が含まれる場合には、文字認識部３３は、それら複数の手書き文字に対応する複数の文字コード（文字コード列）を取得する。文字認識部３３は、検索キーから認識された文字（文字列）に対応する文字コード（文字コード列）を、文字検索部３７に出力する。
【００７１】
文字検索部３７は、文字検索データベース４３から、判定対象手書き文書に対応する文字データ４３Ａを読み出す。そして、文字検索部３７は、読み出された文字データ４３Ａに示される文字コード（例えば、複数の文字列候補の文字コード）に、文字認識部３３によって出力された検索キーの文字コードが含まれているか否かを判定する。換言すると、文字検索部３７は、判定対象手書き文書に対する複数の文字コード（文字コード列）に、検索キーに対応する１以上の文字コード（文字コード列）が含まれているか否かを判定する。文字検索部３７は、判定対象手書き文書に対する複数の文字コードに、検索キーに対応する１以上の文字コードが含まれる場合、その判定対象手書き文書を、検索キーを含む手書き文書であると決定する。そして、文字検索部３７は、判定対象手書き文書を、検索キーに該当する手書き文書として、該当文書一覧に追加する。文字検索部３７は、例えば、判定対象手書き文書に付与された識別情報（ページＩＤ）を該当文書一覧に追加する。
【００７２】
上記の処理によって、全ての判定対象手書き文書に対して筆跡検索と文字検索のいずれかの検索が行われた後、手書き文書リード部３８は、手書き文書データベース４１から、該当文書一覧に示される手書き文書（ページＩＤ）に対応する手書き文書データ４１Ａを読み出す。そして、送信部３９は、読み出された手書き文書データ４１Ａと、手書き文書内の検索キーに該当するストロークを示すデータ（すなわち、ヒットワードを示すデータ）とを、手書き文書検索を要求したクライアント端末２Ｂ，２Ｃに送信する。手書き文書内の検索キーに該当するストロークは、筆跡検索部３６又は文字検索部３７による検索時に特定されたものであり、例えば、手書き文書データに含まれるストロークデータのストロークＩＤ（ストロークＩＤの範囲）で示される。なお、例えば、全ての判定対象手書き文書に対して筆跡検索と文字検索のいずれかの検索が行われた後に、検索キーを含む手書き文書データが所定数以上取得されていないとき、筆跡検索によって検索キーを含むか否かが判定された手書き文書データ４１Ａに対して、文字検索をさらに実行してもよい。
【００７３】
クライアント端末２Ｂ，２Ｃは、サーバ１の送信部３９によって送信された手書き文書データ４１Ａと、手書き文書内の検索キーに該当するストローク（ストロークＩＤ）を示すデータとを受信し、それらデータを用いて、検索キーに基づく検索結果を画面に表示する。クライアント端末２Ｂ，２Ｃは、例えば、受信した手書き文書データ４１Ａに含まれる複数のストロークデータに対応する複数のストロークの軌跡を画面に表示し、それら複数のストロークの軌跡の内、検索キーに対応するストロークの軌跡（ヒットワード部分）を強調して表示する。クライアント端末２Ｂ，２Ｃは、検索キーに対応するストロークの軌跡を強調表示する場合に、筆跡検索によって検出されたストロークと文字検索によって検出されたストロークとを、異なる表示形態（例えば、異なる色）で強調表示してもよい。なお、クライアント端末２Ｂ，２Ｃは、受信した手書き文書データ４１Ａに含まれる複数のストロークデータに対応する複数のストロークの軌跡が描画された手書き文書のサムネイルを画面に表示し、そのサムネイル内の検索キーに対応するストロークの軌跡を強調表示してもよい。例えば、クライアント端末２Ｂ，２Ｃは、検索結果として複数の手書き文書データ４１Ａが受信された場合には、ヒットワードが強調表示された、複数の手書き文書のサムネイルの一覧を画面に表示する。
【００７４】
また、上述の手書き文書管理プログラム１２Ｂは、クライアント端末２Ｂ，２Ｃ上で実行されてもよい。その場合、手書き文書管理プログラム１２Ｂは、例えば、タッチスクリーンディスプレイ２０６上で入力された検索要求（検索キー）に応じて、ＳＳＤ２０４等のストレージデバイスに保存された手書き文書データ４１Ａを検索し、その検索結果をタッチスクリーンディスプレイ２０６の画面上に表示する。手書き文書管理プログラム１２Ｂは、表示処理部４０をさらに備え、上述のように検索キーに基づく検索結果を画面に表示する。
【００７５】
図１１から図１３を参照して、クライアント端末２Ｂ，２Ｃ（又は、表示処理部４０）によって表示される手書き文書検索画面５００の例について説明する。
【００７６】
図１１に示すように、手書き文書検索画面５００は、検索キー入力領域５０１、検索ボタン５０１Ａ、クリアボタン５０１Ｂを表示する。検索キー入力領域５０１は、検索キーとすべき文字列または図形を手書きするための入力領域である。検索ボタン５０１Ａは、手書き文書検索処理の実行をサーバ１（検索要求受信部３４）に要求するためのボタンである。クリアボタン５０１Ｂは、検索キー入力領域５０１に手書きされた文字列または図形の削除（クリア）を指示するためのボタンである。
【００７７】
検索キー入力領域５０１は、キーボード（ソフトウェアキーボード）を用いて、検索キーとすべき文字列を入力するための入力領域としても使用され得る。その場合、クリアボタン５０１Ｂは、検索キー入力領域５０１にキーボード入力された文字列の削除（クリア）を指示するために用いられる。
【００７８】
手書き文書検索画面５００は、さらに、複数の手書き文書サムネイル６０１を表示するための領域を有する。図１１の例においては、手書き文書検索画面５００には、検索結果として取得される手書き文書（手書きページ）の内の９個の手書き文書それぞれに対応する、９個の手書き文書サムネイル６０１を表示することができる。
【００７９】
図１２に示されているように、検索キー入力領域５０１に手書き文字列「ＴＡＢＬＥＴ」が入力されている状態で検索ボタン５０１Ａが押下された場合、この手書き文字列「ＴＡＢＬＥＴ」を構成するストローク群に対応するストロークデータに基づく手書き文書検索がサーバ１に要求される。そして、手書き文書検索画面５００上には、サーバ１から受け取った検索結果に基づいて、手書き文字列「ＴＡＢＬＥＴ」を含むいくつかの手書き文書それぞれに対応する手書き文書サムネイル６０１が表示される。つまり、手書き文書検索画面５００上には、手書き文字列「ＴＡＢＬＥＴ」と推定されるストローク群を含むいくつかの手書き文書それぞれに対応する手書き文書サムネイル６０１が表示される。図１２においては、５個の手書き文書が手書き文字列「ＴＡＢＬＥＴ」を含む手書き文書として検索された場合が例示されている。ヒットワード、つまり５個の手書き文書サムネイル６０１中の手書き文字列「ＴＡＢＬＥＴ」（すなわち、手書き文字列「ＴＡＢＬＥＴ」に対応するストローク群）は強調表示される。
【００８０】
また、図１３に示されているように、手書き文書検索画面５００上に、サーバ１に対して要求する検索の種類を選択するためのボタン５０２Ａ，５０２Ｂをさらに表示してもよい。ユーザは、「筆跡検索」ボタン５０２Ａと「文字検索」ボタン５０２Ｂとを用いて、サーバ１に対して、筆跡検索と文字検索のいずれか、又は筆跡検索と文字検索の両方で手書き文書検索を行うことを指示できる。クライアント端末２Ｂ，２Ｃは、サーバ１に対する検索要求に、「筆跡検索」ボタン５０２Ａと「文字検索」ボタン５０２Ｂとを用いて指定された検索の種類を示す情報を含めて送信する。サーバ１は、この検索要求に応じて、指定された種類の検索を実行する。
【００８１】
図１３においては、筆跡検索と文字検索の両方で手書き文書検索が行われた場合が例示されている。この場合、手書き文書サムネイル６０１に含まれるヒットワードにおいては、両方の検索でヒットした文字列と、筆跡検索のみでヒットした文字列と、文字検索のみでヒットした文字列とが、別々の表示形態で強調表示される。例えば、両方の検索でヒットした文字列と、筆跡検索のみでヒットした文字列と、文字検索のみでヒットした文字列とは、異なる色で強調表示される。
【００８２】
なお、上記説明では、サーバ１から手書き文書データ４１Ａと、手書き文書内の検索キーに該当する部分を示すデータとを受信する例について述べたが、サーバ１（送信部３９）は、検索キーに該当する部分が強調表示された、該当文書一覧に示される手書き文書のサムネイルをクライアント端末２Ｂ，２Ｃに送信してもよい。その場合、クライアント端末２Ｂ，２Ｃは、サーバ１から受信した手書き文書のサムネイルを画面に表示するだけでよく、クライアント端末２Ｂ，２Ｃ側での処理を軽減することができる。
【００８３】
次いで、図１４のフローチャートを参照して、サーバ１によって実行される手書き文書検索処理の手順の例を説明する。
【００８４】
まず、検索要求受信部３４は、クライアント端末２Ｂ，２Ｃから検索要求を受信する（ブロックＢ１０１）。この検索要求には、例えば、検索を要求したユーザのユーザＩＤ、検索キー等が含まれる。検索決定部３５は、検索要求を受信したことに応じて、手書き文書データベース４１を参照して、検索対象の手書き文書の一覧を取得し（ブロックＢ１０２）、取得した一覧から、検索キーを含むか否かを判定する手書き文書（判定対象の手書き文書）を選択する（ブロックＢ１０３）。
【００８５】
次いで、検索決定部３５は、検索キーが手書き入力データであるか否かを判定する（ブロックＢ１０４）。つまり、検索決定部３５は、検索キーが、手書きによる１以上のストロークに対応する１以上のストロークデータが、それら１以上のストロークが手書きされた順序（筆順）で並べられた時系列情報と、キーボード入力された文字列に対応する文字コードとのいずれであるかを判定する。
【００８６】
検索キーが手書き入力データである場合（すなわち、ストロークデータが並べられた時系列情報である場合）（ブロックＢ１０４のＹＥＳ）、検索決定部３５は、検索を要求したユーザ（すなわち、検索キーを手書き入力したユーザ）と、判定対象の手書き文書を作成したユーザとが同一であるか否かを判定する（ブロックＢ１０５）。検索を要求したユーザと判定対象の手書き文書を作成したユーザとが同一である場合（ブロックＢ１０５のＹＥＳ）、特徴量算出部３２は、検索キーである手書き入力データを解析することによって、検索キーの特徴量を算出する（ブロックＢ１０６）。また、筆跡検索部３６は、特徴量データベース４２から判定対象の手書き文書に対応する複数の特徴量を読み出し（ブロックＢ１０７）、判定対象の手書き文書に対応する複数の特徴量に、検索キーの特徴量に類似する特徴量が含まれているか否かを判定する（ブロックＢ１０８）。筆跡検索部３６は、例えば、対象の手書き文書に対応する複数の特徴量の内の第１特徴量と、検索キーの特徴量との類似度がしきい値以上である場合に、判定対象の手書き文書に対応する複数の特徴量に、検索キーの特徴量に類似する特徴量が含まれていると判定する。
【００８７】
判定対象の手書き文書に対応する複数の特徴量に、検索キーの特徴量に類似する特徴量が含まれている場合（ブロックＢ１０８のＹＥＳ）、判定対象の手書き文書を、検索キーを含む手書き文書の一覧である該当文書一覧に追加する（ブロックＢ１０９）。判定対象の手書き文書に対応する複数の特徴量に、検索キーの特徴量に類似する特徴量が含まれていない場合（ブロックＢ１０８のＮＯ）、ブロックＢ１１０に進む。
【００８８】
また、検索キーが手書き入力データでない場合（すなわち、キーボードを用いて入力された文字列に対応する文字コードである場合）（ブロックＢ１０４のＮＯ）、文字検索部３７は、文字データベース４３から判定対象の手書き文書に対応する文字コード列を読み出し（ブロックＢ１１３）、判定対象の手書き文書に対応する文字コード列に、検索キーの文字コード（文字コード列）が含まれるか否かを判定する（ブロックＢ１１４）。そして、判定対象の手書き文書に対応する文字コード列に、検索キーの文字コードが含まれる場合（ブロックＢ１１４のＹＥＳ）、文字検索部３７は、判定対象の手書き文書を該当文書一覧に追加する（ブロックＢ１１５）。判定対象の手書き文書に対応する文字コード列に、検索キーの文字コードが含まれていない場合（ブロックＢ１１４のＮＯ）、ブロックＢ１１０に進む。
【００８９】
次いで、検索決定部３５は、すべての検索対象の手書き文書が処理されたか否かを判定する（ブロックＢ１１０）。未処理の検索対象の手書き文書がある場合（ブロックＢ１１０のＮＯ）、ブロックＢ１０３に戻ることによって新たな判定対象の手書き文書を設定し、その新たな判定対象の手書き文書に対して、上述のように、検索キーを含む該当文書であるかどうかを判定するための処理を実行する。すべての検索対象の手書き文書が処理されている場合（ブロックＢ１１０のＹＥＳ）、送信部３９は、該当文書一覧に含まれる手書き文書に対応する手書き文書データ４１Ａを、手書き文書の検索を要求したクライアント端末２Ｂ，２Ｃに送信する（ブロックＢ１１１）。
【００９０】
これにより、クライアント端末２Ｂ，２Ｃは、サーバ１から送信された手書き文書データ４１Ａを用いて、検索キーに該当する手書き文書データ４１Ａやその一覧を画面上に表示することができる。
【００９１】
以上説明したように、本実施形態によれば、手書き文書を精度よく検索することができる。本実施形態では、検索キーに基づく手書き文書検索が要求されたとき、検索キーが手書き入力データ（ストロークデータ）を含むか否かと、保存されている複数の手書き文書４１Ａの内の判定対象の手書き文書を作成した作成ユーザと手書き文書検索を要求した検索ユーザが同じであるか否かとに応じて、筆跡検索と文字検索のいずれか一方が実行される。検索キーが手書き入力データを含み、作成ユーザと検索ユーザとが同じである場合、手書き文書に含まれるストロークの特徴量と検索キーに含まれるストロークの特徴量とを用いて、検索キーを含む手書き文書データを取得する筆跡検索が実行される。検索キーが手書き入力データを含み、作成ユーザと検索ユーザとが異なる場合、手書き文書に含まれるストロークから文字認識された手書き文字に対応する文字コードと、検索キーに含まれるストロークから文字認識された手書き文字に対応する文字コードとを用いて、検索キーを含む手書き文書データを取得する文字検索が実行される。また、検索キーが文字コードを含む場合には、手書き文書に含まれるストロークから文字認識された手書き文字に対応する文字コードと、検索キーに含まれる文字コードとを用いて、検索キーを含む手書き文書データを取得する文字検索が実行される。このように、筆跡検索と文字検索とが使い分けられることによって、筆跡検索と文字検索のそれぞれの利点を生かして、精度よく手書き文書の検索を行うことができる。
【００９２】
本実施形態の手書き文書に対する各種処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムを通常のコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【００９３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００９４】
１２Ｂ…手書き文書管理プログラム、３１…手書き文書受信部、３２…特徴量算出部、３３…文字認識部、３４…検索要求受信部、３５…検索決定部、３６…筆跡検索部、３７…文字検索部、３８…手書き文書リード部、３９…送信部、４０…表示処理部、４１…手書き文書データベース、４１Ａ…手書き文書データ、４１Ｂ…ストロークデータ、４２…特徴量データベース、４２Ａ…特徴量データ、４３…文字検索データベース、４３Ａ…文字データ。
【図１】
2014052914.tif 000003
【図２】
2014052914.tif 000004
【図３】
2014052914.tif 000005
【図４】
2014052914.tif 000006
【図５】
2014052914.tif 000007
【図６】
2014052914.tif 000008
【図７】
2014052914.tif 000009
【図８】
2014052914.tif 000010
【図９】
2014052914.tif 000011
【図１０】
2014052914.tif 000012
【図１１】
2014052914.tif 000013
【図１２】
2014052914.tif 000014
【図１３】
2014052914.tif 000015
【図１４】
2014052914.tif 000016
【手続補正書】
【提出日】平成25年3月27日(2013.3.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
手書き入力された複数のストロークに対応する複数のストロークデータを含む手書き文書データと、前記複数のストロークデータに対応する複数の文字コードとを記憶する記憶媒体と、
検索キーに基づく手書き文書データに対する検索が要求される場合、前記手書き文書データを作成したユーザと、検索キーに基づく前記手書き文書データに対する検索を要求したユーザとに応じて、検索キーのストロークデータを用いて、前記手書き文書データから検索キーに対応するストロークデータを取得する筆跡検索の結果と、検索キーの文字コードと前記複数のストロークデータに対応する複数の文字コードとを用いて、検索キーに対応するストロークデータを取得する文字検索の結果のいずれか少なくとも一方を表示する表示制御手段とを具備する情報処理装置。
【請求項２】
前記表示制御手段は、前記手書き文書データを作成したユーザと、検索キーに基づく前記手書き文書データに対する検索を要求したユーザとが同じである場合、少なくとも筆跡検索の結果を表示する請求項１記載の情報処理装置。
【請求項３】
前記表示制御手段は、検索キーのストロークデータの特徴量と、前記複数のストロークデータのいずれかの特徴量との類似度がしきい値以上である場合、前記手書き文書データが検索キーを含むと決定する請求項１記載の情報処理装置。
【請求項４】
前記表示制御手段は、前記手書き文書データを作成したユーザと、検索キーに基づく前記手書き文書データに対する検索を要求したユーザとが異なる場合、少なくとも文字検索の結果を表示する請求項１記載の情報処理装置。
【請求項５】
前記表示制御手段は、前記複数のストロークデータに対応する複数の文字コードに、検索キーの文字コードが含まれる場合、前記手書き文書データが検索キーを含むと決定する請求項１記載の情報処理装置。
【請求項６】
前記表示制御手段は、検索キーに基づく手書き文書データに対する検索が要求される場合であって、検索キーが文字コードにより入力される場合、文字検索の結果を表示する請求項１記載の情報処理装置。
【請求項７】
前記表示制御手段は、検索キーに基づく手書き文書データに対する検索が要求される場合であって、検索キーが手書き入力される場合、手書き入力された検索キーを文字認識して、文字検索の結果を表示する請求項１記載の情報処理装置。
【請求項８】
前記表示制御手段は、前記複数のストロークデータに対応する複数のストロークを画面に表示し、前記複数のストロークの内、検索キーに対応するストロークを強調して表示する請求項１記載の情報処理装置。
【請求項９】
タッチスクリーンディスプレイをさらに具備し、
前記タッチスクリーンディスプレイを介して、検索キーが手書き入力され、
前記タッチスクリーンディスプレイは、前記複数のストロークを表示可能であって、また、前記表示制御手段で取得される検索結果の表示が可能である請求項１記載の情報処理装置。
【請求項１０】
記憶処理手段によって、手書き入力された複数のストロークに対応する複数のストロークデータを含む手書き文書データと、前記複数のストロークデータに対応する複数の文字コードとを記憶媒体に記憶し、
表示制御手段によって、検索キーに基づく手書き文書データに対する検索が要求される場合、前記手書き文書データを作成したユーザと、検索キーに基づく前記手書き文書データに対する検索を要求したユーザとに応じて、検索キーのストロークデータを用いて、前記手書き文書データから検索キーに対応するストロークデータを取得する筆跡検索の結果と、検索キーの文字コードと前記複数のストロークデータに対応する複数の文字コードとを用いて、検索キーに対応するストロークデータを取得する文字検索の結果のいずれか少なくとも一方を表示する手書き文書検索方法。
【請求項１１】
コンピュータにより実行されるプログラムであって、前記プログラムは、
手書き入力された複数のストロークに対応する複数のストロークデータを含む手書き文書データと、前記複数のストロークデータに対応する複数の文字コードとを記憶媒体に記憶する手順と、
検索キーに基づく手書き文書データに対する検索が要求される場合、前記手書き文書データを作成したユーザと、検索キーに基づく前記手書き文書データに対する検索を要求したユーザとに応じて、検索キーのストロークデータを用いて、前記手書き文書データから検索キーに対応するストロークデータを取得する筆跡検索の結果と、検索キーの文字コードと前記複数のストロークデータに対応する複数の文字コードとを用いて、検索キーに対応するストロークデータを取得する文字検索の結果のいずれか少なくとも一方を表示する手順とを前記コンピュータに実行させるプログラム。
【請求項１２】
前記表示する手順は、前記手書き文書データを作成したユーザと、検索キーに基づく前記手書き文書データに対する検索を要求したユーザとが同じである場合、少なくとも筆跡検索の結果を表示することを含む請求項１１記載のプログラム。
【請求項１３】
前記表示する手順は、検索キーのストロークデータの特徴量と、前記複数のストロークデータのいずれかの特徴量との類似度がしきい値以上である場合、前記手書き文書データが検索キーを含むと決定することを含む請求項１１記載のプログラム。
【請求項１４】
前記表示する手順は、前記手書き文書データを作成したユーザと、検索キーに基づく前記手書き文書データに対する検索を要求したユーザとが異なる場合、少なくとも文字検索の結果を表示することを含む請求項１１記載のプログラム。
【請求項１５】
前記表示する手順は、前記複数のストロークデータに対応する複数の文字コードに、検索キーの文字コードが含まれる場合、前記手書き文書データが検索キーを含むと決定することを含む請求項１１記載のプログラム。
【請求項１６】
前記表示する手順は、検索キーに基づく手書き文書データに対する検索が要求される場合であって、検索キーが文字コードにより入力される場合、文字検索の結果を表示することを含む請求項１１記載のプログラム。
【請求項１７】
前記表示する手順は、検索キーに基づく手書き文書データに対する検索が要求される場合であって、検索キーが手書き入力される場合、手書き入力された検索キーを文字認識して、文字検索の結果を表示することを含む請求項１１記載のプログラム。
【請求項１８】
前記表示する手順は、前記複数のストロークデータに対応する複数のストロークを画面に表示し、前記複数のストロークの内、検索キーに対応するストロークを強調して表示することを含む請求項１１記載のプログラム。
【請求項１９】
前記コンピュータは、タッチスクリーンディスプレイをさらに具備し、
前記検索キーは、前記タッチスクリーンディスプレイを介して手書き入力され、
前記タッチスクリーンディスプレイは、前記複数のストロークを表示可能であって、また、前記表示する手順で取得される検索結果の表示が可能である請求項１１記載のプログラム。
【請求項２０】
手書き入力された複数のストロークに対応する複数のストロークデータを含む手書き文書データと、前記複数のストロークデータに対応する複数の文字コードとを記憶する記憶媒体と、
検索キーに基づく手書き文書データに対する検索が要求される場合、前記手書き文書データを作成したユーザに関する情報と、検索キーに基づく前記手書き文書データに対する検索を要求したユーザに関する情報との少なくとも一方に応じて、検索キーのストロークデータを用いて、前記手書き文書データから検索キーに対応するストロークデータを取得する筆跡検索の結果と、検索キーの文字コードと前記複数のストロークデータに対応する複数の文字コードとを用いて、検索キーに対応するストロークデータを取得する文字検索の結果のいずれか少なくとも一方を表示する表示制御手段とを具備する情報処理装置。
【請求項２１】
記憶処理手段によって、手書き入力された複数のストロークに対応する複数のストロークデータを含む手書き文書データと、前記複数のストロークデータに対応する複数の文字コードとを記憶媒体に記憶し、
表示制御手段によって、検索キーに基づく手書き文書データに対する検索が要求される場合、前記手書き文書データを作成したユーザに関する情報と、検索キーに基づく前記手書き文書データに対する検索を要求したユーザに関する情報との少なくとも一方に応じて、検索キーのストロークデータを用いて、前記手書き文書データから検索キーに対応するストロークデータを取得する筆跡検索の結果と、検索キーの文字コードと前記複数のストロークデータに対応する複数の文字コードとを用いて、検索キーに対応するストロークデータを取得する文字検索の結果のいずれか少なくとも一方を表示する手書き文書検索方法。
【請求項２２】
コンピュータにより実行されるプログラムであって、前記プログラムは、
手書き入力された複数のストロークに対応する複数のストロークデータを含む手書き文書データと、前記複数のストロークデータに対応する複数の文字コードとを記憶媒体に記憶する手順と、
検索キーに基づく手書き文書データに対する検索が要求される場合、前記手書き文書データを作成したユーザに関する情報と、検索キーに基づく前記手書き文書データに対する検索を要求したユーザに関する情報との少なくとも一方に応じて、検索キーのストロークデータを用いて、前記手書き文書データから検索キーに対応するストロークデータを取得する筆跡検索の結果と、検索キーの文字コードと前記複数のストロークデータに対応する複数の文字コードとを用いて、検索キーに対応するストロークデータを取得する文字検索の結果のいずれか少なくとも一方を表示する手順とを前記コンピュータに実行させるプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
実施形態によれば、情報処理装置は、記憶媒体及び表示制御手段を具備する。記憶媒体は、手書き入力された複数のストロークに対応する複数のストロークデータを含む手書き文書データと、前記複数のストロークデータに対応する複数の文字コードとを記憶する。表示制御手段は、検索キーに基づく手書き文書データに対する検索が要求される場合、前記手書き文書データを作成したユーザと、検索キーに基づく前記手書き文書データに対する検索を要求したユーザとに応じて、検索キーのストロークデータを用いて、前記手書き文書データから検索キーに対応するストロークデータを取得する筆跡検索の結果と、検索キーの文字コードと前記複数のストロークデータに対応する複数の文字コードとを用いて、検索キーに対応するストロークデータを取得する文字検索の結果のいずれか少なくとも一方を表示する。