;;; -*- Mode: LISP; Package: GTRE-EXAMPLE; Syntax: Common-lisp; -*-
;;;
;;; *******************************************************
;;;
;;; PORTABLE AI LAB - EPFL
;;;
;;; *******************************************************
;;;
;;; Filename:   new-example.cl
;;; Short Desc: Template for new TMS examples
;;; Version:    1.0
;;; Status:     template
;;; Last Mod:   15.9.92
;;; Authors:    FFA and DTA
;;;
;;;


;;; =======================================================================
;;; PACKAGE DECLARATIONS
;;; =======================================================================

(in-package :gtre-example)

(import '(pail-lib::tre-example
	  gtre::rule
	  gtre::assert!
	  gtre::rassert!
	  gtre::retract!
	  gtre::rretract!
	  gtre::contradiction
	  gtre::GOD
	  gtre::USER
	  ))

;;; =======================================================================
;;; TMS Example
;;; =======================================================================

(let ((swimming (make-instance 'tre-example
		     ;;rules in NMJTRE syntax		    
		     :rule-set '((rule ((:in (week-end) :var ?V1)
					(:in (blue sky) :var ?V2))
				       (rassert! (go swimming-pool) (just (:in ?V1) (:in ?V2))))

				 (rule ((:in (holiday) :var ?V1)
					(:in (weather nice) :var ?V2))
				       (rassert! (go swimming-pool) (just (:in ?V1) (:in ?V2)))))

		     ;; assertions in NMJTRE syntax		    
		     :assertions '((assert! '(week-end))
				   (assert! '(blue sky))
				   (assert! '(holiday))
				   (assert! '(weather nice)))
		     
		     :contradiction '()

		     :lisp-code '())))

  (pail-lib::put-pool pail-lib:*pail-pool* swimming :name "SWIMMING"))



;;; =======================================================================
;;; END OF FILE
;;; =======================================================================
