У меня есть два плана в агенте Jason, работающем на платформе JaCaMo 0.8.По какой-то причине первый план считается неприменимым, поэтому выбирается второй план.
Мой вопрос: как узнать, какая часть выражения превращает контекст в ложное?
// get cached Fundamentals if earlier data are younger than 30 minutes
+!opinion(T)[source(Q)]
: .term2string(T,S) & fundamentals::preco(S,_)[seconds_of_day(SSS)] & .time(HH,MM,SS) & (SS+MM*60+HH*60*60 - SSS < 30*60)
& .date(YY,OO,DD) & lastDate(YYY,OOO,DDD) & YY == YYY & OO == OOO & DD == DDD
& fundamentals::lpa(S,_) & fundamentals::vpa(S,_)
<-
.print("Getting cached fundamentals from ",S);
!reply(S,Q);
.
// get Fundamentals again
+!opinion(T)[source(Q)] : .term2string(T,S) & .date(YY,OO,DD) <-
.print("Getting fundamentals from ",S);
getFundamentals(S);
-+lastDate(YY,OO,DD);
!reply(S,Q);
.
Я установил файл looging.properties для отладки FINE, часть выводадля ссылочного агента:
> [greenblatt] Start new reasoning cycle [greenblatt] Selected event
> +!opinion(ALUP11)[source(myPA)] [greenblatt] Selected intention intention 118:
> +!opinion(ALUP11)[source(myPA)] <- ... .print("Getting fundamentals from ",S); getFundamentals(S); -+lastDate(YY,OO,DD);
> !reply(S,Q) / {YY=2019, OO=2, DD=23, Q=myPA, S="ALUP11", T=ALUP11}
> [greenblatt] Getting fundamentals from ALUP11 [greenblatt] Start new
> reasoning cycle
Мне не хватает некоторой информации в этом журнале, например: ".term2string (T, S) & Основы :: preco (S, _)[seconds_of_day (SSS)] & .time (HH, MM, SS) & (SS + MM * 60 + HH * 60 * 60 - SSS <30 * 60) "считалось верным?Как узнать такую информацию? </p>