Добавил:
oih07968
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:DialogWindow2
.txt (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)))
)
(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)))
)
Соседние файлы в предмете Интеллектуальные информационные системы