Skip to content

geul-org/geul-quantities

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

GEUL Quantities

Quantity Node 코드북 — SI 단위, 화폐, 스케일 팩터, 특수 리터럴을 인코딩하는 가변 길이 Node 구조.

Author: 박준우 (mail@parkjunwoo.com) License: MIT 명세 버전: v0.3


개요

Quantity Node는 물리량, 수치, 화폐, 리터럴 등을 표현하는 가변 길이 Node 타입이다.

  • 가변 길이: 4~N워드 (값 크기에 따라)
  • 단위 명시: SI 기본/유도 + 비SI (화폐, 시간 등)
  • 스케일 지원: 10의 거듭제곱으로 접두어 표현
  • 특수 리터럴: 시간(timestamp), 문자열(UTF-16), 색상(RGBA)
  • TID 마지막: Node 특성 (Entity와 일관성)

용도: Triple Edge의 Object, Verb Edge의 참여자, Event6의 참여자, Entity의 이름/라벨, 시간 표현 등.


패킷 구조

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                   │
└─────────────────────────────────────────┘
Size Value 워드 총 워드
00 1 (16비트) 4
01 2 (32비트) 5
10 4 (64비트) 7

Unit 코드 (6비트 = 64개)

SI 기본 단위 (0x00~0x06)

코드 단위 기호 물리량
0x00 meter m 길이
0x01 kilogram kg 질량
0x02 second s 시간
0x03 ampere A 전류
0x04 kelvin K 온도
0x05 mole mol 물질량
0x06 candela cd 광도

SI 유도 단위 (0x07~0x1C)

코드 단위 기호 물리량
0x07 hertz Hz 주파수
0x08 newton N
0x09 pascal Pa 압력
0x0A joule J 에너지
0x0B watt W 일률
0x0C coulomb C 전하량
0x0D volt V 전압
0x0E farad F 전기용량
0x0F ohm Ω 저항
0x10 siemens S 전도율
0x11 weber Wb 자기선속
0x12 tesla T 자기장
0x13 henry H 인덕턴스
0x14 celsius °C 온도
0x15 lumen lm 광선속
0x16 lux lx 조도
0x17 becquerel Bq 방사능
0x18 gray Gy 흡수선량
0x19 sievert Sv 선량당량
0x1A katal kat 촉매활성
0x1B radian rad 평면각
0x1C steradian sr 입체각

비SI 단위 (0x20~0x2F)

코드 단위 용도
0x20 CURRENCY 화폐 (통화 코드 확장)
0x21 percent % (비율)
0x22 degree ° (각도)
0x23~0x28 minute~year 시간 단위
0x29 bit 정보량
0x2A byte 정보량
0x2B~0x2F COUNT~INDEX 무단위 수치

특수 리터럴 (0x30~0x3F)

코드 타입 Payload 용도
0x30 TIMESTAMP_SEC 2/4워드 Unix timestamp (초)
0x31 TIMESTAMP_MS 4워드 Unix timestamp (밀리초)
0x32 UTF16 2+N워드 UTF-16 문자열
0x33 RGBA 2워드 색상 (32비트)

Scale (4비트)

10의 거듭제곱. 오프셋 8 적용. 계산: 실제값 = Value × 10^(Scale - 8)

코드 접두어 코드 접두어
0000 10⁻⁸ - 1000 10⁰ (기본) -
0010 10⁻⁶ μ 1001 10¹ da
0101 10⁻³ m 1011 10³ k
0110 10⁻² c 1110 10⁶ M

화폐 확장 (Unit = 0x20)

화폐(CURRENCY)일 때 Reserved 8비트를 통화 코드로 사용.

주요 통화:

코드 통화 ISO 코드 통화 ISO
0x00 미국 달러 USD 0x05 한국 원 KRW
0x01 유로 EUR 0x06 스위스 프랑 CHF
0x02 일본 엔 JPY 0x07 호주 달러 AUD
0x03 영국 파운드 GBP 0x08 캐나다 달러 CAD
0x04 중국 위안 CNY 0x80 Bitcoin BTC

예시

"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

관련 레포

레포 관계
geul 상위 — 문법 명세 + SIDX 횡단 문서
geul-entity 형제 — Entity SIDX 48비트 코드북
geul-verb 형제 — 동사 SIDX 16비트 코드북

명세 참조

전체 명세: geul/docs/문법/Quantity Node.md

About

Quantity Node codebook (scaffold)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors