(in-package "KPML")

;;; File: structures.lisp
;;; 
;;; Contains definitions of odd bits of structure that don't fit anywhere
;;; else.

(defstruct ask-db-elt "foo"
	   inquiryname inputfunctions)
(defstruct boundary-order "?"
	   owner frontelt endelt)
(defstruct brownboard-elt "?"
	   functionlist featurespecs)
(defstruct closure-element "?"
	   head reachablefns)
(defstruct complex-object "An object on the blackboard produced by conflation"
	   id conflationdef)
(defstruct conflation "?"
	   alias othernodes)
(defstruct constituent-pass 
  "snapshot of state at the end of each pass thru the grammar"
	   blackboard brownboard whiteboard orderingrelations associations
	   prosodies ;;; KPML 0.8 addition
	   constituents sequences selection-expression)
(defstruct  dependency-declaration "?"
	    classifiable-function late-system)
(defstruct exact-system-def "Decription of a single Grammatical System"
  chooser inputs old-feature outputs 
  metafunction region system-number row column
  comments edit)
(defstruct expanded-object "an object on the blackboard ?"
	   id expansiondef)
(defstruct expansion "?"
	   parent offspring)
(defstruct function-association "?"
	   function concept presentation-spec term-set term )
(defstruct identify-db-elt "?"
	   outputfunction inquiryname inputfunctions)
(defstruct inner-lex-class "Wordclass definition"
	   class-id super-class added-features sub-classes lexical-items group0 group1
	   comments edit)
(defstruct input-constraints "?"
	   id firstop secondop)
(defstruct internal-constraint "?"
	   lhs rhs)
(defstruct preselection-guide "?"
	   selection answer)

 ;; 4.0 add per-constituent language information...
 ;;
(defstruct whiteboard-elt "A node in the generated structure"
  id aliasfn featurelist realization hub index language)


(defstruct selection-def
  id fn features)
(defstruct discourse-context
  (speaker 'I :type atom)
  (hearer 'you :type atom)
  (speaking-time 'timenow :type atom)
  (realm-of-speech 'here :type atom)
  (identifiables nil :type list)
  (priorrefs nil :type list))










