next up previous contents
Next: Mathematical Expressions Up: Summary of syntax Previous: Syntax of atomic sentences

Syntax of top level forms

 

(defRelation <relconst> (<var>+)
        :=> <atomic sentence>
        :<=> <atomic sentence>
        :function <boolean>
        :time-dependent <boolean>
        :documentation <string>)

(defQuantityFunction <funconst> (<var>+)
        :=> <atomic sentence>
        :dimension <dimension expression>
        :non-numeric <boolean>
        :piecewise-continuous <boolean>
        :step-quantity  <boolean>
        :count-quantity <boolean>
        :documentation <string>)

(defModelFragment <relconst>
        :subclass-of (<relconst>*)
        :participants ({(<funconst> :type <relconst> ) }* )
        :conditions (<literal>+)
        :quantities ({(<funconst> :dimension <dimension expression>
                                  :non-numeric          <boolean>
                                  :piecewise-continuous <boolean>
                                  :step-quantity        <boolean>
                                  :count-quantity <boolean>)}*)
        :attributes ({(<funconst> :type <relconst> 
                                  :documentation <string>)}*)
        :consequences (<literal>*)
        :documentation <string>
        :substitutions ({(<symbol> <lisp form>)}*))

(defEntity <relconst>
        :subclass-of (<relconst>*)
        :quantities ({(<funconst> :dimension <dimension expression>
                                  :non-numeric          <boolean>
                                  :piecewise-continuous <boolean>
                                  :step-quantity        <boolean>
                                  :count-quantity <boolean>)}*)
        :attributes ({(<funconst> :type <relconst> 
                                  :documentation <string>)}*)
        :consequences (<literal>*)
        :documentation <string>
        :substitutions ({(<symbol> <lisp form>)}*))

(defScenario <objconst>
        :individuals ({(<objconst> :type <relconst> ) }* )
        :initially (<literal>*)
        :throughout (<literal>*)
        :boundary (<quantity condition>*)
        :documentation <string>)

(defDimension <objconst> [ <dimension expression> ]
        :documentation <string>)

(defUnit <objconst> 
        := <quantity expression>
        :dimension <dimension expression>
        :documentation <string>)

(defConstantQuantity <objconst>
        := <quantity expression>
        :dimension <dimension expression>
        :documentation <string>)


Tom Mostek
Wed Jan 21 13:00:43 CST 1998