Quantity Node は物理量、数値、通貨、リテラル等を表現する可変長 Node タイプである。

特性説明
可変長4~Nワード(値のサイズに応じて)
単位明示SI 基本/誘導 + 非SI(通貨、時間等)
スケール対応10の累乗で接頭辞を表現
特殊リテラル時間(timestamp)、文字列(UTF-16)、色(RGBA)
TID は末尾Node 特性(エンティティと一貫性)

用途: トリプルエッジの Object、Verb Edge の参加者、イベント6の参加者、エンティティの名前/ラベル、時間表現等。

パケット構造

1st WORD (16ビット)
┌────────────────────┬────────────────────┐
│      Prefix        │       Unit         │
│      10bit         │       6bit         │
└────────────────────┴────────────────────┘

2nd WORD (16ビット)
┌──────┬──────┬──────┬────────────────────┐
│ Sign │ Size │ Type │      Scale         │
│ 1bit │ 2bit │ 1bit │       4bit         │
├──────┴──────┴──────┴────────────────────┤
│              Reserved (8bit)            │
└─────────────────────────────────────────┘

3rd+ WORD: Value (可変、Sizeに応じて1/2/4ワード)

Last WORD (16ビット)
┌─────────────────────────────────────────┐
│                  TID                    │
│                 16bit                   │
└─────────────────────────────────────────┘
フィールドビットサイズ説明
Prefix1-10100001 000 010 (Quantity Node)
Unit11-16664種の単位コード
Sign1710=正数, 1=負数
Size18-192Value ワード数
Type2010=整数, 1=浮動小数点
Scale21-24410の累乗(オフセット8)
Reserved25-328予約(通貨時は通貨コード)

Size別パケットサイズ

SizeValue ワード総ワード
001 (16ビット)4
012 (32ビット)5
104 (64ビット)7

Unit コード(6ビット = 64種)

SI 基本単位(0x00~0x06)

コード単位記号物理量
0x00meterm長さ
0x01kilogramkg質量
0x02seconds時間
0x03ampereA電流
0x04kelvinK温度
0x05molemol物質量
0x06candelacd光度

SI 誘導単位(0x07~0x1C)

コード単位記号物理量
0x07hertzHz周波数
0x08newtonN
0x09pascalPa圧力
0x0AjouleJエネルギー
0x0BwattW仕事率
0x0CcoulombC電荷量
0x0DvoltV電圧
0x0EfaradF電気容量
0x0FohmΩ抵抗
0x10siemensS導電率
0x11weberWb磁束
0x12teslaT磁場
0x13henryHインダクタンス
0x14celsius°C温度
0x15lumenlm光束
0x16luxlx照度
0x17becquerelBq放射能
0x18grayGy吸収線量
0x19sievertSv線量当量
0x1Akatalkat触媒活性
0x1Bradianrad平面角
0x1Csteradiansr立体角

非SI単位(0x20~0x2F)

コード単位用途
0x20CURRENCY通貨(通貨コード拡張)
0x21percent%(比率)
0x22degree°(角度)
0x23~0x28minute~year時間単位
0x29bit情報量
0x2Abyte情報量
0x2B~0x2FCOUNT~INDEX無単位数値

特殊リテラル(0x30~0x3F)

コードタイプPayload用途
0x30TIMESTAMP_SEC2/4ワードUnix timestamp(秒)
0x31TIMESTAMP_MS4ワードUnix timestamp(ミリ秒)
0x32UTF162+NワードUTF-16 文字列
0x33RGBA2ワード色(32ビット)

Scale(4ビット)

10の累乗。オフセット8適用。計算: 実際値 = Value × 10^(Scale - 8)

コード接頭辞コード接頭辞
000010⁻⁸-100010⁰(基本)-
001010⁻⁶μ100110¹da
010110⁻³m101110³k
011010⁻²c111010⁶M

通貨拡張(Unit = 0x20)

通貨(CURRENCY)の場合、Reserved 8ビットを通貨コードとして使用する。

コード通貨ISOコード通貨ISO
0x00米ドルUSD0x05韓国ウォンKRW
0x01ユーロEUR0x06スイスフランCHF
0x02日本円JPY0x07豪ドルAUD
0x03英ポンドGBP0x08カナダドルCAD
0x04中国元CNY0x80BitcoinBTC

“100kg” → 4ワード

1st: [Prefix] + [0x01(kg)]
2nd: +, 1ワード, int, ×1     → 0x0800
3rd: 0x0064 (100)
4th: TID
解釈: +100 × 10⁰ kg = 100kg

“$2,500,000” → 4ワード(スケール活用)

1st: [Prefix] + [0x20(CURRENCY)]
2nd: +, 1ワード, int, ×10³, USD  → 0x0B00
3rd: 0x09C4 (2500)
4th: TID
解釈: +2500 × 10³ USD = $2,500,000