(in-package "COMMON-LISP-USER")

;;; File: selected-kpml-kr.lisp
;;;
;;; Temp version working only for Racer... 
;;; This will be parameterised back to allow selection of KR system
;;; as required by flag. 
;;;
;;; Note:
;;; KPML can be persuaded to take some other file rather than this file
;;; by presetting the variable common-lisp-user::*kpml-kr-loader* to 
;;; the pathname locating that file. This is one of the regular options
;;; given in configuration.lisp
;;;
;;; Using Racer requires that a Racer server be started to handle 
;;; KR requests independently of starting KPML !!! 
;;; ----------------------------------------------------------------------

(defparameter *kpml-kr-system-name* 'kpml-racer)

(make:defsystem KPML-RACER
  :source-pathname *root-of-kpml*
  :source-extension "lisp" 
  :binary-pathname *kpml-binaries-root*
  :components 
  ((:module LRACER
	    :source-pathname "Processes/kr-interfaces/racer/lracer/LRacer-1-8"
	    :components 
	    ((:file "lracer-sysdcl.lisp")
	     (:file "nrql-symbols")
	     (:file "lracer-package-1-8-18")
	     (:file "lracer-1-8-42")
	     (:file "lracer-nrql-stubs")
	     (:file "lracer-test-support-1-8-1")))
   (:module KPML-RACER
	    :source-pathname "Processes/kr-interfaces/racer"
	    :components 
	    ((:file "kr-wrapper")(:file "kpml-racer-interface-jb")))
   ))
				   
(format t "~%;;; KPML-Racer and Racer-Lisp interface loaded.")
(pushnew :racer *features*)

;;; ---------------------------------------------------------------------------------------------------
;;; Values for some variables depend on the kr used... following are the
;;; values for Racer...
;;; --------------------------------------------------------------------------------------------------

(defpackage "KPML")
(in-package "KPML")

(defvar *rhetorical-relation-name* '|uio#RhetoricalRelation|)
(defvar *range-name* '|range|)
(defvar *domain-name* '|domain|)
(defvar *thing-name* '|Thing|)
(defvar *upper-model-thing-name* '|GUMThing|)

(defvar *spl-set-type* '|UMSet|)
(defvar *spl-disjunctive-set-type* '|DisjunctiveSet|)

;;; Note: also relies on two-place-relation and relation in spl-keyword-type.
;;; 1.1 the notional relational types in the following list are used when
;;;     parsing the SPL. It needs to be able to distinguish entities of 
;;;     these types as defining attributes. There absolute package of
;;;     these things depends on the package in which the upper model
;;;     is maintained however. This can be found from the kr-interface
;;;     function (kb-package). So, whenever we setup spl we now redo
;;;     the initialization of this global in case we're working with a
;;;     new upper model in a new package...
(defvar *spl-relational-types* '(|TwoPlaceRelation| |Relation| |gumrelation| |Relating|))

