В программном бизнесе давно уже наблюдается тенденция к превращению специализированных приложений в платформу для разработки пользовательских дополнений. Наиболее известные примеры - средства макропрограммирования в офисных программах. Так, в пакетах Microsoft Office и WordPerfect Office встроенный инструментарий VBA по возможностям сейчас сопоставим со многими профессиональными средствами создания программ. Гораздо менее известно средство разработки, встроенное в популярный электронный словарь Lingvo компании ABBYY Software. Конечно, этот инструментарий ни по мощности, ни по функциональности не сравнится с VBA, однако и с его помощью можно создавать весьма полезные продукты, а именно - гипертекстовые документы с возможностью полнотекстового поиска.
Создание пользовательского словаря: слева - исходный текст, справа - вид словаря в Lingvo
Фактически инструментарий в пакете Lingvo представлен одной небольшой программой - компилятором словарей (DSL Compiler), работающим в пакетном режиме, а также справочником по разметке словарных статей. Создаваемые компилятором словари можно использовать в среде Lingvo наравне с фирменными, стандартными словарными модулями.
Механизм создания словарей присутствовал уже в ранних версиях Lingvo. Однако затем разработчики сочли его излишним, и на несколько лет (и версий) он был исключен из программы, снова появившись в ней лишь начиная с версии 6.0. В версии 6.5 принципиальных изменений инструментария не произошло, разве что справочник был переработан, дополнен и реализован в формате HTML-Help.
Технология создания пользовательских словарей для Lingvo очень проста. Исходный материал набирается в текстовом формате и сохраняется в файле с расширением DSL. Разметка исходного текста напоминает разметку HTML, правда, теги в данном случае пишутся не в угловых, а в квадратных скобках. К примеру, для форматирования символов курсивом или полужирным шрифтом они обрамляются тегами [i]...[/i] и [b]...[/b] соответственно. Всего предусмотрено около десятка парных тегов, позволяющих изменить внешний вид и структуру словарной статьи. В частности, можно создать иерархию вложенных подстатей, определить области для индексирования ([trn]...[/trn]), альтернативного отображения, комментариев ([com]...[/com]) и примеров ([ex]...[/ex]).
Пользовательские словари индексируются так же, как и стандартные модули, входящие в комплект Lingvo, так что при работе с ними можно производить полнотекстовый поиск с применением всего ассортимента интеллектуальных функций, реализованных в Lingvo. Для индексирования необходимо либо внести в словарную статью дополнительную разметку, либо (начиная с версии Lingvo 6.5) задействовать функцию полнотекстовой индексации в окне компилятора словарей.
DSL-файл с исходным текстом компилируется при помощи программы Dslcomp.exe. В результате компиляции создаются два файла - с расширениями DDE и LSD. В DDE-файле перечислены ошибки, выявленные при компиляции (в идеале этот файл оказывается пустым). Лексемы с ошибками {*Error +} не попадают в словарь после компиляции.
LSD-файл со сжатыми данными может быть подключен как пользовательский словарь к существующей копии системы Lingvo. Для этого надо в меню Tools (“Сервис”) дать команду Add/Remove Dictionaries (“Подключить/Отключить словари”).
Пакет Lingvo позволяет вставлять в словари мультимедийные модули - звуковые файлы в формате WAV и изображения в растровых форматах BMP, PCX и т. п. Для этого в исходном тексте словаря указываются имена файлов-вставок, обрамленные тегами [s]...[/s]. Мультимедийные файлы должны размещаться либо в каталоге с пакетом Lingvo, либо в каталоге, где расположен словарь.
Удобство интерфейса программы Lingvo и простота создания дополнительных словарей, совместимых с нею, обусловили популярность DSL-инструментария. На сайте, организованном компанией ABBYY (www.lingvo.ru), есть раздел, где собраны словарные модули, присланные независимыми разработчиками и доступные для бесплатного переписывания и использования. В числе прочего имеются двух- и трехъязычные словари традиционного типа - латинско-английский и индонезийско-английский, словари международных искусственных языков Ido (идо-русско-английский, около 4000 словарных статей) и Interlingua (интерлингва-русский, около 9000 статей). Самая многочисленная категория - тематические толковые словари. В числе прочего на сайте представлены словари терминов по промышленной кройке, шитью и созданию лекал; словарь хакерской терминологии; англо-русско-английский словарь основных терминов по лингвистике; русско-английский словарь по механике; англо-русский словарь медицинских аббревиатур; глоссарий сетевых терминов; словарь терминов и сокращений, связанных с Интернетом; словарь терминов и сокращений, используемых специалистами по транспортировке нефти и газа; словарь по радиационной безопасности; словарь “Phobia” (англо-русский словарь “страхов” и навязчивых состояний); англо-русско-украинский толковый словарь по защите информации (около 1000 статей), словарь телекоммуникационных терминов (537 слов); словарь аббревиатур (около 4300 статей). А самый необычный экспонат в этой коллекции - оформленная в виде Lingvo-совместимого словаря Русская Синодальная Библия.
Конечно, для удобства создания пользовательских словарей было бы желательно иметь специализированный редактор с функциями вставки DSL-разметки, а также с системой синтаксического контроля. К сожалению, в составе пакета Lingvo такого инструмента нет, однако опытный пользователь, для которого создание словарей - актуальная задача, легко сможет дополнить программу типа Word макросами для вставки тегов DSL или даже автоматического преобразования форматированных документов в коды DSL. Эта технология может привлечь издателей бумажных словарей, желающих выпустить их гипертекстовые аналоги. Для воспроизведения словарей, не существующих в электронной форме, можно применить сканирование с последующим OCR-распознаванием и DSL-форматированием (разумеется, предварительно следует заручиться лицензионным соглашением с обладателем авторских прав, если таковой имеется). Не исключено, что именно так и были созданы многие из словарных модулей, представленных на сайте ABBYY.