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

Пример с собранием

Для разъяснения данных положений целесообразно посмотреть, как можно воспользоваться механизмом наследования для реализации простых примеров, приведенных ранее в данной главе. Ниже дается версия программы для примера с собранием. У состояния «собрание» имеются два потомка (т.е. порожденных состояния): «собрание_38», наследующее от состояния «собрание» умалчиваемое значение времени проведения собрания, и «собрание_39», в котором задается свое собственное время.

% дерево состояний:

порождение (собрание, мероприятие).

порождение (собрание_38, собрание).

порождение (собрание_39, собрание).

% фразы, относящиеся к состоянию "собрание":

время (собрание, 'Среда 14.00').

место (собрание, 'Зал заседаний').

% фразы, относящиеся к состоянию "собрание_38":

присутствуют (собрание_38, [рональд, синли, фред]).

% фразы, относящиеся к состоянию "собрание_39":

тема (собрание_39, 'версия 3.0').

присутствуют (собрание_39, [марта, рональд, спнди]).

Опровергнуть (собрание_39, премя (собряние,_ )).

время (собрание ,39, 'Четверг 9.00') .

Обратите внимание на то, что значение времени, наследуемое из состояния «собрание», опровергается а состоянии «собрание_39». Это опровержение предохраняет состояние «собрание_39» от появления двух противоречащих друг другу значений времени проведения собрания. Заметьте также, что все приведенные фразы свободны от побочных эффектов управления.

Каким образом можно было бы употребить процедуру "послать" для того, чтобы узнать время проведения «собрания_39»? Не могли ли бы Вы написать правило, аргументом которого служит название собрания и которое выдает на печать всю имеющуюся информацию об этом собрании?

Пример с птицами

Приведем версию программы, отражающую структуру примера с птицами.

% дерево состояний:

порождение (канарейки, птицы).

порождение (пингвины, птицы).

% фразы, относящиеся к состоянию "птицы":

способ_передвижения (птицы, полет).

% фразы, относящиеся к состоянию "канарейки":

цвет (канарейки, желтый).

% база данных, описывающая отдельных канареек:

индивидуум (канарейки, твити),

индивидуум (канарейки, стив).

% фразы, относящиеся к состоянию "пингвины":

цвет (пингвины, 'черный и белый') .

опровергнуть (пингвины, способ_передвижения (птицы, _)).

Способ_передвижения (пингвины, ходьба_вразвалочку).

% база данных, описывающая отдельных пингвинов:

индивидуум (пингвины, ральф).

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

| ?— порождение (Потомок, птицы),

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

послать (Потомок, индивидуум (И)) .

Потомок = пингвины

И = ральф;

нет

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

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