Скачиваний:
24
Добавлен:
01.05.2014
Размер:
356.35 Кб
Скачать

Оценка механизма наследования

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

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

управления.

Недостатком механизма наследования является то, что он работает

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

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

Процедура "послать" как предикат метаязыка

В разд. 0.9 отмечалось, что на уровне объектного языка смыслом ответа на Пролог-запрос является либо соблюдение, либо несоблюдение отношения, описанного в запросе. Но на уровне метаязыка смысл ответа на запрос заключается в следующем:

Запрос доказуем или недоказуем

при помощи стратегии решения задач интерпретатора

в соответствии с фразами текущей программы.

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

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

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

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

Библиографические заметки

На подход к представлению знаний, принятый в данной главе, оказали сильное влияние работы Хейеса [39], [40] и [41]. Хейес подчеркивает важность теории модели для представления знаний.

Работы [9] и [10] являются хорошим введением в семантические сети. Виноград [112] обсуждает ограничения семантических сетей, указывая в то же время на преимущества фреймов. В работах [55), [56], [39], [40] и [79J выдвигается точка зрения о том, что и семантические сети, и фреймы можно рассматривать как различные виды синтаксической формы логики предикатов.

Книга [35] является серьезным введением в язык объектно-ориентированного программирования Смолток-80. Первым языком объектно-ориентированного программирования была СИМУЛА. Захватывающая история разработки этого языка нашла отражение в работе [80]. Хьюитт (Работа Хьюитта отсутствует в списке литературы. — Примеч. пер.) (1977 г.) обсуждает управляющие структуры системы программирования, базирующейся на понятии объекта (действующей силы). Понятие абстрактного типа данных разъясняется в книге [2].

Была проведена большая работа по исследованию того, как на языке логического программирования можно выразить иные концепции представления знаний, В работах [55] и [56] под этим углом зрения рассматриваются семантические сети, в работах [40] и [77] - фреймы, а в работах р81, [106] и [114] - объектно-ориентированное программирование Ко-вальски в работе [58] обсуждает многие другие концепции представления знаний.

Хейес [40] рассматривает вопрос о том, как трактуется в логике концепция наследования формализма фреймов. Механизм наследования, описанный в данной главе, основывается на его идеях.

Аксиома фреймов рассматривается в работе [55, с. 133—138], Вопросы обретения знаний освещаются с позиций логического программирования о работах [55] и [52].

Соседние файлы в папке Гл.6,7,Прилож.,Допол