GEUL не отвергает Викиданные. Он стоит на них.
Без словаря язык не создать
Любому языку нужен словарный запас.
У корейского есть корейский словарь. У английского есть английский словарь. У языков программирования есть стандартные библиотеки.
То же относится и к искусственному языку. Список сущностей, список отношений, список свойств. Какой код обозначает «Samsung Electronics» в этом языке? Какой код обозначает отношение «столица»? Без словарного запаса невозможно написать предложение.
Как создать этот словарный запас? Есть два пути.
Построить с нуля. Или использовать то, что уже существует.
Построить с нуля: урок CYC
Проект CYC начался в 1984 году.
Его целью было формализовать и сохранить общие знания здравого смысла. Онтология проектировалась с нуля. Определялись понятия, определялись отношения, определялись правила. Эксперты вводили их вручную.
Прошло тридцать лет. Были введены миллионы правил.
Но этого было катастрофически недостаточно для охвата мирового знания. Для каждой предметной области требовалось проектировать отдельную онтологию. Поддерживать согласованность между областями было сложно. При появлении каждого нового понятия онтологию приходилось пересматривать. Пересмотры часто вступали в противоречие с существующими правилами.
CYC продемонстрировал не свой потенциал, а свои пределы. Проектирование мировой онтологии небольшой группой экспертов становится неподдерживаемым при масштабировании.
То, что уже существует: Викиданные
Викиданные (Wikidata) были запущены в 2012 году.
Структурированная база знаний, управляемая фондом «Викимедиа». Редактировать может каждый. По состоянию на 2024 год — более 100 миллионов сущностей. Более 10 000 свойств. Миллиарды утверждений. Метки на более чем 300 языках.
Масштаб, которого CYC не смог достичь за 30 лет с командой экспертов, Викиданные достигли за 10 лет силами сообщества.
Посмотрим, что предоставляют Викиданные.
Идентификаторы сущностей. Q-ID. Samsung Electronics — это Q20718. Сеул — Q8684. Ли Сунсин — Q217300. Глобально уникальные идентификаторы. Не зависят от языка.
Идентификаторы свойств. P-ID. «Расположение штаб-квартиры» — P159. «Дата основания» — P571. «Население» — P1082. Отношения и свойства идентифицируются уникально.
Иерархическая структура. P31 (instance of) и P279 (subclass of) формируют иерархию типов. «Сеул → город → населённый пункт → географический объект». Мировая система классификации выражается через эти два свойства.
Многоязычные метки. Корейская метка Q20718 — «삼성전자», английская — «Samsung Electronics», японская — «サムスン電子». Один идентификатор, разные названия на каждом языке.
Проверка сообществом. Миллионы редакторов. Обнаружение вандализма. Требование источников. Не идеально, но масштабируется лучше, чем небольшая группа экспертов.
Нет причин строить всё это с нуля.
Словарный запас GEUL берётся из Викиданных
SIDX (Semantic-aligned Index) в GEUL — это 64-битный семантически выровненный идентификатор. Смысл закодирован в самих битах. Достаточно посмотреть на старшие биты, чтобы понять, является ли объект человеком, местом или организацией.
Кодовая книга SIDX — какой битовый шаблон соответствует какому значению — извлекается из Викиданных.
Процесс выглядит так.
Шаг 1: Извлечение типов. Из Викиданных извлекаются все Q-ID, используемые как объекты P31 (instance of). Это даёт список «типов». «Человек (Q5)», «город (Q515)», «государство (Q6256)», «предприятие (Q4830453)»… Подсчитывается, сколько раз используется каждый тип — число экземпляров.
Шаг 2: Построение иерархии. Извлекаются отношения P279 (subclass of) между типами. «Город → населённый пункт → географический объект → объект». Это формирует древовидную структуру типов. Определяются корневые узлы, листовые узлы и промежуточные узлы. Обнаруживается и обрабатывается множественное наследование — случаи, когда один тип принадлежит нескольким родительским типам.
Шаг 3: Назначение битов. Структура дерева определяет префиксные отношения битовых шаблонов. Подтипы одного родителя разделяют один и тот же префикс. «Город» и «посёлок» разделяют префикс «населённого пункта».
Число экземпляров влияет на длину кода в битах. Часто используемые типы получают более эффективные коды. Тот же принцип, что и в кодировании Хаффмана: более короткие коды для более высоких частот.
Что предоставляют Викиданные
В этом процессе Викиданные предоставляют три вещи.
Систему классификации. Ответ на вопрос «Какие виды вещей существуют в мире?» CYC поручал это команде экспертов. GEUL извлекает это из Викиданных. Система классификации, которую миллионы редакторов строили 10 лет, преобразуется в битовое дерево.
Статистику частотности. Ответ на вопрос «Сколько вещей каждого вида есть в мире?» Если существует 9 миллионов сущностей-людей и 1 миллион астероидов, тип «человек» должен получить более эффективный код, чем «астероид». Реальная частота использования определяет проектирование кодов.
Сопоставление идентификаторов. Соответствие между Q-ID Викиданных и SIDX GEUL. Какой битовый шаблон в SIDX соответствует Q20718 (Samsung Electronics)? С этим сопоставлением знания Викиданных можно конвертировать в GEUL, а утверждения GEUL — обратно в Викиданные.
Что Викиданные не предоставляют
Викиданные — это словарь. Словарь — это не язык.
Словарь предоставляет список слов. Язык предоставляет грамматику для составления предложений из слов.
То, чего нет в Викиданных, — это то, что добавляет GEUL.
От фактов к утверждениям. Базовая единица Викиданных — факт (Fact). «Население Сеула — 9,74 миллиона». Либо истинно, либо ложно.
Базовая единица GEUL — утверждение (Claim). «По данным A, население Сеула — приблизительно 9,74 миллиона. (уверенность 0,9, по состоянию на 2023 год)» Кто утверждает, с какой степенью уверенности и на какую дату — всё это встроено в высказывание. Эта разница подробно обсуждается в Почему утверждения, а не факты.
Глагольные квалификаторы. В Викиданных нет места для выражения нюансов глаголов. В предложении «Ли Сунсин одержал победу в битве при Мёнъняне» где время, вид, эвиденциальность, наклонение и степень уверенности? В Викиданных это частично выражается через квалификаторы, но систематической системы глагольной квалификации нет.
У GEUL есть 28-битная система глагольных квалификаторов. Тринадцать измерений — время, вид, полярность, эвиденциальность, наклонение, волитивность, уверенность и другие — структурно встроены в каждое высказывание.
16-битное сжатие. Представление Викиданных не проектировалось для контекстных окон. JSON-LD, RDF, SPARQL. Машиночитаемо, но не эффективно по токенам.
GEUL спроектирован в единицах 16-битных слов. Взаимно однозначное соответствие с токенами LLM. Система представления, построенная на предпосылке конечности контекстных окон. Это уже обсуждалось в Почему не MD/JSON/XML.
Контекстный конвейер. Викиданные — это хранилище. GEUL — часть конвейера. Уточнение, валидация, фильтрация, проверка согласованности, исследование — всё, что обсуждалось в этой серии, работает поверх структурированного представления GEUL. У Викиданных нет этого конвейера. И он не нужен. У Викиданных другая цель.
Соотношение словаря и языка
Подведём итог.
Викиданные — это словарный запас мира. Какие сущности существуют, какие отношения существуют, какие типы существуют и как они классифицированы. Миллионы людей строили это 10 лет.
GEUL строит грамматику поверх этого словарного запаса. Система классификации словаря → битовое дерево SIDX. Статистика частотности словаря → приоритеты назначения битов. Идентификаторы словаря → сопоставление с SIDX.
И добавляет то, чего нет в словаре. Структура утверждений. Глагольная квалификация. Сжатие на уровне токенов. Контекстный конвейер.
Можно ли создать GEUL без Викиданных? Можно. Спроектировать онтологию с нуля, как CYC. Но это было испробовано 30 лет назад, и результаты говорят сами за себя.
Поскольку Викиданные существуют, GEUL не проектирует онтологию. Он преобразует существующий консенсус.
Резюме
Искусственному языку нужен словарный запас. Попытка создать его с нуля была предпринята CYC, и 30 лет доказали пределы этого подхода.
Викиданные — это словарный запас мира: более 100 миллионов сущностей, более 10 000 свойств, миллиарды утверждений. Их создавали миллионы редакторов на протяжении 10 лет.
Кодовая книга SIDX в GEUL извлекается из Викиданных. Частоты экземпляров P31 определяют назначение битов, а иерархия P279 формирует скелет битового дерева.
Викиданные — это словарь, а GEUL — язык. Словарь предоставляет слова, язык предоставляет грамматику. GEUL строит структуру утверждений, глагольную квалификацию, 16-битное сжатие и контекстный конвейер поверх словарного запаса Викиданных.
GEUL не отвергает Викиданные. Он стоит на них.