Правила. Подання відносин предметної області у вигляді правил

Правило - фраза, значення істинності якої залежить від істинності значень умов, що утворюють тіло правила. Форма запису:

заголовок:-

тіло.

Форма запису заголовка відповідає формі запису факту (без крапки наприкінці).

Позначення “:-“ читається як “якщо”. Тобто, якщо істинні всі предикати, що входять у тіло, то заголовок стає фактом.

Кожна умова, що входить у тіло, називається підціллю. Підцілі можуть зв’язуватися або “,” – “і”, або “;” – “або”. У першому випадку для істинності заголовка правила необхідно, щоб кожна підціль, що входить у тіло, була істиною.

Представимо правило, що включає 2 конъюнктивно зв’язані підцілі:

“Студент одержить залік, якщо

він здав всі лабораторні роботи

I

він успішно написав контрольну роботу”.

Подання подцелей складе явну частину БД, що зберігає факти lab/1 і check/1 відповідно. Числа, що стоять після косої, указують кількість аргументів - арность предиката. Такий запис посилання на предикат необхідний тому, що Arity/Prolog предикати з тим самим ім’ям і різної арності обробляє як різні невзаємопов’язані фрази.

Єдиним аргументом і lab/1, і check/1 є ідентифікатор студента.

Неявна частина БД буде містити безпосередньо вище певне правило, представлене exam/1 з аргументом -ідентифікатором студента.

% Програма 1.2: студент, що здав лаб. роботи(прізвище студента)

lab(ivanov).

lab(petrov).

% студент, що успішно написав контр.роботу(прізвище студента)

check(sidorov).

check(petrov).

% студент, що склав іспит(прізвище студента)

ехаm(Х):-

lab(X),

check(X).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: