Universal Ink Data Format
Universal Ink Model はProtocol Buffers v3 messageとしてシリアル化され、RIFF container.内でラッピングされます。 以下のセクションでは、このコンテナと protobuf のシリアル化スキームについて説明します。
RIFF Container
Universal Ink Model (UIM)は@@@内の RIFF container コンテナへとシリアル化されます。RIFF chunk UIM3. このチャンクには 2 つのサブチャンク、すなわち HEAD と DATA が含まれます。 HEAD チャンクには現在の仕様バージョンが含まれています。 このバージョンは 3 バイトを使用してエンコードされ、[major-version]-[minor-version]-[patch-version] のように定義されます。
インクモデルはセクション 8.2「Protocol Buffers のシリアル化スキーム」に記載されている Protocol Buffers メッセージとしてシリアル化され、DATA チャンクに格納されます。

図 1:RIFF のダイアグラム
インクツリ
インクツリーは汎用的なノード構造で構築されます。
ツリーを構築する場合、ツリー内部の深さはdepth属性によって示されます。
図 3に示すように、ツリー構造のシリアル化では、深さ優先の前順序ツリーシリアル化が適用されます。
それぞれのノードには、サブジェクトの識別子としてのセマンティックステートメントに関連のある一意の識別子idが付いています。
index属性はパスまたはセンサーデータインデックスに関連しています。
groupBoundingBoxはオプションで、視覚的デバッグを容易にしたり、クリック可能なオプションの関連領域をハイライト表示したりできます。
属性chunkFromIndexおよびchunkToIndexは、ノードのtypeがCHUNKである場合にのみ、サブインデックス化の対象となります。

図 2:赤で示した深さ優先のツリー順序:F、B、A、D、C、E、G、I、H