入力データ
本セクションでは、筆跡認識を行うアプリケーション用に生の入力データを保存および維持する仕組みを明示します。 これは、生の入力データソース設定と生の入力データを保存する2つのデータレポジトリを使用して実現されます。
- InputContextレポジトリ
- SensorDataレポジトリ

図1:インクセンサーチャンネルの概要
SensorData
SensorData Repositoryは、一連のSensorDataインスタンスを保持するデータレポジトリです。
データフレーム構造は、データ点、リサンプリング情報、指紋やメタデータからの入力ソースなど、1つ以上のオンボードデバイスセンサーによって生成され た一連の生の入力データシーケンスを示します。
メモ:
- SensorDataは本ドキュメント内では「生の入力データフレーム」とも呼ばれます。
- SensorDataインスタンスは、SensorDataレポジトリに追加された時点で変更不可とみなされます。
- SensorDataインスタンスは、 encodingに応じてprotobuf message SensorData.としてシリアル化されます。
- SensorDataレポジトリは、反復するメッセージフィールドInputData.sensorDataのprotobufメッセージInputDataを使用して、下位のSensorDataインスタンスの集合をシリアル化します。
Input Context
InputContext Repositoryは、生の入力データフレームの作成元に関する情報を保存するデータレポジトリであり、正確な入力ソースを一意に特定することができます。 このレポジトリはデバイス自体、環境、および各データ点のオンボードデバイスセンサーに関する情報を保存します。
このレポジトリは次のデータ集合を保持します。
- inkInputProviders - InkInputProviderインスタンスの集合
- inputDevices - InputDeviceインスタンスの集合
- environments - Environmentインスタンスの集合
- sensorContexts - SensorContextインスタンスの集合
- inputContexts - InputContextインスタンスの集合
InkInputProvider
InkInputProviderという用語は一般的な入力データソースを表し、これによってデータの生成方法(タッチ入力、マウス、スタイラス、ハードウェアコントローラの使用など)が特定されます。
メモ:
InkInputProviderインスタンスは、protobuf message InkInputProviderを使用してシリアル化されます。
Input Device
InputDeviceという用語は、センサーデータが作成されたハードウェアデバイス(タッチ対応モバイル機器、タッチ対応モニター、デジタイザなど)を表します。
メモ:
- InputDeviceインスタンスは、InputContextレポジトリに追加された時点で変更不可とみなされます。 InputDevice識別子は、InkModelの範囲で一意であり、MD5ハッシュベースのユニークID生成アルゴリズムに基づき、「InputDevice」タグと次の要素を使用して自動生成されます。
- InputDevice.properties
InputDeviceインスタンスは、protobuf message InputDeviceを使用してシリアル化されます。
Environment
Environmentという用語は、センサーデータが作成された仮想環境(オペレーティングシステムなど)を表します。
メモ:
- Environmentインスタンスは、InputContextレポジトリに追加された時点で変更不可とみなされます。 Environment識別子は、InkModelの範囲で一意であり、MD5ハッシュベースのユニークID生成アルゴリズムに基づき、「Environment」タグと次の要素を使用して自動生成されます。
- Environment.properties
Environmentインスタンスは、protobuf message Environmentを使用してシリアル化されます。
SensorContext
SensorContextは、デジタルインク入力を取得するセンサチャンネルコンテキストの一意の組み合わせを定義します。 そのような目的のため、SensorContextインスタンスはSensorChannelsContextインスタンスのリストを保持します。
メモ: SensorContextインスタンスは、InputContextレポジトリに追加された時点で変更不可とみなされます。 SensorContext識別子は、InkModelの範囲で一意であり、MD5-hashベースのユニークID生成アルゴリズムに基づき、"SensorContext"タグと次の要素を使用して自動生成されます。
- 現在のSensorContext内に含まれるSensorChannelsContextインスタンスの識別子 リスト
SensorContextインスタンスは、protobuf message SensorContextを使用してシリアル化されます。
SensorChannelsContext
SensorChannelsContextという用語は、次の一意の組み合わせとして定義されます。
- InkInputProviderインスタンス
- InputDeviceインスタンス
- (SensorChannelインスタンスの集合を保持することによる)センサーチャンネル定義のリスト
メモ:
SensorChannelsContextインスタンスは、InputContextレポジトリに追加された時点で変更不可とみなされます。 SensorChannelsContext識別子は、InkModelの範囲で一意であり、MD5-hashベースのユニークID生成アルゴリズムに基づき、"SensorChannelsContext"タグと次の要素を使用して自動生成されます。
- InkInputProviderインスタンスの識別子
- InputDeviceインスタンスの識別子
- 現在のSensorChannelsContext内に含まれるSensorChannelインスタンスの識別子リスト
SensorChannelsContextインスタンスは、protobuf message SensorChannelsContextを使用してシリアル化されます。
SensorChannel
SensorChannelは、次の属性を 有する一般的なセンサーチャンネル定義を表します。
- type - センサーチャンネルのタイプを一意に識別するURI
- metric - SIメートル法に準拠したデータタイプ
- resolution - 保存データの値を指定されたSIメートル法に換算する場合に使用される係数乗算値(10の累乗)
- min、max - 通知された値の範囲の下限と上限
- precision - 浮動小数点値を通知する際のセンサの精度(整数値として定義され、シリアル化/非シリアル化の段階で10の累乗として使用されます)
図1(上)では、インクデバイスで使用可能な既知のセンサーチャンネルを明示しています。 入力デバイスの傾斜角を表すため、図2では方位角 (OA) と仰角 (OE) を使用しています。

図2:方位角と仰角で表した傾斜角
図3は回転角(OR)を示しています。

図3:ペン軸を中心としたペンの回転
メモ:
SensorChannelインスタンスは、InputContextレポジトリに追加された時点で変更不可とみなされます。 SensorChannel識別子は、InkModelの範囲で一意であり、MD5ハッシュベースのユニークID生成アルゴリズムに基づき、"SensorChannel"