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

Обзор механизма наследования

Механизм наследования это метод представления многих состояний знаний, при котором конкретное состояние может наследовать информацию от общего состояния. Фраза ставится в соответствие состоянию путем добавления имени состояния в заголовок фразы (в виде первого ее аргумента); все остальные аргументы не изменятся. Отношение между общим и конкретным состояниями записывается в виде факта "порождение/2". Наследование фраз от состояния к состоянию реализуется процедурой "послать". С декларативных позиций процедуру "послать" можно трактовать как отношение, существующее между состоянием знаний и запросом, если можно доказать истинность запроса по фразам, связанным с данным состоянием.

Главной аналитической задачей при использовании механизма наследования является установление иерархии состояний знаний. Взаимосвязь состояний можно рассматривать как дерево, в котором каждое состояние представляется узлом. Пусть имеются два состояния, А и Б. Если состояние Б - это узел дерева, порожденный состоянием А, то Б унаследует все фразы, связанные с А, за исключением тех, которые явно опровергаются в Б.

Предположим, что самым верхним состоянием конкретного дерева является состояние «служащие». Оно содержит информацию, в целом применимую по отношению ко всем служащим, такую как места расположения отделов, имена менеджеров отделов и т.д. У состояния «служащие» есть два порожденных им состояния — «служащие, получающие оклад» и «служащие, работающие по контракту». Состояние «служащие, получающие оклад» содержит базу данных, в которой хранятся сведения об именах служащих, получающих оклад, и иную информацию, например данные о виде налоговой ведомости, которую эти служащие получают в конце года. Состояние «служащие, работающие по контракту» содержит базу данных со сведениями об именах служащих, работающих по контракту, и иную относящуюся к этим служащим информацию. Данное дерево состояний изображено на рис. 6.5:

Аналогия с объектно-ориентированным программированием

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

Ответы, вырабатываемые процедурой послать

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

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