Засоби Turbo Prolog для створення ЕС

Turbo Prolog застосовується для створення ЕС по наступних причинах:

1.   Він володіє вбудованою системою логічного виводу, заснованій на принципі резолюції

2.   Володіє засобами роботи із списками і рекурсією

3.   Володіє вбудованою базою даних, яка дозволяє працювати із статичними і динамічними знаннями

4.   Володіє зручним механізмом формування правив, тобто базою знань

Існує 2а підходи для реалізації ЕС:

Метод прямого програмування, коли як машина виводу використовується інтерпретатор Turbo Prolog. При цьому база знань описується за допомогою правил. При такому підході ЕС виходить простіше і працює ефективніше. Логічний вивід заснований на зворотному ланцюжку міркувань і пошуку в глибину. Недоліком є те, що будь-які зміни в базі знань потрібно вносити до програми.

 

Машину виводу створюють як мета інтерпретатор, програму інтерпретуючу базу знань, представлену і фактами і правилами. Такі ЕС називаються ЕС на базі логіки. Логічний вивід при такому підході може бути заснований і на прямій, і на зворотному ланцюжку міркувань, а пошук здійснюється і завширшки, і в глибину.

 

Мета інтерпретатор вперше був реалізований Колмерое.

Prav(I,A,S,SP), де

I - ідентифікатор правив; А - ім'я атрибуту, S - значення атрибуту, SP - список умов в правилі.

Ядро машини виводу, яке управляється фактами, має наступний вигляд.

dok([],_,_).

dok([I|SP],A,S):- dok(I,A,S).

dok(I,A,S):-prav(I,A,S,[“ запитати”],otv(A,S)).

dok1(_,A,S):-fact(A,S),!.

dok1(I,_,_):-prav(I,A,S,SP),!,dok(SP,A,S),sap(A,S).

Предикат dok перебирає всі умови правил dok1 або використовує відомі факти, або вимагає підтвердження фактів у користувача.

Невизначеність враховується коефіцієнтом упевненості, які з'ясовуються або у експерта, або у користувача і є окремим термом.

Крім того для роботи з невизначеністю використовуються анонімні змінні.

Семантичні мережі і фрейми в Turbo Prolog

Загальний спосіб представлення семантичних мереж полягає в наступному: дугам відповідають безумовні предикати, що мають принаймні по 2 терми, відповідні вузлам, які вони зв'язують. Правила перетворяться в умовні предикати. Механізм спадкоємства в семантичних мережах реалізується за допомогою правил.

Наприклад, твердження

комп'ютер несправний, якщо несправна деталь”

neisp(X,N):- comp(X,Y),neisp(Y,N).

comp(X,Y):- det(X,Y).

comp(X,Y):- det(X,Z),comp(Z,Y).

Фрейми здійснюються 2-а способами:

1.   slot(frame, A):- 2) frame(slot, A): - ім'я предиката співпадає з ім'ям slot-а, а ім'я frame із значенням параметра

2.   ім'я змінної - з ім'ям frame, а параметрами slot-а є їх імена і їх наповнення.

Спадкоємство в Turboprolog задається правилами.

Наприклад,

персональний комп'ютер успадковує властивості комп'ютера”.

PC(slot, R):-comp(slot, R).

PC(Призначення ”, Text):-write(Text).