Лабораторна робота №
Тема: Робота з секціями IDE ESTA.
Мета: Розглянути синтаксис секцій системи ESTA; ознайомитися з керуючими конструкціями секцій; навчитися створювати їх для побудови власної бази знань.
Хід виконання роботи:
Найвищий рівень представлення знань в ESTA складається з секцій. Консультація будь-якої бази знань починається з секції start, тому вона обов’язкова для кожної бази знань. Секції в ESTA -це логічні блоки, в межах кожного з яких виконується аналіз певних даних з метою подальшого переключення на іншу секцію, чи виведення порад.
Для створення нової секції виберіть Section->New Section, і в вікно мал. 1 введіть назву секції.
Мал. 1 Створення секції в ESTA
Після чого відкривається вікно опису секції:
Розглянемо синтаксис секцій:
section Vik : ' '
if (vik>=18) and (vik<=30) (do simstan)
if vik>30 (do dity)
if vik<=17 (advice 'Такого працівника в супермаркеті немає')
section dity : ' '
if dity=0 advice 'У даного працівника немає дітей' do prem
if dity>0 do prem
section prem : ' '
if stat='option_1'and staw>=7 advice 'Працівник 'prizvywe' 'imja' 'отримує від вищого керівництва щоквартальну премію за перевиконання квартального плану. І є менеджером з продажу електротехніки'
if stat='option_1'and (staw>0) and (staw<6) advice 'Працівник 'prizvywe' 'imja' 'pobat' отримує від вищого керівництва місячну премію за хорошу організацію роботи. І займає посаду адміністратора'
if stat='option_1'and staw=0 advice 'Працівник 'prizvywe' 'imja' 'pobat' не отримує від вищого керівництва жодного преміювання. І є продавцем у відділі побутової техніки'
if stat='option_2'and staw>=6 advice 'Працівниця 'prizvywe' 'imja' 'pobat' отримує щомісячну премію за сумлінне виконання своїх обов’язків. На даний час займає посаду: “заввіділом господарських товарів'
if stat='option_2'and (staw>0) and (staw<5) advice 'Працівниця 'prizvywe' 'imja' 'pobat' отримує від вищого керівництва премію у випадку виконання поставленого плану у встановлений термін жодного преміювання. І є продавцем у відділі побутової техніки'
if stat='option_2'and staw=0 advice 'На даний момент працівниця 'prizvywe' 'imja' 'pobat' не отримує від вищого керівництва жодного преміювання, оскільки має малий стаж роботи. Працює продавцем-консультантом. Кар’єрний ріст передбачається у випадку сумлінного виконання своїх обовязків'
Як видно, секція складається з назви (section-name), опису(description-text) та кількох параграфів. Якщо параграф містить логічний вираз, то спочатку обислюється цей вираз і в випадку його істинності чи коли параграф не містить логічний виразів, виконуються дії, згідно порядку записаному в параграфі. Дії в ESTA є такі:
advice -виводить пораду яка вказана в лапках;
assign -використовується для присвоєння значень параметрам;
call -викликає вбудовані процедури
chain -дозволяє почати консультацію з нової бази знань (використовується в випадку, коли система розбита на кілька баз знань);
do -переведення контролю виконання на іншу секцію;
do_section_of -приймає аргументом перерахований параметр і виконує керування згідно вибраного значення цього параметра;
exit -вихід з режиму консультації;
stop -ця дія може використовуватися для оптимізації
section simstan : ' '
if stan='option_1' do dity
if stan='option_2' do dity
section start : ' '
if (first=true)and(stat)and(prizvywe<>'')and(imja<>'')and(pobat<>'') do Vik
if first=false (stop)
Для розгляду структури секцій вашої бази знань потрібно вибрати Section->Draw section tree
Щоб побачити список всіх секцій вашої БЗ виберіть Section->List all sections: