Эта консольная утилита предназначена для выгрузки словаря (лексикона и тезауруса) из SQL базы в текстовый формат, принимаемый компилятором словаря.
С ее помощью можно преобразовать словарь, отредактированный в БД с помощью программы SQLEditor, в бинарную форму.
В выгрузке участвуют данные из следующих таблиц:
Лексикон (словарные статьи) SG_ENTRY, SG_ENTRY_COORD, SG_FORM, SG_FORM_COORD
Связи словарных статей (тезаурус) SG_LINK, SG_LINK_TAGS
Фразовые статьи и их связи (тезаурус) SG_TENTRY, SG_TLINK, SG_TLINK_TAG
-type XXX
тип СУБД, например MySQL или FireBird.
-server XXX
для MySQL это сетевой адрес сервера; для FireBird - полный путь к базе данных
-port NNN
для MySQL порт, на котором сервер слушает запросы
-schema SSS
для MySQL это имя схемы (базы)
-login UUU
имя пользователя для подключения к базе
-password PPP
пароль для подключения
-odbc XXX
имя источника данных ODBC
-outdir XXX
имя папки для записи генерируемых файлов
-lexicon-
не выгружать словарные статьи
-thesaurus-
не выгружать тезаурус
-classes 'K','L','M'...
выгружать только словарные статьи и их связи, относящиеся к перечисленным грамматическим классам. Классы задаются своими именами, как они объявлены в исходных текстах словаря. Также имена классов можно посмотреть в таблице SG_CLASS.
Для большинства словарных статей данные из БД выгружаются "как есть" - без каких-либо преобразований.
Однако для словарных статей, относящихся к русскому причастию и деепричастию, выполняется дополнительная работа.
Связано это с тем, что в реализованной модели русской морфологии причастия и деепричастия представлены отдельными грамматическими классами. Отношение с порождающими их глаголами, точнее с инфинитивами, фиксируется в тезаурусе специальным типом связи. Для правильного синтаксического анализа предложений с участием причастий и деепричастий требуется знать следующие грамматические признаки: модальность, глагольный вид, переходность и падежную валентность. Эти признаки безусловно есть у базовых инфинитивов.
Для присвоения данных признаков причастиям и деепричастиям в исходных текстах словаря применяется следующий прием. Объявления инфинитивов гарантированно выполняются прежде всех остальных статей. Затем при чтении объявления каждого причастия и деепричастия компилятор просматривает уже загруженные инфинитивы и копирует оттуда необходимые грамматические атрибуты. На уровне исходных текстов такое поведение компилятора программируется специальной конструкцией import в объявлении грамматических классов.
Вышеописанный подход работает совершенно прозрачно и удобно для пользователя.
При экспорте данных из БД в формат исходных текстов возникает 2 ситуации.
Словарные статьи для причастий и деепричастий, которые были импортированы в БД с помощью SQL-скрипта, имеют необходимые грамматические признаки в записях таблицы SG_ENTRY_COORD.
С новыми причастиями и деепричастиями, добавленными в Редакторе Словаря, дела обстоят сложнее. Заставлять пользователя заполнять для причастий и деепричастий набор полей, уже имеющийся у инфинитивов, неправильно. Поэтому от пользователя требуется только задавать базовый глагол для новых причастий и деепричастий. Основная нагрузка по приведению результатов экспорта к законченному виду ложится на утилиту sql2sol.
Когда выгружается очередная словарная статья, код проверяет ее грамматический класс, и если это деепричастие или прилагательное с признаком 'причастие', ищет базовый глагол и извлекает у него необходимые признаки.
Для причастий дополнительный шаг заключается в том, что падежная валентность, то есть падежные формы сочетаемых с глаголом прямых дополнений, переименовывается в состояние координаты ПадежВал. Причина проста - падеж у причастий является признаком, отличающим отдельные грамматические формы, наряду с грамматическим родом, числом и пр.
В словаре могут быть пары словарных статей с совпадающими именами, относящиеся к одной и той же части речи - омонимы. Чтобы компилятор словаря не ругался на такие статьи при сборке словаря, их необходимо предварительно объявлять в соответствии со спефицикацией.
Таким образом, перед началом выгрузки списка словарных статей, утилита экспорта должна получить список омонимов и записать их в выходной текстовый файл. Для этого программа выполняет запрос

который возвращает список омонимичных словарных статей.
В исходных текстах полного SDK есть готовые командные файлы, выполняющие экспорт словаря и компиляцию результатов экспорта. Находятся эти скрипты в подкаталоге ...\scripts\dictionary.
sql2sol.cmd - экспорт из БД MySQL, результаты экспорта сбрасываются в подкаталог ...\tmp в папке SDK
rus-jap-sql.cmd - компиляция русско-японского словаря, выгруженного из БД скриптом sql2sol
Экспорт словаря в SQL базу данных
SQLex - редактор словаря в SQL базе
© Elijah Koziev 2010
Поисковая система
SDK Поисковой системы
Экранный переводчик
|
|
изменено 16-Oct-10 | ||||||||||||||||||||||||||||||||||||||