JESS için yeni ve işlevselliğini biraz biliyorum. Öğrencinin id numarası isteyen ve programın gittiği ve öğrencinin konularını alan bir programım var.Kurallar etkinleşiyor, ancak ateş etmiyor JESS
Buradaki bir şey prosedürün bitiminde program, kullanıcıya başka bir öğrencinin konularını almak isteyip istemediğini sorar. Kullanıcı başka bir öğrenciyi girmek isterse, ateş eden ilk kurala geri döner, fakat bunu denediğimde, kural sadece aktiftir ve ateş etmemiştir.
Sorun ne olabilir? Tabii ki (koş) olduğundan emin oldum.
İşte kodum.
(defrule check-subject
?a <- (phase check-back)
?stud <- (lookupID (id ?id))
(student-information (id-number ?id)
(course ?course)
(subjects-taken $?taken)
(year ?year)
(semester ?sem))
(prospectus-information (curriculum-name ?course)
(1st-year-1st-sem-subjects $?subjects1))
=>
(printout t "Student took: " (intersection$ $?taken $?subjects1) crlf)
(printout t "Student flunked: " (complement$ $?taken $?subjects1) crlf)
(assert (back-subject (complement$ $?taken $?subjects1)))
(retract ?a ?stud)
(ask))
Ve faz seçim-öğrenci,
(defrule student-select
(phase choose-student)
=>
(printout t "Input Student ID: ")
(assert (lookupID (id (read)))))
öğrenci seçme kuralı
iddia aktive ama asla yangınlar olduğunda işlev(deffunction ask()
(printout t "Consult another? (y/n) ")
(if (eq (read) y)
then (assert (phase choose-student))))
Ve defrule sormak var. Programım orada durur.
Sorun Jess kodunda bir hatadır. Bu, ilgili koda bakabilecek insanlar tarafından keşfedilebilir ve tespit edilebilir. – laune
Gönderiyi düzenledim. Lütfen bana yardım et. Teşekkür ederim. –
Herhangi bir kullanımda olup olmadıklarını * kabul ettiğinizden emin olun. "Teşekkür ederim" yazmaları gerekli değil. – laune