Лидовский В.

Программное обеспечение Летнего Института лингвистики

В статье дается обзор программного обеспечения (ПО) Летнего Института Лингвистики (SIL, Summer Institute of Linguistics), которое дает богатейшие, часто уникальные, возможности для работы с многоязычными текстами. Концепция поддержки языков, основанных на алфавитах со сложной системой диакритических знаков в данном ПО по многим критериям лучше, чем в таких широко известных редакторских системах как Microsoft Word (DOS/Windows), Chi Writer и TeX. ПО Летнего Института Лингвистики может быть полезным для использования в информационных центрах.




                     Введение

    Летний Институт лингвистики - это одна из 
крупнейших в современном мире лингвистических организаций[1]. 
Он насчитывает около 6000 сотрудников, половина которых - 
лингвисты. Работы ведутся приблизительно по 850 языкам,
примерно по 300 языкам работы завершены или остановлены. Свое
название институт получил потому, что в первые годы своего
существования (институт был основан в 1934 г. в Далласе, США)
лингвистические курсы в нем читались только в летние месяцы.
Сегодня основные лингвистические курсы читаются часто круглый год
и не только в США, но и в Канаде, Великобритании, Франции,
Германии, Австралии, Новой Зеландии, Японии и др. странах. В США
такие курсы считаются аспирантскими, в других странах -
университетскими. Сокращенные курсы организуются по мере
надобности и во многих других странах.
    Набор лингвистических программ, составляющих ПО SIL, был
разработан сотрудниками этого института.
    ПО SIL было любезно предоставленно в 1991 г. отделу Машинного
Фонда Института Русского Языка РАН (МФ ИРЯ РАН) [2] сотрудником
Летнего Института лингвистики Дж. Хантом.
    Оно подверглось детальному изучению и адаптации. Был создан
ряд программ, расширяющих некоторые базовые возможности ПО SIL, а
также программа-интегратор многих компонентов ПО SIL и связанных
с ним разработок МФ ИРЯ РАН.
    ПО SIL создавалось прежде всего для обработки результатов
полевых лингвистических исследований, но оно также используется
филологами всего мира и в других, более широких, целях.
Функциональная полнота данного ПО позволяет использовать его и
для нужд информационных центров.
    ПО SIL обеспечивает ввод, обработку и печать многоязычных
(как правило, двуязычных) материалов. Очевидно, что существующие
в мире языки отличаются друг от друга по самым разным критериям,
поэтому ПО SIL обладает очень гибкой и динамичной системой
настройки конкретных программ. Такая система настройки включает в
себя возможность работы с разнообразными шрифтами и унифицирует
требования к материалам для публикации.
    В Летнем Институте лингвистики принят ряд соглашений о виде
материалов, предназначенных для публикации. Все публикуемые
материалы размечаются маркерами стандартного формата ПО SIL.
Системы маркировки различны для лингвистических данных разных
типов: источников, словарей и др. Кроме того, стандартизированная
система маркировки позволяет упростить обработку текстовых
данных.
    Возможность работы с различными шрифтами в ПО SIL
обеспечивается:
    - средствами создания и редактирования символов шрифтов;
    - средствами переопределения раскладки клавиатуры;
    - возможностью во многих случаях определять порядок следования
символов в алфавите.
    Далее в настоящем обзоре кратко описаны основные компоненты
ПО SIL и разработки МФ ИРЯ РАН, связанные с адаптацией этого ПО в
МФ ИРЯ РАН.



            Система маркировки документов SIL

    Описываемая далее система маркировки текстов используется
членами SIL, а также теми, кто желает распечатывать, публиковать
или обрабатывать тексты в этом институте.
    Текст маркируется с помощью маркеров стандартного формата.
Маркеры стандартного формата - это особые символы, которые
следует набирать, когда вы вводите текст в компьютер. Вы можете
вводить эти символы в любом текстовом редакторе. Они
идентифицируют различаемые элементы текста (вносят в него
структуру).
    Маркеры стандартного формата, как это можно легко понять, не
делают текст ни более легким для чтения, ни привлекательнее для
глаз, но есть несколько соображений, из которых следует, что
использование этих маркеров может быть очень полезным.
    Первое соображение, оправдывающее использование маркеров
стандартного формата, - это то, что их введение в текст сделает
его понятным для разных программ обработки текстов. SIL является
обладателем множества программ, которые могут помочь при создании
словарей и словников, при анализе текстовых файлов. Большинство
этих программ будет работать только с текстами, размеченными
маркерами стандартного формата.
    Другое соображение, оправдывающее использование маркеров
стандартного формата, - то, что когда наступит время печатать или
публиковать текст, он должен быть отформатирован и напечатан
правильно. Если сопротивляться соблазну форматировать текст при
вводе в компьютер, а вместо этого маркировать текст, то это
позволит автоматически форматировать текст при печати.
Неиспользование маркеров стандартного формата создаст много
проблем при переформатировании текста перед печатью. (Здесь также
нужно учесть, что при форматировании текста для печати,
необходимо учитывать характеристики устройства вывода.)
    Существует два основных типа маркеров стандартного формата ПО
SIL:
    - маркеры, выделяющие такие элементы текста, как строфы,
абзацы, заголовки и т.п.;
    - маркеры, выделяющие элементы-слова внутри элементов текста.
    Важно помнить, что маркер должен идентифицировать функцию или
вид элемента, а не тип форматирования.
    

                   Система шрифтов ПО SIL

    В комплекте программ ПО SIL, предоставленных МФ ИРЯ, имеется
около сотни готовых шрифтов. Среди них есть шрифты на основе
латинского, кириллического, греческого, эфиопского, арабского
языков, иврита, деванагари, языков центральной Африки,
Юго-Восточной Азии и Кавказа. В ПО SIL есть также шрифты
международного фонетического алфавита (IPA - International
Phonetic Alphabet).
    ПО SIL позволяет производить разнообразную обработку
шрифтов[3]: видоизменять, пополнять, создавать и загружать в
конкретные устройства. ПО SIL поддерживает только растровые
шрифты, т.е. шрифты, все символы которых описываются некоторой
двумерной матрицей, каждая из ячеек которой либо заполнена, либо
пуста. Все символы одного шрифта ПО SIL должны иметь одинаковую
высоту описывающих их матриц, но могут в случае пропорциональных
шрифтов различаться их шириной. Очень важным свойством шрифтов ПО
SIL является возможность создания в них символов, которые не
используются самостоятельно, а налагаются на следующий или
предшествующий символ при вводе. Это свойство позволяет работать
с алфавитами, содержащими большое количество диакритических
знаков (при этом на один символ можно наложить любое разумное
количество диакритик одновременно).
    Средства ПО SIL позволяют осуществлять многоуровневую
трансформацию исходных файлов шрифтов.
    Первый уровень преобразования - это конвертирование файла
шрифта в формат таблицы замен. Таблица замен определяет правила
подстановки, описывающие способ печати сложных символов. Шрифт в
формате таблицы замен настроен только по самым общим параметрам
устройства вывода, например, таким, как размер матриц символов.
Конкретные командные коды, обеспечивающие правильную печать
символов на данном устройстве вывода, берутся из драйвера
конкретного устройства, т.е. один и тот же шрифт в формате
таблицы замен может быть использован на широком диапазоне сходных
по физическим характеристикам устройств вывода. Кроме того, при
конвертировании в формат таблицы замен можно объединять несколько
шрифтов в универсальных форматах ПО SIL. Редактируя или создавая
шрифт в формате таблицы замен, можно создавать новые символы не
только графическим способом, но и быстрым для печати текстовым
способом (например, для печати испанской буквы "эни" (n c
тильдой), которая кодируется в тексте следующей
последовательностью двух символов "~n" нужно ввести в файл
шрифтов следующую строку:
"~n" > "n" 0d8 "~"
, где 0d8 - это код управляющего символа "возврат печатающей
головки на один шаг"). Программа печати при встрече в тексте
символов ~n, напечатает сначала n, затем вернется на шаг и
поставит над n тильду.
    Второй уровень преобразования - это компилирование шрифта в
формате текстовой таблицы замен в более короткий бинарный формат,
который требуется некоторым программам ПО SIL.
    Другой уровень преобразования - это конвертирование файла
шрифта в формат загружаемого бинарного файла шрифтов. Этот файл
содержит только матрицы символов с управляющими символами,
обеспечивающими загрузку шрифта на конкретное устройство вывода
(видеоадаптер, принтер или программу). После загрузки такого
шрифта в выбранное устройство вывода, это выбранное устройство
начинает вести себя так, как если бы загруженный шрифт был в нем
реализован аппаратно.
    ПО SIL содержит набор программ, которые редактируют
непосредственно загружаемые шрифты (download fonts) для некоторых
моделей принтеров и видеоплат.
    Кроме того, в ПО SIL входят программы, позволяющие в
некоторых случаях проводить трансформации, обратные
вышеописанным.
    
   
 Система поддержки переопределения раскладки клавиатуры в ПО SIL

    Система ПО SIL обеспечивает пользователю возможность
использовать до 10 различных раскладок клавиатур в прикладных
программах. Раскладки клавиатур создаются и изменяются средствами
ПО SIL[4].
    Файлы раскладок клавиатуры имеют следующие характеристики:
    - можно определять до девяти различных раскладок клавиатуры
плюс стандартная;
    - входная (переопределяемая) комбинация клавиш имеет длину до
двух клавиатурных кодов;
    - выходная комбинация клавиш имеет длину до 255 клавиатурных
кодов;
    - допускается переопределение как отдельных клавиш, так и
комбинаций с клавишами Ctrl, Shift и Alt (такое комбинированное
нажатие клавиш рассматривается как один клавиатурный код).
    Для переключения клавиатур резервируются два клавиатурных
кода (их можно переопределять). После ввода одного из них
ожидается нажатие клавиши-цифры, устанавливающей номер текущей
раскладки клавиатуры (раскладка с номером 0 - стандартная). После
ввода другого не транслируется следующий введенный клавиатурный
код, т.е. происходит временное переключение в стандартную
раскладку. Переключения клавиатур можно также достичь, вызывая
программу-драйвер с соответствующими параметрами.
     

             Полноэкранный текстовый редактор ED

    Программа ED предназначена для редактирования текстовых
файлов.
    Эта программа имеет уникальные возможности для создания и
редактирования сложных лингвистических текстов:
    - поддержка системы шрифтов ПО SIL, что позволяет в процессе
ввода текста или редактирования из базовых символов рабочего
шрифта (сам шрифт при этом может иметь до нескольких тысяч матриц
таких базовых символов) "на лету" получать множество новых
символов, наложением некоторых базовых друг на друга;
    - представление редактируемых файлов в формате "чистого"
текста может в дальнейшем сравнительно просто переносить
результаты такого редактирования в среду других лингвистических
программ (анализ, статистика и т.п.) и результаты, выдаваемые
такими другими программами, редактировать с использованием
программы ED;
    - возможность ввода текста как слева направо, так и справа
налево.
    Редактор ED не имеет средств для форматирования текста, так
как в концепции ПО SIL (как и в TeX) форматирование производится
непосредственно при выводе на печать.
    Редактор ED имеет встроенную систему подсказки, исчерпывающе
охватывающую всю его систему команд. Вместо встроенной системы
подсказки можно использоваться подсказка, содержащаяся в
отдельном файле, что допускает легкую адаптацию редактора к
желаемому пользователем языку.
    Программа ED работает в графическом режиме, и поэтому она
использует символы, загружаемые в EGA/VGA видеоадапторы, только
при их драйверной поддержке для графических режимов названных
видеоадапторов.
    

            Пакетный текстовый редактор CC

    Программа CC (Consistent Changes = последовательные замены)
предназначена для проведения замен в текстовом файле в пакетном
режиме. Эта программа является функциональным аналогом программы
AWK, широко распространенной в ОС UNIX. Однако базовые принципы
работы обеих программ существенно различаются, что делает
программу CC для многих случаев пакетной обработки текстов более
предпочтительной, чем AWK.
    Описание замен составляет содержание специального текстового
файла - файла замен. Файл замен может состоять из операторов
замены вида ЗАМЕЩАЕМОЕ > ЗАМЕСТИТЕЛЬ (группа операторов замен,
используемых совместно, называется таблицей замен), комментариев
и оператора определения группы, в состав которого не входит
символ >.
    Замены происходят следующим образом. Входной текстовый файл
(подлежащий обработке) читается последовательно от начала до
конца. Этот процесс можно представить как движение читающего
устройства вдоль символов текста. Для каждой фиксированной
позиции читающего устройства программа пытается найти совпадения
ЗАМЕЩАЕМЫХ, входящих в текущие таблицы операторов замены, с
частью текста, начинающейся с позиции читающего устройства. Если
происходит не одно из таких совпадений, а несколько, то
выбирается тот оператор замены, ЗАМЕЩАЕМОЕ которого длиннее (в
случае совпадения длин выбирается оператор, встретившийся
первее). После выбора оператора замены читающее устройство
сдвигается на позицию, следующую за концом той порции текста,
которая совпала с ЗАМЕЩАЕМЫМ, а в выходной поток
(предопределенное направление выходного потока - в выходной файл
с результатами замен) записывается текст, определяемый
ЗАМЕСТИТЕЛЕМ, и, кроме того, может быть, выполняются некоторые
действия, также заданные содержанием ЗАМЕСТИТЕЛЯ. Если не
найдется ни одного оператора замены, ЗАМЕЩАЕМОЕ которого
совпадало бы с вышеописанной порцией входных данных, то символ с
текущей позиции читающего устройства помещается в выходной поток,
а само читающее устройство сдвигается на позицию следующего
символа, и все повторяется сначала. Работа программы завершается
после достижения читающим устройством конца входного файла.
    Как ЗАМЕЩАЕМОЕ, так и ЗАМЕСТИТЕЛЬ в общем случае состоят из
набора литералов и специальных команд.
    Литералы допускают как строковое, так и числовое
представление. Числовые литералы дают возможность работать с
непечатаемыми (управляющими) символами. Допускаются десятичные,
шестнадцатиричные и восьмеричные числовые литералы.
    Специальные команды CC позволяют выполнять некоторые
дополнительные действия одновременно с заменами: вводить шаблоны,
использовать переменные, организовывать условные переходы и
циклы, переадресовывать потоки ввода-вывода, вносить в таблицы
замен комментарии, выполнять арифметические действия, определять
и использовать макросы и другое.
    

             Система распечатки документов ПО SIL

    Систему распечатки документов ПО SIL образуют в основном три
следующие программы: MS , Printf и Pridef. Программа Printf
обеспечивает использование шрифтов ПО SIL в печатаемых
документах. Программа MS также обеспечивает использование шрифтов
ПО SIL в печатаемых документах и, кроме того, позволяет во время
печати форматировать текст и производить в нем замены. Программа
Pridef может создавать драйверы устройств вывода, не прилагаемые
к конкретной версии ПО SIL. К описываемой версии ПО SIL
прилагается набор драйверов различных устройств вывода, среди
которых есть драйверы: текстового экрана с драйвером ANSI.SYS,
популярных моделей матричных и ромашковых принтеров.
    

                Программа MS

    Программа MS предназначена для трансляции исходной
лингвистической разметки текста в действия по форматированию
этого текста при печати и в действия, связанные с печатью
специальных символов (не входящих в ASCII). Упрощенный вариант
программы MS - это программа Printf. В набор программных средств
ПО SIL входят таблицы замен для преобразования маркеров
стандартной разметки Летнего Института лингвистики в команды
программы MS.
    Входной текст программы MS - это текстовый файл с некоторой
разметкой (в простейшем случае совпадающей с командами MS),
который последовательно подвергается следующим операциям:
    1. Конверсия стандартной разметки в команды MS с помощью
таблиц замен программы CC.
    2. Выполнение команд MS.
    3. Трансляция кодов специальных символов в печатаемые образы
этих символов, используя файл шрифтов программы MS.
    4. Преобразование внутренних общих кодов программы MS в
управляющие коды устройства вывода.
    Команды MS осуществляют большинство действий, свойственных
полиграфическим программам: определяют расположение текста на
странице, задавают формат страницы, вносят в текст примечания
снизу и сверху от основного текста, разбивают текст на колонки и
т.п.
    

           Система управления текстовыми БД Фиеста

    Фиеста - это компьютерная программа для быстрого просмотра,
сравнения и редактирования документов. Она имеет систему
поддержки процесса перевода текстов с одного языка на другой.
    По входному тексту, неразмеченному или размеченному с
использованием маркеров стандартного формата ПО SIL, Фиеста
строит текстовую базу данных и далее работает исключительно с
ней.
    Программа имеет развитые возможности для поиска в текстах и,
кроме того, некоторые возможности для форматирования текста для
"черновой" печати.
    Можно вызывать на экран абзац для редактирования из любого
места редактируемого документа, можно одновременно отображать до
трех таких абзацев из любого места редактируемого документа.
    Фиеста может выводить как список всех слов документа, так и
список только тех слов, которые попадают под задаваемые
спецификации (начинаются с букв в заданном диапазоне алфавита или
содержат заданную подстроку).
    Можно выводить список слов, которые удовлетворяют задаваемым
слоговым шаблонам, можно подсчитывать частоты любых слов, фраз и
символьных строк.
    Фиеста имеет способность получать конкорданс (список
абзацев), содержащий любые заданные слово, фразу или символьную
строку.
    Можно заменять или удалять любое слово или часть слова по
всему документу, можно также менять местами любые фразы, кроме
того, можно задавать контексты, в которых производятся
специфицируемые изменения.
    Так как Фиеста может строить БД по неразмеченным текстам (в
этих текстах за базовую единицу принимается предложение, а не
абзац), то в этом случае она становится орудием для анализа
языка. Кроме того, Фиеста имеет возможность обрабатывать тексты,
представляющие собой совокупность записей одинаковой структуры и,
возможно, содержащие синхронизованные строки.
    Можно заменять входы словаря для абзацев или других текстовых
единиц. Фиеста сортирует по любому заданному полю входа и
переаранжирует последовательность полей в базе данных так, что
материал может быть отображен и напечатан в любом выбранном
порядке, что позволяет инвертировать словари.
    Программа имеет некоторые функции, применимые только к
Евангелиям и Житиям Святых. Среди них: функция для отображения
параллельных мест, вывод данных по ключевым словам и именам
собственным и др. Так как данные тексты очень качественно
переведены на большинство существующих и многие известные мертвые
языки, данные функции программы могут быть полезны и в общих
лингвистических исследованиях.
    
   

            Набор утилит для анализа текстов

    В набор утилит для анализа текстов входят следующие
программы:
    - сортировка словарей;
    - создание списка слов из текста;
    - инвертирование словарей;
    - создание конкордансов в интерактивном или пакетном режиме;
    - сегментация слов;
    - настройка конфигураций вышеперечисленных программ.
    К сожалению, данные программы имеют ограниченную возможность
для работы с алфавитами, основанными не на латинской графике, а
также с текстами большого объема. В МФ ИРЯ РАН создана программа
FD&AC, восполняющая эти недостатки оригинальных программ ПО SIL и
заменяющая некоторые из них либо полностью, либо частично.
    

            Программа обозрения словарей

    Программа обозрения словарей предназначена для
лексикостатистического и фоностатистического анализа
сопоставительных списков слов сравниваемых языков и/или
диалектов. Она очень полезна в тех случаях, когда приходится
сравнивать между собой большое количество списков, так как
количество вариантов сравнения растет в квадратической
зависимости от количества списков (при семи списках имеем 21
вариант сравнения, а при 12 - уже 66).
    

            Словарная база данных SHOEBOX

    Программа SHOEBOX[5] лишена многих недостатков коммерческих
баз данных, затрудняющих применение последних в лингвистике, и,
кроме того, снабжена набором специальных лингвистических функций.
Базы данных для программы SHOEBOX представляют собой текстовые
файлы, размеченные маркерами стандартного формата SIL. Такие базы
данных воспринимаются программой SHOEBOX как состоящие из
записей, содержащих одинаковое число полей переменной длины, что
позволяет очень эффективно использовать ресурсы компьютера.
Программа может как просто работать с БД, содержащими
синхронизированные поля в записях, так и синхронизировать
выбранные поля самостоятельно. SHOEBOX имеет пользовательский
интерфейс в виде систем меню и подсказок, а также возможность
запуска в демонстрационном режиме. Имеющаяся в МФ ИРЯ версия этой
СУБД не поддерживает систему шрифтов ПО SIL.


                  Адаптация ПО SIL в МФ ИРЯ РАН

    Применение исходного ПО SIL в среде Машинного фонда русского
языка и для обработки данных в Институте русского языка РАН было
затруднено тем, что имеющиеся в нем средства были слабо
ориентированы на решение задач компьютерной русистики. Например,
в нем отсутствовали стандартные для нашей страны средства
русификации.
    В МФ ИРЯ РАН были созданы дополнительные шрифты и драйверы,
позволившие работать средствам ПО SIL с русскими и древнерусскими
текстами, а также ряд расширяющих возможности ПО SIL утилит и
модифицирован код программы клавиатурного драйвера с целью
сделать его выгружаемым из памяти.
    Кроме того, была разработана программа-интегратор некоторых
компонентов ПО SIL и собственных программных разработок МФ ИРЯ
РАН, обеспечивающих сквозную работу с текстами (реализация идеи
д. филол. н. В.М. Андрющенко), т.е. ввод, вывод и обработку
текста. В этой программе полностью поддерживается система шрифтов
и клавиатур ПО SIL. Интегратор работает в диалоговом режиме и
имеет развитую систему подсказок.
    

                Литература

1. Хант Дж. Вычислительная лингвистика в Летнем Институте
   Лингвистики //Вопросы языкознания. - 1993. - N 6.
2. Андрющенко В.М. Концепции и архитектура Машинного фонда
   русского языка //Машинный фонд русского языка: идеи и
   суждения. - М: Наука, 1986.
3. Zook K. Character Design Program. Users Guide. - Dallas:
   JAARS, Inc., 1985.
4. Reitz A. KeySwap and KeyDef //Laptop Publishing For The Fuild
   Linguist: an approach based on Microsoft Word
   /edited by Priscila M. Kew, Gary F. Simons. Dallas, 1989.
   Occasional Papers in Academic Computing Number 14, Summer
   Institute of Linguistics.
5. Wimblish S. Shoebox - a data management program for field
   linguist. - Ambon (Indonesia): Summer Institute of Linguistics
   and Pattimura University, 1989.



© Copyright 1995-96 V.Lidovski

Варианты статьи были опубликованы в журнале "Научно-техническая информация. Серия 2" (N 7, 1995, с.24-26) и в бюллетене Машинного фонда русского языка (Выпуск 3, 1996, с.67-78).