donc je voulais créer une règle qui va comme ceci en pseudo-codeTechniques de liaison de motifs dans JESS?
IF ?subject in ?course with ?schedule is still available
OR
IF ?subject in ?course2 with ?schedule2 is still available
THEN assert ?subject
Je pensais que je pouvais utiliser des contraintes conjonctifs comme
(or (and (course ?course) (sched ?sched))
(and (course ?course1) (sched ?sched1)))
Je le Deftemplate et Deffacts suivant.
(deftemplate subject-information
(slot name)
(slot course)
(slot prerequisite)
(multislot sem-offered)
(slot priority-lvl)
(slot units)
(slot section)
(slot schedule)
(slot day))
(deffacts subject-info
(subject-information
(name CS222)
(course BSIT)
(prerequisite Math101)
(prerequisite2 CS111)
(sem-offered 2)
(priority-lvl 3)
(units 4)
(section C)
(schedule 1330-1455)
(day MW)
(add-day TTH))
(subject-information
(name CS222)
(pre-requisites CS111)
(pre-requisites2 Math101)
(course BSCS)
(sem-offered 2 3)
(priority-lvl 3)
(units 4)
(section A)
(schedule 1200-1325)
(day MW)))
J'ai deux deffacts du sujet SAME avec différentes sections pour différents cours. J'ai un étudiant avec le cours BSCS, ce que je veux, c'est que le programme trouve un cours pour BSCS qui corresponde à son emploi du temps, mais s'il n'en trouve aucun. Il va vérifier l'horaire d'une autre classe.
Aucune valeur (nom de sujet?) Ne correspond à un fait dans la mémoire de travail et l'extrait de code Jess ne fait pas référence à un nom de modèle, cela n'a donc aucun sens. Peut-être que vous éditez votre question pour montrer votre problème: le deftemplate, et les faits qui devraient correspondre ou ne pas correspondre. – laune
J'ai déjà ajouté mon deftemplate et deffacts. –