CLAIM – научно-образовательный кластер |
|||||||||||||||||||
|
|||||||||||||||||||
Филиппович АндрейПАКЕТ ПРОГРАММНЫХ СРЕДСТВ ANREW'S TOOLS
|
"Нет дела более трудного по замыслу, | |
более сомнительного по успеху, | |
более опасного при осуществлении, | |
чем вводить новые порядки". | |
Состав пакета программных средств ANDREW’s TOOLS.
Одним из новых направлений в гуманитарных науках является внедрение в практическую деятельность лингвистов, историков и филологов современных средств обработки данных, основанных на использовании СУБД. В русской исторической лексикографии — на базе Словаря русского языка XI–XVII вв. — эта методика используется впервые.
Основой для составления исторических словарей являются древние рукописи, а также их издания, которые написаны на греческом и древнерусском языках. Использование этих рукописей и их изданий в качестве исходных данных для составления словарей с применением СУБД требует решения ряда задач, в числе которых наиболее важное место отводится разработке шрифтов и методов обработки данных, представленных различными шрифтами.
Настоящая статья состоит из двух частей и описывает решение следующих задач:
Решение данных задач представлено пакетом программных средств ANDREW’s TOOLS.
Пакет ANDREW’s TOOLS разрабатывается по заказу Института русского языка Российской Академии наук (ИРЯ РАН) для подготовки и занесения греческих и древнерусских текстов в базы данных. В пакет входят программа ANDREW’s SORT и два шрифта формата ttf (ANDREW GREEK и KDRS OLD CYR) для работы с приложениями MS Windows: Paradox for Windows, Word for Windows 6.0 и др.
ANDREW’s SORT — это программа для сортировки таблиц СУБД PARADOX 5.0. Программа позволяет использовать при сортировке произвольно заданный порядок следования символов. При этом она не сортирует таблицу своими средствами, а лишь подготавливает ее для сортировки средствами PARADOX.
ANDREW GREEK — шрифт для печати греческих параллелей в Электронной картотеке и базах данных Словаря русского языка XI–XVII вв. Шрифт помимо всех греческих букв содержит дополнительные знаки — надстрочные и подстрочные символы. Использование “нулевых ширин” при вводе дополнительных знаков позволяет почти полностью имитировать печать текстов на печатной машинке с греческой клавиатурой, которая была взята за основу при создании шрифта и расположении его на стандартной клавиатуре компьютера.
KDRS OLD CYR — шрифт для печати древнерусских текстов (в упрощенном графическом варианте, используемом в Словаре русского языка XI–XVII вв.). За основу был взят шрифт Times New Roman Cyr, в который были добавлены некоторые нестандартные символы и буквы, а именно буква “ять” и титла трех различных длин: а) , б) , в) .
Особенностью греческого алфавита является наличие в нем кроме букв специальных знаков — надстрочных и подстрочных символов, которые ставятся, как правило, над гласными буквами или под ними. Количество различных знаков — 15, а их комбинаций — 27. Для строчных (прописных) и заглавных букв знаки ставятся по-разному. Общее количество всех комбинаций букв с надстрочными и подстрочными знаками составляет 170, а число букв в греческом алфавите — 51 (25 заглавных и 26 прописных). Если учесть еще все необходимые знаки (тире, точка и др.), то получим, что общее количество символов более 255. Существует несколько способов представления греческого алфавита в ЭВМ: сокращение числа используемых символов, притом значительно (до “математического греческого” — шрифт Symbol); использование последних разработок, поддерживающих более 255 символов и несовместимых с большинством программ (со всеми DOS программами, PARADOX, COREL VENTURE); использование расширенного, но все же неполного набора символов, путем использования ALT-комбинаций (например, шрифт WP GREEK CENTURY); использование “нулевых ширин” у надстрочных и подстрочных знаков.
Особенностью древнерусских текстов является наличие в них сокращенных форм записи слов (как правило, пропущены гласные буквы), при этом сокращенные слова помечаются специальным надстрочным знаком — “титло”. Другой особенностью древнерусских текстов является присутствие в алфавите буквы “ять”, а в неупрощенном алфавите и других букв (“юсы” — большой и малый; йотированные гласные и др.).
В работе для решения первой задачи использовались “нулевые ширины” при представлении надстрочных, подстрочных знаков греческого алфавита и надстрочных знаков (титл) древнерусского алфавита.
Andrew Greek — Windows TrueType шрифт, позволяющий осуществлять ввод текстов на греческом языке вместе с надстрочными и подстрочными знаками. Текст можно вводить в любом текстовом редакторе, позволяющем использовать шрифты с символами различной ширины (в том числе и нулевой) и поддерживающем шрифтовой ttf-формат. Шрифт содержит все заглавные и строчные буквы греческого алфавита, а также 15 надстрочных и подстрочных знаков, которые могут использоваться в любых возможных комбинациях (см. таблицу).
В основе способа отображения или печати греческой буквы с надстрочным (подстрочным) знаком лежит идея использования символа “нулевой ширины“. Все буквы шрифта имеют определенную ширину, а надстрочные (подстрочные) знаки ее не имеют, т.е. их ширина — нулевая. На экране как те, так и другие отображаются одинаково. Последовательное отображение символов приводит к тому, что буква, вводимая после надстрочного (подстрочного) знака или их группы, как бы накладывается на эти знаки. Это достигается благодаря особенностям построения шрифта. Символ “нулевой ширины” на экране отображается так же, как и символ определенной ширины, а в компьютер он заносится как символ с шириной, равной нулю. В связи с этим последующий символ отображается на месте предыдущего. Надстрочные и подстрочные знаки размещаются выше или ниже строчных букв, поэтому последние их не “заслоняют”. Такого не происходит в случае изображения заглавных букв с надстрочными знаками. Для того, чтобы заглавная буква не “заслоняла” надстрочный знак, после него вводится “маленький пробел”. Таким образом, греческая буква с надстрочным (подстрочным) знаком представляет собой комбинацию последовательно “наложенных” друг на друга символов.
Для создания шрифта использовался пакет FONTOGRAPHER 3.5, позволяющий сформировать (нарисовать или изменить) отдельные символы и разместить их в таблице символов. За основу шрифта Andrew Greek был взят шрифт WP Greek Century (© 1993 WordPerfect Corporation). В таблицу символов были добавлены новые и удалены неиспользуемые символы, изменены их позиции, добавлены надстрочные и подстрочные знаки (см. табл.). Таблица символов Andrew Greek показана на рис.1. Пример сложного надстрочного знака представлен на рис.2. Все надстрочные и подстрочные знаки имеет нулевую ширину.
Рис. 1. Таблица символов шрифта Andrew Greek
Таблица. Буквы и знаки шрифта Andrew Greek
Рис. 2. Пример сложного надстрочного знака
На рис. 3 показано размещение букв и знаков греческого алфавита по клавишам клавиатуры компьютера. Для ввода греческих букв используются 34 клавиши, в том числе: 25 буквенных, 7 знаковых и одна специальная — “маленький пробел”, а также клавиша Shift.
Рис. 3. Фрагмент клавиатуры компьютера
Ввод греческих букв осуществляется врежиме работы клавиатуры “латиница”.
Ввод строчных букв осуществляется путем нажатия соответствующих клавиш.
Ввод надстрочных (подстрочных) знаков, изображенных в нижней части клавиш, осуществляется нажатием соответствующей клавиши, а изображенных в верхней части — при нажатой клавише Shift.
Ввод строчных букв с надстрочными и подстрочными знаками осуществляется в следующем порядке: сначала путем нажатия знаковых клавиш вводятся надстрочные (подстрочные) знаки; затем нажатием буквенной клавиши вводится соответствующая буква.
Ввод заглавных букв осуществляется путем нажатия соответствующей буквенной клавиши при нажатой клавише Shift.
Ввод заглавных букв с надстрочными и подстрочными знаками осуществляется в следующем порядке: сначала вводятся знаки, затем нажимается специальная клавиша “маленький пробел”, а потом — заглавная буква.
Удаление букв с надстрочными и подстрочными знаками осуществляется с помощью клавиши Backspace путем двух- или трехкратного ее нажатия. При этом курсор должен быть установлен за удаляемой буквой. Число нажатий клавиши Backspace зависит от числа надстрочных (подстрочных) знаков, а в случае удаления заглавной буквы оно увеличивается на единицу (учитывается “маленький пробел”).
Ввод строчной буквы с надстрочным и подстрочным знаками:
– вводится надстрочный знак путем нажатия соответствующей клавиши:
– вводится подстрочный знак путем нажатия соответствующей клавиши при нажатой клавише Shift:
– вводится буква:
Ввод заглавной буквы с надстрочным и подстрочным знаками:
–водится надстрочный знак путем нажатия соответствующей клавиши при нажатой клавише Shift:
– вводится “маленький пробел” путем нажатия специальной клавиши:
– водится буква путем нажатия соответствующей клавиши при нажатой клавише Shift:
Примеры введенного текста:
KDRS old Cyr — Windows TrueType шрифт, позволяющий осуществлять ввод древнерусских текстов (в упрощенном графическом варианте) вместе со специальным надстрочным знаком “титло”, а также буквой “ять”. Знак “титло” ставится над словами, в которых при записи пропущены некоторые буквы (одна или несколько). Используются три типа титл: короткое, если пропущена одна буква; среднее, если пропущены две-три буквы и длинное, если пропущено более трех букв. Например, в тексте Древнерусского словаря встречаются слова, в которых используются титла и буква “ять”:
Текст можно вводить в любом текстовом редакторе, позволяющем использовать шрифты с символами различной ширины (в том числе и нулевой) и поддерживающем шрифтовой ttf-формат.
В основе способа отображения или печати буквы алфавита с надстрочным знаком “титло” также лежит идея применения символа “нулевой ширины”, описанная выше.
Для создания шрифта использовался пакет FONTOGRAPHER 3.5. За основу шрифта KDRS old Cyr был взят шрифт Times New Roman Cyr (© The Monotype Corporation plc. Data © The Monotype Corporation plc/Type Solutions Inc 1990 — 1992). В таблицу символов были внесены следующие изменения: вместо символов <%>, <$>, <^>, <#> поставлены соответственно “среднее титло” , “короткое титло” , “длинное титло” и буква “ять” .
Таблица символов KDRS old Cyr представлена на рис. 4. Пример надстрочного знака “короткое титло” представлен на рис. 5.
Пример введенного текста:
Рис. 4. Таблица символов шрифта KDRS old Cyr
Рис. 5. Символ “короткое титло”
При создании словарей, словников и указателей важную роль играет сортировка. Ее необходимость вызвана большим объемом различных данных, для поиска которых можно потратить часы, дни или даже годы. Самая распространенная, применяемая для текстовой информации так называемая алфавитная сортировка, которая осуществляется по возрастанию или по убыванию. Дональд Кнут определяет такой вид сортировки более узким понятием упорядочение.
Современные СУБД (PARADOX, ACCESS, FOXBASE, DBASE и др.) имеют встроенные методы и процедуры обработки информации (поиск, замена, сортировка и др.). Однако эти методы используют лишь определенные языковые драйверы, поддерживающие только современные языки, их стандартные наборы символов, и не позволяют выполнить, например, алфавитную сортировку древнерусских и греческих слов. В работе рассматривается метод сортировки, при разработке которого используются следующие два подхода:
Для разработки метода сортировки таблиц баз данных, содержащих текстовые поля, представленные нестандартными наборами символов, в работе использовался второй подход.
Прежде всего эта программа предназначена для лингвистов, работающих с нестандартными шрифтами. Программа снимает многие ограничения и расширяет возможности в работе со средствами сортировки. Появляется возможность добавления новых и удаления ненужных символов в алфавите. Это средство для тех, кто не удовлетворен стандартными методами сортировки и использованием различных языковых драйверов, изменение которых часто приводит к серьезным проблемам, неудобствам, потерям времени и информации.
Программа также предназначена для любого пользователя, у которого появилась потребность или желание применить произвольный порядок сортировки данных таблиц PARADOX.
Программа состоит из четырех основных частей:
Подготовка исходных данных осуществляется автоматически. Исключением является создание таблиц порядка сортировки.
Обработка исходных данных заключается в их вводе и преобразовании. Для удобного ввода информации было создано несколько экранных форм (рис. 6, 7). Одна из важных задач — заполнение и перекодировка таблиц порядка сортировки. Все они имеют одинаковую структуру (рис. 8).
Таблицы заполняются всеми возможными (допустимыми) символами PARADOX (32–127, 171–255) и их ANSI кодами. После редактирования и закрытия пользователем таблицы программа перекодирует символы в поле КОДИРОВКА. Перекодировка заключается в следующем: для каждого символа создается новый, связанный с первым символ, который записывается в поле КОДИРОВКА. Цель этой операции — связать порядок сортировки, заданный пользователем, со стандартным порядком сортировки PARADOX.
Рис. 6. Задание параметров результирующей таблицы
Рис. 7. Задание порядка сортировки
Рис. 8. Структура таблиц порядка сортировки
Перекодировка осуществляется в соответствии с полем ПОРЯДОК, в котором пользователь определяет алфавит, т.е. порядок следования символов при сортировке.
Если для разных символов в поле ПОРЯДОК введены два или более одинаковых числа, то их порядок в алфавите одинаков (например, порядок у заглавных и прописных букв может быть одинаков). Если для символов не введен никакой порядок или они удалены из алфавита, то программа не будет использовать их при сортировке (например, знак “титло” или знаки ударения). Необходимо всем символам, используемым в тексте, проставить правильный порядковый номер. (Например, очень часто при составлении алфавита символы “Ъ”, “Ь” не приводят в алфавитном порядке, мотивируя тем, что эти знаки не встречаются в начале слова. Всегда нужно помнить, что сортировка производится не по первой букве слова, а по всем его символам. В противном случае слово рать будет находится по алфавиту раньше слова ратник.)
При изменении и создании порядка сортировки можно добавлять новые символы, в том числе и двойные. В старославянском языке существуют двойные буквы, т.е. буквы, состоящие из двух символов. Иногда для удобства или по неграмотности вместо “специально сделанных” букв набирают более простую в запоминании комбинацию из других символов. Например, букву “Оу” получают из комбинации букв “О” и “у”. Встречаются и более интересные варианты. Букву “Ы” набивают в виде комбинации символов “Ь” и “I”. Наиболее распространены эти ошибки среди филологов. Это, по-моему, вызвано не только специфическим отношением к буквам и словам как к предмету изучения, но и незнанием или непониманием принципа работы и отображения символов на ЭВМ. При этом почти стопроцентно работает известный принцип Microsoft: “Как на экране, так и на бумаге”. Но для автоматической обработки древнерусских и старославянских текстов даже поиск представляет большую сложность. А если еще добавить хотя бы два-три различных шрифта, используемых в одном слове для отображения одних и тех же символов, то задача усложняется настолько, что рациональность и скорость выполнения операции поиска практически равны нулю. Экранный символ является лишь “этикеткой” той “банки” информации, которая хранится в памяти компьютера.
Создание новых данных заключается в составлении новой таблицы и заполнении в ней нового поля. Программа читает посимвольно каждое слово, ищет в таблице порядка кодировки связанные символы и если находит их, то пишет во вспомогательное поле также посимвольно, а если символ не задан в порядке сортировки, то он не перекодируется во вспомогательное (новое) поле. Таким образом, ненужные символы не участвуют в кодировке.
Обработка новых данных, т.е. сортировка по новому полю, его удаление, осуществляется пользователем самостоятельно и описана выше.
Для работы программы необходимо иметь русскую версию СУБД PARADOX 5.0 или выше, а также все необходимые условия для ее нормального функционирования: компьютер класса IBM486 и выше, MS Windows 3.1 (русскую версию) с разрешением экрана 800x600 точек, 6 Mb RAM.
PARADOX 5.0 поддерживает два типа наборов символов: ANSI и OEM коды. Каждый шрифт имеет свою таблицу, содержащую 255 символов. В последнее время с появлением новых версий Windows количество символов в таблице значительно возросло, но очень многие программы пока еще не поддерживают эти новшества, среди них и PARADOX 5.0.
Это связано с тем, что PARADOX 5.0 поддерживает свои старые версии, в том числе и версии DOS, поэтому он использует лишь 255 символов. В зависимости от языкового драйвера PARADOX использует разный порядок сортировки. Программа написана для драйвера PARADOX Cyrr 866. Первые 32 символа, а также символы со 128 по 170 включительно используются PARADOX для своих целей, несмотря на то, что они могут быть заполнены в таблице символов и воспринимаются другими программами.
Ниже приведен стандартный (неточный) порядок сортировки:
32, 171–190, 30, 31, 33–64 | служебные символы |
97, 65, 98, 66... | чередование прописных и заглавных букв латинского алфавита (97...122 — прописные буквы, 65...90 — заглавные буквы) |
224, 192, 225, 193... | чередование прописных и заглавных букв русского алфавита (224...255 — прописные буквы, 192...223 — заглавные буквы) |
91–96, 123–127, 170, 186,175, 191, 161, 162 | служебные символы |
ObjectPAL представляет собой интегрированный язык программирования, предназначенный для разработки приложений, работающих под управлением Paradox для Windows.
ObjectPAL — это объектно-ориентированный язык программирования высокого уровня, реализующий расширенную обработку событий. Он дает возможность разрабатывать приложения, в точности отвечающие конкретным нуждам потребителя, путем создания совершенно новых кнопок, меню, окон диалога, сообщений и т.д. Основными понятиями языка являются понятия ОБЪЕКТ и СОБЫТИЕ.
Формальное определение гласит, что ОБЪЕКТ состоит из данных и кода. По терминологии ObjectPAL объекты обладают свойствами (цвет, положение, толщина и т.д.) и методами (код, который определяет поведение объекта). Свойства — это данные. Методы — это код. События — строго определенные действия системы или пользователя (открытие формы, нажатие кнопки, перемещение курсора и т.д.).
Для создания программы был выбран язык программирования ObjectPAL по целому ряду причин:
Пакет программных средств ANDREW’s TOOLS является перспективной, развивающейся системой. На данный момент в пакете помимо представленных разработок находится программа ANDREW’s SLOV.
Программа ANDREW’s SLOV позволяет составлять переводные словники, указатели и базы данных на основе уже введенных текстов. Она дополняет программу ANDREW’s SORT и позволяет совершать полный цикл работ по переводу и преобразованию текстовой информации в базы данных, необходимые для дальнейшей обработки и исследований.
Кроме программных средств, работающих с нестандартными шрифтами, ANDREW’s TOOLS включает в себя целую группу различных исследований, методик и программ по созданию баз данных, информационных систем на CD-ROM.
© НОК CLAIM, 2006-2012. Замечания, вопросы и сведения об ошибках просим сообщать в форуме или присылать администратору сайта.
|