Group Edge는 복수의 Node를 하나의 그룹으로 묶어 표현하는 Edge 타입이다.

패킷 구조

1st WORD (16비트)
┌───────────────────────┬───────────┐
│        Prefix         │ GroupType │
│        13비트          │   3비트   │
└───────────────────────┴───────────┘
  [1100 000 111 000]       [TTT]

2nd WORD: Edge TID (16비트)
3rd+ WORD: 멤버 TID들 (가변)
마지막 WORD: 종결 마커 (0x0000)
필드비트설명
Prefix131100 000 111 000
GroupType3그룹 종류 (8개)
Edge TID16이 Edge의 고유 식별자
멤버 TID16×N그룹 멤버 참조
종결 마커160x0000

최소 4워드(멤버 1개), 일반 5~6워드(멤버 2~3개), 최대 제한 없음.

GroupType (3비트 = 8개)

코드타입의미멤버 수
000AND논리곱 (conjunction)2+
001OR논리합 (disjunction)2+
010XOR배타적 선택2+
011LIST순서 있는 목록1+
100SET순서 없는 집합1+
101RANGE범위 (시작~끝)정확히 2
110PAIR순서쌍정확히 2
111확장미래 확장-

GroupType 상세

AND

모든 멤버가 동시에 참여한다. 예: “철수 영희 민수가 회의했다”

OR

멤버 중 하나 이상이 해당한다 (inclusive or). 예: “커피 또는 차를 주문하세요”

XOR

멤버 중 정확히 하나만 해당한다 (exclusive or). 예: “합격 또는 불합격 (둘 중 하나)”

LIST

순서가 의미 있는 목록이다. 순위, 시퀀스에 사용한다. 예: “1등 철수, 2등 영희, 3등 민수”

SET

순서가 무의미한 집합이다. 멤버십만 중요하다. 예: “참석자: 철수, 영희, 민수”

RANGE

연속 범위로 사이 값을 포함한다. 멤버는 정확히 2개(시작, 끝). 예: “1부터 10까지”

PAIR

단순 순서쌍이다. 멤버는 정확히 2개. 좌표, key-value 등에 사용한다. 예: “좌표 (3, 5)”

RANGE vs PAIR

타입의미사이 값
RANGE연속 범위포함
PAIR단순 쌍없음

RANGE [1, 5] → 1, 2, 3, 4, 5 (사이 값 존재). PAIR [1, 5] → (1, 5) (두 값만).

예시

“철수와 영희가 만났다”

1. Entity Node: 철수 (TID=0x0001)
2. Entity Node: 영희 (TID=0x0002)
3. Group Edge: AND (TID=0x0100)
   1st: [1100 000 111 000] [000] = Prefix + AND
   2nd: [0x0100]                 = Edge TID
   3rd: [0x0001]                 = 철수
   4th: [0x0002]                 = 영희
   5th: [0x0000]                 = 종결

4. Verb Edge: meet
   Subject: 0x0100 (그룹 참조)

총: 5워드

“좌표 (3, 5)”

1. Quantity Node: 3 (TID=0x0001)
2. Quantity Node: 5 (TID=0x0002)
3. Group Edge: PAIR (TID=0x0100)
   1st: [1100 000 111 000] [110] = Prefix + PAIR
   2nd: [0x0100]
   3rd: [0x0001]                 = 첫 번째 (x)
   4th: [0x0002]                 = 두 번째 (y)
   5th: [0x0000]

총: 5워드

제약 조건

GroupType최소최대
AND / OR / XOR2
LIST / SET1
RANGE / PAIR22
  • 멤버 TID는 이미 선언된 Node/Edge를 참조해야 한다
  • 자기 참조(순환) 불가
  • TID=0x0000은 종결 마커로 예약