Subject: Term

Keywords: ::usage
          ::implementation

Title: Term

--------------------------------------------------


Terms are the ubiquitous. Originally used to represent
formal content, terms are used to represent all persistent
data.

Abstractly, terms are recursive lisp data structure built from
lists and pairs 

<term> :       (<opid> (<parameter> list)) # <bound_term> list
<bound_term> VariableId list # <term>
<parameter> :  <parmvalue> # <parmtype>
<parmtype>  :  variable token natural string time object_id

Terms are open ended. Any string can be parmtype.
Any string is accepted for any parmvalue no matter the parmtype.
parameter can be viewed simply as pair of strings. If 
parmvalue with known parmtype is accessed then if the value string
does not represent member of the parmtype an error will occur 
at the time of access. 
 

For persistent storage and data interchange, terms are converted to 
printable ascii strings.
  original natural expression of term data structure.  
  export simplist syntax for parsing  
      removes opid by making opids parameter.
        when parsing into term data structure uses special opid
        when first parameter is not of type OPID. 
      encodes bindings as special bound_id term.
        requires quoting of literal bound_id terms.        
  compressed original variation
      hash consing of sort that finds equivalent structures
        and avoids duplication by building arrays and replacing structures
        with indices.
    

--------------------------------------------------

Authors: 

Contributors: RICH:t
              NUPRL:t



Home