Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

DialogWindow2

.txt
Скачиваний:
1
Добавлен:
18.02.2023
Размер:
2.23 Кб
Скачать
(defrule borrowers
(Account (name ?name) (rule credit) (value ?value))
(test (> ?value 0))
=>
(printout t "Found " ?name crlf)
)

(defrule depositors
(Account (name ?name) (rule deposit) (value ?value))
(test (> ?value 0))
=>
(printout t "Found " ?name crlf)
)

(defrule bad-borrowers
(or (Account (name ?name) (rule payment-delay) (value ?value))
(Account (name ?name) (rule jobless) (value ?value))
(Account (name ?name) (rule law-trouble) (value ?value)))
=>
(printout t "Found " ?name crlf)
)

(defrule good-borrowers
(or (Account (name ?name) (rule early-repayment) (value ?value))
(Account (name ?name) (rule deposit) (value ?value)))
=>
(printout t "Found " ?name crlf)
)

(defrule vip
(Account (name ?name) (rule own-property) (value ?value))
(test (>= ?value 4))
=>
(printout t "Found " ?name crlf)
)

(defrule useless-facts
(forall
(Account (name ?name) (rule ?rule) (value ?value))
(not (test (= ?value 0)))
)
=>
(printout t "All right." crlf)
)

(defrule delete-delays
?Account <- (Account (name ?name) (rule payment-delay) (value ?value))
=>
(retract ?Account)
(printout t "Delete " ?name ": " ?value crlf)
)

(defrule bad-credits
(Account (name ?name) (rule credit) (value ?value))
(exists (Account (name ?name) (rule jobless)))
=>
(printout t "Found " ?name crlf)
)

(defrule discount
(Account (name ?name) (rule early-repayment) (value ?value))
(not (exists (Account (name ?name) (rule payment-delay))))
=>
(printout t "A discount for " ?name " is available." crlf)
)

(defrule combine-facts
?Account <- (Account (name ?name) (rule ?rule) (value ?value))
(exists (Account (name ?name) (rule ?rule) (value ?value-2)))
?Account-2 <- (Account (name ?name) (rule ?rule) (value ?value-2))
(test (<> ?value ?value-2))
=>
(retract ?Account)
(retract ?Account-2)
(assert (Account (name ?name) (rule ?rule) (value (+ ?value ?value-2))))
(printout t "New fact: " ?name " " ?rule " " (+ ?value ?value-2) crlf)
)

(defrule add-data
(logical (Account (name ?name) (rule payment-delay) (value ?value)))
(not (exists (Account (name ?name) (rule credit) (value ?value))))
=>
(assert (Account (name ?name) (rule credit) (value ?value)))
)
Соседние файлы в предмете Интеллектуальные информационные системы