Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
AlgStr / Библиотека / POSIBNIK / ПРОГР НА ПРОЛОГЕ.doc
Скачиваний:
51
Добавлен:
23.03.2015
Размер:
670 Кб
Скачать

4.6.1. Обмеження, що забезпечують цілсність відношень

Для аргументів будь-якого бінарного відношення буде справедливим одне з таких обмежень, що забезпечують цілісність відношення:

  • один-до-одного;

  • один-до-багатьох;

  • багато-до-одного;

  • багато-до-багатьох.

Якщо бінарне відношення з аргументами X і Y регулюється обмеженням виду один-до-одного, що забезпечує цілісність цього відношення, то це означає, що для заданого значення X існує тільки одне значення Y, яке задовольняє це відношення, а для заданого значення Y існує тільки одне значення X, що задовольняє це відношення. Наприклад, між студентом і його шифром існує взаємо-однозначна відповідність (ПМ-98-2-05).

Якщо бінарне відношення з аргументами X і Y регулюється обмеженням виду один-до-багатьох, що забезпечує цілісність цього відношення, то це означає, що для заданого значення X може існувати багато значень Y, які задовольняють це відношення, але для заданого значення Y існує тільки одне значення X, що задовольняють це відношення. Наприклад, “батькі-діти”.

Якщо бінарне відношення з аргументами X і Y регулюється обмеженням виду багато-до-одного, що забезпечує цілісність цього відношення, то це означає, що для заданого значення X існує тільки одне значення Y, яке задовольняє це відношення, а для заданого значення Y може існувати багато значень X, що задовольняють це відношення. Наприклад, “уродженець-країна”. У якій-небудь країні може народитися багато людей, але одна людина може бути уродженцем тільки однієї країни.

Якщо бінарне відношення з аргументами X і Y регулюється обмеженням виду багато-до-багатьох, що забезпечує цілісність цього відношення, то це означає, що для заданого значення X може існувати багато значень Y, які задовольняють це відношення, а для заданого значення Y може існувати багато значень X, що задовольняють це відношення. Інакше кажучи, для даного відношення не існує ніяких обмежень. Наприклад, “брат-сестра”.

Для виконання цих обмежень необхідно їх перевіряти при первісному заповненні бази знань і підтримувати при роботі з базою даних (перевіряти при кожному акті додавання чи вилучення фактів з бази даних).

Крім цього, деякі відношення можна охарактеризувати наявністю чи відсутністю наступних властивостей:

  • симетрія (асиметрія);

  • рефлексивність(нерефлексивність);

  • транзитивність(нетранзитивність).

4.6.2. Властивості відношень бази знань і їхня підтримка в програмі на tp симетрія і асиметрія

Відношення між двома сутностями будуть симетричними, якщо ролі цих сутностей взаємозамінні. Для ПРОЛОГу це значить, що, якщо предикат має властивість симетрії, то порядок задання аргументів у даному запиті не буде мати значення. Наприклад, “брат-або-сестра”.

Нехай у базі даних буде два факти:

брат-або-сестра(василь, тетяна).

брат-або-сестра(тетяна, марія).

Запит:

брат-або-сестра(василь, тетяна).

Так

Але

брат-або-сестра(тетяна, василь).

Ні

Це говорить про те, що yведена тут реалізація відношення “брат-або-сестра” несиметрична.

Існує два шляхи реалізації властивості симетричності в ПРОЛОЗі:

1. До кожного факту виду

ім'я(а, б).

необхідно додавати факт

ім'я(б, а);

2. Написати предикат, що посилається на явну базу даних

брат_сестра(А, Б):-брат_або_сестра(А, Б).

брат_сестра(А, Б):-брат_або_сестра(Б, А).

Зрозуміло, що другий спосіб більш привабливий.

Відношення, що не є симетричним, називається асиметричним, наприклад, “батько-син”.

За умовчанням інтерпретатор ПРОЛОГу вважає, що усі відношення асиметричні.