(declare (genprefix smass))

;;;################################################################
;;;
;;;            SMASS  -  semantic access functions
;;;
;;;################################################################

(DEFUN ACTION? (X) 
       ;;THE WORKING PART OF AN ANSWER -- TELLS WHAT TO DO IF THE
       ;;ANSWER IS THE ONE TO BE GIVEN.  MIGHT INCLUDE ACTIONS ON THE
       ;;DISPLAY, AS WELL AS THINGS TO BE PRINTED AND VARIABLES TO BE
       ;;SET, ETC.  THE WHOLE THING IS EVAL-LISTED.
       (GET X 'ACTION=)) 

(DEFUN AMBIGUITIES? (X) 
       ;;LIST OF POSSIBLE AMBIGUITIES FOR A SEMANTIC STRUCTURE
       (GET X 'AMBIGUITIES=)) 

(DEFUN AND? (X) 
       ;;FIND THE CONJUNCTION LIST OF A CONJOINED SEMANTIC STRUCTURE
       ;;NIL IF THERE IS NONE
       (GET X 'AND=)) 

(DEFUN ANSRSS? (X) 
       ;;THE RSS CORRESPONDING TO AN ANSWER NODE (A PROPERTY OF THE
       ;;ANSNODE)
       (GET X 'ANSRSS=)) 

(DEFUN DETERMINER? (X) 

       ;;;     ACCESS FUNCTION. GETS DET OF AN OSS.
       (GET X 'DETERMINER=)) 

(DEFUN END? (TSS) 
       ;;END TIME FOR TSS
       (GET TSS 'END=)) 

(DEFUN MARKERS? (%SENSE) 
       ;; ACCESS FUNCTION USED TO GET MARKERS FROM OSS OR RSS
       (GET %SENSE 'MARKERS=)) 

(DEFUN MODIFIERS? (%XSS) 
       ;; ACCESS FUNCTION FOR GETTING THE PLANNER CODE SCHEMA OF AN
       ;;OSS OR RSS
       (GET %XSS 'MODIFIERS=)) 

(DEFUN NEGATIVE? (%XSS) 

       ;;; ACCESS FUNCTION FOR OSS
       (GET %XSS 'NEGATIVE=)) 

(DEFUN NUMBER? (OSS) 
       ;; GETS THE NUMBER FIELD OF AN OSS
       (CAR (GET OSS 'DETERMINER=))) 

(DEFUN OR? (X) 
       ;;ACCESS FOR LIST OF CONSTITUENTS IN DISJOINED SEMANTIC
       ;;STRUCTURE NIL IF IT ISNT
       (GET X 'OR=)) 

(DEFUN OSS? (X) 
       ;;CHECKS TO SEE IF X IS AN OSS
       (GET X 'OSSNODE=)) 

(DEFUN PARENT? (NODE) (GETR 'PARENT NODE)) 

(DEFUN PARSENODE? (X) (GET X 'PARSENODE=)) 

;;THE PARSE NODE ASSOCIATED WITH THE SEMANTIC STRUCTURE

(DEFUN PLAUSIBILITY? (%XSS) 
       ;; ACCESS FUNCTION FOR GETTING PLAUSIBILITY OF AN OSS OR RSS
       (OR (GET %XSS 'PLAUSIBILITY=) 0.)) 

(DEFUN PLNRCODE? (X) (GET X 'PLNRCODE=)) 

;;THE PLANNERCODE GENERATED WHEN AN OBJECT IS ACTUALLY LOOKED FOR IN THE DATA BASE.  IT IS NOT USED AGAIN,
;;BUT IS LEFT SITTING AROUND FOR PEOPLE TO LOOK AT.

(DEFUN QTYPE? (X) (CADDR (GET X 'DETERMINER=))) 

;;QUESTION TYPE FOR QUESTION OSS

(DEFUN QUANTIFIER? (OSS) 
       ;; GETS THE DETERMINER FIELD OF AN OSS
       (CADR (GET OSS 'DETERMINER=))) 

(DEFUN REFER? (%XSS) 
       ;;ACCESS FUNCTION FOR REFER OF OSS OR RSS
       (GET %XSS 'REFER=)) 

(DEFUN REL? (X) (GET X 'REL=)) 

;;THE OBJECT TO WHICH THIS DESCRIPTION IS TO BE RELATED.

(DEFUN RELATIONS? (X) 
       ;; THE MATERIAL THAT WILL BECOME PLANNER CODE
       (GET X 'RELATIONS=)) 

(DEFUN RELMARKERS? (X) 
       ;;MARKERS HELD BY A RELATIVE CLAUSE PRODUCED BY ITS SELECTION
       ;;RESTRICTIONS, TO BE ATTACHED TO THE OBJECT DESCRIPTION
       (GET X 'RELMARKERS=)) 

(DEFUN RSS? (X) 
       ;;CHECKS TO SEE IF X IS AN RSS
       (GET X 'RSSNODE=)) 

(DEFUN RSSVAR? (X) 
       ;;A VARIABLE OF THE TYPE USED FOR RSS'S -- I.E.  EVX3, ETC.
       (GET X 'RSSVAR)) 

(DEFUN START? (TSS) 
       ;;START TIME FOR TSS
       (GET TSS 'START=)) 

(DEFUN SYSTEMS? (%SENSE) 
       ;; ACCESS FUNCTION FOR GETTING THE SYSTEMS OF AN OSS OR RSS
       (GET %SENSE 'SYSTEMS=)) 

(DEFUN TENSE? (X) 
       ;;FOR A TSS
       (GET X 'TENSE=)) 

(DEFUN TSS? (X) (GET X 'TSSNODE=)) 

;;ASSOCIATED WITH EVERY TIME SEMANTIC STRUCTURE.

(DEFUN VARIABLE? 
 ;; ACCESS FUNCTION FOR GETTING THE VARIABLE NAME ASSOCIATED WITH AN
 ;;OSS OR RSS
 (X)   (GET X 'VARIABLE=)) 

(DEFUN SMSET (X) (SETR 'SEMANTICS X C) (SETQ SM X)) 
