Читаем Фреймы для представления знаний полностью

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

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

<p>3.2. Сопоставление образцов</p>

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

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

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

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

2. Поиск или создание нового фрейма, обладающего свойствами (a, b,…, z).

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

3. Помимо нового фрейма, во всем подобного старому фрейму, за исключением различий (a, b, …, z) между ними.

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

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

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

<p>3.3. Оправдание</p>
Перейти на страницу:

Похожие книги

Основы программирования в Linux
Основы программирования в Linux

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов

Нейл Мэтью , Ричард Стоунс , Татьяна Коротяева

ОС и Сети / Программирование / Книги по IT
97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

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

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT
Программист-прагматик. Путь от подмастерья к мастеру
Программист-прагматик. Путь от подмастерья к мастеру

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

А. Алексашин , Дэвид Томас , Эндрю Хант

Программирование / Книги по IT