Спецификации грамматического словаря

Файлы описания грамматики

Исходным представлением словаря являются текстовые файлы с формализованными объявлениями структурных единиц - словарных и фразовых статей, связей тезауруса, правил морфологического анализа и так далее. Все исходные тексты для русской и английской словарной базы доступны в репозитории проекта.

Текстовый формат описания словаря дает несколько преимуществ по сравнению с другими способами формирования словаря, например напрямую в SQL БД, или через функции модификации словаря в процедурном API или ORM библиотеке.

Можно использовать системы контроля версий для коллективной правки словаря.

Поиск и замена, а также другие операции с текстом, могут выполняется любыми удобными для пользователя средствами, в том числе unix-утилитами.

Можно вносить правки с помощью самого простого текстового редактора.

Нет необходимости поддерживать кроссплатформенный специализированный редактор словаря. Во многих случаях оказывается удобным создавать специализированные редакторы, например в виде ASP.NET кода для клиент-серверной архитектуры, или на Delphi.

Можно расширять форматы описания грамматики за счет собственного DSL (domain-specific language), преобразуя их в базовые описания утилитами на любом удобном языке программирования. Если средств встроенного C-подобного препроцессора недостаточно, то можно написать на Java или C# утилиту и разработать свой набор спецификаций.

Простота создания резервных копий и восстановления отдельных частей словаря.

Преобразование в двоичное представление

Грамматический процессор по соображениям эффективности работает в бинарным представлением грамматики. Для преобразования текстовых спецификаций в требуемое двоичное представление используется компилятор словаря.

Декомпиляция

С некоторыми ограничениями возможно выполнить обратное преобразование из бинарного представления в текстовый формат.

Для словаря, хранящегося в бинарных файлах, этот процесс использует внутреннее объектно-реляционное представление грамматики. Декомпиляция выполняется утилитой decompiler.

  © Козиев Илья 2019
изменено 09-Mar-18