Объекты Java не запускают правило jessJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Объекты Java не запускают правило jess

Сообщение Anonymous »

Я пытаюсь включить jess в существующую Java-систему. та часть, которую я хочу, чтобы Джесс заменил, выбирает правила, основанные на игроках, включающие в себя сыгранные игры и т. д. Я разработал правила в отдельном файле клипа, который выполняю внутри eclipse. я делал это раньше в аналогичной системе. в текущей системе, когда я перемещаю часть создания данных в Java, правила, связанные с данными, не срабатывают. Я включил образцы данных, созданных Java, в код задачи — f-1, тот же clp, но с жестко запрограммированными фактами — f-10. я просто включил по одному факту из каждого запуска, чтобы сэкономить место.
Java явно создает достоверные факты. одно отличие — MAIN::JCJessPlayer против MAIN::player. я не уверен, что является причиной этого.
поэтому мой вопрос: почему эти факты не вызывают срабатывание проверки на факт? любая помощь будет оценена по достоинству.
Джон
;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;
; Цели MatchBuilder:
; 1) все играют одинаковое количество игр
; 2) игрок, ожидающий самого длинного, играет следующим
; 3) минимизировать команды с одинаковыми игроками
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;

Код: Выделить всё

(import com.soundsoftware.boccemgrjess.JCJessPlayer)

(deftemplate player  (declare (from-class JCJessPlayer)))

(watch activations)

(defrule start-execution
(declare (salience 50))
=>
; (facts)
(printout t "Executing"   crlf))

(defrule test-for-a-fact
(declare (salience 40))
(player (initials ?i))
=>
(printout t "Player"  ?i crlf))

(defrule finalize
(declare (salience -10))
=>
(facts)
(printout t "Done"   crlf)
)
Факты, сгенерированные Java

Код: Выделить всё

==> Activation: MAIN::start-execution :  f-0
==> Activation: MAIN::finalize :  f-0
Executing
f-0   (MAIN::initial-fact)
f-1   (MAIN::JCJessPlayer (available TRUE) (candidate FALSE) (class ) (gamesPlayed 0) (initials "LZA") (key "fe75d3c4-d6fc-483e-b3a9-f90d42b88849") (lastplaytime 100) (picked FALSE) (OBJECT ))
Всего 11 фактов в модуле MAIN.
Готово
Жестко запрограммированные дефакты

Код: Выделить всё

==> Activation: MAIN::start-execution :  f-0
==> Activation: MAIN::finalize :  f-0
==> Activation: MAIN::test-for-a-fact :  f-1
==> Activation: MAIN::test-for-a-fact :  f-2
==> Activation: MAIN::test-for-a-fact :  f-3
==> Activation: MAIN::test-for-a-fact :  f-4
==> Activation: MAIN::test-for-a-fact :  f-5
==> Activation: MAIN::test-for-a-fact :  f-6
==> Activation: MAIN::test-for-a-fact :  f-7
==> Activation: MAIN::test-for-a-fact :  f-8
==> Activation: MAIN::test-for-a-fact :  f-9
==> Activation: MAIN::test-for-a-fact :  f-10
Executing
PlayerLZA
PlayerJZU
PlayerAZU
PlayerAZJ
PlayerJZC
PlayerPZH
PlayerBZU
PlayerKZU
PlayerMZW
PlayerDZW
f-0   (MAIN::initial-fact)

f-10   (MAIN::player (available true) (candidate false) (class ) (gamesPlayed 0) (initials "LZA") (key ) (lastplaytime 10) (picked false) (OBJECT nil))
Всего 11 фактов в модуле MAIN.
Готово

Подробнее здесь: https://stackoverflow.com/questions/792 ... -jess-rule
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»