(assert (a)) (facts) (assert (essaie "cou-cou" 1 1.1)) (facts) (reset) (clear) (assert (a)) (assert (a)) (set-fact-duplication TRUE) (assert (a)) (assert (a)) (facts) (deftemplate person ; une relation pour un person "record pour une person" ; commentaire optionnel (slot name ; nom du person (type STRING) ; Type chaine de caractères (default "Pierre Dupont")) ; Par défaut (slot age (type INTEGER) ; age est un entier (default -1)) ; si on ne sait pas ) (assert (person)) (assert (person (name "joe"))) (assert (person (name "jim") (age 39))) (facts) (list-deftemplates) (ppdeftemplate person) (undeftemplate person) ;; allowed symbols example (clear) ;; On peut limiter les valeurs possible (deftemplate person ; une relation pour un person "record pour une person" ; commentaire optionnel (slot name ; nom du person (type STRING) ; Type chaine de caractères (default "Pierre Dupont")) ; Par défaut (slot age ; masculin ou féminine (type NUMBER) ; age est un entier (default -1) ; si on ne sait pas (range -1 120)) ; declare les valeurs possible (slot metier ; sa métier (type SYMBOL) (allowed-symbols artiste ingenieur comercant) ) ) (assert (person)) ;; deffacts example (deftemplate emplacement (slot nom (type SYMBOL) (default NIL)) (slot x (type NUMBER) (default -1)) (slot y (type NUMBER)(default -1)) (multislot voisins (default NIL)) ) (deffacts reseaux-d-emplacements (emplacement (nom A) (x 0) (y 0) (voisins B C)) (emplacement (nom B) (x 0) (y 1) (voisins A D)) (emplacement (nom C) (x 1) (y 0) (voisins A I)) ) (clear) (deffacts faits-de-nuit "Ceux-ci sont vrai le nuit" (soleil couche) (etoiles visibles) ) (reset) ;; rule examples (set-fact-duplication TRUE) (defrule eat-cookies (cookie) => (printout t "I want a cookie" crlf)) (assert (cookie)) (assert (cookie)) (facts) (clear) ;; variables d'indice (defrule rule-A ?f <- (a) => (printout t "Il Existe " ?f crlf) ) (assert (a)) (run) (defrule rule-A ?f <- (a) => (printout t "Retracting " ?f crlf) (retract ?f) ) (assert (a)) (run)