Главная > Документ

1

Смотреть полностью

А.А. Красилов

ИНФОРМАТИКА

В СЕМИ ТОМАХ

Том 2. Информатика смысла

(Машинная лингвистика

Москва

1997 - 2003

ИНФОРМАТИКА

Том 1. Основы информатики

(Введение в информатику)

Том 2. Информатика смысла

(Машинная лингвистика)

Том 3. Концептуальная информатика

(Толковый словарь по информатике)

Том 4. Представление знаний

(Структуры данных)

Том 5. Основания информатики

(Теоретические основы)

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

(Изобретание, проектирование,

разработка и сопровождение)

Том 7. Интеллектуальные системы

(Системы решения проблем)

Альберт Александрович Красилов

УДК ....................

Аннотация

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

The sense of the text and other means and methods of representation of knowledge is determined by calculation of value of concept, a phrase or the paragraph from phrases. The data for calculations the sense of concept is initial. Without connection with other or standard concepts the given concept is not meaningful. To each object or concept the pair a name of concept - his sense corresponds. In volume the basic attribute of object of calculation of sense - language is considered. The first side of language - set of rules of formation of phrases and their values, the second side of language - the analysis of phrases for an establishment of conformity of texts to rules of language. Rules are determined in semantic grammar Russian (and any another) language, the analysis of phrases is carried out by means of realization of recognizing grammar. Semantic and recognizing grammar are connected among themselves as algorithm and means of his realization. Basis for the control of correctness of texts and an opportunity of calculation of sense of texts is formal language Leibniz as a formal basis of language of professional prose.

()

ОГЛАВЛЕНИЕ

Введение

Глава 1. Общение в системе человек-ВМ

1.1. Основные средства общения

1.2. Классификация языков общения в системе человек-ВМ. Языки ФРАК

1.3. Сравнение языков автокод, высокого уровня и ФРАК

1.4. Основа общения - язык, о способах задания языков

1.5. Языки профессиональной прозы

1.6. Языки сценариев

1.7. Языки представления знаний о языках, метаязык Марков

Глава 2. Семантическая грамматика русского языка

Введение в сущность СеГ

2.1. Проблемы информатики смысла.

2.1.1. Основания для новой грамматики

2.1.2. Основной тезис для построения СеГ

2.1.3. Отладка знаний и язык

2.1.4. Источники проблемы смысла

2.1.5. Процесс формализации знаний

2.2. Знаки и лексемы

2.3. Слова, имена и термины

2.4. Понятия, классы понятий и лексиконы

2.4.1. Понятия

2.4.2. Классы понятий

2.4.3. Лексиконы

2.4.4. Предварительные сведения о представлении знаний

2.5. Фразы и абзацы

2.6. Смысл фразы

2.6.1. Понятие смысла

2.6.2. Смысл и значение

2.6.3. Принципы для определения смысла фразы

2.6.4. Вычисление смысла

2.6.5. Роли частей речи СиГ

2.7. Система смысла и применения СеГ

2.7.1. Алгоритм вычисления смысла текста

2.7.2. Рекурсивность алгоритма вычисления смысла

2.7.3. Универсальная грамматика и ее применение

2.7.4. Универсальный язык и проблемы СеГ

Глава 3. Языки меню

3.1. Методы общения с программами

3.2. Основные работы в меню Интеллсист

3.2.1. Работа с файлами

3.2.2. Справочная служба

3.2.3. Сервис Интеллсист

3.2.4. Параметры Интерфейса

3.2.5. Статистика Интеллсист

3.2.6. Настройка Интеллсист

3.2.7. Вхождение пользователя в Интеллсист

3.3. Иерархия работ и подработ

3.3.1. Формирование структуры Интеллсист

3.3.2. Работа с языками в Интеллсист

3.3.3. Формирование лексикона

3.3.4. Работы с библиотекой

3.3.5. Формирование БЗ

3.3.6. Работа с запросами

3.3.7. Формирование новой Интеллсист

3.3.8. Системные работы

3.4. Проектирование работ для меню

3.5. Пиктографические меню

3.6. Общая характеристика других работ

3.7. Инсталляция программ

Глава 4. Язык Лейбниц (формальное представление знаний)

4.1. Формальное определение ЯПП

4.1.1. Прагмы

4.2. Лексемы

4.2.1. Символьные литералы

4.2.2. Логические литералы

4.2.3. Числовые литералы

4.2.4. Агрегаты литералов

4.2.5. Строковые литералы

4.2.6. Литералы дат

4.2.7. Литералы времени

4.2.8. Литералы комплексных чисел

4.2.9. Ссылочные литералы

4.2.10. Другие литералы

4.3. Определение типов (предметная область)

4.3.1. Символьный тип

4.3.2. Логический тип

4.3.3. Типы перечислимых

4.3.4. Числовые типы

4.3.5. Индексируемые типы

4.3.6. Строковый тип

4.3.7. Именуемые типы

4.3.8. Табличные типы

4.3.9. Ссылочный тип

4.3.10. Множественные типы

4.3.11. Последовательностные типы

4.3.12. Подпрограммные типы

4.3.13. Абстрактный тип

4.4. Логические выражения

4.4.1. Имена

4.4.2. Кванторы

4.4.3. Вызов функции

4.4.4. Вызов процедуры

4.4.5. Преобразование типа

4.4.6. Квалифицированное выражение

4.4.7. Атрибуты

4.4.8. Индексируемые компоненты и отрезки

4.4.9. Именуемый компонент

4.4.10. Запись алгоритма

4.5. Разделы записей на языке Лейбниц

4.5.1. Раздел пользователя

4.5.2. Определения типов. Раздел о предметной области

4.5.3. Определения понятий. Раздел о предметной области

4.5.4. Определения метапонятий. Раздел о предметной области

4.5.5. Определения синонимов. Раздел о предметной области

4.5.6. Определения отношений. Раздел о предметной области

4.5.7. Определения операций. Раздел о проблемной области

4.5.8. Определения исключений. Раздел о проблемной области

4.5.9. Определения правил. Раздел о проблемной области

4.5.10. Определения подстановок. Раздел о проблемной области

4.5.11. Определения масштаба. Раздел о проблемной области

4.5.12. Определения библиотек. Раздел о библиотеках

4.5.13. Базы знаний. Раздел области знаний

4.5.14. Определения запросов. Раздел области запросов

4.5.15. Определения меток. Раздел о проблемной области

4.5.16.Анкеты и шаблоны. Раздел о проблемной области

4.5.17. Неявные описания и вводные фразы

4.6. Стандартное окружение

4.7. Связь с программированием

4.7.1. Вызов готовых программ. Язык Вызов

4.7.2. Спецификации представлений

4.7.3. Переработка знания с ЕЯ

4.7.4. Избыточность и умолчание в языках

4.7.5. Вводные слова, термины и фразы

4.7.6. Ударение в словах

4.7.7. Смысл косвенной речи

4.7.8. Роль синтаксической грамматики ЕЯ

Глава 5. Распознающие грамматики

5.1. Граф языка и примеры.

5.1.1. Общие сведения

5.1.2. Словари

5.1.3. Формальные языки

5.1.4. Граф языка

5.1.5. Примеры ФЯ

5.1.6. Распознающие грамматики

5.1.7. Графическое представление примеров

5.2. Графический метаязык. Алгоритмы порождения и распознавания

5.2.1. Графический метаязык

5.2.2. Алгоритмы порождения и распознавания

5.2.3. Применения алгоритмов

5.3. Система команд МГР типа 1

5.4. Система команд МГР типа 2 и Расширение системы команд МГР

5.5. Система команд МГР типа 3

5.6. Система команд МГР типа 4

5.7. Эквивалентность МГР и машины Тьюринга

Глава 6. Использование МГР и математические машины

6.1. Концепция математических машин

6.1.1. Введение

6.1.2. Общие характеристики ММ

6.1.3. Формальное описание ММ

6.1.4. Примеры проектирования ММ

6.1.5. Операции конструирование ММ

6.2. Математическая машина диалога

6.3. Математическая машина экрана (заметка)

6.4. Машина грамматического разбора для лексического анализа

6.5. Машина грамматического разбора для синтаксического и семантического анализа

6.6. Машины логического и алгебраического выводов

6.7. Машина генерации кода синтезируемой программы

Глава 7. Транслятор текстов ЯПП на ФЯ
7.1. Общее понятие о режимах работы Интеллсист

7.2. Реализация режимов и параметров работ

7.3. Схемы транслятора ЯПП на язык Лейбниц

7.4. Состав БЗ для сохранения и трансляция текстов

7.5. Генератор вопросов

7.6. Алгоритмы и их запись

7.7. Диспетчер мыслишек

Литература

Приложение 1. Таблица символов для лексического анализа

Приложение 2. Список типов данных в языке Лейбниц

Приложение 3 Синонимы для операций языка Лейбниц

Приложение 4 Предопределенные атрибуты

Приложение 5 Список прагм

Приложение 6 Граф языка Лейбниц

Приложение 7 Сводка правил порождающей грамматики языка Лейбниц

Приложение 8 Характеристики, зависящие от реализации

Приложение 9. Фундаментальные знания

Приложение 10. Список базовых операций

Приложение 11. Список стандартных операций

Приложение 12. Паспорта структурных данных

Приложение 13. Список стандартных исключений

Приложение 14. Список обозначений расширений для имен файлов

Приложение 15. Список ошибок, обнаруживаемых в Интеллсист

Сокращения для терминов

АП - алгоритм порождения

АР - алгоритм распознавания

БД - база данных

БЗ - база знаний

ВМ - вычислительная машина

ГЯ - граф языка

ЕЯ - естественный язык

ИИС - инструментарий интеллектуальной системы

ИМГР - интерпретатор машины грамматического разбора

Интеллсист - интеллектуальная система

КС - контекстно-свободный

МАВ - машина алгебраического вывода

МГР - машина грамматического разбора

МГР1 - машина грамматического разбора первого типа

МГР2 - машина грамматического разбора второго типа

МГР3 - машина грамматического разбора третьего типа

МГР4 - машина грамматического разбора четвертого типа

ММ - математическая машина

МТ - машина Тьюринга

ППП - пакет прикладных программ

ПЭВМ - персональная электронная вычислительная машина

СВТ - средства вычислительной техники

СеГ - семантическая грамматика

СиГ - синтаксическая грамматика

СП - синтезированная программа

СУБД - система управления базой данных

СУБЗ - система управления базой знаний

т. - том публикации Информатика

ФРАК - формульный автокод

ФЯ - формальный язык

ЭВМ - электронная вычислительная машина

ЭС - экспертная система

ЯВУ - языки высокого уровня

ЯЛ - язык Лейбниц

ЯПП - язык профессиональной прозы

Язык философии - язык понятий

Введение

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

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

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

Программирование связано с ФЯ, который необходимо изучать и наилучшим образом использовать. Некоторые трудности можно ожидать по этой причине при решении проблем прямого использования ВМ. Будет ли соответствовать ФЯ области знаний, которой интересуется прямой пользователь? Хватит ли языковых средств и методов для представления данных и знаний? Обеспечит ли язык эффективность и надежность программы и процесса ее построения? Имеются и другие вопросы по проблеме соотношения ФЯ - знания. Такие вопросы являются малоизученными, они требуют специального рассмотрения. Это не менее важная причина беспокойств - процесс внедрения ФЯ при использовании ВМ. Почти каждый ФЯ опирается на 30 стандартных зарезервированных слов, которые должны обеспечивать (а фактически не обеспечивают) точность перевода лексикона проблемной области прямого пользователя на этот ФЯ. Конечно же, имеются большие сомнения относительно выполнения требований точного перевода. Здесь издержки обязательны. В связи с такой ситуацией актуальными становятся методы использования естественных национальных языков. Слово «национальных» важно в силу того, что перевод с одного ЕЯ на другой также как и перевод на ФЯ обладает теми же недостатками в применениях относительно представления знания. Знания должны представляться для ввода в ВМ теми средствами, на которых эти знания зарождались. Перевод знания в памяти ВМ должен обеспечивать максимальную точность передачи исходных знаний.

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

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

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

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

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

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

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

Из предварительного рассуждения видно, что использование ВМ начинается с построения средств общения в системе человек-ВМ. Худшим вариантом общения является передача для ВМ знания в форме кода или машинного языка. Конечно же, улучшенным вариантом является использование ФЯ. Наилучшим вариантом общения является передача для ВМ знания на ЕЯ. Эти варианты будут рассмотрены ниже как противоположные с точек зрения эффективности работы ВМ и пользователя. Рассуждение об Интеллсист приведены только для ориентира, который нужно иметь в виду, если прогнозировать развитие информатики.

Все мы невежды, но только в разных областях.

У. Роджерс

Глава 1. Общение в системе человек-ВМ

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

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

Работа с ВМ - это диалог с предложениями от человека по выполнению заданий и с ответами ВМ на предложения. Диалог естественным образом подразумевает язык, с помощью которого формируются сообщения от человека для ВМ и от ВМ для человека. Нельзя при этом забывать об общении человек-человек и ВМ-ВМ. Общение человек-человек подразумевает использование ЕЯ, а общение ВМ-ВМ - последовательности кодов. Указанные средства важны для информатики, поскольку они влияют на средства общения человек-ВМ и способствуют углубленному пониманию смысла передаваемых сообщений. Изучение диалога человек-ВМ представляется сложным и быстро прогрессирующим делом. История такого диалога насчитывает уже достаточное число лет [Бакланов78, Белнап81, Белый10, Бидер76, Богодист74, Брябрин81, Ван Дейк78, Виноград76, Денинг84, Косарев89, Коутс90, Красилов78б, Ловицкий80, Машина86, ПоповЭ82, Рубашкин89, Сильдмяэ83, Фреге77, Ыйм78].

1.1. Основные средства общения

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

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

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

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

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

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

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

Совсем плохо дело обстоит с обонятельным и вкусовым общением человека с ВМ, поскольку моделирование таких способностей человека не достигло уровня, на котором можно реализовать такие средства в системе человек-ВМ. Нужны ли такие средства общения? Бесспорно, нужны. Если человек эффективно их использует, то эффективность использования органов чувств человека можно повысить в связи с применением СВТ и в особенности системы человек-ВМ.

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

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

Конечно, основным рассматриваемым средством общения будем считать язык. Самая общая классификация языков известна и она определяется следующей фразой: языки подразделяются на рассудительные и командные языки. Язык рассуждений представляются текстами описания предметов, явлений и процессов, фактами на эти объекты. Языки команд также представляются текстами описания предписываемых действий и требуют специального рассмотрения. Языки команд ВМ освоены широко в программировании, проблема командного общения человека нуждается в поисках новых путей реализации, исключая простые средства типа команда человека – одна процедура или подпрограмма. А начнем именно с рассудительного языка, а затем рассматриваются некоторые командные языки. История информатики начиналась с использования командных языков. В первую очередь к языкам команд относятся языки программирования. Специальным языком команд является язык МГР, который описывается в главе 5.

Основные функции языка связаны с задачами, которые решаются в процессе коммуникации и познания. Язык выполняет следующие основные функции:

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

  2. Язык предназначен для изложения смысла, передачи осмысливаемых сообщений.

  3. Язык определяет предметы, явления и процессы.

  4. С помощью языка осуществляется накопление фактов.

  5. К нормативным функциям языка относится формирование норм (правил) для понимания сообщений (приемником).

  6. С помощью языка реализуется изменение мира слов путем передачи команд и оценок состояния (приемника).

  7. Языком осуществляется выражение разнообразных чувств, отношений к реальному миру.

Все эти функции можно усмотреть при неформальном и формальном описании ЯПП.

1.2. Классификация языков общения в системе человек-ВМ. Языки ФРАК

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

Иногда используют другие классификации. Вот несколько примеров признаков:

  • признак уровня языка:(низкий, высокий, сверхвысокий, промежуточный, эволюционный, диалект, с типизацией);

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

  • признак важности (поддержка, библиотека, преемственность, точность, надежность).

В статье [Любарский90] предложена такая классификация:

  • язык информационной потребности (у нас - это часть ЕЯ),

  • язык семантических групп (у нас - это ЯЛ) и язык семантических сетей (описание записей с полями),

  • язык синтаксических структур (у нас - это язык Марков),

  • язык доступа к данным,

  • язык проблемных сфер,

  • язык диспетчерских решений (у нас - это некоторый ЯПП),

  • язык представления ответов и язык форм отображения.

Иерархия этих языков отражается в конкретных реализациях подсистем Интеллсист в форме последовательного преобразования запроса пользователя по БЗ в ответ. Имеются и другие подходы к классификации. Все они отражают конкретные разработки так же, как и принятая здесь классификация для новых Интеллсист. Хоронить перечисленные признаки классификации языков нельзя, они сами отомрут, когда мода (практическая потребность) на них пройдет и не появится язык, покрывающий возможности имеющегося и находящегося в деле языка. Командные языки использовали и будут использовать как накопленный арсенал методов программирования, которые ориентированы на структурное, модульное, объектно-ориентированное, параллельное, графическое, картинное, предметное, синтезирующее представление команд при передаче ВМ алгоритмического знания. Устойчиво выживут только ЕЯ и близкие к нему языки.

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

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

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

Технология разработки управляющих программ описана в литературе достаточно широко [Анализ84, Берг76, Изерман84, Крамм89, Красилов79б, 81а, 81в, 81г, 83в, Тамм85]. Рассмотрим только один прием организации программирования встроенных ВМ. Он базируется на следующей идее. Поскольку встроенная ВМ ограничена по своим возможностям, для разработки программ используется универсальная ВМ в качестве инструментальной. На универсальной ВМ разрабатывается косвенная операционная система встроенной ВМ (КОС), которая включает:

  • транслятор языка ФРАК (в коды встроенной ВМ),

  • загрузчик подпрограмм (создание макета выполняемой программы),

  • документатор объектных кодов,

  • интерпретатор кодов для отладочного исполнения,

  • имитатор внешних воздействий на встроенную ВМ,

  • средства отладки (обнаружение, локализация, индикация и информация об ошибке в программе),

  • генератор загружаемых кодов (для прошивки ППЗУ),

  • сервисные программы.

Именно поэтому такие операционные системы называются косвенными.

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

Рассмотрим метод устранения большинства недостатков автокодов. Основой подхода к построению метода ФРАК является процедура сопоставления языков программирования высокого уровня и архитектуры конкретной ВМ. Результатом такого сопоставления являлись, к примеру, язык программирования PL 360, разработанного Н. Виртом для ЭВМ IBM серии 360. Далее будут рассмотрены и другие примеры. Основная цель подобных рассмотрений - подойти к таким средствам общения в системе человек-ВМ, которые обеспечивают максимальное приближение к ЕЯ. Исторически к этому многих привела, в частности, технология создания языков ФРАК. Именно эту веху желательно раскрыть. Заметим, что ФРАК можно использовать не только для разработки программ управляющих ВМ, но и для разработки программ, ориентированных на любой класс проблем.

В результате сопоставления языков программирования высокого уровня с архитектурой ВМ обычно разрабатывались машинно-ориентированные языки высокого уровня, сочетающие высокую эффективность реализации программ с изобразительными средствами ЯВУ. Такие языки именуются формульными автокодами, или сокращенно - ФРАК. Первая реализация языка ФРАК появилась в результате сопоставления языка Фортран и архитектуры ЭВМ БЭСМ-6. Язык был разработан В.Г. Суховым и получил название PL-БЭСМ-6. ФРАК является средством составления программ начального программного обеспечения, он используется системными программистами. Всего было разработано 5 языков ФРАК [Красилов74а, 74б, 78б, 81б]. Схематическое определение языков типа ФРАК можно пояснить следующим образом. ФРАК активно использует свойства и возможности кода и автокода:

  • явно или неявно (по умолчанию) предоставлять доступ ко всемоперациям и ресурсам ВМ,

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

  • транслировать записи программ за 1 или 2 прохода,

  • получать кодовые программы с эффективностью 1:1 или снезначительной потерей в эффективности (на 5-10%).

ФРАК может включать в себя макросредства и возможности использования корреляции между командами ВМ. ФРАК активно использует свойства и изобразительные возможности языков высокого уровня и систематически применяет рекурсивные определения для конструирования объектов, операций и логики программ, он максимально использует опыт, приемы и обозначения ЯВУ. ФЯ ФРАК определяются как проекции языков типа Фортран, алгол-60 [Красилов67], алгол-68 [Красилов78в], PL\1 [Универс68] и др. на архитектуру ВМ. И это определение будет в дальнейшем уточняться через приемы конструирования и сравнения языка ФРАК с языками ассемблера и ЯВУ. Кроме этого ФРАК в конкретных условиях его применения использует ориентацию на область применения ВМ, на пользователя этой ВМ, обеспечивая сервисные средства для эффективного решения проблем системного программирования.

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

Ядро языка ФРАК определяет:

  • форматы только тех данных, над которыми в архитектуре ВМи операционной системе (если таковая имеется) определены операции, а изображаются они средствами ЯВУ;

  • операции и операторы, эквивалентные командам или наборам команд в отношении 1:1, одна операция : одна команда;

  • четыре группы операций: формульные, управляющие, специальные и вспомогательные;

  • форматы величин (переменных), имеющих адресуемые единицы памяти;

  • ключевые форматы операторов в соотношении 1:1, один ключ: однамашинная команда (ключ - это зарезервированное слово, или синтаксический символ языка ФРАК);

  • форматы явного или подразумеваемого задания преобразований одних типов данных в другие;

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

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

Оболочка языка ФРАК определяет:

  • классы только тех структур данных, над которыми в архитектуре ВМ и ОС определены операции и которые определяютпредметную область прикладного или системного программирования;

  • операции и операторы (составные операторы), сокращающие наборыопераций или операторов ядра языка ФРАК;

  • операторы обмена или управления, процедуры которых описаны средствами ядра языка ФРАК;

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

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

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

Именно так порождается структура языка ФРАК в результате сопоставления архитектуры ВМ и средств ЯВУ. Эти же сопоставления порождают алгоритмы транслирующей системы. Сами сопоставления сведены в приводимую ниже таблицу.

Использование языка ФРАК. Практически была разработана технология создания и реализации семейства языков, с одной стороны, высокого уровня, а с другой стороны, ориентированного на архитектуру ВМ [Красилов78б]. Проекция архитектуры ВМ на ЯВУ означает, что в ФРАК используются только те базовые операции ЯВУ, которые реализуются в кодовой программе по схеме 1:1. Структура языков семейства ФРАК (это также способствует пониманию языков ФРАК) выявляется при сопоставлении объектов языка, машины и действий в транслирующей системе. Сравним ЯВУ и языки семейства ФРАК:

  • семантика не зависит от ВМ - машинно-зависимая семантика,

  • неадекватность примитивов языка и архитектуры ВМ - полное соответствие примитивов языка примитивам архитектуры ВМ,

  • оптимизация программы достигается вариацией применяемых операторов - оптимизация заложена в определении языка,

  • ограничитель требует емкой командной интерпретации - ограничитель соответствует одной команде,

  • употребление идентификатора может предшествовать его описанию - описание идентификатора должно предшествовать его употреблению.

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

Таблица. Сопоставление элементов языка ФРАК и архитектуры ВМ

п/п

Конструкция языка

Конструкция ВМ

Операции транслятора

1

Идентификатор

Адрес

Распределение памяти, идентификация, формирование таблиц лексем

2

Константа

Данное

Формирование команд с непосредственными данными

3

Индекс

Регистр

Распределение памяти на регистрах

4

Формульный тип

Форматы данных

Идентификация операций и операций

5

Формула

Форматы команд

Распределение командной памяти

6

Ссылки

Косвенный адрес

Программирование приведений и балансировка типов

7

Операция

Коды операций

Программирование формул

8

Описание величины

Операции процедуры возврата

Распределение памяти

9

Оператор процедуры

Операции перехода с управления и возвратом передачи параметров

Программирование

10

Математические операции

Экстракоды

Программирование функции обращений к экстракодам

11

Стандартные идентификаторы

Определение форматов команд

Программирование операций с регистрами

12

Ядро Алгол-68

Форматы данных и команды преобразования данных

Подстановка команд преобразования типов данных

13

Присваивание

Команды записи и чтения данных

Арифметика типов с балансировкой

14

Циклы

Операции перехода

Раскрутка рекурсивных определений операторов

15

Условный оператор

Команды условного перехода

Порождение схемы программы, раскрутка рекурсивных определений операторов

16

Оператор выбора

Команды условного перехода

Порождение схемы программы

17

Оператор останова

Команды управления процессорами

Организация мультиобработки и режимов прерывания

18

Оператор выхода

Команда перехода

Организация выхода из модуля

19

Оператор перехода

Команда передачи управления

Порождение схемы программы

20

Метка

Адрес команды

Формирование таблицы переходов

21

Синонимы

Отождествление адресов

Совмещение памяти

22

Параллельные процессы

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

Организация мультиобработки процессорами

23

Операторы

Команды параллельного запуска

Организация мультиобработки

24

Модуль

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

Формирование данных для загрузчика и архивной системы

25

Общие величины

Базовые регистры

Формирование таблиц базирования данных

В таблице перечислены только некоторые важные элементы языка и программ. Важно отметить, что табличное сопоставление указывает на хорошую технологию формирования как самого языка ФРАК для данной ВМ, так и подход к проектированию системы трансляции языка в объектный код машины. Важное требование: структура языка ФРАК целиком должна зависеть от архитектуры ВМ, отступление хотя бы от одного элемента архитектуры означает отход от сущности языка ФРАК. Также важно, что языки ФРАК внешне существенно отличаются от языков ассемблера и напоминают своими многими средствами ЯВУ.

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

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

Пункт

Язык ФРАК

Архитектура ВМ

1

метаязык

Техническое описание

2

данные

память

3

константы

командная память

4

синтаксический анализатор

дешифратор

5

выражение

арифметическое устройство

6

арифметика типов

аппаратура контроля

7

условия

логический процессор

8

операторы управления

устройство управления

9

операторы ввода-вывода

устройство ввода-вывода

10

описание

конфигурация оборудования

11

комментарий

пультовая индикация

12

операторы отладки

пульт ВМ

13

арифметика типов

аппаратура контроля

Дадим общее замечание: представляет интерес такое сопоставление Интеллсист и архитектур новых ВМ. Сопоставление будет рассмотрено в томе 7.

Создание языков ФРАК базируется на следующих принципах:

  • обязательное полное соответствие примитивов языка ФРАК и данных всем элементам архитектуры ВМ;

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

  • использование стандартных имен из числа имен всех базовых элементов архитектуры ВМ;

  • разделение совокупности операций на 4 группы, охватывающих все функции архитектуры ВМ;

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

  • формирование ядра языка ФРАК и возможностей его расширения операциями, не ухудшающих производительность программ;

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

  • описание языка должно обеспечивать трансляцию записей в 1 - 2 прохода (определение объекта программы должно предшествовать его использованию в программе);

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

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

Критериями отбора конструкций языка ФРАК следует считать: полный охват возможностей архитектуры примитивами языка и данных, использование гибких форматов для учета частностей языка; максимальная оптимальность кода после трансляции; максимальное отражение в мнемонике языка его потребительских свойств. К этому необходимо добавить оценку средств ФРАК «самой» архитектурой ВМ с позиций системного программиста, программиста и пользователя. Соотношение средств или методов программирования и архитектуры способствует эффективному логическому проектированию ВМ, поскольку разработка языка ФРАК и соответствующей системы программирования может предшествовать разработке ВМ. Обычно со встроенными ВМ это и происходит. Для языка ФРАК обычно создается кросс-система или косвенная операционная система программирования еще до реализации разработок встроенной ВМ [Красилов74а, 74б].

Каждый человек работает в одной или

нескольких областях деятельности,

используя соответствующие области

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

1.3. Сравнение языков автокод, высокого уровня и ФРАК

Принципиальная возможность формирования языков ФРАК определяется наличием однозначного соответствия между компонентами архитектуры ВМ и основными понятиями языков высокого уровня, которые проектировались под прямым воздействием архитектур с учетом запросов практики применения ВМ. Заметим, что языки семейства ФРАК целесообразно писать не только для программирования ВМ, но и для программирования виртуальных или математических машин, для любых процессов, которые моделируются на ВМ. Можно указать такие примеры ММ как МГР [Красилов78а], ММ диалога [Красилов81б, 89а] и пакеты прикладных программ [Ершов82, Тамм77].

Важной информатической мыслью, возникающей в связи с конструированием языка ФРАК, является следующая: каждая программа (независимо от средств ее изображения) адекватна формуле со скобочной структурой. Каждая лексема (представляющая данные или величины) программы является операндом соответствующей формулы, а каждый ограничитель (запятая, точка с запятой или зарезервированное слово) программы является операции соответствующей формулы. Такое толкование любой программы унифицирует алгоритмы трансляции, обеспечивает проблему аналитических выкладок с текстами программы и указывает на принцип построения синтаксиса языка ФРАК [Красилов73б, 85а].

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

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

Таблица 2.3. Сравнение автокода, языков высокого уровня и ФРАК

п/п

Автокод

ЯВУ

Язык ФРАК

1

Символьные имена

Символьные имена

Символьные имена

2

Управление памятью

Автоматическое распределение памяти

Автоматизированное распределение памяти

3

Аббревиатура операций

Универсальные средства выбора обозначений

Универсальные средства выбора обозначений

4

Машинная семантика

Семантика не зависит от конкретной ВМ

Семантика отражает свойства данной ВМ

5

Полное отражение системы команд

Неадекватность средств языка и ВМ

Соответствие система команд языковым примитивам

6

Форматная запись программы

Бесформатная запись программы

Свободный формат записи программы

7

Любая степень оптимизации рабочей программы

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

Оптимизация зависит от пользователя

8

Ограничители избыточны

Ограничители порождают команды

Ограничитель - команда ВМ

9

Описание предшествует использованию

Описание и использование независимы

Описание предшествует использованию

10

Трансляция за 1 - 2 прохода

Многопроходная трансляция

Трансляция за 1 - 2 прохода

11

Отсутствие рекурсий операторов

Декомпозиция формул и операторов

Декомпозиция формул и операторов

12

Прямая связь с операционной системой

Ограниченная связь с операционной системой

Прямая связь с операционной системой

13

Отсутствует динамическая память

Имеется динамическая память

Частично имеется динамическая память

14

Локальность контроля

Контроль формализован

Контроль формализован

15

Машинный уровень реализации автоматизации

Необходимы средства автоматизации

Необходимы средства автоматизации

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

Языки ФРАК нашли практическое применение. Кроме уже упомянутых языков PL 360 для ЭВМ фирмы IBM, PL-БЭСМ-6 для указанной в названии ЭВМ, известны язык Эль-76 для ЭВМ Эльбрус, язык Ассоль для ЕС ЭВМ, языки ФРАК-Гелий и ФРАК-Пламя для встроенных технических систем. Последние два языка ориентированы на системное программирование управляющих встроенных ВМ и использованы при разработках технических систем управления. Известны и другие языки ФРАК. Ниже будет рассмотрен язык ФРАК для МГР текстов (программ).

Эффективность применения языков ФРАК стала возможной благодаря следующим факторам:

  • он является высокоуровневым языком типа ПЛ/1 или Алгол;

  • он «заставляет» программировать оптимально в соответствии с возможностями ВМ и квалификацией программиста;

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

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

1.4. Основа общения - язык, о способах задания языков

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

ФЯ также определяются алфавитом и грамматикой. Обычно используют порождающие грамматики, для которых метаязыком является формализм Бэкус-Наура, возникший по работам, представленным в публикации [Хомский61] для описания языков программирования. Здесь используется чуть видоизмененный формализм под названием язык Марков. Будем рассматривать распознающие грамматики для описания любых языков [Красилов74в, 75а, 78а, 79а, 83б, 86а]. Основы распознающей грамматики рассмотрены в главе 5.

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

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

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

Любой язык может задаваться одним из способов:

  • описательно так, как это реализуется в учебниках,

  • на образцах так, как это делается в статьях,

  • может представлятьсяформально так, как это делается в информатике,

  • грамматикой так, как это делается в лингвистике,

  • может определяться метаязыком так, как это делается при описании некоторых языков программирования,

  • может определяться в форме распознающей грамматики - графом языка так, как рассматривается в главе 5.

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

1.5. Языки профессиональной прозы

Средством общения людей является ЕЯ. Имеется большое число отличительных черт, выделяющих ЕЯ по сравнению с ФЯ, широко распространенных в общении людей различных профессий с ВМ. Это наиболее важная черта ЕЯ для применений Интеллсист. (Они же и определяют сложность ЕЯ.) Имеется в виду сложность ЕЯ, которая определяет невозможность реализации средств ЕЯ [Бакланов78, Белый10, Виноград76, Калугина79, ПоповЭ82] в «глобальных» Интеллсист. Вначале определим сложности в использовании ЕЯ.

Основные атрибуты сложности ЕЯ препятствуют его изучению и использованию для построения машинных систем работы с текстами ЕЯ. Отметим лишь некоторые. Значительные размеры контекста для определения смысла понятия, многозначность слов или понятий, большое число грамматических категорий СиГ и огромный размер словаря терминов (да и слов также) - это основные атрибуты сложности ЕЯ для Интеллсист. Первая сложность состоит в том, что понятие в ЕЯ имеет обширный контекст его определения. Это означает, что каждое понятие имеет определение, но оно локализуется весьма сложно (возможно и не в данном тексте). Например, контекстом данного понятия может быть память человека (порождение нового слова или термина), контекстом может быть содержимое книг библиотеки и др. Вторая сложность состоит в том, что ЕЯ использует синонимы таким образом, что некоторые два синонима могут иметь различные значения в некоторых контекстах с другими терминами. Их смысл определяется также по обширному контексту. Еще одна (третья) сложность использования ЕЯ: число грамматических категорий СиГ оценивается несколькими сотнями, что порождает сложности понимания ЕЯ для Интеллсист. Кроме этого, подавляющая часть грамматических категорий СиГ не способствует определению смысла текста. Работа с ЕЯ в условиях ограниченной памяти или быстродействия алгоритмов (для передачи знаний или для перевода текстов) представляет большую проблему. И, наконец, последняя (четвертая) сложность: наличие огромного словарного запаса ЕЯ. Для решения проблем пользователя конкретной специальности огромный запас слов или терминов просто не нужен. Этих четырех черт ЕЯ достаточно для понимания сложности работ с ЕЯ.

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

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

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

В информатике при формировании нового языка поступают в соответствии со следующими основными шагами:

Первый шаг - наложение ограничений на ЕЯ по указанным четырем чертам.

Второй шаг - расширение ограниченного ЕЯ формализованными языками и ФЯ.

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

Эти три шага позволяют построить новые классы языков ЯПП. Такиеязыки не рассматривают некоторые грамматическиекатегории, которые выражают эмоции как средства передачи интимных знаний (хотя длянекоторых профессий такие средства могут использоваться для передачи ВМ знаний). Слово «проза» ограничивает нас от применения, например стихотворных форм для передачизнаний в задании для ВМ (хотяи онимогут использоваться некоторыми профессиями для передачи знаний). Рассмотрим указанные три шага формирования ЯПП, а также некоторые принципы, характеризующие ЯПП.

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

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

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

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

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

Грамматика ЕЯ характеризуется сотнями категорий (простой подсчет показывает, что имеется более 250 грамматических категорий в русском языке). Грамматика ЯПП характеризуется десятками категорий (это часть определения ЯПП, лексикона и всех вспомогательных данных). Следовательно, по сравнению с ЕЯ при анализе текстов ЯПП можно игнорировать значительное число форм, поддерживающих «ненужные» для ЯПП категории. Среди грамматических категорий ЯПП могут быть категории, почти совпадающие с грамматическими категориями ЕЯ, например синонимы.

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

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

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

Кратко определим ЯПП так: ЯПП - это часть ЕЯ, используемая в данной профессии и использующая фиксированный (но расширяемый) лексикон, содержащий определения терминов, и формализованные языки или ФЯ как часть определения языка. Более точное определение дано выше в форме объяснения и сопоставления с ЕЯ. К преимуществам ЯПП следует отнести такие факторы, которые сформулированы более четко и полнее (чем ранее) в перечислении, данном ниже.

1.Поскольку лексикон ЯПП задается заведомо, легко реализовать синтаксический контроль над правильностью синтаксического представления знаний в этом лексиконе. Так реализуется автоматическая отладка текстов. Лексикон задается при первичном формировании знаний в памяти ВМ.

2. ЯПП поддержан ФЯ (языком Лейбниц), что также обеспечивает автоматизацию синтаксической и семантической отладки текстов знаний. Поддержка подкрепляется тем обстоятельством, что для текстов знаний подключается транслятор ЯПП на ФЯ, который контролирует тексты автоматическими средствами.

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

4. При выполнении условий предыдущих пунктов создается ситуация общения специалиста с ВМ без участия знаниеведа. Это обстоятельство обеспечивает отторжение разработок знаниеведа для пользователя Интеллсист. Роль отторжения велика. Интересна, например, проблема секретности знаний или их индивидуализация.

5. Освоение любой Интеллсист должно обходиться без емких руководств. Для использования Интеллсист должно быть достаточно самой системы, которая общается с пользователем на его ЯПП. Обучение должно предусматривать исключение из практики применения Интеллсист пособий и руководств, особенно в тот момент, когда идет производственная работа (как с играми на ВМ).

6.Система составления и использования лексикона предусматривает возможность пополнения его новыми терминами в процессе эксплуатации самой Интеллсист для решения данного задания. Развитие ЯПП является естественной основой для любой науки.

7.Настройка Интеллсист проходит стадии: набор текстов знания, прогон текстов для выборки и формирования лексикона, прогон знаний при вводе его в БЗ, контрольный ввод знаний в базу. ЯПП обеспечивает параллельную работу с лексиконом и знаниями, что продуктивно может использоваться для формирования самого знания.

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

Написание сценария предшествует разработке программ.

1.6. Языки сценариев

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

Основными компонентами диалога являются:

- состав «действующих лиц» (пользователи, системы, машины),

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

- режимы работы (среднее время ожидания, повторяемость и способы подачи реплик),

- средства выполнения (окна, клавиатура, мышь),

- средства подсказок (раздел справки, плавающий вопрос, динамика показа),

- сервис диалоговой работы, который минимизирует время диалога,

- схема диалога (последовательность основных пунктов).

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

Требования к диалоговой системе следует выделить особо. К ним относятся:

- гибкость: учет разнообразных запросов и потребностей пользователя,

- ясность: возможность построения модели системы, предсказуемость,

- простота: терпимость к ошибкам пользователя, доброжелательность,

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

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

- естественность: приближенность к естественному общению человека с человеком,

- системность и ограничения должны быть минимальными.

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

технического режиссера,

оператора за клавиатурой,

художника,

искусствоведа,

литературоведа,

комментатора,

программиста,

системного программиста,

знаниеведа,

алгоритмиста,

организатора,

менеджера,

руководителя коллектива действующих лиц.

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

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

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

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

3. Привлекательность работы с Интеллсист и теплоту общения с пользователем, который называется обычно дружественным интерфейсом.

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

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

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

Основными элементами сценария являются следующие атрибуты:

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

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

  3. Пролог - это вступление в работу с Интеллсист или другой системой.

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

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

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

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

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

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

  • обстановку в БЗ и запросах,

  • постановку цели и иерархию подцелей,

  • сюжетную заявку,

  • либретто пьесы,

  • фабулу,

  • идею,

  • тему,

  • доступные выразительные средства,

  • план по эпизодам,

  • монтаж,

  • план по объектам,

  • точку зрения пользователя,

  • ракурсы всех событий во взаимодействии,

  • авторский текст,

  • разбивку на акты и сцены,

  • ведение сущности пьесы: пролога, завязки, кульминации, развязки и эпилога.

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

В ИП и Интеллсист сценарий реализован внутри программ, а внешне проявляется через меню работ и подработ и реакций Интеллсист на запросы пользователя. Определены сценарий работы с инструментарием для ускорения выполнения только необходимых работ и сценарий работы Интеллсист для ускорения создания или запуска запросов, в частности анкет и шаблонов. Сценарий и его реализация полезны для организации работы «от одной кнопки». Использование клавиатуры должно осуществляться в рамках уже принятых традиций набора исходных параметров или данных, поскольку многие пользователя имеют некоторый или широкий опыт работы с программными системами. Например, использование функциональных клавиш клавиатуры в сценарии не должен содержательно отличаться от принятого сценария в практике работы на ВМ. Использование F1 связывается с вызовом подсказки, любой сценарий должен предусматривать этот факт. То же можно сказать об использовании стандартных клавиш и изображений (пиктограмм или рисунков). Кроме этого в инструментарии Интеллсист определены сценарии работы пользователя, если она имеет достаточно стандартную рутинную форму, и сценарии работы ассоциации Интеллсист, если при решении задачи необходимо обращение к нескольким Интеллсист, связанным ответами одних Интеллсист и запросами других.

1.7. Языки представления знаний о языках, метаязык Марков

Если окунуться в языки кодирования, то можно указать некоторые общие принципы кодирования. Проще всего кодируется отображение типа терминальный алфавит на целые числа. Обычно используетсяначальный непрерывный отрезок натурального ряда с конечным числом(максимальным значением) 2**К-1. Кодирование составных имен осуществляется вдве-три стадии. К примеру, слово произвольной длины (оно состоит из символов букв и цифр) помещается в таблицу, а ссылка на эту таблицу становится некоторым абстрактным символом, который вновь может быть закодирован целым числом. Совокупность слов и знаков вновь представляет собой «слово» произвольнойдлины (термин), которое (который) вносится в свою таблицу и тем самым приобретает ссылку - абстрактный символ некоторого свойства. Такая процедура может продолжаться далее. В языке кодирования предусматривается рекурсия определений - это важное обстоятельство в представлениях знаний. Рекурсивными являются определения значений и фраз (утверждений).

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

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

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

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

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

УРОВЕНЬ ИЛИ СТЕПЕНЬ ИНТЕЛЛЕКТУАЛИЗАЦИИ ПРОГРАММЫ ВМ

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

ОТТОРГАЕМОСТИ ПРОГРАММНОГО ПРОДУКТА ОТ

РАЗРАБОТЧИКА ИЛИ ОТ СПЕЦИАЛИСТА ПО РАЗРАБОТКАМ.

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

Имеется важная особенность в деле использования ЕЯ для представления знаний. Знания связаны с предметами, явлениями и процессами. Эти понятия будем связывать с понятием операнда. Операнд выделяет во фразе сущность понятия, относительно которой делается высказывание, содержащее что-либо до сих пор неизвестное. С этими сущностями связаны признаки, свойства, симптомы, операции, отношения или соотношения, которые уточняют знания о сущностях путем установления связи различных понятий (и их сущностей). Перечисленные понятия ассоциируются с операциями над сущностями. Таким образом, любую фразу можно рассматривать как «формулу», состоящую из операндов и операций. Знания по своему существу являются утверждениями логического типа. Можно считать, что знания изображаются логическими выражениями.

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

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

Для описания грамматик формальных языков используется язык, который является метаязыком по отношению к описываемому языку. Метаязык - это совокупность правил, по которым строится грамматика некоторого языка. Рассмотрим правила метаязыка Марков, он же именуется языком Марков, если рассматривается самостоятельно. В качестве примера определения метаязыка рассмотрим весь язык Марков, с помощью которого определяется ЯПП. Язык Марков является средством и примером описания языковых знаний. Исходным средством описания языка является порождающая или распознающая грамматики. В дополнении к этому вводится форма предложения, которая задает формальный внешний вид поименованной в заглавии раздела грамматической конструкции. Внешний вид порождающих грамматик представляется по правилам Бэкуса-Наура. Обычно используются методы сокращения форм записи грамматики методом Бэкуса-Наура. К примеру, использование символа «|» для указания альтернативных выражений правил сократит приведенную грамматику языка Марков до 24 правил. Вот как можно представить правила для определения нетерминального символа или метапонятия ";слово";:

слово::= буква | слово буква | слово цифра.

В языке Марков изменены некоторые правила по сравнению с формализмом Бэкуса-Наура. Это сделано для обеспечения большей наглядности и читаемости. Улучшения осуществляются средствами, которые описаны в самом ФЯ Марков. Метапеременные записываются без угловых скобок и подчеркивания, но с запятой для разделения метапеременных. Использованы термины «список», «перечень» и «последовательность» (аналог перечислений через символ запятой, через символ точки с запятой и фигурных скобок в некотором формализме Бэкуса-Наура). При формальном описании грамматик используются сокращения следующего рода. Метапонятия (понятия, отдельные символы или грамматические категории) представляются словом или последовательностью слов. Если перед метапонятием помещено слово «список», то понятие повторяется от одного до некоторого числа раз с разделением объектных понятий запятыми. Если перед понятием помещено слово «перечень», то объектное понятие повторяется от одного до некоторого числа раз с разделением понятий точкой с запятой. Если перед понятием помещено слово «последовательность», то объектное понятие повторяется от одного до некоторого числа раз без разделения понятий каким-либо символом. В языке Марков использован термин «возможно» (аналог квадратных скобок в некотором формализме Бэкуса-Наура). Если перед понятием помещено слово «возможно», то понятие либо не употребляется, либо употребляется только один раз. При использовании указанных слов метапонятие может иметь измененные окончания в словах. Терминальный символ указывается своим наименованием, которому предшествует слово «символ», если они уже используются в записи правил, или графическим знаком. К метасимволам относятся следующие обозначения. Вместо ограничителя ::= (по определению есть) используется символ двоеточия (для отделения определяемого метапонятия и его определения), символ точки (для указания конца правила), символ запятой (для указания операции соединения или катенации) и альтернативные определения (правила) разделяются символом точки с запятой. Все эти символы используются в записях грамматических правил. Если в формуле необходимо использовать двоеточие, то оно заменяется выделенным словом «двоеточие». Кроме этого, используется три начертания шрифта:

обычный шрифт - для записи метапеременных,

жирный шрифт - для автоматически набираемого средствами меню текстов,

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

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

порождающая грамматика: алфавит терминальных символов ,

алфавит нетерминальных символов , последовательность правил ,

аксиома.

алфавит терминальных символов: список терминальных символов.

терминальный символ: слово символ , наименование ; знак.

алфавит нетерминальных символов: список метапонятий.

аксиома: нетерминальный символ.

знак: символ алфавита ASCII.

слово символ: с , и , м , в , о , л.

наименование: метапонятие.

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

правило: метапонятие , символ двоеточия , правая часть , знак границы правила.

метапонятие: последовательность слов.

понятие: метапонятие ; терминальный символ.

слово: буква; слово , буква ; слово , цифра.

правая часть: перечень возможных предложений.

предложение: список понятий.

знак границы правила: символ точки.

последовательность понятий: понятие ; последовательность понятий , понятие.

возможное понятие: пусто ; понятие.

список понятий: понятие ; список понятий , символ запятой , понятие.

перечень понятий: понятие; перечень понятий , символ точки с запятой , понятие

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

таблица кодов терминальных символов: перечень соответствий.

соответствие: терминальный символ , символ равно , код.

код: целое число ; код целого числа.

код целого числа: # целое число.

целое число: последовательность цифр.

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

В качестве примера формального определения можно рассмотреть сам метаязык или язык Марков, предназначенный для синтаксического определения формы порождающей грамматики и его ввода в память Интеллсист для реализации генерации тестов проверки транслятора ФЯ или ЯПП. Синтаксис определяет КС-грамматику. Данное формальное определение является примером самоопределения грамматики с формальной точки зрения. Имя Марков языку дано в силу того обстоятельства, что именно Марковым впервые были исследованы формулы подстановки при построении теории нормальных алгоритмов [Марков84]. Порождающая грамматика применяется для генерации текстов определяемого языка. При практическом использовании языка Марков будут использованы дополнительные правила упрощения записи правил. Например, в правилах опускается символ запятой, если соединяются метапонятия с терминальными символами, которые представлены графически или выделены полужирным шрифтом.

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

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

Если заданы значения отдельных слов [терминов] и правила синтаксиса, то определено значение всей фразы.

Б. Рассел

Глава 2. Семантическая грамматика русского языка

Два стимула послужили основанием для создания новой грамматики русского языка. Первый стимул - это упорная работа над созданием Интеллсист, призванной обеспечить любого пользователя ВМ средствами решения его задач и проблем на основе своих знаний без привлечения программистов и формальных способов их представления. Второй стимул - публикация пяти лекций известного в информатике языковеда Н. Хомского [Хомский96] о сопоставлении и согласовании языка и знаний. Первый стимул явился как необходимость рассмотрения ЕЯ в качестве средства общения человека с ВМ, а второй - вызвал критическое настроение от способов понимания смысла любых текстов, передающих знания. В этой главе рассматривается формальное определение ЯПП как части ЕЯ с помощью грамматики языка Лейбниц, который предназначен для внутреннего (в Интеллсист) представления знаний и для точного понимания языковой сущности общения в системе человек-ВМ.

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

Введение в сущность СеГ

Истоки воззрений на смысл текстов находятся в трудах Лейбница [Лейбниц], который исследовал начала символического языка как универсального средства анализа научного мышления, а также в трудах Фреге [Фреге77], который определил элементарную единицу знания. Клини в своей монографии [Клини73] показал примеры сопоставления ЕЯ и символического языка. Длительная работа со средствами написания программ и развития интеллекта ВМ позволили автору вплотную заняться изучением сущности грамматики русского языка и поиском алгоритмов понимания ЕЯ. Ограничимся рассмотрением только русского языка, в предположении, что для других ЕЯ сохраняется общий конструктивный подход для формирования алгоритмов понимания текстов. В лекциях Хомского делается попытка поиска смысла текста с помощью средств, данных в классической грамматике, - СиГ ЕЯ. Этот подход оправдывается только частично. Рассматривается альтернативный подход к методам определения смысла текстов.

Современная литература по проблемам анализа ЕЯ и применения его в ИИ отражает поиск продуктивного сопоставления грамматик ЕЯ и ФЯ [Логический98 и др.]. Внимательный анализ литературы в сопоставлении с идеями настоящего раздела приводит к следующему. Можно указать несколько ошибок в анализах ЕЯ с точки зрения нового понимания СеГ в выборе путей сближения ЕЯ и логических языков. Первая ошибка состоит в игнорировании принятого в информатике правила о том, что каждое понятие должно быть описано, а описание понятия должно передаваться ВМ для использования его при анализе текстов. Человек понимает текст только в том случае, когда ему известны (может быть и на интуитивном уровне) смыслы всех понятий, используемых в тексте. Известное высказывание Рассела из Анализе разума, приведенное в эпиграфе, подтверждает сказанное. Другой взгляд таков: только термины могут иметь смысл или значения, которые определяют смысл фразы. Вторая ошибка состоит в переносе из СиГ идеи о том, что основным носителем смысла является только слово. Опять можно применить указанный выше другой взгляд. Конечно, слово может быть термином, тогда оно будет носителем смысла. Третья ошибка состоит в том, что смысл фразы постоянен относительно данной БЗ и не зависит от контекста ее использования или применения. Смысл фразы: «Жители Адаманских островов едят на обед рагу из гиппопотама» может быть определенным. Если имеются затруднения при понимании этого высказывания, то эту фразу можно задать в качестве запроса для Интеллсист, тогда она в зависимости от наполнения БЗ будет выводить различные ответы: «да», «нет» или «не знаю». Так же эту фразу понимает и человек. Четвертая ошибка состоит в том, что части речи грамматики ЕЯ привязываются прочно к смыслу понятий, упуская при этом важное обстоятельство - фраза, составленная из слов различных частей речи, может составлять структурное понятие, имеющее смысл, отличный от соединения смыслов отдельных слов. Конечно основная беда исследований ЕЯ, представленных в [Логический98], состоит в том, что каждый подход к формализации ЕЯ (обсуждается формализация английского языка) состоит в поиске правил, охватывающих весь ЕЯ. Всезнайкой быть невозможно, поэтому ЯПП ориентирован на конкретную область знаний (для анализируемой литературы это пятая ошибка). Это вполне оправдано, поскольку задачи решаются специалистами конкретной области, их не интересует другая область знаний, может быть кроме смежных областей.

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

Тексты на ЕЯ после ввода в память ВМ подвергаются переводу на внутреннее представление, которое должно максимально сохранять смысл исходного текста (как главное требование к любому преобразованию текстов или цепочек символов). Проблема перевода с одного ЕЯ (исходный язык) на другой (объектный язык) состоит в построении текста на объектном языке таким образом, чтобы смысл исходного текста сохранился максимально. Едва ли можно утверждать «сохранился полностью», об этом необходим отдельный разговор. С точки зрения требования сохранения смысла все рассматриваемые процедуры должны их выполнять. По-видимому, алгоритм понимания текстов пригоден для программ перевода с одного ЕЯ на другой. При переходе к внутреннему представлению текстов возникает реальная и разрешимая проблема построения универсальной грамматики и универсального языка, который именуется Лейбниц. Универсальная грамматика не пригодна для всеобщего использования человеком, она выполняет специальные функции построения Интеллсист или программ перевода (она доступна только программистам для построения таких программ).

На основе алгоритмов понимания ЕЯ представляется возможным построение новой грамматики русского языка, которая по составу возможных или допустимых ею текстов не отличается от классической грамматики, но которую понимает и человек, и ВМ. Классическая грамматика русского языка [Шанский81, Современный81] нами именуется синтаксической грамматикой или СиГ, поскольку она дает правила построения слов, словосочетаний и предложений, новая грамматика – семантической грамматикой или СеГ, поскольку она дает правила «вычисления смысла» всего текста. Именно СеГ русского языка является предметом нашего рассмотрения. Язык, порождаемый СеГ, называется ЯПП. Профессиональность ЯПП определяется составом лексикона. Язык поэзии можно и надо изучать с точки зрения передачи знания, но он очень уж активно использует принцип умолчания и небрежно (хотя и красиво) варьирует термины и синонимы.

Научить ВМ пониманию ЕЯ - это главная цель построения СеГ. Другая цель состоит в обучении пользователя общению с ВМ, которому сообщены знания в данных предметных и проблемных областях. Указанные цели являются взаимодополняющими и не противоречат ни современной грамматике русского языка, ни запросам обладателя ВМ, не знающего средств написания программ.

СиГ содержит набор грамматических категорий (или понятий самой грамматики) и набор правил построения слов и фраз (главным образом из слов и знаков препинания). Исходными лексемами, как начальными кирпичиками текстов, являются слова. По традиции в словах ищется смысл. Все толковые словари составлены по принципу «слово - смысл слова». Эта традиция и является камнем преткновения для нашего рассмотрения. Толковые словари обобщают каждое слово по многим областям их применения, но не по всем (!). Иногда слову сопоставляется несколько смыслов в зависимости от контекста, что препятствует пониманию смысла в заданном и составленном тексте. Кроме этого, наш критический взгляд направлен на ограниченные возможности СиГ, которые отсутствуют в практических текстах. Например, имеются лексемы, которые не рассматривает СиГ ЕЯ. Построение СеГ связано с расширением возможностей грамматики ЕЯ. Заметим, что запись фраз по правилам СеГ должна удовлетворять правилам СиГ, но не наоборот.

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

Информатика проникла во все отрасли знания [Красилов90д]. Но она доступна пока только программистам, а с их помощью (с помощью готовых программ) другим пользователям ВМ, для которых подготовлена программа. Программы стоят дорого. Необходимо обеспечить каждого пользователя средствами самому решать свои задачи с помощью ВМ без написания программ (реализация идеи бесплатной программы). Для этого необходимо построить инструментарий Интеллсист с учетом языка данной группы пользователей, на основе их знания, которые должны быть переданы для Интеллсист на (естественном для нее) ЯПП. Фразы языка должны передавать полностью смысл всего знания и соответствовать СеГ.

Рассмотрим последовательно следующие вопросы, частные ответы на которые можно найти в ссылках на литературу:

1. Что явилось основанием для создания СеГ и что такое знание с точки зрения поиска смысла, а также, какова связь этого понятия с формализацией [Красилов90в, 90е, 00а, т.4]. Понятие знание известно всем интуитивно, но при описании СеГ необходимо придерживаться некоторого формализма в определении знания для обеспечения точной передачи его для Интеллсист. Известные по литературе основания и формализм ориентированы на СиГ, что приводит авторов к неразрешимым проблемам при получении результатов сопоставления ЕЯ и ФЯ, при анализе ЕЯ и при реализации Интеллсист, базирующихся на ЕЯ в представлениях знаний.

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

3. Грамматику любого языка характеризуют фундаментальные исходные понятия или грамматические категории. От того, какие понятия или категории определяют СеГ, определяется ее назначение. Какие же это категории?

4. Как представлять знания с помощью СеГ и какова критика недостаточности СиГ? Главное средство для достижения указанных целей появляется после сопоставления слова (и других элементов текста) и знания. СеГ предназначена для указания правил такого сопоставления. Определение элементов текста является скорее техническим делом. А вот определение знания требует некоторого усилия для преодоления классического понимания этого термина. При этом надо учитывать, что определение знания обычно строилось для человека, умеющего интуитивно осмысливать каждое понятие. Теперь определение знания надо построить так, чтобы возникло понимание определения для ВМ. Заметим, что после формирования «нового» определения знания, станет ясным, что оно годится и для человека, иначе он не приобретет возможность общения с ВМ.

5. Центральными вопросами являются: каков механизм познания и что такое экология знания? Эти вопросы обычно исследуются слабо в надежде на интуитивные представления о них у человека. Если полагают, что любой текст имеет значение (или смысл) истины, то важно найти противоречия в БЗ или в предлагаемом тексте.

6. Как использовать знания в Интеллсист для решения практически важных вопросов, задач или проблем [Красилов91б, 91в, 94а] и как построить процесс логического вывода решения? Какова роль СеГ в этом процессе?

7. Последний вопрос является итоговым, он связан с языковой системой и универсальной грамматикой, которая должна явиться буфером между двумя различными ЕЯ. Кратко и описательно рассмотрим язык Лейбниц, который скрыт от пользователя и является внутренним языком Интеллсист. Как использовать систему ЕЯ и ФЯ для формирования нового знания?

Следует заметить, что не на голом месте строится СеГ. Она понималась человеком интуитивно. Развитие СеГ шло от методов программирования, от развития средств общения с любой ВМ. С появлением первой ВМ были осмыслены понятия адреса и содержимого ячейки памяти. Понятие адреса постепенно развилось в понятие идентификатора, затем в понятие имени и, наконец, достигло своего апогея - появилось в информатике понятие термина. Понятие содержимого ячейки памяти развивалось чисто технически. Постепенно рассматривалось содержимое одного двоичного разряда, байта - 8 двоичных разряда, слова - 16 или 32 двоичных разряда, набора слов, последовательности наборов слов и т.д. Смысл содержимого выявлялся только при выводе на печать или экран последовательностей преобразованных нулей и единиц, только тогда человек мог увидеть внешнее представление содержимого. Аналогично этому рассуждают об адресе и содержимом «ячеек памяти» человека. Адресом в письме и речи является термин. Только внешнее представление (через речь, письмо, действия) можно понять содержимое «ячеек памяти» человека.

Трудно рассчитывать на полное описание СеГ в объеме одной главы. Полное описание СеГ занимает 400-500 страниц текста. Рассмотрим только ее основы, формальное изложение и сформулируем основные посылки, тезисы и канву грамматики для реализации Интеллсист, для стимулирования критики лингвистов и для поиска путей развития исходных оснований. Некоторые практические пояснения излагаемого формализма языка можно найти в томе 4. Чтение изложения СеГ или фрагментов грамматики языка Лейбниц не требует специального знания, как и чтение грамматики ЕЯ. При знакомстве с главой может показаться, что СеГ учит программированию, так для описания грамматики используется формализм. Здесь снимаются всякие подозрения на этот счет, поскольку Интеллсист воспринимает задания, представленные в СеГ, которые не являются конкретными программами, но рассуждениями. С другой стороны СеГ учит логическому программированию так, как этому учат везде, включая лекции или доклады. Желающие программисты могут использовать покомандное описание алгоритмов в СеГ для построения программ на своем профессиональном языке. Процедурные языки - языки приказов - обеспечивают пошаговое описание алгоритмов, как это делается при описании алгоритмов, но при этом не используются ФЯ.

Кроме изложения основ СеГ необходимо иметь в виду проблемы использования грамматики. В силу «привычек», которые сложились в информатике, необходимы незначительные уступки ФЯ, что образует своего рода проблему СеГ. Чрезвычайно важна проблема связи СеГ и СиГ для «увеличения» понимания смысла текстов и для корректной печати результатов работы Интеллсист. Конечно, технически решаются проблемы размеров контекста, полного словаря и быстродействия ВМ. Особняком стоят проблемы неоднозначности понятий, умолчания части текста, ударений в словах, избыточности слов и текстов, а иногда понятий. Эти вопросы будут рассмотрены в разделе 4.7.

2.1. Проблемы информатики смысла

Понятие смысла до сих пор точно не определено. Поэтому наименование раздела содержит слово «проблемы». Вполне возможно, что понятие смысла известно каждому на интуитивном уровне. Для Интеллсист, работающей на представлениях знаний, этого недостаточно. Необходимо точное определение понятия смысла, позволяющее ВМ вычислять смысл текстов. Именно с этой целью определяется СеГ.

2.1.1. Основания для новой грамматики. В истории развития средств и методов программирования все время наблюдалась естественная тенденция постепенного приближения к средствам ЕЯ при вводе любых знаний в память ВМ. Наступил критический момент, который вызван экспоненциальным ростом числа пользователей ВМ и сохранением числа программистов для обслуживания пользователей. Для Интеллсист необходимы средства передачи знаний в том виде, в каком с ними встречается человек. Это значит, что ВМ необходимо передавать информацию (сообщения) в форме текстов, таблиц, массивов, структур и формул. При этом различные объекты именуются не только словами, но и комбинациями слов, цифр, графических символов. Пока не затрагивается проблема передачи знаний графическими средствами: графиком, чертежом, рисунком или реальной картинкой. Информатика изображений еще ждет своего исследования и выработки средств передачи, анализа и синтеза смысла таких объектов. Информатика изображений сейчас реализуется с помощью текстов, таблиц, массивов, структур и формул.

Первым основанием для СеГ явилась необходимость передачи ВМ сообщений в том виде, в котором их воспринимает человек, на его ЕЯ или той части ЕЯ, которую он использует в своей практической деятельности. Это основание подтверждается накопленным опытом работы с ВМ и связано с разнообразием решаемых с их помощью задач. На базе одних и тех же знаний человек решает многочисленные задачи, которые не укладываются в технологическую схему построения программ и современного использования ВМ. Но каждое требование пользователя вынуждает программиста составлять новые программы или непрерывно улучшать имеющиеся программы. Знание должно определять всю совокупность возможных постановок и решений задач в пределах рассмотренной совокупности знаний. Отсюда следует, что грамматика ЕЯ должна обслужить любые области знаний. СиГ не обеспечивает пользователя необходимыми средствами.

Вторым основанием является проблема формирования языковых основ для представления знаний. При этом главным критерием формирования языков является минимальный отход от средств передачи знаний на ЕЯ и обеспечение минимальных потерь знаний. Методом разрешения проблемы явилось сопоставление ЕЯ и ФЯ после формирования основных принципов понимания или осмысления текстов ЕЯ.

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

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

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

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

И седьмое основание. Критика текстов ЕЯ сводится к тому, что некоторые примерные фразы объявляются недопустимыми в силу авторского непонимания некоторых понятий. Авторы критических замечаний приводят традиционные примеры правильного и ошибочного написания предложений, а некоторые говорят о невозможности фразы. К цитируемым примерам относятся предложения: правильно - «Я наблюдал как прощаются друзья.» и неправильно - «Я слышал прощание.». Вторая фраза является правильной в СеГ, если выполнены ее правила и условия применения фразы. Если условно говорить о синтаксическом и семантическом русском языке, порождаемых соответствующими грамматиками, то синтаксический русский язык шире по составу фраз семантического русского языка в силу использования в нем большого контекста для понимания слов. Но сопоставление языков по передаваемому для Интеллсист смыслу приводит к обратному соотношению объемов языков. Речь (а также предметное или графическое общение) является самым широким по объему языком, поскольку смысл речи передается с учетом обстановки и с нарушением правил СиГ русского языка. Здесь нет касательства с такими формами общения. Еще о примере: автору стихотворения прощается второе предложение, и оно становится осмысленным и правильным. Пример поэтической фразы весьма очевиден. Но такие предложения можно наблюдать в текстах многих других профессий. Подобная критика нами не воспринимается, а используется при создании СеГ.

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

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

2.1.2. Основной тезис для построения СеГ. Основной тезис и основные аксиомы для построения СеГ представляются следующим образом. Исходный смысл содержится только в термине, который может быть составлен и из одного слова. Каждое слово не несет смысла, если оно не является термином. По правилам СеГ можно определить смысл каждой последовательности терминов (фразы), если не нарушены ее правила. Смысл всего текста состоит в том, чтобы быть истиной. Если текст имеет смысл лжи, то он содержит некоторое противоречие. Таково требование для каждого текста и требование Интеллсист к фразам, передающим знание ВМ.

В процессе построения правил СеГ необходимо определить объекты (в частности, слова) и понятие о знании. Определение объектов является скорее техническим делом. А вот определение знания требует некоторого усилия для преодоления классического (или общеупотребительного) понимания этого термина. При этом надо учитывать, что определение знания обычно формировалось человеком для человека, умеющего интуитивно осмысливать или понимать каждое понятие. Теперь определение знания надо построить так, чтобы возникло понимание определения системой (можно пока воспринимать термин «понимание компьютером» или «понимание системой» в кавычках). Заметим, что после формирования «нового» определения знания, станет ясным, что оно годится и для человека, иначе он не приобретет возможность общения с ВМ.

Итак, главная цель описания СеГ состоит в определении сущности алгоритма для понимания текстов расширенного русского языка по правилам этой грамматики. Другой язык может рассматриваться по аналогии с русским языком, для него также может быть построена СеГ на основе универсальной грамматики, внутреннего представления текстов в Интеллсист, на базе языка Лейбниц.

В основе разрешения вопросов или проблем в деятельности человека лежат знания. Каждый факт, рассуждения о фактах или правила вывода новых фактов выражают знания. В общении между людьми знания выражаются на каком-либо ЕЯ. Для разрешения вопросов или проблем с помощью ВМ необходимо иметь средства для представления знаний. Сегодня в большинстве случаев применение информатики связано с представлением знания программами, пиктограммами, таблицами, диалоговыми фразами или рисунками. Эти средства имеют определенный уровень интеллектуальности и, конечно же, используются в Интеллсист. Для обучения ВМ чаще всего используются процедурные представления, имеющие вполне определенные недостатки (см. т.7), компенсируемые многократным автоматизируемым составлением программ. Существуют формальные и специальные или формализованные языки представления знаний [Брябрин81, Восилюс80, Гришин82, Дюбуа90, Кирсанов82, Клещев82, Кондрашина89, Коэн75, Минский79, Осуга89, Предстинт80, Хельбиг80], которые должен знать пользователь помимо своего профессионального языка. Будем использовать тучасть ЕЯ, которая ориентирована на пользователя, являющегося специалистом в некоторой области знаний.

Представление знаний в памяти Интеллсист требует понимания того, что знания, передаваемые текстами ЕЯ, разложимы на элементы, которыми может оперировать Интеллсист. Элементарным знанием является пара <имя понятия, смысл-значение>, представляющая простой факт. Имя изображается термином, а значение имеет двоякую форму представления: внутренняя форма, которую можно понять только при анализе кодов в ячейках памяти Интеллсист, и внешняя форма, которая выражается лексемами. В примере “погода холодная” термин погода - имя, а термин холодная - значение. Логическая связь или отношения (композиция) фактов образует простое знание - часть законченной мысли, представленная фразой. Внешнее представление простого знания выражается формулами, а внутреннее представляется альтернативами совместных элементарных знаний. Простое знание служит для представления некоторой законченной мысли. В примере “погода холодная и идет дождь” использованы два факта и логическая связка “и”. Логическая совокупность (композиция) простого знания, обычно представляемая набором предложений ЕЯ, называется абзацем, который выражает законченную мысль. Отдельная законченная (формулировкой) мысль называется прикладной аксиомой, в которой пользователь уверен, что она является истиной. Прикладная аксиома определяет некоторый предмет, его свойства, явление или действия с предметами. Совокупность прикладных аксиом определяет БЗ. При анализе всего введенного в память Интеллсист знания прикладная аксиома может войти в противоречие с ранее введенными аксиомами, тогда Интеллсист обнаружит факт противоречия, а пользователь решает, как выйти из такой ситуации. Важно автоматически обнаружить такие противоречия и локализовать.

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

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

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

2.1.3. Отладка знаний и язык. Поиск противоречий между элементами знания содержится в проблеме отладки БЗ (одна из сторон экологии знания), которая состоит в определении локальной или глобальной непротиворечивости, независимости и полноты конкретных знаний. Проблема отладки разрешается следующим образом. При последовательном вводе знаний по абзацам каждый раз решается логическое уравнение (пусть пока не смущает читателя этот термин, см. т.5), по его решению определяются свойства БЗ и вводимого дополнения к БЗ. По дополнению можно судить о непротиворечивости и/или независимости добавляемого знания. Не следует сбрасывать со счетов традиционные методы отладки знаний. К ним относятся: установление грамматической правильности фраз ЯПП и использования понятий, контроль над точным выполнением количественных ограничений, алгоритмическая, системная и концептуальная отладки. Все эти методы, как обычно, имеют программную реализацию и осуществляются автоматически. Смысловая отладка знания в Интеллсист по существу реализуются автоматически или с участием пользователя на этапе ввода знаний для внесения изменений в соответствии с СеГ. Отладка знаний именуется еще исследованием по экологии знаний [Красилов97б].

Экология знаний предполагает чистоту знаний. Знания могут быть засорены повторами или противоречиями. Повторы фактов или утверждений о фактах легко устраняются, они никогда не изменят базового или пользовательского знания. На них следует обращать внимание только для того, чтобы с какой-либо точки зрения охарактеризовать источник знания, что относится к области эмоциональных исследований, на повторы следует обращать внимание еще для того, чтобы рассмотреть знания с позиции «не содержатся ли в текстах описки или даже ошибки». Искажение хорошего текста может породить повторение, которое будет обязательно проигнорировано в Интеллсист при использовании знаний. Конечно же, важнее проблема поиска противоречий. Интеллсист автоматически находит локальные или глобальные противоречия. Локальные противоречия возникают часто, они могут быть и полезными для «чистки» знания. Глобальные противоречия требуют существенного пересмотра знаний и принятия решений человеком относительно дополнительного или имеющегося знания. В полной мере к экологии знаний можно отнести проблему его полноты. Достаточно ли знаний ВМ для решения им заданий? Этот вопрос разрешается только после попытки решить задание. Если решение состоит из новых (или известных) фактов, то знание полно, иначе оно требует пополнения, поскольку решение содержит утверждения о фактах. Интеллсист подскажет, в какой части такое пополнение необходимо осуществить.

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

  • лингвосемиотические знания (описательные, плохо формализуемые),

  • семантические знания (или языковые, реализуемые через трансляторы ФЯ),

  • концептуальные знания (понятийные, используемые в системах программирования вручную),

  • фактографические знания (данные из базы, используемые через системы управления БД - СУБД),

  • теоретические знания (или логические, используемые также вручную или через систему управления БЗ - СУБЗ)

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

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

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

Языки знаний определяют способ хранения знаний в памяти ВМ. Построенная СУБЗ для Интеллсист отличается от СУБД объектами и способами представления взаимосвязь фактов в отличие от способов представления таблиц. Конечно, СУБД используется для хранения данных первичных или новых фактов, но не для представлений знания. Так как операции со знаниями существенно отличаются от операций над таблицами, СУБД не может использоваться для этого эффективно. СУБЗ Интеллсист обеспечивает быстродействие логического вывода с реальной скоростью 500 - 5000 операций логического вывода в секунду (в зависимости от мощности ВМ), поскольку система учитывает связи фактов, а СУБД учитывает сами факты, имеющие только косвенные связи. СУБД может обеспечить быстродействие Интеллсист в 10 - 100 операций в секунду (под операцией здесь понимается один шаг логического вывода решения логического уравнения или применение одного правила СеГ). Правила СеГ диктуют такой подход к хранению знаний.

Для передачи знаний в память Интеллсист необходимо определить понятие смысла текстов, чтобы передавать осмысленные знания. Смысл в толковых словарях определяется несколькими вариантами:

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

смысл - это цель, разумное основание;

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

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

2.1.4. Источники проблемы смысла. Источники проблемы смысла находятся в следующем. До сих пор понятие смысла в большинстве случаев находилось вне грамматики ЕЯ. Попытки поиска смысла высказываний из применяемых правил СиГ приводили к небольшому успеху [Хомский96]. Почти единственным способом вычисления смысла на основе СиГ является построения разнообразных графов связей слов или словосочетаний. Поэтому существующие грамматики ЕЯ называются синтаксическими. Конечно, грамотно составленный текст точнее передает смысл высказывания. Наша главная задача состоит в построении Интеллсист, понимающей ЕЯ. Для решения задачи необходимо иметь четкое представление о способах передачи для Интеллсист смысла текстов. Есть убежденность в том, что (как уже говорилось) синтаксическая грамматика не может полностью обеспечить нас средствами передачи смысла высказываний. Рассматривая тексты можно найти ошибки только благодаря тому, что понимаем смысл текста. Без понимания текста весьма сложно найти ошибки, в особенности логические. Иногда в бессмысленном тексте можно обнаружить ошибку. Например, перед «что» должна стоять запятая. Но что же это значит? Смысл вопроса понятен, хотя перед словом «что» нет запятой. Для определения смысла высказывания необходим новый подход к построению грамматики ЕЯ. Имеющуюся грамматику будем квалифицировать как синтаксическую, а предлагаемую грамматику будем называть семантической.

Итак, фундаментальная проблема информатики смысла заключена в поиске способа понимания смысла любого текста, построенного по правилам СиГ. На тексты ЕЯ будут накладываться некоторые ограничения. Проблемы смысла текстов на ЕЯ решались и решаются различными методами. Сошлемся лишь на исторические публикации [Бектаев74, Бидер76, Богодист74, Рубашкин89, Сильдмяэ80 и Фреге77, а также Хомский96]. Что роднит все современные исследования смысла текстов? Главная методическая характеристика понимания смысла авторами сводится к применению СиГ для определения смысла. Но ведь она дает правила образования фраз и ее частей (слов). Действительно, определенная комбинация слов (понимаемый термин или граф связи) позволяет построить картину смысла. Такой методике можно возразить. Во-первых, та же комбинация слов в другом контексте или в другой области знаний имеет почти или совсем другой смысл, во-вторых, последовательность комбинаций слов теряет первоначальный смысл, и она не определяет смысл всего текста. Необходим другой подход для определения смысла текстов. С имеющимися представлениями о смысле тексты знаний нельзя передать для Интеллсист.

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

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

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

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

Знание, полученное человеком или Интеллсист из элементарного, простого или сложного знания, представляет смысл того или иного высказывания, получаемого по правилам СеГ. Таково самое общее определение смысла. Это определение скорее является человеческим, а не машинным. Нам необходимо понимание, которое пригодно для переработки знания на ВМ. Для этого необходимо разрешить проблему смысла, которая именуется как проблема формализации знания (или смысла). Вот тут каждый может сталкиваться с основной проблемой информатики смысла. К этому надо добавить, что не до конца ясны понятия интеллект, интеллектуальный или интеллектуализация. Может быть поведение, подобное поведению человека, называют интеллектуальным? Может быть интеллектуальность - это предотвращение экспоненциального роста времени поиска необходимых сведений? Можно сомневаться в том, что создание модели мозга приведет нас к пониманию интеллекта. Модель мозга - это основной объект моделирования, медицины и психологии. На наш взгляд к пониманию этих понятий приведет анализ этапов формализации знания. Кратко рассматриваемая ниже последовательность этапов лежит в основе ИП. Именно эти этапы легли в основу создания средств и ИИС и собственно Интеллсист.

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

1. Процесс формализации начинается (первый этап) с построения словаря из слов, лексикона из терминов и других словарей. При неточном определении понятия величины или операции в лексиконе (соответственно предметной и проблемной областей знания) реализуется неточная формализация этого понятия. При постепенном доопределении понятия в процессе разрешения запроса автоматически осуществляется постепенная автоматическая формализация этих понятий величины или операции. Центральным местом всякой формализации является проблема определения понятия. Каждое понятие необходимо выделить и составить его характеристики или выявить его атрибуты (например, термин, определение, значение и др.). Каждому понятию сопоставляется структура и конкретные характеристики, им предписывается присущий им смысл - значение понятия. В этом состоит первый этап формализации. Почти все авторы уделяют внимание этому этапу формализации [Гришин82, Дюбуа82, Прад90, Клещев82, Кондрашина78, Минский87, Минский79, Осуга89, Предстинт80, Рубашкин80 и Ыйм80]. Наиболее сложной частью определений понятий является выбор или формирование структуры каждого понятия. По структуре понятия значительно проще решается задача выбора конкретных характеристик. Совокупность понятий классифицируется на понятия предметной области и понятия проблемной области. В предметной области рассматриваются терманды и множества их значений, в проблемной области - термации и множества их значений.

2. Второй этап формализации состоит в построении отношений понятий и формирование нового (возможно подразумеваемого) понятия, являющегося производным от исходных понятий. Композиция понятий может быть сколь угодно сложной, что зависит от сложности решаемых задач, разрешаемых вопросов или проблем. Композиции понятий выражаются фразами естественного (или искусственного, что не исключается) языка и содержательно представляют знания, несущие смысл, который передается друг другу или для Интеллсист. Отношения понятий - это факты, утверждения о фактах или правила формирования новых фактов. Проблема представления знаний или отношений считается решенной, если выбран ЯПП вместе с лексиконом. Отношения «складываются» в БЗ, которая служит основой разрешения всех запросов.

3. Третий этап является скорее техническим и состоит из ввода знаний для Интеллсист. При этом должна осуществляться формальная отладка знаний на точность использования СеГ. Здесь важным действием является процедура построения ответов на вопросы Интеллсист, связанными с частичным определением понятия. При этом должна осуществляться отладка знаний по восьми номинациям, свойственным всем системам обработки текстовой информации. Здесь главным элементом отладки является концептуальная отладка, реже используемая в программных системах.

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

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

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

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

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

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

2.2. Знаки и лексемы

Каждый ЕЯ использует для передачи знаний набор знаков. Русский язык использует два регистра букв кириллицы и (теперь довольно часто) два регистра букв латинского алфавита, набор знаков пунктуации, скобок и арабские цифры. Кроме этого, используются специальные знаки, которые вводятся в рассмотрение по мере необходимости. В текстах различных наук вводят специальные знаки. Надо помнить, что наша задача ставится так: обеспечить ввод знаний в память ВМ (или Интеллсист). Такое ограничение может быть снято при массовом внедрении средств автоматического сканирования текстов и распознавании знаков с высокой надежностью. Ограничение алфавита знаков вызвано возможностями ввода текстов с помощью клавиатуры. Знаков клавиатуры достаточно для представления всех знаков любой науки. Ручная замена отсутствующих на клавиатуре знаков на имена этих знаков разрешает, хотя и неэффективно, проблему представления любых знаков. Например, знак  заменяется словом sqrt, знак  - словами integr или интеграл, буквы , , , , ,  и т.п. - словами альфа, бета, каппа, дельта, эпсилон, гамма и т.п. Такие знаки и буквы изучаются даже в средней школе, но клавиатура ВМ их не содержит. Набор и ввод таких знаков возможен по отдельным таблицам символов. Поскольку их кодировка совпадает с кодировкой символов клавиатуры, то Интеллсист различить их не в состоянии.

Терминальный алфавит СиГ русского языка, (как и любого другого языка) связан с алфавитом (ТАСиГ), включающим два регистра кириллицы, цифры и знаки препинания. Терминальный алфавит СеГ (ТАСеГ) расширен знаками, которые имеются на клавиатуре ВМ (см. Приложение 1). Расширение вызвано необходимостью формулировки языка для общения в системе человек-ВМ. Например, в грамматике русского языка не рассматриваются буквы латинского алфавита, знаки +, *, #, ^, & и др. Массовое обучение русскому языку не предусматривает изучение таких знаков, хотя это и трудно объяснить. В школьных курсах имеется химия, физика и математика, в которых используется расширенный алфавит. ТАСиГ меньше ТАСеГ по числу символов. Если в некоторой области знания терминальный алфавит недостаточен, то он может пополняться другими знаками, обозначенными словами или комбинацией знаков и слов.

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

1. Графически неразличимые буквы двух алфавитов могут привести к ошибкам и изменению смысла написанного и введенных в память сообщений. Обычно сноровка пользователя или подсказка Интеллсист приводит к обнаружению таких ошибок.

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

3. Тексты можно набирать в любых известных алфавитах. Алфавит может быть подготовлен пользователем.

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

слова для обозначения величин, имен, возможностей, операций,

числа (расширенные числительные по разрядам), определяемые в СеГ,

символы и строки,

одна ссылка - пусто,

константы для обозначения «нулей» и «единиц» (ложь и истина для логических высказываний, null для нулевого множества, unit для единичного множества, nil для нулевой ссылки или цепочки символов и void для нулевого действия).

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

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

строки - последовательности символов в кавычках,

массивы - списки лексем одинаковой природы (одного и того же типа),

записи - списки лексем любой природы (любого типа),

таблицы - записи из столбцов и строчек,

комплексные числа - пары двух чисел,

даты - записи из чисел и точек или чисел и слова,

время - записи из чисел и точек (или слов).

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

Если ТАСеГ является строительным материалом для лексем, то лексемы являются строительным материалом для терминов и значений понятий. По своей сущности лексемы редко используются в качестве строительного материала для терминов. Они скорее предназначены для представления значений понятий, которые имеют смысл, выражаемый (текущими) значениями. Лексемы только внешне представляют смысл понятия, а внутреннее представление отражается в памяти Интеллсист кодами, в памяти человека - совокупным динамическим состоянием групп клеток мозга. Одна, две или несколько простых или сложных лексем могут обозначать термин или значение. В каждой области знания определяются свои термины и используются все или некоторые лексемы. Например, H3O в химии или ашдвао в литературе, F(X) в математике и физике, «Белый Дом» в политике, «1 января 2001 года» во многих текстах истории как термин.

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

Лексемы в СеГ определяются формально для точного их понимания ВМ. Формализм для построения лексем весьма прост, он фиксирует широко известные обозначения с вариацией форм. Например, правильная запись даты «30 января 1997» года может быть заменена записями 30.01.97, или 30.01.1997, или «тридцатое января одна тысяча девятьсот девяносто седьмого года». Такими же свойствами обладают и записи времени.

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

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

Лексемами для логических значений являются два слова: ложь и истина. Для этих лексем имеются соответствующие синонимы: false и true. Пользователем могут вводиться новые синонимы, например, типа «нет» и «да». Логические лексемы выражают диалектическую меру правильности высказываний, отсутствие или наличие фактов и др.

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

Лексемы чисел достаточно полно описаны в томе 4, к ним относятся:

короткие целые (синоним shortint),

целые (синоним integer),

длинные целые (синоним longint),

байтовые (синоним byte),

словные (синоним word),

целые с шагом (пример: 0(2)24),

целые в диапазоне (пример: -10..10),

короткие вещественные (синоним single),

вещественных (синоним real),

длинные вещественные (синоним double),

расширенные вещественные (синоним extended),

фиксированные вещественные (синоним fixed),

плавающие вещественные (синоним float).

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

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

К регулярным структурным лексемам относятся массивы (синоним array), для которых задаются индексы и тип значения компоненты массива. Такие лексемы являются значениями структурных величин. К регулярным структурным лексемам относятся строки (синоним string), которые образует строку из индексированных символов. Индекс символа изменяется от 1 до некоторого целого числа меньшего 256. Строки предназначены для передачи информации произвольной структуры, являющейся значением особого сорта. Смысл многих объектов могут передаваться строками.

К структурным составным лексемам относится запись (синоним record), которая состоит из полей самых разнообразных типов лексем. Имя поля - это новый термин для понятия, являющегося атрибутом общего понятия - записи. Тип поля может определяться произвольно. Записи используются главным образом для передачи знания о сложных объектах (животное, строение и др.). Частным случаем записей является таблица (синоним table), которая определяется как запись, состоящая из колонок и строчек и обрабатываемая некоторой СУБД. К частному случаю записи относится дата (синоним date), которая состоит из полей дня (до 31 дня), месяца (12 названий) и года (от 1900 до 2100). Смысл даты очевиден. Также к частному случаю относится время (синоним time), которое является записью из полей: часы (от 0 до 24), минуты (от 0 до 60), секунды (от 0 до 60) и доли секунд (от 0 с шагом 0.02 до 1). Смысл времени также очевиден. Особым частным случаем структурных лексем являются комплексные числа (синоним compl), которые представляются в форме записи из двух полей Re - вещественная часть и Im - мнимая часть комплексного числа.

Формы представления дат (лексемы даты) отсутствуют в СиГ, в СеГ они введены и имеют привычный для пользователя вид. Например, даты01 января 1996 года,01.01.1996,01/01/96 или 01.01.96 являются одинаковыми. Опасно использовать часть записи года, поскольку не указан век для данной даты. Интеллсист способна использовать часть года, например по алгоритму: если год меньше 50, то перед номером года приписывается 20 (2032), если год больше или равен 50, то перед номером года приписывается 19 (1932). Безусловно, этот алгоритм может привести к неверному пониманию года.

Формы представления времени (лексемы времени) также отсутствуют в СиГ, поэтому в СеГ она вводится привычным методом. Например, время 23 часа 25 минуты 45.2 секунды = 23.25.45.2. Нужно иметь в виду, что Интеллсист воспринимает дискрет (разницу между двумя соседними моментами времени), равный 0.01 секунды. Более точное время необходимо выбирать из внутренних часов ВМ.

Комплексные числа в математике представляются суммой действительной и мнимой частей. Эта форма применима и в СеГ как частный случай записи. Но кроме этого можно использовать форму, которая использует скобки для указания пары чисел - действительной и мнимой частей. Например, [2.7, 3.5] = 2.7 + 3.5 i.

Особый сорт лексем, который мало распространен в обычной жизни, а скорее является объектом фундаментальных наук, - это множество (синонимы набор или set). Множество - это собрание объектов одинакового типа, которые называются элементами множества. Множества бывают конечными (состоящими из конечного числа элементов), абстрактными (состоящими из неопределенных элементов) или бесконечными (счетными или континуальными). Для всех множеств имеются две лексемы, именующие пустое множество (null) и универсальное множество (unit), состоящее их всех мыслимых элементов. Лексемы, представляющие конечное множество, состоят из конечного списка лексем, заключенным в фигурные скобки. Элементами конечного множества являются лексемы одного и того же типа, формулы со значениями одинаковых типов и др., словом лексемы любого, но одного и того же типа. Лексемы, представляющие счетное множество с количеством элементов омега (синоним omega), состоят также из конечного списка лексем, но в отличие от конечного множества оно может расширяться по составу элементов. Лексемы, представляющие континуальное множество с количеством элементов алеф (синоним alef), также состоят из конечного списка лексем, но в отличие от конечного множества оно может расширяться по составу элементов.Лексемы абстрактного множества не существую, кроме двух - пустого и универсального множеств. В процессе разрешения запросов абстрактное множество может приобрести конкретную характеристику: стать конечным, счетным или континуальным.

Лексемы под именем последовательности бывают двух сортов: символьные и понятийные. Файловые лексемы (синоним file) задаются строками, которые имеют смысл, заложенный в информацию о файле. Элемент файла - это лексема типа, определенного описанием файла. Специальный тип файловых лексем называется текстовой лексемой (синоним text).

Существует только одна особая ссылочная (синоним ref) лексема пусто (синоним nil), другие ссылочные лексемы совпадают с целыми лексемами. Программные лексемы (синоним program) определяются в результате выполнения (истина) или невыполнения программы (ложь). Аналогично, процедурная лексема определяет (вообще говоря) пустое значение. В ЯПП процедурную лексему будем снабжать смыслом логической величины: она принимает значение ложь, если не выполнилась, иначе принимает значение истина.

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

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

<терминальный алфавит, нетерминальный алфавит,

правила построения текстов, нетерминальный символ>.

Терминальный алфавит составляется из графических знаков конечной численности. В СиГ такой алфавит включает буквы, цифры и знаки препинания. В СеГ алфавит составляется из графических знаков, которые имеются на клавиатуре устройства ввода текстов. Нетерминальный «алфавит» составляется из терминов грамматических категорий или грамматических понятий (также конечной численности). Как уже упоминалось, число таких понятий в СиГ более 250, в СеГ - несколько десятков (некоторые уже рассмотрены). Правила построения текстов даются описательно, они составляют инструкцию о записи правильных слов и фраз. Из числа терминов грамматических категорий выделяется один символ, который именует ЕЯ. Здесь рассматривается имя «русский язык». Точные определения всех конструкций ЯПП, включая лексемы, даны в ФЯ Лейбниц.

2.3. Слова, имена и термины

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

Особое место в текстах занимают лексемы-слова. В СиГ слова состоят только из букв, в СеГ слова могут состоять из букв и цифр (см. H3O) и отделяются друг от друга пробелами. Слова должны начинаться с буквы и продолжаться буквой или цифрой. Еще одна особенность записи слов состоит в том, что прописные и строчные (или большие и малые) буквы не могут отождествляться. Слова-термины «Термин», «термин» и «теРмин» могут иметь различный смысл, если только они не являются синонимами друг друга. Таким образом, в СеГ осуществляется обобщение понятия слова по сравнению с СиГ. Все слова СиГ используются в СеГ, но не все слова СеГ могут быть поняты в СиГ. Слова (лучше всего сказать термины) входят в текст знаний (или запросов) не менее, чем дважды: первое вхождение определяющее, второе - использующее. В определяющее вхождение слово входит как объект, состоящий из двух частей (конец слова может быть пустым):

слово = база слова;

слово = база слова , конец слова.

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

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

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

Уже отмечены особые сорта лексем, которые отсутствуют в СиГ. В связи с этим остановимся чуть подробнее на таких лексемах. Цифры (иногда изображаемые словами) предназначены для формирования чисел, которые в общем смысле являются «словами». В СиГ имеются числительные, представленные последовательностями слов. Тексты русского языка содержат числа, состоящие из последовательностей цифр или комбинаций таких чисел. Числа выражают смысл некоторых величин. Например, 1996 может выражать номер года. Числа используются более всего в математике, они образуются из цифр и знаков точки, плюса, минуса и латинских букв e или E. Определим понятие числа. Последовательности цифр без пробелов представляют целые числа.Две последовательности цифр (или два целых числа), разделенных точкой (без пробелов), представляют числа - рациональные дроби, вещественные числа или числа с фиксированной запятой (представленной точкой). Целое число или рациональная дробь вместе с порядком числа (без пробелов) представляют вещественные числа или числа с плавающей запятой (представленной точкой). Порядок числа записывается латинской буквой e (или E) и целым числом со знаком + (плюс), - (минус) или без знака. Все числа выделяются пробелами или знаками, отличными от знаков, используемых при построении чисел. Например, 7, 32, 100 - целые числа, 2e+2 (200), 33E-10, 2.7e0 - вещественные числа. Числа имеют смысл, соответствующий его значению. Они используются для представления фактов. Каждое число можно представить словами из раздела числительных. В описаниях грамматики ЕЯ не рассматриваются конструкции чисел. СеГ должна восполнить этот пробел.

Остальные знаки используются в различных ситуациях, от которых зависит смысл знака. Например, знак + обычно понимается как операция сложения, * - операция умножения, / - операция деления. Некоторые знаки предназначены для выделения утверждений (. » ; ! ?), другие для построения имени понятия. Часть знаков используются для построения собственных имен для выделения смысла фактов. Любой знак может вводиться в память Интеллсист как некоторое значение факта. Поскольку Интеллсист должна формировать новые факты, которые в представлениях используют те же знаки клавиатуры, можно строить осмысленные понятия из любых знаков. Каждый символ-знак может вводиться в память с помощью кавычек. Например, Интеллсист понимает записи «+», «d», «2» как значения для построения смысла фактов, вводимых в Интеллсист или получаемых в результате логического вывода новых фактов. Знаки, буквы и цифры в кавычках называются символами.

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

Пункт

Сорт константы

Обозначение

Синоним

1

Числовой нуль

0

нуль

2

Числовая единица

1

единица

3

Логический нуль

ложь

false

4

Логическая единица

истина

true

5

Символьный нуль

«»

пусто

6

Строковый нуль

«»

пусто

7

Нуль-множество

null

пусто

8

Единица-множество

unit

единица

9

Нуль-ссылка

nil

нуль

10

Процедурный нуль

void

пусто

Конечно, вводимые пользователем константы могут быть, например, символьными - «с», истинностными - (~ложь0~, ~не определено~, ~истина1~), целыми - 27, вещественными - 2.7E+1, строковыми - «текст», датами - «23 ноября 1996», временем - «20 часов 31 минута 45.7 секунды», ссылочными - $79 и поименованными - Х (термин, отмеченный как константа).

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

СиГ рассматривает термины, чаще всего составленные из слов. Но как быть школьнику, который использует записи (а + в). Учителем математики ему сообщается, как писать такие фразы. При этом не используются грамматические категории, а только некоторые интуитивные соображения о записи, например формульной фразы. В СеГ разрешается использовать в качестве термина формульную фразу (а + в). Причем используется вместе с точкой или без нее.

Некоторые слова являются именами, они записываются с заглавной буквы, и это свойство сохраняется во всем тексте. Здесь нет ничего необычного. Смысл каждого конкретного имени определяется. Понятия слова-термина и имени-термина в этом смысле идентичны. Например, Иван и человек - два термина с одинаковыми или различными характеристиками, соединенными термином «и». Термин человек может выступать как метапонятие, составленное из всех учитываемых имен. Тогда текст «человек Иван» состоит из двух различных терминов. Этим самым создается путь для обобщения имен. Именно таким образом термины соединяются в общую грамматическую категорию собственные и несобственные имена. Число грамматических категорий СиГ сокращается для СеГ.

В СеГ выделяются два класса слов:

стандартные (широко распространенные в ЕЯ для конструирования осмысливаемых фраз) слова и

профессиональные (введенные самими разработчиком или пользователем знаний) слова.

К стандартным словам относятся слова, которые входят в термины («если», «то», «когда» и др.) или являются терминами общего назначения («тип», «целый», «массив» и др.). К пользовательским словам относятся любые слова, введенные в процессе накопления БЗ или составления запроса для Интеллсист. Важную роль при использовании СеГ играют словари из слов, которые не имеют значения, но используются для построения и идентификации терминов. В связи с указанной структурой слов каждое слово должно иметь характеристику, определяющую длину основы слова. Интерфейс Интеллсист обеспечивает указание такой характеристики путем использования подчеркивания в определении нового термина: слов_о, словц_о, подчеркивани_е, длин_а.

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

В СеГ описываются простые и сложные имена. К сложным именам относятся квантор («найти» или «какой бы ни был»), формула (дождь или снег), функция (скорость от пути), индексирование (пятый элемент массива), именование (поле А таблицы Т), отрезок (элементы массива в диапазоне от 1 до 10), преобразование (привести к целому), квалификация (понимать как целое), атрибут (размер массива). Для лингвиста такие имена могут быть неожиданными. Здесь ограничимся краткими пояснениями таких имен. Для пользователя (кроме математика) сложные имена скрыты стандартными терминами, которые описываются в полном изложении СеГ. Пользователь может применять шаблонные запросы, в которых сложные имена уже имеются, они определены и отлажены.

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

Формула или функция (зависимость между величинами) именуют некоторое гипотетическое значение, которое может быть получено в результате его вычисления. Часто используются фразы с операциями: «сумму налога вычесть из суммы дохода». Знающий ЕЯ и не подразумевает, что кроме формул он использует и функции. Следующие фразы дают примеры функций: «скорость зависит от пути и времени», «у F имеется аргумент X». Имеются частные разновидности функций, зависящих от дискретной величины и именуемых индексированием. Например, числовые таблицы задают дискретную функцию от аргумента - целочисленной величины (номер строчки таблицы). «Из массива ведомость взять вторую строчку» - пример использования индексирования. А фраза «Из массива ведомость взять строчки от второй до седьмой» определяет в СеГ отрезок массива. Аналогично индексированию устроена дискретная функция именования, когда значение определяется в зависимости от имени. Наиболее подходящим примером являются таблицы, в которых имеются столбцы и строчки. Каждый столбец поименован, а строчки пронумерованы. Например, фраза «Из таблицы сводка взять колонку зарплата и пятую строчку» содержит имя колонки, из которой выбирается числовое данное.

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

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

2.4. Понятия, классы понятий и лексиконы

В основе СеГ использована одна из фундаментальных категорий - понятие. В соответствии с нашим пониманием классификации видов знания дадим 7 определений термина понятие.

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

Определение понятия, представленное в соответствии с пятым определением, включает (как указано выше) следующие атрибуты:

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

исходные концы слов,

класс и сорт понятия,

тип значений понятия,

ссылку на значение понятия,

текущее или постоянное значение понятия,

ссылку на неформальное определение термина,

дату введения понятия.

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

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

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

простое имя,

синоним,

тип,

константа,

литерал,

массив,

запись,

поле записи,

множество,

атрибут,

процедура,

функция,

операция,

формальный параметр,

метка,

исключение,

вводное слово,

прагма.

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

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

дискретные (логический, символьный, целый, диапазон),

непрерывные (вещественный, плавающий вещественный, фиксированный вещественный),

индексируемые (массивы),

именуемые (записи из полей различных или одинаковых типов),

ссылочные (из ссылок на понятия данного типа),

множественные (конечное или бесконечное множество),

последовательностные (цепочки простых объектов),

подпрограммные (функции и процедуры),

и абстрактные (или неопределенный).

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

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

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

Набор грамматических категорий СеГ составляет ее главные понятия. Поясним лишь некоторые категории, соответствующие классам понятий.

Синоним (термина) - это термин, именующий одно и то же понятие с одинаковыми значениями. Для человека синонимы характеризуют понятие с разных точек зрения, а для Интеллсист они характеризуются одинаково. Синонимы заменяют друг друга, они могут различаться в словах и/или знаках. Важно заметить, что среди синонимов одного понятия выделяется один, который является основным термином, объявленным своими характеристиками. Остальные термины являются синонимами и образуют (определяют) синонимический ряд. Выбор основного синонима остается за пользователем, его выбор определяет читаемость выдаваемого результата, поскольку результат печатается в основных терминах. Синонимы образуют словарное богатство ЯПП, делающее его образным и выразительным. Синонимия - явление профессиональное, в разных областях знаний она создается различными путями. Так как в качестве термина можно использовать фразеологические обороты, которые синонимически эквивалентны даже слову, то они могут использоваться для краткости и лаконичности, например, сокращения или аббревиатура. Синонимы - это характерная грамматическая категория, она максимально используется при формировании текстов ЯПП. Антонимы должны выражаться логически через зависимость от введенных ранее терминов (понятий).

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

ЕЯ использует понятие синоним, но в ЯПП понятие синонима расширено - можно вводить синонимы для любых терминов. К примеру, некоторое предложение может быть термином, и для него можно определить один или несколько синонимов, состоящих из одного слова или знака. Введение понятий термина и синонима исключает категории частей речи и предложения СиГ русского языка. Знания и запросы для Интеллсист передаются в соответствии с правилами СеГ при формировании БЗ, которая и является программой решения определенного класса прикладных задач.

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

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

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

Последние из упоминаемых здесь классов понятий СеГ – это понятия шаблона и анкеты как фиксированные формы построения запроса. При работе по шаблону задается меньше информации, но и круг решаемых задач также становится уже. Он состоит из фиксированного текста и заполняемых пользователем окон. Шаблон составляется знаниеведом и сохраняется в библиотеке для применений. При работе по анкете пользователь только отвечает на вопросы анкеты и получает решение задачи (например, диагностики). Анкета также составляется знаниеведом и сохраняется в библиотеке для применений.

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

Лексикон состоит из двух главных частей: стандартная и переменная части. Стандартная часть предназначена для обслуживания всех ЯПП (или всего ЕЯ) и состоит из общеупотребительных понятий, используемых при формировании БЗ, переменная часть формируется в процессе анализа и ввода знаний и заданий. Например, термин «сложение» является общеупотребительным, он обозначает сложение, например чисел. Такое понятие попадает в стандартную часть лексикона. Термин «интеграл» используется в математике, он попадает в переменную часть лексикона ЯПП математики. Стандартная часть лексикона присоединяется к каждому лексикону по отраслям знаний, которые хранятся в библиотеке. Уместно заметить, что такие библиотеки должны стандартизоваться в масштабе страны так, чтобы стандарт обязывал пользователя придерживаться его для уменьшения числа ошибок при формировании заданий. В отличие от имеющихся стандартов на термины и определения предполагаемый стандарт должен содержать по возможности все синонимы и характеристики понятия, соответствующие набору атрибутов определения понятия в БЗ. Лексикон является точным терминологическим словарем для Интеллсист.

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

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

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

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

3. Автоматизированное составление толкового терминологического словаря для некоторой предметной области. Эти операции реализуются с помощью меню инструментария Интеллсист.

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

5. Использование лексикона в трансляторе ЕЯ --> ФЯ для идентификации одно- или многословных (и многознаковых) терминов. При грамматическом разборе текстов проверяется правильность использования терминов и их взаимосвязи.

6.Созданиебиблиотеклексиконовдляреализацииопераций сопоставления,формированияилимодификациилексиконовпри использовании имеющихся или построении новых лексиконов.

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

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

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

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

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

Особое место в знании занимают факты. Представление фактов уже показано на примерах. Их можно проиллюстрировать еще и на таких примерах: «идет дождь», «снег не падает», «возраст юноши более 20», «лось является животным», «птица не относится к лососевым», «стол есть мебель». Интеллсист реализует использование фактов, введенных в БЗ или запрос, и выводит новые факты. Приведенные примеры показывают, как используются термины для построения фактов, фраз и предложений.

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

2.5. Фразы и абзацы

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

1. Поскольку лексикон задается заведомо при первичном формировании знаний в памяти Интеллсист, легко реализовать синтаксический контроль над правильностью формального представления знаний в этом лексиконе и текстов самих знаний. Так реализуется формальная автоматическая отладка текстов.

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

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

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

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

6. Система составления и использования лексикона предусматривает возможность пополнения его новыми терминами в процессе эксплуатации самой Интеллсист. Развитие ЯПП в процессе работы является естественной основой для развития любой науки.

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

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

9. Использование ЯПП устраняет необходимость обучения пользователя ФЯ, обычно доступного программисту или теоретику (которые в принципе могут использовать ФЯ для передачи специальных знаний и запросов).

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

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

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

В СеГ отсутствуют категории типов предложений, частей речи (их 15 в СиГ), частей предложения (подлежащее или сказуемое) и др. Однако, если применять СиГ, то в текстах можно обнаружить все такие категории. Фразы, абзацы и тексты из абзацев полностью состоят из терминов двух типов: термин-операнд (будем именовать кратко терманд) и термин-операция (или кратко термация). Терманд и термация являются основными членами предложений. Если вводные слова и предложения не являются терминами или частями терминов совместно с другими словами или знаками, то они могут игнорироваться при анализе текстов знания. Но если они определены как термины, которые либо передают знания, либо введены в лексикон как игнорируемые термины, то они так и учитываются. Кроме таких текстов в записи могут включаться комментарии, которые игнорируются. Рассудительные фразы предназначены для передачи знания, командные фразы - для выполнения действий или для передачи алгоритмического знания, как и термации. Таким образом, в СеГ имеется две части речи (или два члена предложения): терманда и термация. Заметим, что лексемы могут быть термандами или термациями по применению. Терманды и термации представлены терминами, которые образуются из слов всех частей речи СиГ, лексем и знаков. Конечно, чаще всего существительные бывают термандами, а глаголы - термациями, поскольку существительные обозначают предметность, а глаголы - процесс или способ действия. Некоторые лексемы обозначаются словами, например, значения истинности или имена множеств значений. Терманд обозначает понятие, которое имеет значение, термация также обозначает понятие, которое ссылается на действия с термандами, их значение получается в результате завершения выполнения действий. Терманд обозначает предмет, явление, процесс или их свойства. Термация обозначает действие, взаимосвязь, взаимодействие или зависимость.

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

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

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

В СеГ определены 115 широко известных операций, которые называются базовыми. Среди них:

логические (и, или, не, больше, равно, меньше, принадлежит, влечет),

арифметические (сложить, вычесть, умножить, делить, возвести в степень),

математические (синус, логарифм, целая часть и др.),

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

операции с таблицами и лексемами.

Кроме этого пользователь сам может определить операции и использовать их в заданиях.

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

2.6. Смысл фразы

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

2.6.1. Понятие смысла. Так дается определение смысла в различных словарях и книгах. Прежде чем передать знания в память Интеллсист необходимо определить понятие смысл текстов, чтобы передавать только осмысливаемые знания. Смысл слова в известных словарях определяется несколькими вариантами:

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

смысл - это цель, разумное основание;

смысл - это то же, что и разум.

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

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

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

  3. Смысл - это языковая категория, отражающая значения понятий, их совокупностей, существенных свойств, связей и отношений.

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

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

  6. Смысл - это значение, определяемое в процессе понимания текстов (предметов или картинок).

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

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

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

Источники проблемы смысла находятся в следующем. До сих пор понятие смысла в большинстве случаев находилось вне СиГ ЕЯ. Попытки поиска смысла высказываний из применяемых правил СиГ приводили к небольшому успеху. Конечно, грамотно составленный текст точнее передает смысл высказывания. Наша главная задача состоит в построении Интеллсист, понимающая ЕЯ по правилам СеГ. Для решения задачи необходимо иметь четкое представление о способах передачи для Интеллсист смысла текстов. Рассматривая тексты можно найти ошибки только благодаря тому, что понимаем смысл текста. Без понимания текста весьма сложно найти ошибки. Иногда в бессмысленном тексте можно обнаружить ошибку. А иногда в тексте, написанном с (кажущимся) нарушением правил СиГ, нельзя обнаружить ошибку. Например, перед словом «что» должна стоять запятая (правило). Но что же это значит? Смысл вопроса понятен, хотя перед словом «что» нет запятой. Для определения смысла высказывания необходим новый подход к построению грамматики ЕЯ.

Замечание. Смысл объекта зависит от языка представления знаний. Для текстов ЕЯ, определяемого СиГ, понятие смысла рассматривается по принятым правилам, для текстов ЯПП, определяемого СеГ, понятие смысла рассматривается ниже, для графической информации понятие смысла дано в томе 4 в общих чертах.

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

Графовый путь осмысления текстов может принести пользу при решении конкретных лингвистических задач и способствовать пониманию их смысла, но он не приводит к фундаментальному алгоритму осмысления текстов. На тексты ЕЯ накладываются некоторые ограничения, связанные с лексиконом, но которые могут изменить смысл текста при коррекции лексикона, и, с другой стороны, расширять грамматику понятиями, которые «забыты» в СиГ, например даты или время. В [Логический98] приведен подтверждающий данные выше высказывания пример с фразой «серый дом», в которой трудно (или невозможно) установить связь слов «серый» и «дом» из-за сложности построения пересечений двух множеств фраз «серый что-то» и «какой-то дом». Даже, как утверждается ниже при описании примера, пересечение не устанавливает истины при замене слова «серый» на слово «следующий». Конкретное применение фразы «серый дом» приведет к мысли, что она является просто термином.

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

Следующий шаг в изучении структуры знания и итогового значения состоит в структуре и анализе простого знания, построенного из фактов. В основе СеГ лежит принцип, состоящий в том, что элементарным знанием является факт. Факт - это пара (имя, значение [смысл]), которая является конкретным представлением понятия. Простое знание обычно представляет собой композицию совокупности элементарного знания и отношений между фактами. Сложное знание - это композиция простого знания, имеющая законченную мысль. Факт имеет смысл, выраженный самим фактом. Простое знание имеет смысл, поскольку каждый факт имеет смысл и результаты отношений фактов также имеет смысл, вполне определенный по правилам СеГ через значения фактов. Сложное знание имеет смысл, получаемый после «вычисления» смысла составляющих простых знаний и окончательного «вычисления» смысла композиции простых знаний. Например, «ему 20 лет» - элементарное знание, а «ему 20 лет, а ей 18 лет» - простое знание, составленное из двух фактов, соединенных отношением-термином «, а». Примером сложного знания может быть фраза «ему 20 лет, а ей 18 лет, следовательно, они молоды и могут быть женихом и невестой».

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

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

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

Наше общее определение смысла таково: смысл текста есть его значение, которое предписывается имени текста в результате вычисления. Простым примером может служить факт. Например, факт: «сегодня дата есть 20 февраля 1990 года» состоит из имени «сегодня дата» и значения «20 февраля 1990 года» и имеет смысл истины или лжи. Запись «ф?к!пр2» не имеет смысла, но может быть названа абракадаброй или текстом, не имеющим смысла. Однако, запись ««ф?к!пр2» есть простая последовательность знаков» уже имеет смысл, поскольку значению «ф?к!пр2» связано с именем «простая последовательность знаков, не имеющее смысла». Наиболее вероятно, что фраза имеет истинное значение, хотя в некотором контексте она может быть и ложной. Для фактов чаще всего смысл находится достаточно просто. Но как быть с длинным текстом, в котором изложены многие взаимосвязанные факты.

2.6.4. Вычисление смысла. Вернемся к пониманию смысла текста, который складывается из смысла термандов (термин-операнд) и термаций (термин-операция), применяемого к термандам. Значение терманда может быть определено или просто задано, тогда процесс вычисления смысла фразы может немедленно начаться, а в противном случае весь процесс получения смысла приостанавливается до получения значения терманда. Если значение терманда из-за недостающего или малого знания не определится в течении логического вывода решения, то данный терманд останется для определения значения некоторого факта, выраженного сложным утверждением. Тем самым факт будет определен в контексте данного терманда. В качестве примера рассмотрим утверждение «скорость есть скорость тела плюс 25». Если скорость тела не определится при логическом выводе, то получаемый факт относительно понятия скорость будет зависеть от скорости тела. Если скорость тела определится как 30, то получаемый факт будет иметь вид: «скорость равна 55». Пример прост, он служит иллюстрацией для понимания процесса получения значения скорости.

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

  1. переводит запись знаний на внутренний язык Лейбниц в соответствии с СеГ,

  2. составляет БЗ с автоматической проверкой корректности элементов знаний по абзацам (экология абзаца),

  3. переводит запрос на язык Лейбниц,

  4. решает логическое уравнение, составленное из знаний и запроса,

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

Так Интеллсист использует знания для решения или разрешения заданий, вопросов или проблем.

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

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

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

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

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

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

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

Модальные утвердительные или предположительные слова используются главным образом в качестве перечислимых в многозначных логиках, как и состояния. “правда” и “вероятно” являют примеры элементов перечислимых. Предлоги и союзы используются для обозначения термаций при установлении отношений между предметами, явлениями или процессами. Например, “и” и “или” обычно являются термациями с логическими величинами. Частицы, междометия и звукоподражания, передавая эмоциональные и побудительные черты относительно предметов, явлений или процессов, могут использоваться в качестве части или синонимов термандов, а также иногда термаций, например «не» или сравнительные «вроде». Некоторые утвердительные частицы используются в качестве синонимов логических лексем или перечислимых, например «да» или «нет». Некоторые частицы остаются вводными словами.

Примерно так (в частности) используется СиГ в СеГ, что касается частей речи. СиГ должен интенсивно использоваться при формировании ответов Интеллсист на запросы пользователей. Объявляемый термин может не согласоваться с другими терминами, если они используются в изложении одного нового факта. Термин «сер_ый дом» в ответе «у серый дом остановился автомобиль» не читабелен. Применение СиГ должен скорректировать фразу так: «у серого дома остановился автомобиль».

2.7. Система смысла и применения СеГ

Формальную модель русского языка (или другого ЕЯ) построить сложно, а скорее всего невозможно, поскольку его развитие связано не только с непрерывным пополнением словарного запаса, но и с быстрым формированием новых лексиконов или его более быстрым пополнением (по сравнению со словным словарем). Главный аргумент против построения формальных моделей ЕЯ состоит в том, что СиГ не формализует смысл текста, а определяет правила построения слов, предложений и текста. Правила СиГ не определяют смысла терминов и всего текста. Читающий понимает смысл текста интуитивно. Обычно в СиГ единицей текстов является слово, которое имеет много значений (смыслов). Для Интеллсист задача распознавания смысла слова по широкому контексту является пока неразрешимой проблемой. Если контекст ограничен используемыми БЗ и запросом, то задача распознавания смысла термина успешно решается.

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

  • реализация анализа текстов для построения лексиконов и извлечения знаний при первичной и вторичной обработках текстов,

  • автоматическое составление словарей из слов и создание и ввод словарей терминов и знаний в базу и их автоматический анализ,

  • определение (или вычисление) смысла терминов, а в последующем и текстов для формирования логического вывода решений запросов,

  • реализация информационно-справочных систем на основе смысла запроса, а не на основе ключевых слов или словосочетаний,

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

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

  • поиск ошибок всех 13 классов в текстах (экология текстов) для построения правильных текстов знаний и запросов,

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

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

2.7.1. Алгоритм вычисления смысла текста. Определим алгоритм поиска смысла текста (вычисление смысла) следующим образом. Смысл понятия определен выше как совокупная запись термина понятия и его полной характеристики (определение, тип, вид, состав из слов и знаков, дата введения в БЗ). Каждый абзац - осмысленное высказывание - являет собой логическое выражение, или композицию терминов (термандов и термаций). Абзац является новым (по отношению к составляющим его частям) понятием, термин которого умалчивается или можно сказать подразумевается. Новые подразумеваемые понятия образуют иерархию входящих в него понятий. Текст состоит из абзацев, которые представляют внутри некоторого раздела текста логическое выражение (композицию) из подразумеваемых понятий. Образовано новое подразумеваемое понятие более высокого уровня. Оно поименовано термином, являющимся наименованием раздела. Процесс такого анализа текста завершается после рассмотрения всех разделов (или разделов более высокого ранга). В результате процесса такого разбора получается понятие, сопровождаемое названием всего текста. Имя текста задано явно (название статьи, книги или БЗ), а термин можно считать полностью определенным всей иерархией понятий или композицией понятий текста. К примеру, весь текст об информатике определяет это понятие, обозначенное словом «информатика». В предыдущем разделе определено понятие «информатика смысла».

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

Пора подвести общие итоги. Итак, каждый текст имеет смысл, который получается в процессе его осмысления (а алгоритмически - вычисления смысла). Причем считается, что весь текст состоит из определенных в тексте или в библиотеке терминов понятий (в лексиконе) и лексем различного типа. Вводные слова и термины еще предстоит изучать, хотя выше были высказаны предварительные соображения на этот счет. Представление эмоциональных тонкостей или принципа умолчания также подлежит исследованию. В чем состоит осмысление текста? Общее значение всего текста должно быть истиной, если не изучается ложное царство, что является уделом отдельного исследователя. Каждого интересует главным образом достижение истины. Значение истины выражает тот смысл, который можно получить в процессе поиска истинного значения. Например, чтение описания СеГ русского языка может составлять истину, если понятен процесс получения истины любого текста, удовлетворяющего правилам грамматики. В результате осмысления текста получается элементарное знание: <название текста, истина>.

2.7.2. Рекурсивность алгоритма вычисления смысла. Процесс осмысления текста приводит к формированию его смысла по правилам СеГ. Она предлагает следующий алгоритм или последовательность действий. Текст состоит из разделов, каждый из которых можно и нужно рассматривать как самостоятельный текст, поименованный некоторым термином. Такой рекурсивный подход к разбору всего текста закономерен. Каждый раз в конечном счете получается элементарное знание: <название раздела, истина>.

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

<название текста, истина> =

<название раздела 1, истина> и

<название раздела 2, истина> и

......................................................

<название раздела К, истина>.

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

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

<название раздела М, истина> =

<условное имя абзаца 1, значение абзаца> @

<условное имя абзаца 2, значение абзаца> @

.......................................................................

<условное имя абзаца Н, значение абзаца>.

@ обозначает одну из допустимых операций соединения абзацев (логическая операция). Для некоторых пар <условное имя абзаца А, значение абзаца> верно замечание, высказанное для пар <название раздела Р, истина>. Заметим, что связка @ здесь использована условно. Вместо нее может стоять любая связка, все зависит от структуры текста, состоящего из абзацев. Если абзацы перечислены альтернативно, то связкой будет «или». Тогда вопрос о смысле фрагмента текста будет разрешен в результате логического вывода, который приведет к истине, если хотя бы один из абзацев имеет значение истины, или ко лжи в противном случае.

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

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

Общий смысл текста знаний в БЗ выявляется в процессе ее ввода и отладки. Едва ли он представляет интерес, поскольку ввод знаний является самостоятельной емкой частью процесса ИП на основе знаний [Красилов97], и смысл знания изучен ранее. Для знаниеведа информация о смысле текста знаний важна в особенности в процессе его отладки. Выявление противоречий всего или части текста будет тем эффективнее, чем более полный смысл текста доступен знаниеведу или пользователю, создающему новую БЗ.

2.7.3. Универсальная грамматика и ее применение. Грамматику, которая должна явиться буфером между двумя различными ЕЯ, мы называем универсальной, она определяется полностью ФЯ Лейбниц, если не учитывать стандартную часть лексиконов. Он скрыт от пользователя и является внутренним языком Интеллсист для представления знаний, а используют его явно только знаниеведы и системные программисты. В разделе кратко рассматриваются применения универсальной грамматики.

СеГ разработана для построения инструментария ИП, которая обеспечивает создание Интеллсист, работающей на основе знаний и обеспечивающей пользователя ВМ решением его задач по исходному заданию, написанному на ЯПП. В основе нового инструментария лежат два понятия: лексикон и ИЛ [Красилов94б]. О лексиконе сказано выше. ИЛ является развитием классической логики, она скрыта от пользователя ИП. Формализм ИЛ автоматически учитывается при анализе фраз и предложений ЯПП. Можно сказать: «Мы и не подразумевали, что говорим с помощью средств ИЛ для передачи смысла», а смысл сказанного формируем по СеГ.

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

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

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

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

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

2.7.4. Универсальный язык и проблемы СеГ. Универсальная грамматика (СеГ описан как ФЯ Лейбниц) определяет универсальный язык.Знание СеГ не необходимо для пользователя, желающего решать свои задачи и проблемы с помощью ВМ. Формализм языка Лейбниц не сложен, но его знание совершенно не обязательно. Использование языка осуществляется через работу пользователя по меню инструментария Интеллсист, в котором полностью «спрятан» формализм. Пользователь может применять технические и логические средства ИП, не прибегая к помощи программиста. Передача точного смысла текстов в первую очередь необходима при вводе знаний в Интеллсист, а возможно и при общении между людьми. Подробное описание СеГ дается в руководствах по ИП и представляет самостоятельный интерес.

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

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

Вторая проблема аналогична предыдущей проблеме, она порождена использованием ударения в слове. Эта проблема рассматривается в разд.4.7.3.

Третья проблема связана с умолчанием контекста использования термина. В обычном письме или речи многое считается известным. К примеру, в любой фразе данного абзаца почти не один термин не определен. Однако читающий абзац может понять весь смысл текста. Проблема контекста для Интеллсист разрешается пока просто: для каждого термина контекстом является весь текст знания (помещаемого в БЗ) и текст запроса, вопроса или задания. Решение проблемы надо искать в увеличении возможности ВМ по памяти и быстродействию и в разработки алгоритмов анализа контекста. Некоторые соображения можно найти в разд. 4.7.2.

Четвертая проблема связана с максимальным использованием СиГ при определении смысла текстов. Например, некоторые местоимения являются ссылками на упомянутый ранее по анализируемому тексту термин. Оно чаще всего так и используется, как в этой фразе используется местоимение «Оно». Имеется набор других примеров использования рода, числа, падежа и частей речи, по которому возникают проблемы передачи знаний ВМ, но их удельный вес весьма мал.

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

Шестая проблема связана с написанием нерегулярных аффиксов (в особенности изменяющиеся суффиксы). Слова «замок», «замочек» и «замка» в СеГ являются различными терминами, хотя они обозначают одно и то же понятие. Словарь терминов значительно шире в СеГ по сравнению со словарем в СиГ, что создает богатство выразительных средств и методов для представления знаний. Замок может взаимодействовать с замочком или с замками. С другой стороны, анализ текстов ЕЯ для разработки лексикона чуть затруднителен. Аналогичная трудность возникает при формировании ответов на запросы по правилам СиГ (или при реализации алгоритмов перевода с одного ЕЯ на другой).

Сделан первый шаг в формировании СеГ, который подкреплен разработками Интеллсист, ряда программ анализа текстов и частных алгоритмов. Предстоит достаточно подробное описание СеГ (вместе с интерпретацией словаря стандартных терминов в СиГ) и более широкое внедрение ее возможностей.

Глава 3. Языки меню

Особое место в информатике занимает метод описания, построения, реализации и применения интерфейса в системе человек-ВМ. Уже внедрены в практику информатики методы картинок, пиктограмм, плавающих окон, виртуальных кнопок, движений мыши или джойстика и деревьев ветвления работ и подработ в системе. О направлениях формирования методов для реализации сценариев общения в системе человек-ВМ будем считать частично выясненным (может быть за исключением языка Пьеса [Красилов86а] для формирования текстов сценариев, см. разд.1.6). Можно сказать, что программирование здесь достигло больших высот. Интерфейс системы человек-ВМ развит так, что любой пользователь (даже ребенок) может не прибегать к руководствам по программным системам для выяснения действий, необходимых для решения его задач с помощью программ. Будем использовать имеющиеся методы, обеспечивающие пользователя удобными средствами общения с ИИС. Ведущее место в интерфейсе занимает метод общения с программой через меню. Здесь будут использоваться известные методы описания, построения и реализации меню, уделив основное внимание сущности работ и подработ для приближения пользователя к пониманию рациональных средств решения его проблем, а не к анализу средств и методов реализации (см. соответствующие разделы по программированию [Мейер82]). В этом смысле описание меню инструментария скорее напоминает руководство пользователя по Интеллсист, нежели инструкцию для разработчика интерфейса. Обычно инструкции ориентированы на конкретный ФЯ, поэтому построение меню целиком определяется такими инструкциями. Если с помощью Интеллсист создается программа многократного применения, то для реализации в ней диалога пользователь-программа необходимо применять БЗ «Интерфейс», которая должна в принципе именоваться, например, словами «Интерфейс Windows». Однако общие соображения об информатики меню частично будут рассмотрены. Некоторые особенности меню инструментария Интеллсист рассматриваются в данной главе. Подробное описание применения инструментария дано в Приложении к т.7.

3.1. Методы общения с программами

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

1.Метод меню, который является широко применяемым методом и при котором пользователюнакаждомшагеработывыдается запрос на понятном ему языке и дается возможность выбрать один из вариантов ответа. Этот метод хорош тем, что он легко реализуется и используется, аданные от пользователя, полученные с помощью меню, легко переводятся в ФЯ. К его основным недостаткам относится такой: невозможность задавать динамическую картину развития во времени какого-либо явления и уникальность каждой конкретной системы.

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

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

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

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

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

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

ЯПП - это либо запись на ФЯ, определеннаяв данной профессии, либо запись утверждений, определенных в ЕЯ по правилам СеГ. ФЯ - это часть языка Лейбниц, выраженная метапонятием «логическое выражение». Считается, что абзац содержит законченную мысль, формально представимую логическим выражением. Абзац может состоять из одного предложения или из нескольких предложений, представляющихутверждения о фактахили правила построения утверждений о фактах.

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

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

Методы и средства ведения диалога в системе человек-ВМ непрерывно совершенствуются в основном по следующим направлениям:

  • улучшение возможностей и качества технических средств (многоэкранность, цвет, четкость формулировок и др.);

  • уменьшение количества действий и манипуляций человека, участвующего в диалоге, в частности, использование ввода сообщений голосом;

  • увеличение информативности языка общения в системе (частотакадров, полнота использования языков и др.);

  • повышение уровня самообучения в процессе диалога на основе динамических подсказок;

  • сокращение времени ожидания реакции системы и путей для достижения искомой цели диалога;

  • расширение круга пользователей путем увеличения лексикона общения с ВМ как по составу, так и по значению используемых понятий;

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

  • в конечном счете, увеличение производительности труда пользователяв системе человек-ВМ.

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

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

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

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

  • пользователь-оператор применяет командный язык для управления потоками данных и знаний с некоторым их преобразованием,

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

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

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

  • системный программистиспользуетвопросно-ответные системы для поиска необходимых сведений о запуске Интеллсист,

  • знаниевед присматривается к генератору вопросов от Интеллсист для определения подходящего ответа с целью увеличения объема знаний.

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

- понятность для человека-пользователя,

- понятность для инструментария или Интеллсист,

- сохранение традиций при формировании средств диалога,

- обеспечение автоматического поиска ошибок,

- наличие средств самообучения для любого пользователя,

- обеспечение чувства удовлетворенности у пользователя.

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

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

  1. Описание меню на ЕЯ, которое должно быть ясным при первом знакомстве с возможностями манипулирования работами в системе. Метод предназначен для знакомства пользователя или для предписания исполнителю (или разработчику) меню на ВМ. Правда, такой метод потребует больших текстов и приведет к многим неясностям в той части, которая увязывает отдельные подработы между собой. Значительное число операций с окнами уже определены в программах построения меню. Этот способ использован в настоящей главе.

  2. Второй способ может оказаться точным и готовым для реализации. Его сущность состоит в использовании понятия ГЯ, в котором каждой вершине соответствует работа, а дуге - кнопка или пиктограмма, которые инициируют инцидентную дуге работу. Для реализации способа можно воспользоваться содержанием гл.5 и техническими средствами Интеллсист в разделе «Языки Интеллсист».

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

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

  5. Пятый способ описания меню связан с ФЯ. Примерами описания меню являются формальные языки турбо VISION в Паскале [Фаронов92] или в Дельфи [Основы96], ФЯ VIP в Галактике [Атлантис] и в некоторых других системах. Этот способ предназначен для программистов из числа профессиональных пользователей ВМ. Каждый ФЯ сопровождается транслятором, с помощью которого строится программа работы по меню.

  6. Для пользователя меню обычно показывается в картинках или окнах так, как построены все учебные пособия и руководства. Меню в таком случае описывается функционально и наглядно для ускоренного обучения работе в системе. Большинство руководств по программным системам (см. например, [Красилов99б]) написаны с помощью такого способа, они обеспечивают интенсивное обучение пользователя для работы в системе.

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

Воспользуемся седьмым способом описания меню, а остальные методы будут продемонстрированы либо здесь в т.2, либо в руководствах по Интеллсист. Первый способ пронизывает все описание языка меню. Остальные способы используется частично, поскольку необходима иллюстрация каждого метода. Пользователь может сам построить меню для своей СП, применяя БЗ «Интерфейс».

3.2. Основные работы в меню Интеллсист

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

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

2. Использование синтаксиса и семантики языка меню для передачи его системе в качестве основы автоматического построения интерфейса человек-ВМ.

3. Перечисление концепций и определений позиций меню и работ каждой позиции также составляет способ формирования меню.

4. Массив ступенчато перенумерованных позиций работ и подработ системы составит еще одну форму описания меню.

5. Формальное описание меню делается так, как описано в [Атлантис] и в WINDOWS. Это описание процедурными (прикладными) аксиомами сразу пригодно для трансляции и построения рабочих программ реализации меню.

6. Алгоритмы выбора работ и подработ в совокупности составляют форму описания меню для реализации.

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

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

1. Формирование структуры Интеллсист. В этом разделе выполняются следующие работы: задание пользователем параметров, форматов и режимов для выполнения работ; выбор класса проблем для разрешения; выбор или назначение формы заданий, формы отчета, реализации Интеллсист и БЗ. Сюда, в частности, относятся:

  • работы по языку Лейбниц - определение общих параметров и данных языка,

  • задание структуры памяти системы управления БЗ (СУБЗ) и БД (СУБД), связанное с инициализацией,

  • формирования основного (или стандартного) лексикона и основной (фундаментальной) БЗ каждой отрасли знаний,

  • настройка системы на требуемый профессионализм,

  • выбор способа задания запросов и форматов выдачи результатов.

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

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

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

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

5. Генерация БЗ по заданию заказчика на знание. Обучение Интеллсист знаниям (генерация БЗ - вторая фаза ИП), отладка, тестирование, верификация знаний (экология знаний). Работу выполняют знаниевед или специалист в данной области знаний.

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

7. Выбор или построение Интеллсист. Адаптация имеющихся Интеллсист, выбор (инсталляция) из библиотеки и построение лексиконов, БЗ и реализаций Интеллсист. Работы выполняют конечный пользователь или системный программист.

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

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

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

Клавиша

Рабочий режим

Комментарий

F1

контекстная справка

Shift-F1

контекстная справка элементов диалога или вход в режим указующей справки

F2

Сохранить файл

меню

Shift-F2

Добавить результат к файлу

Добавить и сохранить

F3

Открыть файл

сохранить

F4

До курсора

Сtrl-F4

Закрыть окно документа

Alt-F4

Закрыть окно

F5

Запомнить позицию

Alt-F5

Восстановить позицию/ Развернуть окно

F5

Распахнуть или восстановить окно

Shift-F5

Развернуть окно

Alt-F5

Свертка окна

F6

Переместить окно

копия-печать

Shift-F6

Изменить размеры окна

Ctrl-F6

Следующее окно

меню

Shift-Ctrl-F6

Предыдущее окно

сохранить

Alt-F6

Переключение главного окна на подчиненное окно

F7

По строчке

Alt-F7

F8

По абзацу

Ctrl-F8

Точка прерывания

F9

Трансляция (Отладка, Решение)

Alt-F9

Запустить компилятор

построить решение

Ctrl+F9

Исполнить программу (запуск компилятора - если нет нужного файла программы)

F10

Вход в меню раздела

Shift-F10

Вход в контекстное меню

Alt-F10

Вход в главное меню

F11

Вход в данные БЗ

синтез программы

Alt-F11

Вход в БД СУБД

F12

Открыть Лексикон

Alt-F12

Открыть Словарь

Сtrl-ESC

Меню Windows

Alt-TAB

Следующее главное окно

Shift-Alt-TAB

Предыдущее главное окно

Esc

Выход: на уровень выше

Enter

Исполнить

кнопку наготове

Использование клавиш в режимах выполнения работ и редактирования текстов:

Клавиша

Рабочий режим

Комментарий

Ctrl-P

Печать

Ctrl-Ins

Копировать

Shift-Ins

Вставить

Shift-Del

Вырезать

Ctrl-F

Найти

Ctrl-R

Заменить

Ctrl-A

Выделить все

Ctrl-TAB

Следующее окно

меню

Shift-Ctrl-TAB

Предыдущее окно

сохранить

Alt-ESC

Следующее главное окно

Shift-Alt-ESC

Предыдущее главное окно

Возможно Alt-цифра

Быстрый переход в нужный раздел

выход

Движение курсора на экране осуществляется стрелками:

вперед - 

назад - 

вверх - 

вниз - 

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

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

3.2.1. Работа с файлами. Работы с файлами должны быть в каждом корневом разделе. Список подработ приведен ниже. Он является классическим и реализован во многих системах. Перечень подработ таков:

1. Создать новый файл с указанным расширением.

2. Вызвать файл по выбранному пути. Открыть - частично заполненный файл вызывается для продолжения работ с Интеллсист.

3. Закрыть указанный файл.

4. Сохранить указанный файл. (Сохраните текст будущего разбора.)

5. Сохранить указанный файл с новым задаваемым именем.

6. Сохранить все указанные файлы. Если накоплены несколько файлов, то измененные файлы сохраняются все.

7. Предварительный просмотр файла перед печатью.

8. Печать содержимого файла. Для сохранения твердой копии лексикона его можно напечатать на бумаге или сохранить на диске.

9. Показ текущих файлов,

10. Выход в главное меню,

11. Выход из Интеллсист.

3.2.2. Справочная служба. Любая Интеллсист (как вообще любая программа) сопровождается средствами информирования пользователя о работах в системе, о накопленном материале (слова, термины, знания), о порядке работ. Наличие справочной системы является необходимым для любой программы. Раздел «Справка» Интеллсист позволяет:

  1. Искать необходимую справку по содержанию.

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

  3. Искать необходимую справку по всем фразам (с построением необходимой базы слов при первом вызове).

  4. Включать/выключать режим справки по указателю.

  5. Получить сведения о продукте.

Справочная служба позволяет разрешать вопросы пользователя по работе в Интеллсист. Особое место занимает процедура помощи пользователю по пиктограмме «?».

3.2.3. Сервис Интеллсист. Сервис является неотъемлемой частью любой информационной системы. Он содержит проверку орфографии (по лексикону) и грамматики по СеГ, называемую терминографией, индикацию словарей и терминов, рассматривать карточки библиотеки и статистику, устанавливать параметры работы в данном сеансе. Каждая конкретная помощь пользователю кратко поясняется следующим образом:

проверка орфографии (по лексикону) - соответствие использования терминов их характеристикам и значениями,

проверка грамматики по СеГ - соответствие использования композиций терминов правилам формирования фраз и абзацев,

индикация словарей для ручной проверки знаний или заимствование слов и терминов из словарей при составлении текстов знаний или запросов,

статистика по различным разделам Интеллсист, ее работы, исходным и выходным данным (текстам, массивам, таблицам и др.).

3.2.4. Параметры Интерфейса. К параметрам относятся следующее:

  • вид интерфейса,

  • общие свойства интерфейса,

  • управление сохранением документов,

  • обзор каталогов,

  • управление доступом в систему,

  • выбор шрифтов,

  • выбор цвета шрифтов,

  • управление правописанием.

Это краткий перечень работ, которые поясняются в руководствах конкретных версий.

3.2.5. Статистика Интеллсист. Статистика по системе и ее работе подключается из сервиса. Вызов статистики по разделам (после равенства должны стоять конкретные данные по конкретному запросу пользователя):

по материалу текстов (файлы с расширением .txt):

Число слов по буквам =

Число терминов заданной длины =

Число использования терминов в тексте

по работе МЛВ:

Размеры вывода =

Число применений правил =

Быстродействие логического вывода в ЛИПСах =

по содержимому Интеллсист (его файлов)

Размеры системы =

Используемая память =

Размер свободной памяти =

по содержимому БД (по таблицам - из СУБД)

Размеры баз данных =

Размеры таблицы =

по содержимому БЗ

Размеры базы знаний =

по лексикону

Размеры лексикона или число терминов =

Размеры словаря =

Число синонимов =

Число стандартных слов =

Число терминов по сортам =

Число терминов по типам =

Размеры всех комментариев =

по набираемому материалу (знания и запрос)

Размеры лексикона запроса =

Размеры словаря запроса =

Число синонимов =

по результату

Размеры результата =

по библиотеке

Число карточек =

Число карточек по разделам =

Статистические данные по решению задачи, вопроса или проблемы полезны для оценки сложности запроса.

3.2.6. Настройка Интеллсист. К настройке системы такие параметры или работы:

  • настройка на проблему,

  • настройка ресурсов,

  • выбор СУБД,

  • создание журнала санкционированного доступа.

Опять, краткий перечень работ, которые поясняются в руководствах конкретных версий.

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

3.3. Иерархия работ и подработ

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

1. Установка и инициализация Интеллсист.

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

3. Определение проблемной области. Интеллектуальное исследование связано с операциями (функциями и процедурами для моделирования), которые вводит или использует пользователь. К ним относятся операции над данными, правила подстановки, масштабы, преобразования.

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

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

6. Определение области запросов. Запросы могут быть представлены в форме вопроса, задачи или проблемы (фразы на ЯПП). При этом сама система классифицирует запросы по классам задач и, после получения решения, указывает на сорт запроса. Исключение составляет класс запросов на запоминание логического вывода. Его необходимо инициализировать по меню работ.

7. Определение области систем. Перед началом работы допускается вызов Интеллсист вместе с ее писанием и инициализацией. Если что-нибудь забыто, то можно запустить пример показа работы по формированию системы, структуры БЗ, Интеллсист и библиотеки.

3.3.1. Формирование структуры Интеллсист. Первая ведущая работа - это задание параметров, режимов, исходных утверждений и структуры памяти СУБЗ. Формирование структуры Интеллсист в большинстве случаев не обязательно, работает принцип «формирование по умолчанию». Эта работа требует от пользователя определенной квалификации. Перед началом работы допускается вызов Интеллсист вместе с ее описанием и инициализацией. Начальная инсталляция программ делается при запуске. Вызов образов и установка параметров систем необходима перед началом работ, если система не установлена ранее и если не принят принцип «по умолчанию». Инициализация БЗ и Интеллсист осуществляется для установки начальных параметров данных и программ (или по умолчанию). Инсталляция из библиотеки состоит из организации каталога, введения формата карточки и создания файлов. При отсутствии библиотек необходимо задать имена и параметры хранилища картотеки и содержимого полок библиотеки. Работы по созданию рабочей структуры Интеллсист включают следующие разделы.

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

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

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

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

  • свернуть результат в формулу или утверждение (построение единого текста без перечисления),

  • исключить из результата печать исходных фактов (известные факты повторить важно для идентификации или привязки новых фактов),

  • результаты выдавать словами (заменить знаки их синонимами).

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

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

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

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

Шестой класс проблем - построение или синтез программы - связан с настройкой системы через набор ряда атрибутов:

  • язык программирования, для чего выделены объектные языки Паскаль, Си++, Ада и язык Ассемблера,

  • вызов программы компилятора (с параметрами),

  • выбор размера дробления текста программы на блоки (например, по 64К),

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

  • выдача схемы, или текста, или текста и схемы готовой программы.

Седьмой класс проблем - информационный синтез системы - настраивается на выдачу результатов:

  • текстами (по умолчанию),

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

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

  • а также раздельно схемами и пояснительными текстами.

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

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

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

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

3. Выбор формы отчетов. По результатам логического вывода по запросу печатается окончательный результат либо в форме текста (по умолчанию), либо по заведомо составленному шаблону, либо с помощью ФЯ. В некоторых случаях результатами являются заполненные таблицы, они могут печататься с помощью программ СУБД.

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

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

6. Настройка на системы программирования. Если поставлена цель создания программы (или подпрограммы для библиотеки программ), то систему необходимо настроить на объектный язык программирования. Ими могут быть Паскаль, Си, Ада или язык ассемблера.

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

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

3.3.2. Работа с языками в Интеллсист. Интеллсист допускает работы по формированию и использованию ФЯ для создания генераторов, анализаторов и трансляторов текстов, расширения ЯПП под нужды пользователя. Работа с ФЯ является специальной, ориентированной на системного программиста или знаниеведа, хотя после приобретении некоторых навыков каждый пользователь сможет применять перечисленные ниже подработы. Работа с языками - задание текстов формализма ЯПП и ФЯ - связана с построением графа распознающей грамматики, построением порождающей грамматики и таблиц символов. Построение текстов ЯПП может потребовать перехода к работе по формированию лексикона, так как термины ФЯ могут быть использованы при формировании запросов и при передаче знаний через СУБЗ. Вторая работа сложна тем, что она может вызвать побочные работы по разработке некоторых семантических подпрограмм преобразования текстов в структуры представления знаний в СУБЗ.

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

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

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

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

5. Язык пути логического вывода. Формирование языка пути логического вывода связано с заданием определений понятий и печатью этих определений в качестве итогов работы Интеллсист в форме, пригодном для обеспечения читаемости пути логического вывода. Путем-результатом является план поиска пути в «лаберинте».

6. Сценарий работы с Интеллсист. Если все работы с Интеллсист в ее конкретном применении рутинны, то целесообразно однажды запомнить последовательность действий, представить ее в определенной форме и следовать по «запланированному» маршруту. Языки сценариев для работы инструментария включают подработы по созданию последовательности применения класса Интеллсист к запросам, а для работы Интеллсист – к технологии работы пользователя с системой. Построение композиции Интеллсист (ее можно именовать интеллектуальное макропрограммирование) и сокращение числа нажатий на клавиши - это пути повышения производительности пользователя. Сценарий состоит из отметок последовательности обращений к некоторым Интеллсист с некоторыми запросами или к подработам самой Интеллсист.

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

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

Термины понятий добавляются в лексикон из:

  • чернового наброска лексикона, полученного после сборки,

  • файла стандартных терминов (встроенный словарь),

  • фундаментальных БЗ (по заказу пользователя),

  • БЗ конкретных предметных и проблемных областей (по конкретной специальности),

  • областей знаний самого пользователя (при наборе личного лексикона),

  • запросов пользователя и автоматически в процессе работы Интеллсист из рабочих терминов, скрытых от пользователя,

  • и других лексиконов.

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

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

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

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

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

Формализм записи лексикона не пригодится, если набор его осуществляется по меню. Главной работой при создании лексикона является работа с окнами, которые подсказывают пути перехода от одного режима к другому. Оконный набор генерирует текст знаний или запроса в выделенном файле с показом на экране дисплея. При печати или показе набор терминов из слов и знаков, помещается между знаками ~ (~возможн_о +~) с выделением у слов основы и конца, которые отделяются подчеркиванием (_). По основе слова осуществляется идентификация слова, конец слова служит для грамматической вариации слова. Из лексикона можно выбрать термин и просмотреть его наполнение. Из словаря можно выбрать подходящее слово или просмотреть его заполнение. Для анализа понятия можно просмотреть его характеристику по терминологическому словарю. Можно вызвать все синонимы данного понятия.

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

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

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

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

2. языки различного назначения (БЯ) - файлы, содержащие машинные представления порождающих или распознающих грамматик, построенных для работы Интеллсист при решении лингвистических заданий;

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

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

5. БЗ - файлы, содержащие знания из различных областей знания и представленные текстами, в кодах Интеллсист или на ФЯ Лейбниц;

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

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

8. картотека (БК) - один или несколько файлов с наборами карточек, один файл является стандартным для данной библиотеки, а остальные содержатся для справки;

9. тексты документов (БТ) - файлы, содержащие различные текстовые документы по Интеллсист, черновики с текстами или с исходными знаниями, находящихся в работе.

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

Создателями библиотек являются авторы Интеллсист (исходный пакет), пользователь или библиотекарь (например, знаниевед). Библиотека может создаваться «от нуля» или автоматически пополняться через команды-операции меню. Исключение из библиотеки карточки или документа автоматически исключает документ или карточку соответственно.

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

1. название раздела библиотеки,

2. инвентарный номер - внутренняя нумерация карточек по порядку,

3. автор(ы) документа,

4. краткое название документа,

5. размер документа в Кб или б,

6. фирма-источник,

7. дата введения в библиотеку,

8. дата модификации,

9. дата последнего использования,

10. аннотация документа (возможно с УДК),

11. лицензия (номера) и может быть пуст,

12. версия документа, состоящая из четырех номеров по данному далее смыслу: 1-фундаментальный, 2 -номер редакции, 3-месяц и 4-год выпуска,

13. доступ-путь к файлу (чтение-изменение-запись),

14. скрытый пароль автора,

15. имена пользователей,

16. скрытый пароль пользователей,

17. отметка о выборе материала,

18. указатель адреса в дереве.

Работа с библиотекой включает следующие основные действия:

  1. ведение картотеки;

  2. удаление, замена или помещение в библиотеку;

  3. вызов документа по карточке;

  4. просмотр карточек и файлов;

  5. поиск документов в библиотеке;

  6. просмотр карточек и файлов;

  7. упорядочивание элементов раздела библиотеки по алфавиту или по предметам;

  8. статистическая обработка библиотечных данных;

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

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

3.3.5. Формирование БЗ. БЗ создается только квалифицированными специалистами. Это не значит, что остальные пользователи исключаются из работ по созданию БЗ. Через запросы можно создавать фрагменты БЗ или БЗ целиком. Передача таких БЗ для тиражирования становится весьма сложным делом, но пригодным для экспериментальных работ со знаниями. Ответственность создателя БЗ высока, поскольку эта работа подразумевает ИП класса задач, характеризующиеся тщательным подбором понятия, их терминов и характеристик, а также исходных соотношений понятий. Отличие БЗ, созданной в этом разделе библиотеки, от БЗ, созданной в разделе запросов, заключается в методах окончательного машинного оформления файлов со знаниями (упаковка и маркировка). Созданная в этом разделе библиотеки БЗ помещается вместе с карточкой. БЗ бывают встроенная, фундаментальная, по области знаний, пользовательская по запросам

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

Для работы «с нуля» исследуется файл с книгой (или другой документацией), по которой можно автоматически составить словарь терминов. С помощью этого словаря и словаря из стандартных терминов, а также словаря из слов можно составлять тексты знаний, если знаний в книге недостаточно. Создается лексикон. Если БЗ уже создавалась, то вызывается файл с набросками БЗ и продолжается редактирование, при котором также можно воспользоваться словарями. Так или иначе, составленный текст знаний может транслироваться для выявления ошибок различного свойства. Эти процедуры можно назвать контрольными запусками или отладкой знаний. В процессе отладки можно обращаться к словарям из терминов или слов для исследования (или напоминания) их характеристик. Для ориентации по тексту можно реализовать поиск по тексту. Для введения новых терминов необходимо перейти в раздел «Лексикон» и пополнить или исправить состав лексикона, а затем вернуться в раздел БЗ для продолжения работ над БЗ. Для введения новых данных также необходимо перейти в раздел «Лексикон» и осуществить заполнение БЗ фактами.

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

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

2. Ввод текстов и данных для решения задачи с помощью СП.

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

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

5. По результатам можно реализовать вызов формы отчета и преобразование результата по форме.

Конструирование языка запросов важно для определения формы самого запроса. Имеются стандартные формы: фраза (возможно с формулами), анкета или шаблон. Другие формы устанавливаются с помощью распознающих формальных грамматик и шаблонов для ответов. Запросы могут вводиться фразами ЯПП. Фразы формируются на ЯПП. Анкета состоит из вопросов и предполагаемых ответов пользователя или форм для ответов. Что найти определяет пользователь. Шаблонный запрос представлен в заданной форме с возможным заполнением пользователя окон необходимой информацией.

3.3.7. Формирование новой Интеллсист. Формирование Интеллсист предназначено для создания новых систем из имеющихся в библиотеке. Имеется шесть фундаментальных операций композиции двух и более Интеллсист. Эти операции рассмотрим подробнее. В связи с проблемой формирования Интеллсист интересен вопрос о создании БЗ, с помощью которой можно формировать программы Интеллсист по запросам пользователей (универсальная Интеллсист - одна из операций формирования). На этот вопрос нужно ответить утвердительно. Источником идеи формирования Интеллсист является фундаментальная книга по алгоритмике [Марков84], являющейся вторым переработанным изданием книги Маркова «Теория алгорифмов», выпущенной в 1954 году. Итак, рассмотрим операции над Интеллсист, которые совпадают с операциями формирования новых алгоритмов. При этом предполагается, что используется либо одна БЗ, либо несколько БЗ для некоторых предметных и проблемных областей. Излагаемые ниже операции образуют фактически язык проектирования систем.

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

ИНТЕЛЛСИСТ(Л1, запрос) = ИНТЕЛЛСИСТ(Л2, запрос),

где ИНТЕЛЛСИСТ - программы Интеллсист с лексиконом Л, работающая над запросом «запрос» и логически выводящая результат ИНТЕЛЛСИСТ(Л, запрос), «запрос» - конкретный запрос, Л1 > Л2. Расширение лексикона создает новую систему. Причем лексикон может быть расширен в БЗ при ее пересмотре. Расширение БЗ может привести к нарушению равенства.

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

ИНТЕЛЛСИСТ1(Л, запрос) = ИНТЕЛЛСИСТ(Л, ИНТЕЛЛСИСТ(Л, запрос)).

Интеллсист с именем ИНТЕЛЛСИСТ применяется один раз к запросу «запрос» в лексиконе Л (или, вообще говоря, в БЗ), а второй раз - к запросу, который является результатом первого применения. Число повторений может быть произвольным, но конечным.

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

ИНТЕЛЛСИСТ1(Л, запрос) = ИНТЕЛЛСИСТ(Л, запрос1) ^ ИНТЕЛЛСИСТ(Л, запрос2).

Интеллсист с именем ИНТЕЛЛСИСТ применяется один раз к запросу «запрос1» в лексиконе Л, второй раз к запросу «запрос2», а результаты соединяются в один общий результат. Число соединений может быть произвольным, но конечным.

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

ИНТЕЛЛСИСТ1(Л, запрос) = если ИНТЕЛЛСИСТр(Л, запрос),

то ИНТЕЛЛСИСТ2(Л, запрос), иначе ИНТЕЛЛСИСТ3(Л, запрос).

Результат новой Интеллсист равен результату применению ИНТЕЛЛСИСТ2 к запросу, если распознаватель вывел истину, или равен результату применению ИНТЕЛЛСИСТ3 в противном случае.

Композиция. Эта операция напоминает операцию повторения, но использует различные Интеллсист. Формально операцию можно представить так:

ИНТЕЛЛСИСТ3(Л, запрос) = ИНТЕЛЛСИСТ2(Л3, ИНТЕЛЛСИСТ1(Л2, запрос)).

Последовательно применяются две Интеллсист, вначале применяется ИНТЕЛЛСИСТ1, а затем к результату ее применения применяется ИНТЕЛЛСИСТ2. Обе применяемые Интеллсист могут использовать различные лексиконы.

Универсальная Интеллсист. Об этой операции сделана заметка вначале раздела. Формальная запись имеет вид:

ИНТЕЛЛСИСТ(Л, запрос) = ИНТЕЛЛСИСТу(запись БЗ, запись запроса),

где запись БЗ и запись запроса - описание БЗ (вместе с лексиконом) и запроса на некотором известном системе языке. Под БЗ понимается совокупность всех знаний относительно ИЛ, ЯПП, структуры памяти Интеллсист (внутреннее представление элементов БЗ) и др., что обеспечивает передачу всех сведений, которые потребовались при создании Интеллсист.

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

3.3.8. Системные работы. Выход из системы по окончании работ осуществляется выполнением этой работы, или нажатием клавиши Esc, или нажатием двух клавиш Alt-x. Кроме выхода имеются средства для работы системных программистов (авторов систем) по развитию средств ИП (инструментарий, Интеллсист или БЗ). Эта часть скрыта от пользователя. БЗ - это информационная модель предметной и проблемной областей, она отражает свойства реального пользовательского мира и включает лексикон терминов понятий и их значений из БД. БЗ в ИП создаются проще, нежели наборы продукций для ЭС.

3.4. Проектирование работ для меню

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

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

ввод начальных условий (или данных), которые определяют состав работ СП,

представление о выходных данных, которые определяют итоги работы СП,

общее представление об алгоритмах реализации решения задачи (вместе с промежуточными данными),

преобразование исходных данных в конечные или выходные данные,

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

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

Ставится проблема - построить распределение усилий по созданию алгоритма реализации преобразования средствами БЗ и ЯПП и взаимодействия с проектируемой программой.

Меню записывается одним из предложенных в разделе 3.2 способом, проверяется на корректность методом проведения «игр» и реализуется записями на ЯПП с использованием терминологии БЗ «Интерфейс». Затем осуществляется отладка, испытание, верификация и тестирование сконструированной программы с помощью Интеллсист и указанной БЗ.

3.5. Пиктографические меню

Меню может реализовываться в форме оконной, пиктографической, кнопочной и анимационной техники с рисунками. Рассмотрим вторую форму. Управление работами может производиться путем указания мышью и нажатия клавиши. Каждая работа выбирается по меню или, если нужно короче, нажатием на выделенные кнопки. На современных ВМ имеется много форм исполнения меню. Здесь указаны только основные. Совокупность кнопок быстрого набора образует пиктографическое меню. Компьютерные игры предусматривают весьма красочные пиктограммы. Для работы с Интеллсист принят строгий режим использования кнопочных пиктограмм.

3.6. Общая характеристика других работ

К другим относятся работы, которые допускает WINDOWS и другие имеющиеся системы. До обычного применения Интеллсист можно, а иногда целесообразно, войти в Редактор для создания текстового файла с набросками знаний или запросов, со словарями из слов или терминов или в систему программирования для формирования программистами библиотеки подпрограмм для применения пользователями. До обычного применения Интеллсист можно скомпилировать тексты по имеющимся текстовым файлам для создания черновика БЗ. Это только образцы работ, которые можно выполнить до применения Интеллсист. Аналогичное перечисление можно дать на работы по оформлению отчетов по итогам применения Интеллсист. Все результаты прогонов Интеллсист накапливаются в файлах. По окончании взаимодействий с Интеллсист можно приступить к созданию полного отчета с построением заключения или выводов.

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

3.7. Инсталляция программ

Исполняемые программы и документация хранится и распространяется на CD-ROM. Среди документов имеются известные файлы readme.txt, которые содержат экспресс информацию о работе с диском. Содержимое на дисках может инициироваться автоматически. Кроме информационных файлов имеются файлы setup.exe, выполнение которых обеспечит инсталляцию всего инструментария Интеллсист.

Для информации пользователя предусмотрена подсказка, которая вызывается нажатием клавиши F1. Иллюстрацией подсказки является список, приведенный в Приложении 1.

Глава 4. Язык Лейбниц (формальное представление знаний)

Язык Лейбниц является грамматикой универсального языка, способного обслужить все ЕЯ, а точнее ЯПП, базирующегося на передачи смысла текстами в алфавите ASCII, с целью передачи знаний и запросов для Интеллсист. Он выполняет функции промежуточного языка между ЯПП и ВМ.

Главное из истории языка. Задача понимания исторического происхождения языка намного облегчена, поскольку многие информатики и математики-лингвисты (так можно сказать об ученых, которые сближали ЕЯ и ФЯ) занимались формированием самых различных грамматик, обзор которых дан в [Логический98]. Здесь этот обзор не повторяется, но лишь указывается на главные отличия подхода СеГ и исследованных подходов. Первое отличие указанного обзора от приводимого здесь состоит в том, что в СеГ выделено понятие термина. Это позволило приблизиться к пониманию смысла текстов и указать на первичную основу для вычисления смысла всего текста. Второе отличие состоит во введение в рассмотрение понятия синонима термина, что позволило учесть многозначность слов. Третье отличие состоит в рассмотрении терминов с абстрактным смыслом, что обеспечило охват проблем неопределенности и поиска смысла терминов. Четвертое отличие состоит в отказе от фиксированной логики и ориентации на любую логику пользователя, если она задана своими аксиомами и правилами вывода. Кроме этого, в СеГ дана возможность применения многозначных логик и предикатов любого порядка. Обобщены многие математические понятия, например, функции и предикаты понимаются одинаково. Пятое отличие состоит в понимании истины текстов. Считается потенциально, что любой текст истинен изначально. А далее работает алгоритм выявления противоречий для практического опровержения исходного положения об истинности текстов. Шестое отличие состоит в принятии рассудительных языков наравне с командными языками, что обеспечило связь новой системы с накопленными человеком знаниями. Наконец, седьмое отличие состоит в естественной формализации понятия знание, что отсутствует у авторов различных сопоставлений ЕЯ и ФЯ, а предлагаемые языки не поддерживает главную цель применения ВМ для ввода и обработки знаний. Обширность ЕЯ зиждется на большом числе логик, пренебрежение этим обстоятельством приводит в прокрустово ложе, в котором всегда становится не очень уютно. Одно ограничение из прошлых исследований принято - это ориентация на ограниченность лексикона ЕЯ, определяемую только профессиональностью перерабатываемых знаний.

Поскольку изучение истории вообще не является целью данного изложения информатики и, учитывая самостоятельность исторического исследования, только что сказанным и ограничивается экскурс в историю машинной лингвистики. В основе построений языка лежит фундаментальное понятия пары имя-значение, заложенное Фреге [Бирюков65, Фреге77]. А выше перечисленные отличия являются техническими приемами устранения трудностей в понимании ЕЯ и использования знания, накопленного в информатике за 50 лет.

Цель языка. Предлагаемый вниманию читателя ФЯ Лейбниц предназначен для описания структур БЗ при создания и генерации Интеллсист, для заполнения БЗ и записи запросов после правильной трансляции исходных текстов, написанных на ЕЯ или ЯПП. Труды Лейбница заложили логические основы для применения ВМ в различных областях деятельности человека. Именно в связи с этим язык носит имя Лейбниц. Язык определяет:

  • средства записи понятий с их характеристиками и логических выражений,

  • средства записи сопутствующих конструкций,

  • внешнее представление знаний, которые могут пополняться,

  • внутреннее представление запросов пользователя,

  • ограничения и ошибки, которые обнаруживает транслятор ЕЯ,

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

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

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

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

Язык построен на базе синтаксиса имеющихся языков программирования (как источника накопленного знания в информатике) и представления знаний всех видов. Для знакомого с языками программирования все конструкции языка Лейбниц будут ясны после первого прочтения. Алгол 68, Паскаль и Ада, исключая командные части этих языков, - вот примерный перечень языков программирования, многие конструкции которых послужили прецедентами конструкций языка Лейбниц. Они обеспечивают преемственность знаний в информатике, формируют единый подход при создании систем автоматизации построения БЗ и поддерживают хороший уровень представления данных. Язык Лейбниц является ФЯ внутреннего представления знаний о предметной и проблемной области, именно поэтому знание ФЯ Лейбниц пользователем не обязательно. Пользователь обязан знать ЕЯ и СеГ русского языка. Знание СеГ полезно пользователю, если он желает писать содержательно, со смыслом.

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

Структура элементарного знания включает следующие атрибуты:

  • термин, как внешнее имя данного или понятия,

  • паспорт типа данного - структуру конкретного данного,

  • значение, которое является внутренним представлением смысла данного или объекта,

  • ссылку на текущее значение,

  • ссылку на дату.

Сущность рассматриваемого языка сводится к определению средств общения в системе человек-ВМ, где реализуется лингвистическая цепь:

Естественный язык -> Формальный язык -> Естественный язык

ЕЯ (период ввода знаний и запросов) ФЯ (период печати итоговых решений) ЕЯ

В начальной стадии конструирования цепи рассматривается первая фаза - фаза ввода знаний и запросов и построение ответа. Вторая фаза - фаза вывода из памяти получаемых решений на ЕЯ - остаетсяне рассмотренной в полном объеме, без учета СиГ. Если знания были не полны (отсутствие исходных данных), то проблема ставится так: построить средства перевода текстов (таблиц и рисунков, вообще говоря) ЕЯ на ФЯ представления алгоритмических знаний. К ФЯ относятся известные языки: Pascal, Ada, С++ и др. К ФЯ причисляется язык логических выражений (фрагмент языка Лейбниц). Совокупность ФЯ определяет лингвистический багаж ВМ. Онреализуется на ВМ полностью, если решаемая проблема помещается в выделяемых ресурсах. ЕЯ - лингвистический багаж человека. Данный ниже формализм содержит грамматические категории синтаксиса ЯПП - грамматические категории СеГ. Они даются также в описании ФЯ Лейбниц.

Назначение языка. Язык обеспечивает поддержку изобретания, проектирования, разработки и сопровождения экземпляров Интеллсист, БЗ и запросов, формализуя современные методы информатики:

  • выбор формы имен данных и понятий,

  • создание лексикона данной области знания (методы изобретания БЗ),

  • представление данных, множеств данных и знаний,

  • логический и технический контроль ввода данных и знаний,

  • рекурсивное, объектно-ориентированное, структурированное, логическое, техническое, управляемое и архивированное представление данных и знаний (методы поддержки проектирования БД и БЗ);

  • модульное, блочное, последовательное, сверху вниз и снизу-вверх, микро и макроструктурированное представление (методы поддержки разработки БД и БЗ);

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

Язык применяется для генерации системы управления БЗ и для работы Интеллсист. Язык используется знаниеведом и системным программистом.

Метод описания языка и синтаксические обозначения. В качестве формализма для описания использован язык Марков (см. разд. 1.7). Как уже было упомянуто, граф языка Лейбниц дан в Приложении 6. Структура формального описания в каждом пункте включает разделы: назначение, синтаксис, ограничения синтаксиса, семантику и примеры. Назначение - это описание главных целей излагаемой конструкции, синтаксис - это правила для формального построения конструкции, ограничения синтаксиса - это наиболее важная часть прагматики, семантика - это смысл определяемой конструкции, примеры - это иллюстрация конструкции формальными или неформальными записями. (Последние два раздела могут быть опущены.) Итак, еще раз. Раздел назначения указывает общий смысл вводимого понятия языка. Раздел синтаксиса вводит формальное определение символьных конструкций. Раздел ограничения синтаксиса вводит прагматические указания на использование конструкций, порождаемых синтаксисом. Семантика указывает интерпретацию соответствующей конструкции, способ получения значения, пути определения смысла конструкции. Примеры иллюстрируют вводимое понятие или конструкцию. Иногда примеры сопровождаются комментариями.

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

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

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

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

Лексикон. Лексикон (первая часть БЗ) состоит из терминов или обобщенных фактов, часть из которых определены только терминами, а другая часть являются фактами, используемыми в выражениях. Лексикон включает все лексемы из слов и знаков, а также определения терминов. Для внешнего представления значений используются лексемы: числовые, символьные, строковые и т.п. Комбинации этих лексем может образовывать составные или структурные значения (агрегаты). Внутреннее представление лексем должно соответствовать их внешнему представлению, если не оговорена допустимая точность представления. Терминологическим словарем Интеллсист является лексикон, который задается специалистом в данной области знания, знаниеведом или пользователем в процессе ввода знаний или запросов в систему. Этот словарь обеспечивает однозначный перевод знаний с ЯПП на ФЯ.

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

Классификация ошибок. Знания передаются от человека к человеку знаками, различными языками, понятиями, средствами тиражирования, теоретическими выкладками, программами и разнообразными системами. Аналогичные средства используются и для передачи знаний на ВМ. Создание любого представления знаний осложняется внесением в них ошибок, что является средством их «загрязнения». В связи с этим возникла необходимость ввести понятие экологии знания и осознать причины этого «загрязнения» (см. т.7). Обычно выделяют ошибки следующих классов (ниже в скобках указаны причины появления и метод устранения ошибок на ВМ):

  • синтаксические ошибки (нарушение правил грамматики СеГ или ФЯ обнаруживаются автоматически по правилам СеГ);

  • лингвистические ошибки (неправильное использование характеристик терминов обнаруживается автоматически по таблицам);

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

  • семантические ошибки (нарушение контекстных условий при использовании понятий обнаруживается автоматически по правилам и лексикону);

  • прагматические ошибки (нарушение количественных ограничений на те или иные части текстов обнаруживается автоматически подсчетом);

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

  • системные ошибки (нарушение в использовании вычислительных и других средств общения обнаруживается автоматически по таблицам);

  • предметные ошибки (неправильное использование элементов БД и БЗ обнаруживается автоматически по правилам и свойствам данных);

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

  • локальные противоречия (часть текста противоречит знаниям в базе обнаруживается при внутреннем логическом анализе текстов);

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

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

  • полнота знания (разрешение запросов не состоит из фактов, что обнаруживается методом решения логического уравнения).

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

4.1. Формальное определение ЯПП

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

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

Синтаксис

язык профессиональной прозы: абзац , конец абзаца ;

язык профессиональной прозы , абзац , конец абзаца.

абзац: запись на языке Лейбниц.

конец абзаца : пустая строчка.

запись на языке Лейбниц: запись утверждения ;

запись на языке Лейбниц , запись утверждения.

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

утверждение: последовательность обозначений понятий.

конец утверждения: символ точки ; символ точки с запятой.

обозначение понятия: термин; литерал.

комментарий: символ тире , символ тире , последовательность символов ;

комментарий последовательность символов конец комментария.

термин: элемент термина; термин , возможный пробел , элемент термина.

элемент термина: словоЯПП ; знак; литерал.

определяемый термин: элемент определяемого термина; определяемый термин , возможный пробел , элемент определяемого термина.

элемент определяемого термина: слово ; знак; литерал.

новый термин: ~ определяемый термин ~ возможный комментарий.

знак: не буквы и не цифры.

словоЯПП: буква ;слово , буква ; слово , цифра.

слово: база слова ; база слова , символ подчеркивания , конец слова.

база слова: словоЯПП.

конец слова: словоЯПП , цифра ; конец слова , словоЯПП ; конец слова , цифра.

пустая строчка: пробелы.

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

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

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

Семантика

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

Каждое утверждение состоит из терминов лексикона или некоторых избыточных понятий. Кроме словных терминов утверждение может содержать данные, записанные в форме лексем языка Лейбниц. Некоторые данные могут изображаться словными терминами. Термины бывают стандартными (общеупотребительными), базовыми из БЗ или пользовательскими, которые вводит сам пользователь. Определяемый термин записывается строчкой в символах ~, он вносится в лексикон. Стандартные термины указаны в Приложении, их определения и характеристики содержатся в стандартном файле, который вызывается в процесс подготовки Интеллсист к работе. Литералы предназначены для представления имен и значений, на которые ссылаются имена.

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

Примеры записей на ЯПП:

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

~решение квадратного уравнения~:

найти Х, такой, что Х*Х - 25*Х + 3.5 = 0.

Примеры комментариев

--Это комментарий, т.к. строчка начинается с двух дефисов,

---------------------- только два первых дефиса важны для комментария,

-- для передачи комментария в Лейбниц-текст.

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

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

4.1.1. Прагмы.

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

Синтаксис.

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

параметр: ( список аргументов ).

аргумент: логическое выражение.

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

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

Пример

интерфейс(Вывод).

подавлять(ссылка на таблице, ссылка на массив, виртуальная скорость).

листинг(включить). листинг(выключить).

Мир смыслов пользователя

4.2. Лексемы

Для записи лексем используется набор символов клавиатуры:

  • прописные и строчные буквы русского и латинского алфавитов,

  • цифры,

  • специальные и дополнительные символы,

  • символ пробела,

  • кодовые символы, набираемые специальной комбинацией указанных символов.

Из таких символов создаются лексемы по правилам языка Лейбниц.

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

Лейбниц-текст состоит из текстов одного или нескольких абзацев. Текст описания структуры БЗ и запросов - это последовательности лексем, каждая из которых состоит из символов. Слова также являются лексемами. Некоторые лексемы выражают сами себя, другие - являются частями терминов. Ниже рассматриваются правила для построения лексем. Лексемами являются односимвольные или многосимвольные ограничители, числа, выделенные символы, строки (константы) и термины (в частности, зарезервированные слова). Конструкция терминов уже рассмотрена. Конструкции ограничителей рассматриваются по мере необходимости, например в выражениях. Ограничители являются также терминами и средством для разделения словных терминов, если они представлены знаками. Ограничители также указывают на те действия, которые реализуются над именами или значениями терминов. Ограничители обеспечивают целостное восприятие всего текста. В Приложении 1 даны списки всех терминальных символов языка в виде сводки их кодов, изображений и наименований. Некоторые ограничители могут быть представлены только специальными зарезервированными словами, поскольку на традиционных клавиатурах использовано ограниченное число символов. С другой стороны, словные обозначения ограничителей нагляднее и способствуют пониманию текстов.

Синтаксис.

лексема: простое имя ; литерал ; дата ; время , агрегат литералов ;

ссылочный литерал.

литерал : символьный литерал ; логический литерал ; числовой литерал ;

строковый литерал.

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

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

Примеры.

идет дождь -- простое имя или термин,

21 сентября 1895 года -- дата,

3 часа 28 минут 48 секунд -- время,

nil-- ссылочный,

(1, 2, 3, 4, 5) -- агрегат массива,

[Петров, 35, 1500, “м”] -- агрегат записи,

{25, 35, 45, 55} -- агрегат множества,

«а» -- символьный литерал,

истина -- логический литерал,

378.49 -- числовой литерал,

«слово» -- строковый литерал.

4.2.1. Символьные литералы.

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

Синтаксис.

символьный литерал: « знак »; код символа.

знак: пусто;пустой символ ; графическийзнак.

пустой символ: «пробел».

код символа: #целое.

пусто: .

Ограничения синтаксиса. Пробел между кавычками задается пропуском одной позиции символа. Пробел в синтаксической форме не принимается во внимание. Символ кавычки может задаваться в кавычках указанием двух кавычек и восприниматься как один символ кавычки. Любой символ может задаваться кодом символа после знака #. Код в кавычках уже не является символьным литералом.

Семантика. Графический символ запоминается своим внутренним кодом в соответствии с Приложением 1. Он представляет значение символьных величин. Смысл символьного литерала определяется его написанием.

Примеры. «а» -- символ буквы а,

«» -- пустой символ,

««»» --символ кавычки, левая и правая кавычки,

-- не различаются своими кодами,

#123 -- код символа.

4.2.2. Логические литералы.

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

Синтаксис

логический литерал: ложь ; истина.

пользовательское логическое значение: термин.

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

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

Примеры.

ложь, истина -- константные лексемы логических величин,

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

4.2.3. Числовые литералы.

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

Синтаксис

числовой литерал: число.

число: целое ; десятичное число ; десятичное число с порядком ;

число с основанием ; кардинал.

целое: цифра ; целое , цифра.

десятичное число: целое , символ точки , целое.

десятичное число с порядком: целое , разделитель порядка , порядок ;

десятичное число , разделитель порядка , порядок.

разделитель порядка: e ; E.

порядок: целое ; символ плюс , целое ; символ минус , целое.

число с основанием: основание # целое # ; основание # десятичное число #.

основание: 2 ; 3 ; 4 ; 5 ; 6 ; 7 ; 8 ; 9 ; 16-цифра.

цифра: 0 ; 1 ; 2 ; 3 ; 4 ; 5 ; 6 ; 7 ; 8 ; 9.

16-цифра: цифра ; A ; B ; C ; D ; E ; F.

кардинал: омега целое ; алеф целое.

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

Семантика. Каждый числовой литерал переводится во внутреннее представление в соответствии с традиционными алгоритмами перевода. Смысл числового литерала считается известным пользователю. Шестнадцатеричные цифры понимаются как следующие факты:A = 10; B = 11; C = 12; D = 13; E = 14; F = 15.

Примеры.

0001, 256 -- целые числа,

2.35, 0.69 -- десятичные числа,

7.08e –2 -- вещественное число,

2#1001 -- целое число с основанием 2,

5#4321 -- целое число с основанием 5.

4.2.4. Агрегаты литералов.

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

Синтаксис

агрегат литералов: агрегат массива ; агрегат записи ; агрегат множества.

агрегат массива:( сопоставление элемента массива ,

возможный список позиционных сопоставлений элементов массива ,

возможный список именованных сопоставлений элементов массива).

агрегат записи: [ позиционное сопоставление ,

возможный список позиционных сопоставлений ,

возможный список именованных сопоставлений ].

агрегат множества: { возможный список позиционных сопоставлений } ;

{ список новых терминов , символ точки с запятой ,

логическое выражение }.;

{определение нового термина символ точки с запятой ,

логическое выражение}.

позиционное сопоставление : логическое выражение.

именованное сопоставление : выборсимвол замены логическое выражение ;

другие , символ замены логическое выражение.

выбор : целое ; литерал дискретного типа ; дискретный диапазон ; имя поля

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

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

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

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

Примеры. ((1,2),(3,4)) -- агрегат двумерного массива,

(а, б, в) -- агрегат одномерного массива,

[2, истина, взять] -- агрегат записи,

[2.5, 7.3] -- комплексное число,

{«a», «b», «c», «d»} -- агрегат множества символьных,

{~x~: целое ; x > 0} -- множество положительных чисел.

4.2.5. Строковые литералы.

Назначение. Строковый литерал вводит в БЗ и запросы текстовые данные (последовательности символов) в качестве исходной единицы обработки знаний.

Синтаксис

строковый литерал: символ кавычки , знаки , символ кавычки ;

символ кавычки , символ кавычки.

знаки: знак;знаки , знак.

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

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

Примеры

«это строка» --это простая строка,

«» --пустая строка,

«кавычка «» представлена парой кавычек» -- составная строка.

4.2.6. Литералы дат.

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

Синтаксис

дата: день , название месяца , год года ;

день , символ точки , число месяца , символ точки , год.

день: целое.

название месяца: январь ; февраль ; март ; апрель ; май ; июнь ;

июль ; август ; сентябрь ; октябрь ; ноябрь ; декабрь.

год: целое.

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

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

Пример.

13 января 1998 года.

4.2.7. Литералы времени.

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

Синтаксис

время: часы часов возможные минуты минут возможные секунды секунд.

часы: целое.

минуты: целое.

секунды: десятичное число.

Ограничение синтаксиса. Часы изменяются от 0 до 23, минуты - от 0 до 59, секунды - от 0 до 59 возможно с тысячными долями секунды (или без них). Секунды могут опускаться, а вместо них подразумеваться нули секунд. То же можно сказать об одновременном пропуске минут и секунд, подразумевая нули вместо минут и секунд.

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

Примеры. -- с пропусками секунд, минут и секунд:

12 часов 27 минут 35.09 секунд, 12 часов 27 минут, 12 часов.

4.2.8. Литералы комплексных чисел.

Назначение. Комплексные числа являются примером записи с двумя полями. Первое поле - Re, действительная часть комплексного числа, второе поле - Im, мнимая часть комплексного числа.

Синтаксис

комплексное число: [ действительная часть символ запятой мнимая часть ].

действительная часть: логическое выражение.

мнимая часть: логическое выражение.

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

Семантика. Считается, что смысл комплексных чисел понятен. Например, комплексное число [Re, Im] в алгебре обычно изображается в виде Re + i * Im, что частично выражает смысл комплексных величин.

Пример.

[2.27, 35.009] -- интерпретируется как 2.27+ i 35.009.

4.2.9. Ссылочные литералы.

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

Синтаксис

ссылочный литерал: nil ;символ доллара код.

код: 16-цифра ; код , 16-цифра.

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

Семантика. Ссылочный литерал указывает шестнадцатеричный адрес значения величины. Нулевой адрес nilне ссылается на что-либо.

Примеры.

nil -- нулевой адрес,

$20AF -- ненулевой адрес.

4.2.10. Другие литералы.

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

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

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

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

Мир объектов пользователя

4.3. Определение типов (предметная область)

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

Синтаксис

определение типа: символьный тип ; логический тип ; числовой тип ;

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

абстрактный тип ; пользовательский тип.

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

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

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

Примеры (термин определен типом в разделе типов):

~пол~ = символьный; -- символьный тип, состоящий из «М» и «Ж»,

~диад_а~ = логический; -- логический тип,

~выбор~ = (~нет~, ~возможно~, ~да~); -- тип истинности в трехзначной логике,

~данн_ые~ = вещественные; -- числовой тип,

~вектор~ = массив [1..10] из вещественных; -- индексируемый тип,

~имена~ = строка; -- строковый тип,

~ведомост_ь~ = запись

~ФИО~ = строка;

~оценк_а~ = целое

конец записи; -- именуемый тип,

~ведомости~ = таблица («xyz», временная)

~ФИО~ = строка;

~оценк_а~ = целое

конец таблицы; -- табличный тип,

~дат_а рождени_я~ = дата; -- тип даты,

~текущ_ее врем_я~ = время; -- тип времени,

~множеств_о мебел_и~ = множество; -- множественный тип,

~язык А~ = последовательность; -- последовательностный тип,

~пол_е запис_и~ = ссылка на множество мебели; -- ссылочный тип,

~функци_я скорост_и~ = функция (~пут_ь~: вещественный;

~период~: вещественный): метров в секунду; -- подпрограммный тип,

~элемент групп_ы~ = абстрактный; -- абстрактный тип.

4.3.1. Символьный тип.

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

Синтаксис

символьный тип: символьн_ый.

Ограничения синтаксиса. Символьный тип включает в качестве литералов символьные литералы или коды символов.

Семантика. Смысл символьного типа - множество значений символа.

Примеры

«» --пустой символ,

«к» -- символ буквы к.

4.3.2. Логический тип.

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

Синтаксис.

логический тип: логический.

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

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

Примеры.

нет -- когда отсутствует явление или процесс (синоним слова ложь)

да -- когда присутствует явление или процесс (синоним слова истина)

4.3.3. Типы перечислимых.

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

Синтаксис

перечислимый тип: (список литералов перечисления ).

литерал перечисления: новый термин.

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

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

Для логических операций многозначной (типа К-значной) логики логическое выражение в определении должно начинаться со знака @ и иметь вид одно или двумерного агрегата занумерованных значений типа:

массив[0..К-1] из целых -- для одноместной операции или

массив[0..К-1, 0..К-1] из целых -- для двухместной операции.

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

Примеры.

(~нет~, ~возможн_о~, ~да~)

(~не сделан_о~, ~начат_о~, ~завершен_а подготовк_а~, ~сделан_о~)

-- концы слов выделены для их вариации в текстах знаний и запросов.

4.3.4. Числовые типы.

Назначение. Числовые типы определяют значения числовых величин или объектов (в числовых фактах).

Синтаксис

числовой тип: описание целого; описание вещественного.

описание целого: короткий целый ; целое ; длинный целый ;

байтовый ; словный ; целый в диапазоне ; целый с шагом.

целый с шагом: целое (целое) целое.

целый в диапазоне: целое .. целое.

описание вещественного: вещественный ; короткий вещественный ;

длинный вещественный ; расширенный вещественный ;

фиксированный вещественный ; плавающий вещественный.

фиксированный вещественный: число ( число ) число.

плавающий вещественный: число ( целое ) число .

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

Обозначение типа

Минимальное

Шаг

Максимальное

короткий целый

-128

1

127

целое

-32768

1

32767

длинный целый

-2147483648

1

2147483647

байтовый

0

1

255

словный

0

1

65535

вещественный

меньший порядок -39

большой порядок +38

короткий вещественный

меньший порядок –45

большой порядок +38

длинный вещественный

меньший порядок 1.84e-19

большой порядок 1.84e+19

расширенный вещественный

меньший порядок –4951

большой порядок +4932

двойной вещественный

меньший порядок –324

большой порядок +308

фиксированный вещественный

Десятичное число

десятичное число

десятичное число

плавающий вещественный

десятичное число с порядком

положительное целое число

десятичное число с порядком

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

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

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

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

Примеры

1..37 -- целый в диапазоне,

1(2)37 -- целый с шагом отличается от целого в диапазоне.

0.0(0.01)0.99 -- фиксированный тип,

0.0(3)0.99 -- плавающий тип.

4.3.5. Индексируемые типы.

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

Синтаксис

индексируемый тип: массив[ список определений типа индекса ]

из определение типа.

определение типа индекса: дискретный тип.

дискретный тип: символьный ; логический ; тип истинности ;

целый ; байтовый ; словный ; короткий целый ; длинный целый ;

целый с шагом; целый в диапазоне ; диапазон дат ; конечное множество ;

ссылочный тип ; абстрактный тип ; имя дискретного типа.

диапазон дат: дата .. дата.

имя дискретного типа: термин.

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

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

Примеры.

массив[1..10, 1..10] из вещественных-- для описания матрицы размером 10 на 10:

массив [1..25] из целых -- для описания данных 25 вариантов:

4.3.6. Строковые типы.

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

Синтаксис

строковый тип: строка ; строка [ выражение ].

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

Семантика. Строковые типы определяют значения строковых величин. Значение строкового типа - строка размера не более 255 или указанного при задании типа.

Примеры.

строка -- тип строки размером 255,

строка[5] -- тип строки длины по числу символов 5.

4.3.7. Именуемые типы.

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

Синтаксис

именуемый тип: запись список определений полей конец записи.

определение поля: список новых терминов , символ двоеточия ,

простое имя типа , возможное начальное значение ; nil.

тип даты: дата.

тип времени: время.

тип комплексный: комплексный.

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

Семантика. Значение данной записи - составное значение или агрегат записи, состоящей из значений своих полей записи. В качестве иллюстрации ниже приведены описания типов даты, времени, комплексного и события. Они являются производными типами для стандартного использования [Вирт77б].

Считается, что семантически фиксируется стандартный (предопределенный) тип записи «дата», который имеет следующую структуру:

тип дата = запись

~день~ : 1..31;

~месяц~ : 1..12;

~год~ : словный;

конец записи.

Определение используемой даты осуществляется логически путем вычисления логических выражений или путем вызова стандартной процедуры. Смысл даты определяется тремя целыми числами. Внутреннее представление смысла даты задается одним длинным целым числом вида: 1000000*день + 10000*месяц + год. Такие данные в десятичной системе счисления будут просматриваться достаточно просто.

Считается, что семантически фиксируется стандартный (предопределенный) тип записи «время», который имеет следующую структуру:

тип время = запись

~час~ : 0..23;

~минут_а~ : 0..59;

~секунд_а~ : 0..59;

~дол_я секунд_ы~ : 0.0(0.01)0.99;

конец записи.

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

10000*час + 100*минута + секунда + доля секунды / 100

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

Считается, что семантически фиксируется стандартный (предопределенный) тип записи «комплексные», который имеет следующую структуру:

тип комплексный = запись

~Re~ : расширенный;

~Im~ : расширенный;

конец записи.

Считается, что семантически фиксируется стандартный (предопределенный) тип записи «событие», который имеет (предварительно и фрагментарно) следующую структуру:

тип событие = запись

~что~ : словное; -- определяет тип события

--…………

~событи_е от мыши~ :

~кнопк_и~: байт; -- состояние кнопок

~дважды~: логический; -- признак двойного нажатия

~где~: типа ссылки; -- координаты курсора мыши

~событи_е от клавиатур_ы~:

--………..

~событи_е сообщени_е~:

~команд_а~: словное;

~код команд_ы~: словное;

конец записи.

4.3.8. Табличные типы.

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

Синтаксис

табличный тип: имеющаяся таблица ; новая таблица.

имеющаяся таблица: таблицаравенство идентификатор имеющейся таблицы ,

( имя базы данных , возможные запятая список свойств таблицы ) ,

возможный перечень столбцов символ точки с запятой ,

конец таблицы.

новая таблица: таблица идентификатор новой таблицы ,

возможный ( список свойств таблицы ) ,

возможный перечень столбцов символ точки с запятой ,

возможный индекс последовательность определений ключа.

конец таблицы возможное начальное значение.

столбец: список новых терминов столбца двоеточие тип столбца ,

возможное начальное значение символ точки с запятой.

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

определение ключа: возможный ( список свойств ключа ) ,

ключ символ точки с запятой.

ключ: индекс ; первичный ключ ; внешний ключ.

индекс: новый термин ключа равенство выражение.

первичный ключ: новый термин ключа равенство ( список имен столбцов ).

внешний ключ: новый термин ключа равенство ( список имен столбцов )

двоеточие имя внешней таблицы , (список внешних имен столбцов).

тип столбца: символьный ; логический ; строковый ; длинный строковый ;

истинностный ; байтовый ; словный ; целый ; длинный целый ;

вещественный ; длинный вещественный ; абстрактный ;

плавающий вещественный ; фиксированный вещественный ; дата ; время ;

файловый ; ссылочный.

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

неопределенное значение.

свойство ключа: нет модификации ; уникальный ; один регистр ;

прямая сортировка ; обратная сортировка ; первичный.

имя БД: строка.

имя внешней таблицы: имя таблицы.

новый термин ключа: новый термин. (предусмотреть идентификатор!)

имя столбца: термин.

внешнее имя столбца: идентификатор столбца.

имя файла: строка.

идентификатор имеющейся таблицы: строка идентификатора.

идентификатор новой таблицы: строка идентификатора.

идентификатор столбца: строка идентификатора.

строка идентификатора: «идентификатор».

идентификатор: слово идентификатора ;

идентификатор _ слово идентификатора.

слово идентификатора: буква ; слово идентификатора , буква ;

слово идентификатора , цифра.

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

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

неопределенное значение –

Тип столбца зафиксирован в описании. Если имеются типы столбцов, не воспринимаемые некоторой СУБД, то применяются подходящие преобразования типов в требуемый тип. Значение столбцов не задается по умолчанию.

Таблица создается (открывается) синтезатором программ через СП, если ее нет в СУБД. Синтезатор программ проверяет наличие таблицы в БД. Если она имеется в БД, то она не создается, иначе инициируется. Ошибки описания таблиц или их применений обнаруживаются в динамике выполнения СП.

Некоторые операции с таблицами и ее столбцами и строчками рассматриваются в разделе 4.4.1.

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

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

Примеры.

~ ведомост_ь класс_а ~ таблица = ";TableOfKlass";

FIO: строка;

Resalt: целое;

конец таблицы. -- Описание таблицы-ведомости класса

4.3.9. Ссылочный тип.

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

Синтаксис

ссылочный тип : ссылка на определение типа.

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

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

Пример

раздела типа

~список~ : запись ~указател_ь~: ссылка список;

~значени_е~: тип значения;

конецзаписи.

4.3.10. Множественные типы.

Назначение. Множество является объектом для исследований или использования. Можно рассматривать конечные и бесконечные множества различной мощности.

Синтаксис

описание множества: множество ; множество из имя типаомегацелое ;

множество из имя типаалеф целое ; множество из имя типа.

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

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

Примеры

множество,

множество омега 2,

множество алеф 5,

множество из целых.

4.3.11. Последовательностные типы.

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

Синтаксис

последовательностный: файл ; текст ; файлиз определение типа ;

последовательность грамматика.

грамматика: порождающая грамматика ; распознающая грамматика.

порождающая грамматика: файл с записью на языке Марков.

распознающая грамматика: файл с записью на языке Граф языка.

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

Семантика. Файлы содержат исходный материал для обработки, наборы смысловых единиц, предписываемых некоторой величине (понятию). Исходный материал является смыслом последовательности.

Примеры.

файл

текст

файлиз вещественных

последовательность грамматика.

4.3.12. Подпрограммные типы.

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

Синтаксис

подпрограммный тип: процедурный тип ; функциональный тип.

процедурный тип: процедура ;процедура ( перечень параметров ).

функциональный тип: функциясимвол двоеточия простое имя типа ;

функция ( перечень параметров ) символ двоеточия простое имя типа.

параметр: вид параметра , определение параметра.

вид параметра: возможный признак обмена или доступа.

определение параметра: список новых терминов

символ двоеточия простое имя типа.

признак обмена или доступа: обмен ; ввод ; вывод.

значение подпрограммы: логическое выражение ; ссылка на программу.

ссылка на программу: строка.

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

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

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

Примеры.

функция: логический;

функция(а,в:целые): логический;

процедура.

4.3.13. Абстрактные типы.

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

Синтаксис

абстрактный тип: абстрактный.

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

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

4.4. Логические выражения.

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

Синтаксис

помеченное логическое выражение: логическое выражение ; метка выражения двоеточие помеченное логическое выражение.

логическое выражение: отношение ;

операция отрицания , логическое выражение ;

логическое выражение , логическая операция , отношение.

отношение: простое выражение ; простое выражение , операция отношения ,

простое выражение.

простое выражение: слагаемое ; унарная аддитивная операция , слагаемое ;

простое выражение , бинарная аддитивная операция ,слагаемое.

слагаемое: множитель ; слагаемое , мультипликативная операция , множитель.

множитель: первичное ; множитель , операция высшего приоритета , первичное.

первичное: литерал ; имя; квантор ; вызов функции ; вызов процедуры ;

преобразование типа ; квалифицированное выражение ; атрибут ; отрезок ;

присваивание ; ( переченьлогических выражений ).

имя: простое имя ; расширенное имя ; элемент таблицы.

метка выражения: простое имя.

следование в правиле: ->.

логическая операция: and ;or ;xor ; => ;<- ; in ;not in.

операция одинаковости: = ; <>.

операция отношения: операция одинаковости ; < ; <= ; > ; >= .

бинарная аддитивная операция:+ ; - ; ^ , &.

унарная аддитивная операция: + ; -.

операция отрицания: not.

мультипликативная операция: * ; / ; mod ; div ; \.

операция высшего приоритета: ** ; ‘ ; ` ; abs ; not ; pred ; next ; ref ; skim ;

математическая функция: sign ; entier ; sqrt ; exp ; ln ; log ; random ; arg ;

sin ; cos ; tg ; ctg ; sec ; cosec ; arcsin ; arccos ; arctg ; arcctg ; arcsec ; arccosec ;

sh ; ch ; th ; cth ; Arsh ; Arch ; Arth ; Arcth ; min ; max ; sum ; mult.

начальное значение: знак присваивания , выражение; константа.

знак присваивания: равенство ; присваивания влево.

Ограничение синтаксиса.

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

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

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

Примеры.

идет снег или идет дождь, -- операция «или» является синонимом операции \/.

А + В * С > sin X

M: A => B

4.4.1. Имена.

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

Синтаксис.

простое имя: термин.

расширенное имя: именуемый компонент ; индексируемый компонент.

элемент таблицы: имя таблицы ; имя таблицы символ точки имя столбца ;

имя таблицы [ номер строчки ] ;

имя таблицы символ точки имя столбца [ номер строчки ] ;

имя таблицы символ точки (список столбцов) [ номер строчки ] ;

имя таблицы при (логическое выражение ) ;

имя таблицы символ точки имя столбца при (логическое выражение ) ;

имя таблицы символ точки (список столбцов )

при (логическое выражение ).

имя таблицы (череда выражений столбцов ) ;

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

номер строчки: логическое выражение.

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

возможный признак упорядочивания , имя столбца ;

череда выражений столбцов , разделитель череды , имя столбца.

признак упорядочивания: упорядочить по двоеточие ;

упорядочить по возрастанию двоеточие ;

упорядочить по убыванию двоеточие.

разделитель череды: запятая ; запятая признак упорядочивания

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

Имена, представляемые терминами, классифицируются на языковые, которые используются в языках Лейбниц или ЯПП, и пользовательские, изобретаемые пользователем. Некоторые языковые словесные имена приведены в таблице. Они могут использоваться в качестве части пользовательского термина или отдельным термином.

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

Семантика. Смысл расширенного имени раскрывается через его компоненты. Смысл элемента таблицы определяется через значения, которые могут быть получены так. Отдельное имя таблицы Т используется для передачи всей таблицы, сравнения с другими таблицами или для выполнения операций с таблицами. Имя таблицы соединенные с полем (именем столбца) точкой Т.имя используется для выбора всего столбца. Имя таблицы с индексом Т[выражение] используется для выбора строчки таблицы, при этом получается значение записи с полями, задаваемыми именами столбцов. Выражение определяет номер строчки таблицы. Совместная конструкция Т.имя[выражение] определяет одно скалярное значение из столбца «имя» и строчки, определяемой номером (через значение выражения), таблицы Т. Часть записи из табличной строчки выбирается конструкцией Т.(список имен столбцов)[выражение]. Выбор столбца по условию использует операцию «при», правый операнд которой является логическим выражением: Т при выражение. Выбор части таблицы (некоторое число строчек) можно осуществить по условию, заданному логическим выражением по форме: Т при (выражение). Причем скобки можно опускать, если в качестве выражения используется терм. Аналогично записывается выбор части столбца таблицы Т по условию: Т.имя при (выражение). А также выбор части таблицы из нескольких столбцов таблицы реализуется по форме: Т.(список имен столбцов) при (выражение). Выбор всей или по условию части таблицы с преобразованием значений в столбцах осуществляется по формам: Т(череда выражений из столбцов) и Т( череда выражений из столбцов) при (выражение). Череда выражений образуется из имен столбцов, разделенных запятой или запятой с признаком упорядочивания (по возрастанию или по убыванию с двоеточием после этих слов). Признак упорядочивания может помещаться перед первым выражением из столбцов. Условие в операции «при» предназначено для тех же целей условного выбора части таблицы.

Примеры.

Имена понятий задаются терминами, которые приведены в таблице.

Номер п/п

Классы имен

Пояснения

1

имя анкеты

Анкета именуется идентификатором файла

2

имя атрибута

Каждый атрибут зафиксирован в языке, все они приведены в Приложении

3

имя базы данных

Каждая БД может быть поименована

4

имя базы знаний

Каждая БЗ должна быть поименована

5

имя библиотеки

6

имя документа

7

имя запроса

Каждый запрос именуется

8

имя знания

Каждый раздел знаний именуется

9

имя исключения

10

имя метапонятия

Некоторые объекты обозначают класс понятий

11

имя метки

Некоторые выражения помечаются именем

12

имя отношения

13

имя правила

14

имя прагмы

Каждая прагма зафиксирована в языке, все они приведены в Приложении

15

имя преобразования

Каждое преобразование имеет имя

16

имя раздела

некоторые разделы знаний именуются

17

раздел библиотеки

Разделы библиотеки именуются стандартно

18

имя термина

Каждый объект имеет термин

19

имя шаблона

Шаблон именуется идентификатором файла

20

имя языка

Используются известные и пользовательские имена формальных языков

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

Номер п/п

Классы терминов

Пояснения

1

лексема

константа некоторого типа

2

величина

простого типа

3

тип

для простых лексем

4

перечислимое

многозначные логики

5

синоним

введение собственных терминов

6

массив

набор однотипных значений заданного размера

7

запись

набор значений заданных типов и размеров

8

таблица

последовательность записей

9

поле записи

связанная с записью величина заданного типа

10

связная переменная

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

11

функция

имя вызываемых действий для получения значения

12

операция

одноместное или двуместное действие

14

процедура

имя вызываемых действий

К именам объектов языка относятся простые имена, указанные в таблице.

Номер п/п

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

Пояснения

1

имя величины

термин объекта

2

имя типа

термин набора значений

3

имя синонима

термин ссылки на основной термин

4

имя массива

термин набора однотипных данных

5

имя таблицы

термин массива записей в БД

6

имя записи

термин набора разнотипных данных

7

имя формулы

термин метки перед выражением

8

имя связной величины

термин скрытой величины

9

имя функции

термин функции

10

имя подпрограммы

термин подпрограммы

11

имя пользователя

фамилия, имя (и отчества)

12

имя файла

идентификатор файла

13

имя Интеллсист

термин системы

14

имя операции

знак или термин операции

15

имя квантора

термин квантора

16

имя модуля

идентификатор модуля

17

имя параметра

термин параметра

18

имя квантора

термин квантора

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

Примеры.

для всякого -- имя квантора,

скорость -- имя величины,

размер -- имя атрибута,

sin -- имя математической функции.

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

Т - имя таблицы,

Т[i] - строчка i таблицы Т,

Т.f - колонка f таблицы Т,

Т.(f1, f2,…,fк) - совокупность колонок f1, f2,…,fк из таблицы

выр - некоторое логическое выражение.

удалит_ь из(Т) -- процедура удаления (очистки) таблицы Т;

удалит_ь из(Т[i]) -- процедура удаления строчки i таблицы Т;

удалит_ь из(Т при выр) -- процедура удаления строчек таблицы Т по условию выр;

добавит_ь к(Т, выр) -- добавить строчку выр (запись) в таблицу Т;

добавит_ь к(Т1.f1, T2.f2) -- добавить столбец T2.f2 к столбцу T1.f1 в таблице Т1;

добавит_ь к(Т.f, выр) -- добавить значение выр к столбцу T.f в таблице Т;

добавит_ь к(Т.( f1, f2,…,fк), выр) -- добавить к столбцам f1, f2,…,fк выр (запись) в таблице Т;

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

среднее значение(Т.f) - операция вычисления среднего значения для всех чисел в колонке f таблицы Т;

При расширении ЯПП будут добавлены теоретико-множественные операции с таблицами. Например, будут добавлены операции ";объединения";, ";общая с";, ";за исключением"; и др.

4.4.2. Кванторы.

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

Синтаксис

квантор: наименование квантора , список связных переменных ,

( логическое выражение ).

наименование квантора : для всякого ; существует.

связная переменная : список новых терминов ;

список новых терминов двоеточие простое имя типа.

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

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

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

Примеры.

для всякого Х(А(Х) или В(Х)), -- квантор всеобщности,

для всякого Х(А(Х) => существует У(В(Х, У))). -- формулировка проблемы

--поиска алгоритма.

4.4.3. Вызов функции.

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

Синтаксис

вызов функции: термин функции , возможный агрегат фактических параметров.

агрегат фактических параметров: ( позиционное сопоставление полей записи ) ;

( позиционное сопоставление полей записи символ запятой

возможный список позиционных сопоставлений полей записи ,

возможный список именованных сопоставлений полей записи ).

термин функции: термин ; математическая функция.

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

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

Примеры.

F(X), F(X, Y), G, cos(A) -- две функции имеют одинаковые имена,

-- но различные профили.

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

4.4.4. Вызов процедуры.

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

Синтаксис

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

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

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

Примеры.

вычертить (а, в, с, д) -- построение прямой линии,

модель перемещения робота(А, В) -- обращение к готовой подпрограмме.

4.4.5. Преобразование типа.

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

Синтаксис

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

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

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

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

короткий < целый < байтовый < целый словный < длинный целый

(для любых чисел):

короткий < целый < длинный целый,

байтовый < целый словный.

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

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

короткий < целый < байтовый < целый словный < короткий вещественный < вещественный < длинный целый < длинный вещественный <

расширенный вещественный

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

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

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

Примеры.

вещественный(7) -- преобразование 7 в 7.0,

строка(«ф») -- преобразование символьного в строку.

4.4.6. Квалифицированное выражение.

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

Синтаксис

квалифицированное выражение: простое имя типа ` ( логическое выражение ) ;

первичное выражение , простое имя типа.

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

Семантика. Смысл выражения после квалификации не изменяется, но может возникнуть новое понимание смысла в зависимости от контекста.

Примеры.

целый`(25 метров), вещественный`(6), целый`(возможно).

4.4.7. Атрибуты.

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

Синтаксис

атрибут: простое имя атрибута первичное выражение ;

первичное выражение ‘ простое имя атрибута.

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

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

Примеры.

размер массива А, размерность массива А.

4.4.8. Индексируемые компоненты и отрезки.

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

Синтаксис

индексируемый компонент: простое имя массива ;

простое имя массива [ список индекса ].

отрезок: простое имя массива

[ значение индекса , символ точки , символ точки , значение индекса].

значение индекса: логическое выражение.

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

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

Примеры.

А[25, 44], В[5..9] индексируемый компонент массива А и отрезок массива В.

4.4.9. Именуемый компонент.

Назначение. Выбор значений из записи или передача значения в запись оформляется по принципу почтового адреса «страна . город .улица .дом .квартира .имя».

Синтаксис

именуемый компонент: имя записи символ из имя поля ;

имя записи символ из именуемый компонент.

имя поля: простое имя.

Ограничение синтаксиса. Не допускается сокращение в записи «адреса» элемента записи, например недопустим считается адрес «улица . дом . имя» и другие варианты сокращения.

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

Примеры.

Re . F -- есть вещественная часть комплексного числа,

Im . F -- есть мнимая часть комплексного числа

4.4.10. Запись алгоритма.

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

Синтаксис

присваивание : присваивание влево ; присваивание право ;

обмен ;

следование в правиле.

присваивание влево : имя двоеточие , равенство логическое выражение.

присваивание право : логическое выражение равенство, двоеточие имя.

обмен : имя двоеточие , равенство, двоеточие имя.

переход по метке: перейти к метка.

операция катенации: помеченное логическое выражение ,

катенация программ, помеченное логическое выражение ;

операция катенации , катенация программ,

помеченное логическое выражение.

катенация программ: символ точки ^ ; символ точки с запятой ^.

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

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

Примеры.

Х:=1; Y:=2; метка выражения: Z:=3;

если Х=0, то перейти к метке выражения;

X:=F1(a, b) ^ Y:=F2(a, b)

4.5. Разделы записей на языке Лейбниц

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

запись на языке Лейбниц: раздел языка ;

запись на языке Лейбниц , раздел языка.

раздел языка: раздел наименование раздела , содержание раздела , конец раздела;

раздел языка , содержание раздела , конец раздела.

содержание раздела: описание меток ; описание типа ; описание понятий ; описание метапонятий ; описание синонимов ; описание вводных фраз ;

описание отношений ; описание исключений ; описание операций ;

описание правил ; описание подстановок ; описание масштаба ;

база знаний ; описание запросов.

конец раздела: символ точки ; символ точки с запятой.

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

1. раздел управления - описание меток с наименованием метка;

2. раздел о предметной области - это описание типов с наименованием тип, описание понятий с наименованием понятие, описание метапонятий с наименованием метапонятие, описание синонимов с наименованием синоним или описание вводных фраз с наименованием вводные;

3. раздел о проблемной области - описание отношений с наименованием отношение, описание операций с наименованием операция, описание исключений с наименованием исключение, описание правил с наименованием правило, описание подстановок с наименованием подстановка, описание масштаба с наименованием масштаб;

4. раздел о библиотеках - описание библиотек с наименованием библиотека;

5. раздел области знаний - база знаний с наименованием знание;

6. раздел области запросов с наименованием запрос;

7. раздел области систем с наименованием система.

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

Семантика. Смысл каждого раздела ясен из его заголовка. Раздел пользователя определяет имя и пароль конкретного пользователя - это единственный смысл раздела. Предметная область - набор совокупностей имен и данных, которые являются или будут являться именами и значениями для фактов. В этом разделе определяются множества данных (типы), новые термины понятий или метапонятий и синонимы ранее введенных терминов. Смысл элемента предметной области ясен из объяснений смысла лексем. Проблемная область - набор допустимых операций над предметной областью. В разделе о проблемной области определяются пользовательские операции. Операции, которые предопределены в языке Лейбниц, описаны полностью в языке. Смысл вводимой пользователем операции ясен пользователю, если соблюдены все правила СеГ. Область библиотеки включает сопровождаемыми карточками семь разделов: таблицы символов, языка представления знаний, лексиконы, БД, БЗ, подпрограммы и варианты Интеллсист. Смысл элемента библиотеки ясен из его карточки. Области знаний и запросов определяются пользователем, их смысл известен пользователю. Область систем формируется из версий и редакций Интеллсист, которые либо приобретаются, либо формируются пользователем по правилам композиции одних и тех же или различных Интеллсист.

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

4.5.1. Раздел пользователя.

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

Синтаксис

описание пользователя : простоеимя пользователя , пароль.

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

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

Пример:

А.А. Красилов = intellsyst.

4.5.2. Определения типов. Раздел о предметной области.

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

Синтаксис

описание типа: описание без идентификатора ; описание с идентификатором.

описание без идентификатора:

список новых терминов равенство определение типа ;

описание с идентификатором:

список новых терминов равенство определение типа двоеточие строка.

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

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

Примеры.

тип ~диапазон номер_ов~ = 1 (1) 100;

~метр~ = вещественный;

~кулон~ = вещественный;

~грамм~ = вещественный.

4.5.3. Определения понятий. Раздел о предметной области.

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

Синтаксис

описание понятий: перечень описаний терминов.

описание термина: список новых терминов , двоеточие , определение типа ;

Ограничение синтаксиса. Если после описания типа помещен знак равенства, то термин определяется как константа, введенная своим обозначением. Тот же самый эффект будет при помещении слова «константа». Конкретное значение может быть задано перед запуском программы после разрешения запроса. Если после описания типа помещен знак присваивания влево с логическим выражением, то термин определяется как величина с этим начальным значением. Значение логического выражения должно быть того же типа что и тип величины. Без начального значения термин также определяется как величина, принимающая значения либо при логическом выводе, либо при запуске программы.

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

Примеры.

а, б, в : целые;

аа, бб, вв : вещественные := 0;

пи, ее : константы.

4.5.4. Определения метапонятий. Раздел о предметной области.

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

Синтаксис

описание метапонятия:новый термин равенство ( список терминов ).

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

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

Примеры.

~болезни~ = (грипп, ОРЗ, простуда, недомогание).

4.5.5. Определения синонимов. Раздел о предметной области.

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

Синтаксис

описание синонимов: список новых терминов равенство составной термин.

составной термин: термин ; составной термин из термин.

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

Семантика. Синоним - это новый термин, имеющий смысл некоторого известного термина.

Примеры.

~if~ = если,

~сложить~ = +.

~ведомост_ь документ_ов~ = сборная ведомость из документа.

4.5.6. Определения отношений. Раздел о проблемной области.

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

Синтаксис

описание отношений: список новыхтерминов равенство множество значений ;

описание отношений * множество значений.

множество значений: простое имя типа ; простое имя множества.

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

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

Примеры.

~решетк_а на плоскост_и~ = целое * целое

~сло_й векторов~ = вектор * целых -- использование двух

-- зарезервированных слов допустимо

4.5.7. Определенияопераций. Раздел о проблемной области.

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

Синтаксис

описание операций: определение операции.

определение операции: образ операции.

образ операции: новый термин операции ( перечень формальных параметров )

двоеточие простое имя типа.

формальный параметр: список новых терминов

символ двоеточия простое имя типа.

новый термин операции: стандартный термин операции ; новый термин.

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

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

Пункт – ранг

Операции

и некоторые синонимы

Наименование основных операций

1

:=: := =:

обмен, присваивание влево и вправо

2

=> <- ^

следование вправо и влево

3

xor \/ or

логическая операция «или»

4

/\ and

логическая операция «и»

5

= <>

равенство и неравенство

6

< <= => >

неравенство - отношение порядка

7

in not in ..

принадлежит и диапазон

8

+ - \ ^ &

бинарные операции и катенация

9

+ - absnotprednext ref skim

унарные операции

10

* / mod div

группа умножения и композиции

11

** ' ` @

операции высшего приоритета

12

агрегат, (), [], {}, квантор, функция, преобразование, индексирование, именование, отрезок, (квалификация), атрибут.

Базовые операции

наивысшего приоритета

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

Логические операции or (или), xor (исключающее или), and (и), not (не), => (следование), <- (обратное следование) применяются для любых логических с результатом соответствующего типа логический. Логические операции in (принадлежит), not in (не принадлежит) применяется для множества (слева) и выражения того же типа, что и тип элемента множества.

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

Арифметические операции + (сложение), - (вычитание), * (умножение), / (деление), ** (возведение в степень) применяются для любых арифметических типов с таким же арифметическим типом результата. Они применяются для множеств как операции объединения, симметричной разности, декартового произведения и соответственно с результатом типа множество. Кроме этого для множеств имеется операция разности (\). Арифметические операции mod (остаток целочисленного деления) и div (частное целочисленного деления) имеет в результате значение целого типа. Одноместные арифметические операции + (сохранение знака), - (изменение знака) сохраняют тип результата.

Функциями математического анализа являются: sin (синус), cos (косинус), tg (тангенс), ctg (котангенс), lg (двоичный логарифм), exp (экспонента), arcsin (арксинус), arccos (арккосинус), arctg (арктангенс), arcctg (арккотангенс), entier (целая часть), sign (знак числа), random (случайное число), sec (секанс), cosec (косеканс), sh (гиперболический синус), ch (гиперболический косинус), th (гиперболический тангенс), cth (гиперболический котангенс), Arsh (гиперболический арксинус), Arch (гиперболический арккосинус), Arth (гиперболический арктангенс),Arcth (гиперболический арккотангенс), sqrt (квадратный корень), arg (аргумент), log (десятичный логарифм), abs (абсолютное значение), min (минимум), max (максимум), sum (групповое сложение), mult (групповое произведение) применяются к значениям арифметического и комплексного типов из известного допустимого диапазона с результатом соответствующего типа. Функции next (следующий) и pred (предыдущий) применяются к значениям дискретного типа с результатом того же типа.

Функции суммирования, произведения, максимума и минимума

sum(i,1,n,E(i)) суммирование выражения E(i) по индексу i от 1 до n,

sum(i,Cond,E(i)) суммирование выражения E(i) по условию,

sum(А1, А2, А3,..,Ак) суммирование из списка,

sum(E) суммирование элементов из массива.

Аналогично рассматриваются групповые операции mult - произведение, max – максимальное значение или min - минимальное значение.

Остальные операции: ref A взять ссылку А, skim A снять ссылку с А, А^В катенация программ и строк, @ композиция функций и отношений.

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

Примеры. ~+~ -- сложение в метрах

(~X~, ~Y~: метр): метры = вещественный(X) + вещественный(Y).

~-~ -- вычитание в метрах

(~X~, ~Y~: метр): метры = вещественный(X) - вещественный(Y).

~*~ -- умножение в метрах

(~X~, ~Y~: метр): метры = вещественный(X) * вещественный(Y).

~/~ -- деление в метрах

(~X~, ~Y~: метр): метры = вещественный(X) / вещественный(Y).

4.5.8. Определения исключений. Раздел о проблемной области.

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

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

  1. обработке файлов,

  2. выделении памяти,

  3. неправильном использовании ресурсов Интеллсист,

  4. создании форм в процессах Интеллсист (или документов),

  5. конфликтах ОС и ВМ,

  6. выходе за границы и др.

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

Синтаксис

описание исключения: новыйтермин двоеточие логическое выражение.

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

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

Примеры.

~больш_ой массив~ = перейти на обработку этого исключения.

4.5.9. Определения правил. Раздел о проблемной области.

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

Синтаксис

описание правила: новый термин двоеточие определение правила.

определение правила: формальное логическое выражение символ правила

логическое выражение.

формальное логическое выражение: логическое выражение.

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

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

4.5.10. Определения подстановок. Раздел о проблемной области.

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

Синтаксис

описание подстановок: новый термин двоеточие определение подстановки.

определение подстановки: формальное логическое выражение

символ подстановки логическое выражение.

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

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

Примеры. раздел подстановок ~diff~:

-- Дифференцирование:

~X~*~Y~ -> diff(X)*Y+X*diff(Y);

~X~+~Y~ -> diff(X)+diff(Y);

-~Y~ -> -diff(Y);

~X~-~Y~ -> diff(X)-diff(Y);

~X~/~Y~ -> (diff(X)*Y-X*diff(Y))/(Y*Y);

~X~**~Y~ -> X**Y*(diff(Y)*ln X+Y/X*diff(X));

4.5.11. Определения масштаба. Раздел о библиотеках.

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

Синтаксис

описание масштаба: простое имя типа равенство

логическое выражение, простое имя типа.

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

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

Примеры.

долл. = 20 руб.

угол = ((2*pi) / 360) градус

4.5.12. Определения библиотек. Раздел о библиотеках.

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

Синтаксис

описание библиотеки : ~имя библиотеки~ символ равно

список разделов библиотеки.

раздел библиотеки: данные картотеки или карточек.

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

автор документа,

пароль автора,

дата введения в библиотеку,

дата модификации,

дата использования,

размер документа в Кб,

название раздела библиотеки,

название документа,

фирма-источник,

лицензия (номера),

версия документа,

доступ к файлу,

инвентарный номер,

пользователь,

пароль пользователя,

аннотация документа.

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

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

4.5.13. Базы знаний. Раздел области знаний.

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

Синтаксис

раздел знаний: ~простое имя знаний~

двоеточие сложное знание конец знаний , символ точки.

сложное знание: абзац ; сложное знание , абзац конец знаний , символ точки.

Ограничение синтаксиса. При вводе знаний из запроса в БЗ можно задавать запросы-тесты для контроля над вводимым знанием. Здесь под абзацем понимается любой текст по СеГ. Раздел завершается записью «конец знаний.», точка после слов «конец знаний» обязательна.

Семантика. Смысл знания определяется в соответствии с СеГ русского языка в контексте уже накопленного лексикона и БЗ, а также окружением Интеллсист. При вводе порции знания могут обнаружиться ошибки (их 13 классов), которые приводят к пересмотру вводимой порции, лексикона или БЗ. Могут возникнуть вопросы от Интеллсист, на которые следует ответить, в противном случае порция знания не будет воспринята системой.

4.5.14. Определения запросов. Раздел области запросов.

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

Синтаксис

описание запроса: ~простое имя запроса~ двоеточие определение запроса.

определение простого запроса: описание выражением ;

описание анкетой ; описание шаблоном.

определение запроса: определение простого запроса конец , символ точки;

определение простого запроса ,определение запроса.

описание выражением: логическое выражение , конец утверждения.

описание анкетой: анкетная форма запроса.

описание шаблоном: шаблонная форма запроса.

анкетная форма запроса: анкета ( строка ).

шаблонная форма запроса: шаблон ( строка ).

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

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

Пример.

-- Решение дифференциального уравнения (и сравнение с программированием)

раздел понятий

~ y’~, ~ y~, ~ x ~: вещественные;

~результат~: массив [1..100] из вещественных;

раздел запроса ~Решение уравнения~ : -- y’ := y**2 – 3*y + 5*x;

-- методом Эйлера на отрезке 0..1 с шагом 0.01 при начальных значениях

x := 0 ^ y := 1 ^ для всякого ~i~ : 1..100 ( y’ := y**2 – 3*y + 5*x ^

результат [i]:=y ^ y := y + 0.01*y’).

конец

4.5.15. Определения меток. Раздел о проблемной области.

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

Синтаксис

описание меток: список новых терминов.

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

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

Пример.

раздел меток ~метк_а 1~, ~метк_а 2~;

метка 1: перейти к метке 2 ^ метка 2: Р(Х).

4.5.16.Анкеты и шаблоны. Раздел о проблемной области

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

Синтаксис

описание анкетой: ~простое имя анкеты~ двоеточие

определение анкетой конец анкеты , конец утверждения.

строчка анкеты: термин , операция отношения , ответ.

ответ: логическое выражение ; ?.

определение анкеты: строчка анкеты , конец утверждения ;

строчка анкеты , определение анкеты.

описание шаблоном: последовательность элементов шаблона.

элемент шаблона: последовательность символов ; ???.

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

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

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

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

Пример.

раздел анкеты ~имя анкеты~:

Х = 25;

У = ?

С > 0

конец анкеты.

-- пример части шаблона:

--Уравнение

для i: T(у':=???;^

--решается методом Эйлера

у[r+1] = у[r] + у' * h);

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

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

Синтаксис

описание вводных терминов: список новых терминов.

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

Семантика. Вводные фразы имеют смысла пусто (void).

Примеры.

раздел вводных ~, например,~, ~(если даже нет)~;

раздел вводных ~(как видно)~, ~[на Си ++]~.

4.6. Стандартное окружение

Назначение. Основу стандартного окружения определяют фундаментальные знания, которые представлены в БЗ «Фундаментальные знания». На основе этих знаний можно решать общие исследовательские или прикладные задачи из области знаний, которая представлена в БЗ, они же используются при решении задач в любой области знаний. К фундаментальным знаниям относятся записи, которые приведены в Приложении. К ним относятся также встроенные знания, описанные в информатической логике. В записях включены знания, передаваемые учащимся в школе или на начальных курсах вузов («знания» ВМ, математические константы, некоторые правила информатической логики.

Синтаксис определен написанием БЗ и ее кодами, ограничения синтаксиса совпадают с ограничениями, принятыми в стандартном окружении, которое может расширяться по мере накопления опыта работы с этой БЗ. Запись БЗ определяет ее смысл и примеры для иллюстрации, она дана в Приложении 9.

4.7. Связь с программированием

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

4.7.1. Вызов готовых программ. Язык Вызов. Особое место в организации вызовов готовых подпрограмм занимает язык Вызов для описания строк вызова внешних подпрограмм. Ниже дано краткое описание этого языка.

Значением подпрограммы может быть строка, которая представляет код обращения к готовой программе на некотором ФЯ. Код обращения здесь называется вызовом программы. Ниже рассматривается ФЯ, который необходим программистам, если они желают, чтобы их программы использовала Интеллсист. Кроме вызова программ может оказаться важным описание идентификатора модуля, в котором содержатся подпрограммы. Для описания модуля также необходимо использовать строку, которую укажет программист для корректного использования подпрограмм. Описание языка Вызов состоит из вводной части, синтаксиса, семантики и прагматики.

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

  • подпрограммы библиотеки динамической компоновки (Имя.dll),

  • библиотечной подпрограммы статической компоновки (Имя.lib),

  • подпрограммы модуля объектного кода Intel (Имя.obj),

  • односегментной исполняемой программы ДОС (Имя.com),

  • исполняемой программы (Имя.exe),

  • подпрограммы ссылочного вызова пакетного файла (Имя.bat),

  • подпрограммы ссылочного вызова информационного файла (Имя.pif или Имя.lnk)

  • подпрограммы паскаль-модуля (Имя.pas, Имя.dcu, Имя.tpw).

Все случаи вызова подпрограммы задаются строкой по общему (одинаковому) формату с различным наполнением. Это позволяет в дальнейшем расширять возможные форматы описания. Строку по ФЯ Вызов составляет программист. Пользователь Интеллсист должен следовать руководству на подпрограмму и использовать указания программиста при создании понятия подп