Программирование на языке Пролог для искусственного интеллекта


         

с декларативной семантикой, можно утверждать,


        имеетребенка( А) :- родитель( А, В).

        имеетребенка( X1) :- родитель( X1, Х2).


Примеры конкретизаций этого же предложения:

        имеетребенка( питер) :- родитель( питер, Z).

        имеетребенка( барри) :- родитель( барри,

                                                      маленькая( каролина) ).


Пусть дана некоторая программа и цель G, тогда, в соответствии с декларативной семантикой, можно утверждать, что

line();

Цель  G  истинна (т.е. достижима или логически следует из программы) тогда и только тогда, когда

(1)    в программе существует предложение  С, такое, что

(2)    существует такая его  (С)   конкретизация  I,  что

        (a)    голова   I  совпадает с  G  и

        (б)    все цели в теле  I  истинны.


line();

Это определение можно распространить на вопросы следующим образом. В общем случае вопрос к пролог-системе представляет собой список

целей, разделенных запятыми. Список целей называется истинным (достижимым), если все

цели в этом списке истинны (достижимы) при одинаковых

конкретизациях переменных. Значения переменных получаются из наиболее общей конкретизации.

Таким образом, запятая между целями обозначает конъюнкцию целей: они все

должны быть истинными. Однако в Прологе возможна и дизъюнкция целей: должна быть истинной, по крайней мере одна

из целей. Дизъюнкция обозначается точкой с запятой. Например:

        Р   :-   Q;  R.


Содержание  Назад  Вперед