Модели представления текста
Наиболее понятная модель представления текста, которой придерживаются многие пользователи при работе с текстовыми редакторами, — это печатание текста на пишущей машинке. В этом случае текстовые символы (буквы, числа и знаки пунктуации) занимают определенные позиции на печатном листе. «Машинописная» модель обеспечивает простоту представления операций по исправлению текста, например печать над ошибочными символами; однако не предоставляет возможности выполнения других операций, доступных ЭВМ, таких, как вставка слова в середину строки. Результаты многих исследований, основанных на анализе наиболее общих ошибок, показали, что пользователи действительно рассматривают текстовое редактирование как некий вариант печатания на машинке [19]. Насколько разработчик новой системы склонен использовать именно эту модель представления, зависит от соответствия текстовых данных и выполняемых системой операций этой модели. Машинописная модель использовалась как основа при построении Четверть-плоскостной (quarter-plane) Модели Айронса [29].
В традиционных моделях представления данных в текстовых редакторах текст рассматривается как единая последовательность (поток) символов: букв, чисел, пробелов, знаков пунктуации. Некоторые из них достаточно тесно связаны с понятием «строка» и построчным представлением. Для таких редакторов разрывы между строками являются крайне важными, и создаются редакторы подобного типа, как правило, для печатающих терминалов, поскольку именно они используют указание строк для отыскания данной позиции в документе. При этом процесс поиска слов очень затрудняется, если они могут быть перенесены на другие строки. Другие редакторы подобного типа предназначены для редактирования программ; при этом автоматический перенос слов обычно не применяется. В строковых редакторах иногда используют разные команды для редактирования нескольких строк и для выполнения модификаций в пределах одной строки, так как в данных случаях применяют различные способы адресации (как правило, номера строк в одном случае и соответствующую цепочку символов — в другом).
Экранные редакторы не являются специально «строко-ориен - тированными», «рассматривают» весь документ как единую цепочку знаков. В пределах абзаца строки строятся таким образом, чтобы последовательность составляющих их слов по длине - точно соответствовала бы размеру строк, принятому на данной странице; если пользователь попытается ввести в строку больше слов, чем допускается заданным размером, эти «лишние» слова будут автоматически перемещены на следующую строку. Эта особенность, несколько раз уже отмечавшаяся ранее в данной главе, называется переносом слов. Некоторые редакторы выполняют перенос только при вводе первоначального текста и по особому запросу пользователя; другие автоматически делают это после любой вставки или удаления частей текста в абзаце.
Характерным различием между машинописной моделью представления текста и моделью текста как цепочки символов (потоковой моделью) является обработка пустого места в конце каждой строки текста: при использовании первой модели программа автоматически заполняет его пробелами, в то время как в текстах с представлением данных в виде цепочки символов какие-либо знаки отсутствуют вообще. Практическое различие (между этими двумя моделями проявляется в операциях указания позиции и ввода с клавиатуры; эти операции довольно просто выполняются в рамках машинописной модели, но при работе с потоковой моделью, прежде чем пользователь будет в состоянии печатать нужный текст, он должен выделить в строке последний непустой символ и уже затем перейти на требуемую позицию. По всей видимости, машинописная модель лучше всего подходит для строко-ориентированных применений подобно редактированию текстов программ, а потоковую модель предпочтительнее использовать в тех случаях, когда имеется возможность соразмерного распределения пробелов и интерактивного переноса слов на очередную строку.
В системах, основанных на потоковой модели, иногда бывает необходимо при установленной фиксированной длине строки давать дополнительное указание на ее конец. Для этого пользуются символом «Возврат каретки», вставляемым в требуемое место строки. Символы «Возврат каретки» служат одновременно и обычными символами, которые могут быть вставлены или уничтожены как любые другие, и специальными знаками, показывающими системе, что следующий за ними символ должен начинать новую строку. Разбиение текста на абзацы также может определяться символами «Возврат каретки» (двумя подряд) или же различными специальными символами.
Многие системы обеспечивают возможность специальной обработки определенных типовых фрагментов текста. В докумен - то-ориентированных редакторах обычно можно манипулировать символами, словами, предложениями и абзацами. Программно - ориентированные редакторы имеют дело в основном с символами, словами и строками.
Некоторые системы также позволяют учитывать иерархическую организацию текста: в программно-ориентированных редакторах учитывается структура предложений соответствующего языка программирования, а в документо-ориентированных редакторах обеспечивается рассмотрение документа в виде структуры глава — раздел — пункт. Такое усовершенствование редакторов по обработке документов можно рассматривать как развитие системы NLS, разработанной Энгелбартом {17] с целью «усиления поведенческого интеллекта». По пользовательскому запросу подобные системы обычно позволяют отдельно просматривать заголовки основных частей текста, что дает пользователю возможность наглядно представить себе структуру документа. Пользователь может каким-либо образом изменить организацию текста, перемещая полностью некоторые разделы, что, конечно, допустимо только в том случае, если он сам является автором данного документа. Для всех остальных пользователей, цель работы которых состоит в ознакомлении с текстом документа, предоставляется возможность отбирать наиболее интересные и полезные для чтения разделы.
Последним элементом модели представления документальных данных для пользователя является отображение в тексте ' нехарактерных символов, которые включают печатные знаки типа «креста», математические символы, например знак «меньше или равно», греческие буквы а, р, у и др. Существуют два основных способа решения этой проблемы. Традиционный путь — при редактировании печатать их с помощью обычных символов, отмечая при этом, что, когда документ будет готов для окончательной печати, их следует заменить на символы специальных шрифтов, имеющих общее название «шрифтовой набор рі». Второй подход состоит в расширении множества символов кода ASCII или любого другого используемого в системе кода с тем, чтобы каждый нестандартный знак имел свое печатное изображение. В настоящее время проблема разработки дополнительных кодовых наборов символов составляет насущный вопрос для организаций, занимающихся проблемами разработки международных стандартов, и поставщиков издательского оборудования [25—27, 45].