以下、実施の形態について図面を参照して説明する。
図1は、一実施形態に係る電子機器の外観を示す斜視図である。電子機器は、例えば、ペンまたは指によって手書き入力可能なペン・ベースの携帯型電子機器である。電子機器は、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、スマートフォン、PDA等として実現され得る。以下では、電子機器がタブレットコンピュータ10として実現されている場合を想定する。タブレットコンピュータ10は、タブレットまたはスレートコンピュータとも称される携帯型電子機器であり、図1に示すように、本体11とタッチスクリーンディスプレイ17とを備える。タッチスクリーンディスプレイ17は、本体11の上面に重ね合わせるように取り付けられている。
本体11は、薄い箱形の筐体を有している。タッチスクリーンディスプレイ17には、フラットパネルディスプレイと、フラットパネルディスプレイの画面上のペンまたは指の接触位置を検出するように構成されたセンサとが組み込まれている。フラットパネルディスプレイは、例えば、液晶表示装置(LCD)であってもよい。センサとしては、例えば、静電容量方式のタッチパネル、電磁誘導方式のデジタイザなどを使用することができる。以下では、デジタイザとタッチパネルの2種類のセンサの双方がタッチスクリーンディスプレイ17に組み込まれている場合を想定する。
デジタイザ及びタッチパネルの各々は、フラットパネルディスプレイの画面を覆うように設けられる。タッチスクリーンディスプレイ17は、指を使用した画面に対するタッチ操作のみならず、ペン100を使用した画面に対するタッチ操作も検出することができる。ペン100は例えば電磁誘導ペンであってもよい。ユーザは、外部オブジェクト(ペン100又は指)を使用してタッチスクリーンディスプレイ17上で手書き入力操作を行うことができる。手書き入力操作中においては、画面上の外部オブジェクト(ペン100又は指)の動きの軌跡、つまり手書き入力操作によって手書きされるストロークの軌跡(筆跡)がリアルタイムで画面上に表示される。外部オブジェクトが画面に接触している間の、外部オブジェクトの動きの軌跡が1ストロークに相当する。手書き文書は、通常、手書きされた文字または図形などに対応する多数のストロークの集合、つまり多数の軌跡(筆跡)の集合により構成される。
本実施形態において、手書き文書は、イメージデータではなく、各ストロークの軌跡の座標列とストローク間の順序関係を示す時系列情報として記憶媒体に保存される。時系列情報の詳細は図4を参照して後述するが、この時系列情報は、概して、複数のストロークにそれぞれ対応する時系列のストロークデータの集合を意味する。各ストロークデータは、ある一つのストロークに対応し、ストロークの軌跡上の点それぞれに対応する座標データ系列(時系列座標)を含む。これらストロークデータの並びの順序は、ストロークそれぞれが手書きされた順序つまり筆順に相当する。
タブレットコンピュータ10は、記憶媒体から既存の任意の時系列情報を読み出し、この時系列情報に対応する手書き文書、つまり時系列情報によって示される複数のストロークそれぞれに対応する軌跡を画面上に表示する検索機能を有している。さらに、タブレットコンピュータ10は編集機能を有している。編集機能は、「消しゴム」ツール、範囲指定ツール、及び他の各種ツール等を用いたユーザによる編集操作に応じて、表示中の手書き文書内の任意のストロークまたは任意の手書き文字等を削除または移動することができる。さらに、編集機能は、幾つかの手書き操作の履歴を取り消す機能も含んでいる。
本実施形態では、時系列情報(手書き文書)は、1つまたは複数のページとして管理することができる。この場合、時系列情報(手書き文書)を1つの画面に収まる面積単位で区切ることによって、1つの画面に収まる時系列情報のまとまりを1つのページとして記録してもよい。あるいは、ページのサイズを可変できるようにしてもよい。この場合、ページのサイズは1つの画面のサイズよりも大きい面積に広げることができるので、画面のサイズよりも大きな面積の手書き文書を一つのページとして扱うことができる。1つのページ全体をディスプレイに同時に表示できない場合は、そのページを縮小して表示するようにしてもよいし、縦横スクロールによってページ内の表示対象部分を移動するようにしてもよい。また、ページを縮小して、複数のページを同時に1画面中に表示するようにしても良い(サムネイルの一覧表示)。
図2は、タブレットコンピュータ10と外部装置との連携動作の例を示している。タブレットコンピュータ10は、パーソナルコンピュータ1やクラウドコンピューティングと連携することができる。すなわち、タブレットコンピュータ10は、無線LANなどの無線通信デバイスを備えており、パーソナルコンピュータ1との無線通信を実行することができる。さらに、タブレットコンピュータ10は、インターネット上のサーバ2との通信を実行することもできる。サーバ2はオンラインストレージサービス、他の各種クラウドコンピューティングサービスを実行するサーバであってもよい。
パーソナルコンピュータ1はハードディスクドライブ(HDD)のようなストレージデバイスを備えている。タブレットコンピュータ10は、時系列情報(手書き文書)を、ネットワークを介してパーソナルコンピュータ1に送信して、パーソナルコンピュータ1のHDDに記録することができる(アップロード)。タブレットコンピュータ10とパーソナルコンピュータ1との間のセキュアな通信を確保するために、通信開始時には、パーソナルコンピュータ1がタブレットコンピュータ10を認証するようにしてもよい。この場合、タブレットコンピュータ10の画面上にユーザに対してIDまたはパスワードの入力を促すダイアログを表示してもよいし、タブレットコンピュータ10のIDなどを自動的にタブレットコンピュータ10からパーソナルコンピュータ1に送信してもよい。
これにより、タブレットコンピュータ10内のストレージの容量が少ない場合でも、タブレットコンピュータ10が多数の時系列情報(手書き文書)あるいは大容量の時系列情報(手書き文書)を扱うことが可能となる。
さらに、タブレットコンピュータ10は、パーソナルコンピュータ1のHDDに記録されている任意の1以上の時系列情報を読み出し(ダウンロード)、その読み出した時系列情報によって示されるストロークそれぞれの軌跡をタブレットコンピュータ10のディスプレイ17の画面に表示することができる。この場合、複数の時系列情報(手書き文書)それぞれのページを縮小することによって得られるサムネイルの一覧をディスプレイ17の画面上に表示してもよいし、これらサムネイルから選ばれた1ページをディスプレイ17の画面上に通常サイズで表示してもよい。
さらに、タブレットコンピュータ10が通信する先はパーソナルコンピュータ1ではなく、上述したように、ストレージサービスなどを提供するクラウドコンピューティングのサーバ2であってよい。タブレットコンピュータ10は、時系列情報(手書き文書)を、ネットワークを介してサーバ2に送信して、サーバ2のストレージデバイス2Aに記録することができる(アップロード)。さらに、タブレットコンピュータ10は、サーバ2のストレージデバイス2Aに記録されている任意の時系列情報を読み出して(ダウンロード)、その時系列情報によって示されるストロークそれぞれの軌跡をタブレットコンピュータ10のディスプレイ17の画面に表示することができる。
このように、本実施形態では、時系列情報が格納される記憶媒体は、タブレットコンピュータ10内のストレージデバイス、パーソナルコンピュータ1内のストレージデバイス、サーバ2のストレージデバイスのいずれであってもよい。
次に、図3及び図4を参照して、ユーザによって手書きされたストローク(文字、マーク、図形、表など)と時系列情報との関係について説明する。図3は、ペン100などを使用してタッチスクリーンディスプレイ17上に手書きされる手書き文書(手書き文字列)の例を示している。
手書き文書では、一旦手書きされた文字や図形などの上に、さらに別の文字や図形などが手書きされるというケースが多い。図3においては、「ABC」の手書き文字列が「A」、「B」、「C」の順番で手書きされ、この後に、手書きの矢印が、手書き文字「A」のすぐ近くに手書きされた場合が想定されている。
手書き文字「A」は、ペン100などを使用して手書きされる2つのストローク(「∧」形状の軌跡、「−」形状の軌跡)によって、つまり2つの軌跡によって表現される。最初に手書きされる「∧」形状のペン100の軌跡は例えば等時間間隔でリアルタイムにサンプリングされ、これによって「∧」形状のストロークの時系列座標SD11、SD12、…SD1nが得られる。同様に、次に手書きされる「−」形状のペン100の軌跡もサンプリングされ、これによって「−」形状のストロークの時系列座標SD21、SD22、…SD2nが得られる。
手書き文字「B」は、ペン100などを使用して手書きされた2つのストローク、つまり2つの軌跡によって表現される。手書き文字「C」は、ペン100などを使用して手書きされた手書きされた1つのストローク、つまり1つの軌跡によって表現される。手書きの「矢印」は、ペン100などを使用して手書きされた2つのストローク、つまり2つの軌跡によって表現される。
図4は、図3の手書き文書に対応する時系列情報200を示している。時系列情報は、複数のストロークデータSD1、SD2、…、SD7を含む。時系列情報200内においては、これらストロークデータSD1、SD2、…、SD7は、筆跡順に、つまり複数のストロークが手書きされた順に時系列に並べている。
時系列情報200において、先頭の2つのストロークデータSD1、SD2は、手書き文字「A」の2つのストロークをそれぞれ示している。3番目と4番目のストロークデータSD3、SD4は、手書き文字「B」を構成する2つのストロークをそれぞれ示している。5番目のストロークデータSD5は、手書き文字「C」を構成する1つのストロークを示している。6番目と7番目のストロークデータSD6、SD7は、手書き「矢印」を構成する2つのストロークをそれぞれ示している。
各ストロークデータは、一つのストロークに対応する座標データ系列(時系列座標)、つまり一つのストロークの軌跡上の複数の点それぞれに対応する複数の座標を含む。各ストロークデータにおいては、複数の座標はストロークが書かれた順に時系列に並べられている。例えば、手書き文字「A」に関しては、ストロークデータSD1は、手書き文字「A」の「∧」形状のストロークの軌跡上の点それぞれに対応する座標データ系列(時系列座標)、つまりn個の座標データSD11、SD12、…SD1nを含む。ストロークデータSD2は、手書き文字「A」の「−」形状のストロークの軌跡上の点それぞれに対応する座標データ系列、 つまりn個の座標データSD21、SD22、…SD2nを含む。なお、座標データの数はストロークデータ毎に異なっていてもよい。
各座標データは、対応する軌跡内のある1点に対応するX座標及びY座標を示す。例えば、座標データSD11は、「∧」形状のストロークの始点のX座標(X11)及びY座標(Y11)を示す。SD1nは、「∧」形状のストロークの終点のX座標(X1n)及びY座標(Y1n)を示す。
さらに、各座標データは、その座標に対応する点が手書きされた時点に対応するタイムスタンプ情報Tを含んでいてもよい。手書きされた時点は、絶対時間(例えば、年月日時分秒)またはある時点を基準とした相対時間のいずれであってもよい。例えば、各ストロークデータに、ストロークが書き始められた絶対時間(例えば、年月日時分秒)をタイムスタンプ情報として付加し、さらに、ストロークデータ内の各座標データに、絶対時間との差分を示す相対時間をタイムスタンプ情報Tとして付加してもよい。
このように、各座標データにタイムスタンプ情報Tが追加された時系列情報を使用することにより、ストローク間の時間的関係をより精度よく表すことができる。
さらに、各座標データには、筆圧を示す情報(Z)を追加してもよい。
図4で説明したような構造を有する時系列情報200は、個々のストロークの筆跡だけでなく、ストローク間の時間的関係も表すことができる。従って、時系列情報200を使用することにより、図3に示すようにたとえ手書き「矢印」の先端部が手書き文字「A」上に重ねてまたは手書き文字「A」に近接して書かれたとしても、手書き文字「A」と手書き「矢印」の先端部とを異なる文字または図形として扱うことが可能となる。
いま、図3に破線の四角で示されているように、ユーザによって画面上のある範囲が指定された場合を想定する。破線の四角によって示される指定範囲には、手書き文字「A」の2つのストロークと、手書き「矢印」の先端部に対応する1つのストロークが含まれている。通常であれば、手書き文字「A」の2つのストロークのみならず、手書き「矢印」の先端部に対応する1つのストロークも、処理対象の時系列情報部分として選択されてしまう可能性がある。
しかし、本実施形態では、時系列情報200を使用することにより、手書き「矢印」の先端部を処理対象の時系列情報部分から除外することができる。すなわち、本実施形態では、時系列情報200が解析され、これによって手書き文字「A」の2つのストローク(ストロークデータSD1、SD2)については連続的に手書きされたものと判定され、さらに、手書き「矢印」の先端部(ストロークデータSD7)の手書きタイミングは、手書き文字「A」の手書きタイミングと不連続であることが判定される。従って、手書き「矢印」の先端部(ストロークデータSD7)を処理対象の時系列情報部分から除外することができる。この場合、手書き「矢印」の先端部(ストロークデータSD7)の手書きタイミングが手書き文字「A」の手書きタイミングと不連続であるか否かの判定は、時系列情報内のストロークデータの並びに基づいて行うことができる。あるいは、この判定は、上述のタイムスタンプ情報Tを使用して実行してもよい。タイムスタンプ情報Tを使用することにより、より高精度に判定することができる。
また、時系列情報内のストロークデータの並びとタイムスタンプ情報Tの双方に基づいて、上述の判定を実行してもよい。例えば、ストロークデータSD2とストロークデータSD7との間に所定数以上のストロークデータが含まれている場合には、ストロークデータSD7の書き込みタイミングがストロークデータSD2の書き込みタイミングと不連続であると判定し、ストロークデータSD2とストロークデータSD7との間のストロークデータ数が所定数よりも少ない場合には、ストロークデータSD2内のタイムスタンプ情報とストロークデータSD7のタイムスタンプ情報とに基づいて、ストロークデータSD7の書き込みタイミングがストロークデータSD2の書き込みタイミングと不連続であるか否かを判定してもよい。この場合、ストロークデータSD2内の最後の座標データに付加されたタイムスタンプ情報T2nとストロークデータSD7内の先頭の座標データに付加されたタイムスタンプ情報T71とを比較してもよい。
さらに、本実施形態の時系列情報200においては、上述したように、ストロークデータSD1、SD2、…、SD7の並びは手書き文字の筆順を示す。例えば、ストロークデータSD1及びSD2の並びは、最初に「∧」形状のストロークが手書きされ、次に「−」形状のストロークが手書きされたことを表す。従って、たとえ2つの手書き文字の筆跡同士が互いに類似していても、それら2つの手書き文字の筆順が互いに異なる場合には、それら2つの手書き文字を異なる文字として区別することができる。
さらに、本実施形態では、上述したように、手書き文書は、イメージまたは文字認識結果ではなく、時系列のストロークデータの集合から構成される時系列情報200として記憶されるので、手書き文字の言語に依存せずに手書き文字を扱うことができる。よって、本実施形態の時系列情報200の構造は、使用言語の異なる世界中の様々な国で共通に使用できる。
図5は、タブレットコンピュータ10のシステム構成を示す図である。
タブレットコンピュータ10は、図5に示されるように、CPU101、システムコントローラ102、主メモリ103、グラフィクスコントローラ105、BIOS−ROM105、不揮発性メモリ106、無線通信デバイス107、エンベデッドコントローラ(EC)108等を備える。
CPU101は、タブレットコンピュータ10内の各種モジュールの動作を制御するプロセッサである。CPU101は、ストレージデバイスである不揮発性メモリ106から主メモリ103にロードされる各種ソフトウェアを実行する。これらソフトウェアには、オペレーティングシステム(OS)201、及び各種アプリケーションプログラムが含まれている。アプリケーションプログラムには、デジタルノートブックアプリケーションプログラム202が含まれている。このデジタルノートブックアプリケーションプログラム202は、上述の手書き文書を作成及び表示する機能、手書き文書を編集する機能、筆跡検索機能、及び文字・図表認識機能等を有している。
また、CPU101は、BIOS−ROM105に格納された基本入出力システム(BIOS)も実行する。BIOSは、ハードウェア制御のためのプログラムである。
システムコントローラ102は、CPU101のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ102には、主メモリ103をアクセス制御するメモリコントローラも内蔵されている。また、システムコントローラ102は、PCI EXPRESS規格のシリアルバスなどを介してグラフィクスコントローラ104との通信を実行する機能も有している。
グラフィクスコントローラ104は、本タブレットコンピュータ10のディスプレイモニタとして使用されるLCD17Aを制御する表示コントローラである。グラフィクスコントローラ104によって生成される表示信号はLCD17Aに送られる。LCD17Aは、表示信号に基づいて画面イメージを表示する。LCD17A上にはタッチパネル17B及びデジタイザ17Cが配置されている。タッチパネル17Bは、LCD17Aの画面上で入力を行うための静電容量式のポインティングデバイスである。指が接触される画面上の接触位置及び接触位置の動き等はタッチパネル17Bによって検出される。デジタイザ17CはLCD17Aの画面上で入力を行うための電磁誘導式のポインティングデバイスである。ペン100が接触される画面上の接触位置及び接触位置の動き等はデジタイザ17Cによって検出される。
無線通信デバイス107は、無線LANまたは3G移動通信などの無線通信を実行するように構成されたデバイスである。EC108は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。EC108は、ユーザによるパワーボタンの操作に応じて本タブレットコンピュータ10を電源オンまたは電源オフする機能を有している。
次に、図6を参照して、デジタルノートブックアプリケーションプログラム202の機能構成について説明する。
デジタルノートブックアプリケーションプログラム202は、ペン軌跡表示処理部301、時系列情報生成部302、編集処理部303、ページ保存処理部304、ページ取得処理部305、手書き文書表示処理部306、処理対象ブロック選択部307、及び処理部308等を備える。
デジタルノートブックアプリケーションプログラム202は、タッチスクリーンディスプレイ17を用いて入力されるストロークデータを使用することによって、手書き文書の作成、表示、編集等を行う。タッチスクリーンディスプレイ17は、「タッチ」、「移動(スライド)」、「リリース」等のイベントの発生を検出するように構成されている。「タッチ」は、画面上に外部オブジェクトが接触したことを示すイベントである。「移動(スライド)」は、画面上に外部オブジェクトが接触されている間に接触位置が移動されたことを示すイベントである。「リリース」は、画面から外部オブジェクトが離されたことを示すイベントである。
ペン軌跡表示処理部301及び時系列情報生成部302は、タッチスクリーンディスプレイ17によって発生される「タッチ」または「移動(スライド)」のイベントを受信し、これによって手書き入力操作を検出する。「タッチ」イベントには、接触位置の座標が含まれている。「移動(スライド)」イベントにも、移動先の接触位置の座標が含まれている。従って、ペン軌跡表示処理部301及び時系列情報生成部302は、タッチスクリーンディスプレイ17から、接触位置の動きの軌跡に対応する座標列を受信することができる。
ペン軌跡表示処理部301は、タッチスクリーンディスプレイ17から座標列を受信し、この座標列に基づいて、ペン100等を使用した手書き入力操作によって手書きされる各ストロークの軌跡をタッチスクリーンディスプレイ17内のLCD17Aの画面上に表示する。ペン軌跡表示処理部301により、画面にペン100が接触している間のペン100の軌跡、つまり各ストロークの軌跡がLCD17Aの画面上に描かれる。
時系列情報生成部302は、タッチスクリーンディスプレイ17から出力される上述の座標列を受信し、この座標列に基づいて、図4で詳述したような構造を有する上述の時系列情報を生成する。この場合、時系列情報、つまりストロークの各点に対応する座標及びタイムスタンプ情報は作業メモリ401に一時保存してもよい。
さらに、時系列情報生成部302は、時系列情報をもとにブロック構造化処理を実行して、各ストロークに対応するストロークデータをブロック毎に区分することができる。例えば、1つの文字(あるいは1つの記号など)を構成するストローク毎に区分する。時系列情報生成部302は、例えば、タイムスタンプ情報をもとに判別される、1つのストロークの最後の座標が入力されてから次のストロークの最初の座標が入力されるまでの時間と、各ストロークの座標から判別される距離に基づいて、複数のストロークを区分することができる。
例えば、図3に示す手書き文字「A」「B」に関しては、通常、手書き文字「A」のストロークデータSD1(「A」の第1ストローク)が入力された後、次のストロークデータSD2(「A」の第2ストローク)が入力されるまでの時間は比較的短く、ストロークデータSD2(「A」の第2ストローク)が入力された後、次の手書き文字「B」のストロークデータSD3(「B」の第1ストローク)が入力されるまでの時間は比較的長くなる。時系列情報生成部302は、予め決められた時間基準値と、ストロークデータSD2,SD3の時間とを比較することにより、時間基準値よりもストロークSD2,SD3の時間が長い場合に、ストロークデータSD2とストロークデータSD3との間をストロークの区分候補として求める。
また、時系列情報生成部302は、各ストロークの間の距離と予め設定された距離基準値とを比較し、距離基準値よりもストローク間の距離が長い場合にストロークの区分候補として求める。図3に示す手書き文字「A」「B」に関しては、手書き文字「A」のストロークデータSD1と次のストロークデータSD2(「A」の第2ストローク)との距離は短く、ストロークデータSD2(「A」の第2ストローク)と手書き文字「B」のストロークデータSD3(「B」の第1ストローク)との距離は長い。時系列情報生成部302は、ストロークデータSD2とストロークデータSD3との距離が距離基準値より長い場合に、ストロークデータSD2とストロークデータSD3との間をストロークの区分候補として求める。
時系列情報生成部302は、前述した各ストローク間の時間と距離に基づいて、複数のストロークデータをブロック毎に区分し、各ブロックを示すブロック情報を時系列情報に追加する。
ページ保存処理部304は、生成された時系列情報を手書き文書(手書きページ)として記憶媒体402に保存する。記憶媒体402は、上述したように、タブレットコンピュータ10内のストレージデバイス、パーソナルコンピュータ1内のストレージデバイス、サーバ2のストレージデバイスのいずれであってもよい。
ページ取得処理部305は、記憶媒体402から既に格納されている任意の時系列情報を読み出す。読み出された時系列情報は手書き文書表示処理部306に送られる。手書き文書表示処理部306は、時系列情報を解析し、この解析結果に基づいて、時系列情報によって示される各ストロークの軌跡を画面に手書きページとして表示する。また、手書き文書表示処理部306は、画面に1ページ分の手書きページを表示するだけでなく、手書きページを縮小した手書きページサムネイルを、画面に複数ページ分表示することができる。手書き文書表示処理部306は、処理部308の検索処理部309による検索結果に応じて、複数の検索対象とする手書きページから検索キーとして指定した特定の時系列情報部分を含む手書きページを選択して、手書きページサムネイルにより一覧表示することができる。
編集処理部303は、現在表示中の手書きページを編集するための処理を実行する。すなわち、編集処理部303は、タッチスクリーンディスプレイ17上でユーザによって行われる編集操作に応じて、表示されている複数のストローク内の1以上のストロークを削除、移動または追加等するための編集処理を実行する。さらに、編集処理部303は、編集処理の結果を表示中の時系列情報に反映するためにこの時系列情報を更新する。
ユーザは、「消しゴム」ツール等を使用して、表示されている複数のストローク内の任意のストロークを削除することができる。また、ユーザは、画面上の任意の部分を丸または四角によって囲むための「範囲指定」ツールを使用して、表示中の時系列情報(手書きページ)内の任意の部分を範囲指定することができる。この範囲指定操作によって指定される画面上の指定範囲に応じて、処理対象の時系列情報部分、つまり処理対象のストロークデータ群が処理対象ブロック選択部307によって選択される。すなわち、処理対象ブロック選択部307は、表示中の時系列情報から、指定範囲内に属するストロークそれぞれに対応する第1のストロークデータ群を抽出し、この第1のストロークデータ群内の他のストロークデータと時系列において不連続である第2のストロークデータを除く、第1のストロークデータ群内の個々のストロークデータを処理対象の時系列情報部分に決定する。
編集処理部303は、ユーザによって編集メニューから「削除」「移動」または「追加」等のメニューが選択された場合、処理対象ブロック選択部307によって選択されているストロークデータ群に対する削除、移動、追加等の処理を実行する。この場合、複数のストロークデータが処理対象のストロークデータ群として選択されている場合には、編集処理部303は、これら複数のストロークデータをまとめて画面上から削除または画面上に別の位置に移動することができる。時系列情報においては、移動された各ストロークデータの時系列座標は、移動先位置に応じて自動的に変更してもよい。また、移動された各ストロークデータの時系列座標を変更したことを表す操作履歴を時系列情報に追加してもよい。削除された各ストロークデータも、時系列座標から必ずしも削除しなくてもよく、これら各ストロークデータを削除したことを表す操作履歴を時系列情報に追加してもよい。
処理部308は、処理対象の時系列情報に対して様々な処理、例えば、筆跡検索処理、認識処理等を実行することができる。処理部308は、検索処理部309及び検索軌跡表示処理部310を含む。
検索処理部309は、記憶媒体402内に既に格納されている複数の時系列情報(複数の手書きページ)から特定の時系列情報部分(特定の手書き文字列等)に該当する時系列情報部分を検索する。検索処理部309は、特定の時系列情報部分を検索キーつまり検索クエリとして指定するように構成された指定モジュールを含んでいる。検索処理部309は、複数の時系列情報の各々から、特定の時系列情報部分に対応するストロークの軌跡との類似度が基準値以上であるストロークの軌跡を有する時系列情報部分を検索する。検索軌跡表示処理部310は、検索処理部309により見つけ出された時系列情報部分に対応する軌跡を、他の時系列情報部分と識別が容易となる表示形態によってLCD17Aの画面上に表示する。
例えば、検索クエリとして指定される特定の時系列情報部分は、例えば、特定の手書き文字、特定の手書き文字列、特定の手書き記号、特定の手書き図形等が使用しうる。以下では、特定の手書き文字列が検索クエリとして指定される場合を想定する。
検索処理部309によって実行される検索処理は筆跡検索であり、すでに記録されている複数の手書きページの中から、検索クエリである特定の手書き文字列と類似する筆跡を有する手書き文字列を検索する。なお、現在表示中のある一つの手書きページのみを対象に筆跡検索を行ってもよい。
手書き文字間の類似度の計算方法としては、様々な方法を使用することができる。例えば各ストロークの座標列をベクトルとして扱ってもよい。この場合、比較対象のベクトル同士の類似度を計算するために、それら比較対象のベクトル間の内積を比較対象のベクトル間の類似度として算出してもよい。また他の例としては、各ストロークの軌跡を画像として扱い、比較対象の軌跡間の画像の重なりがもっとも多くなる部分の面積の大きさを上述の類似度として計算してもよい。さらに計算処理量を減らすための任意の工夫をしてもよい。また、手書き文字間の類似度の計算方法として、DP(Dynamic Programming)マッチングを使用してもよい。
検索処理部309内の上述の指定モジュールは、検索対象とすべき文字列または図形を手書きするための検索キー入力領域を画面上に表示してもよい。ユーザによって検索キー入力領域に手書きされた文字列等が検索クエリとして使用される。
あるいは、指定モジュールとして、上述の処理対象ブロック選択部307を使用してもよい。この場合、処理対象ブロック選択部307は、ユーザによって行われる範囲指定操作に応じて、表示中の時系列情報内の特定の時系列情報部分を、検索対象とすべき文字列または図形として選択することができる。ユーザは、表示中のページ内の一部の文字列を囲むように範囲指定してもよいし、表示中のページの余白などに検索クエリ用の文字列を新たに手書きし、この検索クエリ用の文字列を囲むように範囲指定してもよい。
例えば、ユーザは、表示中のページ内の一部を手書きの丸で囲むことによって範囲指定することができる。あるいは、ユーザは、あらかじめ用意されているメニューを用いてデジタルノートブックアプリケーションプログラム202を「選択」モードに設定し、この後、表示中のページ内の一部をペン100でなぞってもよい。
このように、表示中の時系列情報(手書きページ)内の時系列情報部分(手書き文字列)が検索クエリとして選択された場合においては、検索処理部309は、検索クエリとして選択された時系列情報部分を検索対象から除外する。すなわち、検索処理部309は、表示中の時系列情報全体では無く、選択された時系列情報部分を除く、表示中の時系列情報内の他の時系列情報部分から、選択され時系列情報部分に対応するストロークの軌跡との類似度が基準値以上であるストロークの軌跡を有する時系列情報部分を見つけ出す。
このように、検索クエリとして選択された時系列情報部分を検索対象から除外するという処理を行うことにより、選択された時系列情報部分(検索されて当然の文字列)それ自体が検索結果として表示されてしまうことを防止することができる。
よって、ユーザは、表示中のページに検索クエリとして使用すべき文字列を新たに手書きし、この文字列を選択するという操作を行うことによって、検索クエリの入力を行うことが可能となる。この場合、新たに手書きされた文字列(検索クエリ)自体は検索対象から除外されるので、新たに手書きされた文字列自体が検索結果として表示されることはない。よって、検索キー入力領域を画面上に表示することなく、表示中の手書きページの一部を容易に検索クエリとして使用することができる。
このように、本実施形態では、既に記録されている複数の手書きページから、検索クエリとして選択されたある手書き文字の特徴に類似する手書き文字(時系列情報部分)を検索することによって、過去に作成及び保存した多数の手書きページから、ユーザの意図に合った手書きページを簡単に検索することができる。本実施形態では、手書きページから検索された手書き文字部分については、他の手書き文字部分とは異なる表示形態によって表示するので、容易に該当する手書き文字部分を識別することができる。
本実施形態の筆跡検索においては、テキスト検索の場合とは異なり、文字認識を行う必要が無い。従って、言語に依存しないため、あらゆる言語で手書きされた手書きページを検索対象とすることができる。さらに、図形等を筆跡検索のための検索クエリとして使用することもでき、また言語以外の記号、マーク等を筆跡検索のための検索クエリとして使用することもできる。
次に、図7のフローチャートを参照して、デジタルノートブックアプリケーションプログラム202によって実行される手書きページ作成処理の手順について説明する。
ユーザがペン100を使用して手書き入力操作を行うと(ステップS11)、「タッチ」や「移動」のイベントが発生される。これらイベントに基づいて、デジタルノートブックアプリケーションプログラム202は、ペン100の動きの軌跡を検出する(ステップS12)。ペン100の動きの軌跡が検出されたならば(ステップS12のYES)、デジタルノートブックアプリケーションプログラム202は、検出されたペン100の動きの軌跡をディスプレイに表示する(ステップS13)。さらに、デジタルノートブックアプリケーションプログラム202は、検出されたペン100の動きの軌跡に対応する座標列に基づいて上述の時系列情報を生成し、その時系列情報を作業メモリ401に一時保存する(ステップS14)。
次に、図8のフローチャートを参照して、デジタルノートブックアプリケーションプログラム202の処理対象ブロック選択部307によって実行される選択処理の手順について説明する。
処理対象ブロック選択部307は、表示中の時系列情報から、ユーザによる範囲指定操作によって指定される画面上の指定範囲内に属する全てのストロークデータを抽出する(ステップS21)。ステップS21の抽出処理は、時系列情報内の各ストロークデータに対応する時系列座標に基づいて実行される。処理対象ブロック選択部307は、抽出されたストロークデータ間の並び、または抽出された各ストロークデータ内の各座標データに付加されたタイムスタンプ情報に基づいて、抽出されたストロークデータの集合から、時間的関連度が低いストロークデータを特定する(ステップS22)。
時間的関連度が低いストロークデータは、上述したように、手書きタイミングが、抽出されたストロークデータの集合内の他のストロークデータの手書きタイミングと不連続であるストロークデータである。
いま、抽出されたストロークデータの集合内の第1のストロークデータが上述の不連続のストロークデータであるか否かを決定するための処理を行う場合を想定する。この場合、まず、抽出されたストロークデータの集合から、第1のストロークデータの手書きタイミングに手書きタイミングが最も近い第2のストロークデータが特定される。そして、第2のストロークデータと第1のストロークデータとの間に存在するストローク数が所定の基準ストローク数以上であるか否か、あるいは第2のストロークデータのタイムスタンプ情報と第1のストロークデータのタイムスタンプ情報との間の時間距離が所定の基準時間以上であるか否かが判定される。この判定結果に基づき、第1のストロークデータが上述の不連続のストロークデータであるか否かが決定される。
処理対象ブロック選択部307は、特定されたストロークデータ(不連続のストロークデータ)を除く、他の抽出された全てのストロークデータを、処理対象データに決定する(ステップS23)。そして、処理対象データに決定された各ストロークデータに対して所定の処理が実行される(ステップS24)。
ユーザによる範囲指定操作によって図3の破線の四角が指定された場合を想定する。まず、図3の破線の四角によって示される指定範囲内に属するストロークデータとして、図4のストロークデータSD1、SD2、SD7が抽出される。ストロークデータSD1、SD2は手書きタイミングが互いに連続しているが、ストロークデータSD7の手書きタイミングはストロークデータSD2の手書きタイミングと不連続である。従って、ストロークデータSD7は、上述の不連続のストロークデータとして特定される。
なお、ここでは、基準ストローク数または基準時間を用いて不連続のストロークデータを特定する場合を説明したが、他の方法を使用して不連続のストロークデータを特定してもよい。たとえば、互いに近傍に位置し且つ連続的に手書きされたストロークにそれぞれ対応するストロークデータ同士が同一ブロックに分類されるように、指定範囲上に存在する全てのストロークデータを2以上のブロックにグループ分けしてもよい。そして、これらブロックそれぞれと指定範囲内との重複面積を算出し、最大の重複面積を有するブロック以外の他の各ブロックに含まれるストロークデータそれぞれを不連続のストロークデータとして特定してもよい。
図9は、デジタルノートブックアプリケーションプログラム202によってユーザに提示される筆跡検索画面500の例示である。
筆跡検索画面500では、検索キー入力領域501、検索ボタン501A、クリアボタン501Bが表示される。検索キー入力領域501は、検索対象とすべき文字列または図形を手書きするための入力領域である。検索ボタン501Aは、筆跡検索処理の実行を指示するためのボタンである。クリアボタン501Bは、検索キー入力領域501に手書きされた文字列または図形の削除(クリア)を指示するためのボタンである。
筆跡検索画面500は、さらに、複数の手書きページサムネイル601を表示する。図9の例においては、9個の手書きページそれぞれに対応する9個の手書きページサムネイル601が表示されている。
図10に示されているように、検索キー入力領域501に手書き文字列「TABLET」が入力されている状態で検索ボタン501Aが押下された場合、9個の手書きページの各々から手書き文字列「TABLET」を見つけ出すための筆跡検索処理が開始される。そして、筆跡検索画面500上には、手書き文字列「TABLET」を含む幾つかの手書きページそれぞれに対応する手書きページサムネイルが表示される。図10においては、9個の手書きページの中の5個の手書きページが手書き文字列「TABLET」を含む手書きページとして検索された検索結果の画面が例示されている。検索結果の画面では、手書きページから検索された手書き文字列「TABLET」を、容易に識別できるように強調表示している。図10に示す例では、5個の手書きページサムネイル中の手書き文字列「TABLET」(ヒットワード)の表示色(白黒)を反転させると共に、手書き文字列「TABLET」以外の文字列を元の黒色表示からグレー表示に変更する。なお、図10に示す破線は、グレー表示されていることを示す。筆跡検索画面500における強調表示の詳細については後述する(図14〜図19参照)。
検索された5個の手書きページサムネイルの1つがユーザによって選択されたならば、図11に示すように、選択された手書きページサムネイル601Aに対応する手書きページ601Bが通常のサイズで画面上に表示される。手書きページ601Bには、検索ボタン700が表示される。ユーザによって検索ボタン700が押下されたならば、表示画面の内容は、図11の左側に示される検索画面に戻される。なお、図11における破線は、グレー表示されていることを表している。
なお、筆跡検索画面500では、検索前の手書きページサムネイルが一覧表示されている画面において、1つがユーザによって選択されたならば、前述と同様にして、図11に示すように、選択された手書きページサムネイル601Aに対応する手書きページ601Bが通常のサイズで画面上に表示される。
図12は、表示されている手書きページ800内の一部分を検索対象とすべき文字列または図形として使用する例を示している。ユーザは、手書きページ800内の一部分を例えば手書きの丸801によって囲むことにより、手書きページ800内の一部分を範囲指定することができる。手書きの丸801には、手書き文字「A」と手書きの矢印の先頭部分とが含まれているが、上述したように、手書きの矢印の先頭部は処理対象から除外することができる。よって、手書き文字「A」を検索対象とすべき文字として指定することができる。
次に、図13のフローチャートを参照して、筆跡検索処理の手順を説明する。
デジタルノートブックアプリケーションプログラム202は、ユーザからの指示によって検索対象とする手書きページが指定されると、ページ取得処理部305によって記憶媒体402から該当する手書きページを読み出し、手書き文書表示処理部306により筆跡検索画面500において表示する。ここで、複数の手書きページが検索対象となっている場合には、手書き文書表示処理部306は、図9に示すように、複数の手書きページを手書きページサムネイルの形式により一覧表示する。
なお、図9に示す筆跡検索画面500では、9個の手書きページサムネイルを画面に一覧表示するため、検索対象とする手書きページが10個以上ある場合には、所定の順番の上位9個の手書きページを選択して表示する。また、手書き文書表示処理部306は、ユーザ操作によって次画面表示が指示された場合に、10個目以降の手書きページサムネイルの一覧表示に画面を切り替えるものとする。
ここで、筆跡検索画面500においてユーザが検索対象とすべき文字列や図形等を手書きすると、処理部308は、ユーザ操作により指定された手書き文字列又は手書きの図形等(時系列情報部分)を、検索キー(検索対象)として指定する(ステップS31)。
検索処理部309は、複数の手書き文書(手書きページ)から、検索キーとして指定された時系列情報部分(ストロークの軌跡)との類似度が基準値以上であるストロークの軌跡を有する時系列情報部分を検索する(ステップS32)。検索軌跡表示処理部310は、検索処理部309によって手書きページから検索キーとする時系列情報部分が検索されると、手書きページ(あるいは手書きページサムネイル)の検索キーに該当する時系列情報部分を強調表示する(ステップS33)。また、手書き文書表示処理部306は、処理部308の検索処理部309による検索結果に応じて、検索キーとして指定した特定の時系列情報部分を含む手書きページを選択して、手書きページサムネイルにより一覧表示する。すなわち、検索キーとして指定した特定の時系列情報部分を含まない手書きページ(手書きページサムネイル)を表示しないようにすることで、ユーザが所望する手書きページを容易に識別できるようにする。
以下、検索キーに該当する時系列情報部分の強調表示の一例について説明する。
図14は、検索対象とする手書きページの一部を示す図である。図14に示す手書きページには「TABLET」の手書き文字列が含まれている。なお、図14に示す横線は、他の手書き文字列が存在していることを表しており、具体的な文字列の記載を省略している。
ここで、手書き文書表示処理部306は、筆跡検索画面500において、手書きページ(手書きページサムネイル)を複数階調(グレースケール)によって表示するものとする。初期状態では、手書きページ中の文字列等を表す軌跡を黒色により表示し、軌跡以外の背景部分を白色によって表示する。なお、文字列等を表す軌跡を黒色に近い階調、軌跡以外の背景部分を白色に近い階調によって表示するようにしても良い。すなわち、軌跡と背景の階調の差を大きくすることで、画面に表示された軌跡を識別しやすくする。
図15は、本実施形態における強調表示処理の手順を示すフローチャートである。
筆跡検索画面500の検索キー入力領域501において、ユーザにより検索対象とすべき文字列「TABLET」が手書きされると、検索処理部309は、手書き入力された文字列「TABLET」に相当する特定の時系列情報部分(検索キー)を、図14に示す手書きページから検索したものとする。
検索軌跡表示処理部310は、手書きページから検索された検索キーに該当する時系列情報部分(ブロック)について反転表示枠を設定する(ステップS41)。
図16は、本実施形態における反転表示枠の設定を示す図である。図16に示すように、検索軌跡表示処理部310は、手書きページから検索された時系列情報部分(ブロック)の全体に対する反転表示枠を設定する。例えば、時系列情報部分(ブロック)に含まれる全ての軌跡を示すストロークデータ(座標データ系列)から、最小のX座標(X1)とY座標(Y1)、最大のX座標(X2)とY座標(Y2)を抽出する。すなわち、検索軌跡表示処理部310は、図16に示すように、座標(X1,Y1)と座標(X2,Y2)を対角の頂点とする外接矩形枠を設定する。さらに、検索軌跡表示処理部310は、外接矩形枠の枠外に所定の幅を確保することで反転表示枠を設定する。所定の幅は、予め決められているものとする。なお、所定の幅を手書きページから検索された時系列情報部分の周囲に存在する他の軌跡との距離に基づいて決定しても良い。この場合、例えば検索された時系列情報部分と周囲に存在する他の軌跡との距離の半分を所定の幅とする。
検索軌跡表示処理部310は、外接矩形枠の位置を示す座標(X1,Y1)(X2,Y2)をもとに、外接矩形枠から所定の幅を確保した反転表示枠の対角の位置を示す座標(X3,Y3)(X4,Y4)を算出する。
次に、検索軌跡表示処理部310は、手書きページから検索された時系列情報部分の軌跡を、元の表示色(黒)の反転色(白)により表示し、反転表示枠内の軌跡の近接領域を元の軌跡の表示色(黒)によって表示する。すなわち、手書きページから検索された時系列情報部分の軌跡と、軌跡の周囲の近接領域を互いに反転する色によって表示する。
さらに、検索軌跡表示処理部310は、手書きページ中の検索された時系列情報部分(ブロック)以外の他の軌跡を、中間色(グレー)によって表示する。すなわち、他の軌跡を元の表示色(黒)から中間色に変更することで目立たなくし、検索された時系列情報部分の軌跡と近接領域がより目立つようにする(ステップS42)。
図17は、本実施形態における強調表示処理によって表示された手書きページの一例を示す図である。
図17に示すように、手書きページから検索された時系列情報部分(軌跡)が白色、反転表示枠内の軌跡の周囲が黒色によって表示されている。さらに、反転表示枠外の軌跡が中間色(グレー)によって表示される。このため、手書きページ中において反転表示枠部分が特に目立つようになり、手書きページから検索された時系列情報部分(軌跡)を容易に識別することができる。
なお、図17に示す表示例では、手書きページから検索された時系列情報部分の全体に対する外接矩形枠をもとに反転表示枠を設定しているが、ブロック構造化処理によって区分されたブロック毎に外接矩形枠を求め、ブロック毎に反転表示枠を設定するようにしても良い。すなわち、ブロック構造化処理によって区分された文字毎に強調表示する。
図18は、本実施形態における強調表示処理によってブロック毎に強調表示された手書きページの一例を示す図である。
図18に示す例では、「T」「A」「B」「L」「E」「T」の各文字に対応するストロークデータが、それぞれ1ブロックとして区分されているものとする。
検索軌跡表示処理部310は、各ブロックのストロークデータに対応する時系列情報部分について、図15に示すようにして反転表示枠を設定し、軌跡の表示色と反転表示枠内の近接領域の表示色を反転させる。この結果、図18に示すように、各ブロックの位置に合わせて強調表示が施される。
このようにして、ブロック(文字)毎に反転表示枠を設定して強調表示することにより、反転表示枠が必要以上にサイズが大きくなるといったことを回避できる。例えば時系列情報部分が斜めに配置されている場合、時系列情報部分の全体に対する外接矩形枠が、時系列情報部分が水平に配置されている場合よりも縦横方向にサイズが大きくなるが、ブロック(文字)毎に反転表示枠を設定することで、反転表示枠を拡大させなくても済む。
また、図17及び図18に示す例では、時系列情報部分(ブロック)に対して表示反転枠を設定しているが、ストローク毎の軌跡に対して、表示色を反転させる近接領域を設定するようにしても良い。
図19は、本実施形態における強調表示処理によってストローク毎の軌跡に対して近接領域を設定した手書きページの一例を示す図である。図19に示すように、ストロークデータが示すストローク毎の軌跡に対して、軌跡から一定範囲を近接領域として設定して、前述と同様にして表示色を反転させている。すなわち、近接領域を軌跡の元の表示色によって表示し、軌跡を背景色によって表示することで、軌跡を縁取るように表示する。これにより、手書きページから検索された時系列情報部分を強調表示する。
このようにして、手書きページをグレースケールによって表示する場合であっても、手書きページから検索された時系列情報部分の軌跡と、この軌跡の周囲の近接領域を、それぞれ反転色によって表示することで、手書きページから検索された時系列情報部分を容易に識別することができる。従って、筆跡検索画面500に表示された複数の手書きページサムネイルから所望する手書きページを識別できる。ユーザは、強調表示された軌跡をもとに所望する手書きページサムネイルを識別し、この手書きページサムネイルを選択して、手書きページを表示させることができる。
また、手書き文書表示処理部306は、検索処理部309によって時系列情報部分(検索キー)が検索された手書きページサムネイルのみを選択して筆跡検索画面500に表示する。従って、ユーザは、検索処理によって絞り込まれた手書きページから、所望する手書きページを容易に選択することができる。なお、検索によって絞り込まれた手書きページサムネイルを対象として、別の文字列を手書き入力して検索処理を実行することで、さらに手書きページサムネイルを絞り込むことも可能である。
なお、前述した説明では、筆跡検索画面500の初期状態において、手書きページ中の文字列等を表す軌跡を黒色により表示し、軌跡以外の背景部分を白色によって表示し、強調表示では、軌跡を白色、反転表示枠内を黒色に反転色により表示している。これに対して、筆跡検索画面500の初期状態において、手書きページ中の文字列等を表す軌跡を白色により表示し、軌跡以外の背景部分を黒色によって表示している場合には、強調表示では、前述と同様にして、軌跡を黒色、反転表示枠内を白色の反転色により表示すれば良い。
さらに、白黒反転では無く、例えば、強調表示の際には、初期状態とは異なる表示色(中間色)を用いるようにしても良い。また、初期状態では、例えば文字列等を表す軌跡を黒色に近い階調、軌跡以外の背景部分を白色に近い階調によって表示し、強調表示をする場合に白色と黒色を用いることにより、強調表示がより明確となるようにしても良い。
さらに、検索処理部309による検索処理において算出された類似度に応じて、強調表示をする際の表示色を変化させるようにしても良い。例えば、検索キーとする手書き文字列と類似度の高い軌跡が手書きページから検索された場合には、この手書きページから検索された手書き文字列(時系列情報部分)が目立つように強調表示する。
例えば、予め設定された基準値よりも類似度が高い場合には、強調表示では、軌跡を黒色にし、反転表示枠内を白色(あるいは軌跡を白色、反転表示枠内を黒色)とし、検索された手書き文字列以外の軌跡の階調値を白色に近くする。これにより、強調表示部分がより目立つようになる。また、類似度が低くなるに従って手書き文字列以外の軌跡の表示色を、黒色に近い階調値にする。こうして、文字列以外の軌跡の階調値を類似度に応じて変化させることにより、強調表示部分の目立ちやすさを変化させることができる。
さらに、強調表示部分についても、類似度に応じて階調値を変化させるようにしても良い。例えば、予め設定された基準値よりも類似度が高い場合には、強調表示では軌跡を黒色にし、反転表示枠内を白色(あるいは軌跡を白色、反転表示枠内を黒色)とするが、類似度が低くなるに従って、軌跡と反転表示枠内の表示色を、階調値の差が小さくなるようにする。ただし、強調表示は、検索キーとする手書き文字列との類似度が高い部分を示す。このため、検索された手書き文字列以外の軌跡を表示する表示色の階調値と反転表示枠内の表示色の階調値との差を所定以上確保して、強調表示の部分をユーザが容易に識別できるようにする。
強調表示部分について類似度に応じて階調値を変化させることで、例えば手書きページ中から複数の部分が検索された場合に、強調表示の表示色によって注目すべき部分を判断できるので、所望する手書きページサムネイルの判別を容易にすることができる。
さらに、手書き文書表示処理部306は、検索処理部309による検索処理において算出された類似度に応じて、筆跡検索画面500に表示する手書きページサムネイルの順番を変更しても良い。例えば、類似度が最も高い手書き文字列(時系列情報部分)が検索された手書きページサムネイルから順番に配置して表示する。これにより、ユーザは、所望する手書きページサムネイルを選択し易くなる。
また、前述した説明では、グレースケールによって手書きページを表示するとしているが、カラー表示をする場合にも前述した強調表示の方法を応用することができる。すなわち、筆跡検索画面500の初期状態において、手書きページ中の文字列等を表す軌跡の表示色と、軌跡以外の背景部分の表示色とを異なる色とし、強調表示では、軌跡と反転表示枠内の表示色を反転させる。また、強調表示では、初期状態の表示色と異なるより目立つ色を用いたり、より目立つ明度や彩度が異なる色を用いても良い。さらに、検索された手書き文字列以外の軌跡を表示する表示色を目立たない色に変えたり、表示色の明度や彩度を目立たないように変えたりすることで、強調表示が目立つようにすることもできる。
また、前述した説明では、図11に示すように、筆跡検索画面500の手書きページサムネイル、あるいは手書きページサムネイルに対応する手書きページを筆跡によって表示しているが、手書きページ中の時系列情報に対する文字認識処理によって得られたテキストデータ(文字コード)が記憶媒体402に格納されている場合には、テキストデータが示す文字フォントを用いてページを表示しても良い。例えば、手書きページに対する文字認識処理は、サーバ2において実行しても良いし、タブレットコンピュータ10に文字認識処理モジュールを設けて、タブレットコンピュータ10において実行しても良い。テキストデータに含まれる文字コードは、手書きページ中の文字認識対象としたブロック(文字のストロークに対応する筆跡)と関連づけられるものとする。記憶媒体402には、テキストデータ、手書きページ(筆跡)、文字コードとブロックとの関連を示す関連データとが対応づけて格納されるものとする。なお、テキストデータは、手書きページに含まれる一部の筆跡に対する文字認識処理により得られたものであっても良い。
この場合、筆跡検索画面500においてテキストデータが示す文字フォントを用いてテキストページを表示し、検索キーをもとに手書きページから検索された時系列情報部分に対応するテキスト(文字フォント列)に対して強調表示をすることができる。すなわち、検索軌跡表示処理部310は、手書きページから検索キーとする特定の時系列情報部分と類似する時系列情報部分(ストロークの筆跡)が検索されると、関連データをもとに時系列情報部分(ブロック)に対応する文字コードを判別し、この判別された文字コードに応じて表示された文字フォントに対して強調表示をする。
このようにして、テキストデータをもとにページを表示する場合であっても、検索キーとする特定の時系列情報部分に該当する文字列を強調表示することで、手書きページから検索された文字列を容易に識別することができる。
さらに、前述した説明では、検索キーとする特定の時系列情報部分(筆跡)をもとに手書きページを検索しているが、前述したように、テキストデータと手書きページ(筆跡)とが対応づけられている場合には、検索キーとするテキスト(文字コード)をもとにテキストデータを検索するようにしても良い。例えば、筆跡検索画面500の検索キー入力領域501に検索対象とすべき文字列が手書きされた場合に、手書き文字に対する文字認識処理によりテキストを生成する。検索処理部309は、文字認識処理によって得られたテキストを検索キーとして指定する。検索処理部309は、手書きページに対応するテキストデータから検索キーとするテキストを検索すると、この検索されたテキストに対応する手書きページ中の時系列情報部分を、関連データをもとに判別する。検索軌跡表示処理部310は、筆跡検索画面500に表示された手書きページサムネイル(あるいは手書きページ)中の検索処理部309によって判別された時系列情報部分について、前述したように強調表示する。
なお、筆跡検索画面500において、手書きページサムネイルを表示するか、テキストデータに応じたフォントによりテキストを表示するかを、ユーザからの指示に応じて切り替えるようにしても良い。また、検索キー入力領域501に手書きされた文字列に対する文字認識処理により検索キーとするテキストを生成しているが、ソフトウェアキーボードなどを用いて入力されたテキストや、既存のテキストデータからの範囲指定されたテキストなど、他のテキスト入力方法を用いて入力されたテキストを検索キーとしても良い。
また、前述した説明では、検索キーとするテキストがテキストデータから検索された場合に、手書きページサムネイル中の検索キーのテキストに対応する時系列情報部分を強調表示するとしているが、この時系列情報部分を新たな検索キーとして指定し、他の手書きページを検索するようにしても良い。検索軌跡表示処理部310は、新たな検索キーとして指定した時系列情報部分が、他の手書きページから検索された場合に、該当する時系列情報部分を強調表する。なお、検索キーのテキストに対応する時系列情報部分が手書きページから複数箇所において検索された場合、ユーザが新たな検索キーとする時系列情報部分を指定するようにしても良い。
このようにして、検索キーとするテキストを入力すると、手書きページ中の時系列情報部分を検索キーとして検索が実行されるので、手書きページ中の軌跡と同様の文字列等を手書きできないユーザであっても、テキストで指定した文字列に該当する時系列情報部分を含む手書きページを簡単に検索することができる。
なお、上述の筆跡検索処理は、タブレットコンピュータ10と連携して動作する、パーソナルコンピュータ1またはインターネット上のサーバ2によって実行してもよい。また、上述の選択処理も、パーソナルコンピュータ1またはサーバ2によって実行してもよい。
本実施形態の手書き文書に対する各種処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをタッチスクリーンディスプレイを備えた通常のコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。