СенбернарВ»): - it_is ("довгошерста собака"),
positive ("у ​​неї", "низько посаджений хвіст"),
positive ("у ​​неї", "доброзичливий характер"),
positive ("її", "вага більше 45 кг"),!.
it_is ("короткошерста собака"): -
positive ("це", "короткошерста собака"),!.
it_is (В«довгошерста собака"): -
positive ("це", "довгошерста собака"),!.
/* Кінець програми */
Експертні системи, що базуються на фактах
В експертних системах, що базуються на фактах, база знань складається з тверджень у вигляді пропозицій логіки предикатів. Такі пропозиції можуть групуватися, утворюючи БД Турбо-Прологу. Правила можуть або описувати дані, або управляти процесом внутрішньою уніфікації Турбо-Прологу. p align="justify"> Так само як і в системі на правилах експертна система, що базується на фактах, має безліч правил, які можуть викликатися за допомогою даних з вхідного потоку. Система має також інтерпретатор, який може вибирати й активізувати модулі, що включаються в роботу системи. p align="justify"> Інтерпретатор виконує різні функції усередині системи на основі такої схеми:
1. Система має пропозиції в базі знань, які управляють пошуком і зіставленням. Інтерпретатор зіставляє ці пропозиції з елементами даних в базі даних.
+2. Якщо може бути викликано більше одного правила, то система використовує можливості Турбо-Прологу для вирішення конфлікту. Отже, користувачеві/програмісту непотрібно розглядати потенційно можливі конфлікти.
. Система отримує результати уніфікаціонним процесу автоматично, тому вони можуть спрямовуватися на потрібне пристрій висновку інформації.
Так само як і у системі, що базується на правилах, даний циклічний процес є процесом розпізнавання-дія. Краса і великі можливості системи, заснованої на фактах, полягають в тому, що вона відображає структуру самого Турбо-Прологу. Цим пояснюється той факт, що вона дуже ефективна в роботі. p align="justify"> Найважливішим аспектом для бази знань у системі, заснованої на фактах, є проектування бази знань, її тверджень і їх структури. База знань повинна мати недвозначну логічну організацію, і вона повинна містити мінімум надлишкової інформації. Так само як і в системі, що базується на правилах, мінімально достатню кількість даних утворюють найбільш ефективну систему. Твердження бази знань для гончака і дога виглядають так:
rule (1, "Собака", "Гонча", [1,2,3,4]).
rule (2, "Собака", "Німецький Дог", [1,5,3,4,6]).
cond (1, "короткошерста").
cond (2, "висота в холці не більше 57 см").
cond (3, "довгі вуха").
cond (4, "доброзичливий характер").
cond (5, "низько посаджений хвіст").
cond (6; "вага більше 45 кг").
Зауважте, що в кожній пропозиції типу rule перший аргумент - номер правила, другий аргумент - тип об'єкта ("собака") і третій аргумент - порода собаки. У нашому випадку це гончак або дог. Список цілих чисел задає номери умов із пропозицій типу cond (умова). Пропозиції типу cond містять все характеристики для будь-якої породи, представленої в базі знань. p align="justify"> Списки номерів умов слугують для зберігання безлічі фактів, згідно з якими обираються пропозиції типу rule. Інтерпретатор в експертній системі, що базується на логіці, використовує ці номери умов, щоб робити відповідний вибір. p align="justify"> Додавання та оновлення пропозицій бази знань є простими операціями (предикати retract і assert). Експертні системи, що базуються на фактах, легко проектувати, розвивати і підтримувати в Турбо-Пролозі, оскільки у міру розширення бази знань програма не вимагає модифікації. Розширення, насамперед, полягає в поступовому додаванні нових тверджень. br/>
Лістинг
/* Програма: Експерт по породах собак */
/* Приклад експертної системи, що базується на логіці */
domains = integer * = integer *
/* Предикати бази даних */(integer, symbol, symbol, conditions) (integer, symbol) (integer) (integer)
predicates
/* Предикати системи користувальницького інтерфейсу */
do_expert_job_consulting (symbol)
/* Предикати механізму виведення */(history, symbol) (integer, history, conditions) (history, integer...