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 は終結マーカーとして予約