Структура словаря (проект)

Структура должна быть близка к структурам самого языка. Какие структуры мы видим в языке? Например, набор всех возможных форм существительного может быть представлен в виде таблички:

  ед.ч. мн.ч.
И. кошка кошки
Р. кошки кошек
Д. кошке кошкам
В. кошку кошек
Т. кошкой кошками
П. кошке кошках

Эту простую структуру можно описать так:

Число = ед.ч. + мн.ч.
Падеж = И + Р + Д + В + Т + П
Сущ   = Число * Падеж

Т.е. мы говорим, что Число может принимать значения ед.ч. и мн.ч., что у падежа такой-то набор значений, а существительное — это таблица, где по горизонтали отложены числа, а по вертикали — падежи. Все просто.

Разберемся с прилагательным. У прилагательных набор форм состоит из нескольких табличек:

Полные формы ед.ч.
 м.р.ж.р.ср.р.
И.белый белаябелое
Р.белогобелойбелого
Д.беломубелойбелому
В.белый белуюбелое
Т.белым белойбелым
П.белом белойбелом
Полные формы мн.ч.
И.белые
Р.белых
Д.белым
В.белые
Т.белыми
П.белых
Краткие формы
м.р.бел
ж.р.бела
ср.рбело
Краткая форма мн.ч.
белы

Попробуем записать это на нашем языке. Сначала введем новые размерности:

Род = м.р. + ж.р. + ср.р
Форма = крат.ф. + полн.ф.
Прилагательное = полн.ф. * ед.ч. * Род * Падеж 
               + полн.ф. * мн.ч. * Падеж 
               + крат.ф. * ед.ч. * Род
               + крат.ф. * мн.ч.

Получилось четыре слагаемых — четыре таблички. Вынесем общие множители за скобки:

Прилагательное = полн.ф. * (ед.ч. * Род * Падеж + мн.ч. * Падеж)
               + крат.ф. * (ед.ч. * Род + мн.ч.)

Вынесем за скобки Падеж:

Прилагательное = полн.ф. * (ед.ч. * Род + мн.ч.) * Падеж
               + крат.ф. * (ед.ч. * Род + мн.ч.)

И финальный штрих:

Прилагательное = (ед.ч. * Род + мн.ч.) * (полн.ф. * Падеж + крат.ф.)

Этими нехитрыми алгебраическими действиями мы свели все формы прилагательного в одну табличку:

 ед.ч.мн.ч.
м.р.ж.р.ср.р.
полн.ф.И.белый белаябелое белые
Р.белогобелойбелогобелых
Д.беломубелойбеломубелым
В.белый белуюбелое белые
Т.белым белойбелым белыми
П.белом белойбелом белых
крат.ф.бел белабело белы

Полный вывод для глагола расписывать не буду. У меня получилась следующая формула:

Время = наст. + прош.
Залог = действительный + страдательный
ФормаГлагола = инфинитив + императив + индикатив + причастие + деепричастие
    
Глагол = инфинитив 
    + индикатив * (наст. * Лицо * Число + прош. * (ед.ч. * Род + мн.ч.))
    + императив * Лицо * Число
    + Время * (деепричастие + причастие * залог * Прилагательное)

Что, сложно? На самом деле, эта формула читается очень просто. Она означает, что формы глагола можно представить четырьмя табличками (четыре слагаемых формулы). Первая состоит из единственной формы — инфинитива. Вторая представляет формы изъявительного наклонения (индикатива), которые в свою очередь разбиваются на формы настоящего и формы прошедшего. Формы настоящего изменяются по лицам и числам, а прошедшего — по родам и числам. Ну, и так далее.

Здесь мы видим уже знакомый нам член (ед.ч. * Род + мн.ч.), который заключен также в Прилагательном. Можно раскрыть Прилагательное и попытаться вынести этот член за скобки, но формула не упростится:

Глагол = инфинитив 
    + (индикатив * наст. + императив) * Лицо * Число
    + (ед.ч. * Род + мн.ч.) * 
        (
            причастие * Время * Залог * (полн.ф. * Падеж + крат.ф.)) 
            + индикатив * прош.
        )
    + Время * деепричастие 

Т.е. мы только что сделали явным тот факт, что причастие и индикатив * прош. изменяются по родам и числам, тогда как предыдущая формула подчеркивает, что причастие и деепричастие изменяются по временам. Когда мы преобразуем формулу, мы прикладываем таблички-слагаемые друг к другу разными боками, склеивая их по тому или иному измерению. Это позволяет показать, какие наборы форм изменяются одинаково.

Запись в виде формул делает явными ограничения на сочетаемость граммем. Например, нельзя глаголу приписать падеж или существительному залог.

Но это еще не все. Язык формул очень сжато описывает выбранную нами грамматику. По сути это схема, метаданные, по которым можно сгенерировать другие представления тех же данных, например:

  • HTML-таблички для визуализации данных
  • XML-файлы для передачи словаря по каналам связи
  • схему базы данных для хранения словаря
  • API библиотеки морфологического анализатора
comments powered by Disqus