М.Ю.Колодин
(Санкт-Петербург, СПИИРАН)
Многоформатная работа с многоязычной литературой


Аннотация.
Современные словари (как одно-, так и многоязычные, толковые и переводные) и родственные им типы справочной литературы (разговорники, справочники, и т.п.) выпускаются как в бумажной форме, так и в электронной (сетевой или компактной). При этом возникают задачи поддержки многоязычности, автоматического формирования нескольких результирующих вариантов представления текста, в т.ч. гипертекста, управления версиями, распределённой разработки документов многими участниками, автоматического форматирования документов каждого типа в соответствии с заданными стилями и т.п. Эти вопросы рассматриваются в предлагаемом докладе.

M.Kolodin.
Multiformat work with multilanguage literature.

Contemporary vocabularies (both single- and multi-language, explanatory and translation) and related to them types of reference literature (phrase-books, guides, etc) are published both in paper and in electronic forms (network or compact). At that problems for support of multilanguage source, automatic forming of several resulting variants of text, including hypertext, version control, distributed development of documents by many participants, automatic forming of documents of each type according to preset styles, etc., arise. These problems are discussed in the proposed paper.


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

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

Таким базовым вариантом может быть хорошо структурированный формат типа XML. Однако, во многих случаях непосредственная работа с XML сложна для пользователя; кроме того, технологически полезно считать всё, поступающее от человека, ненадёжным, и проверять входные документы на отсутствие ошибок. Поэтому зачастую удобно использовать простой полуформализованный формат (специально разрабатываемый для данной работы), и автоматически -- программно и пакетно -- переводить документы из этого простого формата в XML, из которого впоследствии и получать все требуемые производные.

Далее, есть проблема многязычности. Далеко не все системы поддерживают UNICODE, да и набор в этой кодировке непрост. Можно идти хорошо известным путём: набирать весь текст русскими и латинскими символами, а для вставки отдельных символов пользоваться кодами, либо специальными последовательностями для задания таких кодов, либо специальными командами. Однако важно в каждом месте документа чётко знать, в какой кодировке и на каком языке набран текст; поэтому могут потребоваться команды смены языка (переключательные или скобочные); эти команды могут иметь интуитивно понятный для пользователя-непрограммиста вид.

Формирование всех ссылочных и гипертекстовых элементов -- задача строго программная. Пользователь только расставляет имена ресурсов и мест и ссылки на них (между ними). Тем более это относится к управлению версиями; можно воспользоваться любой имеющейся системой управления версиями; технологически правильным является хотя бы обязательное разделение текущей и предыдущей версий для каждого документа и согласованной системы в целом. Если в разработке участвует много сотрудников, то согласование частей можно переложить на продвинутую систему управления версиями; возможно выделение отдельной функции библиотекаря проекта.

Задача не должна пугать своей сложностью и объёмностью, поскольку она может быть хорошо технологически решена: все форматы разрабатываются только один раз, все программы пишутся однажды и затем многократно повторно используются. При изменении форматов или технологий необходимо учесть работы по преобразованию уже наработанных текстов в новые форматы; это часто тоже выполняется программно, поскольку в рассматриваемых проектах есть большое количество однотипной информации.

Автор неоднократно успешно применял указанный подход при разработке сайтов, словарей и разговорников на языке эсперанто и переводных русско-эсперантских. Алфавит эсперанто базируется на латинице с использованием диакритических знаков для 6 букв. Соответственно, слова на эсперанто записывались латиницей с суррогатной заменой диакритики на букву 'x', а тексты (фрагменты) на эсперанто выделялись квадратными скобками. Программно (на зыке Perl) текст проверялся на отсутствие ошибок набора, формировались все нужные перекрёстные ссылки, результат программно же переводился в текст в формате TeX или HTML, затем из ТеХа выводился в форматы DVI, PS, PDF (для ТеХ-производных -- с автоматической расстановкой переносов в соответствии с текущим используемым языком). В форматах HTML и PDF документ (книга) поступал к пользователям. Для работы с большими словарями после полуформального формата используется XML, а затем уже остальные форматы. Такая технология оказалась удобной и будет применяться в дальнейшем.