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