Нужны были глаголы.

Чтобы ИИ мог описывать мир, нужны глаголы. В предложении «Корейский адмирал Ли Сунсин построил корабль-черепаху» без «построил» нет предложения.

Для идентификации сущностей есть Wikidata. Ли Сунсин — это Q28090. Корабль-черепаха — это Q249845. Идентификация завершена.

Для глаголов аналога нет. У «строить» нет ID. Нет согласованного критерия, определяющего, имеют ли «строить», «изготавливать» и «производить» одинаковое или разное значение.

Любой проект, работающий с глаголами — будь то граф знаний, семантический поиск или проектирование структурированного языка — неизбежно сталкивается с этим вопросом: откуда взять систему глаголов?


Создать самостоятельно

Можно спроектировать список глаголов с нуля.

move, give, think, feel, say. Определить около 50 базовых глаголов и добавлять подчинённые. Под move: walk, run, crawl. Под give: donate, bestow, grant.

Возникают три проблемы.

Во-первых, пробелы. Когда человек перечисляет глаголы из головы, неизбежно что-то пропускается. Пропустит «адсорбировать», пропустит «размышлять», пропустит «смириться». В момент, когда пропущенный глагол понадобится, система ломается.

Во-вторых, отсутствие критериев. walk и stroll — это разные глаголы или варианты одного? При самостоятельном создании это решение зависит от интуиции проектировщика. А интуиция у каждого своя.

В-третьих, иерархия произвольна. Мы поместили walk под move, но walk может быть и подчинённым travel. Проектировщик решает, куда поместить. У этого решения нет объективного обоснования.

Самостоятельно созданная система глаголов выглядит идеальной в голове её создателя. Когда смотрит другой человек, реакция: «Почему классифицировано именно так?»


Наследие WordNet

Лексическая база данных английского языка, создание которой началось в Принстонском университете в 1985 году.

На протяжении 40 лет лингвисты группировали английские слова в единицы значения (synset) и связывали их иерархическими отношениями. Только глаголов — 13 767 synset. У каждого synset есть уникальный ID, определение и явно указанные связи с другими synset.

«donate» и «bestow» объединены в один synset. Это означает, что у них одинаковое значение. «donate» — это troponym слова «give». Это означает, что donate — конкретная форма give. «give» — это troponym слова «transfer». Это означает, что give — конкретная форма transfer.

Эта иерархия уже выстроена для 13 767 глаголов.

Без пробелов. Потому что лингвисты заполняли её 40 лет. С критериями. Потому что определения и связи synset явные. С обоснованной иерархией. Потому что отношения troponym основаны на лингвистическом анализе.


Словарь и грамматика — разные вещи

Если WordNet — это словарь глаголов, то как использовать эти глаголы — отдельный вопрос.

WordNet сообщает, что означает «give» и какова его связь с «donate». Но не сообщает структуру использования «give» в предложении — кто даёт, что даётся, кому даётся.

Это аналогично отношению с Wikidata. Wikidata сообщает, что Ли Сунсин — это Q28090. Но как построить предложение о Ли Сунсине — не задача Wikidata.

Словарь заимствуем, но грамматику создаём сами.

Из WordNet берём: ID synset, семантические определения и дерево иерархии troponym. Verb frame, структуры участников и синтаксические паттерны, которые WordNet тоже предоставляет, лучше проектировать каждому проекту самостоятельно. Потому что синтаксическая информация WordNet привязана к английскому языку, а семантическая система глагола и способ его использования — независимые вопросы.


От 13 767 до 10

Перечислять все 13 767 глаголов WordNet бессмысленно. Нужна структура.

Поднимаясь по дереву troponym WordNet, мы достигаем вершинных узлов, выше которых подняться нельзя. Корневые глаголы. Их 559.

Семантическая группировка 559 даёт 68 подпримитивов (sub-primitive). Дальнейшая группировка 68 даёт 10 примитивов (primitive).

13 767 глаголов → 559 корней → 68 подпримитивов → 10 примитивов

BE        — существование, обладание, местоположение
PERCEIVE  — восприятие, ощущение, обнаружение
FEEL      — эмоция, предпочтение, желание
THINK     — мышление, суждение, память
CHANGE    — изменение, начало, конец
CAUSE     — действие, создание, разрушение
MOVE      — перемещение, прибытие, уход
COMMUNICATE — речь, обозначение, согласие
TRANSFER  — передача, получение, обмен
SOCIAL    — сотрудничество, соревнование, принадлежность

Эти 10 — семантические примитивы человеческих глаголов. Не из интуиции одного человека, а из структуры 40-летнего накопления WordNet и 13 767 точек данных.

Эта четырёхуровневая иерархия — примитивы, подпримитивы, корни, отдельные глаголы — позволяет регулировать разрешение. В общем виде — 10 типов действий, в детальном — 13 767. Читаем на нужном уровне разрешения.


Расширение и сжатие

Если 13 767 недостаточно? Можно добавить новые глаголы. Многоязычные глаголы, неологизмы, специальные термины. Добавляются под соответствующий подпримитив. Существующая система не ломается.

Если 13 767 избыточно? Синонимичные synset можно объединить в один. Перенаправить donate на give. Данные, ранее записанные как donate, находят give. Тот же принцип, что HTTP 301.

Важна последовательность. Сначала включить всё, запустить на практике, посмотреть данные использования и только потом сокращать. Сокращение на бумаге без данных уничтожает необходимые различия.


За пределами: семантические атомы

13 767 глаголов WordNet — это список глаголов, названных людьми. Обширный, но не исчерпывающий.

«give» можно разложить дальше: CAUSE + HAVE + MOVE. Декомпозиция на семантические атомы (semantic primitive). Когда эта декомпозиция будет завершена, глаголы, отсутствующие в списке, можно будет выразить комбинацией атомов.

Если WordNet — стандартная библиотека, то система семантических атомов — компилятор. Подобно тому как компилятор может создавать функции, отсутствующие в стандартной библиотеке.

Это большая исследовательская задача, к которой стоит приступать после того, как система на основе WordNet заработает. Пока стандартной библиотеки достаточно.


Итог

Каждый проект, стремящийся построить систему глаголов, встречает один и тот же вопрос: откуда её взять?

Создать самостоятельно — значит пробелы, произвольность и отсутствие обоснования. Построить поверх WordNet — значит без пробелов, с консенсусом и на основе данных.

WordNet — это словарь глаголов человечества, накопленный лингвистами за 40 лет. Заимствуем слова этого словаря, но грамматику строим сами. Вот почему для сущностей используется Wikidata, а для глаголов — WordNet.