136
слот (фрейм, ім_слоту, знач_слоту)
визначити (фрейм, ім_слоту, знач_слоту)
спростувати_слот (фрейм, ім_слоту)
clauses
/*--------------дерево станів------------------------------------*/
породжений (шахи, чемпіонат).
породжений (туp_1, шахи).
породжений (туp_2, шахи).
/*------- фрази стану "Змагання з шахів"------------------*/
слот (шахи, час, [год_8_00]).
слот (шахи, місце, [клуб]).
/*------- фрази стану "Змагання з шахів - 1-й тур"-----*/
слот ( туp_1, судять, [хома, петро, олег, юра] ).
/*------- фрази стану "Змагання з шахів - 2-й тур"-----*/
слот (туp_2, судять, [олег, юра] ).
слот (туp_2, час, [год_16_00] ).
спростувати_слот (туp_2, час).
/*------- правила для значень слотів ------------------------*/
визначити (Фрейм, Слот, Значення) :-
слот (Фрейм, Слот, Значення).
визначити (Фрейм, Слот, Значення):-
породжений (Фрейм, Предок),
визначити (Предок, Слот, Значення),
not (спростувати_слот (Фрейм, Слот)).
Êîìåíòàð. Ìàºìî ôðåéì íàéâèùîãî ð³âíÿ - чемпіонат, ùî ïîðîäæóº ôðåéì
íèæ÷îãî ð³âíÿ - шахи, à îñòàíí³é - äâà ôðåéìè îäíàêîâîãî (íàé-
íèæ÷îãî) ð³âíÿ: туp_1, туp_2. Ôðåéì шахи ìຠäâà ñëîòè, çíà÷åííÿ
ÿêèõ ïîâèííå óñïàäêîâóâàòèñÿ ôðåéìàìè туp_1, туp_2. Îñòàíí³
ôðåéìè ìàþòü äîäàòêîâ³ ñëîòè, ÿêèõ íåìຠó ôðåéì³â âèùîãî ð³-
âíÿ. Êð³ì òîãî, ôðåéì туp_2 ìຠëîêàëüíå çíà÷åííÿ год_16_00 ñëî-
òó час, ÿêå ïåðåêðèâຠóñïàäêîâóâàíå çíà÷åííÿ год_8_00.
Çà ïðîãðàìîþ, âèêîíóþ÷è çàïèòè, ìîæíà îòðèìàòè â³äïîâ³ä³ íà
ð³çíîìàí³òí³ ïèòàííÿ, ùî ñòîñóþòüñÿ ÿê íàâåäåíèõ ôàêò³â, òàê ³ ôàê-
ò³â, ÿê³ íå ïîäàí³ ó ïðîãðàì³, àëå äåäóêòèâíî âèâîäÿòüñÿ ç ìíîæèíè
äàíèõ ôàêò³â. Ðîçãëÿíåìî ïðèêëàäè òâåðäæåíü ïðèðîäíîþ ìîâîþ òà
¿õ ³íòåðïðåòàö³þ ó çàïèòè äî íàâåäåíî¿ ïðîãðàìè.
Òâåðäæåííÿ ïðèðîäíîþ ìîâîþ Çàïèò äî ïðîãðàìè
Õòî ç ñóää³â îáñëóãîâóº 1-é òóð?
визначити (тур_1, судять, X)
ßêèé ÷àñ ïî÷àòêó çìàãàíü 1-ãî òóðó?
визначити (тур_1, час, X)
Äå ïðîâîäèòüñÿ 2-é òóð çìàãàíü?
визначити (туp_2, місце, X)
ßêèé òóð çìàãàíü ç øàõ³â ðîçïî÷è-
íàºòüñÿ î 8.00?
породжений (F, шахи), визначити (F,
час, [год_8_00])
ßê³ çìàãàííÿ ïðîâîäÿòüñÿ ó êëóá³?
визначити (X, місце, [клуб])