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

6.5. Механизм наследования в прологе Наследование в других формализмах

Формализм фреймов допускает, чтобы значения слотов фрейма общего вида наследовались конкретным фреймом. Наследование можно запретить, если ввести значение слота в конкретный фрейм, при этом наследуемое значение слота будет перекрыто. Сходным образом объектно-ориентированный формализм допускает, чтобы сообщения (и связанные с ними методы) общего класса наследовались конкретным классом. Наследование будет отменено, если для конкретного класса будет определено сообщение, перекрывающее наследуемое сообщение. Концепция наследования придает этим формализмам большую выразительную силу при представлении таксономии знаний и, говоря словами Ковальски, "...побуждает нас... к рассуждениям путем сравнения новых случаев с принятыми ранее стереотипами" [58, с. 4].

Наследование в Прологе

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

% локальное правило

собрание_38 (Атрибут, Значение) :—

с_38 (Атрибут, Значение), !.

% правило наследования

собрание_38 (Атрибут, Значение) :—

разновидность (с_38, Фрейм),

Подцель = . . [Фрейм, Атрибут, Значение],

Подцель.

Такой подход приводит к искаженному отображению структуры представляемой системы. Ему к тому же свойственны два ограничения:

1) он применим только к базам данных, информация в которых хранится в виде атрибутов, представленных в форме ({Фрейм (Атрибут, Значение)}}; и 2) применение предиката "сократить" в первом правиле не дает возможности употребить в правиле "собрание_38" более одного локального значения атрибута. Было бы желательным иметь общий механизм описания наследования в Прологе, свободный от этих ограничений.

Состояния знаний

Согласно Хейесу [40, с. 54—56] наследование можно трактовать как разновидность вывода, выполняемого между состояниями знаний. Для того чтобы пояснить, что имеет в виду Хейес, дадим полную интерпретацию символических обозначений для примера с собранием. Предположим, что еженедельные собрания, в которых участвуют Рональд, Синди и Фред, проводятся регулярно по средам в 14.00. Можно сказать, что среда 14.00 — это умалчиваемое время проведения еженедельных собраний, в которых принимают участие эти лица. Когда первоначально планировалось еженедельное собрание "собрание_38", то все его участники предполагали, что оно будет проведено в обычное время. В среду утром, однако, Фред узнает, что он должен уехать после обеда, и поэтому просит перенести "собрание_38". Участники собрания соглашаются перенести его на четверг на 9.00. Перенос срока проведения собрания привел к изменению состояния знаний этих людей о еженедельном собрании. В новом состоянии знаний умалчиваемое время проведения собрания перекрывается новым значением времени.

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

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

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