Как отладить Джейсона, чтобы проверить, какие параметры сделали план неприменимым? - PullRequest
0 голосов
/ 24 февраля 2019

У меня есть два плана в агенте 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>

1 Ответ

0 голосов
/ 25 февраля 2019

вы можете сохранить в файле состояние ума агента для каждого цикла, а затем проверить эти файлы, чтобы получить некоторую подсказку о том, что не удалось.

В JaCaMo вы можете настроить этот журнал в записи агента:

agent bob {
     mindinspector="file(cycle,xml,log)"
}

Последний параметр - это имя каталога, в котором будут храниться файлы.Каждый файл соответствует образцу ума.Это XML-файлы с подходящими таблицами стилей для просмотра в браузерах.

Конечно, этот журнал требует довольно много места / времени для создания и будет влиять на производительность вашего приложения.

...