Input Data
This section defines a mechanism to store and maintain raw input data for applications with biometric capabilities. This is achieved using two data repositories for storing the raw input datasource configurations, as well as the raw input data:
- InputContext repository
- SensorData repository
Figure 1: Overview ink sensor channels.
SensorData
The SensorData Repository is a data repository, which holds a collection of SensorData instances.
A data-frame structure represents a collection of raw input data sequences, produced by one or more on-board device sensors, including data points, re-sampling information, and input sources from fingerprints and metadata.
Remarks:
- SensorData is also referred to as "raw input data-frame" within this documentation.
- Once a SensorData instance is added to the SensorData repository, it is considered immutable.
- The SensorData instance is serialized according to encoding as a protobuf message SensorData.
- The SensorData repository serializes its underlying collection of SensorData instances using the protobuf message InputData in the repeated message field InputData.sensorData.
Input Context
The InputContext Repository is a data repository responsible for storing information about where the raw input data-frame originates from, by allowing unique identification of the exact input source. The repository stores information about the device itself, the environment and the on-board device sensors for each data point.
The repository holds the following data collections:
- inkInputProviders - a collection of InkInputProvider instances
- inputDevices - a collection of InputDevice instances
- environments - a collection of Environment instances
- sensorContexts - a collection of SensorContext instances
- inputContexts - a collection of InputContext instances
InkInputProvider
The term InkInputProvider stands for the generic input data source - it identifies how the data has been generated (using touch input, mouse, stylus, hardware controller, etc).
Remarks:
An InkInputProvider instance is serialized using the protobuf message InkInputProvider.
Input Device
The term InputDevice stands for the hardware device, on which the sensor data has been produced (touch enabled mobile device, touch capable monitor, digitizer, etc).
Remarks: Once an InputDevice instance is added to the InputContext repository it is considered immutable. The InputDevice identifier is unique in the scope of the InkModel and is auto-generated based on the MD5-hash based Unique Identifier Generation Algorithm using tag "InputDevice" and the following components:
- InputDevice.properties
An InputDevice instance is serialized using the protobuf message InputDevice.
Environment
The term Environment stands for the virtual environment in which the sensor data has been produced (the operating system, etc).
Remarks:
Once an Environment instance is added to the InputContext repository it is considered immutable. The Environment identifier is unique in the scope of the InkModel and is auto-generated based on the MD5-hash based Unique Identifier Generation Algorithm using tag "Environment" and the following components:
- Environment.properties
An Environment instance is serialized using the protobuf message Environment.
SensorContext
The SensorContext defines a unique combination of sensor channel contexts used for capturing the digital ink input. For that purpose, a SensorContext instance holds a list of SensorChannelsContext instances.
Remarks: Once a SensorContext instance is added to the InputContext repository, it is considered immutable. The SensorContext identifier is unique in the scope of the InkModel and is auto-generated based on the MD5-hash based Unique Identifier Generation > Algorithm using tag "SensorContext" and the following components:
- List of the identifiers of the SensorChannelsContext instances contained within the current SensorContext
A SensorContext instance is serialized using the protobuf message SensorContext.
SensorChannelsContext
The term SensorChannelsContext is defined as a unique combination of:
- An InkInputProvider instance
- An InputDevice instance and
- A list of sensor channel definitions (by holding a collection of SensorChannel instances)
Remarks:
Once a SensorChannelsContext instance is added to the InputContext repository, it is considered immutable. The SensorChannelsContext identifier is unique in the scope of the InkModel and is auto-generated based on the MD5-hash based Unique Identifier Generation Algorithm using tag "SensorChannelsContext" and the following components:
- Identifier of the InkInputProvider instance
- Identifier of the InputDevice instance
- List of the identifiers of the SensorChannel instances contained within the current SensorChannelsContext
A SensorChannelsContext instance is serialized using the protobuf message SensorChannelsContext.
SensorChannel
The SensorChannel represents a generic sensor channel definition, which has the following properties:
- type - URI uniquely identifying the type of the sensor channel
- metric - The type of the data to the SI metric system
- resolution - A factor multiplication value (power of 10) used to convert the stored data values to the specified SI metric
- min, max - Lower and upper bounds of the reported values range
- precision - The precision of the sensor when reporting floating-point values (defined as an int value, used as a power of 10 during the serialization/deserialization phase)
Figure 1 (above) defines a set of known sensor channels available for ink devices. To represent the tilt angle of an Input Device, Figure 2 uses azimuth (OA) and elevation angle (OE).
Figure 2: Representation of tilt angle with azimuth and elevation angle.
Figure 3 shows the rotation angle (OR).
Figure 3: Rotation of the pen about the pen axis.
Remarks:
Once a SensorChannel instance is added to the InputContext repository, it is considered immutable. The SensorChannel identifier is unique in the scope of the InkModel and is auto-generated based on the MD5-hash based Unique Identifier Generation Algorithm using tag "SensorChannel" and the following components:
- Identifier of the InkInputProvider instance contained within the SensorChannelsContext, which holds the current SensorChannel
- Identifier of the InputDevice instance contained within the SensorChannelsContext, which holds the current SensorChannel type
- Metric - expressed as a string value according to the Protocol Buffers Serialization Scheme, protobuf enumeration message InkSensorMetricType
- Resolution
- Min, max
- Precision
A SensorChannel instance is serialized using the protobuf message SensorChannel.
Input Context
The InputContext is defined as a combination of an Environment instance and a SensorContext instance.
Remarks:
Once an InputContext instance is added to the InputContext repository, it is considered immutable. The InputContext identifier is unique in the scope of the InkModel and is auto-generated based on the MD5-hash based Unique Identifier Generation Algorithm using tag "InputContext" and the following components:
- Identifier of the Environment instance contained within the InputContext
- Identifier of the SensorContext instance contained within the InputContext An InputContext instance is serialized according to section 8.2 Protocol Buffers Serialization Scheme using the protobuf message InputContext.
The InputContext repository serializes its underlying data collections using the protobuf message InputContextData.