Изобретание, проектирование, разработка и сопровождение) Том Интеллектуальные системы (Системы решения проблем)  Альберт Александрович Красилов icon

Изобретание, проектирование, разработка и сопровождение) Том Интеллектуальные системы (Системы решения проблем)  Альберт Александрович Красилов


Смотрите также:
Изобретание, проектирование...
Изобретание, проектирование...
Изобретание, проектирование...
Изобретание, проектирование...
Том Интеллектуальные системы (Системы решения проблем)  Альберт Александрович Красилов...
Том Интеллектуальные системы (Системы решения проблем)  Альберт Александрович Красилов...
Лекция: Этапы проектирования ис с применением uml: Основные типы uml-диаграмм...
Программа дисциплины интеллектуальные информационные системы индекс дисциплины по учебному плану...
Рабочая программа учебной дисциплины (модуля) Интеллектуальные системы принятия проектных...
Интеллект человека и искусственный интеллект...
Программа: Iдень...
Предмет и метод курса "Проектирование информационных систем"...



Загрузка...
страницы:   1   2   3   4   5   6   7   8   9   ...   16
скачать
А.А. Красилов


ИНФОРМАТИКА


В СЕМИ ТОМАХ


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

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





Москва

1997 - 2003


ИНФОРМАТИКА


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

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


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

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


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

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


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

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


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

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


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

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

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


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

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


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


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


Аннотация


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


The informal description of representation of knowledge of various kinds in language of professional prose is stated. The description is given in full conformity with a formal statement of language in volume 2. The basic purpose of a statement consists in the practical explanatory of methods of formalization of the knowledge, not demanding studying of formal languages or all formal bases of logic programming, but only on the basis of language of professional prose. Brought examples serve as fragments of prototypes of records of knowledge and the inquiries intended for founders of tasks and inquiries to base of knowledge, for direct users Intelsys.

(www.translate.ru)


ОГЛАВЛЕНИЕ


0. Введение

0.1. Общие соображения о представлении знаний

0.2. Шаги формализации в работе со знаниями

0.3. Шаги в исследованиях пользователя с применением Интеллсист

0.4. Шаги в технологии интеллектуального программирования

Глава 1. Предметная область

1.1. Наборы данных

1.2. Классы констант

1.2.1. Символьные данные.

1.2.2. Истинностные данные

1.2.3. Целочисленные данные

1.2.4. Вещественные данные

1.2.5. Агрегатные данные. База данных.

1.2.6. Даты

1.2.7. Время

1.2.8. Последовательности

1.2.9. Ссылочные данные

1.2.10. Программные данные

1.3. Абстрактные величины

1.4. Множества данных, описание пользовательского типа

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

1.4.2. Логические и перечислимые типы

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

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

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

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

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

1.4.8. Типы множеств

1.4.9. Типы последовательностей

1.4.10. Типы подпрограмм и записи алгоритмов

1.4.11. Тип абстрактных величин

1.5. Классы величин и их значения

1.5.1. Описание понятия

1.5.2. Пользовательские типы

1.5.3. Описание метапонятия

1.5.4. Описание синонима

1.5.5. Описание отношения. Декартовое произведение

1.5.6. Описание исключения

1.5.7. Описание операции

1.5.8. Описание правила

1.5.9. Описание подстановки

1.5.10. Описание масштаба

1.6. Классы предметных данных

1.7. Другие классы данных

^ Глава 2. Проблемная область

2.1. Алфавиты или словари операций

2.2. Классы операций

2.3. Базовые операции

2.4. Стандартные операции

2.5. Прикладные операции

2.6. Классы графических операций

2.7. Классы предметных операций

^ Глава 3. Лексиконы

3.1. Классы словарей

3.2. Словарь символов

3.3. Словарь слов

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

3.5. Представление словарей

3.6. Словарь графических фигур

3.7. Представление баз знаний

^ Глава 4. Представление фраз

4.1. Построение фраз

4.2. Константы

4.3. Имена

4.4. Общие утверждения

4.5. Использование функций

4.6. Операции преобразования

4.6.1. Преобразование данных к заданному типу

4.6.2. Квалификация типа

4.6.3. Масштабирование типа

4.6.4. Преобразование подстановкой

4.7. Атрибуты величин

^ Глава 5. Представление знаний (логика простыми словами)

5.1. Элементарное знание

5.2. Простое и сложное знание

5.3. Множество смыслов

5.4. База знаний. Файловая структура СУБЗ

5.5. Применения СиГ

5.5.1. О теории веры

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

5.5.3. Постановка цели обработки знаний

5.5.4. Классы графов представления текстов

5.5.5. БД для хранения знаний, представленных по СиГ

5.5.6. Об алгоритмах обработки знаний

5.5.7. Заключительные суждения

5.6. Об использовании Интеллсист в реальном времени

5.7. Нетекстовые знания

5.7.1. Массивы, таблицы, записи, рисунки и телекадры

5.7.2. Графическая информатика. Основные положения и концепция

5.7.3. Свойства изображений. Классы задач

5.7.4. Конкретные задачи и методы

5.7.5. Графовая информатика

^ Глава 6. Представление алгоритмов и примеры задач

6.1. Языки представления алгоритмов

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

6.1.2. Оформление обращений к готовым программам

6.1.3. Формализм языка Вызов

6.1.4. Примеры типов подпрограмм

6.2. Помеченные выражения

6.3. Решение задач, вопросов и проблем. Примеры

6.3.1. Вычислительные задачи.

6.3.2. Аналитические выкладки

6.3.3. Разработка тестов и логические задачи

6.3.4. Распознавание образов

6.3.5. Выделение признаков Определение понятий

6.3.6. Доказательство теорем Правильность высказываний

6.3.7. Синтез теорем

6.3.8. Вопросно-ответные системы

6.3.9. Лингвистические задачи

6.3.10. Учет, контроль, мониторинг и управление

6.3.11. Юридические задачи

6.3.12. Формирование законов

6.3.13. Формирование программ

6.3.14. Игровые задачи

6.3.15. Понимание ЕЯ

6.4. Формирование БД и начальных значений

6.5. Синтез программ

6.6. Применение библиотечных подпрограмм

6.7. Реализация программ и их использование

^ Глава 7. Структура заданий для Интеллсист

7.1. Приобретение знаний

7.2. Представление запросов

7.2.1. Утверждения

7.2.2. Анкеты

7.2.3. Шаблоны

7.3. Технология работы с инструментарием

7.4. Библиотеки знаний

7.5. Разработка баз знаний

7.5.1. Вводные положения о формировании БЗ

7.5.2. Технология создания БЗ

7.6. Ответы на запросы

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

Литература

Приложения 1. Символы стандарта ASCII

Приложения 2. Зарезервированные слова

Приложение 3. Словарь стандартных терминов и синонимов

Приложение 4. Встроенные операции

Приложение 5. Ограничения версий инструментария Интеллсист


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


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

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

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

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

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

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

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

ИИ - искусственный интеллект

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ASCII - American Standard Code Information Interchange


0. Введение


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


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


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


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


Конкретную цель изложений в томе можно представить так:

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

  • сопоставить эти представления с известными представлениями в проблематике ИИ (например, фреймы и семантические сети)

  • и привести реальные (но небольшие) примеры из области решения задач с помощью Интеллсист.

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


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


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


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


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


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


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


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

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

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

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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


^ Второй шаг исследований связан с поиском недостающего знания об объектах, которые надо извлечь из литературы, опытных или экспериментальных действий или от специалистов (консультантов). Дополнительные знания должны пополнить БЗ. Пополнение БЗ осуществляется либо непосредственно в БЗ, если она создавалась исследователем (пользователем), либо в раздел запроса, если БЗ приобретена на рынке знаний. Работа с запросами для Интеллсист должна продолжиться с новыми знаниями и с увеличивающимся набором заданий. При этом может проявиться процедура отладки знаний в связи с расширением БЗ. Набор запросов должен быть представительным, т.е. отражать всю область конкретных исследований. Недостающее знание может выводиться в процессе применения Интеллсист, если заведомо аккуратно формировать запросы. Например, если пользователю неизвестны формулы для вычисления корней квадратного уравнения, то запись уравнения в запросе с параметрическими коэффициентами приведет к получению в результате искомых формул, которые включают в себя параметры. Если пользователь забыл правила вычисления производных сложных функций, то аналитический вывод производных можно поручить Интеллсист (если используется фундаментальная БЗ) в форме запроса на применение правил дифференцирования (например, diff(F(X, Y) / G(X, Y))). В результате второго шага расширяется круг решаемых задач с получением конкретных выражений или даже числовых результатов.


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


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


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


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


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

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

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

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


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


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


^ Глава 1. Предметная область




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


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


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


Все понятия можно подразделять по признаку определенности на четыре группы:

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

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

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

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

Первый случай ясен во всех отношениях, кроме того факта, что неизвестно какой именно смысл будет предписан понятию в результате разрешения запроса. Причем, предписываемый смысл либо задается пользователем в процессе запроса для Интеллсист, либо смысл определится автоматически при выводе решения. Например, термин «скорость» известен вместе с множеством смыслов, которое задается вещественными числами. Второе подразделение является менее ясным, поскольку известна только структура смысла. Например, понятие является массивом с неопределенными значениями для границ индексов или простой переменной с неопределенными границами изменения ее значений. Третье подразделение является еще менее ясным, поскольку понятие является абстрактным или полностью неопределенным. Во втором и в третьем подразделениях в процессе логического вывода могут доопределятся границы для массива или значений переменной, а также структура и допустимые значения для заданных термином понятий. Четвертое подразделение являет собой вообще бессмысленное понятие. Этот случай важен и полезен для устранения в процессе логического вывода многих вариантов разрешения запросов. Например, в результате выведено, что Х = 2, в то время как величина Х не может принимать никаких или именно таких значений, следовательно, Х = 2 - ложно, а варианты решений, в которые входит Х = 2, отпадают. Бессмыслицы имеют только такой смысл, смысл фильтрации “плохих” решений. В этом примере величина Х может принимать значения от 50 до 100.


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

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

^ Второй шаг - формирование “своих” наборов лексем или агрегатов лексем в соответствии со свойствами или характеристиками введенных величин.

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

^ Четвертый шаг - построение полных или частичных характеристик каждого понятия, представленного термином.

Пятый шаг - установление первичных связей между понятиями. Первичные связи возникают при изучении понятий со сложными структурами. Например, к сложным структурным понятиям относятся нашедшие широкое применение в ЭС фреймы [Восилюс80, Минский79, Рыбина79, Ыйм78] и семантические сети [Вагин86, Касаткин81, Лозовский82], а также классификаторы.

В ЯПП имеются полные аналоги таким объектам: записи, массивы, анкеты и метапонятия.


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


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


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


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


Алфавит предназначен для построения лексем и терминов, когда он играет роль лексемы. Те и другие могут включать в свой состав любые символы алфавита клавиатуры, возможно с некоторыми незначительными ограничениями. Например, запись числа может включать кроме символов цифр латинскую букву «e» или «E», но не более того. Числа могут состоять и только из слов (числительные ЕЯ). Еще пример. Строки могут включать любые символы, кроме одиночных символов кавычки, но пара кавычек может входить в строки. Другие примеры будут даны в разделах описания лексем. Этим завершается вступительная часть, содержащая замечания о применении алфавитов. В главе рассматриваются все средства представления предметной области.


^ 1.1. Наборы данных


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


Типы данных охватывают всякие или широко используемые представления лексем. Однако в некоторых экзотических специальностях или случаях могут использоваться уникальные данные, которые необходимо моделировать с помощью используемых в языке Лейбниц представлений данных. Например, данными в шахматах являются записи перемещений фигур на доске: 1. е2-е4, Кb8-c6. Такие данные можно моделировать самыми различными способами. Можно использовать строки для обозначения полей шахматной доски и фигур. Соединение строк и символов тире приведет к записи подобного сорта. Можно использовать строковые тексты для обозначения каждого хода белых и черных. Любое моделирование потребует создания алгоритмов расшифровки записей шахматной партии.


В ЯПП различают 35 типов данных, причем они подразделяются на простые (известные, стандартные) и структурные (пользовательские) типы. Значения простых типов представляются лексемами, а структурных - композицией простых лексем или вновь структурных типов данных. Простые типы используются для характеристики величин, задаваемых терминами, а структурные типы используются для формирования новых пользовательских типов структурных величин (для формализации своих величин). Список всех типов данных приведен в Приложении 2 тома 2.


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


^ 1.2. Классы констант


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

  1. константы нулей и единиц,

  2. пользовательские “безымянные” константы,

  3. некоторые фундаментальные константы и

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

Константы нулей и единиц представлены ниже в таблице. Пользовательские “безымянные” константы формируются из простых или структурных лексем (вектора и матрицы). Одинаковые константы могут обозначаться различными терминами или обозначениями (синонимами). Например, имена «пи» или «pi» могут обозначать одну и те же константу 3.14... Если термин для обозначения константы зарезервирован, то всегда имеется возможность введения синонимов для одних и тех же констант. Пользовательские константы назначает сам пользователь во фразах, поскольку они соответствуют пользовательскому замыслу, они представлены также ниже по разделам описания лексем. Фундаментальные константы известны в каждой науке, обычно они содержатся в БЗ. Наконец, пользователь может ввести свои константы через их имена, не сообщая конкретных значений в виде лексем. Константы первого и второго классов определяют значения (заданных или подразумеваемых) величин, которые могут изменяться в процессах логического вывода или вычисления по программе. Константы третьего и четвертого класса не изменяют своего значения. Первые три класса задания свойств понятий (констант) больше не требуют комментариев. Четвертый класс констант связан с использованием величины как константы пока или навсегда с неопределенным значением, которое может быть запрошено при запуске построенной в качестве ответа на запрос программы, а она может использовать умалчиваемые по значению константы в расчетах. Они используются при аналитических выкладках.


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


^ Тип константы

Значение

Смысл/назначение

Операция

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

0




оставить комментарий
страница1/16
Дата13.10.2011
Размер4,29 Mb.
ТипДокументы, Образовательные материалы
Добавить документ в свой блог или на сайт

страницы:   1   2   3   4   5   6   7   8   9   ...   16
Ваша оценка этого документа будет первой.
Ваша оценка:
Разместите кнопку на своём сайте или блоге:
rudocs.exdat.com

Загрузка...
База данных защищена авторским правом ©exdat 2000-2017
При копировании материала укажите ссылку
обратиться к администрации
Анализ
Справочники
Сценарии
Рефераты
Курсовые работы
Авторефераты
Программы
Методички
Документы
Понятия

опубликовать
Загрузка...
Документы

Рейтинг@Mail.ru
наверх