In Russian: Latin letters DOS Windows Unix KOI-8 Unix ISO-5
In English:         None

Институт Высокопроизводительных Вычислительных Систем РАН
Леонид Ованесбеков [94c]

Технология построения гипертекстов


Institute for High-Performance Computer Systems RAS
Leonid Ovanesbekov [94c]

Technology of Hypertext Development


РОССИЙСКАЯ АКАДЕМИЯ НАУК
- - - - - 
ВЫЧИСЛИТЕЛЬНЫЙ ЦЕНТР КОЛЛЕКТИВНОГО ПОЛЬЗОВАНИЯ
___________________________________________

На правах рукописи


ОВАНЕСБЕКОВ Леонид Гайтович 



ТЕХНОЛОГИЯ ПОСТРОЕНИЯ ГИПЕРТЕКСТОВ 



Специальность 05.13.11. "Математическое и программное обеспечение 
вычислительных машин, комплексов,  сетей и систем"


Диссертация на соискание ученой степени 
кандидата физико-математических наук







Научный руководитель: академик Бурцев В.С.




Москва 1993 


Оглавление

Введение
1. Обзор гипертекстовых систем
1.1. Концепция гипертекстовой системы
1.2. Гипертекстовые системы среди систем других типов
1.3. Классификация гипертекстовых систем по областям применения
1.4. Развитие идеи гипертекста
1.5. Другие технологии построения гипертекстов
1.6. Необходимость в технологиях построения гипертекстов
2. Разработка технологии "HyRe-Tech" построения гипертекстов
2.1. Терминология
2.2. Классификация сущностей в предметной области "HyRe-Subject-Entity"
2.3. Классификация элементов в гипертекстах "HyRe-HT-Elements"
2.4. Технология "HyRe-Tech" в целом
2.5. Перечень основных категорий и объектов
2.6. Концептуальный план гипертекста
2.7. Каталоги возможных способов организации гипертекстов
2.8. Формат описания гипертекстов "HyRe-Desc"
2.9. Технология "HyRe-Tech" среди других технологий
2.10. Понятие "вид гипертекстов"
2.11. Коллекция возможных видов гипертекстов
2.12. Выводы
3. Гипертекстовые базы знаний
3.1. Гипертекстовые базы знаний попадают в экологическую нишу
3.2. Типовая гипертекстовая база знаний
3.3. Набор правил-эвристик
3.4. Дополнительные формы знаний
3.5. Заключение
4. Система построения гипертекстов HyRe
4.1. Цели разработки системы
4.2. Особенности HyRe как гипертекстовой системы
4.3. Две технологии подготовки гипертекстов
4.4. Входные форматы описания гипертекста
4.5. Действия, возможные при просмотре гипертекста
4.6. Концепция внешних программ в системе HyRe
4.7. Перечень спецификаций внешних программ
4.8. Требования внешних программ к системе построения гипертекстов HyRe
4.9. Организация внешних программ на языке С++.
4.10. Внешние программы как информационная технология
4.11. Опыт использования системы HyRe
5. Опыт построения конкретных гипертекстов
5.1. Справочник пользователя по ОС Эльбрус
5.2. Справочник-подсказка по языку искусственного интеллекта OPS/ST
5.3. Коллекция инструментальных текстов ОЛГ-СИТ
5.4. Подсказка по языку PAL работы с СУБД Paradox
5.5. Справочник по приемам программирования на языке Си++
5.6. Выводы из общего опыта построения гипертекстов
Заключение и выводы
Литература
Приложение 1. База знаний по построению гипертекстов
Приложение 2. Техника рекурсивного развития базы знаний
1. Исходные положения
2. Одноуровневый аналитический пересмотр системы эвристик
3. Двухуровневый аналитический пересмотр системы эвристик
4. Выводы

Введение

Гипертексты - это новая технология представления информации. Информации определенного вида - той, что ранее представлялась в обычных текстах.

Гипертексты дают текстам два дополнительных смысловых пространства. В тексте выделяются особые поля-ссылки, которые могут "сразу" привести читателя к нужным главам/темам, рисункам, описаниям. Благодаря этому процесс чтения становится принципиально иным - гипертекст можно читать/просматривать многими различными путями и читатель сам выбирает тот путь просмотра, который ему наиболее удобен.

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

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

Другими словами, в области гипертекстов, так же, как это бывает в других областях, вслед за разработкой и воплощением оригинальных концепций, открывающих новые возможности, встает задача освоения этих возможностей, задача выработки методологии их использования в тех или иных прикладных задачах.

Данная диссертационная работа как раз и посвящена методологическим вопросам построения гипертекстов.

Если рассмотреть наиболее простую технологию построения гипертекста, то она будет состоят из следующих пяти основных шагов.

Шаг 1. Нужно разбить текст на отдельные главы/ темы.
Шаг 2. Нужно представить себе некоторый основной путь чтения гипертекста и расставить, соответственно, поля-ссылки, ведущие читателя от темы к теме по этому основному пути.
Шаг 3. Нужно выделить в тексте слова-ссылки, точнее, нужно найти ситуации/ моменты в процессе чтения текста, когда пользователь может захотеть перейти от основного пути чтения текста к другим возможным путям чтения.
Шаг 4. В результате шага 3 могут появиться слова-ссылки, для которых еще не написаны соответствующие главы/темы. Такие главы нужно дописать.
Шаг 5. Нужно связать ссылки с существующими темами.

Если рассматривать технологию построения гипертекста на таком элементарном уровне, не касаясь различных дополнительных механизмов, возможных в гипертекстах, то процесс построения гипертекста представляется достаточно простым.

И эта простота ведет к широкому использованию гипертекстов, а следовательно, ко все большему врастанию этой технологии в нашу информационно-техническую культуру. В свою очередь, чем шире используются гипертексты, тем больший интерес и важность приобретают различные новые точки зрения на гипертексты как на один из видов информационных систем, новые точки зрения на процесс построения гипертекстов.

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

Соответственно, в первой главе настоящей диссертации дан обзор и анализ истории развития гипертекстовых систем; описаны ключевые разработки в этой области; представлены концепции, связанные с идеей гипертекста.

Во-вторых, сама постановка задачи построения гипертекста может быть различной.

Одно дело, когда мы уже имеем готовый, относительно полный текст и его надо превратить в гипертекст. В этом случае технология превращения обычного текста в гипертекст тривиальна и сводится к разметке текста специальными командами. Хотя даже здесь, если попытаться посмотреть чуть глубже, то можно увидеть, что шаги 2, 3 и 4 не совсем тривиальны.

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

Соответственно, во второй главе диссертации предложена технология (ей дано название - технология "HyRe-Tech"), следуя которой разработчик гипертекста делает определенные шаги, которые (а) помогают ему структурировать описываемую информацию, и одновременно (б) помогают строить гипертекст, отображая структуру предметной области в структуру гипертекста.

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

Возможной таксономии гипертекстов с точки зрения структуры и вкладываемого в них содержания, посвящены разделы 2.10 и 2.11, а идее гипертекстовой базы знаний - глава 3 настоящей диссертации.

Тот факт, что гипертексты - это тексты, которые готовятся для просмотра не на бумаге, а на экране, позволяет посмотреть на гипертексты с еще одной стороны - как располагать текст на экране? Или, в более широкой постановке вопроса - как можно пользоваться различными возможностями какой-либо практической системы построения гипертекстов? На этот вопрос в данной работе было решено ответить при помощи практического воплощения идей главы 3: построением конкретной базы знаний, по методам построения гипертекстов.

Основная содержательная часть этой базы знаний - иерархия ситуаций, в которых могут быть полезны эти правила и тексты самих правил, дана в приложении 1.

Автором также предложен способ рекурсивного развития системы эвристик, описывающей экспертный опыт выполнения какой-либо работы. Это кратко описывается в статье "Техника рекурсивного развития базы знаний", которая дана в качестве приложения 2.

Говоря о гипертекстах невозможно обойти стороной и вопрос о конкретной практической системе построения гипертекстов. Поначалу автор данной работы стремился сделать минимальную простую (но не тривиальную) систему построения гипертекстов, не претендуя на выдвижение новых концепций в области гипертекста, желая лишь того, чтобы данная система давала возможность строить различные конкретные практические гипертексты. Такая система была построена (система построения гипертекстов HyRe).

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

Система построения гипертекстов HyRe, разработанная автором, описывается в главе 4., в разделах 4.1. - 4.5.

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

При реализации собственной системы построения гипертекстов автор попытался заполнить этот разрыв, разработав собственную концепцию добавления внешних программ, основанную на использовании объектно-ориентированной технологии программирования.

Концепции внешних программ, реализованной в системе построения гипертекстов HyRe, и вопросам использования внешних программ посвящена вторая часть главы 4., разделы 4.6. - 4.10.

В процессе исследовательской работы, описанной в данной диссертации, и в результате практического использования системы построения гипертекстов HyRe, автором был разработан ряд гипертекстов. Два из них, справочник пользователя по операционной системе ОС Эльбрус и справочник-подсказка по языку искусственного интеллекта OPS/ST, являются полноценными, законченными гипертекстами, имеющими прикладное значение. Кроме этого, автором был спроектирован ряд других, экспериментальных гипертекстов. Эти экспериментальные гипертексты не всегда были закончены и не всегда имели большое практическое значение, однако они позволили автору сделать определенные методологические и технологические наблюдения.

Этим различным практическим и экспериментальным гипертекстам посвящена пятая глава.

Наконец, в Заключении кратко подводятся итоги диссертационной работы.

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

В диссертационной работе поставлена цель исследовать концептуальные вопросы построения гипертекстов. Для достижения этой цели в работе решаются следующие основные задачи:

- разработка технологии построения гипертекстов;
- разработка базы знаний по конкретным приемам построения гипертекстов;
- разработка и реализация оригинальной программной системы построения гипертекстов;
- апробация разработанной технологии на реальных гипертекстах;
- исследование вопросов, связанных с расширением системы построения гипертекстов дополнительными внешними программами.

Методы исследований базируются на теоретических результатах, достигнутых в области разработки гипертекстовых систем, моделей данных и области объектно-ориентированного подхода к программированию.

Научная новизна диссертационной работы состоит в:

- разработке концептуальной модели предметной области, ориентированной на построение гипертекстов;
- разработке оригинальной технологии построения гипертекстов;
- введении концепции "гипертекстовой базы знаний";
- разработке базы знаний по приемам построения гипертекстов;
- разработке и реализации оригинальной системы построения гипертекстов, ориентированной на использование внешнего редактора текстов;
- разработке принципов организации подключения внешних диалоговых программ к системе построения гипертекстов.

В диссертации получены следующие новые результаты.

Разработана концептуальная модель построения гипертекста для предметной области, комбинирующая достоинства моделей данных (иерархическая модель, модель "сущность-связь", бинарная модель) и гипертекстовой технологии.

На основе этой модели разработана оригинальная технология построения гипертекстов, описывающая основные этапы нисходящего семантического проектирования гипертекста и разработки его основных структурных элементов. Вводится два промежуточных представления структуры гипертекста: перечень основных категорий и объектов, и концептуальный план гипертекста. Процесс проектирования гипертекстов базируется на эвристическом переходе [18] от классификации сущностей в предметной области к классификации элементов в гипертекстах.

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

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

Введена концепция гипертекстовой базы знаний. Проанализирована возможная структура гипертекстовой базы знаний. Гипертекстовые базы знаний предлагается рассматривать как новый класс информационно-программных продуктов, поскольку они обладают всеми характерными чертами таких продуктов: способны отчуждаться от разработчика, имеют характерные признаки, занимают четко определенную нишу среди других продуктов. Построен конкретный пример гипертекстовой базы знаний - база приемов построения гипертекстов при помощи системы HyRe.

Разработана и реализована система построения гипертекстов, ориентированная на пакетный принцип построения гипертекстов: основной текст подготавливается в произвольном текстовом редакторе, работающем с ASCII-файлами; в нем делаются минимальные добавления, нужные для построения гипертекста. Реализованы 2 входных формата подготовки гипертекстов: в одном из них команды, необходимые для форматирования текста в гипертекст, размещаются по тексту; в другом формате все команды вынесены в отдельный служебный файл.

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

Практическая ценность. 1) Разработанная технология построения гипертекстов дает выигрыш в качестве получаемой гипертекстовой системы, если процесс разработки включает этап анализа предметной области и определение границ представляемой информации. Особую роль данная технология может сыграть при разработке больших гипертекстовых справочников, энциклопедий, учебников, т.е. для систем, которые потенциально могут явиться основным источником знаний для пользователя по всей предметной области. 2) Данная технология может применяться при построении качественной on-line документации или подсистем подсказки для различных программных комплексов. 3) Разработанная система построения гипертекстов "HyRe" позволила сделать эффективный и емкий оперативный справочник по операционной системе "Эльбрус" для пользователей. При создании этого справочника интенсивно использовалась предлагаемая технология построения гипертекстов, а также база знаний по методам построения гипертекстов. 4) Предлагаемая технология построения гипертекстов была применена при разработке базы знаний по выполнению механизационных работ в сельском хозяйстве в Сибирском НИИ Механизации и Электрификации сельского хозяйства. 5) Система построения гипертекстов, технология и база знаний использовались при построении справочника-подсказки по языку OPS/ST, разработанного С.Хлебниковым и А.Никитиным в НПО "Инфотех". 6) Система HyRe сама по себе представляет коммерческий продукт, имеет документацию, может быть интересной для р

зличных организаций, разрабатывающих оперативные справочники, on-line документацию, подсистемы подсказки и т.п.. 7) Разработанная база знаний по построению гипертекстов также представляет самостоятельную практическую ценность, как для пользователей системы HyRe, так и для программистов, пользующихся другими системами построения гипертекстов.

Апробация работы. Результаты диссертации докладывались автором на научных семинарах ВЦКП РАН, на международной конференции "Региональная информатика" РИ-93. Результаты диссертации были успешно использованы (а) при разработке базы знаний по выполнению механизационных работ в сельском хозяйстве независимым разработчиком-экспертом; (б) при разработке автором гипертекста-справочника по ОС Эльбрус, принятого в эксплуатацию в качестве on-line документации; (в) при разработке автором ряда других справочников-гипертекстов.

Публикации. По теме диссертации опубликовано 3 работы.

Объем и структура работы. Диссертация состоит из введения, пяти глав и заключения - всего 139 страниц, включая 11 рисунков, библиографию в 60 названий и два приложения на 31 странице.

 

1. Обзор гипертекстовых систем

 

1.1. Концепция гипертекстовой системы

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

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

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

Тед Нельсон, один из пионеров гипертекстов, определял их так: "комбинация текста на естественном языке с компьютерной возможностью интерактивных переходов или динамического показа ... нелинейного текста, ... который не может быть напечатан традиционным способом на традиционной бумаге".

Ниже мы будем использовать как существительное "гипертекст", так и прилагательное "гипертекстовый".

Далее в этой главе будет дан обзор гипертекстовых систем, приложений, проектов. Большая часть данного материала взята из очень хорошего обзора [1].

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

Однако, несмотря на свою простоту, эта идея дала толчок многим другим интересным идеям и разработкам.

1.2. Гипертекстовые системы среди систем других типов

Существует несколько типов систем, которые похожи на гипертексты, разделяют многие их свойства: многооконные системы, файловые системы с развитым редактором, системы форматизации текстов, системы управления базами данных (СУБД), гиперсреды.

Чтобы лучше понять, что такое гипертексты, опишем, почему эти похожие на гипертекст системы мы не считаем гипертекстами.

Многооконные системы имеют практически такой же интерфейс как у гипертекстов, и поэтому внешне похожи на гипертекстовые системы, но у них нет единой базы данных.

Файловые системы. Можно утверждать, что набор файлов в справочнике составляет единую базу данных и что при помощи редактора текстов можно переходить от одних текстовых файлов к другим. Однако, для того, чтобы система могла называться гипертекстом, она должна иметь более развитое понятие ссылки и поддерживать переход по ссылке более простым и удобным способом (за одно нажатие клавиши), чем вызов редактора (набор имени файла, вызов редактора - много нажатий клавиш).

Системы форматизации текстов (Например, система Troff [2] в ОС Unix). Исходный документ готовится как система небольших текстовых фрагментов, пронизанная ссылками из одних фрагментов на другие, и в этом есть сильное сходство с гипертекстами. Однако между фрагментами возможна только иерархическая структура, а не сетевая, и нет интерфейса для диалогового просмотра на экране.

СУБД. Современные СУБД имеют связи различных типов, но у них нет единого общего интерфейса который является существенной чертой гипертекстовых систем. В СУБД интерфейс разрабатывается для каждого приложения, для каждой конкретной базы данных под нужды пользователя.

С появлением видеодисков возник растущий интерес к системам более общего типа, нежели гипертекстовые: системы типа "гиперсреда" ("hypermedia"), в которых элементами, связанными в единую сеть, могут быть тексты, графические изображения, речь в машинном цифровом представлении, стереозаписи, картинки, фотографии, мультипликация, видеоклипы, внешние диалоговые программы и т.д.. Однако мы в нашем обзоре будем обсуждать более традиционные, гипертекстовые системы, а не системы типа "гиперсреда".

Подытоживая это краткое сравнение, можно предложить следующее описание идеализированной гипертекстовой системы.

- Есть база данных. База данных - это сеть текстовых (графических) узлов.
- Экраны однозначно соответствуют узлам базы данных. Открытых окон обычно немного, меньше чем узлов.
- Поддерживаются стандартные операции многооконных систем: операции над окнами, операции просмотра текста в окне.
- Окна могут содержать ссылки (link icons), которые представляют указатели на другие узлы. Ссылка - это некоторое текстовое поле.
- Пользователь может легко создавать новые узлы и новые связи.
- Базу данных можно просматривать:
- следуя логике ссылок,
- искать нужную тему сквозь весь гипертекст по ключевому слову,
- через специальную подсистему, которая выводит на экран, в графическом режиме, сетевой граф взаимосвязей между узлами базы данных,
- последовательно, как текстовый файл.

1.3. Классификация гипертекстовых систем по областям применения

Области применения, свойства гипертекстовых систем

С точки зрения функциональных возможностей можно выделить следующие основные свойства гипертекстов:


- Иерархичность: Есть ли в системе особая поддержка для иерархических подструктур в гипертексте?
- Сетевые ссылки: Поддерживает ли система неиерархические (перекрестные) ссылки?
- Типы ссылок: Могут ли ссылки иметь тип?
- Атрибуты: Может ли разработчик гипертекста связывать со ссылками или узлами пары "атрибут/значение"?
- Добавление процедур: Можно ли с некоторым событием (например, нажатии клавиши мыши в определенном узле) связать вызов произвольной внешней программы, связанной с этим узлом?
- Форма работы: Является ли система диалоговой или она работает в пакетном режиме?
- Поиск строки: Можно ли в гипертексте искать нужные текстовые фрагменты не по ссылкам, а по подстроке, "сквозь" все узлы гипертекста?
- Использование редактора: Есть ли в системе свой текстовый или графический редактор или система ориентирована на использование внешнего редактора текстов и/или графики?
- Текстовый редактор: Какой редактор используется для создания и модификации содержания узлов гипертекста?
- Пути: Можно ли при создании гипертекста выделять в нем некоторые особые пути просмотра?
- Версии: Могут ли ссылки или узлы иметь более одной версии, варианта?
- Многопользовательский режим: Могут ли данный гипертекст одновременно просматривать несколько пользователей?
- Картинки или графика: Можно ли к текстовой информации добавлять какую-либо форму графической информации?
- Графический просматриватель структуры гипертекста: Может ли пользователь увидеть структуру гипертекста в виде сети, при помощи специального графического просматривателя?

С точки зрения применения, на самом верхнем уровне, гипертекстовые системы можно разделить на следующие группы.

a. Макробиблиотечные системы

Широкое распространение глобальных вычислительных сетей привело к тому, что со многими текстовыми документами работа в существенной степени ведется через вычислительную сеть: чтение текстов, добавление критических замечаний, публикация - все это делается через сеть и при помощи сети. Кроме того, появление библиотечных центров с большими объемами информации на машинных носителях позволило с помощью гипертекстов сделать "живыми" те или иные ссылки на статьи, справочники, технические отчеты, книги. Читатель гипертекста, в принципе, теперь имеет возможность получить для себя документ, соответствующий ссылке, через сеть.

Соответственно, ряд гипертекстовых систем был создан для изучения и поддержки технологии распределенного создания и использования текстовых документов. Такие системы мы будем называть "макробиблиотечными" (macro literary system).

b. Системы для поддержки интеллектуальной работы

Ряд гипертекстовых систем был создан для изучения и поддержки такого стиля интеллектуальной работы, когда человек может размышлять над различными слабоструктурированными фрагментами решения задачи.

c. Системы просмотра

Целый ряд систем был создан для быстрого просмотра/ изучения текстовой информации. Это справочники, энциклопедии, документация на ту или иную техническую систему, быстровызываемая подсказка по работе с какой-либо компьютеризованной системой, учебники и т.п., т.е. системы, когда легкость просмотра играет существенную роль.

d. Системы для исследований гипертекстовой технологии

Некоторые системы были разработаны для проверки новых идей в области гипертекстов, для экспериментов в различных областях применения.

Далее мы кратко опишем некоторые системы для каждой группы.

A. Макробиблиотечные системы

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

Аа. Система Memex

Проект системы Memex считается первым проектом гипертекстовой системы. Этот проект был предложен Ванневой Буш [3] в 1945 году. В этом проекте она призывала потратить значительные усилия, чтобы построить механизированную систему для поддержки работы с научной литературой. В этой статье она вводит некоторую машину для просмотра и для добавления замечаний в виде текстовой и графической системы. Система Memex должна была содержать очень большую библиотеку, состоящую из личных записей, фотографий и обзоров. Она должна была иметь несколько экранов и возможность для установления помеченных ссылок между двумя точками внутри данной библиотеки. Хотя данная статья предвосхитила очень многие идеи гипертекста, в системе Memex не предполагался цифровой компьютер; для своей работы система Memex должна была использовать технологию микрофиш и фотосчитываемого точечного кода.

Проект системы Memex требовал существенных технологических новшеств и так и остался проектом.

Аб. Система NLS/Augment

Спустя около 20 лет, в 1963 году, идеи Ванневы Буш были развиты в проекте Дугласа Энгельбарта [4]. Он предложил систему HLAM/T (Human using Language, Artifacts, and Methodology, in which he is Trained), которая включала человека-пользователя как существенный элемент: пользователь и компьютер должны были быть динамически изменяемыми компонентами, в сочетании которых достигался эффект усиления естественного интеллекта человека-пользователя.

Спустя 5 лет, в 1968 году, проект Энгельбарта стал более конкретным и был реализован как система NLS (oN Line System). Система NLS была разработана как экспериментальная система, которая должна была быть удобна для тех работ, которые выполняли ее разработчики: "размещать в компьютерной памяти все наши спецификации, планы, проекты, программы, документацию, отчеты, записки, библиографию, комментарии и т.д., и выполнять все наши разнообразные работы, планирование, проектирование, отладку и т.д., как один из способов взаимообщения, через консоль компьютера" [1].

Эта консоль была весьма развита даже по сегодняшним стандартам. Файлы в NLS структурировались в иерархию сегментов (до 3000 символов), которые назывались "утверждениями", каждое из которых имело идентификатор, отражающий уровень иерархии внутри файла ("1", "1а", "1б1" и т.п.). Между утверждением и другими файлами можно было установить произвольное число разнообразных ссылок. Т.е. структура в целом была иерархическая (файлы, в них - утверждения), но допускались и неиерархические ссылки. Система NLS развивалась в течение многих лет. Сейчас она называется Augment и распространяется как коммерческая сетевая система. Система сейчас включает различные формы взаимодействия через компьютерную сеть, как асинхронные (электронная почта со ссылками на документы, журналы идей и изменений, и т.д.), так и синхронные (одновременный показ информации на нескольких экранах, телеконференции и т.д.).

Ав. Система Xanadu

Параллельно с разработкой системы NLS/Augment, другой разработчик, Тед Нельсон предложил свою концепцию усиления человеческого интеллекта, в которой он сделал основной акцент на идею унифицированной библиотечной среды в глобальном масштабе [1]. Именно Нельсон и ввел термин "гипертекст". В его системе Xanadu за счет существенного использования техники ссылок сохранялись только оригинальные документы и изменения, сделанные в них. Система могла легко восстанавливать первоначальные версии документов.

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

Нельсон по сути предсказал, что развитие интерактивных библиотечных центров создаст новый рынок для организации больших хранилищ информации.

Б. Системы для поддержки интеллектуальной работы

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

Ба. Система IBIS (Issue-based Information System)

Система IBIS была разработана под руководством Хорста Риттеля [5] для поддержки системного анализа с т.зр. "испорченных" проблем, т.е. проблем, которые невозможно решать при помощи традиционного подхода системного анализа (т.е. (1) определить проблему, (2) собрать данные, (3) проанализировать данные, (4) сконструировать решение). У "испорченных" проблем нет четкой формулировки, их пространство решений трудно описать без понимания элементов решения, короче, единственный способ реально понять "испорченную" проблему - это решить ее. У "испорченных" проблем нет правил, когда заканчивать решение этих проблем. В них проект заканчивается по соображениям, внешним для данной проблемы (например, из-за отсутствия денег, времени или возможности продолжать решение). Решения "испорченных" проблем не бывают "верными" или "неверными", они просто имеют степень достаточности. Риттель утверждает, что решение подобных проблем требует, чтобы все, кто вовлечен в эту проблему, обменивались бы своими аргументами, точками зрения, идеями, оценками и т.п.. Лучше понимая точки зрения других участников решения проблемы, каждый из участников способен лучше понять проблему в целом. Система IBIS была спроектирована для поддержки подобных проектирующих/ планирующих обсуждений.

Система IBIS - это симбиоз (1) системы поддержки телеконференций, которая позволяет людям поддерживать обсуждение, и (2) гипертекста, который позволяет участникам легко перемещаться среди различных идей и высказываний, относящихся к исследуемой проблеме. В системе IBIS есть три типа узлов (тема, позиция, аргумент) и 9 типов отношений/ссылок между узлами. Исследования по системе IBIS концентрируются вокруг способов суммирования и представления сети утверждений по выбранной проблеме, удобной как для участников решения, так и для лиц, принимающих основные решения.

Бб. Система WE

Группа исследователей из Университета Северной Каролины (США) разработала систему WE (Writing Environment). Их разработка основывалась на идее, согласно которой процесс чтения воспринимается как процесс восприятия линейного потока текста; при этом понимание происходит при помощи структурирования понятий иерархически; понятия воспринимаются в долговременную память в виде сети. Написание текста рассматривается как обратный процесс: тесно связанная сеть внутренних идей и внешних источников сначала организуется в иерархию, которая затем "кодируется" в линейный поток слов, предложений и т.п..

Система WE была разработана для поддержки верхней, более сложной части процесса написания. Она состоит из двух основных окон просмотра: одно графическое, другое иерархическое, плюс много специализированных команд для перемещения и структуризации материалов (узлов и связей, с которыми связаны тексты) между двумя окнами. Человек, пишущий текст, "писатель" - должен начинать с создания узлов в графическом окне. На этой стадии от описываемого материала почти не требуется какой-либо структуризации. "Писатель" может собрать узлы графа в группы, если они связаны по смыслу, может разместить узел между групп, если ему кажется, что узел близок по смыслу к обеим группам. Когда в графическом окне начинает появляться какая-либо явная концептуальная структура, "писатель" может скопировать эти узлы в иерархическое окно, в котором он может уже работать с ними как с древовидной структурой.

Система WE использует реляционную базу данных для хранения узлов и связей в сети. В системе есть еще три служебных окна. Третье окно для редактирования текущего, выбранного пользователем узла. Четвертое окно используется для запросов к базе данных. Пятое окно используется для управления режимами системы.

В. Системы для просмотра

Ва. Система ZOG/KMS

Система ZOG была разработана в 1972 году в Университете Карнеги-Меллона [6]. В нее входит потенциально большая база данных из небольших (размером с экран) сегментов, просматриваемых по одному. Одной из целей разработки системы ZOG была поддержка работы большого числа одновременных пользователей. В 1981 году двое ведущих разработчиков системы ZOG организовали свою компанию Knowledge Systems и разработали улучшенный коммерческий вариант системы ZOG, названный KMS (Knowledge Managment System) [7].

Каждый сегмент в системе ZOG/KMS называется "фреймом". Фрейм имеет одну строку заголовка, далее несколько строк текста, некоторое количество пронумерованных текстовых заголовков/ меню, называемых "вариантами", и в последней строке - меню стандартных команд системы (редактировать, помощь, назад, дальше, пометить, вернуться, прокомментировать). "Фреймы" играют роль узлов базы данных, "варианты" играют роль связей между узлами-фреймами. "Варианты" могут быть двух типов: одни связывают фреймы в иерархию по содержанию, другие предназначены для перекрестных ссылок сетевого типа. Т.е. система ZOG/ KMS иерархическая в целом, но допускает и сетевые ссылки как дополнительный вид ссылок.

В системе ZOG/ KMS каждый раз показывается один фрейм. Это по-своему удобно, но имеет обратную сторону: повышается вероятность того, что пользователь перестанет понимать - в каком месте он находится. Для того, чтобы избежать этого, в системе KMS постарались свести к минимуму время перехода от одного фрейма к другому - 0.5 сек.

Вб. Подсистема INFO в текстовом редакторе Emacs.

Подсистема помощи INFO в широко распространенном текстовом редакторе Emacs во многом похожа на систему ZOG. Она имеет простой набор стандартных команд и управляется нажатиями отдельных клавиш. Информация организуется преимущественно иерархически, но пользователь может переходить на различные узлы иерархии просто набирая имя нужного узла.

Подсистема INFO, также как и KMS, имеет потенциальную опасность дезориентации пользователя относительно его местоположения в гипертексте.

Вв. Система Hyperties

Система Hyperties была разработана под руководством Шнейдермана в Университете Мериленда [8]. Данный проект разрабатывался в двух направлениях: как практический и легко изучаемый инструмент для просмотра в текстовых базах данных и как экспериментальное средство для изучения проектирования гипертекстовых интерфейсов.

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

В настоящее время данная система адаптируется для поддержки видеодисковой технологии. Кроме этого, разработана подсистема просмотра, которая позволяет делать быстрый поиск по подстроке, поддерживает механизм "книжных закладок", многооконный интерфейс, пользовательские комментарии.

Г. Системы для исследований гипертекстовой технологии

Га. Система NoteCards

Система NoteCards, возможно одна из самых известных гипертекстовых систем, была разработана в исследовательском центре Xerox PARC [9]. Первоначальной целью разработки системы NoteCards было создание удобного инструмента для поддержки информационного аналитика, т.е. человека, который собирает информацию на заданные темы и выпускает аналитические отчеты. Разработчики системы NoteCards считали, что такой информационный аналитик обычно работает по следующей схеме: (1) читает первоисточники (новости, статьи и т.п.), (2) собирает выдержки из них в короткие текстовые файлы и (3) пишет аналитические отчеты. Во время этого процесса аналитик строит мысленно различные модели по заданной теме. Одной из целей разработчиков системы NoteCards была попытка помочь аналитику выражать свои модели, используя компьютер.

Гб. Система Intermedia

Система Intermedia была разработана в Университете Брауна [10] для того, чтобы попытаться использовать мощные графические возможности современных компьютеров в учебном процессе. Система Intermedia разрабатывалась как набор инструментальных средств, позволяющий автору делать ссылки на документы самого различного вида, таких как тексты, временные диаграммы, образы, генерируемые компьютером, видеоклипы, музыку. Эта система разрабатывалась и как инструмент для профессоров, организующих и представляющих свои лекционные материалы при помощи компьютера, и как интерактивная среда для студентов для изучения учебного материала и добавления своих комментариев и отчетов.

Разработчики Intermedia основное внимание уделяли тому, чтобы пользователю было удобно работать, несмотря на возрастающую сложность системы построения гипертекстов. В Intermedia была введена конструкция, названная "web" ("взгляд"), удобная для реализации показа ссылок, зависящего от контекста. Каждая ссылка принадлежит одному или нескольким "взглядам" и видна только тогда, когда соответствующий "взгляд" является активным. Пользователь, входя в просмотр гипертекста, выбирает нужный ему "взгляд" и тем самым резко упрощает процесс просмотра.

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

1.4. Развитие идеи гипертекста

1.4.1. Обзор концепций гипертекстовых систем

В данной главе мы дадим обзор основных концепций гипертекстовых систем. Большая часть данного материала взята из обзора [1].

Сущность гипертекстовых систем

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

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

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

Гипертекст позволяет и даже провоцирует писателя делать подобные ссылки и позволяет читателю самому выбирать, по каким связям он будет идти при просмотре данного текста. С этой точки зрения гипертекст упрощает работу мыслителя и писателя: он не требует постоянно решать - вводить ли данную мысль в основной поток изложения или нет. В этом смысле "ссылочность" гипертекстов является основой их мощности: именно ссылки, поддерживаемые компьютером расширяют текст за пределы одномерного потока.

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

С точки зрения программирования суть гипертекста заключается в том, что они - гибрид нескольких традиционных технологий. Гипертексты - это метод баз данных, обеспечивающий новый способ прямого доступа к данным. Этот метод радикально отличается от традиционного доступа к базам данных через серию запросов на специальном языке. В то же самое время, гипертекст - это некоторая схема представления, разновидность семантической сети, в которой смешаны неформальные текстовые фрагменты с более формальными и механизированными операциями и процессами. Наконец, гипертекст - это разновидность интерактивного интерфейса.

1.4.2. Связи в гипертекстах

В данном разделе мы несколько подробнее коснемся различных аспектов или идей, касающихся ссылок/связей в гипертекстах.

Следование ссылкам.

Наиболее отличительной чертой гипертекстов является то, что в гипертекстах есть механизм поддержки компьютером следования по ссылкам. Однако не всякая поддержка ссылок считается характерной для гипертекстов: характерна такая поддержка, когда пользователю нужно сделать минимально возможное количество нажатий клавиш или движений мышью для выбора ссылки и перехода по ссылке.

Следующей существенной особенностью гипертекстов является скорость, с которой система реагирует на действия пользователя. Для того, чтобы система считалась гипертекстом, от нее требуется очень маленькое (максимум 1-2 секунды, оптимум - 0.5 сек [7]) время отклика. В противном случае пользователь будет стремиться как можно реже следовать по ссылкам, что нарушает одну из основных идей гипертекста. Правда, можно сделать исключение для тех ссылок, которые связаны с доступом через компьютерную сеть.

Свойства ссылок.

Ссылки могут использоваться для различных целей. Чаще всего встречаются следующие виды использования.

- Ссылки для перехода от узла к узлу.
- Ссылка на документ, приводящая к самому документу.
- Комментарии или аннотации к тексту.
- Различного рода оглавления.
- Один узел находится в определенном отношении к другому узлу.

Ссылки могут иметь имена и типы, иногда еще и богатый набор дополнительных свойств. Некоторые системы позволяют "выключать" ссылки (как например, механизм взглядов в системе Inermedia).

Ссылки для перехода от узла к узлу.

Существует два способа для явного связывания двух точек в гипертексте: при помощи референтных ссылок и организационных ссылок.

Референтные ссылки - это наиболее типичный вид ссылок в гипертекстах. Они, как правило, имеют два конца, обычно это направленные связи, хотя большинство систем поддерживает и обратное движение по ссылке. Исходный конец референтной ссылки называется "источник"; логически это отдельная точка или область в тексте. Другой конец называется "назначением"; это определенная точка или область в гипертексте . С источником ссылки связывается некоторая пометка, указывающая наличие ссылки. Она показывает имя ссылки и, возможно, ее тип. Она обычно изображается в виде последовательности символов и высвечивается как отдельная единица текста.

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

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

1.4.3. Узлы в гипертекстах

Хотя основная сущность гипертекста состоит в поддерживаемых компьютером ссылках, узлы также играют важную роль: от них зависит, какие операции могут поддерживаться гипертекстом. Большинство пользователей пользуются узлами для того, чтобы выразить отдельную мысль или тезис, и поэтому узлы обычно содержат текст на естественном языке и при этом они существенно меньше, чем традиционные текстовые файлы. В таких случаях узлы становятся промежуточным, поддерживаемым в компьютере уровнем между отдельными символами и файлами в целом, уровнем, который семантически ориентирован на выражение идей, тезисов и т.п.. Правда, то, какого размера будут узлы, уже целиком зависит от писателя гипертекста. Умение правильно разбивать документ на узлы неформализуемо, а влияние модуляризации на читателя пока понято очень плохо [11].

Разбиение мыслей на узлы гипертекста

Гипертексты предлагают писателю разбивать свои мысли на модули так, чтобы (1) на эту мысль можно было бы сослаться из любого места гипертекста и (2) чтобы эта мысль была бы логическим продолжением какой-либо другой мысли. Однако при этом писатель вскоре обнаруживает, что узел гипертекста, в отличие от параграфа обычного текста, предъявляет более строгие требования к своему содержанию, т.к. узел гипертекста более оторван от окружающего контекста. В некоторых системах (NoteCards, NLS) даже есть специальная возможность смотреть на узел как если бы он был одним из параграфов большого охватывающего узла, составленного из логических соседей. Но в целом границы гипертекстовых узлов более дискретны, и иногда это обстоятельство требует от писателя специальных размышлений о том, как разбить свой материал на узлы.

Мысли как объекты

Написание гипертекста не всегда связано с написанием законченного документа. Иногда пользователь просто записывает систему своих (или чужих) мыслей по данному предмету. И в этом случае бывает очень удобно выражать мысли в виде дискретных объектов, которые могут связываться, перемещаться и изменяться как независимые сущности.

Типизация узлов

Некоторые гипертекстовые системы разбивают узлы на различные типы. Такие типы могут быть очень полезными, если они предлагают разработчику гипертекста уже готовые структуры, удобные для его приложений.

Например, группа исследователей вместе с Конклиным [1] разрабатывала гипертекстовый интерфейс для системы Design Journal (Проектный Журнал). Эта система была предназначена для того, чтобы инженер-разработчик мог делать черновики разрабатываемого проекта, чтобы он был как можно менее связан формальными требованиями, предъявляемыми к окончательной документации, чтобы он мог легко вставлять в свой проект фрагменты информации с разной степенью формальности/ неформальности. Для этого было разработано четыре типа узлов - заметки, цели/ ограничения, артифакты и решения. Заметки использовались для самых разных целей, просто чтобы не забыть что-либо, типа "Попроси Александра проверить модуль 3". Цели/ ограничения были нужны как для первоначальных требований к проекту, так и для описания ограничений, возникающих по ходу проекта. Артифакты были нужны как элементы конечного продукта: окончательного проекта. Решения были нужны для того, чтобы запоминать и сохранять те моменты, когда ход проекта мог пойти в разных направлениях, но было выбрано одно из них (с какими-то обоснованиями, пусть не очень формальными). Прототип системы Design Journal использовал разные цвета для того, чтобы отличать различные типы узлов и это оказалось очень удобным.

Гипертекстовые системы, использующие типизованные узлы, обычно дают каждому типу узлов свой цвет, размер и пиктограммы, для того, чтобы их можно было легко различать. Типизованными узлами пользуются в таких системах, как NoteCards, Intermedia, IBIS.

Полуструктурированные узлы

До сих пор об узлах говорилось как о некотором "вместилище", в которое можно поместить от одного слова до всего документа в целом. Однако для некоторых приложений становится важным иметь полуструктурированные узлы - типизованные узлы, которые содержат помеченные поля и пустые места рядом для значений этих полей. Основная цель таких полуструктурированных узлов - помочь пользователю в проверке полноты заполнения информации и в возможности более осмысленной дальнейшей обработки таких узлов при помощи компьютера. Чем больше текст в узле будет отличаться от обычного неструктурированного текста на естественном языке, тем более вероятно, что компьютер сможет делать некоторые виды обработки этих узлов, некоторые виды логических выводов. Понятие полуструктурированных узлов очень близко к понятию полуструктурированной информационной системы [12].

Составные узлы

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

Аналогия с семантическими сетями

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

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

Здесь мы видим прямую аналогию с гипертекстами. Отличие состоит в том, что инженер знаний стремится построить такие представления, которые могли бы автоматически интерпретироваться, в то время как цель писателя гипертекста - собрать взаимосвязанную систему мыслей, не претендуя на машинную интерпретацию.

1.4.4. Достоинства гипертекстовых систем

Межтекстовые ссылки не являются чем-то новым. Особенность гипертекстов в том, что эти ссылки просто поддерживаются машиной. Как и гипертексты, традиционная литература обычно сильно взаимосвязана и иерархически организована. В традиционной литературе именно печатный носитель больше всего ограничивает поток чтения, заставляя читателя следовать линейно организованному тексту. Однако процесс просмотра побочных ссылок является фундаментальным даже для печатной литературы.

В действительности библиотечные и информационные науки в основном и состоят из исследования возможностей ссылок. Всякий, кто делал исследования, понимает, что значительную часть работы составляет получение нужной литературы, просмотр ссылок на литературу, просмотр терминов в справочниках или глоссариях, проверка таблиц или рисунков, анализ оглавлений или перечислений, составление собственных пометок. Даже при простом чтении постоянно встречаются отсылки на другие разделы или главы, подстрочные комментарии, ссылки на литературу, примеры, таблицы, рисунки, приложения. Часто некоторые главы пропускаются читателем, которого не интересуют технические подробности. Однако перед традиционной литературой стоят определенные проблемы.

- Большинство ссылок не помогают вернуться назад: читателю бывает очень сложно найти те книги или статьи, которые ссылаются на ту статью, которую он читает.
- Читатель должен размещать свои пометки либо на полях книги или статьи, либо помещать их на отдельном листе.
- Наконец, следование по ссылкам в бумажных документах требует постоянной затраты сил, внимания, дает задержки, даже если читатель работает в хорошо оборудованной библиотеке.

Новые возможности для авторизации и проектирования

Гипертекст может дать новые методы в работе авторов и разработчиков различных систем. Работа авторов документов обычно рассматривается как работа на уровне слов и предложений. Ясно, что текстовый редактор - это хороший инструмент для авторов документов. Однако работа по написанию текстов - это больше работа по структуризации идей, упорядочиванию представлений, использованию понятий. Очень немногие авторы просто садятся и пишут законченный текст. В каком-то смысле авторы - это проектировщики текстовых документов. И единицей такого уровня авторской работы является мысль или понятие, и работа такого уровня может быть легко поддержана при помощи гипертекстов. По мере того, как автор приходит к новым мыслям, он может развивать их в виде узлов и затем привязывать эти мысли к единому целому или делать их изолированными. Таким образом, гипертексты помогают автору двигаться от слабо структурированной сети мыслей к законченному документу, годному для печати.

Новые возможности при чтении

Гипертекст может также давать новые возможности при доступе к большим или сложным источникам информации. Линейный (не гипертекстовый) документ нормально может читаться только единственным способом - как он и организован. У нелинейного же текста есть существенное достоинство: такой текст можно организовать различными способами, в зависимости от точек зрения. Шаша дает следующее описание этого [11]:

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

Однако проблема в том, что если вас будет интересовать тот порядок, которого нет в руководстве, то вам придется тратить много времени, просматривая подряд все музеи в одном из "ненужных" упорядочений. Вы не найдете сразу все музеи изобразительного искусства в разделе справочника, где они расположены по улицам. Возможно, вам поможет другой справочник, а при новом пожелании еще один, и т.д.. Число таких справочников - это как раз мера необходимости нелинейной текстовой системы."

Можно подытожить достоинства гипертекстов следующим образом.

- Простота следования по ссылкам: поддержка компьютером при следовании по ссылкам позволяет одинаково легко следовать как вперед по ссылкам, так и возвращаться назад.
- Простота создания новых ссылок: пользователь может развивать свою сеть или просто комментировать чей-то документ.
- Структуризация информации: к неструктурированной информации можно применять как иерархический способ организации, так и неиерархический; более того, можно на одном и том же материале организовать несколько разных иерархий.
- Глобальные взгляд: специальные системы просмотра могут обеспечить глобальный взгляд на документ как на сеть узлов, что существенно для очень больших или сложных документов.
- Текстовые узлы могут быть собраны вместе различными способами, давая возможность одному и тому же документу выполнять различные функции.
- Модульность информации: так как на один и тот же текстовый сегмент можно ссылаться из нескольких мест, мысли могут быть выражены с меньшими перекрытиями и дублированием.
- Связность информации: ссылки становятся неотъемлемой частью текста и даже если какая-то часть текста переносится в другое место, даже в другой документ, информационные ссылки продолжают давать прямой доступ к данному фрагменту текста.
- Взаимодействие с использованием документа: то, что пользователь сам выбирает путь, по которому он просматривает гипертекст делает пользователя активным участником процесса соотнесения гипертекстового документа к задаче, стоящей перед пользователем.
- Совместная работа: некоторые системы поддерживают возможность совместной работы нескольких авторов над одним документом, давая принципиально новые возможности.

1.4.5. Недостатки гипертекстовых систем

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

Проблема дезориентации

При увеличении объема и сложности информации, представляемой в виде гипертекста читателю, все труднее становится понимать, (1) в каком месте сети он сейчас находится и (2) как ему перейти в другое нужное место гипертекста. Мы будем называть здесь эту проблему проблемой "дезориентации" [1]. Эта проблема возникает из-за того, что в гипертексте, в отличие от линейного текста, у пользователя гораздо больше возможных путей просмотра, больше степеней свободы.

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

Кроме того, для того, чтобы разместить узлы и связи в двух- или трехмерном пространстве, придать им полезные визуальные особенности (цвет, форму, размер, фактуру), придерживаться полезных соглашений (не размещать два узла слишком близко друг от друга и т.п.), разработчики таких подсистем должны решить очень сложную программистскую задачу. Но даже и такое сложное программирование все равно оказывается стоящим перед тем фактом, что для сложного информационного пространства просто не существует естественной топологии.

Другое решение этой проблемы - это применить типовую технику поиска по запросу из баз данных. Запрос на поиск обычно организуется в виде некоторой логической комбинации поиска по ключевому слову, поиску по подстроке, поиску по свойствам узлов или связей.

Проблема мыслительной перегрузки

Другая фундаментальная проблема, стоящая перед гипертекстами, связана с тем, что при создании многих новых узлов и связей, их трудно удерживать в голове. Предположим, что вы пишете некоторую тему X и в это время к вам в голову приходит мысль Y, связанная с X. В идеале гипертекст должен позволить вам: (1) нажать одну кнопку и перейти в новое окно, (2) описать там тему Y, (3) нажать еще одну кнопку и перейти в окно X; увидеть там готовую ссылку на Y.

К сожалению, реальная ситуация сложнее. Когда к вам придет мысль Y, она может быть смутной и неопределенной; малейшее прерывание и вы можете потерять ее. Не так-то просто подобрать соответствующие слова и фразы, чтобы выразить эту мысль. Вы должны учитывать не просто смысл фразы сам по себе, но еще и то, как эта фраза будет читаться пользователем, который пришел из темы X. Кроме этого, вы должны дать название ссылке на Y или описать тип отношения X к Y. Некоторые системы (например, NoteCards) требуют, чтобы связь имела тип и метку. Подбор нужного типа и метки также требует каких-то размышлений и времени.

Проблема мыслительной перегрузки возникает также и в процессе чтения гипертекста. Читатель постоянно встает перед выбором из большого числа альтернативных путей дальнейшего просмотра. Эти постоянные акты выбора заставляют выполнять определенную работу на метауровне. По какой связи идти? Что мы можем ожидать от той или иной ссылки? Как до просмотра догадаться - что там?

Эта проблема может решаться при помощи (1) очень быстрых переходов в узлах, где собираются очень много ссылок, (2) предварительных (в 2 - 3 строчки) аннотаций, которые высвечиваются до перехода по ссылке, при попадании на ссылку курсором или мышью, (3) при помощи подсистемы графического просмотра гипертекстовой сети.

Эти проблемы могут, по крайней мере частично, быть разрешены при помощи дальнейшего развития в структуре и интерфейсе гипертекстовых систем, а также через исследования в области техники фильтрации информации.

1.5. Другие технологии построения гипертекстов

С точки зрения общей технологии построения гипертекста стоит отметить статью [17], в которой описывается ряд идей, близких по затрагиваемым проблемам к данной работе. Технология, описываемая в этой работе состоит из следующих шагов.

1) Предлагается построить план всех понятий-узлов, описываемых в гипертексте.
2) С каждым понятием-узлом связать тот или иной тип описания из нескольких возможных.
3) Отношения между понятиями-узлами типизировать одним из 7 предлагающихся типов.

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

1.6. Необходимость в технологиях построения гипертекстов

Подытоживая обзор различных гипертекстовых систем, различных идей, связанных с концепцией гипертекста, обзор концептуальных моделей данных, можно сделать следующие выводы:

1) Концепция гипертекстов является оригинальным способом представления, структурирования и передачи информации.

2) Эта концепция продолжает развиваться и находить новые способы применения в процессах передачи информации между людьми.

3) Гипертекстовые системы близки другому виду программных систем, базам данных: некоторые информационные задачи можно реализовать как в форме базы данных, так и в форме гипертекста. При этом одни информационные задачи предпочтительнее реализовывать как гипертексты

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

другие - в виде базы данных

(если основная информация представлена в виде большого объема регулярных данных, важен быстрый поиск данных, необходимость постоянного изменения данных, возможно в параллельном режиме и из разных мест).

Подобная близость позволяет делать аналогии и переносить некоторые идеи из области баз данных в область гипертекстов.

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

2) Формализация концептуальных схем в области баз данных может идти разными способами. Эти способы называются концептуальными моделями данных. Каждая концептуальная модель - это система абстрактных понятий, которая :

a) достаточно полна, чтобы описать широкий спектр информационных задач;

b) достаточно четко определена и хорошо формализована, чтобы ее можно было реализовать в виде конкретной системы управления базами данных, и тем самым, от концептуальных схем переходить к конкретным базам данных.

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

1) В области баз данных создан целый ряд концептуальных моделей данных [23], играющих важную роль. В области гипертекстовых систем работ, затрагивающих эту тему, очень мало.

2) Отталкиваясь от аналогии с базами данных, очевидна полезность попытки построить концептуальную модель, ориентированную на гипертексты, и, соответственно, очевидна полезность разработки технологии построения больших и сложных гипертекстов.

3) Литература по гипертекстам большей частью посвящена описанию систем построения гипертекстов, различным аспектам использования гипертекстов [13]. Между тем вопросы, связанные с построением конкретных гипертекстов, становятся все актуальнее. (Дополнительные доводы в пользу разработки технологии построения гипертекстов приведены ниже, в разделе 2.4.). В следующей главе автор предлагает технологию "HyRe-Tech", которая описывает один из возможных подходов к построению гипертекстов. Эта технология была разработана частично на основе опыта построения автором нескольких конкретных гипертекстов, частично на основе некоторого переосмысления уже известных принципов разработки технической документации [14].

2. Разработка технологии "HyRe-Tech" построения гипертекстов

2.1. Терминология

В предыдущей обзорной главе мы уже вводили терминологию, связанную с гипертекстами, однако та терминология была ориентирована на описание гипертекстов в рамках довольно широкого контекста, контекста, в котором:

a) гипертексты появлялись исторически, как новый вид программного обеспечения,
b) описывались самые разнообразные по назначению и организации гипертекстовые системы,
c) предлагались различные идеи и взгляды, связанные с концепцией гипертекста.

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

Данная терминология относится к трем уровням работы с информацией. Первый, самый низкий уровень, это элементы из которых состоит гипертекст, т.е. уровень описания готового или разрабатываемого гипертекста.

Второй, самый высокий уровень, это абстрактные понятия, в терминах которых мы предлагаем разработчикам гипертекста описывать структуру предметной области. Фактически такая система понятий представляет собой часть концептуальной модели данных, ориентированной на гипертексты. Этому посвящен следующий раздел 2.2.

Третий уровень - это классификация основных сущностей "HyRe-HT-Elements", которые составляют основу гипертекста. Этот уровень является промежуточным между вторым и первым и описывается в разделе 2.3.

Далее, в этом разделе, мы опишем терминологию первого уровня и определим, что мы понимаем под термином гипертекст.

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

Гипертекст это совокупность текстовых фрагментов, называемых "темами" ("topics"). Это то, что мы называли в главе 1 "узлами". Каждая тема при просмотре разбивается фиксированным способом на страницы экрана (далее часто просто "страницы"). Темы могут иметь "заголовок" - одна или более строчек, высвечиваемых в начале страницы. Если тема состоит из нескольких страниц, то все страницы имеют один и тот же заголовок. Каждая тема имеет "идентификатор" - внутреннее системное имя, при помощи которого система связывает темы в единое целое - гипертекст. Идентификатор может совпадать с заголовком, но это не обязательно.

Темы связываются ссылками. Каждая ссылка это некоторая последовательность символов в теме (слово, словосочетание, произвольная цепочка символов в пределах одной строки), называемая "полем ссылки", связываемая с темой ("тема ссылки"), в которой должно даваться развернутое описание смысла текста из поля ссылки. При просмотре гипертекста пользователь видит страницу экрана, в которой поля ссылок подсвечены другим цветом. Пользователь может быстро переходить курсором от одного поля к другому, выбирая нужное поле, затем, нажав на клавишу "Ввод" ("Enter"), он переходит на другую тему, тему ссылки.

Некоторые поля в тексте могут быть выделяемы другим цветом, но курсор на них не переходит - они называются "цветные поля" и служат лишь для более удобного восприятия текста.

Некоторые темы могут иметь "внешние идентификаторы": если при вызове программы просмотра гипертекста пользователь задает в качестве параметра один из таких внешних идентификаторов тем, то он сразу попадает на тему, имеющую данный идентификатор.

В различных темах гипертекста, как и во всяком научно-техническом тексте, можно выделить типовые элементы текста - аббревиатуры, отсылки к литературе, отсылки к рисункам, сноски, названия фирм и их изделий, формулы, команды, наименования и т.п.. Кроме того, типовыми элементами научно-технических текстов можно считать и более крупные части текста: определения, рисунки, таблицы. Все такие типовые элементы мы называем "фрагментами". Подробнее о фрагментах - см. в разделе 2.7.

С некоторыми страницами темы могут быть связаны так называемые "внешние программы": при попадании на данную страницу управление передается специализированной диалоговой программе. Такие программы могут, например:

a) вывести на экран движущееся изображение,
b) вывести на экран информацию, полученную из внешнего источника (база данных, сеть, состояние машины, другие файлы),
c) переопределить реакцию на клавиатуру,
d) смоделировать меню действий, кнопки, пульт управления чем-либо,
e) задавать вопросы пользователю, запоминать ответы, корректировать выводимую информацию согласно этим ответам,
f) показывать информацию в графическом режиме, и т.д..

Внешние программы позволяют в дополнение к просмотру текста выполнять произвольные диалоговые программы, связанные с конкретными страницами темы.

2.2. Классификация сущностей в предметной области "HyRe-Subject-Entity"

Как мы уже ранее говорили, ядром концептуальной модели является система абстрактных понятий, через призму которых предлагается смотреть на различные прикладные задачи. В ряде работ такую систему понятий называют "парадигмой", добавляя новый смысловой слой к существующему понятию.

Описывая нашу концептуальную модель "HyRe-Subject-Entity", мы ограничимся только описанием парадигмы, центральной системы понятий. Синтаксис или форма представления для данной модели вводится как один из составных элементов технологии "HyRe-Tech". Рассмотрим далее иерархию абстрактных понятий, составляющую ядро нашей модели. Она приведена на рис. 2-1.


   a) Объекты
       1. Категории
       2. Экземпляры категории
       3. Отдельные объекты
   b) Отношения
       1. Отношения "общее-частное"
       2. Простые отношения: бинарные, направленные
           1. Простые типовые отношения
           2. Простые отдельные отношения
       3. Сложные отношения: все остальные
           1. Сложные типовые отношения
           2. Сложные отдельные отношения
   c) Размытая информация

Рис. 2-1. Классификация сущностей "HyRe-Subject-Entity"

Опишем эти понятия более подробно.

a) Объекты
b) Отношения
c) Размытая информация

Деление сущностей на Объекты и Отношения - это очень привычный шаг, его можно проследить в самых разных концептуальных моделях и языках программирования.

Предполагается, что объект - это то, что в гипертексте станет описанием при помощи текста в темах, а отношение - это то, что будет представляться либо ссылкой, либо системой ссылок, либо темой специального вида.

Автор добавил в это классическое деление только лишь третий вариант "размытая информация" - это случай, когда разработчику гипертекста трудно (или неудобно) явно соотнести какую-либо информационную сущность из его предметной области либо с объектом, либо с отношением.

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

a) Объекты
  1. Категории
  2. Экземпляры категории
  3. Отдельные объекты

Деление объектов на общее и частное, на категорию и экземпляры этой категории - также очень распространенный элемент в самых различных моделях данных и языках программирования. Особой четкости такое деление достигает в объектно-ориентированных языках программирования: в них категория - это класс, а экземпляр категории - это объект, созданный в рамках данного класса.

Это деление очень важно для гипертекста, так как оно фактически создает "скелет" гипертекста. Всевозможные перечисления и описания каждого элемента - это типичный элемент различных справочников, подсказок в программных продуктах.

Как и в случае с c) Размытая информация, мы добавили возможность 3. Отдельные объекты - возможность не делать явного выбора между категорией и экземпляром категории. Если мы что-то объявили категорией, то мы тем самым берем на себя обязательство выписать все (или несколько) экземпляров этой категории и описать их схожим образом. Если мы что-то объявляем экземпляром категории, мы берем на себя обязательство ввести еще и категорию, ввести соседние, другие экземпляры категории и описать все экземпляры схожим образом. Это очень сильные обязательства, чтобы иметь возможность избежать их, вводится третий случай. Объявляя что-либо отдельным объектом, мы берем на себя обязательство просто описать его, и неявно говорим, что этот объект существенно отличается от других, а его частные случаи нас сейчас не интересуют.

Кроме того, иногда бывает удобно посмотреть на один из экземпляров категории как на отдельный объект для того, чтобы описать его особым образом, не так как другие экземпляры-аналоги.

b) Отношения
   1. Отношения "общее-частное"
   2. Простые отношения: бинарные, направленные
   3. Сложные отношения: все остальные

С точки зрения гипертекста, отношения удобно разделить на три класса:

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

Наше деление фактически сразу предлагает разработчику гипертекста принимать решения - как представлять какое-либо отношение (или не представлять его вовсе) - как перечень, как ссылку в теме, или специальным образом, как особую тему, посвященную этому отношению.

1) Простые отношения: бинарные, направленные
   1. Простые типовые отношения
   2. Простые отдельные отношения
2) Сложные отношения: все остальные
   1. Сложные типовые отношения
   2. Сложные отдельные отношения

Деление отношений на типовые и отдельные, подобно отнесению объектов либо к экземплярам категории, либо к отдельным объектам. Если то или иное простое отношение встречается единично, мы называем его простым отдельным отношением, и далее предполагаем представлять в виде отдельной единичной гипертекстовой ссылки. Если в предметной области можно увидеть несколько конкретных простых отношений и обобщить их в типовое отношение, то мы называем его простым типовым отношением и далее предполагаем представлять в виде некоторой системы ссылок.

То же самое и для сложных отношений. Разница лишь в том, что так как сложные отношения предполагается представлять не в виде ссылок, а в виде тем, то для сложного типового отношения необходимо будет построить тему-перечень, с метассылками на темы, представляющие отдельные сложные отношения.

2.3. Классификация элементов в гипертекстах "HyRe-HT-Elements"

При описании предметной области мы выделяем категории, экземпляры категории, объекты, их описания, а также описания, не связанные с какой-либо категорией, экземпляром, объектом - так называемые "общие описания".

Категории это понятия, которые в данной предметной области имеют несколько частных случаев, которые, в свою очередь, мы называем экземплярами категории. Например, при описании языка программирования Си (это - предметная область), категориями будут "стандартные функции", "операторы", "операции", "опции транслятора", а экземплярами категорий - конкретные функции "printf", "atoi", конкретные операторы - "continue", "if-then-else" и т.д..

"Объектами" мы называем такие элементы предметной области, которые не являются ни категориями, ни экземплярами. Например, при описании языка Си, сам язык Си не является ни категорией (если только мы не собираемся описывать различные диалекты Си), ни экземпляром категории (если только мы не собираемся описывать языки программирования вообще и Си как один в ряду других), он является отдельным объектом.

Обычно описания (категорий, экземпляров категорий, объектов) - это части описания предметной области, которые имеют четко выраженное центральное понятие.

Если нам по каким-либо причинам нужно выделить некоторую часть описания предметной области, которая не имеет центрального понятия, то такую часть мы называем "общим описанием".

2.4. Технология "HyRe-Tech" в целом

Еще раз скажем о том, в каких случаях нужна предлагаемая технология. Очень часто, когда говорят о построении гипертекстов, делают акцент на то, что строить гипертексты с методологической точки зрения легко, в каком-то смысле даже легче, чем просто писать традиционную документацию:

- вы пишете небольшие фрагменты-темы, описывающие что-либо;
- выделяете в этих темах наиболее важные понятия или имена объектов;
- объявляете их ссылками;
- дописываете недостающие фрагменты-темы.

Благодаря тому, что гипертекст - это нелинейный текст, вы освобождаетесь от необходимости думать о том, в каком порядке нужно логически расположить ваши фрагменты-темы. При этом никакой особенной технологии не нужно и построить гипертекст можно без всякого предварительного обучения, без всякой науки о том, "как строить гипертексты".

Однако такая "наивная" или "хаотическая" технология удобна или для небольших гипертекстов, или для гипертекстов с заранее предопределенной, фиксированной структурой (например - телефонный справочник). С увеличением объема гипертекста и с усложнением его структуры возникает проблема, которую мы здесь назовем "проблемой ожидаемости".

Когда пользователь работает с гипертекстом справочником, он ищет нужную ему информацию среди различных тем гипертекста. Конечно, в этом поиске ему помогают различные указатели, оглавления и прочее, однако и сам пользователь должен иметь некоторый абстрактный образ того, какая информация ему нужна. Если же гипертекст большой, в нем много разнообразной информации, но при этом структура гипертекста, связи между частями гипертекста построены "хаотично", не имеют ясной внутренней логики, то потенциальным пользователям трудно составить себе представление о том - что же в данном гипертексте он может узнать. В этом случае большая часть информации в гипертексте останется "неожидаемой", плоходоступной; а гипертекст в целом, соответственно, будет низкого качества.

Для того, чтобы избежать этой опасности при построении относительно больших гипертекстов (по мнению автора, "большие" гипертексты - это когда информации больше, чем на 100-150 страниц экрана), гипертекстов со сложной структурой, стоит пользоваться специальными технологиями.

Кроме этого, если гипертекст используется как учебник (т.е. им пользуются относительно часто и стремятся просмотреть весь гипертекст), то неявно присутствующая концептуальная структура гипертекста должна, в процессе обучения, перейти в структуру знаний пользователя о данном предмете. В этом случае "хаотическая" технология построения гипертекстов особенно непригодна.

В данной работе предлагается технология построения больших гипертекстов со сложной структурой, гипертекстов, являющихся учебниками.

Технология "HyRe-Tech" организована следующим образом.

a) Вводится понятие перечня "Основных Категорий и Объектов" (перечень ОКиО). Данный перечень это начальная форма описания предметной области на уровне того, о каких понятиях будет идти речь в гипертексте. Подробнее о перечне ОКиО см. в разделе 2.5.

b) Разработчик гипертекста должен построить этот перечень: выписать имена категорий, информационных объектов и общих описаний. Для каждой категории выписать список экземпляров данной категории.

c) Перечень ОКиО помогает выделить в будущем гипертексте темы типа "оглавление", отделить их от тем типа "описание".

d) Вводится понятие "концептуального плана гипертекста". Это вторая, более подробная форма описания предметной области. Подробнее об этом см. в разделе 2.6.

e) В технологии "HyRe-Tech" есть формат описания гипертекстов "HyRe-Desc" - форма, в которой предлагается описать концептуальный план данного гипертекста.

f) Технология "HyRe-Tech" имеет три каталога:

1. каталог способов упорядочивания экземпляров в темах типа "оглавление",
2. каталог видов тем,
3. каталог видов фрагментов тем.

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

g) Разработчику предлагается написать концептуальный план гипертекста - т.е. разбить предполагаемое описание предметной области на темы согласно перечню ОКиО и для каждой темы выписать в формате "HyRe-Desc" ее атрибуты, важные с точки зрения проектирования гипертекста.

h) Написанный план далее служит трем целям:

1. Руководствуясь этим планом можно описывать темы конкретно.
2. Данный план позволяет взглянуть на гипертекст в целом, увидеть ту структуру знаний, которую он будет навязывать пользователю, оценить эту структуру, изменить.
3. Формат "HyRe-Desc" спроектирован так, чтобы концептуальный план гипертекста можно было вставить в соответствующий гипертекст как тему специального вида.

2.5. Перечень основных категорий и объектов

Построение концептуального плана гипертекста начинается с выделения основных категорий. Под "основными категориями" подразумеваются категории, которые

a) имеют несколько экземпляров,

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

В описываемой предметной области могут встречаться различные категории, для которых не нужно описывать все их элементы. Такие категории будем считаем "неосновными" и далее о них не упоминается, а "основные категории" иногда называются просто "категориями".

В данном разделе мы будем брать в качестве примера гипертекст ElHelp (Elbrus Help - "Справочник ВЦКП по работе пользователя в системе Эльбрус"). В гипертексте ElHelp некоторыми из основных категорий были:

Команды ОС Эльбрус

Пользователю приходится время от времени давать различные команды. Их около 80 и их описание - существенная часть справочника.

Основные понятия системы Эльбрус

В системе Эльбрус используется ряд специфичных понятий, их около 40.

Ссылки на литературу

Список литературы - это тоже часть гипертекста. Ссылки на разные источники могут встречаться в различных других темах данного справочника.

Наравне с категориями в гипертексте могут встречаться экземпляры категорий, описания отдельных информационных объектов и общие темы. Мы будем их обозначать так, чтобы они отличались от категорий. Категории будут обозначаться словом или словосочетанием во множественном числе; все остальное - словом или словосочетанием в единственном числе.

Экземпляры категорий в перечне ОКиО будут отмечаться тем, что (а) они будут располагаться в столбик под своей категорией со сдвигом вправо, (б) перед ними будет ставиться звездочка - признак того, что данное понятие должно иметь типовое описание (как и все другие экземпляры этой категории). Например:

   Команды ОС Эльбрус                             -- категория
   Пакеты прикладных программ                     -- категория
       *Пакет КРАЗ                           --          экземпляр
       категории
       *Пакет ФОРПАК                              --     экземпляр
       категории
       *Пакет ЭФФЕКТ                              --     экземпляр
       категории
   Система программирования Си-Эльбрус       -- описание объекта
   О справочнике ElHelp в целом                   -- общая тема

Некоторые описания объектов или общие описания могут быть достаточно сложными и иметь свои перечни основных категорий и объектов. Такие подперечни мы будем обозначать тем, что в основном перечне ОКиО они будут располагаться под соответствующим объектом со сдвигом вправо.

Например, в справочнике ElHelp описание такого информационного объекта как "Система программирования Си-Эльбрус" имеет самостоятельную структуру и в перечне ОКиО мы опишем это так:

   Система программирования Си-Эльбрус
       Стандартные процедуры
       Опции транслятора
       Сообщения транслятора
       Утилита MAKE
       Утилита LINK

Мы можем также встретиться с ситуацией, когда какой-либо информационный объект одновременно является и экземпляром некоторой категории X и поэтому должен иметь типовое описание, но в то же время он играет особую роль в данной предметной области и его описание должно сильно отличаться от описания других экземпляров категории X. Этот факт мы будем обозначать тем, что будем помещать данное понятие в одном ряду среди других экземпляров категории, но не будем помечать его звездочкой - признаком типового описания. Такие экземпляры мы будем называть особыми экземплярами. Например:

   Команды ОС Эльбрус
       *КН
       *ССП
        ОТЛ
        СЛУГА
       *Л

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

   Команды ОС Эльбрус
       Команда перехода в отладку
           Режимы отладки
           Команды отладки
       Вызов программы "СЛУГА"
           Режимы
           Команды
           Сообщения

Построение самого перечня ОКиО состоит из следующих шагов:

1) Выделение основных категорий.
2) Выделение объектов и общих описаний.
3) Для категорий из п.1) выписать все экземпляры категории.
4) В этих экземплярах найти особые экземпляры (если они есть).
5) Для понятий из п.4) и п.2) попытаться построить подоглавления, применяя пункты 1), 2), 3), 4), и, если нужно, снова п.5).

Важный побочный эффект построения перечня ОКиО - это необходимость более четко определить границы описываемой предметной области и необходимость выделить в ней подобласти.

Большинство гипертекстов имеют специальную начальную страницу, называемую индексом или содержанием (мы будем называет ее "начальным оглавлением"), с которой начинается просмотр гипертекста. На этой странице обычно расположены ссылки на все основные темы, описываемые в гипертексте. Перечень ОКиО удобно использовать для составления такого оглавления.

Если перечень ОКиО небольшой, то он целиком и будет составлять начальное оглавление. Если перечень ОКиО большой - в нем много уровней подчиненности, категории имеют много экземпляров, то в начальном оглавлении можно оставить понятия с наиболее высоким уровнем подчиненности, а остальные части перечня ОКиО организовать в подоглавления. Пример начального оглавления для гипертекста ElHelp см. на рис. 2-2.

 Справочник ВЦКП РАН по программному обеспечению МВК Эльбрус
                                                        Верс. 1.2
Типовой сценарий работы              Программы, разработанные или
в системе Эльбрус                    поддерживаемые ВЦКП РАН

Команды диалога Эльбрус:
  Часто используемые команды ОС      Сведения об МВК Эльбрус-2
  Команды ОС по группам,             Специальные термины Эльбрус
  Команды ОС по алфавиту
Служебные программы:
  Слуга
  Диалоговый редактор

О самом справочнике и о ВЦКП      Общий план для всего справочника

Рис. 2-2. Начальное оглавление для гипертекста ElHelp.

Таким образом, разработка перечня ОКиО это одновременно и написание важных составляющих гипертекста, его структурной основы: начального оглавления и подоглавлений. При этом (1) начальное оглавление, (2) категории и списки их экземпляров, (3) подоглавления для отдельных информационных объектов или общих описаний описываются в темах типа "оглавление", а описания самих категорий, их экземпляров, объектов - в темах типа "описание" (см, далее разделы 2.6., 2.7.).

2.6. Концептуальный план гипертекста

После построения перечня ОКиО, технология "HyRe-Tech" предлагает разбить гипертекст на темы и описать весь гипертекст в целом в специальном виде. Такое описание мы будем называть "концептуальный план гипертекста". Он состоит из кратких описаний для каждой темы, входящей в гипертекст. Если перечень ОКиО это описание гипертекста на более высоком уровне, в абстрактных терминах, то концептуальный план гипертекста это описание гипертекста на следующем, более низком уровне, в терминах основных элементов из которых состоит гипертекст.

Построение концептуального плана гипертекста состоит из нескольких шагов.

В начале, пользуясь перечнем ОКиО, нужно выделить отдельные темы обоих типов: типа "оглавление" и типа "описание". В темы типа "оглавление" должны войти:

a) начальное оглавление (оно формируется из понятий 1-го уровня подчиненности и надо еще решить - все ли понятия 1-го уровня нужно помещать в начальное оглавление),
b) перечни экземпляров для каждой категории,
c) подоглавления для отдельных объектов или особых экземпляров.

Для тем типа "оглавление" нужно выбрать способ упорядочивания. Возможные способы описаны в разделе 2.7.. Если нужно, один и тот же перечень экземпляров может присутствовать в виде нескольких оглавлений с разными способами упорядочивания.

Далее, снова пользуясь перечнем ОКиО, нужно выделить темы типа "описание", т.е. выбрать категории, экземпляры категорий, объекты, требующие отдельной темы для их описания. Для каждой темы типа "описание" нужно подобрать ее вид с т.зр. формы представления знаний (см. раздел 2.7). Кроме этого, предлагается описать (желательно, но не обязательно):

- на какие другие темы идут ссылки,
- типы фрагментов, входящих в данную тему,
- какие внешние программы связаны с данной темой.

Каждая тема описывается фразой в формате "HyRe-Desc". Совокупность таких описаний и составляет концептуальный план гипертекста. Данный формат имеет следующие особенности:

a) Множество фраз формата "HyRe-Desc", или его синтаксис - это несколько фраз обычного Русского языка, использующих терминологию из области гипертекстов.
b) Семантика формата "HyRe-Desc" - это описание того, как та или иная фраза реализуется в конкретном гипертексте.

Более подробно синтаксис и семантика формата "HyRe-Desc" будут описаны ниже, в разделе 2.8.. Здесь же для нас важно отметить еще одну особенность использования этого формата:

- темы в гипертексте могут быть разных видов (с точки зрения форм представления знаний);
- виды тем - это ключевые слова в "HyRe-Desc";
- каталог различных возможных видов тем (составная часть технологии "HyRe-Tech") - это открытое множество: оно может расширяться как автором формата "HyRe-Desc", так и пользователями формата "HyRe-Desc";
- кроме каталога различных видов тем, в формате "HyRe-Desc" есть еще каталог видов фрагментов.

Описание того, как различные фразы формата "HyRe-Desc" воплощаются в конкретном гипертексте, и описание того, какими могут быть типы тем, типы фрагментов в теме, это и есть основная содержательная часть данной технологии, это описание того - какими могут быть гипертексты с точки зрения опыта автора данной работы.

Если разработчик гипертекста строит его концептуальный план, он получает возможность увидеть весь гипертекст в целом, на уровне наиболее существенных элементов его структуры. Написание конкретных тем гипертекста может соотноситься с построением концептуального плана гипертекста двумя различными способами.

В первом случае концептуальный план гипертекста можно строить перед написанием конкретных тем и тогда реализуется принцип разработки сверху-вниз.

Во втором случае можно сначала написать какие-либо основные темы гипертекста, далее описать концептуальный план полученного гипертекста, а затем уже по плану попытаться проанализировать возможные пути развития гипертекста. В этом случае концептуальный план гипертекста выступает как инструмент для разработки по принципу снизу-вверх.

Синтаксис формата описания гипертекстов "HyRe-Desc" выбирался так, чтобы построенный концептуальный план гипертекста можно было бы вставить в этот же гипертекст как специальную тему. При этом имена тем нужно сделать ссылками на эти темы и тогда мы получим особого рода оглавление для всех тем гипертекста. В этом случае концептуальный план гипертекста играет роль, сравнимую с ролью корневого оглавления. Если начальное оглавление описывает гипертекст в целом с точки зрения смысла информации, то концептуальный план гипертекста описывает его также в целом с точки зрения того, какие темы в нем есть, какова их структура, как они связаны с друг другом, т.е. с точки зрения формы информации.

Концептуальный план гипертекста, встроенный как отдельная тема-оглавление дает пользователю возможность оценить, что вообще есть в данном гипертексте.

Таким образом, концептуальный план разрабатываемого гипертекста служит трем разным задачам:

А) Руководствуясь этим планом можно описывать темы конкретно.

Б) Данный план, уточняя перечень ОКиО, позволяет взглянуть на гипертекст в целом, увидеть ту структуру знаний, которую он будет навязывать пользователю, оценить ее, изменить.

В) Концептуальный план гипертекста можно вставить в соответствующий гипертекст как тему специального вида, пользователь получает возможность увидеть, какие темы есть вообще в гипертексте, какова их структура, как они связаны.

2.7. Каталоги возможных способов организации гипертекстов

Каталог способов упорядочивания для тем типа "оглавление"

Одни и те же экземпляры категории или объекты в теме типа "оглавление" (обобщенно в этом разделе будем называть их "элементами оглавления") можно перечислять по-разному. Далее мы перечислим некоторые из возможных способов упорядочения. Заметим, что так как списки экземпляров категорий с одной стороны играют важную роль в гипертексте, а с другой стороны, занимают относительно мало места, то достаточно часто имеет смысл давать один и тот же список в нескольких формах.

а. Список по алфавиту

Элементы оглавления могут располагаться в алфавитном порядке их имен. Такой порядок полезен в ситуации, когда пользователь помнит имя элемента и хочет по имени найти описание этого элемента.

б. Список, разбитый на группы

Элементы оглавления могут быть разбиты на группы "близких по смыслу" элементов. Такое расположение полезно тогда, когда пользователь изучил некоторые из элементов и хочет узнать о других элементах. Разбиение списка элементов на отдельные группы помогает найти элементы, "близкие по смыслу" к уже известным, и понять, с какими группами элементов пользователь уже знаком или еще не знаком.

Сам процесс разбиения списка элементов на группы относительно прост: разработчик гипертекста просматривает весь список целиком, выбирает - на какие группы стоит его разбить, а затем переписывает заново, по группам (группы можно отделять либо пустыми строчками, если весь список располагается в столбик, либо, обрамляя отдельные группы в рамки при помощи символов псевдографики, если список располагается на экране в несколько колонок). Однако, в этом процессе есть скрытая проблема.

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

В этом случае можно воспользоваться другим, "нестрогим" подходом: одна часть элементов группируется по одним атрибутам, другая - по другим, и т.д..

Например: рассмотрим язык программирования Си, а в нем множество функций, макросов, глобальных переменных, которые являются частью стандартной библиотеки подпрограмм, плюс функции, макросы, глобальные переменные, которые разработал пользователь.

Можно расклассифицировать их "строго": например - сначала описать функции, потом глобальные переменные, потом макросы. Или иначе: разбить по "include"-файлам - сначала описать функции, переменные и макросы, входящие в файл "stdio.h" (стандартные функции ввода-вывода), потом - в файл "io.h" (функции ввода-вывода, добавленные компилятором "Turbo C"), потом - в файл "stdlib.h" (функции, которые считались "самыми" типовыми при разработке первых Си-компиляторов), потом - файлы, запрограммированные пользователем и т.д..

Но можно разбить их и "нестрого" - часть функций, переменных, макросов объединить в группу потому, что они относятся к вводу-выводу (по назначению), часть - потому, что они связаны со спецификой транслятора "Turbo C" (по разработчику), при этом некоторые функции из первой группы будут входит и во вторую, и т.д..

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

в. Список по параметру

Если у элементов оглавления есть некоторый числовой параметр, играющий важную роль для выбора того или иного элемента, они могут быть упорядочены по возрастанию или убыванию этого параметра. Если параметр имеет нечисловое, символьное значение, то подобное упорядочение также может иметь смысл: оно сгруппирует вместе элементы с одинаковым значением этого параметра.

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

Мы можем сделать несколько оглавлений. В одном из оглавлений мы упорядочим их по числу проданных экземпляров - косвенному показателю "популярности", в другом - по цене (здесь можно увидеть - и какие системы самые дешевые/доступные, и какие самые дорогие, возможно, наиболее ценные). В третьем - по имени программы чтения - тогда мы можем узнать, какие компакт-диски мы можем просматривать при помощи тех программ, которые у нас есть. В четвертом - по фирме-изготовителю, и тогда мы можем узнавать, какие еще компакт-диски выпустила понравившаяся нам фирма-изготовитель.

г. Иерархический список

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

Если элементы Y1, ... YN находятся с т.зр. иерархии в подчинении к элементу X, то мы располагаем их под X со сдвигом вправо:

   X
       Y1
       Y2
       ...
       YN

Если иерархия имеет несколько уровней в глубину, то при ее представлении в таком виде может возникнуть следующая особенность: чем больше в иерархии элементов и чем больше в ней уровней, тем менее наглядным в таком представлении становятся перечни первых более высоких уровней. А элементы более низкого (более глубокого) уровня иерархии, наоборот, получают максимально наглядное описание.

Если элементы последних уровней иерархии важнее первых, если именно они несут наиболее содержательную информацию, а элементы первых уровней играют вспомогательную, классифицирующую роль, то такое представление оправдано и адекватно.

Однако, такое бывает не всегда и тогда для таких случаев иерархию можно представить в другом виде: сначала выписать все узлы иерархии самого высокого уровня, потом следующего и т.д. до конца.

Каталог возможных видов тем

Здесь мы приведем каталог возможных видов тем типа "описание" и "оглавление" и дадим определение для каждого вида из этого перечня.

Каталог состоит из перечня возможных видов тем (одни названия) и собственно каталога (названия и определения для них).

Перечень возможных видов тем будет представлен в виде иерархического списка, разбитого на группы (см. раздел 3.7.). Такое представление выбрано потому, что между элементами данного перечня существуют отношения двух видов:

- одна форма представления информации А может быть частным случаем другой формы Б,

- формы представления информации можно разбить на группы по принципу близкие-к-близким.

Отношение "быть частным случаем" мы показываем при помощи сдвига вправо, разбиение на группы - при помощи пустых строчек. Ниже, на рис. 2-3 приведено текущее состояние перечня возможных видов тем.

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

Можно сказать, что оглавление - это частный случай описания, когда 1) перечислены все имена экземпляров категории, 2) каждое имя - ссылка.


   Оглавление или Разнородный список
   Список
       Список по алфавиту
       Список, разбитый на группы
       Список, упорядоченный по параметру
       
       Иерархический список
       Таблица
       Таблица из базы данных
       
       Перечень действий
       Меню
   
   Граф
       Дерево
       Фрагмент семантической сети
       
   Анкета
   Фрейм
   
   Описание
   Отдельная тема
   Дополнение к теме
   
   Последовательность действий
   Набор однородных правил
   Набор разнородных правил
   Текст на искусственном языке
   
   Картинка
       Статичная картинка с движущимся изображением
       Статичная картинка с управляемым изображением
       Последовательность картинок
   Пульт наблюдения
   Пульт управления

Рис. 2-3. Перечень возможных видов тем

Далее мы дадим краткое описание для каждого экземпляра перечня возможных видов тем. Но перед этим стоит заметить, что состав данного перечня отражает субъективный опыт автора данной работы. Другие разработчики гипертекстов могут предложить свои аналогичные перечни. Автор вполне допускает сосуществование различных классификаций для возможных типов тем и считает критериями качества для данного перечня - оригинальность точки зрения, полноту и разнообразие перечня, а не стремление к некому "самому объективному" взгляду. То же самое касается и перечня типов фрагментов тем.

Часть типов тем существенно связана с использованием внешних программ. Т.к. в системе HyRe такая возможность есть, то мы такие типы тем включили в данный перечень наряду с "обычными", не использующими этой техники типами тем.

Разнородный список

Тема содержит имена совершенно разнородных объектов, объектов, которые нельзя считать частными случаями какой-либо категории. Суть разнородного списка в том, чтобы собрать на одной странице (или в одной теме) ссылки на тему, имеющие смысловое отношение к описываемому предмету.

Разнородные списки имеют смысл, если их экземпляры - это ссылки на другие темы, если данный разнородный список это одно из оглавлений гипертекста.

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

Однородный список

Тема содержит имена экземпляров какой-либо категории.

Список по алфавиту

Тема содержит имена экземпляров и эти имена расположены в алфавитном порядке. Суть алфавитного порядка в том, чтобы быстро найти известный пользователю по названию экземпляр и далее получить какую-либо информацию о нем. Такую информацию в гипертексте можно получить несколькими способами:

1. Имена в списке - это ссылки на другие темы, их раскрывающие. Тогда это будет одна из форм оглавления, описанная в разделе 2.7, п. а).

2. Рядом с именами, расположены какие-либо признаки, информация об именах. Тогда смысл темы такого типа - дать возможность быстро узнать значение признака или свойства для нужного экземпляра.

Список, разбитый на группы

Тема содержит имена каких-либо объектов (или экземпляров). Объекты разбиты на группы по принципу "близкие-к-близким". (см. раздел 2.7, п. б).

Список, упорядоченный по параметру

Тема содержит имена объектов, упорядоченные по некоторому параметру этих объектов. Такая организация списка помогает пользователю найти "самые лучшие" или "самые худшие" в каком-то смысле объекты, сравнить объекты между собой.

Иерархический список

Тема содержит список экземпляров какой-либо категории. Между экземплярами этой категории существует отношение подчинения. Это отношение показывается следующим образом: если у объекта А есть подчиненные объекты Б, В, ..., то их имена располагаются под именем А со сдвигом вправо.

Экземпляры, находящиеся рядом на одном уровне иерархии, могут быть упорядочены различными способами: по алфавиту, по близости, по параметру.

Такая организация списка нужна тогда, когда отношения подчиненности в этой категории играют важную роль для пользователя.

Таблица

Тема содержит таблицу. Таблицы - это широкоизвестная форма представления информации, мы их здесь описывать не будем, лишь сошлемся на [15], где они описываются более подробно.

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

Таблица из базы данных

Тема содержит таблицу, которая генерируется по текущему состоянию какой-либо базы данных. С точки зрения реализации, данный тип тем существенно сложнее, так как ссылки, особенно при нерегулярной их расстановке, нужно расставлять каждый раз при генерации текущего состояния таблицы. В системе HyRe такой тип тем может поддерживаться при помощи внешней программы.

Перечень действий

Тема содержит перечень действий, которые может сделать пользователь в том или ином контексте. Это частный случай однородного списка. Если выполнение действия как-либо связано с использованием компьютера, то при помощи техники внешних программ можно ввести специальные ссылки, вызывающие не переход на другую тему, а запуск специальных программ. В системе HyRe построение и изображение такого типа тем может поддерживаться при помощи внешней программы.

Меню

Частный случай перечня действий. В системе HyRe построение и изображение меню на фоне обычного текста может поддерживаться внешней программой.

Граф

Тема, в которой на экране изображены имена каких-либо объектов (возможно, являющиеся ссылками), соединенные линиями/ связями. Линии-связи могут быть поименованными.

Построение и изображение тем такого вида может поддерживаться специальной внешней программой.

Дерево

Частный случай темы типа "граф". В отличие от произвольного графа, дерево можно описать в виде иерархического списка.

Анкета

Тема содержит перечень вопросов, задаваемых пользователю о чем-либо. Ответы ожидаются либо в виде пустых полей, которые пользователь может заполнить, либо в виде меню возможных ответов-значений. Ответы пользователя сохраняются в течение всего просмотра гипертекста. Анкета может поддерживаться внешней программой.

Анкета может обладать дополнительным свойством: возможностью сохранять ее на диске между сеансами просмотра и восстановлением с диска перед просмотром анкеты. Тема такого типа может поддерживаться другой внешней программой.

Фрейм

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

Фреймы могут поддерживаться специальной внешней программой. Фреймы, которые могут сохраняться на диске между сеансами, могут поддерживаться другой внешней программой.

Отдельная тема

Тема, которая вводит какие-либо новые информационные объекты, вводит новый смысловой контекст.

Описание

Тема, которая описывает какой-либо объект или экземпляр категории. Описание отличается от отдельной темы следующим.

a) Текст направлен на описание какого-либо одного центрального информационного объекта.

b) Данная тема по смыслу подчинена некоторой другой, более общей, "старшей" теме.

c) Часть смыслового контекста, в котором ведется это описание, находится вне этой темы.

Например, если мы описываем один из экземпляров категории, то тема с описанием подчинена по смыслу теме, описывающей данную общую категорию в целом. Обычно в таких темах есть ссылка на более старшую тему.

Дополнение к теме

Тема, которая содержит какую-либо вспомогательную или второстепенную информацию к некоторой другой, основной теме.

Текст на искусственном языке

Тема, содержащая текст на каком-либо искусственном языке. Темы таких типов могут содержать самые различные особенности, могут быть связаны с самыми различными внешними программами.

Изображение

Статичная картинка с движущимся изображением

Последовательность картинок

Статичная картинка с управляемым изображением

Возможна целая серия типов тем, связанных с изображениями. Из-за аппаратных особенностей современных персональных компьютеров темы-картинки строго делятся на два класса: картинки в псевдографике и картинки в полной графике. Картинки в псевдографике могут быть изображены как текст специального вида при помощи обычных средств гипертекста. Если с картинкой связана какая-либо динамика (движущееся изображение, смена картинок, взаимодействие с пользователем), то статичное изображение-фон можно вывести обычным средствами, а динамику поддержать при помощи специальных внешних программ.

Пульт наблюдения
Пульт управления

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

Такая тема, как пульт наблюдения, может поддерживаться только специальным типом внешних программ.

Пульт управления - это изображение, которое показывает степени свободы управления каким-либо информационным объектом, какие есть у пользователя, плюс внешняя программа, которая позволяет управлять этим объектом.

Последовательность действий
Правило поведения
Набор однородных правил
Набор разнородных правил

Эти четыре вида тем объединены тем, что в них даются указания для действий пользователю. Такие темы обычно не требуют специальных внешних программ, но зато могут потребовать очень сложной системы ссылок, которые объясняют, уточняют, комментируют условия выполнения предполагаемых действий и сами действия.

Под набором однородных и набором разнородных правил мы понимаем следующее: однородные правила R1, R2, ... Rn это правила, условия применения которых в основном совпадают и речь идет больше о том, какое из них выбрать (либо на основе анализа соответствия условий применения и анализируемой ситуации, либо на основе субъективного выбора пользователем того или иного правила).

Разнородные правила - это правила, имеющие совершенно различные условия выполнения; правила, которые могут находиться между собой в самых разнообразных, сложных отношениях. Выявление и представление этих отношений может быть достаточно сложной проблемой.

Каталог возможных видов фрагментов

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

Ниже, на рис. 2-4 приведено текущее состояние перечня возможных видов фрагментов.


   Специальный термин
   Наименование
   Аббревиатура
   Значение на шкале
   
   Примечание в скобках
   Отсылка к примеру
   Отсылка к подробному списку
   
   Команда на искусственном языке
   Описание на искусственном языке
       Отношение
       Предикат
       Функция
       Правило
       Анкета
       Фрейм
       
   Перечень
   
   Описание
   Определение

Рис. 2-4. Перечень возможных видов фрагментов.

Далее мы дадим краткое описание для каждого экземпляра этого перечня.

Специальный термин

Если в тексте какой-либо темы используются специальные термины, их можно сделать ссылками и связать с темами, объясняющими эти термины.

Наименование

Некоторым информационным объектам бывает удобно давать не имя, а наименование - последовательность букв, цифр и специальных знаков. Обычно наименование имеет некоторую структуру, в которой закодированы те или иные свойства описываемых объектов. Если в гипертексте есть темы, описывающие данные информационные объекты, то наименования можно сделать ссылками на эти темы.

Аббревиатура

Аббревиатура - это термин специальной формы, составленный по первым буквам термина, состоящего из нескольких слов и обозначающего какой-либо объект или понятие. Например: ЭС - Экспертные Системы. Иногда для более удобного чтения аббревиатуры используют не набор первых букв слов полного термина, а произвольную выборку букв. Например: HyRe - Hy-pertext Re-presentation system.

Если аббревиатура не является общепризнанной и используется в различных темах гипертекста, удобно ввести специальную тему-комментарий, объясняющую эту аббревиатуру, и, если нужно, сам термин. Сами аббревиатуры удобно сделать ссылками на эти темы.

Аббревиатура - это частный случай специального термина.

Значение на шкале

В [16] описывается один из механизмов формализации знаний - псевдофизические шкалы. Псевдофизическая шкала - это свойство-атрибут какого-либо информационного объекта, организованное определенным образом:

- оно имеет название и тип;

- на конкретных информационных объектах данное свойство-атрибут принимает различные значения, принадлежащие этому типу;

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

- значения этого типа могут определяться неформально, путем экспертной оценки;

- разные значения одного типа могут быть связаны между собой различными отношениями, в частности, отношениями порядка.

Пример псевдофизической шкалы:

имя: оценка по физкультуре учеников средней школы
тип: оценка
значения: отлично, хорошо, удовлетворительно, плохо.

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

Примечание в скобках

Если примечание достаточно длинное, его можно вынести в отдельную тему-комментарий, а примечание сократить и оформить как ссылку.

Например: "(если это не так, то ...)". Здесь "..." оформлено как ссылка на тему, описывающую случай, когда "это не так".

Отсылка к примеру

Если пример чего-либо занимает слишком много места в теме и тем самым затрудняет ее целостное восприятие, его можно выделить в отдельную тему-комментарий, а вместо примера оставить ссылку, отсылающую к описанию этого примера.

Отсылка к подробному списку

Аналогично отсылке к примеру можно организовать отсылку к более подробному перечню чего-либо. Например:

"... для просмотра состояния операционной системы можно воспользоваться командами С, СЗ, А и т.д.."

Здесь "и т.д." будет ссылкой на полный список команд, которыми можно воспользоваться для просмотра состояния операционной системы.

Команда на искусственном языке

Если в гипертексте описывается какая-либо система, в которой пользователь может управлять чем-либо при помощи команд, то в тексте могут появляться примеры команд. С командой можно связать ссылку на описание этой команды и тогда имя команды будет выступать как наименование (см. выше).

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

Описание на искусственном языке

Отношение
Предикат
Функция
Правило
Анкета
Фрейм

Кроме команд возможны и другие виды описаний на искусственном языке: отношение, предикат, функция, правило, анкета, фрейм.

Так же, как и в командах, с такими описаниями могут быть связаны как ссылки, разъясняющие те или иные элементы языка, так и особые ссылки, "оживляющие" эти описания при помощи техники внешних программ:

Отношение

Внешняя программа может по одному аргументу помогать находить другие, находящиеся с введенным аргументом в данном отношении.

Предикат

Внешняя программа может при задании аргументов давать ответ об истинности или ложности описываемого предиката при данных аргументах.

Функция

Внешняя программа может запрашивать аргументы функции, проверять их на корректность, вычислять значение функции и выводить его на экран.

Правило

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

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

Анкета
Фрейм

Внешние программы, поддерживающие анкеты и фреймы, являющиеся частью темы, фрагментом темы, те же самые, что и внешние программы, поддерживающие темы типа анкета и фрейм.

Перечень

Фрагмент темы может быть перечнем каких-либо информационных объектов. О разновидностях перечней см. раздел 2.7.

Описание

Фрагмент, в котором дается описание чего-либо.

Определение

Фрагмент, в котором дается определение того или иного понятия, термина. Частный случай описания.

2.8. Формат описания гипертекстов "HyRe-Desc"

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

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

Далее мы опишем структуру предложений-описателей. В нашем описании мы будем пользоваться следующими условными обозначениями:

<xxx> - в этом месте должно быть конкретное название xxx

x | y - допустим один из вариантов x или y

[xxx] - xxx в этом месте не обязательно

{xxx} - список названий экземпляров категории xxx по одному экземпляру на каждой строке

Кроме того, если мы даем два варианта структуры предложения-описателя для одного типа тем, это означает, что допустимы оба варианта.

Синтаксическая структура предложений-описателей дана ниже. Разные предложения-описатели разделены пустыми строчками. Предложения-описатели разбиты на группы, по типам.

Темы разных видов.

ОТДЕЛЬНАЯ ТЕМА: <название темы>

ОГЛАВЛЕНИЕ: <имя категории>
   [ ЭКЗЕМПЛЯР: <имя экземпляра> ]
   [ ПОЛНЫЙ СПИСОК | ЧАСТЬ СПИСКА <имя полного списка> ]

ОПИСАНИЕ <имя категории> : <имя экземпляра категории>

Строчка для темы, описывающей один из экземпляров категории. Структура такой темы описывается один раз, для первого экземпляра. Далее, для всех остальных экземпляров, при помощи строчки ОПИСАНИЕ... задаются только имена различных экземпляров и общее для них имя категории.

ЧАСТЬ ОПИСАНИЯ <имя категории> <имя экземпляра категории> :
   <имя фрагмента>

ОПИСАНИЕ <имя фрагмента>
   ДЛЯ <имя категории> <имя экземпляра категории>

Два варианта предложения, указывающего на часть описания для некоторой категории.

Дополнительные фразы, которые могут добавляться к строчкам, описывающим темы различных видов.

ТИП ТЕМЫ: <тип темы>

ЕСТЬ ССЫЛКИ НА {список тем или категорий}

ФРАГМЕНТЫ: {имена фрагментов}

СТРАНИЧНАЯ ПРОГРАММА: <имя внешней программы>

Свойства отдельных тем

Если в темах вида "отдельная тема", "описание", "оглавление" указан тип темы или тип списка, то добавляются строки, описывающие свойства данной темы.

ЛИНЕЙНЫЙ СПИСОК
   УПОРЯДОЧЕН: [ ПО АЛФАВИТУ | ПО ГРУППАМ
       | ПО ПАРАМЕТРУ <имя параметра> ]

ИЕРАРХИЧЕСКИЙ СПИСОК
   ЭКЗЕМПЛЯРЫ ТИПА <тип экземпляров>
   ОТНОШЕНИЕ ИЕРАРХИИ <имя отношения>

ТАБЛИЦА
   [ СТОЛБЦЫ <список имен столбцов> ]
   [ СТРОКИ - <имя объекта, соответствующего одной строке> ]

ТАБЛИЦА ИЗ БАЗЫ ДАННЫХ <имя базы данных>
   [ СТОЛБЦЫ <список имен столбцов> ]
   [ СТРОКИ - <имя объекта, соответствующего одной строке> ]

ПЕРЕЧЕНЬ ДЕЙСТВИЙ <тип действий>

МЕНЮ <имя меню>

ГРАФ <имя графа>

   УЗЛЫ: {типы узлов}   [ УЗЛЫ МОГУТ БЫТЬ ССЫЛКАМИ ]
   [ СВЯЗИ: {типы связей} ]
   [ СВЯЗИ МОГУТ БЫТЬ ССЫЛКАМИ ]


ДЕРЕВО <имя дерева>
   УЗЛЫ: <тип узлов>
   ОТНОШЕНИЕ <имя отношения>
ЛИНЕЙНЫЙ СПИСОК 

Специальные темы

СПЕЦИАЛЬНАЯ ТЕМА: МЕСТО КУДА ССЫЛАЮТСЯ НЕОПРЕДЕЛЕННЫЕ ССЫЛКИ 

В гипертексте может быть специальная "пустая" тема, которая играет роль того места, куда "ссылаются" неопределенные ссылки.

СПЕЦИАЛЬНАЯ ТЕМА: КОРНЕВОЕ ОГЛАВЛЕНИЕ 
НА ЭТУ СТРАНИЦУ ПРИВОДИТ КЛАВИША Ctrl-F1 

В гипертексте может быть одна выделенная тема - корневое оглавление. С этой темы начинается просмотр гипертекста

Служебные фразы

* ДАЛЕЕ ИДУТ ТИПОВЫЕ ТЕМЫ - ОПИСАНИЯ КОНКРЕТНЫХ <имя категории> :
ОПИСАНИЕ КОНКРЕТНОЙ <имя категории>
   [ ДОЛЖНО ИМЕТЬ
       [ ФРАГМЕНТЫ {имена фрагментов} ]
       [ ССЫЛКИ НА {имена тем} ] ]
   [ МОЖЕТ ИМЕТЬ
       [ ФРАГМЕНТЫ С {имена фрагментов} ]
       [ ССЫЛКИ НА {имена тем} ] ]
* ДАЛЕЕ ИДУТ ТИПОВЫЕ ТЕМЫ - ОПИСАНИЯ КОНКРЕТНЫХ <имя категории> : ОПИСАНИЕ КОНКРЕТНОЙ <имя категории> 

Данная фраза говорит о том, что далее будут располагаться темы, описывающие конкретную категорию, и эти описания будут обладать определенной структурой.

2.9. Технология "HyRe-Tech" среди других технологий

Технология "HyRe-Tech" ориентирована прежде всего на выявление структуры гипертекста, на выявление отдельных информационных элементов, из которых будет состоять гипертекст.

На этом уровне подхода к гипертексту стоит отметить статью [17], о которой кратко было сказано выше, в разделе 1.5.

В технологии "HyRe-Tech" есть идеи, аналогичные описываемым в этой работе, но в целом технология "HyRe-Tech" отличается от предложений из [17], в первую очередь, большим акцентом на технологическую последовательность построения плана гипертекста, идеей использования открытых каталогов типовых решений.

При построении перечня ОКиО и концептуального плана можно воспользоваться идеями из работы [18]. Эта работа предлагает рассматривать информацию, представляемую в гипертексте, с точки зрения более крупных информационных блоков и в некоторых случаях может быть полезна при проектировании гипертекстов.

Кроме того, на процесс построения гипертекстов можно взглянуть и с других точек зрения, в данной работе не затрагивающихся:

a) как строить собственно документацию (безотносительно - гипертекст это будет или обычная книга) - этой теме посвящена работа [14],

b) как располагать текст на уровне отдельного экрана - работы по данной теме автору неизвестны.

2.10. Понятие "вид гипертекстов"

Гипертексты могут быть разными по своей внутренней логической структуре. Например, гипертекстовый словарь имеет одну структуру, гипертекстовый учебник - другую, а гипертекстовый каталог, например, запасных деталей к автомобилю, третью. Даже такое беглое и краткое перечисление - словарь, учебник, каталог, наталкивает на мысль, что гипертексты могут быть разных "видов". Но понятие "вид" само по себе - весьма расплывчатое, оно ничего не сообщает. Для того, чтобы понятие "вид гипертекстов" стало осмысленным, четким и полезным для использования, необходимо найти некоторую определенную точку зрения, с которой мы могли бы увидеть разные, отличающиеся друг от друга виды гипертекстов.

Предлагается такая точка зрения. В гипертекстах есть темы и некая логическая "основа" - т.е. некоторая смысловая структура, связывающая отдельные темы в единое целое. Для того, чтобы посмотреть на гипертексты с предлагаемой точки зрения, нужно задать вопросы:

a) какого рода информация содержится в темах?

b) что является "логической" основой?

или, в другой форме:

a) какого типа темы составляют большинство?

b) какая структура отражается в гипертексте и связывает отдельные темы в одно целое?

Проведем микроэксперимент: попробуем в трех вышеперечисленных видах гипертекстов (словарь, учебник, каталог) выделить и описать два элемента нашей точки зрения - "основной тип тем" и "логическая основа".

Словарь.

Основной вид тем: Описания слов.
Логическая основа: Коллекция терминов, требующих описания.

Учебник.

Основной вид тем: Разделы учебника, излагающие те или иные сведения.
Логическая основа: Структура изложения знаний, от простого к сложному.

Каталог (например, фильмов).

Основной вид тем: Описания экземпляров какой-либо категории (описания конкретных фильмов).
Логическая основа: Коллекция этих экземпляров (подборка фильмов).

Наш микроэксперимент оказался удачным: то, что мы выделяли как "основной тип тем" и "логическая основа" было относительно легко вычленить и полученное описание достаточно хорошо описывало суть словаря, учебника и каталога именно как видов гипертекстов. В следующем разделе мы попытаемся максимально расширить перечень наших видов гипертекстов.

Предварительно, сделаем одно методологическое замечание. Относительно легко собрать интересный перечень/ список/ множество/ коллекцию ярких и достаточно полезных примеров различных видов гипертекстов. Гораздо труднее как-то систематизировать, объективно вывести с необходимостью именно такой состав из каких-либо более глубоких соображений. Поэтому мы будем пользоваться приемом коллекции (как в главе 2): мы назовем перечень возможных видов гипертекстов "коллекцией", тем самым мы неявно говорим:

a) мы старались в коллекцию отобрать самое лучшее,

б) при возможности, помещали туда и некоторые "граничные", (т.е. не совсем обычные) экземпляры,

в) эта коллекция расширяема,

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

2.11. Коллекция возможных видов гипертекстов


Основной перечень:
   Учебник
   Статья
   Толковый словарь
   Словарь переводчика
   Справочник
   Документация
   Энциклопедия
   Система таблиц
   База данных рисунков
   База знаний
   Схема пространства
   Абстрактная модель
   Статья с комментариями
   Каталог
   Хронология
   Программа

Развернутый перечень:

Учебник

Основной вид тем: Статьи, излагающие сведения
Логическая основа: Структура обучения, от простого к сложному

Статья

Основной вид тем: Главы и подразделы статьи
Логическая основа: Структура изложения

Толковый словарь

Основной вид тем: Статьи, объясняющие понятия/ термины
Логическая основа: Множество специальных понятий и терминов в предметной области

Словарь переводчика

Основной вид тем: Статьи с переводом слова или словосочетания
Логическая основа: Множество употреблений слов в языке

Справочник

Основной вид тем: Статьи, излагающие сведения
Логическая основа: Структура предметной области

Документация

Основной вид тем: Статьи, описывающие аспекты сложного объекта
Логическая основа: Структура описываемого объекта

Энциклопедия

Основной вид тем: Статьи, излагающие сведения
Логическая основа: Структура системы предметных областей, Множество ключевых понятий в каждой предметной области

Система таблиц

Основной вид тем: Таблицы
Логическая основа: Структура предметной области, система таблиц

База данных рисунков

Основной вид тем: Рисунки, графические изображения
Логическая основа: Множество рисунков на какую-либо тему

База знаний

Основной вид тем: Эвристики/ правила
Логическая основа: Структура сложной работы, выполняемой человеком

Схема пространства

Основной вид тем: Описание и схемы тех или иных участков пространства
Логическая основа: Структура описываемого пространства

Абстрактная модель

Основной вид тем: Описание тех или иных элементов модели
Логическая основа: Структура моделируемого объекта

Статья с комментариями

Основной вид тем: Комментарии к различным местам статьи или текста
Логическая основа: Структура статьи или текста

Каталог

Основной вид тем: Описания отдельных экземпляров, входящих в каталог
Логическая основа: Множество экземпляров, собранных в коллекцию

Хронология

Основной вид тем: Описания событий
Логическая основа: Последовательность событий во времени

Программа

Основной вид тем: Тексты отдельных процедур, функций, типов данных, объявлений переменных, комментарии к фрагментам программы
Логическая основа: Структура программы

2.12. Выводы

В данной главе описывается оригинальная технология построения гипертекстов. В ее основу положены две классификации абстрактных сущностей: классификация сущностей в предметной области "HyRe-Subject-Entity" и классификация элементов в гипертекстах "HyRe-HT-Elements". Обе эти классификации логически связаны между собой: пользователю предлагается сначала описать предметную область в терминах классификации сущностей в предметной области, затем по логике эвристического перехода между классификациями [18] перейти к классификации элементов в гипертекстах и описать предметную область в терминах второй классификации. На этом пути получаются две, последовательно уточняющих друг друга схемы для разрабатываемого гипертекста - перечень ОКиО и концептуальный план гипертекста. После этого предлагается перейти к конкретному наполнению схемы, составлением собственно гипертекстовых тем. На этом, третьем этапе важную роль будет играть гипертекстовая база знаний "HowDoHT". Классификация "HyRe-Subject-Entity" и классификация "HyRe-HT-Elements" играют роль, аналогичную роли концептуальных моделей данных при разработке баз данных, однако так как в описываемой технологии не было необходимости в описании операций и ограничений целостности, то автор считает, что понятие "модель данных" существенно богаче и в данном случае не подходит. Данная технология ориентирована на разработку гипертекстов для больших или сложных предметных областей, для гипертекстов, являющихся учебниками или справочниками.

3. Гипертекстовые базы знаний

 

3.1. Гипертекстовые базы знаний попадают в экологическую нишу

Исследования в области искусственного интеллекта принесли понимание того, что кроме тех видов информации, которые традиционно обрабатывались на компьютерах, существует обширный и специфичный вид информации - знания; что знания можно представлять в явном виде, пользоваться ими, передавать другим людям в более компактной, формализованной и удобной для использования форме, чем ранее (книги, статьи, учебники). Формы и методы работы с знаниями стали предметом новой складывающейся дисциплины, называемой "инженерией знаний" [19], [16].

Большинство программных систем, рассматриваемых в этой дисциплине, являются исследовательскими, эти системы отвечают на вопрос "Как в различных случаях можно работать с знаниями ?". Однако, можно поставить и вопрос другого типа: "У нас есть некоторые знания X об Y, что полезного, какую систему Z мы могли бы сделать ?". Можно выделить следующие наиболее яркие типы систем, отвечающие на этот вопрос:

- экспертные системы,
- программные системы, использующие знания,
- обучающие системы,
- гипертексты-справочники.

Каждый из этих типов систем предъявляет определенные требования к знаниям. Первые три типа систем требуют, чтобы знания были:

1) достаточно полными и формализуемыми, чтобы можно было построить автоматизированную систему, работающую автономно, только на основе заложенных знаний и

2) достаточно ценными, чтобы имело смысл разрабатывать автоматизированную систему, работающую на базе этих знаний.

Четвертый тип систем - гипертексты-справочники - требуют, чтобы знания достаточно полно описывали некоторую тему или группу тем и опять же, были достаточно полными для справочника (О гипертекстах см. [1]).

Однако легко представить себе такой набор знаний, который не является ни достаточно полным, чтобы на базе этих знаний делать автоматизированную систему или справочник, ни сверхценным, чтобы тратить силы на пополнение этого набора знаний. Т.е. речь идет о некоторой экологической нише. В данной работе предлагается тип систем, который попадает в эту нишу, мы будем называть их "гипертекстовыми базами знаний".

Далее мы опишем общую концепцию гипертекстовых баз знаний, проиллюстрируем ее примерами из конкретной базы знаний HowDoHT, предложим некоторые выводы, появившиеся из опыта построения базы знаний HowDoHT.

База знаний HowDoHT (How Do HyperTexts) разработана автором данной работы для помощи программистам, которые разрабатывают гипертексты. Она содержит различные приемы и перечни возможностей, которыми можно воспользоваться при разработке гипертекста: как можно организовать текст на экране, какими могут быть гипертекстовые ссылки и т.д..

3.2. Типовая гипертекстовая база знаний

Основная идея, лежащая в основе гипертекстовых баз знаний состоит в следующем.

Если у нас есть некоторый набор знаний, в основном в форме эвристик-рекомендаций по действиям в некотором круге ситуаций, и при этом наш набор знаний не настолько крупный и ценный, чтобы было можно и имело бы смысл делать на его базе автоматизированную систему, то часто имеет смысл оформить эти знания так, чтобы ими можно было пользоваться "вручную", без специального механизма автоматизированных рассуждений, просто просматривая эти знания в удобной форме, например, в форме гипертекста.

Мы представляем себе типичную гипертекстовую базу знаний следующим образом.

1) Основу гипертекстовой базы знаний составляет набор правил-эвристик. Эти правила имеют отношение к некоторой общей ситуации и описывают те или иные рекомендации или возможности в конкретных ситуациях.

В базе знаний HowDoHT общая ситуация заключается в том, что некоторый разработчик гипертекста, планируя как лучше расположить текст на экране, как лучше воспользоваться возможностями системы построения гипертекстов (предполагается конкретная система построения гипертекстов HyRe, но некоторая часть знаний может быть справедлива и для других систем), сталкивается с различными нетривиальными ситуациями, которые как раз и описываются в этой базе знаний.

2) Помимо набора правил-эвристик могут быть и другие, дополнительные формы знаний, например - некоторые классификации и иерархии, описание сложных причинно-следственных связей, псевдофизические шкалы [16], фреймы [20] и т.п..

В базе знаний HowDoHT есть две дополнительные формы знаний - классификация ситуаций, структурирующая систему правил и классификация/перечень используемых понятий.

3) Кроме набора правил-эвристик и возможных дополнительных форм знаний в базе знаний должны присутствовать вспомогательные информационные структуры: определения для используемых понятий, общее описание предметной области, для которой предназначается база знаний, описание структуры гипертекста и т.д..

В базе знаний HowDoHT к вспомогательной информации относится: (1) определения используемых понятий, (2) краткое описание базы знаний HowDoHT, (3) информация об организации, в которой была разработана HowDoHT и об авторе, (4) подсказка по программе просмотра гипертекстов, при помощи которой можно просматривать гипертекстовую базу знаний HowDoHT.

4) Вся база знаний в целом представляет собой гипертекст, т.е. и система правил-эвристик, и дополнительные формы знаний и вспомогательная информация - все они должны оформляться как текстовые единицы гипертекста и связываться ссылками в единый гипертекст.

3.3. Набор правил-эвристик

Единственное использование правил в гипертекстовой базе знаний - это чтение их пользователем-читателем, поэтому их представление можно максимально подчинить этой одной цели. Правила удобно записывать в виде фраз обычного естественного языка, с небольшой структуризацией, выделяя другим шрифтом, цветом или большими буквами ключевые слова, типа ЕСЛИ ... ТО ..., или ЕСЛИ ... ТО ... ИНАЧЕ ..., или даже ПРИ ... МОЖНО ... ПОТОМУ ЧТО ....

Приведем в качестве примера три правила из HowDoHT.


                                                        правило65:
ЕСЛИ
   гипертекст находится в процессе развития и сделана его первая,
   еще не окончательная версия,
ТО
   иногда бывает удобно кроме текущего корневого оглавления
   написать вариант-максимум корневого оглавления.

                                                        правило39:
ЕСЛИ
   тема является таблицей, но элементы таблицы слишком длинные и
   одна строчка таблицы не помещается на экране,
ТО
   такую таблицу можно смоделировать при помощи различных сдвигов
   вправо: первый элемент - без сдвига, второй - с одинарным
   сдвигом, третий - с двойным сдвигом, и т.д..

                                                        правило02:
ПРИ
   составлении заголовка темы его
МОЖНО
   оформить двумя способами:
   - как простой заголовок темы   (без команды .T1 ...)
   - как выделенный заголовок темы   (с командой .T1 ...)

Различные наборы ключевых слов - ЕСЛИ-ТО, ПРИ-МОЖНО и т.п. задают логику фрагмента знаний. Мы называем такие фрагменты правилами в некоторой степени условно, т.к. набор разнотипных фрагментов знаний больше всего похож именно на набор правил-эвристик; кроме того, большинство фрагментов знаний можно уложить в форму правил, в форму ЕСЛИ-ТО.

Если же говорить более строго, то это набор идей-советов, причем одни из них имеют вид "в ситуации X лучше всего сделать Y" - т.е. по сути, форму правил, а другие идеи-советы имеют форму "в ситуации X можно сделать либо X1, либо X2 ..." - т.е. форму списка альтернатив.

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

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

Например, в правиле 3 базы знаний HowDoHT


                                                        правило03:
ЕСЛИ
   какая либо тема играет вспомогательную роль и ей трудно дать
   какое-либо самостоятельное название-заголовок,
ТО
   заголовком может служить обрывок фразы
НАПРИМЕР:
   ... ввести элемент рабочей памяти...

есть целых три плохоформализуемых понятия: "вспомогательную", "трудно", "какое-либо" "самостоятельное".

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

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

Таким образом, поиск нужных правил сводится к попытке угадать по оглавлению, структуре оглавления и по частичным именам правил то правило, которое будет нужно пользователю-читателю.

Поначалу, исторически, в базе знаний HowDoHT система правил представлялась именно в этой форме:

a) была отдельная тема-оглавление с фразами, кратко пересказывающими левые части правил,
b) рядом с каждой такой фразой была ссылка на соответствующее правило,
c) на каждое правило отводилась отдельная тема.

Однако, в результате такого решения появился некоторый смысловой дисбаланс: оглавление правил было большое, занимало 4-6 страниц экрана, оглавление было чрезмерно насыщенным по смыслу, его было трудно читать. В то же время темы с правилами наполовину (часть ЕСЛИ) повторяли то, что уже было в оглавлении, а части ТО часто содержали тривиальный совет, естественный в данной ситуации. Т.е. стало понятно, что сама часть ЕСЛИ, т.е. описание ситуации, в которой читателю предлагается совет, часто бывает семантически насыщенной, порою более насыщенной, чем часть ТО.

Сейчас в базе знаний HowDoHT принят вариант (2). Это позволило оглавление правил сделать небольшим и обозримым - правила разбиты на смысловые группы по ситуациям, каждая ситуация - это ссылка на одно или несколько правил. Ситуации перечислены в отдельной теме и сами сгруппированы в несколько "суперситуаций" (в два уровня иерархии). Фрагмент перечня ситуаций показан ниже, "суперситуации" выделены большими буквами.


   ОТДЕЛЬНАЯ ТЕМА
       РАЗЛИЧНЫЕ ТИПЫ ТЕМ
           Как организовать оглавление
           Как организовать перечисление с описанием
           Когда тема - таблица, но строчки в таблице слишком
           длинные
           Текст со сложной смысловой логикой
           Текст на специальном языке
           
       ОРГАНИЗАЦИЯ ТЕКСТА ВНУТРИ ТЕМЫ
           О заголовках к теме
           Соответствие ссылки и заголовка темы
           Если разбиение на страницы попадает на середину абзаца
           Когда важно знать - какие темы ссылаются на данную тему

Вариант (2) предлагает пользователю поиск/выбор среди более крупных смысловых единиц, чем среди ситуаций в (1). Выбрав ситуацию, пользователь смотрит на небольшую группу правил/ советов, каждое из которых применимо к данной ситуации.

Наконец, вариант (3), когда все правила собраны в один перечень. Он удобен, если правил немного, порядка 10 - 15, например, если база знаний очень маленькая или если основные знания собраны в том, что мы назвали "дополнительными" формами.

Интересен вопрос о том - стоит ли как-либо нумеровать или называть правила в гипертекстовой базе знаний. При разработке базы знаний HowDoHT автор столкнулся с ситуацией, когда при определении того или иного понятия, относящегося к различным приемам построения гипертекстов, иногда наилучшим определением оказывается правило/ эвристика, описывающая этот прием.

По сути, некоторые технические понятия - это "имена" идей а, большинство эвристических правил - это и есть идеи - что, оказывается, "можно" или "нужно" делать в той или иной ситуации. (Правда не все правила-эвристики можно назвать идеями. Иногда полезно просто напомнить и в явном виде написать какую-нибудь достаточно тривиальную возможность.) Давая имена правилам-эвристикам мы помогаем пользователю пользоваться этими правилами -для того, что бы человек смог часто пользоваться той или иной мыслью, необходимо иметь компактное понятие-название. Если разработчик базы знаний не дает имена-термины эвристикам, он тем самым вынуждает пользователя, если тому понравится данный прием придумывать понятие самому.

По этой причине какое-то обозначение правилам давать надо.

Ссылки на те или иные правила могут встречаться в различных местах гипертекста: в других правилах, в определениях понятий, в дополнительных формах знаний, во вспомогательной информации. Так как мы "находимся" в среде гипертекста, а не в среде, скажем, научно-технической монографии или справочника, издающихся обычным полиграфическим способом, то вопрос - как называть правила - имеет естественный ответ - так, чтобы читатель при помощи гипертекстовых ссылок мог легко посмотреть на это правило.

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

В HowDoHT все правила пронумерованы, каждое правило имеет имя вида "правило13", "правило62а" и т.п.. Нумерация правил играет чисто технологическую роль - каким по счету оно введено в базу знаний. Ссылки на правила имеют вид "смотрите правило XX в группе YYY", где YYY - это ссылка на группу правил.

Тот факт, что система правил представляется в гипертексте, а не в традиционной печатной форме, может сыграть свою роль еще одним важным способом. Описывая правила, мы очень легко можем делать ссылки/объяснения для терминов, используемых в правилах. Это позволяет нам часть контекста, в котором "лежит" правило/идея, вынести в описания используемых понятий и сделать правила более лаконичными, более четко описывающими суть идеи. Таким образом, контекст правила приобретает некоторую структуру: явная часть, которая описывается условием ЕСЛИ (или ПРИ), а также иерархией ситуаций, и неявная часть, описываемая совокупностью используемых понятий. Неявная часть контекста в правилах играет двойную роль: с одной стороны это средство сделать текст правила лаконичнее, с другой это еще один способ (помимо правил-советов) передать знания пользователю.

3.4. Дополнительные формы знаний

Описывая формы знаний, используемые в гипертекстовой базе знаний, мы выделили список правил-эвристик как основную, типовую форму представления знаний потому, что фактически это наименее структурированная форма. Вообще говоря, правило-эвристика - это "что угодно", снабженное контекстом: "ЕСЛИ у Вас ситуация X, я Вам советую Y".

Все остальные формы представления знаний мы назвали дополнительными не потому, что они "менее важные", а потому, что число потенциально возможных форм представления знаний очень велико; какие дополнительные формы знаний будут использоваться - существенно зависит от конкретной темы базы знаний.

Классификация возможных форм знаний - это тема, которая по своему объему и важности выходит за рамки данной работы, поэтому здесь мы ограничимся описанием двух форм - форм, которые есть в базе знаний HowDoHT.

В HowDoHT используются две дополнительные формы знаний: классификация ситуаций, разбитая на "суперситуации" (мы упоминали ее выше, в разделе 3.3) и классификация используемых понятий.

Классификация ситуаций предоставляет пользователю возможность выбрать интересующую его ситуацию и перейти к соответствующей группе правил, т.е. она служит указателем при просмотре базы знаний. Данная классификация имеет определенную структуру: близкие по смыслу ситуации собраны в макрогруппы, каждая макрогруппа имеет имя. Выше, в разделе 2 мы называли их "суперситуациями". Суперситуации расположены в определенном порядке, и классификация ситуаций в целом дает представление о том, какие вообще ситуации могут быть. Классификация ситуаций как форма знаний играет двоякую роль: с одной стороны она помогает пользоваться базой знаний поэлементно - если пользователь попадает в к.-л. нетривиальную ситуацию, то при помощи классификации ситуаций он ищет тот фрагмент знаний, который ему нужен. С другой стороны, если посмотреть на классификацию ситуаций вообще, безотносительно к какой-либо конкретной ситуации, то она помогает пользоваться базой знаний целостно - какие вообще могут быть ситуации в данной предметной области.

Если в базе знаний используется достаточно много специфичных понятий, то разработчик гипертекста может собрать эти понятия в некоторый план/оглавление, рассклассифицировать их. Классификация понятий не связана напрямую с поиском правил. Она помогает пользоваться базой знаний целостно - она описывает общий понятийный контекст данной предметной области, в совокупности с темами-определениями, играет роль своеобразного учебника по теме базы знаний.

В HowDoHT, классифицируя понятия, автор стремился сохранить те же классификационные группы - суперситуации, что и в классификации ситуаций, подчеркивая общую структуру предметной области (см. рис. 4.1. и 4.2.)


   ГИПЕРТЕКСТ В ЦЕЛОМ
       Типовые группы тем
       Первая страница
       
   НЕСКОЛЬКО ТЕМ
       Две темы, связанные по смыслу
       Серия тем, описывающих однотипные понятия

Рис 4.1. Фрагмент классификации ситуаций


ГИПЕРТЕКСТ В ЦЕЛОМ Концептуальный план гипертекста Типовые группы тем Типовая / Специализированная подсказка по гипертексту Типовая / Специализированная тема для неопределенных ссылок Первая страница гипертекста Страница с заставкой Страница с корневым оглавлением Корневое оглавление-максимум НЕСКОЛЬКО ТЕМ Основная тема и комментарий Пересадочные страницы Обратные ссылки в теме

Рис 4.2. Фрагмент классификации понятий.

3.5. Заключение

Гипертекстовые базы знаний меньше автоматизируют работу пользователя нежели, скажем, экспертные системы, так как основную часть интеллектуальной работы оставляют человеку и сами лишь отчасти помогают ему в работе. С другой стороны, они принципиально проще и требуют гораздо менее усилий при разработке. Поэтому гипертекстовые базы знаний, как тип программных изделий, занимают определенную экологическую нишу и являют собой постоянный вызов более сложным системам, основанным на знаниях: "А нужно ли строить экспертную систему? Может достаточно быстро и легко оформить имеющиеся знания в виде гипертекста?"

Характерным примером этого положения может служить гипертекстовая база знаний HowDoHT. В ней более 70 правил. Правила самые разнородные, от нетривиальных трюков с конкретной системой построения гипертекстов "HyRe" до простого перечисления различных вариантов того, как можно оформить в тексте, например, ссылку на литературу. Начальный этап занесения знаний в HowDoHT потребовал около 2 недель, из них половину времени заняло описание специальных понятий. После этого база знаний пополняется по мере разработки автором данной работы различных гипертекстов - как только появляется новый прием, он легко встраивается в базу знаний HowDoHT. Таким образом, HowDoHT хранит существенную часть опыта автора как разработчика конкретных гипертекстов.

Гипертекстовые базы знаний можно рассматривать не только как соперника автоматизированным системам, но и как один из возможных способов организации подсистемы объяснений для экспертных систем, для систем, основанных на знаниях, для обучающих систем. В самом деле - основное, чему подчинена гипертекстовая база знаний, - это как максимально нагляднее показать, объяснить пользователю ту или иную совокупность знаний, сложных информационных единиц. Конечно, в автоматизированных системах некоторая информация создается во время сеанса работы системы, например - ход рассуждений в экспертной системе или текущая модель пользователя в обучающей системе.

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

4. Система построения гипертекстов HyRe

В рамках диссертационной работы автором была разработана оригинальная система построения гипертекстов HyRe (HYpertext REpresentation). Начало данной главы посвящено описанию данной системы и ее основных возможностей (дополнительной возможности - подключению внешних программ - посвящены разделы 4.6. - 4.10.).

В первом разделе описываются цели разработки системы; почему автор решил разработать собственную систему. Во втором разделе дается общая оценка особенностей системы HyRe с точки зрения ее концепций. В третьем разделе описываются две технологии подготовки гипертекстов, поддерживаемые системой HyRe (одна - более ранняя, другая - более поздняя, добавленная в дополнение к прежней). В четвертом и пятых разделах даны команды, используемые при создании гипертекста, и команды, доступные при просмотре (использовании) гипертекстов в системе HyRe. В заключительном разделе 4.11. снова дается общая оценка данной системы, но уже с точки зрения опыта ее использования.

4.1. Цели разработки системы

Автором диссертационной работы была разработана собственная оригинальная система построения гипертекстов HyRe. При ее разработке преследовались следующие цели.

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

(2). Как правило, в литературе, посвященной гипертексовым системам, описываются системы, позволяющие строить гипертекст (добавлять новые темы, помечать поля ссылок, связывать ссылки с темами гипертекста) в диалоговом режиме. Другим, альтернативным способом, является пакетное построение гипертекста - подготовка исходных данных для гипертекста в виде обычного текстового файла с добавлением специальных команд.

Общепринято, что диалоговые системы, вообще говоря, удобнее из-за принципа WYSIWYG (What You see is what You give): они позволяют строить гипертекст непосредственно, производя операции и сразу же наблюдая результат. Однако автор данной работы, не отрицая этих достоинств диалоговых систем, считает, что пакетный принцип построения обладает своими достоинствами. Построение гипертекста не во внутренней, замкнутой среде диалоговой гипертекстовой системы, а в стандартной и открытой среде текстового файла, в произвольном текстовом редакторе, позволяет:

a) воспользоваться при построении гипертекстов возможностями различных мощных текстовых редакторов;
b) воспользоваться возможностями обработки текстов при специализированных, иногда ad hoc, программ;
c) упростить процесс перевода готовой документации из текстовых файлов в форму гипертекста;
d) вести такие текстовые документы, которыми можно было бы одновременно пользоваться и как текстовыми файлами, которые можно редактировать и исправлять различными способами, и как текстовыми файлами, которые можно быстро вывести на печать и получить качественный документ, и как файлами, которые можно автоматически превратить в гипертекст и просматривать, перемещать как систему текстовых фрагментов, систему "тем".

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

В основном эти цели были достигнуты. Наличие собственной системы позволило ввести в нее ряд полезных особенностей и возможностей (поиск по подстроке сквозь весь гипертекст, отчет о структуре гипертекста и т.п..), позволило разработать и опробовать собственный механизм подключения и использования внешних программ (см. ниже разделы 4.6. - 4.10.).

4.2. Особенности HyRe как гипертекстовой системы

Система HyRe ориентирована на профессионального пользователя, создающего различные большие и сложные информационные системы справочного характера. В главе 1 было приведено деление гипертекстовых систем по целям их разработки: (а) для коллективной работы в рамках сети, (б) для непосредственной, оперативной помощи при интеллектуальной работе, (в) для создания справочников, help'ов, документации, (г) для исследования технологии гипертекстов. По этой классификации система HyRe попадает в категорию (в) и, отчасти, (г).

Наиболее яркой особенностью системы HyRe является ее ориентация на использование в процессе подготовки гипертекста мощного текстового редактора. Допускается любой редактор, работающий с ASCII-файлами (т.е. с файлами без специальных управляющих кодов, специфичных для конкретного текстового редактора). Это определило разбиение системы на две программы. Первая программа, "компилятор", читает исходные текстовые файлы с командами, описывающими структуру гипертекста, и создает упакованный файл данных. Вторая программа, "программа просмотра", позволяет просматривать данный файл на экране как гипертекст. Разделение системы на две программы сделано еще и по коммерческим соображениям: человек, купивший систему HyRe, может распространять пользователям только файл с упакованными данными и программу просмотра, а программу "компилятор" хранить у себя.

Система HyRe позволяет строить гипертекст из нескольких текстовых файлов. Это существенно помогает при разработке больших гипертекстов: обычно большой гипертекст состоит из нескольких частей различной тематики, различной формы; им можно сопоставить различные файлы.

Как выяснилось в процессе использования системы HyRe в конкретных приложениях, ориентация на ASCII-файлы в качестве исходных данных для гипертекста оказалась очень удобной для включения в процесс подготовки гипертекста различных вспомогательных "текстовых" программ (т.е. программ, которые получают на вход один текстовый файл и выдают в качестве результата другой). Было написано несколько программ, которые оказались полезны при подготовке гипертекстов различного типа. Перечислим некоторые из них.

- Препроцессор RusPP. Он позволяет в исходные тексты вставлять команды условной препроцессорной обработки, что, в свою очередь, дает возможность из одного исходного текста генерировать различные версии гипертекста.

- Фильтр Do-Short. Эта программа может просматривать исходные файлы гипертекста и автоматически строить сквозное линейное оглавление всех тем, входящих в гипертекст в виде отдельного текстового файла. Данный файл потом включается в разрабатываемый гипертекст наряду с другими текстовыми файлами.

- Программа See-Tail. Позволяет вывести те строки, длина которых превышает заданную. Удобна при построении гипертекста из готового документа, набранного в нестандартном формате.

- Фильтр Up-Low. Переводит текстовые файлы, набранные заглавными буквами (например, файлы, считанные из среды МВК "Эльбрус") в строчные.

- Программа сортировки TSort. Позволяет сортировать целые группы строчек по различным ключевым признакам. Удобна для построения различных оглавлений, таблиц и т.п..

Программа просмотра, в свою очередь, также имеет свои особенности.

- В системе HyRe нет режима "прокрутки" текста (scrolling). Это сделано по принципиальным, как и в системе KMS [7] соображениям: (а) режим прокрутки усложняет процесс просмотра; (б) в системах с фиксированным разбиением на страницы разработчик гипертекста получает больший контроль над гипертекстом: он может повысить качество гипертекста, проектируя не только отдельные темы, но и отдельные страницы экрана.

- В системе есть страницы двух видов - широкие и узкие. Если разработчик гипертекста будет пользоваться только узкими страницами, то при просмотре пользователь может видеть предыдущую страницу, что помогает ориентироваться в гипертексте.

- В системе кроме традиционного для гипертекстов доступа к темам по ссылкам, есть возможность сквозного поиска по подстроке. Это важная возможность, т.к. она дает принципиально иные возможности как пользователям гипертекста, так и его разработчикам. Разработчик гипертекста может заранее вставить в различные места гипертекста одни и те же ключевые слова и тем самым логически (при помощи использования сквозного просмотра) связать их еще одним способом, помимо связи через ссылки.

- В системе есть возможность возврата по истории просмотра.

- Информацию из гипертекста можно выводить в текстовый файл (отдельные страницы, темы или весь гипертекст в целом).

- При вызове гипертекста можно сразу выйти не на начальную тему гипертекста, а, задавая различные ключевые слова/идентификаторы тем, выходить сразу на темы, описывающие ключевые слова.

В целом можно сказать, что система HyRe относится к классу "простых" систем, т.е. систем без особо мощных и богатых возможностей типа NoteCards [9], KMS [7] и т.п., но среди систем своего класса она имеет достаточно развитый сервис. При разработке и сопровождении системы HyRe автор стремился ограничиться минимумом возможных идей и концепций, вводя в систему только те механизмы, которые часто требовались на практике.

4.3. Две технологии подготовки гипертекстов

Система HyRe в настоящий момент поддерживает два различных формата описания исходных файлов гипертекста, и с этими форматами, соответственно, связаны две технологии подготовки гипертекстов. Наличие двух входных форматов ("команды среди текста" и "команды в отдельном файле") объясняется историческими причинами. Сначала в системе был принят формат "команды среди текста". Затем, в процессе его практического использования стало понятно, что этот формат имеет некоторые недостатки, которых можно избежать, если перейти на другой формат: "команды в отдельном файле". Описанию и сравнению этих двух форматов и посвящен данный раздел.

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

Для обозначения начала новой темы вводятся отдельные строки-команды вида .: <идентификаторТемы>.

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

Кроме этого, был ряд других команд:

- описать строку, которая будет строкой-заголовком для всех страниц этой темы;
- установить палитру цветов;
- сменить символы, используемые как скобки для выделения полей ссылок;
- перейти в режим холостого считывания строчек из файла;
- вернуться обратно в рабочий режим;
- вставить указанный файл как один из исходных файлов гипертекста;
- указать, что данная тема - особая:
- это начальная тема гипертекста (команда .#b);
- это тема, на которую будут ссылаться неопределенные поля ссылок (команда .#n);
- это тема, на которую пользователь будет переходить при нажатии клавиши F1 во время просмотра гипертекста (тема с подсказкой по просмотру гипертекста - команда .#h).

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

Недостаток данного формата состоял в том, что он хоть и минимально, но все-таки "портил" исходный текст.

1) Посреди текста появлялись строки описания идентификаторов темы.

2) Скобки, указывающие поля ссылок, сдвигали видимую правую границу текста, нарушали рисунки в псевдографике, вид таблиц. Если на странице было много ссылок (много ссылок бывает в темах, играющих роль оглавлений и подоглавлений), то для точного понимания положения строк и ссылок на экране приходилось либо "считать символы", либо компилировать гипертекст и затем его просматривать.

В начале разработки системы HyRe типичный процесс построения гипертекста представлялся следующим образом.

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

В целом предполагалось, что превращение текста в гипертекст - это скорее разовая работа, а его сопровождение - это относительно редкие эпизоды изменений и добавлений. В основном эти предположения оправдались: большинство случаев построения гипертекстов оказывалось скорее разовой работой, нежели постоянной. Однако, с накоплением опыта построения гипертекстов, возникло желание расширить сферу их применения. Оказалось, что в целом ряде случаев основной результат работы - это построение связанной системы текстов. Такие тексты обычно имеют точно выверенный, нетривиальный формат; под систему текстовых файлов отводится отдельный справочник на диске; эти файлы при переносе или сохранении упаковываются в единый ZIP-файл (о ZIP-файлах см. в [48]); и ZIP-файл выступает как объединитель файлов в систему. В таких случаях то, что гипертекст связывает систему файлов в нечто единое, с единым оглавлением, могло бы принести некоторую пользу, заменив ZIP-файл и необходимость не очень удобного просмотра нескольких файлов в текстовом редакторе, на файл данных гипертекста с более удобным просмотром.

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

Для того, чтобы распространить использование гипертекстов и на эту ситуацию, было решено добавить в систему HyRe еще один входной формат описания/представления гипертекстов. Суть его заключалась в том, что почти все команды, включая описание полей ссылок и команды, описывающие из каких файлов собирать гипертекст, выносились в отдельный файл. В исходных же файлах оставалось только разделение файла на темы. Такое разделение делалось горизонтальной чертой (символы псевдографики) а следом шла строка, которая одновременно служила и идентификатором темы и строкой заголовка. Такая форма разбиения файла выглядела достаточно естественно и не "портила" вид текста.

Описание структуры гипертекста при этом изменилось. В отдельном файле команд стало нужно описывать:

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

В целом, переход от относительно прямого описания полей ссылок в формате "команды в тексте" к более косвенному сделал процесс описания структуры гипертекста в некотором смысле более трудоемким - появилась необходимость дополнительно описать соответствие:

тема -> поле ссылки и
поле ссылки -> идентификатор темы ссылки.

Но одновременно такая технология и упростила подготовку гипертекста:

a) исчезла необходимость "считать символы" и косвенным образом планировать точный вид страницы, и
b) вся структура гипертекста оказалась компактно собранной в одном месте.

Так как прежняя технология "команды в тексте" имела свои достоинства, то было решено поддерживать оба формата и, соответственно, обе технологии подготовки гипертекстов.

4.4. Входные форматы описания гипертекста

В данном разделе будут кратко описаны оба входных формата описания гипертекста.

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

.< имяТекстовогоФайла

Данная команда, как и все описанные ниже, должна начинаться с 1-ой позиции (точка в 1-ой позиции - признак команды).

В основном файле и в файлах, включаемых командой .< допустимы следующие команды.

.: строка-символов

- Данная строка символов это идентификатор темы.

.::строка-символов

- Данная строка символов это внешний идентификатор темы.

.:\ строка-символов

- Первая строчка в теме одновременно идентификатор темы.

.::\ строка-символов

- Первая строчка в теме одновременно внешний идентификатор темы.

.#b

- Текущая тема это начало гипертекста.

.#n

- На текущую тему будут ссылаться все неопределенные ссылки.

.#h

- Текущая тема - это подсказка для программы просмотра гипертекста; на нее попадают, нажав F1.

.&h-

- Далее - холостое чтение строчек исходных файлов.

.&h+

- Отменить холостой режим, вернуться к нормальной компиляции гипертекста.

.Tn текст

- Данный текст будет n-ой строкой в заголовке. n = 1..9

Команды управления параметрами:

.&p+

- далее - широкие страницы

.&p-

- далее - узкие страницы

.&c+

- далее - цветные страницы

.&c-

- далее - нецветные страницы

.&sqXY

- далее XY - спецскобки для ссылок

.&suXY

- далее XY - признаки начала невидимой части ссылки

.&srX

- далее X - признак начала косвенной части ссылки

.&snFF

- далее FF - цвет основной части текста

.&siFF

- далее FF - цвет выделенных слов-ссылок

.&scFF

- далее FF - цвет ссылки под курсором

.&ssFF

- далее FF - цвет служебных признаков

.&szFF

- далее FF - цвет неопределенных ссылок

.&syFF

- далее FF - цвет неопределенных ссылок под курсором

.&stFF

- далее FF - цвет текста в заголовке

В одной строчке можно совмещать несколько команд управления параметрами, например:

.&p+c-sq..

Некоторые поля в тексте могут быть выделены в качестве полей ссылок или цветных полей следующим образом:

[аа]

Ссылка с полем "аа".

Ссылается на тему с тем же идентификатором.

[аа`ббб]

Ссылка "аа" с невидимой частью "ббб".

Ссылается на тему с идентификатором "аа`ббб".

[аа^FF]

Ссылка с явно заданным цветом.

Ссылается на тему с идентификатором "аа^FF".

[аа^FFббб]

Цветная ссылка с невидимой частью.

[аа'вв]

Ссылка с альтернативной частью.

Ссылается на тему с идентификатором "аа'вв".

[аа'^FF]

Цветное поле.

Для того, чтобы перейти на формат "команды в файле", в основном файле нужно поместить команду ".! <имяТекстовогоФайла>". Эта команда аналогична команде ".<", но отличается тем, что (1) включаемый файл должен быть оформлен в формате "команды в файле", (2) вслед за командой ".!" должны помещаться строчки, описывающие структуру включаемого файла как гипертекста. После команды ".!" должны располагаться команды

.. идентификаторТемы

или

... внешнийИдентификаторТемы

Идентификаторы тем в командах ".." или "..." должны совпадать с идентификаторами тем во включаемом файле. Эти команды нужны для того, чтобы можно было предварительно описать поля ссылок, которые нужно найти в соответствующих темах.

Вслед за командами ".." или "..." могут идти команды, описанные выше: ".#b", ".#n", ".#h", команды управления параметрами. Эти команды запоминаются и выполнятся тогда, когда программа компиляции встретит тему с соответствующим идентификатором.

После этого идут описания полей ссылок. Они имеют следующие возможные формы.

"опция" :- Глава 10

Если в теме, указанной в команде ".." будет найдена подстрока "опция", то она станет ссылкой на тему с идентификатором "Глава 10".

"опция" :-7F Глава 10

Соответствующая ссылка будет иметь нестандартный цвет 7F.

"опция" :-\

Глава 10

Идентификатор темы находится на следующей строке.

"опция" :=

Поле ссылки "опция" совпадает по тексту с идентификатором темы "опция".

"опция" :-7F

Подстрока "опция" будет цветным полем.

4.5. Действия, возможные при просмотре гипертекста

В данном разделе мы кратко перечислим те возможности, которые система HyRe предоставляет пользователю при просмотре гипертекстов.

Т.к. действия-команды связаны с нажатием одной клавиши, то описание команд будет дано ниже в форме описания реакций на нажатия клавиш.

клавиши-стрелки

Перемещение курсора по полям ссылок, выбор нужной ссылки.

Enter

Переход на тему, связанную с выбранной ссылкой.

F2

Движение назад по истории просмотра: перейти на ту страницу экрана, которая просматривалась перед этим.

F3

Движение вперед по истории просмотра (действие, обратное клавише F2).

Tab

Если просмотр велся по узким страницам, то это переход с одной половины экрана на другую и обратно. Если просмотр велся по широким страницам, то это переход на предыдущую просмотренную страницу экрана и обратно.

Esc

Прекратить просмотр, выйти из гипертекста.

p, P, Ctrl-p

Вывести текст из гипертекста в файл с расширением .prt. Маленькая латинская p - вывести страницу;

большая P (Shift-p) - вывести все страницы просматриваемой темы;

Ctrl-p - вывести весь гипертекст от начала до конца.

F6

Поиск/просмотр гипертекста "насквозь" по заданной подстроке (по заданному ключевому слову).

Alt-F6

То же самое, но перед просмотром задать новую строку.

Ctrl-F6

То же самое, но начать просмотр не с текущей страницы, а с начальной темы гипертекста.

+

Листать "подряд" гипертекст по возрастанию внутренних номеров страниц.

-

То же, но назад, по убыванию номеров страниц.

j

Перейти на страницу с номером, вводимым после команды.

c

Выйти в ДОС и выполнить команду.

F1

Перейти на заранее заданную (во время компиляции, командой .#h) тему, содержащую подсказку по просмотру данного гипертекста.

4.6. Концепция внешних программ в системе HyRe

Гипертексты, как тип программных систем, предлагают пользователю определенный подход к использованию компьютера:

(а) просматриваемая информация, как правило, заранее задана;

(б) действия пользователя сводятся к тому, что он (а) просматривает фрагменты информации и (б) выбирает - что ему смотреть дальше;

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

Такой подход вполне приемлем в целом ряде случаев (гипертексты как справочники, гипертексты как встроенный Help для какой-либо программной системы, гипертексты как базы знаний), и поэтому гипертексты занимают свою экологическую нишу среди возможных типов программных продуктов.

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

Приведем несколько примеров.

Среди фрагментов информации с текстами иногда нужно показывать рисунки. Одни системы построения гипертекстов не позволяют показывать графическую информацию как, например, система HyRe (пункт (в) выступает как ограничение), другие системы позволяют, но так как различных графических форматов много и время от времени появляются новые, то мы снова можем столкнуться с ограничением (в).

В справочной системе, посвященной различным аспектам программирования на конкретном языке, скажем, языке Си, удобно дать примеры исходных текстов программ на Си. Раз есть исходные тексты, то естественно дать возможность пользователю скопировать нужные ему фрагменты в файл. И некоторые системы построения гипертекстов дают такую возможность (Например, в HyRe можно распечатать отдельные страницы или темы в специальный текстовый файл). Но если у нас исходные тексты достаточно большого объема и логически, с точки зрения языка Си разбиваются на несколько файлов и эти файлы должны иметь фиксированные имена, то появляется необходимость уметь выводить целую группу текстов, из различных страниц гипертекста в несколько текстовых файлов с заранее заданными именами за одно действие. Предусматривать такую возможность в системе построения гипертекстов как стандартное действие нелогично; она слишком связана с конкретной прикладной спецификой.

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

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

В двух последних примерах разрабатываемую систему удобно делать как гипертекст, но требуются действия, выходящие за рамки пп. (а), (б), (в) гипертекстового подхода.

Для того, чтобы сохранить гипертекстовый подход в целом, но в отдельных случаях иметь возможности для его расширения, предлагается дополнять гипертексты специализированными программами. Далее мы будем называть такие программы "внешними". Термин подчеркивает преимущественно внешний характер использования данных вспомогательных программ по сравнению с основной "глобальной" программой, позволяющей просматривать сам гипертекст. Исследованию внешних программ посвящена вторая часть данной главы.

Автор разработал концепцию расширения системы построения гипертекстов HyRe внешними программами, собрал перечень возможных постановок задач для внешних программ (раздел 4.7) выделил ряд требований, которые внешние программы предъявляют к системе построения гипертекстов, интерфейс между системой HyRe и внешними программами (раздел 4.8), предложил определенную технологию разработки внешних программ, использующую особенности объектно-ориентированного подхода (раздел 4.9), попытался посмотреть на расширение гипертекстов внешними программами как на определенную информационную технологию (раздел 4.10).

Идея расширения возможностей гипертекста другими, нетекстовыми формами представления информации и возможностями, которые дает проектирование и выполнение специализированных программ, реализована в различных системах построения гипертекстов. Более того, последнее время системы с такими возможностями получили специальное название - не "гипертексты" (hypertext), а "гиперсреды" (hypermedia). Ярким примером такой системы является система HyperCard [21].

Если посмотреть на систему HyperCard с точки зрения того, как там организована работа с внешними программами, мы увидим следующие основные особенности.

- В HyperCard есть специальный язык HyperTalk, на котором пишутся внешние программы.

- Этот язык - интерпретируемый. В нем есть специализированные базовые операторы (чтение символов с экрана, вывод на экран, отслеживание клавиатуры), типовые программные структуры (присваивание, конструкции if-then-else, элементарные типы данных).

- Работа самой системы HyperCard - это выполнение некоторой основной "глобальной" программы на языке HyperTalk. Внешние программы вызываются в контексте выполнения основной и имеют доступ к внутренним данным основной программы.

- В системе HyperCard принят оригинальный подход к организации выполнения программ.

Система HyperCard очень популярна в США и в странах Западной Европы; с ее помощью написано много гипертекстовых систем, собрана большая библиотека внешних программ.

Однако, несмотря на то, что подход, принятый в HyperCard прошел широкую проверку на практике, с точки зрения автора данной работы он имеет определенные недостатки.

- Система HyperCard в целом - это достаточно большая и сложная программная система, требующая высокого быстродействия со стороны компьютера.

- Внешние программы пишутся на специальном языке; необходимо знать данный язык, а также понимать то, как организована работа системы HyperCard.

- Система HyperCard - единая, как для создания гипертекстов, так и для их использования.

При разработке системы построения гипертекстов HyRe автор ставил себе цели, несколько отличные от видимых целей системы HyperCard.

- Система HyRe разрабатывалась как небольшая, простая система, не требующая высокого быстродействия компьютера.

- В системе HyRe есть четкое отличие между программой построения гипертекстов и программой просмотра. Это отличие связано с технологическими/ коммерческими соображениями: программа просмотра "придается" бесплатно каждому разработанному гипертексту и распространяется свободно, а программа построения имеет определенную стоимость.

- Внешние программы - это дополнительный механизм для системы HyRe; они требуют дополнительной, более высокой квалификации от разработчика гипертекста (умение писать программы на С++ при некоторых ограничениях), чем базовая система построения гипертекстов HyRe (минимальные требования к квалификации: умение редактировать текст в любом редакторе и понимание небольшого числа операторов системы HyRe).

По этим причинам по отношению к внешним программам в системе HyRe принят свой, оригинальных подход.

1) В качестве языка программирования для внешних программ выбран С++ [22].

2) С системой HyRe поставляется библиотека уже написанных внешних программ в исходном виде. Каждая внешняя программа оформлена как класс в рамках объектно-ориентированного подхода. Новые внешние программы могут разрабатываться как уточнения и модификации уже разработанных при помощи механизма наследования языка С++.

3) Внешние программы - компилируемые. Программа просмотра может поставляться и как законченная работающая программа (и тогда к ней невозможно добавить новую внешнюю программу), и как объектный модуль с единственной неопределенной ссылкой - ссылкой на систему внешних программ. Во втором случае разработчик гипертекста и внешних программ может откомпилировать систему внешних программ независимо от программы просмотра, а потом объединить их с помощью стандартной программы редактирования объектных модулей языка Си в законченную программу.

4) Строки вызовов внешних программ указываются как спецоператоры в тексте исходного гипертекстового файла.

5) Внешние программы связываются с отдельными страницами гипертекста. При попадании на такую страницу основная программа просмотра выводит страницу текста на экран и вызывает внешнюю программу. Внешняя программа перехватывает часть (или все) реакций на клавиатуру, ведет диалог с пользователем, потом завершается и возвращает управление основной программе просмотра.

6) Внешние программы имеют доступ к некоторым внутренним данным основной программы просмотра.

7) Внешние программы могут вызывать некоторые стандартные подпрограммы-действия из основной программы просмотра.

8) Есть возможность вызывать в качестве внешней программы не только специальную подпрограмму на С++, объединенную с основной программой просмотра, но и просто произвольную отдельную программу (в этом случае возможности п.6 и п.7 не доступны).

В целом, основные особенности подхода к внешним программам системы HyRe определяются стремлением как можно больше отойти от интерпретационного подхода (более традиционного для систем типа "hypermedia") к компилятивному. Тем самым резко снижаются требования к аппаратуре, но появляются свои особенности, ограничения и специфика для программиста, разрабатывающего внешние программы для системы HyRe.

4.7. Перечень спецификаций внешних программ

Для того, чтобы разработать поддержку внешних программ, необходимо постараться охватить в целом все те требования, которые внешние программы могут предъявить к программе просмотра гипертекстов системы HyRe, с одной стороны, и к той специальной среде (система классов на С++), в которой предлагается их разрабатывать, с другой стороны. Все возможные варианты внешних программ охватить невозможно, т.к. необходимость в внешних программах возникает от практических нужд при построении конкретных прикладных гипертекстовых систем. В этом смысле система возможных внешних программ - это открытая система. Однако если мы можем выписать достаточно представительный перечень таких внешних программ или даже постановок задач для внешних программ, мы можем ориентироваться на этот перечень и реализовать все необходимые интерфейсы, впоследствии изменяя или расширяя их, по необходимости.

Ниже мы приведем текущий вариант перечня Ext-Prog-Proj - перечня спецификаций для внешних программ. Внешние программы в данном перечне разбиты по группам; в каждой группе приведены не все возможные программы, а только те, которые требуют чего-либо особенного от системы HyRe и от специальной объектно-ориентированной среды, в которой они будут разрабатываться. Для каждой внешней программы указывается имя программы (на английском) и краткое описание.

Ext-Prog-Proj:

Перечень спецификаций внешних программ.

Псевдографика и динамика в ней

Symbol-Motion

На экран выводится статичная картинка в псевдографике; по ней по определенному маршруту движется выделенный символ.

Symbol-Chain-Motion

На экран выводится статичная картинка в псевдографике; по ней по определенному маршруту движется цепочка символов.

Работа с графической информацией

PIC-View

Вывести на экран вместо текстовой информации изображение из файла в графическом PIC-формате.

Page-PIC

Вывести на экран страницу гипертекста с ссылками, из файла в графическом PIC-формате.

Formula-Graphic

На экране показана формула. Рядом - ее график. Пользователь может задавать и изменять значения параметров формулы; тут же изменяется график формулы.

Использование информации из гипертекста

Prt-File

Вывести заранее указанные страницы гипертекста в файл с нужным именем (для печати Си-программ).

Показ информации из других источников

Extern-File-View

Показать текстовый файл с заранее заданным именем как одну из тем гипертекста.

"Мгновенные" вычисления (spreadsheet)

Formula-Value

На экране показана формула. Рядом показано ее значение при начальных параметрах. Пользователь может задавать и изменять значения параметров формулы; тут же изменяется результат.

Запоминание ответов пользователя

Quest-Answer-Memory

Внешняя программа задает ряд вопросов пользователю и запоминает его ответы. Пользователь может попадать на эту страницу несколько раз, его ответы сохраняются в течении сеанса просмотра гипертекста.

Расширение возможностей программы просмотра

Set-Color

Установить цвета в гипертексте.

Quick-View

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

Jump-to-Other-File

Перейти на просмотр другого гипертекста, в другом гипертекстовом файле.

Create-Page

Создать новую страницу гипертекста и добавить ее в данный гипертекст.

Комбинирование нескольких страничных программ

Few-Ext-Prog-in-Parallel

Псевдопараллельное выполнение нескольких внешних программ над одной страницей.

Diafilm

Выполнение сценария: в определенной последовательности вызываются на экран заранее заданные страницы со своими внешними программами. Сценарий описывается небольшим командным языком.

4.8. Требования внешних программ к системе построения гипертекстов HyRe

Различные внешние программы предъявляют различные требования как к самой системе HyRe, так и к специальной объектно-ориентированной среде, в рамках которой работают внешние программы (эта среда имеет имя "HyRe-Ext-Prog-Medium"). Требования к среде HyRe-Ext-ProgMedium будут описаны в следующем разделе. Для более удобного описания каждому требованию внешних программ будет даваться свое название.

Состояние перечня требований зависит, вообще говоря, от состояния перечня спецификаций внешних программ. Ниже мы перечислим текущее состояние перечня требований к системе HyRe, однако, если в перечне специфкаций внешних программ через некоторое время появятся программы, с новыми требованиями к системе HyRe, то и перечень требований придется дополнить, изменить. Поэтому в данной работе мы говорим о текущем состоянии перечня спецификаций внешних программ и, соответственно, о текущем состоянии перечня требований к системе HyRe (и к среде HyRe-Ext-Prog-Medium).

Перечень требований мы опишем далее в форме: имя требования (в кавычках), комментарий.

Перечень требований к системе HyRe от спецификаций внешних программ:

"Библиотечная память для внешних программ"

Некоторые внешние программы, например, Query-Answer-Memory или Formula-Value должны уметь сохранять введенные пользователем значения в течении одного сеанса просмотра.

Для того, чтобы это было возможно, в системе HyRe должен быть механизм, позволяющий внешним программам (1) заказывать оперативную память, (2) хранить там значения при переходе пользователя на просмотр других страниц, (3) при повторном попадании на данную страницу считывать из этой памяти свои значения. Данный механизм автор назвал "библиотечной памятью". При этом номер страницы играет роль идентификатора страницы - по нему происходит доступ к памяти. Внешние программы должны (4) знать номер страницы на фоне которой они работают.

"Возможность вызова процедуры стандартной реакции на клавиши из внешней программы"

Во внешних программах очень часто возникает необходимость выполнить стандартную реакцию (как в программе просмотра) на ту или иную клавишу. Для того, чтобы это обеспечить нужно, чтобы

1. стандартные реакции были выделены в отдельную процедуру, и

2. чтобы внешние программы могли пользоваться этой процедурой.

"Набор внутренних подпрограмм, доступных для внешних программ"

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

"Отслеживание состояния просмотра и сохранение (восстановление) его в файле (из файла)"

Для реализации внешней программы Jump-to-Other-File система HyRe должн уметь (1) сохранять текущее состояние просмотра в некотором файле и (2) восстанавливать его из файла.

"Предварительный показ темы"

Для поддержки быстрого предварительного просмотра темы в внешней программе Quick-View в программе просмотра нужно (1) предусмотреть еще один параметр/режим просмотра страницы гипертекста. (2) При обычном просмотре включен нормальный режим, но из внешней программы можно вызвать соответствующуюю процедуру (См. "Набор внутренних подпрограмм, доступных для внешних программ") в другом, "быстром" режиме.

"Поддержка просмотра дополнительного текстового файла"

В некоторых гипертекстовых приложениях очень удобно иметь возможность просматривать одновременно и страницы гипертекста и некоторый произвольный текстовый файл (имеется ввиду то, что в HyRe гипертекстовые страницы могут быть не только во весь экран, но и в пол-экрана). Для того, чтобы программа просмотра могла "позволить" внешней программе запрограммировать такую возможность, (1) в программу просмотра необходимо ввести режим "замороженного" перелистывания - когда вертикальные полустраницы гипертекста листаются не в режиме "слева-справа-слева-справа", а на одном половине экрана (а просматриваемый файл - на другой). Кроме того (2), в клавишах, вызывающих переходы со страницу на страницу (J -прыжок по номеру страницы, F2 - возврат назад, и т.д.) нужно учесть, что текстовый файл тоже имеет страницы и располагается (3) в конце гипертекста, за последней его страницей.

"Модификация гипертекстового файла"

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

Однако, в принципе, систему HyRe можно сделать и диалоговой просто разработав несколько специальных внешних программ: добавить страницу в гипертекст, добавить текстовый файл как тему в гипертекст, добавить/удалить ссылку на странице, изменить текст на странице гипертекста и т.п..

Один из возможных способов достижения этого - (1) выводить все предлагаемые изменения в отдельный служебный файл в специальном формате, (2) иметь отдельную программу перекомпиляции гипертекстового файла, (3) уметь сохранять текущее состояние гипертекста (См. "Отслеживание состояния просмотра и сохранение (восстановление) его в файле (из файла)"), (4) при перекомпиляции изменять файл с запомненным состоянием так, чтобы не нарушалось соответствие страниц, (5) после перекомпиляции снова запускать программу просмотра.

"Восстановление текстового режима после вызова графических внешних программ"

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

"Реакция на неправильный вызов внешней программы"

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

4.9. Организация внешних программ на языке С++.

Внешние программы для системы HyRe предлагается разрабатывать в определенной программной среде, выше мы дали ей название HyRe-ExtProg-Medium. Основная ее особенность заключается в попытке упростить разработку внешних программ путем использования механизма наследования в рамках объектно-ориентированного программирования на С++.

Каждая внешняя программа оформляется как класс. Существует специальный класс Abstr_Ext_Prog, который должен быть самым "верхним" (будем говорить, что наследование происходит "сверху-вниз") корневым классом для всех разрабатываемых внешних программ. В классе Abstr_- Ext_Prog запрограммированы все основные элементы среды HyRe-Ext-ProgMedium.

- Специальная процедура Error реакции на ошибку при выполнении внешней программы, которая возвращает в программу просмотра специальный код возврата и текст сообщения, которое нужно показать пользователю.

- Набор так называемых hyre-процедур - внутренних процедур программы просмотра, которые доступны для использования в внешних программах. Эти процедуры оформлены как процедуры класса Abstr_Ext_Prog, т.е. любая внешняя программа имеет их как часть своего интерфейса (интерфейса класса, соответствующего внешней программе) или даже переопределить.

- Специальные процедуры, организующие работу с библиотечной памятью.

- Процедура ожидания нажатия на клавиатуру. Работа данной процедуры зависит от специального параметра to_wait. Если этот параметр установлен в 1, то цикл простоя-ожидания очередного нажатия на клавишу выполняется внутри внешней программы; т.е. внешняя программа полностью взяла управление на себя и сама ведет диалога. Если этот параметр установлен в 0, то внешняя программа либо реагирует на клавиатуру, либо заканчивается. В этом случае внешняя программа не берет себе управление процессом а только выполняет реакции на клавиатуру и сразу отдает управление внешней программе.

Этот режим существеннен для того, чтобы можно было реализовать псевдопаралелльное выполнение нескольких внешних программ, в частности для внешней программы Few-Ext-Prog-in-Parallel.

- В Abstr-Ext-Prog существует целая группа процедур, которые соответствуют различным группам клавиш. При нажатии на какую-либо клавишу упавление передается специальной процедуре was_key_pressing класса Abstr-Ext-Prog. Эта процедура анализирует - какая клавиша была нажата и вызывает процедуру, соответствующую той группе клавиш, к которой принадлежит нажатая клавиша, например - процедуру arrows, если была нажата клавиша "стрелка вправо".

Все возможные нажатия на клавиши разбиты на несколько групп и каждой группе соответствует процедура в Abstr-Ext-Prog. Это сделано для того, чтобы разработчик внешних программ мог переопределить стандартную реакцию на любую клавишу. Процедуры, соответствующие группам клавиш в классе Abstr-Ext-Prog выполняют стандартные реакции; переопределяя эти процедуры в подклассах - прикладных внешних программах можно и изменять реакцию на клавиатуру и, при необходимости, пользоваться стандартной реакцией.

4.10. Внешние программы как информационная технология

Использование внешних программ в гипертекстах предлагает новую точку зрения на соотношение текстовой информации и выполняемых программ в программных системах: отдельные программные компоненты можно "окружать" документацией, "погружать" диалоговые программы в документацию. Хорошо известен обратный подход: гипертекстовые подсказки - пользователь работает в некоторой диалоговой программе, как в основной среде, но иногда может выйти в "help", в подсказку, которая оформлена как гипертекст. Внешние программы предлагают обратную парадигму. Если гипертексты можно образно сравнить с книгой, в которой можно мгновенно перелистывать страницы и выделенные слова "сами знают" куда перелистывать, то гипертекст с внешними программами можно представить в образе книги, в которой на некоторых страницах смонтированы различные кнопки, рычажки, индикаторы, плоские экраны и т.п., при помощи которых пользователь, прочитав какую-то информацию может сразу же перейти к активным действиям.

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

4.11. Опыт использования системы HyRe

В данном разделе автор постарается описать некоторый опыт, полученный в результате более чем 2-х летнего использования данной системы.

Основная особенность системы HyRe, ее ориентация на использование внешнего мощного текстового редактора, в целом оказалась достаточно удобной: вместо того, чтобы работать в двух средах - среде диалоговой гипертекстовой системы и в среде диалогового текстового редактора, работа велась в основном в одной среде, в среде мощного редактора текстов с кратковременными периодами компиляции/ отладки/ шлифовки гипертекста.

Вообще, при разнообразных работах на персональном компьютере, чаще всего работа ведется на трех уровнях: на уровне создания, удаления, копирования, перемещения, переименования файлов и справочников; на уровне редактирования текстовых файлов и на уровне работы внутри какой-либо специализированной системы со своими внутренними объектами и форматами. В этом смысле текстовые ASCII-файлы начинают играть роль некоторого стандарта представления информации.

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

1) Работа с внутренними объектами системы ведется только в рамках данной системы; представление объектов - не текстовые файлы (иногда их называют "двоичные" файлы). Пример - системы, работающие с графическими изображениями.

2) Система работает со своими информационными объектами в своем, внутреннем формате, но позволяет переводить эти объекты в текстовые файлы и считывать их из текстовых файлов. Можно назвать это "импорт/экспорт" внутренних структур.

3) Система представляет свои внутренние структуры в основном в виде ASCII-файлов.

Система HyRe - это система типа (3). Ориентация на подготовку гипертекста во внешнем редакторе и, как следствие, использование пакетного режима имеет как отрицательные стороны, так и положительные. К отрицательным сторонам относится то, что для того, чтобы пометить какую либо подстроку как поле ссылки в системе HyRe нужно затратить несколько больше действий, чем в идеализированной диалоговой системе. К положительным сторонам можно отнести большую простоту построения гипертекстов из уже существующей текстовой документации, большую простоту перевода гипертекста на другие языки, возможность использовать отдельно написанные текстовые программы-утилиты.

Можно подытожить эти рассуждения следующим образом: с увеличением объемов текстов, вводимых в гипертекст и с увеличением сложности предварительной обработки информации, достоинства, присущие диалоговому способу построения гипертекстов, оборачиваются необходимостью делать сложные виды работ вручную, в среде зачастую не ориентированной специально на такие работы. А гипертекстовые системы, хорошо связанные с уровнем текстовых файлов, типа (2) и (3), наоборот, позволяют легко выйти на различные альтернативные, более автоматизированные способы обработки текстовой информации.

5. Опыт построения конкретных гипертекстов

В данной главе будут кратко прокомментированы наиболее интересные особенности разработанных автором гипертекстов, с точки зрения технологии их построения.

5.1. Справочник пользователя по ОС Эльбрус

Справочник по Операционной системе МВК "Эльбрус-2" был написан с целью собрать в единое место разрозненные части документации по ОС Эльбрус. Он оформлен как гипертекст, вызываемый из системы диалогового доступа к Эльбрус-2 через персональный компьютер.


Справочник ВЦКП РАН по программному обеспечению МВК Эльбрус

Типовой сценарий работы     Программы, разработанные ВЦКП РАН

Команды диалога ОС Эльбрус:
Часто используемые команды ОС     Сведения об МВК Эльбрус-2
Команды ОС по группам,            Специальные термины Эльбрус
Команды ОС по алфавиту            Служебные программы:
                                     Слуга
                                     Диалоговый редактор


О самом справочнике          Общий план для всего справочника

Рис. 6.1 Корневое оглавление для справочника по ОС Эльбрус

В справочнике по ОС Эльбрус можно выделить следующие основные темы (см. корневое оглавлении данного справочника на рис. 6.1).

1) Описание команд, которые пользователь может выдавать при диалоге с операционной системой оказалось основной содержательной частью справочника. Всего команд около 80, некоторые из них достаточно сложные. Источником сведений о командах послужила подсказка для системы связи IBM PC с Эльбрус-2. Текст подсказки написал Виктор Сумской из ИТМиВТ.

Для команд было сделано три оглавления - по алфавиту, по группам и перечень наиболее часто используемых.

2) При описании команд потребовалось пользоваться специальными терминами (около 40). Перечень терминов (по алфавиту) и краткие определения для них составили вторую группу тем.

3) В начале разработки справочника для Эльбрус-2 в ВЦКП было написано несколько прикладных программ (5) и предполагалось, что будут написаны и другие. Описание этих программ составило третью группу тем.

4) Важной частью справочника оказался типовой сценарий работы пользователя в ОС Эльбрус, написанный Светланой Печенкиной. Он представлял собой группу из нескольких текстов.

a) Описание в форме небольшой статьи - как входить в систему и какие основные приемы работы нужно знать пользователю. В этом тексте оказалось очень удобным сделать упоминания тех или иных команд ссылками на описание этих команд.

b) Пример типового сеанса в форме протокола команд пользователя и ответов системы (текст на искусственном языке). В этом тексте основная работа состояла в том, чтобы сделать команды пользователя цветными словами одного цвета, а ответы системы -другого цвета и чтобы в целом этот двуцветный текст было удобно читать.

1) В операционной системе Эльбрус была разработана специальная сервисная программа СЛУГА, которая во многом добавляет команды существующего диалога и играет важную роль при работе пользователей с системой. Хотя вызов этой программы оформлен как одна из команд диалога, описание этой команды-программы достаточно разветвленное и поэтому программа СЛУГА представлена в корневом оглавлении отдельной ссылкой, как и текстовый редактор.

Описание программы СЛУГА распадается на 3 группы фрагментов: а) несколько текстов, описывающих эту программу в целом, б) описания команд СЛУГи, в) описания режимов СЛУГи.

Соответственно, для этой программы был сделан свое подоглавление со ссылками на а) статьи о СЛУГе в целом и б) описания команд. Так как описания режимов обычно занимают 1-2 строчки, то режимы было удобно описывать не в виде отдельных тем, а в виде одной большой темы, в которой режимы расположены по алфавиту.

2) Описание текстового редактора было (до составления гипертекста) сделано в форме статьи, состоящей из нескольких глав. Соответственно, и описание текстового редактора в гипертексте приняло вид: подоглавление в виде перечня ссылок на разделы и темы-разделы, описывающие ту или иную информацию о текстовом редакторе.

3) Сведения об МВК Эльбрус - это небольшой текст (3 экрана), общего характера. Так как этот текст относился ко всему справочнику в целом, он был оформлен, как одиночная тема (описывающая объект - конкретную ЭВМ Эльбрус-2, установленную в ВЦКП).

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

5) Наконец, в корневом оглавлении есть ссылка на оглавление специального вида - "Общий план для всего справочника", в котором перечислены ссылки на все темы данного гипертекста в том линейном порядке, в каком они фактически располагаются. Об этом типе оглавлений было сказано выше, в главе 4.

В целом справочник по ОС Эльбрус представляет собой коллекцию разнообразных текстов, объединенных тем, что они могут быть полезны пользователям, работающим в диалоге на МВК Эльбрус. Некоторые тексты были заранее заданы и часть усилий при построении данного гипертекста была затрачены на то, чтобы, находясь в рамках заданного смыслового содержания, максимально облегчить восприятие этих текстов при помощи использования ссылок и техники расположения текста на экране.

Так как справочник задумывался как один из основных источников информации о работе в ОС Эльбрус для ряда пользователей, то к нему предъвлялись повышенные требования к концептуальной целостности и полноте такого гипертекста. Часть материалов была уже написана, но любые другие материалы, при необходимости могли быть написаны и собраны. И с этой точки зрения то, что данный гипертекст разрабатывался с использованием технологии, описанной автором, оказалось существенным - концептуальный план текущего состояния гипертекста и концептуальный план-максимум позволили сделать разработку этой информационной системы более целенаправленной и целостной.

5.2. Справочник-подсказка по языку искусственного интеллекта OPS/ST

Справочник-подсказка по языку OPS/ST был разработан как "Help" для экспериментальной системе OPS/ST. Язык представления знаний OPS/ST содержал ряд нетривиальных концепций, поэтому часть справочника посвящена краткому объяснению этих понятий, идей. Кроме того, OPS/ST представляет собой еще и систему программирования, со своими особенностями и часть справочника посвящена описанию особенностей этой системы программирования.


               Справочник по OPS/ST

Язык OPS/ST
Интерфейс OPS/ST
Система OPS/ST
Отладчик

Как пользоваться справочником
Об авторах OPS/ST

Алфавитный указатель
Семантический указатель

Рис. 6.2. Корневое оглавление для справочника по OPS/ST

Справочник по OPS/ST с самого начала разрабатывался как гипертекст и поэтому он, в отличие от описанного выше справочника по ОС Эльбрус является более цельным (надо заметить, что справочник по ОС Эльбрус намного больше). Хотя в этот момент автор данной диссертационной работы только разрабатывал технологию построения гипертекстов, все же основной ход проектирования во многом шел так, как это описано в технологии "HyRe-Tech": сначала были выделены основные понятия и объекты, затем было сделано разделение на категории и экземпляры категорий, после этого собирался материал, описывающий эти понятия.

5.3. Коллекция инструментальных текстов ОЛГ-СИТ

Коллекция инструментальных текстов ОЛГ-СИТ это система различных текстов, зачастую достаточно специального и оригинального, написанных автором в различное время, с различными целями, система текстов, которые можно объединить одной общей идеей - это тексты, играющие роль своеобразных инструментов при анализе информации, при генерации новых идей, при разработке новых проектов.


Содержание

  Система Инструментальных Текстов ОЛГ-СИТ
                                Ованесбеков Л.Г.
                                1993сент15ср, 1.06
@ Карта знаний
@ Парадигмы
                            @ Исследования
                            @ Постановки проблем
                            @ План возможных статей
@ Аналитические работы
@ Стили мышления
@ Инструментальные тексты


@ Интересные проекты
@ Информационные технологии

@ История чтения статей
@ Ссылки на литературу
@ Референтный указатель информации

Конкретные исследования:

   Суперконспекты (Sc-)
   @ Типы сентенций    @ Действия

   Экспериентализм (Lak-)
   @ Базовые схемы   @ Базовые понятия
   @ Кандидаты       @ Определения схем
   @ Базовые понятия для диалог-систем

   Постановки задач для ИИ (AIT-)
               @ Описания 1v

   @ План 2v   @ Описания 2v   @ План 3v

   Супердействия. Модель вычислений (DAI-)
   @ Деятельности-гештальты
   @ Модель расширенного действия

   Классификация форм знаний (KC-)
   @ Классификация знаний по объему текста

Рис. 6.3. Корневое оглавление для гипертекста ОЛГ-СИТ

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

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

5.4. Подсказка по языку PAL работы с СУБД Paradox

Данный гипертекст имеет специфичную историю создания. Одно время автор осваивал СУБД Paradox. В этой системе есть специальный язык PAL, на котором можно работать с таблицами базы данных, генерировать отчеты. В этом языке есть специальные "операторы", которые выполняют действия и "функции", позволяющие что-либо узнать о текущей ситуации в базе данных. Язык PAL достаточно прост, но в нем много операторов и функций (операторов - 157, функций - 139). Основная доля обучения языку PAL состоит в запоминании и умении использовать различные операторы и функции. Описание операторов и функций было в виде документации в текстовом файле, но распечатать ее возможности не было. Поэтому приходилось постоянно временно выходить из системы Paradox, долго искать при помощи текстового редактора описание нужной функции, и снова возвращаться в систему Paradox.

Так как в системе HyRe есть возможность так вызывать гипертекст, что он сразу выйдет на нужную тему (ее имя задается как параметр при вызове программы), то возникла идея сделать из этой документации гипертекст и за счет такого мгновенного выхода на нужную страницу существенно упростить работу. Для того, чтобы создание такого гипертекста имело бы смысл, нужно было затратить на него минимум времени. Это явилось своеобразной проверкой - за какое время можно максимально быстро сделать из готовой документации гипертекст (без повышенных требований к качеству текста). Такой гипертекст был сделан за 3 часа.

Основная работа состояла в:

a) создании двух общих оглавлений для всех операторов и функций (по алфавиту);

b) в и нескольких более специализированных (по категориям) оглавлений, для операторов и функций соответственно;

c) в расстановке команды системы HyRe .::\ перед каждым разделом с описанием оператора или функции.


 К О М А Н Д Ы    Я З Ы К А   P A L

ОРГАНИЗАЦИЯ И НОТАЦИЯ ЗАПИСИ КОМАНД
   Нотация
   Алфавитный перечень команд
КОМАНДЫ ЯЗЫКА PAL ПО КАТЕГОРИЯМ
   Команды сокращенного меню
   Команды управления библиотеками процедур
   Команды для работы с переменными, массивами
   Команды для работы с рабочим полем
   Команды ввода-вывода
   Системные команды языка PAL
   Команды управления выполнением скрипта
   Команды, имитирующие нажатие специальных клавиш системы
      Paradox
   Многопользовательские команды

 Ф У Н К Ц И И   Я З Ы К А   P A L

ОРГАНИЗАЦИЯ И НОТАЦИЯ ЗАПИСИ ФУНКЦИЙ
   Алфавитный перечень функций
ФУНКЦИИ ЯЗЫКА PAL ПО КАТЕГОРИЯМ
   Функции даты и времени
   Финансовые функции
   Информационные функции
   Функции ввода-вывода
   Математические функции
   Функции статистики
   Функции обработки строк
   Функции состояния системы
   Функции состояния рабочего пространства и канвы языка PAL

Рис. 6.4. Корневое оглавление справочника по языку PAL

5.5. Справочник по приемам программирования на языке Си++

Проект данного гипертекста предусматривал собрание коллекции различных приемов программирования на объектно-ориентированном языке Си++ и описание этой коллекции в виде специального гипертекста-справочника. Данный проект, по ряду внешних причин не был реализован, был реализован только прототип такого справочника. Однако уже из построения прототипа автор смог увидеть ряд вещей, относящихся к технологии построения гипертекстов. Поэтому в данном разделе автор описывает опыт не законченного гипертекста, как в предыдущих разделах, а только прототипа.

Разработка этого справочника (он назывался CPP-Meth) велась "от нуля" и поэтому было естественно воспользоваться разработанной технологией. В частности, предварительный анализ основных объектов и категорий, разделение на общие понятия и экземпляры этих понятий сильно помогли выделить и отграничить предметную область данного справочника.

Основными семантическими элементами данного справочника были приемы программирования. Но приемы программирования, как выяснилось при ближайшем рассмотрении, можно разделить на несколько категорий.

a) Некоторые методы, требующие введения специальных понятий, и/или специальной организации программы. Примеры: моделирование множественного наследования, различные способы организации динамической памяти.

b) Написание и использование специальных программ или абстрактных типов данных, которые могут применяться в самых разных приложениях. Обычно программы подобного типа входят в библиотеку стандартных процедур и классов. Примеры: написание различных классов типа коллекция, написание типов данных вида "итератор".

c) Небольшие приемы, связанные со специальным использованием уже имеющихся средств. Примеры: как можно организовывать имена переменных, как можно организовывать сложные циклы, ветвления, как можно нестандартным способом пользоваться функцией печати printf() и так далее.

Соответственно, каждый метод описывался в одной или нескольких темах в виде текста. Однако далее сама идея справочника по приемам программирования на Си++ потребовала дальнейшего развития в определенном направлении.

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

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

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

a) описывать проекты различных интересных классов,

b) проекты и спецификации различных возможных функций,

c) проекты и спецификации различных библиотек программ.

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

В результате подобного анализа стало ясно, что сама идея собрать коллекцию методов программирования логически тянет за собой необходимость посвятить ряд тем не только методам как таковым, а и ряду вещей, тесно связанных с этими методами. Когда автор выписал для данного проекта предполагаемый перечень ОКиО (основных категорий и объектов, см. выше раздел 2.8.) и попробовал оценить объемы нужной информации, то оказалось, что это должен быть весьма большой справочник. Если же делать часть, то из-за оставшихся нереализованных но логически тесно связанных других тем, из-за общего развития техники программирования, из-за развития самого пакета Си++, подобный гипертекст будет хронически страдать неполнотой и фрагментарностью. И это явилось одной из причин, заставивших автора остановиться на прототипе гипертекста и не развивать его дальше.

Правда, спустя некоторое время, когда автор встретился с идеей гипертекстовых баз знаний (см. выше главу 3.), стало ясно, что если бы реализовывать идею гипертекста по приемам программировании на Си++ не в форме справочника, а в форме базы знаний, то проект мог бы быть более успешным, так как форма коллекции правил вида ЕСЛИ СЛУЧАЙ ТАКОЙ-ТО ТО МОЖНО СДЕЛАТЬ ТАК-ТО (а) с самого начала предполагает неполноту, фрагментарность и хаотичность знаний, (б) больше ориентирована на мелкие приемы, а не на крупные концепции.

Из этого случая можно сделать определенные выводы:

a) Проектирование гипертекста по методологии КП "включает" определенную логику дальнейшего развития данной системы концепций.

b) В некоторых случаях просто рассматривая построенный концептуальный план гипертекста, построенный при помощи методологии КП можно заранее оценить объем гипертекста, доступность автору нужной информации и т.п..

c) Правильно или неправильно выбрав концептуальный план гипертекста можно или спасти или погубить тот или иной проект.

d) Планируя будущий гипертекст, полезно пользоваться не только построением концептуального плана и выборами на этом уровне, но и пользоваться коллекцией возможных видов гипертекстов (описанной выше в разделе. 2.11.).

5.6. Выводы из общего опыта построения гипертекстов

В данном разделе мы хотим предложить те выводы по технологии построения гипертекстов, которые сделал автор данной работы из всего процесса построения гипертекстов в целом, без относительно к конкретному законченному или не законченному проекту гипертекста.

1) Очень важный вопрос, встающий перед разработкой любого гипертекста - готова ли уже текстовая информация или ее только предстоит собрать, дописать и соединить. Если информация уже есть (например, есть документация по какому-либо программному продукту и нужно "из нее" сделать HELP для данного продукта), то технология может помочь:

a) в логическом развитии/ дополнении концептуального плана - т.е. подсказкой о том, каких тем не хватает,

b) опытом более низкого уровня - как располагать текст на экране и т.п., см. приложение 1 "База знаний по построению гипертекстов".

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

Если же готовой информации нет, то технология становится инструментом, от которого может зависеть и судьба проекта, и объем работ. Технология своей изначальной идеей (то, что разработчик решает воспользоваться технологией) позволяет оценить конечный желаемый результат.

1) В готовом гипертексте очень важную роль играют различного рода оглавления, глобальные и локальные. И если избыток разных оглавлений почти никак не ухудшает гипертекст, то от недостаток оглавлений -это уже недостаток гипертекста. Правда по полным и подробным оглавлениям можно ясно увидеть и понять скрытую концептуальную структуру гипертекста, со всеми его недостатками. И это, возможно, одна из причин того, что в существующих гипертекстах чаще ощущается нехватка оглавлений.

2) Гипертексты предъявляют повышенные требования к четкости, краткости (пользователь смотрит всегда только на одну страницу!) языка, на котором излагается гипертекст. Автору неоднократно приходилось брать готовые информационные материалы и просто переписывать их с неочень четкого стилистически русского языка на русский же язык, но в другой стилистике.

3) Несмотря на то, что гипертекст - это способ построения нелинейных текстов, возможность того, чтобы пользователь мог бы посмотреть этот гипертекст в линейном, пусть далеко не самом лучшем, виде - существенна. Для пользователей очень важно осознать объемы гипертекста и составить хотя бы мимолетное впечатление о содержании всех его статей. И в этом смысле концептуальные планы гипертекстов, развитые локальные и глобальные оглавления и даже программная возможность листать гипертекст "насквозь" - существенно помогают.

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

1. Заключение и выводы

В первой главе данной диссертационной работы было показано, что гипертексты являются современной информационной технологией, вобравшей в себя различные идеи из системного программирования, разработки диалоговых программ и др.. Гипертекстовые справочники-подсказки становятся стандартной частью самых различных программных продуктов. Проявляется тенденция к усложнению информации, отражаемой в гипертекстах, к превращению гипертекстов в полноценные сложные информационные системы. Это делает задачу разработки технологии построения гипертекстов своевременной и актуальной. Работ, посвященных собственно технологии построения гипертекстов почти нет. Во второй главе автор предлагает технологию "HyRe-Tech" для построения семантически сложных гипертекстов. Эта технология предлагает разработчику предварительно описать его предметную область в виде двух форм представления - перечень ОКиО и концептуальный план гипертекста. Эти две формы являются описанием предметной области сверху вниз и служат для отображения наиболее существенных моментов разрабатываемого гипертекста. Кроме этого, на основе этих двух форм представления, предлагается строить базовую структуру будущего гипертекста: иерархию подоглавлений и общий план гипертекста. После этих двух этапов, на третьем этапе - этапе наполнением имеющейся схемы конкретной информации, предлагается воспользоваться разработанной автором гипертекстовой базой знаний по методам построения гипертекстов. Сама идея представления базы знаний в форме гипертекста является частным приложением технологии представления гипертекстов. Идее гипер

екстовых баз знаний посвящена третья глава. Автор описывает типологию гипертекстовых баз знаний, дает первичный анализ такого рода систем и делает вывод, что гипертекстовые базы знаний обладают всеми признаками программных продуктов.

В рамках данной работы автором была разработана и реализована оригинальная инструментальная система построения гипертекстов HyRe. Она описана в четвертой главе. Такая система оказала неоценимую помощь при выработке технологии построении гипертекстов, позволила сделать ряд экспериментов. Система построения гипертекстов начала работать в 1989 году и с тех пор велось сопровождение и совершенствование этой системы. При помощи системы построения гипертекстов HyRe был разработан ряд практически важных и значимых гипертекстов, в частности справочная система по операционной системе МВК Эльбрус-2 и другие. Подробный разбор некоторых, наиболее интересных приложений с точки зрения технологии построения гипертекстов был сделан в пятой главе. При разработке системы построения гипертекстов HyRe, автор исследовал вопросы расширения гипертекстов дополнительными диалоговыми "внешними" программами, разработал и отладил механизм подключения к программе просмотра независимых диалоговых программ. Такой механизм на порядок увеличивает потенциальные возможности гипертекстовых систем, расширяет сферу их применения.

Основные результаты диссертации можно сформулировать следующим образом.

1. Предложена технология "HyRe-Tech" построения семантически сложных гипертекстов.

2. Предложена концепция гипертекстовых баз знаний; показано, что гипертекстовые базы знаний являются своеобразным программным продуктом.

3. Разработана конкретная гипертекстовая база знаний "HowDoHT", отражающая экспертные знания автора и других специалистов по способам представления текстовой информации в рамках гипертекстового диалогового интерфейса.

4. На базе предложенной технологии реализован ряд практически полезных гипертекстов (база знаний по механизации сельского хозяйства, гипертекст-справочник по ОС Эльбрус, система подсказки для системы программирования OPS/ST).

5. Разработана оригинальная программная система построения гипертекстов HyRe, реализующая предлагаемую технологию на IBM PC.

Данная работа обладает достаточной перспективой для дальнейшего развития. Сама технология существенно опирается на каталоги типовых решений, применяемых при разработке гипертекстов. Эти каталоги расширяемы и могут пополняться в процессе накопления опыта разработки сложных гипертекстов. Рост количества программных систем и их разнообразие приводит ко все более масштабному и нетривиальному использованию гипертекстовой технологии. Возрастание сложности различных прикладных работ, выполняемых при помощи компьютера делает особенно актуальными задачи разработки гипертекстовых баз знаний.

Литература


1) Jeff Conklin, Hypertext: An Introduction and Survey. Computer 20(9), September 1987, 17-41.

2) B.W.Kernigan, M.E.Lesk, J.F.Ossanna, Unix Time-Sharing System: Document Preparation. Bell System Technical Journal, 1978, 57(6), 2115-2135.

3) Vannever Bush, Science - the Endless Frontier. A Report to the President on a Program for Postwar Scientific Research, 1960.

4) Douglas Engelbart, Authorship Provisions in AUGMENT. IEEE CompCon Proceedings, Spring 1984, pp 465-472.

5) H.Ritteland, M.Webber, Dillemmas in a General Theory of Planning. Policy Sciences. Vol 4, 1973.

6) D.McCracken and R.M.Akscyn, Experience with the ZOG Human-computer Interface System. International Journal of Man-Machine Studies, Vol 21, 1984, pp 293-310.

7) R.M.Akscyn, D.L.McCracken, E.A. Yoder, KMS: A Distributed Hypermedia System for Managing Knowledge in Organization. Communication of the ACM, 1988, vol 31, no 7, pp 820-835.

8) B.Shneiderman, G.Kearsley, Hypertext Hans On! An Introduction to a New Way of Organizing and Accessing Information. Reading (Ma), Addison-Wesley, 1989.

9) F.G.Halasz, Reflection on NoteCards: Seven Issues for the Next Generation of Hypermedia Systems. Communication of the ACM, 1988, vol 31, no 7, pp 836-852.

10) Norman Meyrowitz, Intermedia: The Architecture and Construction of an Object-Oriented Hypermedia System and Applications Framework. OOPSLA'86, SIGPLAN Notices, 1986, vol 21, September, 186-201.

11) D.Shasha, When Does Non-Linear Text Help? International Conference on Expert Database Systems, Chrleston, SC, 1-4 April 1986, pp 109-121.

12) T.W.Malone et al., Intelligent Information-Sharing Systems. Communications of the ACM, May 1987, pp 390-402.

13) Jakob Nielsen, Hypertext bibliography. Hypermedia, 1989, v 1, no 1, pp 74-91.

14) С.Дж.Гримм, Как писать руководства для пользователей ЭВМ. Москва, Радио-Связь, 1985.

15) К.Дейт, Введение в системы баз данных. Москва, Наука, 1980.

16) Д.А.Поспелов, Ситуационное управление. Теория и практика. Москва, Наука, физ-мат, 1986.

17) Elizabeth B. Duncan, Structuring Knowledge Bases for Designers of Teaching materials. Hypermedia, 1989, v 1, no 1, pp 20-33.

18) Л.Г.Ованесбеков, Расширение схем Клэнси для описания задач искусственного интеллекта. ВЦКП АН СССР, Препринт N 6, Москва 1991.

19) Ред. Ф.Хейес-Рот, Д.Уотерман, Д.Ленат, Построение экспертных систем. Москва, Мир, 1987.

20) М.Минский, Фреймы для представления знаний. Москва, Энергия, 1979.

21) McGraw-Hill Personal Programming Encyclopedia. Languages and Operating systems. Ed. William J. Birnes, McGraw-Hill 1989, pp 514-524

22) Bjarne Stroustrup, The C++ Programming Language. Reading, Ma, Addison-Wesley, 1987.

23) Д.Цикритзис, Ф.Лоховски, Модели данных. Москва, Финансы и статистика, 1985.

24) Л.Г.Ованесбеков, Методология "КП" построения гипертекстов. ВЦКП РАН, Препринт No 19, Москва, 1991.

25) Л.Г.Ованесбеков, Гипертекстовые базы правил. II Санкт-Петербургская конференция "Региональная информатика" РИ-93. Санкт-Петербург, 11-14 мая 1993, Тезисы докладов, часть 1, с. 130-132.

26) Бернард Коул, Появятся ли все необходимые средства программного обеспечения? Электроника, 1990, 4, сс 34-38.

27) Бернард Коул, Гипертекст решает проблему информационного обслуживания. Электроника, 1990, 4, сс 38-42.

28) Jakob Nielsen, The Art of Navigating Through Hypertext. Communications of the ACM, 1990 Spring, Vol 33, No 3, pp 296-310.

29) M.Frisse, From text to hypertext, BYTE, 13(10) October, 1988, pp 247-253.

30) L.Koved, B.Shneiderman, Finding Facts vs. Browsing Knowledge in Hypertext Systems. IEEE Computer 21(1), January 1988, 70-80.

31) T.Oren, The Architecture of Static Hypertexts. In: Proceedengs of HyperTEXT'87 Workshop (Chapel Hill, NC, 13-15, November 1987) in SIGCHI 1987, v 18, no 3.

32) W.D.Dotter, R.P.Trueblood, Traditional, Semantic and Hyper-semantic Approach to Data Modelling. IEEE Computer, 21(6), June 1988, pp 53-63.

33) BVickery, Knowledge Representation: A Brief Review. Journal of Documentation, 42(3), 1986, 145-159.

34) P.P.Chen, The Entity-Relationship Model: Toward a Unified View of Data. ACM Transactions of Database Systems, 1976, Vol 1, pp 9-36.

35) E.F.Codd, A Relational Model of Data for Large Shared Data Banks. Communications of ACM, 1970, No 13, pp 377-387.

36) E.F.Codd, Extending the Database Relational Model to Capture More Meaning. ACM Trans. Database Syst., 1979, Vol 4, pp 397-434.

37) J.M.Smith and D.C.P.Smith, Database Abstractions: Aggregation and Generalization. ACM Trans. Database Syst., 1977, Vol 2, pp 105-133.

38) Д.Смит, Дж.Смит, Принципы концептуального моделирования баз данных. В сб. Требования и спецификации в разработке программного обеспечения, под ред. В.Н.Агафонова. Москва, Мир, 1984, с. 165-198.

39) William J. Clancey, Heuristic Classification. Artificial Intelligence, v 27, No 3, 1985, pp 289-350.

40) George Lakoff, Mark Johnson, Metaphors We Live By. Chicago Univ. Press, 1980.

41) George Lakoff, Women, Fire and Dangerous Things. What Categories Reveal about the Mind. Chicago Univ. Press, 1987.

42) Hyperactivity; Hypertext and Hypertext Research and Development. Byte 1988 No 10, p. 268.

43) P.K.Garg, W.Scacchi, Ishys: Designing an Intelligent Software Hypertext System. IEEE Experts 1988, Vol 4, No 3, pp. 52-64.

44) R.F.Cmelik, N.H.Gehani, Dimensional Analysis with C++. IEEE Software 1988 Vol 5, No 3, pp. 21-27

45) И.П.Кузнецов, Семантические представления. Москва, Наука, 1986.

46) J.Larson, A Visual Approach to Browsing in a Database Environment, IEEE Computer, June, 1986.

47) Dawid G. Lowe, Co-operative Structuring of Information: The Representation of Reasoning and Debate, International Journal of Man-Machine Studies, 1985, Vol 23, pp. 97-111.

48) В.Э.Фигурнов, IBM PC для пользователя. Москва, "Юнити", 1993.

49) Adele Goldberg, David Robson, Smalltalk-80: The Language and its Implementation. Addison-Wesley, Reading. 1983.

50) Safaa H. Hashim, Exploring Hypertext Programming. Writing Knowledge Representation and Problem-Solving Programs. Windcrest Books, 1990.

51) John B. Smith and Stephen F. Weiss, An Overview of Hypertext, Communications of the ACM, Vol 31, No 7, July 1988, pp. 816-819.

52) Karen E. Smith and Stanley B. Zdonik, Intermedia: A Case Study of the Differences Between Relational and Object-Oriented Database Systems, In: Proceedengs of the OOPSLA'87.

53) S.A.Weyer, The Design of a Dynamic Book for Information Search, International Journal of Man-Machine Studies, 1982, pp. 87-107.

54) Nicole Yankelovich, Norman Meyrowitz, and A. Van Dam, Reading and Writing the Electronic Book, Computer, 18(10):15-30, October 1985.

55) Nicole Yankelovich, Bernard Hann, and Norman Meyrowitz, Intermedia: The Concept and the Construction of a Seamless Information Environment, IEEE Computer, January 1988.

56) G.Barbieri, L.Colazzo, A.Molinari, Relational Back-Ends in the Management at Large Hypertexts, In: Hypertext/Hypermedia'91, Tagung der GI, SI und OCG, Graz, Mai 1991, Proceedings, H. Maurer (Hrsg.), Springer-Verlag, 1991, pp. 34-51.

57) P.A.Gloor, Presenting Hypermedia Concepts Using Hypermedia Techniques, In: Hypertext/Hypermedia'91, Tagung der GI, SI und OCG, Graz, Mai 1991, Proceedings, H. Maurer (Hrsg.), Springer-Verlag, 1991, pp. 109-118.

58) A.Kierulf, R.Gasser, P.M.Geiser, M.Muller, J.Nievergelt, Ch.Wirth, Every Interactive System Evolves into Hyperspace: The Case of the Smart Game Board, In: Hypertext/Hypermedia'91, Tagung der GI, SI und OCG, Graz, Mai 1991, Proceedings, H. Maurer (Hrsg.), Springer-Verlag, 1991, pp. 174-180.

59) Н.М.Куо, Дж.Э.Макдоналд, Формальная методология приобретения и представления знаний. ТИИЭР, т. 74, No. 10, Октябрь 1986, с. 145-155.

60) В.В.Смолянинов, От инвариантов геометрии к инвариантам управления. В книге: Интеллектуальные процессы и их моделирование. Москва, Наука, 1987, ред. Е.П.Велихов, А.В.Чернавский, с. 66-110.


Приложение 1. База знаний по построению гипертекстов

Иерархия ситуаций 

-------------------- ГИПЕРТЕКСТ В ЦЕЛОМ
@ Типовые группы тем
@ Первая страница

НЕСКОЛЬКО ТЕМ
@ Две темы, связанные по смыслу
@ Серия тем, описывающих однотипные понятия

ОТДЕЛЬНАЯ ТЕМА: РАЗЛИЧНЫЕ ТИПЫ ТЕМ
@ Как организовать оглавление
@ Когда тема - таблица, но строчки в таблице слишком длинные
@ Текст со сложной смысловой логикой
@ Текст на специальном языке

ОТДЕЛЬНАЯ ТЕМА: ОРГАНИЗАЦИЯ ТЕКСТА ВНУТРИ ТЕМЫ
@ О заголовках к теме
@ Соответствие ссылки и заголовка темы
@ Если разбиение на страницы попадает на середину абзаца
@ Когда важно знать - какие темы ссылаются на данную тему

------------------ ЧАСТЬ ТЕМЫ: РАЗЛИЧНЫЕ ВИДЫ ФРАГМЕНТОВ
@ В тексте есть фрагмент с программой на языке программирования
@ В тексте есть рисунок в псевдографике

ЧАСТЬ ТЕМЫ: ВЗАИМОДЕЙСТВИЕ ЧАСТЕЙ ТЕМЫ
@ В тексте есть две фразы, которые мало отличаются друг от друга

ЧАСТЬ ТЕМЫ: ОПИСАНИЕ РАЗЛИЧНЫХ СУЩНОСТЕЙ
@ Описание нового понятия, объекта
@ Неявное введение в обиход нового понятия, термина
@ Описание действий

ЧАСТЬ ТЕМЫ: АБЗАЦЫ
@ Как разделять абзацы между собой
@ Как можно оформлять абзацы

ЧАСТЬ ТЕМЫ: ИМЕНА РАЗЛИЧНЫХ ОБЪЕКТОВ
@ Имена-идентификаторы в тексте
@ Имена/названия на другом языке в тексте на русском языке

--------------------- ЧАСТЬ ТЕМЫ: ССЫЛКИ
@ Одна и та же ссылка в разных падежах/склонениях
@ Когда трудно придумать удобное слово для ссылки
@ Когда одна и та же ссылка в разных местах имеет разный смысл
@ В тексте подряд идут две разные ссылки и их трудно отличить
@ Ссылка не помещается на одной строке и ее надо перенести

@ Указание на близкие по смыслу темы
@ Целая фраза как ссылка
@ Делать ли понятие ссылкой, если оно уже было ссылкой в этой теме
@ Когда понятие не стоит делать ссылкой

ЧАСТЬ ТЕМЫ: ИМЕНА РАЗЛИЧНЫХ ОБЪЕКТОВ
@ Имена-идентификаторы в тексте
@ Имена/названия на другом языке в тексте на русском языке

ЧАСТЬ ТЕМЫ: СПИСОК/ПЕРЕЧИСЛЕНИЕ
@ Список/перечисление - как его оформить
@ Список/перечисление - как оформить ссылки

-------------------- ЧАСТЬ ТЕМЫ: СПЕЦИАЛЬНЫЕ СЛОВА И ОБОРОТЫ
@ Вспомогательные ключевые слова на русском языке
@ Обороты типа "обычно", "не всегда" и т.д.
@ Служебные слова в тексте типа "замечание", "пример"

ЧАСТЬ ТЕМЫ: ПРОЧИЕ ЭЛЕМЕНТЫ ТЕХНИЧЕСКИХ ТЕКСТОВ
@ Формы ссылок на литературу
@ Что в н.-т. текстах можно оформить как ссылки

--------------------- Две темы, связанные по смыслу
                                                        правило12:
ЕСЛИ
   две темы сильно связаны между собой,
ТО
   иногда их можно объединить в одну, связать термины-ссылки обеих
   тем с этой одной темой, дать этой теме двойной заголовок.

--------------------- Типовые группы тем
                                                        правило71:
ПРИ
   проектировании гипертекста
ЧАСТО
   встречаются следующие типовые группы тем:

ОПРЕДЕЛЕНИЯ:
   - Определение специальных терминов и понятий
   - Информация об организации-разработчике, об авторе

ОРГАНИЗАЦИЯ ТЕКСТА:
   - Общие описания тех или иных объектов
   - Замечания и комментарии к другим темам

УКАЗАНИЯ ПОЛЬЗОВАТЕЛЮ:
   - Типовые сценарии поведения для пользователя
   - Типовые ситуации, в которые может попасть пользователь
   - Приемы работы в виде эвристических правил

---------------------
ОПИСАНИЕ ИЗДЕЛИЯ:
   - Описание команд, режимов, которые может выполнять система
   - Описание кнопок, переключателей, индикаторов, контрольных   
     лампочек, входных и выходных разъемов в физических устройствах

ТЕМЫ, СВЯЗАННЫЕ С ПРОГРАММИРОВАНИЕМ:
   - Тексты подпрограмм
   - Описания структур данных, протоколы для классов при объектно-
   ориентированном программировании
   - Тесты для подпрограмм
   - Описания выдаваемых сообщений

--------------------- Серия тем, описывающих однотипные понятия
                                                        правило18:
ЕСЛИ
   есть несколько тем, описывающих различные экземпляры одной
   категории, и в них есть одинаковая смысловая часть,
ТО
   ее можно выделять специальным смысловым заголовком.

--------------------- Когда важно знать - какие темы ссылаются на
данную тему
                                                        правило28:
ЕСЛИ
   на какую-то тему есть ссылки из совершенно разных контекстов-
   тем и в описании данной темы важно указать - где используются
   ссылки на данную тему,
ТО
   в данной теме можно организовать "обратные" ссылки - ссылки на
   темы, в которых есть ссылки на данную тему. Такой перечень
   играет особую смысловую роль.

--------------------- Первая страница
                                                        правило62:
В первой странице гипертекста
МОЖНО
   поместить:

                                                       правило62а:
   ЕСЛИ
       в гипертексте много разных тем,
   ТО
       первую страницу удобно отвести для корневого оглавления

                                                       правило62б:
   ЕСЛИ
       в гипертексте мало тем и все они посвящены одному вопросу,
   ТО
       первую страницу удобно отвести для темы, играющую наиболее
       важную роль в этом гипертексте.

                                                        правило63:
ЕСЛИ
   гипертекст содержит мало тем, первая страница это не корневое
   оглавление, а тема, играющую наиболее важную роль в этом
   гипертексте,


ТО
   в этой теме можно выделить место, в рамочке и в нем поместить
   ЛИБО
       ссылку на корневое оглавление
   ЛИБО
       перечень ссылок на другие темы гипертекста (т.е. сделать
       корневое оглавление в виде небольшого фрагмента в рамочке).

                                                        правило72:
ЕСЛИ
   гипертекст находится в процессе развития и сделана его первая,
   еще не окончательная версия,
ТО
   иногда бывает удобно кроме текущего корневого оглавления
   написать вариант-максимум корневого оглавления.

--------------------- Список/перечисление - как оформить ссылки
                                                        правило50:
ЕСЛИ
   в теме есть перечисление чего-либо и элементы перечисления
   пронумерованы, и есть необходимость более подробно описать то,
   что перечисляется,
ТО
   номера в перечислении можно сделать ссылками.

                                                        правило51:
ЕСЛИ
   в тексте есть список чего-либо с комментариями,
ТО
   в комментариях можно описывать роль элементов этого списка с
   какой-либо точки зрения.

                                                        правило52:
ЕСЛИ
   в тексте есть список чего-либо с комментариями,
ТО
   комментарии могут играть роль взгляда на элементы этого списка
   с другой точки зрения.

--------------------- Как организовать оглавление
                                                        правило36:
ЕСЛИ
   тема - оглавление,
ТО
   это оглавление МОЖНО расположить:
       - в 1 колонку,
       - в 2 колонки,
       - в несколько колонок.
                                                        правило37:
ЕСЛИ
   тема - оглавление,

ТО
   некоторые экземпляры можно заключить в рамку и тем самым
   выделить их среди остальных.

                                                        правило38:
ЕСЛИ
   тема - оглавление и с каждым элементом из оглавления связано
   несколько описаний, и, соответственно, должно быть несколько
   ссылок,
ТО
   в качестве имен дополнительных ссылок МОЖНО использовать
   - либо краткие имена-идентификаторы,
   - либо символы псевдографики, возможно, разных цветов.

                                                        правило69:
ЕСЛИ
   тема должна содержать перечисление с описанием,
ТО
   его можно оформить следующим образом:
   a) Имена перечисляемых/описываемых объектов располагаются
   слева.
   b) Описания - это абзацы, которые начинаются так, чтобы слева
   могло поместиться самое длинное имя перечисляемых объектов.
ПРИМЕР:
   Меню Norton Commander:

Left   Данное поле открывает подменю, в котором
       можно задать вид высвечиваемой информации,
       как сортировать файлы в справочнике,
       другие важные команды.

Files  Данное поле открывает подменю, в котором
       описываются важнейшие операции над файлами
       в справочнике, операции над выбранным
       файлом, как выйти из Norton Commander

------------------- В тексте есть фрагмент с программой на языке
программирования
                                                        правило04:
ЕСЛИ
   в тексте темы есть фрагмент программы, и в ней есть стандартные
   константы или имена, которые могут потребовать разъяснения,
ТО
   их можно оформить как ссылки.

                                                        правило05:
ЕСЛИ   в теме есть текст на искусственном языке,
ТО
   ключевые слова данного языка можно оформить как ссылки на темы,
   описывающие смысл этих ключевых слов.

                                                        правило06:
ЕСЛИ
   в тексте на искусственном языке есть комментарии,

ТО
   в них могут быть ссылки.

--------------------- Текст на специальном языке
                                                        правило05:
ЕСЛИ
   в теме есть текст на специальном языке,
ТО
   ключевые слова данного языка можно оформить как ссылки на темы,
   описывающие смысл этих ключевых слов.

                                                        правило06:
ЕСЛИ
   в тексте на специальном языке есть комментарии,
ТО
   в них могут быть ссылки.

--------------------- В тексте есть рисунок в псевдографике
                                                        правило61:
ЕСЛИ
   в тексте есть рисунок в псевдографике,
ТО
   ссылки на те или иные части рисунка
МОЖНО
   оформить следующими различными способами:

                                                       правило61а:
   ЕСЛИ
       фрагмент рисунка занимает 1 строчку,
   ТО
       он сам может быть ссылкой

                                                       правило61б:
   ЕСЛИ
       фрагмент рисунка занимает 2 строчки,
   ТО
       можно смоделировать единую ссылку на 2 строчки, сделав
       вторую строчку цветным словом того же цвета, что и ссылка
       (прием, аналогичный тому, который используется в ситуации
       переноса слова, являющегося ссылкой)

                                                       правило61в:
   ЕСЛИ       фрагмент рисунка имеет название или обозначение,
   ТО
       оно может быть ссылкой

                                                       правило61г:
   ЕСЛИ
       фрагмент рисунка не имеет названия,
   ТО
       ссылкой можно сделать пустое поле (строку из пробелов)
       внутри фрагмента
   ИЛИ
       рядом с ним, выделив это поле-ссылку цветом, близким к
       фону, но более ярким.

--------------------- Когда тема - таблица, но строчки в таблице
слишком длинные
                                                        правило39:
ЕСЛИ
   тема является таблицей, но элементы таблицы слишком длинные и
   одна строчка таблицы не помещается на экране,
ТО
   такую таблицу можно смоделировать при помощи различных сдвигов
   вправо: первый элемент - без сдвига, второй - с одинарным
   сдвигом, третий - с двойным сдвигом, и т.д..

--------------------- Соответствие ссылки и заголовка темы
                                                        правило32:
ПРИ
   сопоставлении ссылки и темы с заголовком, которая описывает эту
   ссылку,
МОЖНО ВОСПОЛЬЗОВАТЬСЯ
   тем, что слово-ссылка не обязано точно совпадать с заголовком
   темы,
ДЛЯ ТОГО, ЧТОБЫ
   в процессе перехода от ссылки к теме неявным образом
   подкорректировать термин.

--------------------- О заголовках к теме
                                                        правило01:
ЕСЛИ
   мы пишем заголовок темы,
ТО
   некоторые слова в заголовке можно сделать ссылками.

                                                        правило02:
ПРИ
   составлении заголовка темы его
МОЖНО
   оформить двумя способами:
   - как простой заголовок темы (без команды .T1 ...)
   - как выделенный заголовок темы (с командой .T1 ...)
                                                           правило03:
ЕСЛИ
   какая либо тема играет вспомогательную роль и ей трудно дать
   какое-либо самостоятельное название-заголовок,
ТО
   заголовком может служить обрывок фразы
НАПРИМЕР:
   ... ввести элемент рабочей памяти...

                                                        правило64:
ЕСЛИ
   важно отделить текст заголовка от текста темы,

ТО
   заголовок можно прижать к правому краю экрана.

                                                        правило65:
ЕСЛИ
   заголовок состоит из двух строк и нужно обе строки сделать
   наглядными,
ТО
   одну из строк можно прижать к правому краю экрана.

                                                        правило66:
ЕСЛИ
   заголовок состоит из двух и более строк,
ТО
   строки заголовка можно располагать со сдвигом вправо; каждая
   следующая строчка заголовка с большим сдвигом.

                                                        правило67:
ЕСЛИ
   последняя строчка выделенного заголовка (или, если заголовок из
   одной строчки - то эта единственная строчка) длинная и она
   сливается с первыми строчками текста на страницах темы, а в
   теме несколько страниц,
ТО
   в выделенный заголовок удобно добавить еще одну, пустую
   строчку. Она будет отделять заголовок от текста темы.

--------------- Делать ли понятие ссылкой, если оно уже было
ссылкой в этой теме
                                                        правило27:
ЕСЛИ
   какое-либо понятие-ссылка в теме уже описывалось, но на данной
   странице его как ссылки еще не было,
ТО
   можно сделать его ссылкой еще раз.

-------------------- Когда одна и та же ссылка в разных местах
имеет разный смысл
                                                        правило31:ЕСЛИ
   на одной странице одно и то же слово-ссылка в разных местах
   страницы имеет разный смысл (омонимы),
ТО
   можно воспользоваться техникой скрытой части ссылок и сделать
   их разными ссылками на разные темы.

--------------------- В тексте подряд идут две разные ссылки и их
трудно отличить
                                                        правило23:
ЕСЛИ
   в тексте подряд идут две разных ссылки,
ТО
   их можно разделить, если одну из ссылок сделать другого, нежели
   обычно, цвета.



--------------------- Ссылка не помещается на одной строке и ее
надо перенести
                                                        правило29:
ЕСЛИ
   слово или словосочетание, являющееся ссылкой не помещается на
   одной строке,
ТО
   можно воспользоваться техникой цветных слов и сделать вторую
   часть ссылки, то, что пришлось перенести на другую строку
   просто цветным словом такого же цвета, как и ссылка.

--------------------- Служебные слова в тексте типа "замечание",
"пример"
                                                        правило48:
ЕСЛИ
   в тексте есть служебные слова типа "замечание", "пример" и
   т.п., их
МОЖНО
   выделить большими буквами. В этом случае большие буквы будут
   играть роль другого шрифта.

--------------------- Когда трудно придумать удобное слово для
ссылки
                                                        правило21:
ЕСЛИ
   для какой-либо ссылки трудно придумать удобное слово или
   фрагмент, для ее обозначения, но есть достаточно понятный
   контекст,
ТО
   данную ссылку можно оформить в виде многоточия.
ПРИМЕР:
   (кроме ...), здесь "..." - это ссылка, которая ссылается на
   тему, описывающую "что, кроме"
                                                        правило22:
ЕСЛИ
   в какой либо теме X мы хотим сослаться на тему Y, но нам
   неудобно явно использовать имя Y
ТО
   мы можем сделать часть фразы с упоминанием темы Y ссылкой на
   "пересадочную" тему Z, где в более развернутом виде опишем
   данную ситуацию и дадим ссылку на Y.

--------------------- Одна и та же ссылка в разных
падежах/склонениях
                                                        правило19:
ЕСЛИ
   в гипертексте один и тот же термин-ссылка употребляется в
   разных падежах, склонениях, спряжениях, в разном числе,
ТО
   эти ссылки можно оформить как разные имена одной и той же темы.
ПРИМЕР:
   ссылки в тексте:
       [команда PRT] ... [командой PRT] ...
   имена соответствующей темы:
       .
       .: команда PRT
       .: командой PRT
       Описание команды PRT
       
                                                        правило20:
ЕСЛИ
   в гипертексте один и тот же термин-ссылка употребляется в
   разных падежах, склонениях, спряжениях, в разном числе,
ТО
   в этих ссылках можно воспользоваться ссылкой с альтернативной
   частью.
ПРИМЕР
   ссылки в тексте:
       [команда PRT'prt] ... [командой PRT'prt] ...
   имена соответствующей темы:
       .
       .: prt
       Описание команды PRT

--------------------- Что в н.-т. текстах можно оформить как
ссылки
                                                        правило54:
ЕСЛИ
   в тексте есть ссылка на литературу,
ТО
   ее можно оформить как ссылку.

                                                        правило55:
ЕСЛИ
   в тексте есть упоминание о примерах,ТО
   его можно оформить как ссылку.

                                                        правило56:
ЕСЛИ
   в тексте есть упоминание об авторе данного текста,
ТО
   его можно оформить как ссылку.

                                                        правило57:
ЕСЛИ
   в тексте есть имя какого-либо коммерческого продукта,
   являющееся торговой маркой (trademark),
ТО
   его можно оформить как ссылку.

                                                        правило58:
ЕСЛИ
   в тексте есть слово в кавычках,
ТО
   его можно оформить как ссылку.

                                                        правило70:
ЕСЛИ
   в тексте есть формула с численными коэффициентами, и некоторые
   коэффициенты требуют объяснения,
ТО
   числа-коэффициенты можно оформить как ссылки.

--------------------- Когда понятие не стоит делать ссылкой
                                                        правило30:
ИНОГДА
   слово или словосочетание, которое должно быть ссылкой, делать
   ссылкой не нужно,
ЕСЛИ
   переход по такой ссылке от текущей темы к другой теме будет
   давать слишком резкую смену смыслового контекста.

--------------------- Указание на близкие по смыслу темы
                                                        правило25:
ЕСЛИ
   в теме можно дать указание на аналогичные темы или на темы,
   раскрывающие данное содержание более подробно
МОЖНО
   воспользоваться оборотом (См. ххххх), где ххххх - ссылка.

--------------------- Целая фраза как ссылка
                                                        правило26:
ЕСЛИ
   ссылкой по смыслу должна стать целая фраза,
ТО
   можно ссылкой сделать только одно слово в этой фразе,ПОТОМУ ЧТО
   само это слово будет находится в контексте фразы и будет
   понятно, заголовок темы, на которую указывает данная ссылка,
   можно сделать достаточно длинным и понятным, а само слово-
   ссылка в отрыве от контекста читатель не увидит.
ОДНАКО,
ЕСЛИ
   данное слово случайно будет совпадать со словом-ссылкой,
   указывающей на другую тему,
ТО
   будет необходимо добавить к одному из этих слов "невидимую
   часть", чтобы сделать их различными.

--------------------- Обороты типа "обычно", "не всегда" и т.д.
                                                        правило46:
ЕСЛИ
   в тексте есть оборот типа:
   "обычно",
   "не всегда",
   "иногда",
   "почти",
   "редко",
   "как правило",
   "некоторый",
ТО
   его можно оформить как ссылку, а в соответствующей теме описать
   подробнее
   - почему "редко", "не всегда",
   - что происходит в случае нарушения "обычно" и т.п.

                                                        правило47:
ЕСЛИ
   в тексте есть сокращения вида
   "и т.д.",
   "и т.п.",
   "к.-л.",
ТО
   их можно сделать ссылками, а в соотвествующей теме
   прокомментировать.

--------------------- Как разделять абзацы между собой
                                                        правило40:
ЕСЛИ
   в теме есть абзацы из нескольких предложений,
ТО
   для более ясного разделения предложений их можно отделять не
   одним пробелом, как обычные слова, а двумя.

--------------------- Как можно оформлять абзацы
                                                        правило60:
ЕСЛИ
   мы распологаем абзацы или предложения на одной странице и нам   важно подчеркнуть сходство или различие мыслей в этих
   предложениях или абзацах,
ТО мы МОЖЕМ
   воспользоваться разными способами разделения предложений или
   абзацев:
   - "скрытый абзац" - когда весь текст выравнен по правой
   границе, но некоторые предложения или даже части предложения,
   заканчиваются раньше;
   - явный абзац - новый абзац начинается с "красной строки";
   - пустая строка между абзацами;
   - строка в виде горизонтальной черты между абзацами;
   - следующий абзац подчинен по смыслу предыдущему и расположен
   со сдвигом вправо.

-------------------- В тексте есть две фразы, которые мало
отличаются друг от друга
                                                        правило59:
ЕСЛИ
   в тексте есть две или несколько фраз, лишь немного отличающихся
   друг от друга,
ТО
   отличающиеся части можно выделить разными цветами.

--------------------- Текст со сложной смысловой логикой
                                                        правило13:
ЕСЛИ
   в тексте есть фразы со сложной логикой,
ТО
   некоторые слова можно выделять большими буквами, чтобы сделать
   на них акцент.
ПРИМЕР:
   ... значениями аргументов НЕ МОГУТ БЫТЬ ...

                                                        правило14:
ЕСЛИ
   в тексте есть логический переход,
ТО
   его можно выделить специальным словом или словосочетанием на
   отдельной строке, посредине.
ПРИМЕР:
   ..............................................
   чтобы затем использовать
   ..............................................

--------------------- Описание нового понятия, объекта
                                                        правило15:
ПРИ
   описании какого-либо нового, нечетко определенного понятия,
   объекта, ситуации, явления
МОЖНО
   воспользоваться противопоставлением.

ОБРАЗЕЦ:   есть X, но бывает Y

                                                        правило16:
ПРИ
   описании сложного и необычного объекта
МОЖНО
   указывать на аналогии.

--------------------- Описание действий
                                                        правило17:
ПРИ
   описании каких-либо нетривиальных действий
МОЖНО
   дать мотивацию.
ОБРАЗЕЦ:
   X потому, что Y

--------------------- Имена/названия на другом языке в тексте на
русском языке
                                                        правило45:
ЕСЛИ
   в тексте на русском языке есть имена или названия на другом
   языке,
ТО
   такие слова могут играть роль выделенных слов, а другой язык -
   роль другого шрифта.

--------------------- Имена-идентификаторы в тексте
                                                        правило41:
ЕСЛИ
   в тексте нужны имена-идентификаторы,
ТО
   их можно записать в форме многослогового идентификатора.
ПРИМЕР:
   индексн-имя-переменной

                                                        правило42:
ЕСЛИ
   в фразе упоминается много объектов,
ТО
   их удобно обозначать буквами.
   Буквы МОГУТ быть:
   - русскими или латинскими,
   - большими или маленькими,
   - из одной буквы, из буквы и цифры, из нескольких букв.

                                                        правило43:
ЕСЛИ
   в тексте есть имена, играющие определенную роль,
ТО
   эти имена можно выделить некоторым стандартным цветом, связав   т.о. цвет с данной ролью.

--------------------- Неявное введение в обиход нового понятия,
термина
                                                        правило24:
ЕСЛИ
   в какой-либо теме мы хотим неявно ввести новое понятие,
ТО
   это можно сделать просто обозначив новый термин или новое
   обозначение в виде ссылки.

--------------------- Список/перечисление - как его оформить
                                                        правило49:
ЕСЛИ
   в теме есть список чего-либо,
ТО
   элементы списка МОЖНО выделить разными способами:
   a) - (минусы-черточки перед новым абзацем),
   b) о (буква "о", играющая роль маленького кружочка),
   c) 1) (цифры с закрывающей скобкой),
   d) 1. (цифры с точкой),
   e) (1) (цифры в круглых скобках),
   f) [1] (цифры в квадратных скобках),
   g) б) (русские буквы),
   h) b) (латинские буквы)
   i) А) (большие буквы, русские или латинские),
   j) make) (имена каких-либо объектов),
   k) (понятия-ссылки в начале абзаца),
   l) (цветные слова в начале абзаца),
   m) (сдвиг текста вправо, обозначающий красную строку),
   n) (пустая строчка между абзацами),
   o) (строка в виде горизонтальной черты между абзацами),
   p) (имена в прямоугольных рамочках перед абзацами).


                                                        правило68:
ЕСЛИ
   в теме есть небольшой перечень понятий, эти понятия играют
   важную роль, их нужно расположить так, чтобы эти понятия
   воспринимались как единая система,
ТО
   эти понятия можно расположить в виде двумерной карты, а именно:
   a) Понятия распологаются на двумерной плоскости.
   b) Между словами в словосочетаниях - 1 пробел, между понятиями
   - не менее 3х пробелов.
   c) Обычно сверху-снизу понятия отделяются пустой строчкой.
   d)  ЕСЛИ
           некоторые понятия более близки по смыслу между собой,           чем другие,
       ТО
           они сверху-снизу не отделяются пустой строчкой,
       ЧТО
           показывает их близость по смыслу.
   e) Данную систему понятий МОЖНО (не обязательно) заключить в
   горизонтальные черты и дать специальной название.
ПРИМЕР
   расположения понятий в виде двумерной карты

   Парадигма объектно-ориентированного программирования на языке
   Smalltalk-80
   -------------------------------------------------------
   Объект Класс Экземпляр
   
   Действие Набор методов Метод
   Запрос
   
   Наследование классов Переменные Выражения
   Литералы
   Блоки
   -------------------------------------------------------

--------------------- Формы ссылок на литературу
                                                        правило53:
ЕСЛИ
   в тексте есть ссылка на литературу,
ТО
   она МОЖЕТ быть записана в разных формах:
   - [12]
       -- простая последовательная нумерация
   - [B-01]
       -- ссылок много и они разбиты на группы
   - [Поспелов81]
       -- фамилия первого автора и год
   - (Поспелов81)
       -- то же, но в круглых скобках
   - [Smi83]
       -- Первые несколько букв фамилии и год

--------------------- Если разбиение на страницы попадает на
середину абзаца
                                                        правило33:
ЕСЛИ
   тема длинная и мы стараемся расположить смысловые фрагменты
   так, чтобы они не разбивались переходами на другую страницу,
   вставляя в тему пустые строчки,
ТО
   на некоторых страницах пользователю может показаться, что тема
   закончилась, хотя она имеет продолжение;
ТОГДА

   в последней строке страницы можно поставить стрелочку (символ с   кодом 0x25).

                                                        правило34:
ЕСЛИ
   тема длинная и мы некоторые смысловые фрагменты разбиваются
   переходами на другую страницу,
ТО
   можно на следующей странице повторить оборванную часть фразы.

--------------------- Вспомогательные ключевые слова на русском
языке
                                                        правило44:
ЕСЛИ
   в теме используются вспомогательные ключевые слова
ТО их МОЖНО располагать по-разному:
   - ключевое слово перед абзацем,
   - ключевое слово на отдельной строке,
   - ключевое слово на отдельной строке, но само слово сдвинуто
   вправо, чтобы эта строчка заодно воспринималась и как строчка-
   разделитель.

---------------------------------------------------------------
Используемые термины

ГИПЕРТЕКСТ В ЦЕЛОМ
   Общий план гипертекста
   Типовые группы тем
   
   Подсказка по гипертексту
   Тема для неопределенных ссылок
   
   Первая страница гипертекста
   Корневое оглавление

НЕСКОЛЬКО ТЕМ
   Основная тема и комментарий
   
   Пересадочные страницы
   Обратные ссылки в теме

ОТДЕЛЬНАЯ ТЕМА: РАЗЛИЧНЫЕ ТИПЫ ТЕМ
   Оглавление
   Описание экземпляра категории
   
   Таблица
   Картинка

ОТДЕЛЬНАЯ ТЕМА: ОРГАНИЗАЦИЯ ТЕКСТА ВНУТРИ ТЕМЫ
   Несколько смысловых частей
   Второстепенная -/- Главная информация
   

   Объединение двух тем в одну   Сравнение двух тем
   Общие положения
   Конкретизация общих положений
   Обобщение частного случая
   Сходство / различие мыслей в разных местах темы

ОТДЕЛЬНАЯ ТЕМА: РАСПОЛОЖЕНИЕ ТЕКСТА В ТЕМЕ

   Текст в 2 колонки
   Текст в несколько колонок
   
   Части текста, выделенные в рамку

ЧАСТЬ ТЕМЫ: СТРУКТУРА ТЕКСТА
   Предложения

АБЗАЦЫ
   Скрытый абзац
   Абзац с красной строкой
   Сдвиг абзаца вправо -/- влево
   Сдвиг строчки вправо -/- влево
   
   Слова
   Словосочетание
   Перенос слова
   Пробелы
   
   Цветные слова
   
   Пустая строка
   Строка с горизонтальной чертой
   
   Многоточие

ЧАСТЬ ТЕМЫ: РАЗЛИЧНЫЕ ВИДЫ ФРАГМЕНТОВ
   Имена-идентификаторы
   Слоговой идентификатор
   Обозначение различных объектов буквами
   
   Слово в кавычках, употребляемое в нестандартном смысле
   Вспомогательные ключевые слова
   
   Формула
   Фрагмент программы

ЧАСТЬ ТЕМЫ: ЗАГОЛОВКИ
   Простой заголовок
   Выделенный заголовок
   Заголовок в виде обрывка фразы
   Заголовок в виде вопроса
   Смысловой подзаголовок внутри темы

      Имя темы
   Разные имена одной темы

ЧАСТЬ ТЕМЫ: СЛОЖНЫЕ СМЫСЛОВЫЕ СИТУАЦИИ В ТЕМЕ
   Начало темы
   Конец темы
   
   Описание нового понятия
   Акцент на отдельное слово
   Фразы со сложной логикой
   Логический переход

ЧАСТЬ ТЕМЫ: ПОНЯТИЯ И ССЫЛКИ
   Одно слово с различным смыслом в разных контекстах
   Неявное определение
   Контекст слова
   
   Цветные ссылки
   Две ссылки подряд
   
   Скрытая часть ссылки
   Альтернативная часть ссылки
   
   Фраза в роли ссылки
   
   Смена смыслового контекста при переходе к другой теме

ЧАСТЬ ТЕМЫ: СПЕЦИАЛЬНЫЕ СЛОВА И ОБОРОТЫ
   Обороты: обычно, не всегда, иногда, почти, за исключением, и
   т.д., и т.п., кроме, т.е., к.-л.
   
   Служебные слова в тексте типа
   ПРИМЕР, ЗАМЕЧАНИЕ

ЧАСТЬ ТЕМЫ: СПИСОК / ПЕРЕЧИСЛЕНИЕ
   Комментарии к элементам списка
   Несколько взглядов на один и тот же список
   
   Цифры -/- Буквы при перечислении

ЧАСТЬ ТЕМЫ: ЭЛЕМЕНТЫ ТЕХНИЧЕСКИХ ТЕКСТОВ
   Информация об авторе
   Торговая марка
   Ссылка на литературу

ЧАСТЬ ТЕМЫ: ЭЛЕМЕНТЫ ТЕКСТОВ НА ИСКУССТВЕННОМ ЯЗЫКЕ
   Стандартные константы и имена
   Колючевые понятия в искусственном языке
   Комментарии

ЧАСТЬ ТЕМЫ: УКАЗАНИЯ В ТЕКСТЕ

   Указание на более подробное описание   Указание на аналогичные темы
   Отсылка к примеру
   Отсылка к рисунку

ЧАСТЬ ТЕМЫ: СПЕЦИАЛЬНЫЕ ПРИЕМЫ ОПИСАНИЯ СЛОЖНЫХ ВЕЩЕЙ
   Описание через альтернативу
   Описание через мотивацию
   Описание через аналоги
   Описание через метафору

ЧАСТЬ ТЕМЫ: АСПЕКТЫ РУССКОГО ЯЗЫКА, КОТОРЫЕ ИНОГДА ПРИХОДИТСЯ
УЧИТЫВАТЬ
   Падежи
   Склонения
   Времена
   Спряжения
   Единственное -/- Множественное число
   Прошедшее -/- Настоящее -/- Будущее время
   
   Синонимы
   Омонимы
   Антонимы

ЧАСТЬ ТЕМЫ: РАЗБИЕНИЕ ТЕМЫ НА СТРАНИЦЫ
   Стрелка - указатель на продолжение темы
   Повторение начала предложения

ЧАСТЬ ТЕМЫ: МОДЕЛИРОВАНИЕ ШРИФТОВ В ПРОСТОМ ТЕКСТЕ; ВЫДЕЛЕНИЕ СЛОВ
   Английские слова в русском тексте
   Слова большими буквами
   Словосочетания, записанные в виде слогового идентификатора
   Имена в прямоугольной рамке
   
   Спецсимволы перед словами
   Различные виды скобок
   
   Спецфраза на отдельной строке
   Слово или словосочетание на отдельной строке, посредине

 

Приложение 2. Техника рекурсивного развития базы знаний

Ованесбеков Л.Г.

В данной статье кратко описывается техника рекурсивного развития различных систем эвристик в базах знаний, разработанная автором.

1. Исходные положения

В последнее время мы стали свидетелями появления нового типа программных систем: так называемые "системы искусственного интеллекта", "системы инженерии знаний", "экспертные системы" [1] (далее будем говорить просто "система ИИ"). Основная идея подобных систем состоит в том, чтобы попытаться взять опыт человека-эксперта в области некоторой интеллектуальной работы и, по возможности, с минимальными добавлениями, перенести его на более формальный язык программирования (или специальный язык представления знаний), реализовать в виде программной системы и тем самым заменить работу человека-эксперта работой сложной программы (в большинстве типовых случаев).

Такие системы, как правило, формализуют опыт конкретного человека-эксперта путем построения своеобразной модели знаний эксперта в данной области в форме системы эвристик [2].

В самом общем виде отдельная эвристика представляет собой пару: <Условие> + <Действие>, где <Условие> описывает некоторую ситуацию, которая может встретиться в моделируемой работе эксперта. <Действие> - это или операции, которые может выполнить компьютер, или советы человеку-пользователю, который будет пользоваться такой системой. Если система эвристик достаточно богата и полна, и если ее удается формализовать, то она достаточно хорошо представляет основную (наиболее рутинную) часть знаний эксперта по выполнению некоторой работы. Содержание системы эвристик определяет качество работы системы ИИ. Чем богаче и разнообразнее исходная система эвристик, тем более полно и развернуто представлен опыт человека эксперта, тем более качественной может быть система ИИ. Более того, как показано в [3] и в 3 главе данной диссертации, системы эвристик в некоторых случаях могут представлять ценность и "сами по себе", т.е. при минимальном оформлении, в виде гипертекстовой базы знаний.

В данной работе автор рассматривает следующую ситуацию. Предположим что человек, разрабатывающий систему ИИ или просто гипертекстовую базу знаний, в результате первичного этапа формализации получил начальный вариант системы эвристик. Далее он хочет по-возможности развить, пополнить и обогатить эту систему. Как правило, для этого используются различные методы работы с экспертом [4]. Мы же в этой статье предлагаем аналитическую работу специального вида, при помощи которой достаточно квалифицированный разработчик системы ИИ (возможно, при необходимой помощи эксперта), может развить текущий вариант системы эвристик, обогатить число возможных входных ситуаций-условий, или, в крайнем случае, задать ряд вопросов к текущему варианту системы эвристик.

Описываемую аналитическую работу далее будем называть "аналитический пересмотр" системы эвристик. В данной статье мы предложим два варианта такой работы: одноуровневый пересмотр и двухуровневый. Им посвящены соответственно, главы 2 и 3 данной статьи. Примеры берутся из базы знаний, разработанной автором, по методам построения гипертекстов (первоначальный вариант системы эвристик приведен в приложении 1 данной диссертации). В 4 главе делаются выводы.

2. Одноуровневый аналитический пересмотр системы эвристик

1) Первый шаг данной аналитической работы состоит в том, что разработчику системы ИИ предлагается каждой эвристике сопоставить некоторую "миниработу", к которой эта эвристика относится. Для эвристик миниработа - это категория, к которой может принадлежать несколько разных эвристик.


   Пример 1.
   правило28:
   ЕСЛИ
       на какую-то  тему есть  ссылки из  совершенно  разных  кон-
       текстов-тем и  в описании  данной темы  важно указать - где
       используются ссылки на данную тему,
   ТО
       в данной теме можно организовать "обратные" ссылки - ссылки
       на темы,  в которых  есть  ссылки  на  данную  тему.  Такой
       перечень играет особую смысловую роль.
   миниработа:
   расставляем ссылки в теме
   
   Пример 2.
   правило72:
   ЕСЛИ
       гипертекст находится  в процессе  развития  и  сделана  его
       первая, еще не окончательная версия,
   ТО
       иногда бывает  удобно кроме  текущего корневого  оглавления
       написать вариант-максимум корневого оглавления.
   миниработа:
   расставляем оглавления по гипертексту
   
   Пример 3.
   Фрагмент перечня миниработ для базы знаний HowDoHT
       начинаем новый гипертекст
       заканчиваем гипертекст
       переделываем гипертекст
       сопровождаем гипертекст
       
       разбиваем гипертекст на отдельные темы
       расставляем оглавления по гипертексту
       выделяем в гипертексте ключевые объекты
       выделяем в теме основные понятия
       
       связываем близкие темы
       оцениваем пути просмотра
       
       добавляем новую тему
       добавляем темы-спутники к центральным темам
       добавляем элемент категории
       добавляем особый объект
       добавляем перечень
       добавляем определение понятия
       добавляем новое оглавление
       
       оформляем начальную страницу
       оформляем корневое оглавление
       оформляем заставку
       оформляем перечень специальных терминов
       описываем оглавление
       даем определение понятию
       помещаем в гипертекст тексты на специальном языке
       делаем рисунок в псевдографике
       описываем таблицу
       пишем заголовок для темы

Основная идея выделения миниработ состоит в следующем. Вся система эвристик в целом - это частичное представление опыта эксперта по выполнению некоторой большой работы Р. Эта работа имеет свою структуру. На большую и сложную работу можно посмотреть как на систему более мелких потенциально возможных миниработ. Совокупность миниработ представляет собой систему. Система миниработ это частичное отражение и/или представление всей работы Р в целом.

Структура системы эвристик тесно связана со структурой системы миниработ. Более того, система миниработ как структура является более первичной для системы эвристик: при изменении системы миниработ некоторые эвристики могут стать ненужными. Предлагая разработчику системы ИИ выписать систему миниработ, мы фактически предлагаем ему представить в явном виде ту структуру, от которой зависит структура системы эвристик. Систему миниработ мы предлагаем представлять в виде простого перечня, разбитого (например, пустыми строчками) на группы по принципу близкие-по-смыслу-к-близким.

2) Итак, первый шаг в нашем аналитическом пересмотре - это выписывание системы миниработ в форме перечня. Вторым шагом в нашем аналитическом пересмотре мы предлагаем сгруппировать эвристики (по номерам или по названиям) по этим миниработам. Результат этого шага - перечень миниработ, в котором для некоторых работ перечислены эвристики.

3) Следующий шаг - это составление для каждой миниработы специальной структуры, которую мы далее будем называть "моделью стереотипов". Модель стереотипов это описание небольшой работы (миниработы), в которой делается акцент на два следующих аспекта:

a) какие при выполнении этой работы могут встретиться альтернативы;
b) какие действия, решения делаются обычно, типически, а какие действия, решения возможны, но являются необычными, нетипичными.

Для представления модели стереотипов автор предлагает несколько типовых предложений:

   ОБЫЧНО: ...
       НЕОБЫЧНО: ...
       НЕОБЫЧНО: ...
       ...

В этом типовом предложении предлагается описать нечто типичное (ОБЫЧНО) и ряд возможных отклонений от этого типичного (НЕОБЫЧНО).

   ВАРИАНТЫ:
       а-1) ...
       а-2) ...
       ...

В этом типовом предложении предлагается описать какие при выполнении этой работы могут встретиться возможные альтернативы, варианты.

   СПЕКТР: ...

Это разновидность предложения ВАРИАНТЫ ... для случая, когда разные альтернативы действия или решения трудно перечислить конкретно, но легко описать в целом.

   ОСОБЕННОСТЬ: ...
       МОЖНО: ...
       МОЖНО: ...
       ...

Это предложение - своеобразный гибрид первых двух предложений. Предлагается выделить ту или иную особенность, которая может встретиться при выполнении данной работы (а может и не встретиться, поэтому формы ОБЫЧНО - НЕОБЫЧНО, ВАРИАНТ будут неадекватными) и ряд действий, потенциально возможных в данном случае.

   ПРИМЕР: ...

Это вспомогательное предложение: для тех или иных случаев, возможных вариантов можно сразу же поместить пример.

Типовые предложения могут использоваться иерархически: в разделе НЕОБЫЧНО:, например, можно выделить ВАРИАНТЫ:, или можно сделать деление ОБЫЧНО:-НЕОБЫЧНО: следующего уровня.


   Пример 4.
   Модель стереотипов для миниработы "описываем оглавление"
   
   МИНИРАБОТА: Описываем оглавление
   ОБЫЧНО: Имена-ссылки
       НЕОБЫЧНО: Имена + несколько ссылок
           СПЕКТР: Как обозначать дополнительные ссылки?
           НАПРИМЕР: Краткие имена-идентификаторы, Символы
           псевдографики, Служебные символы (правило38)
       НЕОБЫЧНО: Перед именами - номера и ссылки-номера (прави-
       ло50)
   ВАРИАНТЫ а)       а-1) Одни имена
       а-2) Имена и описания в одну строчку
       а-3) Имена и описания в несколько строчек
       ОБЫЧНО: Имена слева, Абзацы с описанием - справа
       (правило69)
       ОБЫЧНО: Описания просто комментируют элементы оглавления
           НЕОБЫЧНО: Описания комментируют элементы с некоторой
           точки зрения (правило52)
           НЕОБЫЧНО: В описаниях даются роли элементов (правило51)
   ОБЫЧНО: Вся тема занята только оглавлением
       НЕОБЫЧНО: Рядом, на пустом месте, есть еще одно оглавление.
       (правило63)
           СПЕКТР: Какие оглавления можно поместить рядом ?
       НЕОБЫЧНО: Ссылка на другое оглавление (правило63)
       НЕОБЫЧНО: Рядом - ссылка на метаэлементы
           СПЕКТР: Какие ?
           НАПРИМЕР: Условные обозначения, Смысл различных цветов
   ВАРИАНТЫ:
       б-1) В одну колонку
       б-2) В две колонки
       б-3) В несколько колонок (правило36)
   ОБЫЧНО: Все имена равноважны
       НЕОБЫЧНО: Некоторые имена выделены среди других
           СПЕКТР: Как выделены?
           НАПРИМЕР:
               - В особой рамочке из псевдографике, (правило37)
               - Цветом,
               - Сдвигом  вправо или  влево,
               - Другим псевдошрифтом в описании,
               - Специальными символами-пометками,
               - Порядком расположения (в начале, в конце)

В основе введеной нами "модели стереотипов" лежит предположение/ гипотеза, которая заключается в следующем:

Основная суть эвристик заключается в том, чтобы:

a) явно описать как можно больше возможных способов действия для человека в некоторой группе ситуаций;

b) для поиска возможных способов действия максимально использовать конкретные особенности текущих ситуаций.

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

5) Если на 4 шаге разработчик системы ИИ удалось развить далее модели стереотипов хотя бы для некоторых работ, то тогда можно сделать рекурсивный возврат и отталкиваясь от новых элементов в моделях стереотипов, вернуться к эвристикам и выписать соответствующие новые эвристики

Эти пять шагов и составляют аналитическую работу, названную нами "одноуровневый аналитический пересмотр системы эвристик". С точки зрения общей методологии мы поступаем следующим образом. Для того, чтобы получить возможность проанализировать, пересмотреть и развить дальше некоторую сложную структуру A (в нашем случае - систему эвристик), мы ищем другую структуру B (или систему структур B1, B2, Bi ...), от которой зависит структура A. В нашем случае структура Bi - это отдельная миниработа и несколько связанных с ней эвристик. Далее, мы ищем модель/ структуру/ представления Ci для каждой Bi. В нашем случае это модель стереотипов для той или иной миниработы. После этого мы предлагаем человеку проанализировать, пересмотреть и развить структуру Ci естественным образом, исходя из самой структуры Ci. (Будем называть это "естественным пересмотром"). После этого предлагается рекурсивно вернуться обратно по всей цепочке структур и изменить все предыдущие структуры, отталкиваясь от изменений в Ci.

3. Двухуровневый аналитический пересмотр системы эвристик

Работу по аналитическому пересмотру системы эвристик можно построить и другим, более сложным образом. В предыдущем варианте пересмотра мы очень слабо воспользовались структурой миниработ. Фактически, мы не предлагали пересматривать ее вообще. Но изменение системы миниработ может привести к еще более сильным изменениям в системе эвристик: расширяя набор миниработ мы фактически расширяем сферу нашего анализа.

Пересмотр системы миниработ можно выполнить в виде естественного пересмотра и тем самым немного усложнить и усилить первый вариант пересмотра системы эвристик, добавив к нему еще один шаг.

Но можно выполнить такой пересмотр и более глубоким способом. Для этого выдвинем еще одно предположение/ гипотезу.

Структура системы работ (моделируемая перечнем миниработ) зависит от структуры тех информационных или физических объектов, для которых выполняется эта работа или с помощью которых выполняется эта работа.

Это предположение фактически предлагает нам, для пересмотра системы миниработ, после шагов 1) и 2) в предыдущем, одноуровневом просмотре, выполнить следующие шаги.

2+А) Сопоставить каждой миниработе объекты, с которыми приходится иметь дело человеку, выполняющему эту миниработу.

2+Б) Выписать перечень этих объектов (назовем его "система объектов связанная с работой").

2+В) Сделать естественный пересмотр этой системы объекты как структуры.

2+Г) Выполнить обратный ход рекурсии: по изменениям в системе объектов пересмотреть и изменить систему миниработ.

После этого можно выполнить шаги 3), 4) и 5) как в одноуровневом варианте данной аналитической работы.


   Пример 5.
   Система объектов, связанная с работой "разработка гипертекста",
   совмещенная с перечнем миниработ.
       Перечень миниработ показан после шага 2+Г).
       Жирным шрифтом показаны элементы системы объектов,
       курсивом - элементы перечня миниработ.
       Большими буквами даны абстрактные понятия/ обобщения, отно-
       сящиеся как к объектам, так и к миниработам.
   процесс разработки гипертекста в целом
   СТАДИИ ОБЩЕГО ПРОЦЕССА (разработки гипертекста)
       (начало, продолжение, конец)
       начинаем новый гипертекст
       продолжаем гипертекст в середине
       заканчиваем гипертекст
       переделываем гипертекст
       сопровождаем гипертекст
       
   СОСТАВНЫЕ ЧАСТИ  ГИПЕРТЕКСТА: темы,  перечни,  мирки,  ключевые
   объекты, основные понятия.
   РАЗБИЕНИЕ ЦЕЛОГО (гипертекста) НА ЧАСТИ
       разбиваем гипертекст на темы
       выделяем в гипертекст перечни
       выделяем в гипертекст мирки
       выделяем в гипертекст ключевые объекты
       выделяем в теме основные понятия
       
   Гипертекст КАК  СИСТЕМА, СОСТОЯЩАЯ  ИЗ связей:  псевдокарты для
   мирков, близость тем, пути просмотра.
   СВЯЗЫВАНИЕ ЭЛЕМЕНТОВ (тем) В СИСТЕМУ
       добавляем псевдокарты для мирков
       связываем близкие темы
       оценка путей просмотра
       
   СОСТАВНЫЕ  ЧАСТИ  ГИПЕРТЕКСТА:  темы,  темы-спутники,  перечни,
   элементы категорий,  особые объекты,  мирки, ключевые  объекты,
   основные понятия, схемы.
   ДОБАВЛЕНИЕ ЭЛЕМЕНТОВ (в гипертекст)
       добавляем новую тему
       добавляем темы-спутники к центральным темам
       добавляем элемент категории
       добавляем особый объект
       добавляем перечень
       добавляем мирок
       добавляем определение понятия
       добавляем схему чего-либо
       добавляем новое оглавление
       
   РАЗЛИЧНЫЕ ВИДЫ тем В гипертексте: начальная страница, заставка,
   корневое оглавление,  оглавление, описание автора, подсказка по
   использованию гипертекста, перечень специальных терминов.
       начальная страница
       корневое оглавление
       заставка
       описание автора и фирмы
       help
       общий план справочника
       перечень специальных терминов
       
   ОТДЕЛЬНЫЕ ТИПЫ ЭЛЕМЕНТОВ (тем гипертекста)
       оглавление
       определение
       текст на языке программирования
       рисунок в псевдографике
       рисунок в графике
       таблица
       
   ОТДЕЛЬНЫЕ ЧАСТИ ЦЕЛОГО (темы гипертекста)
       заголовок
       ссылка
       абзац
       предложение или фраза
       имя или обозначение
       термин, понятие
       псевдошрифт
       перечисление
       другие элементы н.-т. текстов
       
   ЭЛЕМЕНТЫ темы: страницы, абзацы, ключевые слова, фрагменты.
   РАЗБИЕНИЕ ЦЕЛОГО (темы) НА ЧАСТИ
       разбиение темы на страницы
       разбиение темы на абзацы
       разбиение темы ключевыми словами
       
   ТИПИЧНОЕ ДЕЙСТВИЕ (при описании темы)
       даем контекст
       вводим объект с обоснованием
       даем сложную логику в фразе

4. Выводы

В данной статье мы ввели несколько новых понятий. Их смысл и их примеры и составляют основное содержание данной статьи.

Мы ввели понятие аналитическая работа и вся статья в целом посвящена описанию двух вариантов конкретной аналитической работы: пересмотр системы эвристик.

Мы описали принцип пересмотра для информационных структур: для пересмотра одной структуры A мы ищем другую структуру B, от которой зависит структура A, потом пытаемся пересмотреть эту структуру B либо при помощи естественного пересмотра либо при помощи другой подобной работы. Затем, опираясь на изменения в структуре B, мы возвращаемся к структуре A и уже изменяем ее.

Мы показали, что подобные цепочки пересмотров могут быть достаточно разветвленными и нетривиальными. Это показано на примере двух вариантов аналитического пересмотра системы эвристик.

Идеи, выраженные в данной статье вообще говоря могут быть применены к любым другим информационным структурам.

Литература

1. Ред. Ф.Хейес-Рот, Д.Уотерман, Д.Ленат, Построение экспертных систем. Москва, Мир, 1987.

2. Д.А.Поспелов, Ситуационное управление. Теория и практика. Москва, Наука, физ-мат, 1986.

3. Л.Г.Ованесбеков, Гипертекстовые базы правил. II Санкт-Петербургская конференция "Региональная информатика" РИ-93. Санкт-Петербург, 11-14 мая 1993, Тезисы докладов, часть 1, с. 130-132.

4. Н.М.Куо, Дж.Э.Макдоналд, Формальная методология приобретения и представления знаний. ТИИЭР, т. 74, No. 10, Октябрь 1986, с. 145-155.


В начало этого файла
Об авторе
Об ИВВС РАН

e-mail: Leonid Ovanesbekov <olg@www.ivvs.ru>

1993 -- 1998 март 09 пн