Apply_rules(Trole:Tval, Froles):-

Rule(Trole:Tval,Frole_list),

Unify(Froles,Frole_list).

unify([],[]).

unify([H:Val|T],[H1:Val1|T1]):-

Member(Val,Val1),

Unify(T,T1).

Система в начале применяет правила для определения значения term. Затем использует правила для определения investment. Это достигается добавлением двух подцелей apply_rules в запускающем предикате fa:

Fa:-

fa_frame([Interest,Revenues,Expenses,Risk,Term,Investment]),

bind_all([Interest,Revenues,Expenses,Risk],1),

apply_rules(Term,[Interest,Revenues,Expenses]),

apply_rules(Investment,[Risk,Term]),

get_explain([Interest,Revenues,Expenses,Risk,Term,Investment]).

Объяснения результатов консультаций

Естественным желанием пользователя является получение объяснения по выведенному системой ответу. Часто упростить объяснение гораздо сложнее, чем просто описать систему. Например, в большинстве систем в процессе извлечения информации можно задать вопрос «Почему?» Система в этом случае представляет объяснение достижения цели, которую она пыталась вывести по текущему запросу. Когда ответ найден, пользователь может задать вопрос «Как?» Система просматривает рассуждения в обратном направлении, через цепочку целей, которые были выведены в порядке их появления в решении. Очевидно, построение более простого понятного объяснения не намного сложнее, чем описать систему. Иными совами, текст объяснения фрагментируется таким образом, что при соответствующем соединении фрагментов был получен осмысленный вывод системы.

Текст объяснения является некоторой процедурной связью в слоте. Если части текста объяснения построены аккуратно, в совокупности они должны соответствовать состоянию системы.

Explain(interest:down,'Поскольку вы ожидаете снижение ставки прибыли, то было бы естественным сделать долговременные инвестиции, чтобы сохранить высокую текущую прибыль').

Explain(interest:up,'Поскольку вы ожидаете повышение ставки прибыли, было бы естественным сделать короткие инвестиции, что позволит вам позднее реинвестировать высокие прибыли').

Explain(interest:unchanged,'Поскольку вы ожидаете неизменной ставку прибыли, окажутся неизменными и сроки выплаты ваших инвестиций').

Explain(revenues:'-','Так как годовой доход может быть меньше ожидаемого').

explain(revenues:'+','Так как годовой доход должен быть больше ожидаемого').

explain(revenues:'=','Отклонение годового дохода от бюджета маловероятно').


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: