GEULはウィキデータを否定しない。ウィキデータの上に立つ。


辞書なしに言語は作れない

言語には語彙が必要だ。

韓国語には韓国語辞典がある。 英語には英語辞典がある。 プログラミング言語には標準ライブラリがある。

人工言語も同じだ。 エンティティのリスト、関係のリスト、属性のリスト。 「サムスン電子」はこの言語でどのコードか。 「首都(capital)」という関係はどのコードか。 語彙がなければ文は書けない。

この語彙をどう作るか。 二つの方法がある。

ゼロから作る。 あるいは、既にあるものを使う。


ゼロから作る:CYCの教訓

CYCプロジェクトは1984年に始まった。

汎用的な常識知識を形式化して格納するという目標。 オントロジーをゼロから設計した。 概念を定義し、関係を定義し、規則を定義した。 専門家が手作業で入力した。

30年が過ぎた。 数百万の規則が入力された。

しかし、世界の知識をカバーするには遠く及ばなかった。 ドメインごとに別のオントロジーを設計しなければならなかった。 ドメイン間の一貫性を保つことが困難だった。 新しい概念が登場するたびにオントロジーを修正する必要があった。 修正が既存の規則と衝突するケースが頻繁だった。

CYCが証明したのは可能性ではなく限界だった。 少数の専門家が世界のオントロジーを設計するやり方は、 規模が大きくなると維持不可能になる。


既にあるもの:ウィキデータ

ウィキデータ(Wikidata)は2012年に始まった。

ウィキメディア財団が運営する構造化知識ベース。 誰でも編集できる。 2024年時点で1億以上のエンティティ。 1万以上の属性。 数十億の記述。 300以上の言語でラベル付け。

CYCが専門家チームで30年かけて達成できなかった規模を、 ウィキデータはコミュニティで10年で達成した。

ウィキデータが持つものを見よう。

エンティティ識別子。 Q-ID。サムスン電子はQ20718。ソウルはQ8684。李舜臣はQ217300。世界で唯一の識別子。言語に依存しない。

属性識別子。 P-ID。「本社所在地」はP159。「設立日」はP571。「人口」はP1082。関係と属性が一意に識別される。

階層構造。 P31(instance of)とP279(subclass of)でタイプ階層が形成される。「ソウル → 都市 → 人間の居住地 → 地理的実体。」世界の分類体系がこの二つの属性で表現される。

多言語ラベル。 Q20718の韓国語ラベルは「삼성전자」、英語ラベルは「Samsung Electronics」、日本語ラベルは「サムスン電子」。識別子は一つ、名前は言語ごとに異なる。

コミュニティによる検証。 数百万の編集者。荒らし検知。出典要求。完璧ではないが、少数の専門家チームよりスケーラブルだ。

これをゼロから作る理由はない。


GEULの語彙はウィキデータから来る

GEULのSIDX(Semantic-aligned Index)は64ビットの意味整列識別子だ。 ビット自体に意味情報が込められている。 上位ビットを見るだけで「これが人か、場所か、組織か」がわかる。

SIDXのコードブック——どのビットパターンがどの意味を持つか——はウィキデータから抽出される。

プロセスはこうだ。

ステップ1:タイプ抽出。 ウィキデータからP31(instance of)の目的語として使われたすべてのQ-IDを抽出する。 これが「タイプ」のリストになる。 「人間(Q5)」「都市(Q515)」「国家(Q6256)」「企業(Q4830453)」…… 各タイプが何回使われたか——インスタンス数——を集計する。

ステップ2:階層構築。 タイプ間のP279(subclass of)関係を抽出する。 「都市 → 人間の居住地 → 地理的実体 → 実体。」 これがタイプのツリー構造を形成する。 ルートノード、リーフノード、中間ノードを識別する。 多重継承——一つのタイプが複数の上位タイプに属するケース——を検出し処理する。

ステップ3:ビット割り当て。 ツリーの構造がビットパターンのプレフィックス関係を決定する。 同じ上位タイプに属する下位タイプは同じプレフィックスを共有する。 「都市」と「町」は「人間の居住地」のプレフィックスを共有する。

インスタンス数がビット長に影響する。 よく使われるタイプはより効率的なコードを受け取る。 ハフマン符号化と同じ原理。高頻度のものに短いコードを。


ウィキデータが提供するもの

このプロセスでウィキデータが提供するのは三つだ。

分類体系。 「世界にどんな種類のものがあるか」への答え。 CYCはこれを専門家チームが設計した。 GEULはウィキデータから抽出する。 数百万の編集者が10年かけて合意した分類体系を、 ビットツリーに変換する。

頻度統計。 「どの種類のものが世界にどれだけあるか」への答え。 人間エンティティが900万、小惑星が100万なら、 「人間」というタイプは「小惑星」より効率的なコードを受け取るべきだ。 実際の使用頻度がコード設計を決定する。

識別子マッピング。 ウィキデータのQ-IDとGEULのSIDXの間のマッピング。 Q20718(サムスン電子)がSIDXでどのビットパターンに該当するか。 このマッピングがあればウィキデータの知識をGEULに変換でき、 GEULの記述をウィキデータに逆変換できる。


ウィキデータが提供しないもの

ウィキデータは辞書だ。辞書は言語ではない。

辞書は単語のリストを提供する。 言語は単語で文を作る文法を提供する。

ウィキデータが提供しないものは、GEULが追加する部分だ。

事実から主張へ。 ウィキデータの基本単位は事実(Fact)だ。 「ソウルの人口は974万である。」 真か偽かのどちらかだ。

GEULの基本単位は主張(Claim)だ。 「Aによれば、ソウルの人口は約974万である。(確信度0.9、時点2023年)」 誰が、どの程度確実に、いつ時点で主張しているかが記述に含まれる。 この違いはなぜ事実ではなく主張なのかで詳しく論じる。

動詞限定子。 ウィキデータには動詞の微妙さを表現する場がない。 「李舜臣は鳴梁海戦で勝利した」において、 時制、相、証拠性、法、確信度はどこにあるか。 ウィキデータではこれらはクオリファイアで部分的に表現されるが、 体系的な動詞限定の仕組みはない。

GEULには28ビットの動詞限定子システムがある。 13の次元——時制、相、極性、証拠性、法、意図性、確信性など——が、すべての記述に構造的に組み込まれる。

16ビット圧縮。 ウィキデータの表現はコンテキストウィンドウのために設計されていない。 JSON-LD、RDF、SPARQL。 機械可読だが、トークン効率が良くない。

GEULは16ビットワード単位で設計されている。 LLMのトークンと1:1マッピング。 コンテキストウィンドウの有限性を前提とした表現体系だ。 これはなぜMD/JSON/XMLではだめなのかで既に論じた。

コンテキストパイプライン。 ウィキデータはリポジトリだ。GEULはパイプラインの一部だ。 明確化、検証、フィルタリング、整合性検査、探索——このシリーズで論じたすべてのものが、GEULの構造化表現の上で動作する。 ウィキデータにはこのパイプラインがない。 ある必要もない。ウィキデータの目的は異なるからだ。


辞書と言語の関係

まとめるとこうだ。

ウィキデータは世界の語彙だ。 どんなエンティティが存在するか、 どんな関係が存在するか、 どんなタイプがあり、それらがどう分類されるか。 数百万人が10年かけて築いたものだ。

GEULはこの語彙の上に文法を載せる。 語彙の分類体系 → SIDXのビットツリー。 語彙の頻度統計 → ビット割り当ての優先順位。 語彙の識別子 → SIDXとのマッピング。

そして語彙にないものを追加する。 主張の構造。動詞の限定。トークンレベルの圧縮。コンテキストパイプライン。

ウィキデータなしでGEULを作れるか。 作れる。CYCのようにゼロからオントロジーを設計すればいい。 しかしそれは30年前に試みられ、結果は出ている。

ウィキデータがあるから、GEULはオントロジーを設計しない。 既に存在する合意を変換する。


要約

人工言語には語彙が必要だ。 語彙をゼロから作ることはCYCが試み、30年がその限界を証明した。

ウィキデータは世界の語彙だ。1億以上のエンティティ、1万以上の属性、数十億の記述を持つ。 数百万の編集者が10年かけて築いたものだ。

GEULのSIDXコードブックはウィキデータから抽出される。 P31のインスタンス頻度がビット割り当てを決定し、 P279の階層構造がビットツリーの骨格を形成する。

ウィキデータは辞書であり、GEULは言語だ。 辞書は単語を提供し、言語は文法を提供する。 GEULはウィキデータの語彙の上に主張の構造、動詞限定、16ビット圧縮、コンテキストパイプラインを載せる。

GEULはウィキデータを否定しない。 ウィキデータの上に立つ。