Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция№6.docx
Скачиваний:
2
Добавлен:
20.08.2019
Размер:
68.48 Кб
Скачать

Способи подання бази знань

Існує декілька способів подання бази знань засобами мови ПРОЛОГ. Розглянемо їх.

1) множество фактов, каждый из которых соответствует целостному информационному элементу *) (т.е. записи) базы данных;

2) множество фактов, каждый из которых соответствует паре значезначений атрибут/ключ;

3) список структур, в котором каждая структура соответствует записи базы данных;

4) линейная рекурсивная структура, где каждая структура соответствует записи базы данных;

5) рекурсивная структура в виде двоичного дерева, в которой кадый узел дерева соответствует записи базы данных.

В оставшейся части раздела показано представление базы данных "сл" каждым из пяти названных способов. Для каждого представления приводится запрос, позволяющий найти всех служащих отдела 100.

4.2.1. Представлення цілісних інформаційних елементів у вигляді фактів

Простейшим способом представления базы данных в язке Пролог служит запись каждого целостного информационного элемента в виде факта:

/* Имя Отдел Должность Оклад */

сл1 (иванов, 100, оператор, 200).

сл1 (петров, 200, керівник, 700).

сл1 (сидоров, 100, менеджер, 715).

Щоб надрукувати всіх службовців відділу 100 можна у вікні Dialоg поставити таку ціль “сл1 (Имя, 100, Должнось, _ )”.

Ім'я =иванов

Должность =оператор;

Ім'я =Сидоров

Должность =менеджер;

нет

Зверніть увагу, що на місці окладу поставлено анонімну змінну. Це означає, що в даному запиті нас не цікавить оклад. Але для дотримання синтаксису його наявність у запиті необхідна.

4.2.2. Подання атрибутів у вигляді фактів

Вместо того, чтобы записывать факты, содержащие целостные информационные элементы, можно использовать в качестве фактов отдельные атрибуты (т.е. свойства) этих информационных элементов. В случае необходимости данные атрибуты можно собрать в единое целое при помощи правила. Один из атрибутов должен выступать в роли ключа,

объединяющего все остальные свойства. Атрибут "имя" можно использовать в качестве ключа для базы данных "служащий". Первый целостный информационный эпемеит "служащий" можно представить таким образом:

отдел (иванов,100).

должность (иванов, оператор).

оклад (иванов,100).

отдел (петров,200).

должность (петров, керівник).

оклад (петров, 700).

отдел (сидоров, 100).

должность (сидоров, менеджер).

оклад (сидоров, 715).

Все атрибуты служащего можно объединить при помощи правила:

сл2 (Имя, Отдел, Должность, Оклад):-

отдел (Имя, Отдел),

должность (Имя, Должность),

оклад (Имя, Оклад).

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

сл2 (Имя, 100, Должность, _ ).

Применение атрибутов является более гибким средством представления базы данных, чем применение целостных информационных элементов, поскольку новые атрибуты можно, добавлять без переписывания заново всей существующей базы данных. Приведем пример правила, в котором предписывается выдача премии в 1000 долл. всем служащим отдела 100.

Это описывается при помощи атрибута "премия":

премия(Имя, 1000):- % Видати премію в розмірі 1000 грн.

отдел(Имя, 100). % службовцем відділу 100

Додавання цих атрибутів ніяк не вплине на вищенаведене правило для сл2.