Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (deffacts init
- (h 0 0 0 0 0 x 0 0 0 0 0 x 0 0 0 0 0 x 0 0 0 0 0)
- (vezeteknev egressy)
- (vezeteknev fenyvesi)
- (vezeteknev gallyas)
- (vezeteknev jeney)
- (vezeteknev vadkerti)
- (keresztnev edina)
- (keresztnev frida)
- (keresztnev gabriella)
- (keresztnev jozsef)
- (keresztnev vince)
- (egyetem budapest)
- (egyetem debrecen)
- (egyetem miskolc)
- (egyetem pecs)
- (egyetem szeged)
- (szak biologia)
- (szak informatika)
- (szak jog)
- (szak kemia)
- (szak magyar)
- )
- (defrule remove-duplicated-vezeteknev (declare (salience 10)) (vezeteknev ?v) ?f <- (h $? ?v $? ?v $?) => (retract ?f))
- (defrule remove-duplicated-keresztnev (declare (salience 10)) (keresztnev ?v) ?f <- (h $? ?v $? ?v $?) => (retract ?f))
- (defrule remove-duplicated-egyetem (declare (salience 10)) (egyetem ?v) ?f <- (h $? ?v $? ?v $?) => (retract ?f))
- (defrule remove-duplicated-szak (declare (salience 10)) (szak ?v) ?f <- (h $? ?v $? ?v $?) => (retract ?f))
- (defrule add-vezeteknev0
- (vezeteknev ?v)
- (h 0 $?r x $?a1 x $?a2 x $?a3) =>
- (assert (h $?v $?r x $?a1 x $?a2 x $?a3))
- )
- (defrule add-vezeteknev
- (vezeteknev ?v)
- (h $?l 0 $?r x $?a1 x $?a2 x $?a3)
- (test (neq $l 0))
- =>
- (assert (h $?l $?v $?r x $?a1 x $?a2 x $?a3))
- )
- (defrule remove-nullaV ?f <- (h $?a 0 $?b x $?c x $?d x $?e) => (retract ?f))
- (defrule add-keresztnev0
- (keresztnev ?v)
- (h $?a0 x 0 $?r x $?a1 x $?a2) =>
- (assert (h $?a0 x $?v $?r x $?a1 x $?a2))
- )
- (defrule add-keresztnev
- (keresztnev ?v)
- (h $?a0 x $?l 0 $?r x $?a1 x $?a2)
- (test (neq $l 0))
- =>
- (assert (h $?a0 x $?l $?v $?r x $?a1 x $?a2))
- )
- (defrule remove-nullaK ?f <- (h $?a x $?b 0 $?c x $?d x $?e) => (retract ?f))
- (defrule add-egyetem0
- (egyetem ?v)
- (h $?a0 x $?a1 x 0 $?r x $?a2) =>
- (assert (h $?a0 x $?a1 x $?v $?r x $?a2))
- )
- (defrule add-egyetem
- (egyetem ?v)
- (h $?a0 x $?a1 x $?l 0 $?r x $?a2)
- (test (neq $l 0))
- =>
- (assert (h $?a0 x $?a1 x $?l $?v $?r x $?a2))
- )
- (defrule remove-nullaE ?f <- (h $?a x $?b x $?d 0 $?e x $?g) => (retract ?f))
- (defrule add-szak0
- (szak ?v)
- (h $?a0 x $?a1 x $?a2 x 0 $?r) =>
- (assert (h $?a0 x $?a1 x $?a2 x $?v $?r))
- )
- (defrule add-szak
- (szak ?v)
- (h $?a0 x $?a1 x $?a2 x $?l 0 $?r)
- (test (neq $l 0))
- =>
- (assert (h $?a0 x $?a1 x $?a2 x $?l $?v $?r))
- )
- (defrule remove-nullaS ?f <- (h $?a x $?b x $?d x $?e 0 $?g) => (retract ?f))
- ; 1. a fenyvesi vezeteknevu lany jogot tanul, de nem debrecenben
- (defrule remove-1a (declare (salience 20))
- ?f <- (h $?a fenyvesi $?b x $?c x $?d x $?e jog $?)
- (test (neq (length$ $?a) (length $?e)))
- =>
- (retract ?f)
- )
- (defrule remove-1b (declare (salience 20))
- ?f <- (h $?a fenyvesi $?b x $?c x $?d debrecen $?)
- (test (eq (length$ $?a) (length $?d)))
- =>
- (retract ?f)
- )
- (defrule remove-1c (declare (salience 20))
- ?f <- (h $?a fenyvesi $?b x $?c vince $?)
- (test (eq (length$ $?a) (length $?c)))
- =>
- (retract ?f)
- )
- (defrule remove-1d (declare (salience 20))
- ?f <- (h $?a fenyvesi $?b x $?c jozsef $?)
- (test (eq (length$ $?a) (length $?c)))
- =>
- (retract ?f)
- )
- ; 2. jozsef (nem o gallyas) az egyik fővárosi egyetemen tanul, de nem biologiat
- (defrule remove-2a (declare (salience 10))
- ?f <- (h $?a gallyas $?b x $?c jozsef $?d x $?)
- (test (eq (length$ $?a) (length $?c)))
- =>
- (retract ?f)
- )
- (defrule remove-2b (declare (salience 10))
- ?f <- (h $?a x $?b jozsef $?c x $?d budapest $?)
- (test (neq (length$ $?b) (length $?d)))
- =>
- (retract ?f)
- )
- (defrule remove-2c (declare (salience 10))
- ?f <- (h $?a x $?b jozsef $?c x $?d x $?e biologia $?)
- (test (eq (length$ $?b) (length $?e)))
- =>
- (retract ?f)
- )
- ; 3. vadkerti gabriella nem a szegedi kemiaszakos hallgato
- (defrule remove-3a (declare (salience 10))
- ?f <- (h $?a vadkerti $?b x $?c gabriella $?d x $?)
- (test (neq (length$ $?a) (length $?c)))
- =>
- (retract ?f)
- )
- (defrule remove-3b (declare (salience 10))
- ?f <- (h $?a x $?b gabriella $?c x $?d szeged $?)
- (test (eq (length$ $?b) (length $?d)))
- =>
- (retract ?f)
- )
- (defrule remove-3c (declare (salience 10))
- ?f <- (h $?a x $?b gabriella $?c x $?d x $?e kemia $?)
- (test (eq (length$ $?b) (length $?e)))
- =>
- (retract ?f)
- )
- (defrule remove-3d (declare (salience 10))
- ?f <- (h $?a x $?b x $?c szeged $?d x $?e kemia $?)
- (test (neq (length$ $?c) (length $?e)))
- =>
- (retract ?f)
- )
- ; 4. jeney (o pecsett tanul) keresztneve nem vince
- (defrule remove-4a (declare (salience 10))
- ?f <- (h $?a jeney $?b x $?c vince $?d x $?)
- (test (eq (length$ $?a) (length $?c)))
- =>
- (retract ?f)
- )
- (defrule remove-4b (declare (salience 10))
- ?f <- (h $?a jeney $?b x $?c x $?d pecs $?)
- (test (neq (length$ $?a) (length $?d)))
- =>
- (retract ?f)
- )
- ; 5. frida magyartanár szeretne lenni
- (defrule remove-5a (declare (salience 10))
- ?f <- (h $?a x $?b frida $?c x $?d x $?e magyar $?)
- (test (neq (length$ $?b) (length $?e)))
- =>
- (retract ?f)
- )
- ; 6. edina vezetekneve vagy egressy vagy miskolcon tanul
- (defrule remove-6a (declare (salience 10))
- ?f <- (h $?a egressy $?b x $?c edina $?d x $?e miskolc $?)
- (and (test (not(and (eq (length$ $a) (length $c)) (neq (length$ $c) (length $e))))) (test (not(and (neq (length$ $a) (length $c)) (eq (length$ $c) (length $e))))))
- =>
- (retract ?f)
- )
- ; 7. az informatikusnak keszulo egyetemista nemreg nosult
- (defrule remove-7a (declare (salience 10))
- ?f <- (h $?a x $?b edina $?c x $?e x $?g informatika $?)
- (test (eq (length$ $?b) (length $?g)))
- =>
- (retract ?f)
- )
- (defrule remove-7b (declare (salience 10))
- ?f <- (h $?a x $?b frida $?c x $?e x $?g informatika $?)
- (test (eq (length$ $?b) (length $?g)))
- =>
- (retract ?f)
- )
- (defrule remove-7c (declare (salience 10))
- ?f <- (h $?a x $?b gabriella $?c x $?e x $?g informatika $?)
- (test (eq (length$ $b) (length $g)))
- =>
- (retract ?f)
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement