以下の実施の形態では、同一の部品には同一の参照番号を付してある。それらの機能および名称も同一である。従って、それらについての詳細な説明は繰返さない。なお、以下においては、本発明に係る、オブジェクトについての構造化データ処理装置を、オブジェクト構造化データ生成装置と記載する。
<第1の実施の形態>
[オブジェクト構造化データ生成装置の概略構成]
図1に示す外観図を参照して、本実施の形態に係るオブジェクト構造化データ生成装置100の概略構成について説明する。図1に示すように、このオブジェクト構造化データ生成装置100は、演算ユニット(後述する制御部200)および記憶ユニット(後述する記憶部300)を備えたコンピュータと、周辺機器としての表示パネル410(出力媒体)および操作部500とを備える。
このオブジェクト構造化データ生成装置100は、周辺機器である表示パネル410に、処理対象であるオブジェクトデータ310を表示する。表示パネル410に表示されたオブジェクトデータ310に対して、キーボード510、マウス520およびタブレット530(板状の入力デバイスであって入力ペンとともに用いられる)等の操作部500をユーザが操作する。この操作に対応して、表示パネル410のオブジェクトデータ310上にストロークデータ320が表示される。オブジェクト構造化データ生成装置100は、ユーザによる操作に対応するストロークデータ320から、ジェスチャ情報データに基づいてジェスチャを特定し、オブジェクト特定データを生成して、ストロークデータ320の対象となるオブジェクトデータ310を特定する。オブジェクト構造化データ生成装置100は、ジェスチャ情報データから取得のアクション情報データとオブジェクト特定データとに基づいて、構造化データを生成する。
なお、オブジェクト構造化データ生成装置100は、オブジェクトに対して構造化データを生成するのみならず、生成された構造化データを編集したり削除したりすることもできる。この点で、オブジェクト構造化データ生成装置100は、オブジェクトについての構造化データを生成する装置に限られず、構造化データを編集または削除する装置とも言える。そのため、正確には、オブジェクト構造化データ生成装置100は、オブジェクト構造化データを生成、編集および削除装置である。この点において、オブジェクト構造化データ生成装置100は、構造化データを処理する装置である。以下においては、このオブジェクト構造化データ生成装置100を、単に生成装置100と記載する。
[生成装置の制御ブロック]
図2は、本実施の形態に係る生成装置100の制御ブロック図である。この図2に示すように、この生成装置100は、CPU(Central Processing Unit)を含む制御部200、各種の記憶デバイスで構成される記憶部300、表示パネル410、操作部500および外部インターフェイス部600を備える。生成装置100を構成するこれらの各部間のデータ送受信は、CPUに接続されたバスが用いられる。
生成装置100を制御する制御部200は、記憶部300に記憶しているオブジェクトデータ310を、表示パネル410に表示させ、操作部500を用いたユーザによる操作に対応して、そのオブジェクトデータの構造化データを生成して、記憶部300に記憶する。
生成装置100は、外部インターフェイス部600を介してネットワーク700に接続されている。このようにネットワーク700に接続されていることにより、たとえば、ネットワーク700に接続された他の端末(図示しない)からオブジェクトデータ310を受信したり、生成装置100が生成した構造化データを他の端末へ送信したりすることができる。以下、生成装置100を構成する各部分について詳細に説明する。
・制御部200
制御部200は、生成装置100の全体を制御する。制御部200は、記憶部300または外部インターフェイス部600を介してネットワーク700に接続された記憶装置などからオブジェクトデータ310を取得して、表示パネル410で表示する。制御部200は、後述する生成処理で生成された構造化データを、記憶部300に書き込んだり、外部インターフェイス部600を介してネットワーク700に接続された記憶装置に書き込むために送信したりする。
・記憶部300
記憶部300は、生成装置100の記憶装置である。記憶部300は、たとえば、DRAM(Dynamic Random Access Memory)により構成される。記憶部300には、処理途中の一時的な記憶を含めると、オブジェクトデータ310、ストロークデータ320、ジェスチャ情報データ、アクション情報データ、オブジェクト特定データ、および構造化データが記憶される。記憶されるデータについての詳細な説明は後述する。
・表示パネル410
表示パネル410は、図示しない表示制御部を介して制御部200により制御される。表示制御部は、グラフィックカード上にVRAM(Video Random Access Memory)を備えている。表示制御部は、入力されるデータを一旦VRAMに格納する。表示制御部は、VRAMに入力されるデータを表示信号に変換して、表示パネル410に出力する。表示パネル410は、表示信号を画像として表示する。
・操作部500
操作部500は、生成装置100のユーザインターフェイスである。操作部500は、キーボード510、マウス520およびタブレット530を含む。生成装置100のユーザは、操作部500を用いて、表示するオブジェクトデータ310を選択したり、ストロークデータ320の生成について操作したりする。
・外部インターフェイス部600
外部インターフェイス部600は、生成装置100の外部とのインターフェイスであり、データを送受信する入出力インターフェイスである。外部インターフェイス部600は、ネットワークカードにより構成される。外部インターフェイス部600は、ネットワーク700に無線通信プロトコルで接続される。
[データ構造]
記憶部300に記憶される、オブジェクトデータ310、ストロークデータ320、ジェスチャ情報データ、アクション情報データ、オブジェクト特定データ、および構造化データについて説明する。
・オブジェクトデータ310
オブジェクトデータ310は、図3の表示1001で示すように、テキストデータまたは画像データなどから構成されるオブジェクトが配置されたレイアウトを生成できる。レイアウトの各オブジェクトを詳細に見ると、図4に示すように、オブジェクト1101、オブジェクト1102、オブジェクト1104およびオブジェクト1105はテキストデータを要素として含み、オブジェクト1103は画像データを要素として含む。さらに、各オブジェクトは、図5に示すように、位置情報(XY座標情報)により規定される。たとえば、オブジェクト1101は、オブジェクトの開始位置を示す座標(x1、y1)とオブジェクトの終了位置を示す座標(x2、y2)とで特定される矩形の範囲により規定される。
図6に、オブジェクトデータ310のテキストファイルの一例を示す。図6に示すように、オブジェクトデータ310は、1行ごとに各オブジェクトが記載される。各行においては、カンマで区切られた領域に、矩形を示す座標、テキストデータおよび画像データのいずれであるのかを示す要素、要素の具体的な内容が記載されている。このデータの読み込み処理を行った場合、メモリ上では、図7に示すデータ1301、データ1302およびデータ1303のように、各オブジェクトの開始位置を示す座標および終了位置を示す座標、要素、その内容の各データが、メモリアドレスに配置される。
・ストロークデータ320
ストロークデータ320は、図8に示すように、表示パネル410の表示領域2001内で操作部500により操作されるポインタ2002によって描かれる軌跡2003を示すデータである。詳細には、図9に示すように、2点(XY座標で規定される二次元平面状の点)を直線により繰り返し繋ぐパスにより、ストロークデータ320が表わされる。座標は、操作部500の操作を単位時間に区切った際の、操作部500による操作位置の座標を抽出することにより取得される。具体的には、ある時間に操作部500の操作位置は、座標(sx1、sy1)であり、次の時間に座標(sx2、sy2)であった場合、これらの2点を繋ぐ直線がストロークデータとなる。これらを繰り返すことで複雑なストロークを表現することができる。
また、操作部500の操作を完了した場合、最後の座標にストロークが完了していることを示す完了フラグが付加される。図9においては、座標(sxN、syN)の座標が白丸で示されており、この点でストロークが完了していることを示している。メモリ上では、図10のデータ2101に示すように、各座標データが複数メモリアドレスに配置され、ストロークデータが完了している場合にはデータの末尾に完了フラグが付加されている。
このように、ユーザの操作に基づいて、予め定められた時間における座標点の集合を特定することによりストロークデータ320が特定でき、このストロークデータ320を分析することにより、ユーザが操作部500を用いて描画した図形が特定できる。このようなユーザの一連の操作は、オブジェクトデータ310に対する処理(構造化データの生成処理)についてのユーザの意思表示となる。このような意思表示が、ジェスチャとして表わされる。
・ジェスチャ情報データ
ジェスチャ情報データは、図11に示すように、ストロークによるジェスチャの情報(ジェスチャ内容3001およびジェスチャイメージ3002)と、ジェスチャの対象オブジェクト3003と、ジェスチャによる構造化データの生成の仕方を示すアクション情報データ3004とから構成される。ジェスチャは、たとえば、線を引く、円を描く、などの内容があり、それぞれのジェスチャの内容が識別できるように、座標データが保持されている。対象オブジェクト3003は、ジェスチャの対象となるオブジェクトデータが存在しないか、または、存在して単数のオブジェクト内でのジェスチャであるか、または、存在して複数のオブジェクト間でのジェスチャであるかを示す。メモリ上では、図12に示すように各ジェスチャの座標情報と、対象オブジェクトの情報とそれに対応したアクション情報データがメモリアドレスに配置される。
・アクション情報データ
アクション情報データは、構造化データの生成の仕方の情報を保持しており、図11に示すアクション情報データ3004を例に説明する。図16のノード1に対して、オブジェクトに「見出し」の意味を付加するアクション情報データを処理すると、図13のノード4001のようにノード1に見出しという意味を付加することができる。また、図16のノード1を現在の階層の位置として、階層構造の階層の位置を下げるアクション情報データを処理すると、図14のノード4101の子のノード4102の位置が現在の階層の位置となる。また、逆にノード4102を現在の階層の位置として、階層構造の階層の位置を上げるアクション情報データを処理すると、図14のノード4102の親のノード4101の位置が現在の階層の位置となる。
・オブジェクト特定データ
オブジェクト特定データは、図15に示すようにオブジェクトデータ310の各オブジェクトがジェスチャ情報データのジェスチャの対象であるか否かを示すデータである。オブジェクト特定データは、オブジェクトデータ310のオブジェクトの個数と同じフラグを持ち、各オブジェクトがジェスチャの対象であるという情報とジェスチャ対象でないという情報を持つことができる。これにより、オブジェクトデータ310が、ジェスチャ情報データのジェスチャに対する対象オブジェクトであるか否かを判定できる。
・構造化データ
構造化データは、図16に示すノードというテキストデータまたは画像データなどを単位とするデータの集まりと、ノードの親子関係を保持するデータである。図16においては、たとえば、基準であるルートのノード0に対して、ノード1とノード4が子の関係にあり、ノード1とノード4に対してノード0は親の関係にある。また、ノード1とノード4は同じ親を持つ関係であり、ノード1とノード4は同じ階層のノードと表現する。親子関係は、親の関係の位置を1つ上の階層、子の関係の位置を1つ下の階層と表現することもできる。このとき、親子関係の基準とするノードは、現在の階層と表現できる。
これらに加えて、各ノードには、テキストデータまたは画像データなどの要素についての意味を持たせることもできる。たとえば、ノード1に対して「見出し」という意味を、ノード2に対して「本文」という意味を持たせることで、「見出し」というノード1に対して「本文」というノード2が親子関係にあるという情報を持たせることが可能である。図17は、構造化データのメモリ上での例であり、各ノードの要素に関する情報以外に、親子関係を示すノードの情報や、同じ階層に位置するノードとの関係を示す情報を保持している。
[生成装置で実行されるソフトウェア構造]
本実施の形態に係る生成装置100の制御部200は、記憶部300に記憶されているソフトウェア(プログラム)がCPUに読み込まれて実行されることにより、各種の処理を実現する。このように制御部200がソフトウェアを実行することにより、オブジェクトについての構造化データが生成される。
・生成処理プログラムの概要(メインフローチャート)
図18に示すように、オブジェクトについての構造化データを生成するために、オブジェクトデータ読み込み処理(S1000)、オブジェクトデータ表示処理(S2000)、操作検出処理(S3000)、ジェスチャ特定処理(S4000)、ジェスチャ検出判定処理(S5000)、対象オブジェクト特定処理(S6000)、構造化データ生成処理(S7000)、および終了判定処理(S8000)が、制御部200により実行される。以下、このような処理について、詳細に説明する。
ステップ(以下、ステップをSと略す。)1000にて、生成装置100の制御部200(以下、単に「制御部200」と記載する。)は、オブジェクトデータを読み込む。このとき、制御部200は、記憶部300、自己が備えるデータ読取装置(たとえば光ディスクからの読取装置)、または、外部インターフェイス部600を介してネットワーク700に接続された記憶装置から、オブジェクトデータ310を読み込むことにより、オブジェクトデータを取得する。その後、処理は、オブジェクト表示処理(S2000)へ移される。
S2000にて、制御部200は、取得したオブジェクトデータ310を解析して、表示パネル410にオブジェクトデータ310を表示する。その後、処理は、操作検出処理(S3000)へ移される。
S3000にて、制御部200は、表示パネル410に表示されたオブジェクトデータ310に対して、操作部500(キーボード510、マウス520またはタブレット530)を用いたユーザによる操作を検出する。このとき、制御部200は、ユーザが操作を行ったか否か、ユーザが操作した場合マウス520またはタブレット530などでボタンを押下した状態で継続的にストロークを指定する操作を行ったか否か、ボタンの押下を中断したか否かなどを検出する。制御部200は、ストロークを指定する操作が行われたことを検出した場合、ストロークデータ320を生成する。このような操作検出処理(S3000)はサブルーチン化されており、その詳細は後述する。その後(サブルーチンから戻ると)、処理は、ジェスチャ特定処理(S4000)へ移される。
S4000にて、制御部200は、操作検出処理で生成されたストロークデータ320を取得し、予めジェスチャの内容とジェスチャに対応するアクション情報とを対応付けたジェスチャ情報データに基づいて、ストロークデータが一致するジェスチャを特定する。このとき、制御部200は、一致するジェスチャが存在する場合、検出した旨の情報とともに一致したジェスチャ情報データを生成する。制御部200は、一致するジェスチャが存在しない場合、検出していない旨の情報を生成する。このようなジェスチャ特定処理(S4000)はサブルーチン化されており、その詳細は後述する。その後(サブルーチンから戻ると)、処理は、ジェスチャ検出判定処理(S5000)へ移される。
S5000にて、制御部200は、ジェスチャ特定処理(S4000)にてストロークデータ320からジェスチャを検出したか否かを判定する。ジェスチャを検出したと判定されると(S5000にてYES)、処理は、対象オブジェクト特定処理(S6000)へ移される。もしそうでなく、ジェスチャを検出したと判定されないと(S5000にてNO)、処理は、終了判定処理(S8000)へ移される。
S6000にて、制御部200は、オブジェクトデータ読み込み処理(S1000)にて取得したオブジェクトデータ310、操作検出処理(S3000)にて取得したストロークデータ320、および、ジェスチャ特定処理(S4000)にて取得したジェスチャ情報データに基づいて、検出されたジェスチャのストロークの対象となるオブジェクトデータ310を特定し、オブジェクト特定データを生成する。このような対象オブジェクト特定処理(S6000)はサブルーチン化されており、その詳細は後述する。その後(サブルーチンから戻ると)、処理は、構造化データ生成処理(S7000)へ移される。
S7000にて制御部200は、ジェスチャ特定処理(S4000)にて取得したジェスチャ情報データ、および、対象オブジェクト特定処理(S6000)にて取得したオブジェクト特定データに基づいて、構造化データを生成する。このとき、制御部200は、オブジェクト特定データからジェスチャの対象となるオブジェクトが存在するか否かを判定して、存在する場合には対象オブジェクトが複数であるか否かを判定する。制御部200は、その判定に応じて、ジェスチャ情報データからアクション情報データを取得し、アクション情報データに応じた構造化データを生成する。このような構造化データ生成処理(S7000)はサブルーチン化されており、その詳細は後述する。その後(サブルーチンから戻ると)、処理は、終了判定処理(S8000)へ移される。
S8000にて、制御部200は、オブジェクトデータについての構造化データを生成する処理を終了するか否かを判定する。このとき、制御部200は、操作検出処理(S3000)にて生成したストロークデータ320に基づいて、終了するか否かを判定する。ストロークデータ320に完了フラグが付加されている場合には処理を終了すると判定されて(S8000にてYES)、この処理を終了する。もしそうでなく、ストロークデータ320に完了フラグが含まれていない場合には処理を終了すると判定されないで(S8000にてNO)、処理は、操作検出処理(S3000)へ戻される。
・操作検出処理(S3000)
上述した図18の操作検出処理(S3000)について詳細に説明する。図19に示すように、サブルーチン化された操作検出処理(S3000)において、制御部200は、規定時間経過判定処理(S3100)、操作判定処理(S3200)、ストローク継続判定処理(S3300)、ストロークデータ追加処理(S3400)、ストロークデータ存在判定処理(S3500)、完了フラグ付加処理(S3600)、およびストロークデータ保存処理(S3700)を実行する。
S3100にて、制御部200は、規定時間が経過したか否かを判定する。このとき、制御部200は、たとえば、1秒という時間が予め設定されている場合、1秒を経過したか否かを判定する。規定時間が経過していると判定されないと(S3100にてNO)、処理は、操作判定処理(S3200)へ移される。もしそうでなく、規定時間が経過したと判定された場合(S3100にてYES)、処理は、ストロークデータ存在判定処理(S3500)へ移される。
S3200にて、制御部200は、操作部500を構成するキーボード510、マウス520およびタブレット530などで操作が行われた否かを判定する。たとえば、制御部200は、タブレット530の入力ペンを押下された状態でストロークを描く操作がされたことを検出すると、操作が行われたと判定する。操作が行われたと判定されると(S3200にてYES)、処理は、S3300へ移される。もしそうでなく、操作が行われたと判定されないと(S3200にてNO)、処理は、S3100へ戻される。
S3300にて、制御部200は、操作部500によるユーザの操作が、継続されたストロークであるか否かを判定する。このとき、たとえば、制御部200は、タブレット530の入力ペンを押下した状況でストロークを描き続けていると、操作部500によるユーザの操作が、継続されたストロークであると判定する。タブレット530の入力ペンが押下した状態から離す操作を行ったような場合には、継続されたストロークであると判定されない。継続されたストロークであると判定されると(S3300にてYES)、処理は、ストロークデータ追加処理(S3400)へ移される。もしそうでなく、継続されたストロークであると判定されないと(S3300にてNO)、処理は、完了フラグ追加処理(S3600)へ移される。
S3400にて、制御部200は、操作判定処理(S3200)、および、ストローク継続判定処理(S3400)で検出された操作の座標系をストロークデータ320として、記憶部300に追加して蓄積する。その後、処理は、規定時間経過判定処理(S3100)へ戻される。
S3500にて、制御部200は、ストロークデータ320に追加・蓄積された座標データが存在するか否かを判定する。ストロークデータ320に追加された座標データが存在すると判定されないと(S3500にてNO)、処理は、S3100へ戻される。もしそうでなく、ストロークデータ320に追加された座標データが存在すると判定されると(S3500にてYES)、処理は、ストロークデータ保存処理(S3700)へ移される。
S3600にて、制御部200は、ストロークデータ320の末端に、生成処理の完了を示す完了フラグを付加する。完了フラグは、上述した終了判定処理(S8000)において、生成処理のすべてを終了するか否かの判定にて用いられる。その後、処理は、ストロークデータ提供処理(S3700)へ移される。
S3700にて、制御部200は、ストロークデータ追加処理(S3400)にて追加・蓄積したストロークデータ320を後述の処理で取得して利用するためにデータを提供する。たとえば、制御部200によるデータの提供は、データのコピーであったり、データを保存したメモリのアドレスへの参照であったりする。その後、処理は、終了して、処理は、図18のS4000へ移される。これにより、操作検出処理(S3000)のすべての処理が完了する。
・ジェスチャ特定処理(S4000)
上述した図18のジェスチャ特定処理(S4000)について詳細に説明する。図20に示すように、サブルーチン化されたジェスチャ特定処理(S4000)において、制御部200は、ストロークデータ取得処理(S4100)、全ジェスチャ情報データ取得処理(S4200)、ストロークデータ解析処理(S4300)、ジェスチャ情報データ比較完了判定処理(S4400)、ジェスチャ情報データ取得処理(S4500)、ジェスチャ比較判定処理(S4600)、ジェスチャ検出情報提供処理(S4700)、およびジェスチャ非検出情報提供処理(S4800)を実行する。
S4100にて、制御部200は、操作検出処理(S3000)にて生成したストロークデータ320を取得する。その後、処理は、全ジェスチャ情報データ取得処理(S4200)へ移される。
S4200にて、制御部200は、予め設定されたジェスチャ情報データについてのすべてのデータを取得する。その後、処理は、ストロークデータ解析処理(S4300)へ移される。
S4300にて、制御部200は、ストロークデータ320内の座標データを解析する。このとき、制御部200は、ストロークの形状、ストロークの方向などストロークに関する情報を生成する。その後、処理は、ジェスチャ情報データ比較完了判定処理(S4400)へ移される。
S4400にて、制御部200は、全ジェスチャ情報データ取得処理(S4200)にて取得したすべてのジェスチャ情報データに対して、後述のジェスチャ比較判定処理(S4600)が完了したが完了したか否かを判定する。すべてのジェスチャ情報データとの比較が完了したと判定されないと(S4400にてNO)、処理は、ジェスチャ情報データ取得処理(S4500)へ移される。もしそうでなく、すべてのジェスチャ情報データとの比較が完了したと判定されると(S4400にてYES)、処理は、ジェスチャ非検出情報提供処理(S4800)へ移される。
S4500にて、制御部200は、全ジェスチャ情報データ取得処理(S4200)にて取得したすべてのジェスチャ情報データから、ジェスチャ情報データの1つを順に取得する。その後、処理は、ジェスチャ比較判定処理(S4600)へ移される。
S4600にて、制御部200は、ストロークデータ解析処理(S4300)にて解析したストロークデータ320と、ジェスチャ情報データ取得処理(S4500)にて取得したジェスチャ情報データのジェスチャとが、同じジェスチャであるか否かを判定する。このとき、たとえば、制御部200は、ストロークデータ解析処理(S4300)にて解析したストロークの形状が一致するかについてマッチング処理で判定したり、ストロークの方向が一致するか否かをマッチング処理で判定したりする。なお、ストロークデータ解析処理(S4300)にて解析した情報とジェスチャ情報データのジェスチャとの比較方法はこれに限定するものでなく、公知のジェスチャについてのマッチング処理を用いても構わない。ストロークデータ320とジェスチャ情報データのジェスチャの内容とがマッチング処理によって一致すると判定されると(S4600にてYES)、処理は、ジェスチャ検出情報提供処理(S4700)へ移される。もしそうでなく、ストロークデータ320とジェスチャ情報データのジェスチャの内容とがマッチング処理によって一致すると判定されないと(S4600にてNO)、処理は、ジェスチャ非検出情報提供処理(S4800)へ移される。
S4700にて、制御部200は、ジェスチャを検出した旨の情報を後述の処理(メインルーチン)へ返すとともに、一致したジェスチャ情報データをメインルーチンへ返す。その後、処理は、終了して、処理は、図18のS5000へ移され、ジェスチャ特定処理(S4000)のすべての処理が完了する。
S4800にて、制御部200は、ジェスチャを検出していない旨の情報を後述の処理(メインルーチン)へ返す。その後、処理は、終了して、処理は、図18のS5000へ移され、ジェスチャ特定処理(S4000)のすべての処理が完了する。
・対象オブジェクト特定処理(S6000)
上述した図18の対象オブジェクト特定処理(S6000)について詳細に説明する。図21に示すように、サブルーチン化された対象オブジェクト特定処理(S6000)において、制御部200は、ジェスチャ情報データ取得処理(S6100)、ストロークデータ取得処理(S6200)、座標情報取得処理(S6300)、全オブジェクトデータ取得処理(S6400)、オブジェクト特定データ生成処理(S6500)、全オブジェクトデータ比較完了判定処理(S6600)、オブジェクトデータ取得処理(S6700)、オブジェクトデータ範囲比較処理(S6800)、オブジェクト対象情報付加処理(S6810)、オブジェクト非対象情報付加処理(S6820)、およびオブジェクト特定データ提供処理(S6900)を実行する。
S6100にて、制御部200は、ジェスチャ特定処理(S4000)にて取得したジェスチャ情報データを取得する。その後、処理は、ストロークデータ取得処理(S6200)へ移される。
S6200にて、制御部200は、操作検出処理(S3000)にて取得したストロークデータ320を取得する。その後、処理は、座標情報取得処理(S6300)へ移される。
S6300にて、制御部200は、ジェスチャ情報データ取得処理(S6100)にて取得したジェスチャ情報データとストロークデータ取得処理(S6200)にて取得したストロークデータ320とに基づいて、ジェスチャ情報データ内のジェスチャのストロークデータ320上の座標を取得する。その後、処理は、全オブジェクトデータ取得処理(S6400)へ移される。
S6400にて、制御部200は、オブジェクトデータ読み込み処理(S1000)にて取得したオブジェクトデータ310のすべてを取得する。その後、処理は、オブジェクト特定データ生成処理(S6500)へ移される。
S6500にて、制御部200は、全オブジェクトデータ取得処理(S6400)にて取得したすべてのオブジェクトデータ310に対して、ジェスチャのストロークの対象か否かを特定するための情報を保持するデータの領域を生成する。ここで、制御部200は、データを保持するための領域を生成し、ジェスチャのストロークの対象か否かの情報は後述の処理で追加する。その後、処理は、全オブジェクトデータ比較完了判定処理(S6600)へ移される。
S6600にて、制御部200は、全オブジェクトデータ取得処理(S6400)にて取得したすべてのオブジェクトデータ310に対して、後述のオブジェクトデータ範囲比較処理(S6800)が行われたか否かを判定する。すべてのオブジェクトデータ310に対して比較が完了していると判定されないと(S6600にてNO)、処理は、オブジェクトデータ取得処理(S6700)へ移される。もしそうでなく、すべてのオブジェクトデータ310に対して比較が完了していると判定されると(S6600にてYES)、処理は、オブジェクト特定データ提供処理(S6900)へ移される。
S6700にて、制御部200は、全オブジェクトデータ取得処理(S6400)にて取得したすべてのオブジェクトデータ310から、オブジェクトデータ310の1つを取得する。その後、処理は、オブジェクトデータ範囲比較処理(S6800)へ移される。
S6800にて、制御部200は、座標情報取得処理(S6300)にて取得したジェスチャの座標が、オブジェクトデータ取得処理(S6700)にて取得したオブジェクトデータ310の範囲に含まれるか否かを判定する。ジェスチャの座標がオブジェクトデータ310の範囲に含まれると判定されると(S6800にてYES)、オブジェクトデータ310はジェスチャの対象オブジェクトとして、処理は、オブジェクト対象情報付加処理(S6810)へ移される。もしそうでなく、ジェスチャの座標がオブジェクトデータ310の範囲に含まれると判定されないと(S6800にてNO)、オブジェクトデータ310はジェスチャの対象オブジェクトではないとして、処理は、オブジェクト非対象情報付加処理(S6820)へ移される。
S6810にて、制御部200は、オブジェクトデータ範囲比較処理(S6800)にて対象オブジェクトであると判定された結果を受けて、オブジェクト特定データのオブジェクトデータ310に対応する箇所に対象オブジェクトである旨の情報を付加する。その後、処理は、全オブジェクトデータ比較完了判定処理(S6600)へ戻される。
S6820にて、制御部200は、オブジェクトデータ範囲比較処理(S6800)にて対象オブジェクトであると判定された結果を受けて、オブジェクト特定データのオブジェクトデータ310に対応する箇所に対象オブジェクトでない旨の情報を付加する。その後、処理は、全オブジェクトデータ比較完了判定処理(S6600)へ戻される。
S6900にて、制御部200は、オブジェクト特定データ生成処理(S6500)にて生成し、オブジェクト対象情報付加処理(S6810)およびオブジェクト非対象情報付加処理(S6820)にてデータを付加したオブジェクト特定データを後述の処理で取得できるように提供する。その後、処理は、終了して、処理は、図18のS7000へ移され、対象オブジェクト特定処理(S6000)のすべての処理が完了する。
・構造化データ生成処理(S7000)
上述した図18の構造化データ生成処理(S7000)について詳細に説明する。図22に示すように、サブルーチン化された構造化データ生成処理(S7000)において、制御部200は、ジェスチャ情報データ取得処理(S7100)、オブジェクト特定データ取得処理(S7200)、構造化データ取得処理(S7300)、対象オブジェクト存在判定処理(S7400)、対象オブジェクト複数判定処理(S7500)、オブジェクト外アクション情報データ取得処理(S7600)、オブジェクト内アクション情報データ取得処理(S7700)、オブジェクト間アクション情報データ取得処理(S7800)、対象オブジェクトデータ取得処理(S7900)、および構造化データ要素生成処理(S7950)を実行する。
S7100にて、制御部200は、ジェスチャ特定処理(S4000)にて取得したジェスチャ情報データを取得する。その後、処理は、オブジェクト特定データ取得処理(S7200)へ移される。
S7200にて、制御部200は、対象オブジェクト特定処理(S6000)にて取得したオブジェクト特定データを取得する。その後、処理は、構造化データ取得処理(S7300)へ移される。
S7300にて、制御部200は、既に構造化データ生成処理(S7000)を行い構造化データが存在する場合に、構造化データを取得する。その後、処理は、対象オブジェクト存在判定処理(S7400)へ移される。
S7400にて、制御部200は、オブジェクト特定データ取得処理(S7200)にて取得したオブジェクト特定データに基づいて、対象オブジェクトが存在するか否かを判定する。このとき、制御部200は、オブジェクト特定データに付加された対象オブジェクトか否かの情報が、すべて対象オブジェクトでない旨の情報を保持している場合、対象オブジェクトが存在しないと判定する。対象オブジェクトが存在すると判定されると(S7400にてYES)、処理は、対象オブジェクト複数判定処理(S7500)へ移される。もしそうでなく、対象オブジェクトが存在すると判定されないと(S7400にてNO)、処理は、オブジェクト外アクション情報取得処理(S7600)へ移される。
S7500にて、制御部200は、オブジェクト特定データ取得処理(S7200)にて取得したオブジェクト特定データに基づいて、対象オブジェクトが複数存在するか否かを判定する。このとき、制御部200は、オブジェクト特定データに付加された対象オブジェクトか否かの情報に対象オブジェクトである旨の情報が複数存在する場合、対象オブジェクトが複数存在すると判定する。対象オブジェクトが複数存在すると判定されないと(S7500にてNO)、処理は、オブジェクト内アクション情報取得処理(S7700)へ移される。もしそうでなく、対象オブジェクトが複数存在すると判定されると(S7500にてYES)、処理は、オブジェクト間アクション情報取得処理(S7800)へ移される。
S7600にて、制御部200は、オブジェクト特定データに対象オブジェクトが存在しない場合の処理として、ジェスチャ情報データ取得処理(S7100)にて取得したジェスチャ情報データからオブジェクト外の場合に適用するアクション情報データを取得する。その後、処理は、構造化データ要素生成処理(S7950)へ移される。
S7700にて、制御部200は、オブジェクト特定データに対象オブジェクトが存在する、かつ、単数で存在する場合の処理として、ジェスチャ情報データ取得処理(S7100)にて取得したジェスチャ情報データからオブジェクト内の場合に適用するアクション情報データを取得する。その後、処理は、対象オブジェクトデータ取得処理(S7900)へ移される。
S7800にて、制御部200は、オブジェクト特定データに対象オブジェクトが存在する、かつ、複数で存在する場合の処理として、ジェスチャ情報データ取得処理(S7100)にて取得したジェスチャ情報データからオブジェクト間の場合に適用するアクション情報データを取得する。その後、処理は、対象オブジェクトデータ取得処理(S7900)へ移される。
S7900にて、制御部200は、オブジェクト特定データに対象オブジェクトが存在する場合(単数および複数を問わず)の処理として、対象オブジェクトのオブジェクトデータ310を、オブジェクトデータ読み込み処理(S1000)にて取得したオブジェクトデータ310から取得する。その後、処理は、構造化データ要素生成処理(S7950)へ移される。
S7950にて、制御部200は、構造化データ取得処理(S7300)にて取得した構造化データと、オブジェクト外アクション情報取得処理(S7600)にて取得したアクション情報データとに基づいて、構造化データを生成する。このとき、制御部200は、対象オブジェクトが存在しない場合であるので、アクション情報データの内容に基づき構造化データを生成する。ここでは、たとえば、取得した構造化データの現在の階層の位置を変更する処理などが対応する。また、S7950にて、制御部200は、構造化データ取得処理(S7300)にて取得した構造化データと、オブジェクト内アクション情報取得処理(S7700)またはオブジェクト間アクション情報取得処理(S7800)にて取得したアクション情報データと、対象オブジェクトデータ取得処理(S7900)にて取得したオブジェクトデータ310とに基づいて、構造化データを生成する。このとき、制御部200は、対象オブジェクトが存在する場合であるので、アクション情報データの内容に基づき、オブジェクトデータ310を参照しつつ、構造化データを生成する。ここでは、たとえば、取得した構造化データの現在の階層の位置に、取得のオブジェクトデータ310に対応するノードを生成する処理などが対応する。その後、処理は、終了して、処理は、図18のS8000へ移され、構造化データ生成処理(S7000)のすべての処理が完了する。
[生成装置における動作(1ジェスチャ1アクション)]
以上のような構造およびフローチャートに基づく、本実施の形態に係る生成装置の動作について説明する。なお、以下においては、説明をわかりやすくするために、図4に示すオブジェクトデータに対して、操作部500の操作によって描かれるストロークのジェスチャによって生成される構造化データは、構造化データのノードの意味がデフォルトに「本文」という意味を保持することを想定する。また、生成される構造化データはルートのノードの1つ下の階層からデータを生成することを想定する。ジェスチャ情報データは図11に示すデータを用いることを想定する。
ユーザは、操作部500を操作して、オブジェクトデータ310を読み込むように指示する(S1000)。読み込まれたオブジェクトデータ310は、各オブジェクトの表示位置と表示する内容とが解析されて、表示パネル410に、図3に示すようなレイアウトで表示される(S2000)。
表示パネル410に表示されたオブジェクトデータ310に対して、ユーザが操作部500を用いてストロークを描く。操作部500が操作されない状態が継続して、規定時間が経過しても(S3100にてYES)、ストロークデータ320が存在しないと(S3500にてNO)、次の規定時間が経過するまでユーザによる操作を検出する状態を繰り返す。すなわち、規定時間が経過する間(S3100にてNO)、ユーザにより操作部500が操作されたか否かを判定して、操作部500が操作されない場合(S3200にてNO)、操作部500が操作されたことを検出するまで待つ。
操作部500がユーザにより操作された場合、たとえば、図23に示すストローク7000のように操作部500の操作が継続的に行われてストロークが描かれた場合(S3200にてYESかつS3300にてYES)、操作部500における座標をストロークデータ320として追加・蓄積する(S3400)。
規定時間が経過したときに(S3100にてYES)、操作部500をユーザが操作した結果であるストロークデータ320が存在する場合には(S3500にてYES)、追加・蓄積したストロークデータ320がメインルーチンへ返される(S3700)。
ストローク7000がジェスチャに該当するか特定するために、生成されたストロークデータ320が取得される(S4100)。このとき、図11に示すジェスチャ情報データが取得される(S4200)。ストローク7000のストロークデータ320の座標データに基づいて、ストローク7000が線を描いたストロークであることが解析される(S4300)。図11に示すジェスチャ情報データの4つのデータと順に比較を行い(S4400にてNO、S4500)、取得されたジェスチャ情報データの1つとジェスチャの内容が一致するか否かを判定する(S4600)。ここでは、ストローク7000の解析したストロークが線を描くストロークであり、図11の線を描くジェスチャと一致するため(S4600にてYES)、ジェスチャを検出した旨の情報と、線を描くジェスチャ情報データをメインルーチンへ返す(S4700)。
ジェスチャを検出したので(S5000にてYES)、ジェスチャの対象となるオブジェクトデータ310が特定される。先の処理でジェスチャを検出したジェスチャ情報データが取得される(S6100)。操作部500をユーザが操作することにより生成されたストロークデータが取得されて(S6200)、ストロークデータからジェスチャの座標が取得される(S6300)。ここでは、線を描くジェスチャの具体的な座標を取得する。表示パネル410に表示のオブジェクトデータが取得されて(S6400)、取得されたオブジェクトデータからオブジェクト特定データが生成される(S6500)。
このとき、図4のオブジェクトデータ310のオブジェクトと同じ数の5つのフラグを設定できるオブジェクト特定データが生成される。すべてのオブジェクトについてオブジェクトデータ範囲比較処理されるまで(S6600にてNO)、オブジェクトが順番に比較処理されて、ジェスチャの対象オブジェクトが特定される。ここでは、図4のオブジェクト1101が取得されて(S6700)、ストローク内のジェスチャの座標がオブジェクト1101の範囲内の座標であるか否かが判定される。図23に示すように、線を描いたジェスチャのストローク7000は、オブジェクト1101の範囲内にあると判定されて(S6800にてYES)、オブジェクト特定データのオブジェクト1101に対応するフラグが、対象オブジェクトである旨の情報とされる(S6810)。繰り返して、オブジェクト1102、オブジェクト1103、オブジェクト1104およびオブジェクト1105の範囲には線を描いたジェスチャのストローク7001は含まれないことから、オブジェクト特定データのフラグが、対象オブジェクトでない旨の情報とされる(S6820)。すべてのオブジェクトデータとの比較が終わると(S6600にてYES)、生成したオブジェクト特定データが、次の処理のためにメインルーチンへ返される(S6900)。
ストロークデータからジェスチャと、ジェスチャの対象となるオブジェクトデータが特定できると構造化データが生成される。特定されたジェスチャ情報データが取得されて(S7100)、対象となるオブジェクトデータを判定するオブジェクト特定データが取得される(S7200)。ここまでの処理にてすでに生成された構造化データが存在する場合、構造化データが取得される(S7300)。ここでは、構造化データがまだ存在しないので、新規の構造化データが生成されることになる。
オブジェクト特定データから対象オブジェクトが存在するか否かが判定される(S7400)。ここでは、オブジェクト1101に対して対象オブジェクトであるフラグがあるので、対象オブジェクトが存在すると判定される(S7400にてYES)。次に、対象オブジェクトが複数存在するか否かが判定される(S7500)。ここでは、オブジェクト1101のみが対象オブジェクトであるフラグがあるので、対象オブジェクトは複数存在しないと判定する(S7500にてNO)。これによって、ストローク7000のジェスチャの対象オブジェクトは、オブジェクト1101のみと特定される(S7500にてYES)。ジェスチャ情報データから、線を描くジェスチャのうち、オブジェクト内に対応するアクション情報データが取得される(S7700)。対象オブジェクトであるオブジェクト1101のオブジェクトデータが取得し(S7900)、アクション情報データに応じた構造化データが生成される(S7950)。ここでは、図11において、線を描くジェスチャのオブジェクト内のアクション情報データは、現在の階層にオブジェクトと配置する処理であると規定されているため、構造化データのルートの1つ下の階層にオブジェクト1101の内容、すなわち、「問題1 面積」というテキストの要素が配置される。
このとき、図29に示すようにルートのノード8001の子のノードに、デフォルトの「本文」という意味を持つテキスト要素のノードが配置されることになる(S7950)。これにより、ストローク7000に対する構造化データの生成処理は、完了し、ストロークデータに完了フラグが付加されていないため(S8000にてNO)、再び、操作部500の操作を検出する処理を繰り返す(S3000)。
表示パネル410に表示されたオブジェクトデータ310に対して、ユーザが、ストローク7000に続けて、図24に示すストローク7001を描いた場合の構造化データの生成処理を説明する。なお、先に説明したストローク7000により生成される場合の動作と異なる動作にのみについて説明する。それ以外の動作について同じであるため、ここでの詳細な説明は繰返さない。
ストローク7001は、描かれたストロークの座標データに基づいて、円を描いたストロークであると解析されて(S4300)、図11のジェスチャ情報データのデータと比較される。図11に示す円を描くジェスチャとストローク7001とが一致することから(S4600にてYES)、ジェスチャを検出した旨の情報がメインルーチンへ返される(S4700)。ジェスチャの対象となるオブジェクトは、図24に示すオブジェクト1101のみであるオブジェクト特定データが生成されて(S6900)、ジェスチャ情報データから円を描くジェスチャのうち、対象オブジェクトがオブジェクト内であるアクション情報データが取得される(S7700)。対象オブジェクトであるオブジェクト1101のオブジェクトデータが取得されて(S7900)、アクション情報に応じた構造化データが生成される(S7950)。
ここでは、図11において、円を描くジェスチャのオブジェクト内のアクション情報データは、オブジェクトに「見出し」の意味を付加する処理であると規定されているため、構造化データの現在の階層のオブジェクト1101に対応する先の処理で生成されたノード8002の意味を「見出し」とする。このような動作の結果、図29のノード8002の意味「本文」という構造化データが、図30のノード8002の意味「見出し」という構造化データへ編集される。ここでは、ジェスチャの内容は意味を付加するだけであり、ノード8002の階層の位置およびノードの内容は変更されず、ノードが新規に生成されることもない。
表示パネル410に表示されたオブジェクトデータ310に対して、ユーザが、ストローク7001に続けて、図25に示すストローク7002を描いた場合の構造化データの生成処理を説明する。ここでも、上述の説明と異なる動作のみについて説明する。
ストローク7002は、描かれたストロークの座標データに基づいて、繰り返し行き来するストロークであると解析されて(S4300)、図11のジェスチャ情報データのデータと比較される。図11に示す繰り返し行き来するジェスチャとストローク7002とが一致することから(S4600にてYES)ジェスチャを検出した旨の情報がメインルーチンへ返される(S4700)。ジェスチャの対象となるオブジェクトは、図25に示すオブジェクト1101およびオブジェクト1102であるオブジェクト特定データが生成されて(S6900)、ジェスチャ情報データから繰り返し行き来するジェスチャのうち、対象オブジェクトがオブジェクト間であるアクション情報データが取得される(S7800)。対象オブジェクトであるオブジェクト1101およびオブジェクト1102のオブジェクトデータが取得されて(S7900)、アクション情報に応じた構造化データが生成される(S7950)。
ここでは、図11において、繰り返し行き来をするジェスチャのオブジェクト間のアクション情報データは、階層構造の階層の位置を下げてオブジェクトを配置する処理であると規定されているため、構造化データの現在の階層の位置が1つ下げられる。このような動作の結果、図31に示すように、オブジェクト1101に対応するノード8002に、オブジェクト1102に対応するノード8003が子の関係として生成される。
表示パネル410に表示されたオブジェクトデータ310に対して、ユーザが、ストローク7002に続けて、図26に示すストローク7003を描いた場合の構造化データの生成処理を説明する。ここでも、上述の説明と異なる動作のみについて説明する。
ストローク7003は、描かれたストロークの座標データに基づいて、線を描いたストロークであると解析されて(S4300)、図11のジェスチャ情報データのデータと比較される。図11に示す線を描くジェスチャとストローク7003とが一致することから(S4600にてYES)、ジェスチャを検出した旨の情報がメインルーチンへ返される(S4700)。ジェスチャの対象となるオブジェクトは、図26に示すオブジェクト1103のみであるオブジェクト特定データが生成されて(S6900)、ジェスチャ情報データから線を描くジェスチャのうち、対象オブジェクトがオブジェクト内であるアクション情報データが取得される(S7700)。対象オブジェクトであるオブジェクト1103のオブジェクトデータが取得されて(S7900)、アクション情報に応じた構造化データが生成される(S7950)。
ここでは、図11において、線を描くジェスチャのオブジェクト内のアクション情報データは、現在の階層にオブジェクトを配置する処理であると規定されている。このため、構造化データの現在の階層に、オブジェクトが配置される。このような動作の結果、図32に示すように、オブジェクト1103に対応するノード8004が生成される。
表示パネル410に表示されたオブジェクトデータ310に対して、ユーザが、ストローク7003に続けて、図27に示すストローク7004を描いた場合の構造化データの生成処理を説明する。
ストローク7004は、描かれたストロークの座標データに基づいて、円を描いたストロークであると解析されて(S4300)、図11のジェスチャ情報データのデータと比較される。図11に示す円を描くジェスチャとストローク7004とが一致することから(S4600にてYES)、ジェスチャを検出した旨の情報がメインルーチンへ返される(S4700)。ジェスチャの対象となるオブジェクトは、図27で示すように、1つもないというオブジェクト特定データが生成されて(S6900)、ジェスチャ情報データから円を描くジェスチャのうち、対象オブジェクトがオブジェクト外であるアクション情報データが取得される(S7600)。対象オブジェクトがないため、オブジェクトデータの取得はなく、アクション情報に応じた構造化データが生成される(S7950)。
ここでは、図11において、円を描くジェスチャのオブジェクト外のアクション情報データは、階層構造の階層の位置を上げる処理であると規定されているため、構造化データの現在の位置が1つ上げられる。このような動作の結果、図33の点線で示すノード8005が、現在の位置に配置される。このように、この時点ではノード8005は生成されていないが、次にノードを追加する場合の位置を分かり易く示すものである。
表示パネル410に表示されたオブジェクトデータ310に対して、ユーザが、ストローク7004に続けて、図28に示すストローク7005、ストローク7006およびストローク7007を描いた場合の構造化データの生成処理については、上述の通りである。すなわち、
ストローク7005でオブジェクト1104に対して線を描く処理は、ストローク7000でオブジェクト1101に対して線を描いた処理(図23)と同じであり、ストローク7006でオブジェクト1104に対して円を描く処理は、ストローク7001でオブジェクト1101に対して円を描いた処理(図24)と同じであり、ストローク7007でオブジェクト1104とオブジェクト1105との間を繰り返し行き来するストロークを描く処理は、ストローク7002でオブジェクト1101とオブジェクト1102との間を繰り返し行き来するストロークを描いた処理(図25)と同じである。
同様に処理を繰り返すことにより、図34に示す構造化データが生成される。図34に示すように、生成された構造化データは、ノード8002とノード8005とが同じ階層、かつ、「見出し」という意味を有しており、さらに、ノード8002の下位階層にノード8003およびノード8004が配置され、ノード8005の下位階層にノード8006が配置され、これらのノード8003、ノード8004およびノード8005は「本文」という意味を有している。
図34に示す構造化データを、構造化文書(たとえば、タグによって記載されたXMLなどの記述言語により構成された文書)として作成した場合のデータ例を、図35に示す。
以上のようにして、本実施の形態に係る生成装置によると、ユーザが操作部500を用いてストロークを描くだけの容易な操作により、オブジェクトデータの各オブジェクトに意味を持たせ、かつ、各オブジェクトの親子関係(階層関係)を保持した、構造化データを生成することができる。
<第2の実施の形態>
以下に、本発明の第2の実施の形態に係る生成装置について説明する。第1の実施の形態と同様に、本実施の形態に係る生成装置は、オブジェクトに対して構造化データを生成するのみならず、生成された構造化データを編集したり削除したりすることができる。本実施の形態に係る生成装置は、第1の実施の形態に係る生成装置において適用されたジェスチャ情報データとは異なるジェスチャ情報データを適用して、オブジェクトに対して構造化データを生成したり、編集したり、削除したりする。なお、生成装置のハードウェア構造(図1および図2)およびフローチャート(図18〜図22)については、上述した第1の実施の形態と同じであるため、ここでの詳細な説明は繰返さない。
[データ構造]
記憶部300に記憶される、ジェスチャ情報データについて説明する。
・ジェスチャ情報データ
本実施の形態に係る生成装置100においては、1つのジェスチャに対して複数のアクション情報データが割り当てられる。すなわち、図36に示すように、図11に示したジェスチャ情報データとは異なるジェスチャ情報データが、本実施の形態に係る生成装置100の記憶部300に記憶される。
図36は、1つのジェスチャに対して複数のアクション情報データを割り当てた場合のジェスチャ情報データである。たとえば、図36において、円を描くジェスチャに対して、階層構造の階層の位置を変えた後に、オブジェクトを配置し、配置したオブジェクトの意味を付加して、さらに階層構造の階層の位置を変えるといった複数のアクション情報データが割り当てられている。このようにジェスチャ情報データでは、1つのジェスチャに対して複数のアクション情報データを割り当てる構成でもよい。
[生成装置における動作(1ジェスチャ多アクション)]
以上のような構造およびフローチャートに基づく、本実施の形態に係る生成装置の動作について説明する。なお、以下において、説明をわかりやすくするための想定は、第1の実施の形態と同じである。ジェスチャ情報データは、図11ではなく図36に示すデータが用いられる。また、ジェスチャに対するアクション情報データによる構造化データを生成する動作以外は、第1の実施の形態と同じであるため、ここでの詳細な説明は繰返さない。
表示パネル410に表示されたオブジェクトデータ310に対して、ユーザが操作部500を用いてストロークを描く。以下において、図37に示すストローク11001を描いた場合の構造化データの生成処理を説明する。
ストローク11001は、描かれたストロークの座標データに基づいて、円を描くストロークであると解析されて(S4300)、図36のジェスチャ情報データのデータと比較される。図36に示す円を描くジェスチャとストローク11001とが一致することから(S4600にてYES)、ジェスチャを検出した旨の情報がメインルーチンへ返される(S4700)。ジェスチャの対象となるオブジェクトは、図37に示すオブジェクト1101であるオブジェクト特定データが生成されて(S6900)、ジェスチャ情報データから円を描くジェスチャのうち、対象オブジェクトがオブジェクト内であるアクション情報データが取得される(S7700)。対象オブジェクトであるオブジェクト1101のオブジェクトデータが取得されて(S7900)、アクション情報に応じた構造化データが生成される(S7950)。
ここでは、図36において、円を描くジェスチャのオブジェクト内のアクション情報データは、階層構造の階層の位置をルートの直下に変更し、現在の位置にオブジェクトを配置し、続けて、オブジェクトに「見出し」の意味を付加し、階層構造の階層の位置を下げる処理であると規定されている。このため、これらの処理を行うと、図30に示すように、オブジェクト1101に対するノード8002が、ルートのノード8001の下位階層に子の関係で生成されて、かつ、ノード8002のオブジェクトには「見出し」の意味が付加される。また、階層構造の位置を下げる処理が行われているため、続けて行われる処理は、ノード8002についての子の関係の位置からの処理が始まることになる。
表示パネル410に表示されたオブジェクトデータ310に対して、ユーザが、ストローク11001に続けて、図38に示すストローク11002を描いた場合の構造化データの生成処理を説明する。
ストローク11002は、描かれたストロークの座標データに基づいて、線を描いたストロークであると解析されて(S4300)、図36のジェスチャ情報データのデータと比較される。図36に示す線を描くジェスチャとストローク11002とが一致することから(S4600にてYES)、ジェスチャを検出した旨の情報がメインルーチンへ返される(S4700)。ジェスチャの対象となるオブジェクトは、図38で示すようにオブジェクト1102であるオブジェクト特定データが生成されて(S6900)、ジェスチャ情報データから線を描くジェスチャのうち、対象オブジェクトがオブジェクト内であるアクション情報データが取得される(S7700)。対象オブジェクトであるオブジェクト1102のオブジェクトデータが取得されて(S7900)、アクション情報に応じた構造化データが生成される(S7950)。
ここでは、図36において、線を描くジェスチャのオブジェクト内のアクション情報データは、現在の階層にオブジェクトを配置する処理であると規定されている。このため、構造化データの現在の階層に、オブジェクトが配置される。このような動作の結果、図31に示すように、オブジェクト1102に対するノード8003が、ノード8002の子の関係の位置に生成される。
表示パネル410に表示されたオブジェクトデータ310に対して、ユーザが、ストローク11002に続けて、図39に示すストローク11003を描いた場合の構造化データの生成処理は、図38に示したストローク11002を描いた場合の構造化データの生成処理と同じである。図39のストローク11003を描いたジェスチャによって、図32に示すオブジェクト1103に対するノード8004が、ノード8003に続き、ノード8002の子の関係の位置に生成される。
表示パネル410に表示されたオブジェクトデータ310に対して、ユーザが、ストローク11003に続けて、図40に示すストローク11004を描いた場合の構造化データの生成処理は、図37に示したストローク11001を描いた場合の構造化データの生成処理と同じである。図40のストローク11004を描いたジェスチャによって、図34に示すオブジェクト1104に対するノード8005が、ノード8002に続き、ルートのノード8001の子の関係の位置に生成されて、かつ、ノード8005は「見出し」の意味が付加される。また、次の処理は、ノード8005の子の関係の位置から始められる。
表示パネル410に表示されたオブジェクトデータ310に対して、ユーザが、ストローク11004に続けて、図41に示すストローク11005を描いた場合の構造化データの生成処理は、図38に示したストローク11002を描いた場合の構造化データの生成処理と同じである。図41のストローク11005を描いたジェスチャによって、図34に示すオブジェクト1105に対するノード8006が、ノード8005の子の関係の位置に生成される。このようにして、生成された構造化データは、上述した第1の実施の形態における図23〜図28に示す操作によって生成された構造化データと全く同じである。
以上のようにして、本実施の形態に係る生成装置によると、1つのジェスチャに対して複数のアクション情報データを割り当てる。これにより、操作部500を用いてストロークを描く操作がより容易になる。このようなより容易な操作によって、オブジェクトデータの各オブジェクトに意味を持たせ、かつ、各オブジェクトの親子関係(階層関係)を保持した、構造化データを生成することができる。
<第3の実施の形態>
以下に、本発明の第3の実施の形態に係る生成装置について説明する。第1の実施の形態および第2の実施の形態と同様に、本実施の形態に係る生成装置は、オブジェクトに対して構造化データを生成するのみならず、生成された構造化データを編集したり削除したりすることができる。本実施の形態に係る生成装置は、第1の実施の形態および第2の実施の形態に係る生成装置において実行される操作検出処理(S3000)とは異なる操作検出処理を実行して、一筆書きを中断した後に継続した場合でも、オブジェクトに対して構造化データを生成したり、編集したり、削除したりする。なお、生成装置のハードウェア構造(図1および図2)およびフローチャート(図18、図20〜図22)については、上述した第1の実施の形態と同じであるため、ここでの詳細な説明は繰返さない。
[生成装置で実行されるソフトウェア構造]
本実施の形態に係る生成装置100の制御部は、操作部500によるストロークを描く操作の継続が中断した場合に、別の操作によって操作の継続が中断していないとみなして、継続したストロークとする処理を実行する(ストロークを描く操作の再開を判定)。
図42は、上述した図19に対応する操作検出処理のフローチャートである。なお、図42において図19と異なるのは、S3300にてストロークが継続していないと判定された場合に(S3300にてNO)、S3550の処理にて、継続を示す別の操作が特定できるか否かに基づいて処理を分岐する点である。これ以外の処理は同じであり、同じステップ番号を付してあるので、それらについてのここでの詳細な説明は繰返さない。
S3550にて、制御部200は、継続を示す別の操作が特定できるか否かを判定する。継続を示す別の操作が特定できるかと判定されると(S3550にてYES)、処理は、S3100へ移されて、ストロークを継続する処理へ戻される。もしそうでなく、継続を示す別の操作が特定できると判定されないと(S3550にてNO)、処理は、S3600へ移されて、ストロークの継続が完了したことを示す完了フラグが付加される。
このようなS3550における継続を示す別の操作とは、たとえば、キーボード510の任意のキーに対して、タブレット530でストロークを描く操作を中断した場合にも継続しているものとみなす処理を、割り当てることが考えられる。このとき、タブレット530でストロークを描いている最中に、キーボード510で任意のキーを押下することで、タブレット530のストロークを描くことを中断しても、ストロークを描くことが継続されているとみなされる。このため、タブレット530によるストロークを描くことを再開した場合に、先に中断したストロークから継続してストロークを描くことが可能となる。
このように操作部500の組み合わせにより、ストロークを描く操作が途中で中断しても、再開した場合にストロークを継続して描いているとして処理を続けることができる。
<第4の実施の形態>
以下に、本発明の第4の実施の形態に係る生成装置について説明する。第1の実施の形態〜第3の実施の形態と同様に、本実施の形態に係る生成装置は、オブジェクトに対して構造化データを生成するのみならず、生成された構造化データを編集したり削除したりすることができる。本実施の形態に係る生成装置は、第1の実施の形態に係る生成装置において適用されたジェスチャ情報データとは異なるジェスチャ情報データを適用して、オブジェクトに対して構造化データを生成したり、編集したり、削除したりする。なお、生成装置のハードウェア構造(図1および図2)およびフローチャート(図18〜図22)については、上述した第1の実施の形態と同じであるため、ここでの詳細な説明は繰返さない。
[データ構造]
本実施の形態に係る生成装置100は、操作部500を用いたストロークを描く操作が、マルチタッチパネルにより複数のストロークを同時に描画しても、その操作に対応して、オブジェクトに対して構造化データを生成したり、編集したり、削除したりすることができる。これを実現するために、記憶部300に記憶される、ジェスチャ情報データについて説明する。
・ジェスチャ情報データ
本実施の形態に係る生成装置100においては、複数のストロークに対してアクション情報データが割り当てられる。すなわち、図43に示すように、図11および図36に示したジェスチャ情報データとは異なるジェスチャ情報データが、本実施の形態に係る生成装置100の記憶部300に記憶される。
図43は、ジェスチャの内容が複数のストロークにより構成される場合のジェスチャ情報データである。たとえば、複数のストロークにより構成されるジェスチャの内容とは、図43に示すように、ストロークの1つ目が円を描くジェスチャであり、ストロークの2つ目が線を描くジェスチャであるなどである。
この場合、操作部500によって描かれた複数のストロークのそれぞれに対して、ジェスチャ情報データと比較する。ジェスチャ情報データとして記憶されたジェスチャ内容における複数のストロークと、操作部500によって描かれた複数のストロークとが一致した場合、ジェスチャが特定される(S4000)。
このように、複数のストロークの組み合わせによりジェスチャ内容を構成することで、より詳細なアクション情報データを割り当てることができる。その結果、構造化データの生成が、より
容易となる。
なお、本実施の形態において、複数のストロークについての処理は、上述した処理に限定されるものではなく、別の公知の処理であっても構わない。
また、複数のストロークを描画する場合もマルチタッチパネルに限定されるものではない。たとえば、第3の実施の形態のようにストロークを描く操作を中断する処理との組み合わせなどによって構成されてもよいし、操作部500の複数のデバイスによるストロークの描画で入力となる構成であってもよい。
<変形例>
以下に、上述した第1の実施の形態〜第4の実施の形態に共通する変形例について説明する。
・ハードウェアについての別の構成
以下に、生成装置100のハードウェア構成について、別の構成を説明する。生成装置100のハードウェア構成は、上述した構成に限定されるものではなく、以下のような構成であっても構わない。
記憶部300は、フラッシュメモリなどのメモリデバイスで構成されていても構わない。また、脱着可能なHDD(Hard Disk Drive)、PC(Personal Computer)カードまたはUSB(Universal Serial Bus)メモリなどで構成されていても構わない。
また、表示パネル410は、プラズマディスプレイ、有機または無機のEL(Electro−Luminescence)パネル、CRT(Cathode Ray Tube)などで構成されていても構わない。また、生成装置100において、データを表示する対象は、ネットワーク700により接続された機器であっても構わない。
また、操作部500は、上述したマルチタッチパネルのほかに、ボタンによる入力およびマイクによる音声入力などで構成しても構わない。
外部インターフェイス部600は、無線通信用のインターフェイスであっても有線通信用のインターフェイスであっても構わない。また、生成装置100の各部のデータ送受信は、通信ケーブルまたは無線通信装置などを介して構成するものであっても構わない。
CPUを含む制御部200で実行されるプログラムは、DSP(Digital Signal Processor)で実行されても構わないし、演算処理ユニットが回路として組み込まれているロジック回路などで実行されても構わない。また、制御部200を実現するプログラムは、記憶部300に記憶されるものに限定されない。外部インターフェイス部600を介してネットワーク700に接続された記憶装置に記憶され、そのネットワーク700上の記憶装置からダウンロードするプログラムであっても構わない。さらに、このようなプログラムを記録した記録媒体から生成装置100が備える読取装置を用いて読み込んでCPUがこのプログラムを実行することにより制御部200を実現するようにしても構わない。
・データ構造についての別の構成
さらに、生成装置100の記憶部300に記憶される各データについて、別の構造を説明する。各データは、上述した図に示される内容に限定するものではなく、以下のような内容であっても構わない。
オブジェクトデータ310は、位置と範囲とを示す情報およびその内容を示す情報が含まれていればよく、図35に示したように、XMLなどの記述言語により構成された文書データであっても構わない。
構造化データは、テキストまたは画像などの要素のデータと、そのデータに対する意味を保持でき、かつ、親子関係のデータ構造の情報を保持できれば、XMLなどの記述言語により構成されるデータに限定されるものではない。
ストロークデータ320は、本実施の形態においては、座標データとしたが、座標データに限定されるものではない。ストロークの方向を示すデータ列またはベクトルデータなど、公知の他のデータ形式であっても構わない。
ジェスチャ情報データも、本実施の形態においては、ジェスチャの内容を座標データとしたが、座標データに限定されるものではない。ストロークデータ320と同様に、公知の別のデータ形式であってよい。
ジェスチャ情報データとストロークデータ320とのマッチング処理も、公知のアルゴリズムを用いた処理であっても構わない。また、ジェスチャ情報データは、本実施の形態においては予め準備されたデータであるとしたが、ジェスチャの内容は、操作部500による操作がジェスチャとして認識できるものであれば限定されるものではない。また、ジェスチャとアクション情報データとの組み合わせも限定するものではなく、ユーザが編集して様々な組み合わせを実現できる構成であっても構わない。
・情報についての別の構成
上述した実施の形態においては、2次元座標により特定される2次元情報を処理の対象としたものであったが、3次元情報であっても構わない。
今回開示された実施の形態は単に例示であって、本発明が上述した実施の形態のみに限定されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味および範囲内でのすべての変更を含む。