Если у вас уже загружен код, введите команду очистки, прежде чем пытаться загрузить тот же код во второй раз. Это приведет к удалению сообщения об ошибке [CSTRCPSR4].
У вас отсутствуют скобки в правилах сестры и предшественника. Их исправление позволит загружать правила без ошибок.
(defrule sister
(children ?z ?x)
(children ?z ?y)
(female ?x)
(not (test (eq ?x ?y)))
=>
(assert (sister ?x ?y))
(printout t ?x "is a sister to " ?y crlf))
(defrule predecessor
(or
(children ?x ?y)
(and (children ?x ?z)(predecessor ?z ?y))
)
=>
(assert (predecessor ?x ?y))
(printout t ?x "is a predecessor to " ?y crlf))
Эти правила по-прежнему не будут выполняться с вашим существующим кодом, поскольку они требуют наличия дочерних и женских фактов, и ни одно из ваших правил не утверждает эти факты.
Не ясно, что вы пытаетесь сделать со своим старым правилом, но, поскольку вы пытаетесь сопоставить два значения в интервале возраста, это правило вызовет ошибки, поскольку этот интервал может содержать только одно значение.