(import-rdf "http://lpis.csd.auth.gr/systems/dr-device/carlo/carlo_ex.rdf") (export-rdf "export-carlo.rdf" acceptable rent) (competing_rules cr1 r10 r11 r12) (defeasiblerule r1 (carlo:apartment (carlo:name ?x) ) => (acceptable (apartment ?x) ) ) (defeasiblerule r2 (declare (superior r1)) (carlo:apartment (carlo:name ?x) (carlo:bedrooms ?y & : (< ?y 2) ) ) => (not (acceptable (apartment ?x) ) ) ) (defeasiblerule r3 (declare (superior r1)) (carlo:apartment (carlo:name ?x) (carlo:size ?y & : (< ?y 45) ) ) => (not (acceptable (apartment ?x) ) ) ) (defeasiblerule r4 (declare (superior r1)) (carlo:apartment (carlo:name ?x) (carlo:pets "no") ) => (not (acceptable (apartment ?x) ) ) ) (defeasiblerule r5 (declare (superior r1)) (carlo:apartment (carlo:name ?x) (carlo:lift "no") (carlo:floor ?y & : (> ?y 2) ) ) => (not (acceptable (apartment ?x) ) ) ) (defeasiblerule r6 (declare (superior r1)) (carlo:apartment (carlo:name ?x) (carlo:price ?y & : (> ?y 400) ) ) => (not (acceptable (apartment ?x) ) ) ) (defeasiblerule r7 (carlo:apartment (carlo:name ?x) (carlo:size ?y & : (>= ?y 45) ) (carlo:gardenSize ?z) (carlo:central "yes") ) => (calc (bind ?a (+ 300 (* 2 ?z) (* 5 (- ?y 45) ) ) ) ) (offer (apartment ?x) (amount ?a) ) ) (defeasiblerule r8 (carlo:apartment (carlo:name ?x) (carlo:size ?y & : (>= ?y 45) ) (carlo:gardenSize ?z) (carlo:central "no") ) => (calc (bind ?a (+ 250 (* 2 ?z) (* 5 (- ?y 45) ) ) ) ) (offer (apartment ?x) (amount ?a) ) ) (defeasiblerule r9 (declare (superior r1)) (offer (apartment ?x) (amount ?y) ) (carlo:apartment (carlo:name ?x) (carlo:price ?z & : (< ?y ?z) ) ) => (not (acceptable (apartment ?x) ) ) ) (defeasiblerule find_cheapest (acceptable (apartment ?x) ) (carlo:apartment (carlo:name ?x) (carlo:price ?z) ) (naf (and (acceptable (apartment ?y & ~ ?x) ) (carlo:apartment (carlo:name ?y) (carlo:price ?w & : (< ?w ?z) ) ) )) => (cheapest (apartment ?x) ) ) (defeasiblerule find_largest (acceptable (apartment ?x) ) (carlo:apartment (carlo:name ?x) (carlo:size ?z) ) (naf (and (acceptable (apartment ?y & ~ ?x) ) (carlo:apartment (carlo:name ?y) (carlo:size ?w & : (> ?w ?z) ) ) )) => (largest (apartment ?x) ) ) (defeasiblerule find_largestGarden (acceptable (apartment ?x) ) (carlo:apartment (carlo:name ?x) (carlo:gardenSize ?z) ) (naf (and (acceptable (apartment ?y & ~ ?x) ) (carlo:apartment (carlo:name ?y) (carlo:gardenSize ?w & : (> ?w ?z) ) ) )) => (largestGarden (apartment ?x) ) ) (defeasiblerule r10 (cheapest (apartment ?x) ) => (rent (apartment ?x) ) ) (defeasiblerule r11 (declare (superior r10)) (cheapest (apartment ?x) ) (largestGarden (apartment ?x) ) => (rent (apartment ?x) ) ) (defeasiblerule r12 (declare (superior r10 r11)) (cheapest (apartment ?x) ) (largestGarden (apartment ?x) ) (largest (apartment ?x) ) => (rent (apartment ?x) ) )