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