(57)【特許請求の範囲】
【請求項１】
ストロークの集合毎のメタ情報を記述するメタデータを含むインクデータを生成するインクデータ生成装置であって、
メタ情報がまだ付与されていない第１集合に属するストローク要素を示す第１集合データを取得する第１取得部と、
メタ情報が既に付与されている第２集合に属するストローク要素を示す第２集合データをストロークの集合毎に取得する第２取得部と、
前記第１取得部により取得された前記第１集合データ及び前記第２取得部により取得された前記第２集合データを用いて、両方のストローク要素を比較することで、前記第１集合と前記第２集合の間の包含関係を判定する集合判定部と、
前記集合判定部の判定結果に応じて異なる態様の記述により前記第１集合の第１メタデータを生成するデータ生成部と、
を備えることを特徴とするインクデータ生成装置。
【請求項２】
前記データ生成部は、前記第１集合と前記第２集合の間に包含関係があると判定された場合、上位集合又は下位集合である前記第２集合の第２メタデータに依存するように前記第１メタデータを生成することを特徴とする請求項１に記載のインクデータ生成装置。
【請求項３】
前記データ生成部は、前記第１集合と前記第２集合の間に包含関係があると判定された場合、前記第２メタデータ内の位置に前記第１メタデータを生成することを特徴とする請求項２に記載のインクデータ生成装置。
【請求項４】
前記データ生成部は、前記第１集合と前記第２集合の間に包含関係があると判定された場合、前記第２メタデータの直上又は直下の位置に前記第１メタデータを生成することを特徴とする請求項２に記載のインクデータ生成装置。
【請求項５】
前記データ生成部は、前記第１集合と前記第２集合の間に包含関係があると判定された場合、前記第２集合の識別コードを参照する態様で前記第１メタデータを生成することを特徴とする請求項２に記載のインクデータ生成装置。
【請求項６】
前記データ生成部は、前記第１集合と前記第２集合の間に包含関係がないと判定された場合、予め定められたメタ情報の付与順に従う位置に前記第１メタデータを生成することを特徴とする請求項１に記載のインクデータ生成装置。
【請求項７】
前記第１集合を構成する複数のストロークの位置又は形状の相互関係に基づいて、前記第１集合に付与されるべき属性を推定する属性推定部をさらに備えることを特徴とする請求項１に記載のインクデータ生成装置。
【請求項８】
前記属性推定部は、ストロークの端点に関する特徴量を入力し、セマンティクス属性のラベル値を出力する識別器を含んで構成されることを特徴とする請求項７に記載のインクデータ生成装置。
【請求項９】
複数本のストロークを表示領域内に同時に表示可能であるとともに、ユーザの手書き入力によって前記複数本のストロークの中から前記第１集合に属するストローク要素を選択可能に構成されるＵＩ部をさらに備え、
前記ＵＩ部は、前記第１集合に付与するセマンティクス属性を入力可能なユーザコントロールをさらに表示し、
前記データ生成部は、前記ユーザコントロールを用いて入力されたセマンティクス属性を示す前記第１メタデータを生成する
ことを特徴とする請求項８に記載のインクデータ生成装置。
【請求項１０】
前記ＵＩ部は、前記属性推定部により推定されたセマンティック属性を前記ユーザコントロールの初期値として表示することを特徴とする請求項９に記載のインクデータ生成装置。
【請求項１１】
ストロークの集合毎のメタ情報を記述するメタデータを含むインクデータを生成するインクデータ生成装置であって、
ストロークの集合に属するストローク要素を示す集合データを集合毎に取得するデータ取得部と、
前記データ取得部により取得された集合毎の前記集合データに基づいて、複数の集合間の包含関係を示すメタデータを出力するデータ出力部と、
を備えることを特徴とするインクデータ生成装置。
【請求項１２】
前記データ出力部は、集合の包含関係を示すデータ構造によってセマンティクス属性を記述するメタチャンクを含む前記メタデータを出力することを特徴とする請求項１１に記載のインクデータ生成装置。
【請求項１３】
ストロークの集合毎のメタ情報を記述するメタデータを含むインクデータを生成するインクデータ生成方法であって、
メタ情報がまだ付与されていない第１集合に属するストローク要素を示す第１集合データを取得する第１取得ステップと、
メタ情報が既に付与されている第２集合に属するストローク要素を示す第２集合データをストロークの集合毎に取得する第２取得ステップと、
それぞれ取得された前記第１集合データ及び前記第２集合データを用いて、両方のストローク要素を比較することで、前記第１集合と前記第２集合の間の包含関係を判定する判定ステップと、
前記判定ステップでの判定結果に応じて異なる態様の記述により前記第１集合の第１メタデータを生成する生成ステップと、
を１つ又は複数のコンピュータが実行することを特徴とするインクデータ生成方法。
【請求項１４】
ストロークの集合毎のメタ情報を記述するメタデータを含むインクデータを生成するためのインクデータ生成プログラムであって、
メタ情報がまだ付与されていない第１集合に属するストローク要素を示す第１集合データを取得する第１取得ステップと、
メタ情報が既に付与されている第２集合に属するストローク要素を示す第２集合データをストロークの集合毎に取得する第２取得ステップと、
それぞれ取得された前記第１集合データ及び前記第２集合データを用いて、両方のストローク要素を比較することで、前記第１集合と前記第２集合の間の包含関係を判定する判定ステップと、
前記判定ステップでの判定結果に応じて異なる態様の記述により前記第１集合の第１メタデータを生成する生成ステップと、
を１つ又は複数のコンピュータに実行させることを特徴とするインクデータ生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インクデータを生成するインクデータ生成装置、方法及びプログラムに関する。
【背景技術】
【０００２】
特許文献１には、入力デバイスを特定するＮ種類のメタデータと、Ｍ個のストロークデータを対応付けてメタデータブロックを作成し、当該ブロックをストロークデータとともにインクファイルに書き込む方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際特許出願公開第２０１６／１５７４００号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、メタデータの生成時又は生成後におけるインクデータの取扱性を高めるインクデータ生成装置、方法及びプログラムを提供することである。
【課題を解決するための手段】
【０００５】
第１の本発明におけるインクデータ生成装置は、ストロークの集合毎のメタ情報を記述するメタデータを含むインクデータを生成する装置であって、メタ情報がまだ付与されていない第１集合に属するストローク要素を示す第１集合データを取得する第１取得部と、メタ情報が既に付与されている第２集合に属するストローク要素を示す第２集合データをストロークの集合毎に取得する第２取得部と、前記第１取得部により取得された前記第１集合データ及び前記第２取得部により取得された前記第２集合データを用いて、両方のストローク要素を比較することで、前記第１集合と前記第２集合の間の包含関係を判定する集合判定部と、前記集合判定部の判定結果に応じて異なる態様の記述により前記第１集合の第１メタデータを生成するデータ生成部と、を備える。【０００６】
第２の本発明におけるインクデータ生成装置は、ストロークの集合毎のメタ情報を記述するメタデータを含むインクデータを生成する装置であって、ストロークの集合に属するストローク要素を示す集合データを集合毎に取得するデータ取得部と、前記データ取得部により取得された集合毎の前記集合データに基づいて、複数の集合間の包含関係を示すメタデータを出力するデータ出力部と、を備える。【０００７】
第３の本発明におけるインクデータ生成方法は、ストロークの集合毎のメタ情報を記述するメタデータを含むインクデータを生成する方法であって、メタ情報がまだ付与されていない第１集合に属するストローク要素を示す第１集合データを取得する第１取得ステップと、メタ情報が既に付与されている第２集合に属するストローク要素を示す第２集合データをストロークの集合毎に取得する第２取得ステップと、それぞれ取得された前記第１集合データ及び前記第２集合データを用いて、両方のストローク要素を比較することで、前記第１集合と前記第２集合の間の包含関係を判定する判定ステップと、前記判定ステップでの判定結果に応じて異なる態様の記述により前記第１集合の第１メタデータを生成する生成ステップと、を１つ又は複数のコンピュータが実行する。【０００８】
第４の本発明におけるインクデータ生成プログラムは、ストロークの集合毎のメタ情報を記述するメタデータを含むインクデータを生成するためのプログラムであって、メタ情報がまだ付与されていない第１集合に属するストローク要素を示す第１集合データを取得する第１取得ステップと、メタ情報が既に付与されている第２集合に属するストローク要素を示す第２集合データをストロークの集合毎に取得する第２取得ステップと、それぞれ取得された前記第１集合データ及び前記第２集合データを用いて、両方のストローク要素を比較することで、前記第１集合と前記第２集合の間の包含関係を判定する判定ステップと、前記判定ステップでの判定結果に応じて異なる態様の記述により前記第１集合の第１メタデータを生成する生成ステップと、を１つ又は複数のコンピュータに実行させる。
【発明の効果】
【０００９】
本発明によれば、メタデータの生成時又は生成後におけるインクデータの取扱性を高めることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態におけるインクデータ生成装置の全体構成図である。
【図２】図１のインクデータの一例を示す図である。
【図３】図２のインクデータに基づいて可視化されたコンテンツを示す図である。
【図４】図１に示すインクデータ生成装置の動作説明に供される第１のフローチャートである。
【図５】ラッソ操作による新規集合の指定方法を示す図である。
【図６Ａ】サブグループの選択方法を示す図である。
【図６Ｂ】サブグループにおける特徴量の抽出方法を示す図である。
【図７Ａ】識別器の構成例を示す図である。
【図７Ｂ】ヒストグラムの導出方法を示す図である。
【図８】図４のステップＳ５における画面の表示例を示す図である。
【図９】コンテンツ及び２つのラッソの間の位置関係を示す図である。
【図１０】図９に対応するインクデータの記述例を示す図である。
【図１１】図１に示すインクデータ生成装置の動作説明に供される第２のフローチャートである。
【図１２】コンテンツ及び３つのラッソの間の位置関係を示す図である。
【図１３】図１２に対応するインクデータの記述例を示す図である。
【図１４】コンテンツ及び３つのラッソの間の位置関係を示す図である。
【図１５】図１４に対応するインクデータの第１の記述例を示す図である。
【図１６】図１４に対応するインクデータの第２の記述例を示す図である。
【図１７】図１４に対応するインクデータの第３の記述例を示す図である。
【図１８】コンテンツ及び３つのラッソの間の位置関係を示す図である。
【図１９】図１８に対応するインクデータの記述例を示す図である。
【図２０】セマンティクス属性の付与結果を示す図である。
【発明を実施するための形態】
【００１１】
［インクデータ生成装置１０の構成］
＜全体構成＞
図１は、本発明の一実施形態におけるインクデータ生成装置１０の全体構成図である。インクデータ生成装置１０は、タッチパネルディスプレイ１２を備える電子機器であり、例えば、タブレット型端末、スマートフォン、パーソナルコンピュータで構成される。このインクデータ生成装置１０は、具体的には、タッチパネルディスプレイ１２と、表示駆動ＩＣ１４と、タッチセンサＩＣ１６と、ホストプロセッサ１８と、メモリ２０と、を含んで構成される。
【００１２】
タッチパネルディスプレイ１２は、コンテンツを可視的に表示可能な表示パネル２２と、表示パネル２２の上に配置されるタッチセンサ２４と、を含んで構成される。表示パネル２２は、モノクロ画像又はカラー画像を表示可能であり、例えば、液晶パネル、有機ＥＬ（Electro-Luminescence）パネルであってもよい。タッチセンサ２４は、センサ座標系のＸ軸の位置を検出するための複数のＸライン電極と、Ｙ軸の位置を検出するための複数のＹライン電極と、を備える。
【００１３】
表示駆動ＩＣ１４は、表示パネル２２の駆動制御を行う集積回路である。表示駆動ＩＣ１４は、ホストプロセッサ１８から供給された表示信号に基づいて表示パネル２２を駆動する。これにより、表示パネル２２上には、インクデータ５０が示すコンテンツが表示される。
【００１４】
タッチセンサＩＣ１６は、タッチセンサ２４の駆動制御を行う集積回路である。タッチセンサＩＣ１６は、ホストプロセッサ１８から供給された制御信号に基づいてタッチセンサ２４を駆動する。これにより、タッチセンサＩＣ１６は、スタイラス２６の状態を検出する「ペン検出機能」や、ユーザの指などによるタッチを検出する「タッチ検出機能」を実行する。
【００１５】
このペン検出機能は、例えば、タッチセンサ２４のスキャン機能、ダウンリンク信号の受信・解析機能、スタイラス２６の状態（例えば、位置、姿勢、筆圧）の推定機能、スタイラス２６に対する指令を含むアップリンク信号の生成・送信機能を含む。また、タッチ検出機能は、例えば、タッチセンサ２４の二次元スキャン機能、タッチセンサ２４上の検出マップの取得機能、検出マップ上の領域分類機能（例えば、指、手の平などの分類）を含む。
【００１６】
このように、タッチセンサ２４及びスタイラス２６による入力機能と、表示パネル２２による出力機能を組み合わせることで、ユーザ・インターフェース（以下、ＵＩ部２８）が構築される。
【００１７】
ホストプロセッサ１８は、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro-Processing Unit）、ＧＰＵ（Graphics Processing Unit）を含む処理演算装置によって構成される。ホストプロセッサ１８は、メモリ２０に格納されたプログラムを読み出して実行することで、第１取得部３０、第２取得部３２、属性推定部３４、集合判定部３６、データ生成部３８（データ出力部）、及び描画処理部４０として機能する。
【００１８】
メモリ２０は、非一過性であり、かつ、コンピュータ読み取り可能な記憶媒体で構成されている。ここで、コンピュータ読み取り可能な記憶媒体は、ハードディスクドライブ（ＨＤＤ：Hard Disk Drive）、ソリッドステートドライブ（ＳＳＤ：Solid State Drive）を含む記憶装置、あるいは、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ、フラッシュメモリ等の可搬媒体である。本図の例では、メモリ２０には、新規集合データ４２（第１集合データ）、既存集合データ４４（第２集合データ）、学習パラメータ群４６、及びインクデータ５０が格納されている。
【００１９】
＜インクデータ５０の一例＞
図２は、図１のインクデータ５０の一例を示す図である。以下、デジタルインクをＸＭＬ（eXtensible Markup Language）形式で記述するＩｎｋＭＬ（Ink Markup Language）の例を挙げて説明する。なお、インクデータ５０のデータ形式、いわゆる「インク記述言語」は、ＩｎｋＭＬに限られず、例えば、ＷＩＬＬ（Wacom Ink Layer Language）あるいはＩＳＦ（Ink Serialized Format）であってもよい。また、このインクデータ５０をＪＳＯＮ（JavaScript（登録商標） Object Notation）のデータ構造形式を用いて記述することで、様々なソフトウェアやプログラミング言語間でのデータのやり取りが容易になる。
【００２０】
本図の例では、インクデータ５０は、少なくとも１本（本図の例では２４本）のストロークを記述するストロークデータ５１を含んで構成される。本図から理解されるように、１本のストロークは、＜ｔｒａｃｅ＞タグ内に順次配列される複数のポイントデータにより記述される。各々のポイントデータは、少なくとも指示位置（Ｘ座標、Ｙ座標）からなり、カンマなどのデリミタで区切られる。図示の便宜上、ストロークの始点及び終点を示すポイントデータのみを表記し、複数の経由点を示すポイントデータを省略している。なお、このポイントデータには、上記した指示位置の他に、筆記の順序、スタイラス２６の筆圧、姿勢などが含まれてもよい。
【００２１】
図３は、図２のインクデータ５０に基づいて可視化されたコンテンツを示す図である。表示パネル２２（図１）上において、タッチセンサ２４の検出位置を特定するための二次元座標系（以下、センサ座標系：Ｘ−Ｙ）が定義される。このコンテンツは、「This is a pencil.」からなる文字列と、鉛筆の絵を含んで構成される。なお、括弧内の数字は、ストロークの筆記順（ストロークＩＤ＝０１−２４）を示しており、コンテンツの一部を構成しない点に留意する。
【００２２】
［インクデータ生成装置１０の第１動作］
この実施形態におけるインクデータ生成装置１０は、以上のように構成される。まず、インクデータ生成装置１０の第１動作について、図４のフローチャート及び図５−図１０を参照しながら説明する。この「第１動作」とは、ユーザによるメタ情報（例えば、データの属性、作成者、作成日時、使用デバイスなど）の付与を支援する動作を意味する。
【００２３】
第１動作に先立ち、描画処理部４０は、メモリ２０から読み出したインクデータ５０を解析し、ストロークデータ５１に対して所望のラスタライズ処理を行い、コンテンツを示す表示信号を生成する。表示駆動ＩＣ１４は、ホストプロセッサ１８から供給された表示信号に基づいて表示パネル２２を駆動する。これにより、表示パネル２２上には可視化されたコンテンツが表示される。
【００２４】
＜第１動作の説明＞
図４のステップＳ１において、ホストプロセッサ１８は、メタ情報を付与しようとするストロークの新規集合（第１集合）の指定操作を受け付けたか否かを確認する。この「指定操作」は、複数のストロークの中から１本以上のストロークを選択するための操作であり、例えば、選択対象をラッソ（投げ縄）で囲む「ラッソ操作」が挙げられる。
【００２５】
図５は、ラッソ操作による新規集合の指定方法を示す図である。ユーザは、表示パネル２２上のタッチ面にてスタイラス２６を移動させながら、メタ情報を付与しようとするストローク全体を囲む筆記操作を行う。この手書き入力により、可視化されたコンテンツの上にラッソＬｔｍｐが重ねて表示される。
【００２６】
ユーザの指定操作をまだ受け付けていない場合（ステップＳ１：ＮＯ）、この指定操作を受け付けるまでステップＳ１に留まる。一方、ユーザの指示操作を受け付けた場合（ステップＳ１：ＹＥＳ）、次のステップＳ２に進む。
【００２７】
ステップＳ２において、第１取得部３０は、ステップＳ１で受け付けた指示操作の内容に基づいて、新規集合に属するストローク要素を示すデータ（以下、新規集合データ４２という）を取得する。この新規集合データ４２は、ストローク要素を特定可能なデータであり、例えば、ストロークの識別情報であるストロークＩＤであってもよい。図２及び図５の例では、第１取得部３０は、新規集合データ４２としてストロークＩＤ＝０１−１８を取得する。
【００２８】
ステップＳ３において、ホストプロセッサ１８は、メタ情報の入力を支援するモード（以下、単に「入力支援モード」という）のオン・オフを確認する。この入力支援モードが「オフ」である場合（ステップＳ３：ＯＦＦ）、ステップＳ４の実行を省略してステップＳ５に進む。一方、入力支援モードが「オン」である場合（ステップＳ３：ＯＮ）、次のステップＳ４に進む。
【００２９】
ステップＳ４において、属性推定部３４は、ステップＳ１で指定された新規集合を構成する複数のストロークの位置又は形状の相互関係に基づいて、新規集合に付与されるべき属性を推定する。ここでは、属性推定部３４は、機械学習により構築された識別器７０（図７Ａ参照）を用いて、新規集合のセマンティクス属性を推定する。以下、属性の推定方法について、図６Ａ−図７Ｂを参照しながら詳細に説明する。
【００３０】
図６Ａ及び図６Ｂは、識別器７０に対する入力データの生成方法の一例を示す図である。より詳しくは、図６Ａはサブグループ７４の選択方法を示す図であり、図６Ｂはサブグループ７４における特徴量の抽出方法を示す図である。
【００３１】
図６Ａに示すように、属性推定部３４は、１８本のストローク要素（ストロークＩＤ＝０１−１８）から構成されるグループ７２の中から、所定のストローク本数からなるサブグループ７４を１つ選択する。ここでは、ＩＤ＝０１から始まる連続する５つのＩＤ＝０１−０５を有する５本のストロークが抽出されたとする。
【００３２】
図６Ｂに示すように、属性推定部３４は、サブグループ７４に属する５本のストロークをすべて網羅する正方形領域を設定し、この領域に対応する二次元座標系（以下、正規化座標系；Ｘ’−Ｙ’）を定義する。この正規化座標系の原点Ｏ’は、センサ座標系の原点Ｏに最も近い位置にある、正方形領域の頂点に相当する。正規化座標系のＸ’軸はセンサ座標系のＸ軸に平行であるとともに、正規化座標系のＹ’軸はセンサ座標系のＹ軸に平行である。また、Ｘ’軸，Ｙ’軸のスケールは、正方形領域をなす４つの頂点の座標が（０，０），（１，０），（０，１），（１，１）となるように正規化されている。
【００３３】
属性推定部３４は、ストロークデータ５１（図２）を参照し、センサ座標系におけるストロークの始点Ｐｓの座標値（Ｘ，Ｙ）及び終点Ｐｅの座標値（Ｘ，Ｙ）を取得する。そして、属性推定部３４は、座標系の線形変換を施すことで、正規化座標系におけるストロークの始点Ｐｓの座標値（Ｘ’，Ｙ’）及び終点Ｐｅの座標値（Ｘ’，Ｙ’）をそれぞれ導出する。
【００３４】
図７Ａ及び図７Ｂは、セマンティクス属性の推定方法の一例を示す図である。より詳しくは、図７Ａは識別器７０の構成例を示す図であり、図７Ｂはヒストグラムの導出方法を示す図である。
【００３５】
図７Ａに示すように、識別器７０は、例えば、入力層７６、中間層７８及び出力層８０からなる階層型ニューラルネットワークで構成される。識別器７０の演算規則は、学習パラメータの集合体である学習パラメータ群４６の値によって定められる。学習パラメータ群４６は、例えば、ニューロンに相当するユニットの活性化関数を記述する係数、シナプス結合の強さに相当する重み付け係数、各層を構成するユニットの個数、中間層７８の数を含んでもよい。学習パラメータ群４６は、学習の終了によって各値が確定された状態でメモリ２０（図１）に格納され、必要に応じて適時に読み出される。
【００３６】
入力層７６は、ストロークの端点に関する特徴量を入力する層であり、本図の例では２０個のユニットから構成される。この特徴量は、［１］始点ＰｓのＸ’座標、［２］始点ＰｓのＹ’座標、［３］終点ＰｅのＸ’座標、［４］終点ＰｅのＹ’座標、をストロークＩＤの順に配列した２０個の成分からなる入力ベクトルである。
【００３７】
出力層８０は、セマンティクス属性を示すラベル値の集合体（以下、ラベル群という）を出力する層であり、本図の例では６個のユニットから構成される。このラベル群は、［１］テキスト（英語）、［２］テキスト（日本語）、［３］図（グラフィック）、［４］図（イラスト）、［５］数式、［６］化学式、の確からしさを示す６個の成分からなる出力ベクトルである。
【００３８】
識別器７０は、サブグループ７４から生成した特徴量を入力層７６から入力し、中間層７８を経由して、サブグループ７４に応じたラベル群を出力層８０に出力する。例えば、各々のラベルが［０，１］の範囲で定義されている場合、ラベルの値が最大となるセマンティクス属性、例えば「テキスト（英語）」が選択される。
【００３９】
図７Ｂに示すように、属性推定部３４は、最初のサブグループ７４のセマンティクス属性を識別した後、ストロークＩＤを１つずつずらし、５本のストローク（ＩＤ＝０２−０６）から構成される次のサブグループ７４を選択して上記した識別処理を行う。そして、属性推定部３４は、複数のサブグループ７４による識別結果を集計し、セマンティクス属性の個数を「度数」とするヒストグラムを作成する。本図の例では、ヒストグラムの度数が最大となる「テキスト（英語）」が、新規集合（図６Ａのグループ７２）に付与されるべきセマンティクス属性であると推定される。
【００４０】
図４のステップＳ５において、ホストプロセッサ１８は、メタ情報（例えば、アノテーション）を入力するための入力用ウィンドウ８２を表示パネル２２上に表示させる。この入力用ウィンドウ８２は、例えば、ラッソＬｔｍｐによって囲まれる閉領域と重ならない位置に表示される。
【００４１】
図８に示すように、入力用ウィンドウ８２内には、２つのユーザコントロール８４，８６と、［ＯＫ］［中止］と表記されたボタン８８が配置されている。１つ目のユーザコントロール８４は、例えば、セマンティクス属性を入力可能に構成されるプルダウンメニューである。２つ目のユーザコントロール８６は、例えば、バリュー属性を入力可能に構成されるテキストボックスである。
【００４２】
入力支援モードが「オン」である場合、つまり、図４の「ステップＳ３：ＯＮ」を経由した場合、ユーザコントロール８４の入力欄には、ステップＳ４で推定されたセマンティクス属性が初期値（つまり、推奨値）として表示される。一方、入力支援モードが「オフ」である場合、つまり、図４の「ステップＳ３：ＯＦＦ」を経由した場合、ユーザコントロール８４の入力欄には、属性が選択されていない状態を示す表示（例えば、ブランク表示）がなされる。
【００４３】
ユーザは、自身の意図に合致するセマンティクス属性が提示された場合、ユーザコントロール８４の操作を省略することができる。一方、ユーザは、自身の意図に合致しないセマンティクス属性が提示された場合、所望の属性が選択されるようにユーザコントロール８４を操作してもよい。
【００４４】
ステップＳ６において、ホストプロセッサ１８は、データ入力の確定操作、より詳しくは［ＯＫ］ボタン８８（図８）のタッチ操作を受け付けたか否かを確認する。確定操作をまだ受け付けていない場合（ステップＳ６：ＮＯ）、この確定操作を受け付けるまでステップＳ６に留まる。一方、確定操作を受け付けた場合（ステップＳ６：ＹＥＳ）、図１１で後述するステップＳ７に進む。
【００４５】
図９は、コンテンツ及び２つのラッソＬｐｒｖ，Ｌｔｍｐの間の位置関係を示す図である。ユーザは、ラッソＬｐｒｖで囲んだストローク集合に対して１番目のアノテーション操作を行い、その後、ラッソＬｔｍｐで囲んだストローク集合に対して２番目のアノテーション操作を行ったとする。１番目のアノテーション操作を通じて、ＩＤ＝１１−１７，１９−２３をストローク要素とする集合に対して、セマンティクス属性（Ｓｅｍ）が「なし」であり、バリュー属性（Ｖａｌｕｅ）が「鉛筆」であるメタ情報が付与される。２番目のアノテーション操作を通じて、ＩＤ＝０１−１８をストローク要素とする集合に対して、セマンティクス属性が「テキスト（英語）」であり、バリュー属性が「なし」であるメタ情報が付与される。
【００４６】
図１０は、図９に対応するインクデータ５０の記述例を示す図である。このインクデータ５０は、ストロークデータ５１とメタデータ５２から構成される。メタデータ５２は、２つのメタチャンク５３，５４を含んで構成される。１番目のメタチャンク５３は、ラッソＬｐｒｖが示すストローク集合に付与されるメタ情報を記述する。２番目のメタチャンク５４は、ラッソＬｔｍｐが示すストローク集合に付与されるメタ情報を記述する。
【００４７】
＜第１動作による効果＞
以上のように、このインクデータ生成装置１０は、ストロークの集合毎のメタ情報を記述するメタデータ５２を含むインクデータ５０を生成する装置であって、メタ情報がまだ付与されていない新規集合に属するストローク要素を示す新規集合データ４２を取得する第１取得部３０と、新規集合を構成する複数のストロークの位置又は形状の相互関係に基づいて、新規集合に付与されるべき属性を推定する属性推定部３４と、推定された属性を新規集合に付与するためのメタチャンク５３，５４（第１メタデータ）を生成するデータ生成部３８と、を備える。
【００４８】
あるいは、このインクデータ生成方法及びプログラムによれば、１つ又は複数のプロセッサ（例えば、ホストプロセッサ１８）が、メタ情報がまだ付与されていない新規集合に属するストローク要素を示す新規集合データ４２を取得する第１取得ステップ（図４のＳ２）と、新規集合を構成する複数のストロークの位置又は形状の相互関係に基づいて、新規集合に付与されるべき属性を推定する推定ステップ（図４のＳ４）と、推定された属性を新規集合に付与するためのメタチャンク５３，５４（第１メタデータ）を生成する生成ステップ（後述する図１１のＳ１０，Ｓ１１）と、を備える。
【００４９】
このように構成したので、複数のストロークの位置又は形状の相互関係が考慮された妥当性が高い属性を自動的に選択可能となり、ユーザによる属性の入力作業が軽減される。
【００５０】
また、属性推定部３４は、ストロークの端点に関する特徴量を入力し、セマンティクス属性のラベル群を出力する識別器７０を含んで構成されてもよい。ストロークの端点とセマンティック属性の間の関連性に着目することで、セマンティック属性の推定精度が向上する。
【００５１】
また、インクデータ生成装置１０は、複数本のストロークを表示領域内に同時に表示可能であるとともに、ユーザの手書き入力によって複数本のストロークの中から新規集合に属するストローク要素を選択可能に構成されるＵＩ部２８をさらに備え、ＵＩ部２８は、新規集合に付与するセマンティクス属性を入力可能なユーザコントロール８４をさらに表示し、データ生成部３８は、ユーザコントロール８４を用いて入力されたセマンティクス属性を示すメタチャンク５３，５４を生成してもよい。これにより、ユーザ・インターフェースを利用したセマンティクス属性の円滑な入力が行われる。
【００５２】
また、ＵＩ部２８は、属性推定部３４により推定されたセマンティック属性をユーザコントロール８４の初期値として表示してもよい。これにより、ユーザコントロール８４の初期状態からの変更操作が不要となる可能性が高まるとともに、ユーザに対して変更の機会を与えることができる。
【００５３】
［インクデータ生成装置１０の第２動作］
続いて、インクデータ生成装置１０の第２動作について、図１１のフローチャート及び図１２−図１７を参照しながら説明する。この「第２動作」は、第１動作により入力されたメタ情報に基づいてインクデータ５０を生成する動作を意味する。ここで、データ生成部３８は、メタ情報を付与する度にインクデータ５０を逐次更新する「フロー型」のデータ処理を行う。
【００５４】
＜第２動作の説明＞
図１１のステップＳ７において、第２取得部３２は、メタ情報が既に付与されているストロークの集合（以下、既存集合という）に属するストローク要素を示すデータ（以下、既存集合データ４４という）を取得する。この既存集合データ４４は、新規集合データ４２と同様に、ストローク要素を特定可能なデータであり、例えば、ストロークの識別情報であるストロークＩＤであってもよい。
【００５５】
ステップＳ８において、集合判定部３６は、図４のステップＳ２で取得された新規集合データ４２と、ステップＳ７で取得された既存集合データ４４を用いて、両方のストローク要素を比較することで、新規集合と既存集合の間の包含関係を判定する。具体的には、集合判定部３６は、既存集合が新規集合の（１）上位集合、（２）下位集合、又は（３）包含関係にない、のいずれに該当するかを判定する。なお、複数の既存集合が存在する場合、集合判定部３６は、各々の既存集合に対して包含関係の判定を行う点に留意する。
【００５６】
ステップＳ９において、集合判定部３６は、新規集合と包含関係を有する既存集合が存在するか否かを確認する。
【００５７】
図１２は、コンテンツ及び３つのラッソＬｐｒ１，Ｌｐｒ２，Ｌｔｍｐの間の位置関係を示す図である。ここで、ユーザは、第１−第８のアノテーション操作を行った後、ラッソＬｔｍｐで囲んだストローク集合に対して９番目のアノテーション操作を行ったとする。９番目のアノテーション操作を通じて、ＩＤ＝１９−２４をストローク要素とする集合に対して、セマンティクス属性（Ｓｅｍ）が「図」であり、バリュー属性（Ｖａｌｕｅ）が「なし」であるメタ情報が付与される。図示の便宜上、３−８番目のラッソの表記が省略されている。
【００５８】
本図から理解されるように、ラッソＬｐｒ１（第１のアノテーション操作）で指定された既存集合は、ＩＤ＝１９−２３のストローク要素を含むが、ＩＤ＝２４のストローク要素を含まない。また、ラッソＬｐｒ２（第２のアノテーション操作）で指定された既存集合は、ＩＤ＝１９−２４のストローク要素を含まない。この場合、新規集合と既存集合の間に包含関係がないとして（ステップＳ９：ＮＯ）、ステップＳ１０に進む。
【００５９】
ステップＳ１０において、データ生成部３８は、図４のステップＳ６で入力が確定されたメタ情報を記述するメタチャンク５５を生成し、予め定められたメタ情報の付与順に従う位置に配置する。
【００６０】
図１３は、図１２に対応するインクデータ５０の記述例を示す図である。このインクデータ５０は、ストロークデータ５１とメタデータ５２Ａから構成される。メタデータ５２Ａは、メタチャンク５３，５４，５５を含む、９個のメタチャンクから構成される。１番目のメタチャンク５３は、ラッソＬｐｒ１で指定された既存集合に付与されるメタ情報を記述する。２番目のメタチャンク５４は、ラッソＬｐｒ２で指定された既存集合に付与されるメタ情報を記述する。９番目のメタチャンク５５は、ラッソＬｔｍｐで指定された新規集合に付与されるメタ情報を記述する。図示の便宜上、３−８番目のメタチャンクの表記が省略されている。
【００６１】
本図の例では、新たに付与されたメタ情報を下方の位置に逐次追加する規則が設けられるので、９番目のメタチャンク５５は、メタデータ５２の最後尾の位置に追加される。本図とは逆に、新たに付与されたメタ情報を上方の位置に逐次追加する規則が設けられる場合、メタチャンク５５は、メタデータ５２の先頭の位置に追加されることになる。
【００６２】
一方、図１４は、コンテンツ及び３つのラッソＬｐｒ１，Ｌｐｒ２，Ｌｔｍｐの間の位置関係を示す図である。この図１４は、ラッソＬｔｍｐによる指定範囲が異なる点のみにおいて図１２と異なっている。９番目のアノテーション操作を通じて、ＩＤ＝１９−２３をストローク要素とする集合に対して、セマンティクス属性が「図」であり、バリュー属性が「なし」であるメタ情報が付与される。
【００６３】
本図から理解されるように、ラッソＬｐｒ１で指定された既存集合は、ストローク要素（ＩＤ＝１９−２３）をすべて含むので、新規集合の「上位集合」に該当する。つまり、新規集合と既存集合の間に包含関係があるとして（ステップＳ９：ＹＥＳ）、ステップＳ１１に進む。
【００６４】
ステップＳ１１において、データ生成部３８は、新規集合の上位集合又は下位集合である既存集合のメタチャンク５４（第２メタデータ）に依存するようにメタチャンク５６−５８（第１メタデータ）を生成する。以下、メタチャンク５６−５８の生成方法の具体例について、図１５−図１７を参照しながら説明する。
【００６５】
図１５は、図１４に対応するインクデータ５０の第１の記述例を示す図である。インクデータ５０は、ストロークデータ５１とメタデータ５２Ｂから構成される。メタデータ５２Ｂは、メタチャンク５３，５４，５６を含む、９個のメタチャンクから構成される。メタチャンク５３，５４は、図１３の場合と同じデータであるため説明を省略する。
【００６６】
９番目のメタチャンク５６は、ラッソＬｔｍｐで指定された新規集合に付与されるメタ情報を記述する。本図の例では、新たに付与されたメタ情報を下方の位置に逐次追加する規則があるにもかかわらず、９番目のメタチャンク５６は、メタチャンク５３内に組み込むように追加される。
【００６７】
このように、データ生成部３８は、新規集合と既存集合の間に包含関係があると判定された場合、該当する既存集合のメタチャンク５３内の位置に、新規集合のメタチャンク５６を生成してもよい。この記述例によっても、インクデータ５０の生成時に、包含関係を有するメタチャンク５３，５６同士を対応付けることができる。
【００６８】
図１６は、図１４に対応するインクデータ５０の第２の記述例を示す図である。インクデータ５０は、ストロークデータ５１とメタデータ５２Ｃから構成される。メタデータ５２Ｃは、メタチャンク５３，５４，５７を含む、９個のメタチャンクから構成される。メタチャンク５３，５４は、図１３の場合と同じデータであるため説明を省略する。
【００６９】
９番目のメタチャンク５７は、ラッソＬｔｍｐで指定された新規集合に付与されるメタ情報を記述する。本図の例では、新たに付与されたメタ情報を下方の位置に逐次追加する規則があるにもかかわらず、９番目のメタチャンク５６は、メタチャンク５３の直下（メタチャンク５４の直上）の位置に追加される。
【００７０】
このように、データ生成部３８は、新規集合と既存集合の間に包含関係があると判定された場合、該当する既存集合のメタチャンク５３の直上又は直下の位置に新規集合のメタチャンク５７を生成してもよい。この記述例によっても、インクデータ５０の生成時に、包含関係を有するメタチャンク５３，５７同士を対応付けることができる。
【００７１】
図１７は、図１４に対応するインクデータ５０の第３の記述例を示す図である。インクデータ５０は、ストロークデータ５１とメタデータ５２Ｄから構成される。メタデータ５２Ｄは、メタチャンク５３，５４，５８を含む、９個のメタチャンクから構成される。メタチャンク５３，５４は、図１３の場合と同じデータであるため説明を省略する。
【００７２】
９番目のメタチャンク５８は、ラッソＬｔｍｐで指定された新規集合に付与されるメタ情報を記述する。本図の例では、９番目のメタチャンク５８は、新たに付与されたメタ情報を下方の位置に逐次追加する規則に従って、メタデータ５２Ｄの最後尾の位置に追加される。ただし、メタチャンク５５は、＜ｔｒａｃｅＶｉｅｗ＞タグ内にて、メタチャンク５３に含まれるストローク集合の識別コード（ここでは、グループＩＤ＝ｇ１）を参照した態様で記述されている。
【００７３】
つまり、データ生成部３８は、新規集合と既存集合の間に包含関係があると判定された場合、メタチャンク５３に含まれる既存集合の識別コードを参照する態様で、新規集合のメタチャンク５８を生成してもよい。この記述例によっても、インクデータ５０の生成時に、包含関係を有するメタチャンク５３，５８同士を対応付けることができる。
【００７４】
このように、データ生成部３８は、ステップＳ８の判定結果に応じて異なる態様の記述によりメタチャンク５５，５６−５８を生成した後（ステップＳ１０，Ｓ１１）、次のステップＳ１２に進む。
【００７５】
図１１のステップＳ１２において、データ生成部３８は、ステップＳ１０又はＳ１１で作成・更新されたインクデータ５０を出力する。この「出力」とは、具体的には、メモリ２０への格納、データファイルへの書き込み処理、外部装置への送信処理が挙げられる。これにより、インクデータ生成装置１０の動作が終了する。
【００７６】
＜第２動作による効果＞
以上のように、インクデータ生成装置１０は、ストロークの集合毎のメタ情報を記述するメタデータ５２を含むインクデータ５０を生成する装置であって、メタ情報がまだ付与されていない新規集合（第１集合）に属するストローク要素を示す新規集合データ４２（第１集合データ）を取得する第１取得部３０と、メタ情報が既に付与されている既存集合（第２集合）に属するストローク要素を示す既存集合データ４４（第２集合データ）をストロークの集合毎に取得する第２取得部３２と、それぞれ取得された新規集合データ４２及び既存集合データ４４を用いて、両方のストローク要素を比較することで、新規集合と既存集合の間の包含関係を判定する集合判定部３６と、集合判定部３６の判定結果に応じて異なる態様の記述により新規集合の第１メタデータ（メタチャンク５５，５６−５８）を生成するデータ生成部３８と、を備える。
【００７７】
あるいは、このインクデータ生成方法及びプログラムによれば、１つ又は複数のプロセッサ（例えば、ホストプロセッサ１８）が、メタ情報がまだ付与されていない新規集合に属するストローク要素を示す新規集合データ４２を取得する第１取得ステップ（図４のＳ２）と、メタ情報が既に付与されている既存集合に属するストローク要素を示す既存集合データ４４をストロークの集合毎に取得する第２取得ステップ（Ｓ７）と、それぞれ取得された新規集合データ４２及び既存集合データ４４を用いて、両方のストローク要素を比較することで、新規集合と既存集合の間の包含関係を判定する判定ステップ（Ｓ８）と、判定ステップでの判定結果に応じて異なる態様の記述によりメタチャンク５５，５６−５８を生成する生成ステップ（Ｓ１０，Ｓ１１）と、を実行する。
【００７８】
このように構成したので、メタデータ５２の記述態様を解析することでストロークの集合同士の包含関係を把握可能となり、この包含関係を考慮したメタ情報の様々な処理、具体的には、編集支援（例えば、メタ情報の相互参照）や自動編集（例えば、メタ情報の結合・置換・継承）などを行うことができる。これにより、メタデータ５２の生成時又は生成後におけるインクデータ５０の取扱性を高めることができる。
【００７９】
また、データ生成部３８は、既存集合と新規集合の間に包含関係があると判定された場合、上位集合又は下位集合である既存集合のメタチャンク５３に依存するようにメタチャンク５６−５８を生成してもよい。メタチャンク５３，５６−５８の間に依存関係を設けておくことで、両者の包含関係がより把握しやすくなる。
【００８０】
［変形例］
以下、インク記述言語がＷＩＬＬであるインクデータ６０をＪＳＯＮの表記方法に従って生成する例について説明する。
【００８１】
＜インクデータ６０の生成例＞
図１８は、コンテンツ及び３つのラッソＬｐｒ１，Ｌｐｒ２，Ｌｐｒ３の間の位置関係を示す図である。ユーザは、ラッソＬｐｒ１で囲んだストローク集合に対して１１番目のアノテーション操作を行い、ラッソＬｐｒ２で囲んだストローク集合に対して１２番目のアノテーション操作を行ったとする。１１番目のアノテーション操作を通じて、ＩＤ＝０１−０６をストローク要素とする集合に対して、種類（Ｔｙｐｅ）が「ワード」であり、値（Ｖａｌｕｅ）が「Ｔｈｉｓ」であるメタ情報が付与される。１２番目のアノテーション操作を通じて、ＩＤ＝０７−０９をストローク要素とする集合に対して、種類が「ワード」であり、値が「ｉｓ」であるメタ情報が付与される。
【００８２】
ユーザは、第１１−第１８のアノテーション操作を行った後、ラッソＬｐｒ３で囲んだストローク集合に対して１９番目のアノテーション操作を行ったとする。１９番目のアノテーション操作を通じて、ＩＤ＝０１−０９をストローク要素とする集合に対して、種類が「テキスト行」であり、値が「なし」であるメタ情報が付与される。図示の便宜上、１３−１８番目のラッソの表記が省略されている。
【００８３】
ここで、データ生成部３８は、ユーザにより付与されたメタ情報を蓄積した後、所定のタイミングでインクデータ６０を一括的に更新する「ストック型」のデータ処理を行う。この場合、データ生成部３８は、集合判定部３６による判定結果を取得し、上記した包含関係を満たす場合、該当するメタ情報を階層的に記述するメタチャンク６５を含むようにインクデータ６０を生成する。また、データ生成部３８は、上位集合又は下位集合に既に付与されているメタ情報との関係から、まだ付与されていないメタ情報を決定し、当該メタ情報を付与するためのコード文６８を自動的に追加してもよい。
【００８４】
図１９は、図１８に対応するインクデータ６０の記述例を示す図である。インクデータ６０は、ストローク及びストローク集合をそれぞれ記述するストロークデータ６１と、セマンティクス属性を記述するメタデータ６２を含んで構成される。メタデータ６２は、メタチャンク６３，６４，６５を含む、９個のメタチャンクから構成される。１１番目のメタチャンク６３は、ラッソＬｐｒ１で指定された集合（ｔｇ１１）に付与されるメタ情報を記述する。１２番目のメタチャンク６４は、ラッソＬｐｒ２で指定された集合（ｔｇ１２）に付与されるメタ情報を記述する。
【００８５】
１９番目のメタチャンク６５は、ラッソＬｐｒ３で指定された集合（ｔｇ１９）に付与されるメタ情報を記述する。本図の例では、１９番目のメタチャンク６５は、新たに付与されたメタ情報を下方の位置に逐次追加する規則に従って、メタデータ６２の最後尾の位置に追加される。ただし、メタチャンク６５内には、「ｈａｓ＿ｓｕｂｇｒｏｕｐ」を用いて、２つの集合（ｔｇ１１，ｔｇ１２）を下位集合として定義する階層化データ６６が追記されている。
【００８６】
また、メタチャンク６５内には、上位集合（ｔｇ１９）の値が「Ｔｈｉｓ  ｉｓ」であることを示すコード文６８が追加されている。この「Ｔｈｉｓ  ｉｓ」は、下位集合（ｔｇ１１）の値である「Ｔｈｉｓ」と、下位集合（ｔｇ１２）の値である「ｉｓ」を結合してなる文字列である。
【００８７】
その結果、図２０に示すように、ＩＤ＝０１−０９をストローク要素とする集合（ｔｇ１９）に対して、メタ情報として「種類：テキスト行」が付与されるとともに、メタ情報として「値：Ｔｈｉｓ  ｉｓ」及び「サブグループ：ｔｇ１１，ｔｇ１２」が自動的に付与される。本図の例では、値が「なし」である場合に「Ｔｈｉｓ  ｉｓ」のメタ情報を自動的に付与しているが、ユーザの意向に従ってメタ情報を付与しなくてもよい。
【００８８】
このように、データ生成部３８は、第１集合（ｔｇ１９）と第２集合（ｔｇ１１，ｔｇ１２）の間に包含関係があると判定された場合、第２集合の識別コード（ｔｇ１１，ｔｇ１２）を参照する態様で、第１集合のメタチャンク６５を生成してもよい。この記述例によっても、インクデータ６０の生成時に、包含関係を有するメタチャンク６３−６５同士を対応付けることができる。
【００８９】
＜変形例による効果＞
以上のように、インクデータ生成装置１０は、ストロークの集合毎のメタ情報を記述するメタデータ６２を含むインクデータ６０を生成する装置であって、ストロークの集合に属するストローク要素を示す集合データ（新規集合データ４２、既存集合データ４４）を集合毎に取得するデータ取得部（第１取得部３０、第２取得部３２）と、取得された集合毎の集合データに基づいて、複数の集合間の包含関係を示すメタデータ６２を含むインクデータ６０を出力するデータ出力部（データ生成部３８）を備える。
【００９０】
あるいは、このインクデータ生成方法及びプログラムによれば、１つ又は複数のプロセッサ（例えば、ホストプロセッサ１８）が、ストロークの集合に属するストローク要素を示す集合データを集合毎に取得する取得ステップ（図４のＳ２、図１１のＳ７）と、取得された集合毎の集合データに基づいて、複数の集合間の包含関係を示すメタデータ６２を含むインクデータ６０を出力する出力ステップ（図１１のＳ１２）を実行する。
【００９１】
このように構成したので、出力されたメタデータ６２の内容を解析することでストロークの集合同士の包含関係を把握可能となり、この包含関係を考慮したメタ情報の様々な処理、具体的には、編集支援や自動編集などを行うことができる。これにより、メタデータ６２の出力時又は出力後におけるインクデータ６０の取扱性を高めることができる。
【００９２】
また、データ出力部は、集合の包含関係を示すデータ構造によってセマンティクス属性を記述するメタチャンク６５を含むメタデータを出力してもよい。
【符号の説明】
【００９３】
１０  インクデータ生成装置、１２  タッチパネルディスプレイ、１８  ホストプロセッサ、２０  メモリ、２８  ＵＩ部、３０  第１取得部、３２  第２取得部、３４  属性推定部、３６  集合判定部、３８  データ生成部（データ出力部）、４０  描画処理部、４２  新規集合データ（第１集合データ）、４４  既存集合データ（第２集合データ）、５０，６０  インクデータ、５１，６１  ストロークデータ、５２（Ａ／Ｂ／Ｃ／Ｄ），６２  メタデータ、５３，５４，６５  メタチャンク（第２メタデータ）、５５−５８，６３，６４  メタチャンク（第１メタデータ）。
【図１】
0006918252.tif 000002
【図２】
0006918252.tif 000003
【図３】
0006918252.tif 000004
【図４】
0006918252.tif 000005
【図５】
0006918252.tif 000006
【図６Ａ】
0006918252.tif 000007
【図６Ｂ】
0006918252.tif 000008
【図７Ａ】
0006918252.tif 000009
【図７Ｂ】
0006918252.tif 000010
【図８】
0006918252.tif 000011
【図９】
0006918252.tif 000012
【図１０】
0006918252.tif 000013
【図１１】
0006918252.tif 000014
【図１２】
0006918252.tif 000015
【図１３】
0006918252.tif 000016
【図１４】
0006918252.tif 000017
【図１５】
0006918252.tif 000018
【図１６】
0006918252.tif 000019
【図１７】
0006918252.tif 000020
【図１８】
0006918252.tif 000021
【図１９】
0006918252.tif 000022
【図２０】
0006918252.tif 000023