Change default SQL server host
[umlisp.git] / classes.lisp
index 94a3ffed17432fef6928091dc4e9fc70521bfaaf..ce08ece3ac09671aebc21c4f17686e955b3d129a 100644 (file)
@@ -2,22 +2,19 @@
 ;;;; *************************************************************************
 ;;;; FILE IDENTIFICATION
 ;;;;
-;;;; Name:          classes.lisp
-;;;; Purpose:       Class defintions for UMLisp
-;;;; Programmer:    Kevin M. Rosenberg
-;;;; Date Started:  Apr 2000
-;;;;
-;;;; $Id: classes.lisp,v 1.18 2002/11/29 23:14:38 kevin Exp $
+;;;; Name:     classes.lisp
+;;;; Purpose:  Class defintions for UMLisp
+;;;; Author:   Kevin M. Rosenberg
+;;;; Created:  Apr 2000
 ;;;;
 ;;;; This file, part of UMLisp, is
-;;;;    Copyright (c) 2000-2002 by Kevin M. Rosenberg, M.D.
+;;;;    Copyright (c) 2000-2010 by Kevin M. Rosenberg, M.D.
 ;;;;
 ;;;; UMLisp users are granted the rights to distribute and use this software
 ;;;; as governed by the terms of the GNU General Public License.
 ;;;; *************************************************************************
 
-(in-package :umlisp)
-(declaim (optimize (speed 3) (safety 1) (compilation-speed 0) (debug 3)))
+(in-package #:umlisp)
 
 (defclass umlsclass (hyperobject)
   ()
 
 
 (defclass usrl (umlsclass)
-  ((sab :type string :initarg :sab :reader sab)
-   (srl :type fixnum :initarg :srl :reader srl))
+  ((sab :value-type string :initarg :sab :reader sab)
+   (srl :value-type fixnum :initarg :srl :reader srl))
   (:metaclass hyperobject-class)
-  (:default-initargs :sab nil :srl nil)
-  (:title "Source Restriction Level")
-  (:print-slots sab srl)
+  (:user-name "Source Restriction Level")
+  (:default-print-slots sab srl)
   (:description "Custom Table: Source Restriction Level"))
 
-  
+
 (defclass urank (umlsclass)
-  ((rank :type fixnum :initarg :rank :reader rank)
-   (sab :type string :initarg :sab :reader sab)
-   (tty :type string :initarg :tty :reader tty)
-   (supres :type string :initarg :supres :reader supres))
+  ((rank :value-type fixnum :initarg :rank :reader rank)
+   (sab :value-type string :initarg :sab :reader sab)
+   (tty :value-type string :initarg :tty :reader tty)
+   (suppress :value-type string :initarg :suppress :reader suppress))
   (:metaclass hyperobject-class)
-  (:default-initargs :rank nil :sab nil :tty nil :supres nil)
-  (:title "Rank")
-  (:print-slots rank sab tty supres))
+  (:user-name "Rank")
+  (:default-print-slots rank sab tty suppress))
 
 (defclass udef (umlsclass)
-  ((def :type cdata :initarg :def :reader def)
-   (sab :type string :initarg :sab :reader sab :hyperlink find-usab-rsab))
+  ((def :value-type cdata :initarg :def :reader def)
+   (sab :value-type string :initarg :sab :reader sab :hyperlink find-usab-rsab)
+   (suppress :value-type string :initarg :suppress :reader suppress))
   (:metaclass hyperobject-class)
-  (:default-initargs :def nil :sab nil)
-  (:title "Definition")
-  (:print-slots sab def))
+  (:user-name "Definition")
+  (:default-print-slots sab def))
 
 (defclass usat (umlsclass)
-  ((sab :type string :initarg :sab :reader sab :hyperlink find-usab-rsab)
-   (code :type string :initarg :code :reader code)
-   (atn :type string :initarg :atn :reader atn)
-   (atv :type cdata :initarg :atv :reader atv))
+  ((sab :value-type string :initarg :sab :reader sab :hyperlink find-usab-rsab)
+   (code :value-type string :initarg :code :reader code)
+   (atn :value-type string :initarg :atn :reader atn)
+   (atv :value-type cdata :initarg :atv :reader atv))
   (:metaclass hyperobject-class)
-  (:default-initargs :sab nil :code nil :atn nil :atv nil)
-  (:title "Simple Attribute")
-  (:print-slots sab code atn atv))
+  (:user-name "Simple Attribute")
+  (:default-print-slots sab code atn atv))
 
 (defclass usab (umlsclass)
-  ((vcui :type fixnum :initarg :vcui :reader vcui :print-formatter fmt-cui)
-   (rcui :type fixnum :initarg :rcui :reader rcui :print-formatter fmt-cui)
-   (vsab :type string :initarg :vsab :reader vsab)
-   (rsab :type string :initarg :rsab :reader rsab :hyperlink find-ucan-sab)
-   (son :type string :initarg :son :reader son)
-   (sf :type string :initarg :sf :reader sf)
-   (sver :type string :initarg :sver :reader sver)
-   (mstart :type string :initarg :mstart :reader mstart)
-   (mend :type string :initarg :mend :reader mend)
-   (imeta :type string :initarg :imeta :reader imeta)
-   (rmeta :type string :initarg :rmeta :reader rmeta)
-   (slc :type cdata :initarg :slc :reader slc)
-   (scc :type cdata :initarg :scc :reader scc)
-   (srl :type fixnum :initarg :srl :reader srl)
-   (tfr :type fixnum :initarg :tfr :reader tfr :print-formatter fmt-comma-integer)
-   (cfr :type fixnum :initarg :cfr :reader cfr :print-formatter fmt-comma-integer)
-   (cxty :type string :initarg :cxty :reader cxty)
-   (ttyl :type string :initarg :ttyl :reader ttyl)
-   (atnl :type string :initarg :atnl :reader atnl)
-   (lat :type string :initarg :lat :reader lat)
-   (cenc :type string :initarg :cenc :reader cenc)
-   (curver :type string :initarg :curver :reader curver)
-   (sabin :type string :initarg :sabin :reader sabin))
-  (:metaclass hyperobject-class)
-  (:default-initargs :vcui nil :rcui nil :vsab nil :rsab nil :son nil :sf nil
-                    :sver nil :mstart nil :mend nil :imeta nil :rmeta nil
-                    :slc nil :scc nil :srl nil :tfr nil :cfr nil :cxty nil
-                    :ttyl nil :atnl nil :lat nil :cenc nil :curver nil
-                    :sabin nil)
-  (:title "Source Abbreviation")
-  (:print-slots vcui rcui vsab rsab son sf sver mstart mend imeta
-               rmeta slc scc srl tfr cfr cxty ttyl atnl lat cenc
-               curver sabin))
-
-(defclass uso (umlsclass)
-  ((sab :type string :initarg :sab :reader sab :hyperlink find-usab-rsab)
-   (code :type string :initarg :code :reader code)
-   (tty :type string :initarg :tty :reader tty :hyperlink find-btty-tty)
-   (srl :type fixnum :initarg :srl :reader srl))
-  (:metaclass hyperobject-class)
-  (:default-initargs :sab nil :code nil :tty nil :srl nil)
-  (:title "Source")
-  (:print-slots sab code tty srl))
-
-(defclass ucxt (umlsclass)
-  ((sab :type string :initarg :sab :reader sab :hyperlink find-usab-rsab)
-   (code :type string :initarg :code :reader code)
-   (rnk :type fixnum :initarg :rnk :reader rnk)
-   (cxn :type fixnum :initarg :cxn :reader cxn)
-   (cxl :type string :initarg :cxl :reader cxl)
-   (cxs :type cdata :initarg :cxs :reader cxs)
-   (cui2 :type fixnum :initarg :cui2 :reader cui2 :hyperlink find-ucon-cui
-        :print-formatter fmt-cui)
-   (hcd :type string :initarg :hcd :reader hcd)
-   (rela :type string :initarg :rela :reader rela)
-   (xc :type string  :initarg :xc :reader xc))
-  (:metaclass hyperobject-class)
-  (:default-initargs :sab nil :code nil :rnk nil :cxn nil :cxl nil :cxs nil
-                    :cui2 nil :hcd nil :rela nil :xc nil)
-  (:title "Context")
-  (:print-slots sab code rnk cxn cxl hcd rela xc cui2 cxs))
+  ((vcui :value-type fixnum :initarg :vcui :reader vcui :print-formatter fmt-cui)
+   (rcui :value-type fixnum :initarg :rcui :reader rcui :print-formatter fmt-cui)
+   (vsab :value-type string :initarg :vsab :reader vsab)
+   (rsab :value-type string :initarg :rsab :reader rsab :hyperlink find-ustr-sab
+         :hyperlink-parameters (("subobjects" . "no")))
+   (son :value-type string :initarg :son :reader son)
+   (sf :value-type string :initarg :sf :reader sf)
+   (sver :value-type string :initarg :sver :reader sver)
+   (vstart :value-type string :initarg :vstart :reader vstart)
+   (vend :value-type string :initarg :vend :reader vend)
+   (imeta :value-type string :initarg :imeta :reader imeta)
+   (rmeta :value-type string :initarg :rmeta :reader rmeta)
+   (slc :value-type cdata :initarg :slc :reader slc)
+   (scc :value-type cdata :initarg :scc :reader scc)
+   (srl :value-type fixnum :initarg :srl :reader srl)
+   (tfr :value-type fixnum :initarg :tfr :reader tfr :print-formatter fmt-comma-integer)
+   (cfr :value-type fixnum :initarg :cfr :reader cfr :print-formatter fmt-comma-integer)
+   (cxty :value-type string :initarg :cxty :reader cxty)
+   (ttyl :value-type string :initarg :ttyl :reader ttyl)
+   (atnl :value-type string :initarg :atnl :reader atnl)
+   (lat :value-type string :initarg :lat :reader lat)
+   (cenc :value-type string :initarg :cenc :reader cenc)
+   (curver :value-type string :initarg :curver :reader curver)
+   (sabin :value-type string :initarg :sabin :reader sabin)
+   (ssn :value-type string :initarg :ssn :reader ssn)
+   (scit :value-type string :initarg :scit :reader scit))
+  (:metaclass hyperobject-class)
+  (:user-name "Source Abbreviation")
+  (:default-print-slots vcui rcui vsab rsab son sf sver vstart vend imeta
+                rmeta slc scc srl tfr cfr cxty ttyl atnl lat cenc
+                curver sabin ssn scit))
+
+(defclass uhier (umlsclass)
+  ((cui :value-type fixnum :initarg :cui :reader cui :hyperlink find-ucon-cui
+        :print-formatter fmt-cui)
+   (aui :value-type fixnum :initarg :aui :reader aui :hyperlink find-ucon-aui
+         :print-formatter fmt-aui)
+   (cxn :value-type fixnum :initarg :cxn :reader cxn)
+   (paui :value-type fixnum :initarg :paui :reader paui
+         :print-formatter fmt-aui)
+   (sab :value-type string :initarg :sab :reader sab :hyperlink find-usab-rsab)
+   (rela :value-type string :initarg :rela :reader rela)
+   (ptr :value-type string :initarg :ptr :reader ptr)
+   (hcd :value-type string :initarg :hcd :reader hcd)
+   (cvf :value-type string  :initarg :cvf :reader cvf))
+  (:metaclass hyperobject-class)
+  (:user-name "Context")
+  (:default-print-slots cxn paui sab rela ptr hcd))
 
 (defclass ustr (umlsclass)
-  ((sui :type fixnum :initarg :sui :reader sui :print-formatter fmt-sui
-       :hyperlink find-ustr-sui)
-   (cui :type fixnum :initarg :cui :reader cui :print-formatter fmt-cui)
-   (lui :type fixnum :initarg :lui :reader lui :print-formatter fmt-lui
-       :hyperlink find-uterm-lui)
-   (cuisui :type integer :initarg :cuisui :reader cuisui )
-   (str :type cdata :initarg :str :reader str)
-   (lrl :type fixnum :initarg :lrl :reader lrl)
-   (stt :type string :initarg :stt :reader stt)
-   (s#sat :reader s#sat :subobject t)
-   (s#so :reader s#so :subobject t)
-   (s#cxt :reader s#cxt :subobject t))
-  (:metaclass hyperobject-class)
-  (:default-initargs 
-   :sui nil :cui nil :lui nil :cuisui nil :str nil :lrl nil :stt nil)
-  (:title "String")
-  (:print-slots sui stt lrl str))
-
-(defclass ulo (umlsclass)
-  ((isn :type string :initarg :isn :reader isn)
-   (fr :type fixnum :initarg :fr :reader fr)
-   (un :type string :initarg :un :reader un)
-   (sui :type fixnum :initarg :sui :reader sui :print-formatter fmt-sui)
-   (sna :type string :initarg :sna :reader sna)
-   (soui :type string :initarg :soui :reader soui))
-  (:metaclass hyperobject-class)
-  (:default-initargs :isn nil :fr nil :un nil :sui nil :sna nil :soui nil)
-  (:title "Locator")
-  (:print-slots isn fr un sna soui sui))
+  ((sui :value-type fixnum :initarg :sui :reader sui :print-formatter fmt-sui
+        :hyperlink find-ustr-sui)
+   (cui :value-type fixnum :initarg :cui :reader cui :print-formatter fmt-cui
+        :hyperlink find-ucon-cui)
+   (lui :value-type fixnum :initarg :lui :reader lui :print-formatter fmt-lui
+        :hyperlink find-uterm-lui)
+   (cuisui :value-type integer :initarg :cuisui :reader cuisui )
+   (str :value-type cdata :initarg :str :reader str)
+   (lrl :value-type fixnum :initarg :lrl :reader lrl)
+   (stt :value-type string :initarg :stt :reader stt)
+   (suppress :value-type string :initarg :suppress :reader suppress)
+   (s#so :reader s#so :subobject (find-uso-cuisui cui sui))
+   (s#sat :reader s#sat :subobject (find-usat-ui cui lui sui)))
+  (:metaclass hyperobject-class)
+  (:user-name "String")
+  (:default-print-slots sui stt lrl str suppress))
+
+
+(defclass uso (umlsclass)
+  ((aui :value-type fixnum :initarg :aui :reader aui :print-formatter fmt-aui
+        :hyperlink find-ucon-aui)
+   (cui :value-type fixnum :initarg :cui :reader cui :print-formatter fmt-cui
+        :hyperlink find-ucon-cui)
+   (sui :value-type fixnum :initarg :sui :reader sui :print-formatter fmt-sui
+        :hyperlink find-ucon-sui)
+   (saui :value-type string :initarg :saui :reader saui)
+   (sdui :value-type string :initarg :sdui :reader sdui)
+   (scui :value-type string :initarg :scui :reader scui)
+   (tty :value-type string :initarg :tty :reader tty)
+   (code :value-type string :initarg :code :reader code)
+   (sab :value-type string :initarg :sab :reader sab :hyperlink find-usab-rsab)
+   (lat :value-type string :initarg :lat :reader lat)
+   (str :value-type cdata :initarg :str :reader str)
+   (srl :value-type fixnum :initarg :srl :reader srl)
+   (ts :value-type string :initarg :ts :reader ts))
+  (:metaclass hyperobject-class)
+  (:user-name "Source")
+  (:default-print-slots aui sab code saui sdui scui tty srl ts))
 
 (defclass uterm (umlsclass)
-  ((lui :type fixnum :initarg :lui :reader lui :hyperlink find-uterm-lui)
-   (cui :type fixnum :initarg :cui :reader cui)
-   (lat :type string :initarg :lat :reader lat)
-   (ts :type string  :initarg :ts :reader ts)
-   (lrl :type fixnum :initarg :lrl :reader lrl)
-   (s#str :reader s#str :subobject t)
-   (s#sat :reader s#sat :subobject t))
-  (:metaclass hyperobject-class)
-  (:default-initargs :lui nil :cui nil :lat nil :ts nil :lrl nil)
-  (:title "Term")
-  (:print-slots lui lat ts lrl))
+  ((lui :value-type fixnum :initarg :lui :reader lui :print-formatter fmt-lui
+        :hyperlink find-uterm-lui)
+   (cui :value-type fixnum :initarg :cui :reader cui :print-formatter fmt-cui
+        :hyperlink find-ucon-cui)
+   (lat :value-type string :initarg :lat :reader lat)
+   (ts :value-type string  :initarg :ts :reader ts)
+   (lrl :value-type fixnum :initarg :lrl :reader lrl)
+   (s#str :reader s#str :subobject (find-ustr-cuilui cui lui))
+   (s#sat :reader s#sat :subobject (find-usat-ui cui lui)))
+  (:metaclass hyperobject-class)
+  (:user-name "Term")
+  (:default-print-slots lui lat ts lrl))
 
 (defclass usty (umlsclass)
-  ((tui :type fixnum :initarg :tui :reader tui :print-formatter fmt-tui
-       :hyperlink (find-ucon-tui ("subobjects" "no")))
-   (sty :type string :initarg :sty :reader sty))
+  ((tui :value-type fixnum :initarg :tui :reader tui :print-formatter fmt-tui
+        :hyperlink find-ucon-tui
+        :hyperlink-parameters (("subobjects" . "no")))
+   (sty :value-type string :initarg :sty :reader sty))
   (:metaclass hyperobject-class)
-  (:default-initargs :tui nil :sty nil)
-  (:title "Semantic Type")
-  (:print-slots tui sty))
+  (:user-name "Semantic Type")
+  (:default-print-slots tui sty))
 
 (defclass urel (umlsclass)
-  ((rel :type string :initarg :rel :reader rel :hyperlink find-brel-rel)
-   (cui1 :type fixnum :initarg :cui1 :reader cui1 :print-formatter fmt-cui)
-   (cui2 :type fixnum :initarg :cui2 :reader cui2 :hyperlink find-ucon-sui
-        :print-formatter fmt-cui)
-   (pfstr2 :type cdata :initarg :pfstr2 :reader pfstr2)
-   (rela :type string :initarg :rela :reader rela)
-   (sab :type string :initarg :sab :reader sab :hyperlink find-usab-rsab)
-   (sl :type string  :initarg :sl :reader sl)
-   (mg :type string  :initarg :mg :reader mg))
-  (:metaclass hyperobject-class)
-  (:default-initargs 
-   :rel nil :cui1 nil :cui2 nil :pfstr2 nil :rela nil :sab nil :sl nil :mg nil)
-  (:title "Relationship")
-  (:print-slots rel rela sab sl mg cui2 pfstr2))
-       
+  ((rel :value-type string :initarg :rel :reader rel)
+   (cui1 :value-type fixnum :initarg :cui1 :reader cui1 :print-formatter fmt-cui)
+   (aui1 :value-type fixnum :initarg :aui1 :reader aui1 :print-formatter fmt-aui)
+   (stype1 :value-type string  :initarg :stype1 :reader stype1)
+   (cui2 :value-type fixnum :initarg :cui2 :reader cui2 :hyperlink find-ucon-cui
+         :print-formatter fmt-cui)
+   (aui2 :value-type fixnum :initarg :aui2 :reader aui2 :hyperlink find-ucon-aui
+         :print-formatter fmt-aui)
+   (pfstr2 :value-type cdata :initarg :pfstr2 :reader pfstr2)
+   (stype2 :value-type string  :initarg :stype2 :reader stype2)
+   (rela :value-type string :initarg :rela :reader rela)
+   (rui :value-type fixnum  :initarg :rui :reader rui :print-formatter fmt-rui)
+   (srui :value-type string  :initarg :srui :reader srui)
+   (sab :value-type string :initarg :sab :reader sab :hyperlink find-usab-rsab)
+   (sl :value-type string  :initarg :sl :reader sl)
+   (rg :value-type string  :initarg :rg :reader rg)
+   (dir :value-type string  :initarg :dir :reader dir)
+   (suppress :value-type string  :initarg :suppress :reader suppress)
+   (cvf :value-type string  :initarg :cvf :reader cvf))
+  (:metaclass hyperobject-class)
+  (:user-name "Relationship")
+  (:default-print-slots stype1 rel cui2 aui2 stype2 rela rui srui sab sl rg dir suppress pfstr2))
+
+#+mrcoc
 (defclass ucoc (umlsclass)
-  ((cui1 :type fixnum :initarg :cui1 :reader cui1 :print-formatter fmt-cui)
-   (cui2 :type fixnum :initarg :cui2 :reader cui2 :print-formatter fmt-cui
-        :hyperlink find-ucon-cui)
-   (pfstr2 :type cdata :initarg :pfstr2 :reader pfstr2)
-   (soc :type string :initarg :soc :reader soc)
-   (cot :type string :initarg :cot :reader cot)
-   (cof :type fixnum :initarg :cof :reader cof)
-   (coa :type cdata :initarg :coa :reader coa))
-  (:metaclass hyperobject-class)
-  (:default-initargs 
-   :cui1 nil :cui2 nil :pfstr2 nil :soc nil :cot nil :cof nil :coa nil)
-  (:title "Co-occuring Concept")
-  (:print-slots soc cot cof coa cui2 pfstr2))
-
-       
-(defclass uatx (umlsclass)
-  ((sab :type string :initarg :sab :reader sab)
-   (rel :type string :initarg :rel :reader rel)
-   (atx :type cdata :initarg :atx :reader atx))
-  (:metaclass hyperobject-class)
-  (:default-initargs :sab nil :rel nil :atx nil)
-  (:title "Associated Expression")
-  (:print-slots sab rel atx))
+  ((cui1 :value-type fixnum :initarg :cui1 :reader cui1 :print-formatter fmt-cui)
+   (aui1 :value-type fixnum :initarg :aui1 :reader aui1 :print-formatter fmt-aui)
+   (cui2 :value-type fixnum :initarg :cui2 :reader cui2 :print-formatter fmt-cui
+         :hyperlink find-ucon-cui)
+   (aui2 :value-type fixnum :initarg :aui2 :reader aui2 :print-formatter fmt-aui
+         :hyperlink find-ucon-aui)
+   (pfstr2 :value-type cdata :initarg :pfstr2 :reader pfstr2)
+   (sab :value-type string :initarg :sab :reader sab)
+   (cot :value-type string :initarg :cot :reader cot)
+   (cof :value-type fixnum :initarg :cof :reader cof)
+   (coa :value-type cdata :initarg :coa :reader coa)
+   (cvf :value-type string  :initarg :cvf :reader cvf))
+  (:metaclass hyperobject-class)
+  (:user-name "Co-occuring Concept")
+  (:default-print-slots cot cof coa cui2 aui2 sab pfstr2))
 
 (defclass ucon (umlsclass)
-  ((cui :type fixnum :initarg :cui :reader cui :print-formatter fmt-cui
-       :hyperlink find-ucon-cui)
-   (pfstr :type cdata :initarg :pfstr :reader pfstr)
-   (lrl :type fixnum :initarg :lrl :reader lrl)
-   (s#term :reader s#term :subobject t)
-   (s#def :reader s#def :subobject t)
-   (s#lo :reader s#lo :subobject t)
-   (s#rel :reader s#rel :subobject t)
-   (s#coc :reader s#coc :subobject t)
-   (s#sat :reader s#sat :subobject t)
-   (s#atx :reader s#atx :subobject t)
-   (s#sty :reader s#sty :subobject t))
-  (:metaclass hyperobject-class)
-  (:default-initargs :cui nil :pfstr nil :lrl nil)
-  (:title "Concept")
-  (:print-slots cui lrl pfstr))
+  ((cui :value-type fixnum :initarg :cui :reader cui :print-formatter fmt-cui
+        :hyperlink find-ucon-cui)
+   (lrl :value-type fixnum :initarg :lrl :reader lrl
+        :compute-cached-value (find-lrl-cui cui))
+   (pfstr :value-type cdata :initarg :pfstr :reader pfstr
+          :compute-cached-value (find-pfstr-cui cui))
+   (s#def :reader s#def :subobject (find-udef-cui cui))
+   (s#so :reader s#so :subobject (find-uso-cui cui))
+   (s#hier :reader s#hier :subobject (find-uhier-cui cui))
+   (s#map :reader s#map :subobject (find-umap-cui cui))
+   (s#smap :reader s#smap :subobject (find-usmap-cui cui))
+   (s#sty :reader s#sty :subobject (find-usty-cui cui))
+   (s#term :reader s#term :subobject (find-uterm-cui cui))
+   (s#sat :reader s#sat :subobject (find-usat-ui cui))
+   (s#rel :reader s#rel :subobject (find-urel-cui cui))
+   #+mrcoc (s#coc :reader s#coc :subobject (find-ucoc-cui cui))
+   )
+  (:metaclass hyperobject-class)
+  (:user-name "Concept")
+  (:default-print-slots cui lrl pfstr))
+
+
+(defclass uconso (umlsclass)
+  ((cui :value-type fixnum :initarg :cui :reader cui :print-formatter fmt-cui
+        :hyperlink find-ucon-cui)
+   (pfstr :value-type cdata :initarg :pfstr :reader pfstr
+          :compute-cached-value (find-pfstr-cui cui))
+   (lat :value-type string :initarg :lat :reader lat)
+   (ts :value-type string :initarg :ts :reader ts)
+   (lui :value-type fixnum :initarg :lui :reader lui :print-formatter fmt-lui)
+   (stt :value-type string :initarg :stt :reader stt)
+   (sui :value-type fixnum :initarg :sui :reader sui :print-formatter fmt-sui)
+   (ispref :value-type string :initarg :ispref :reader ispref)
+   (aui :value-type fixnum :initarg :aui :reader aui :print-formatter fmt-aui)
+   (saui :value-type string :initarg :saui :reader saui)
+   (scui :value-type string :initarg :scui :reader scui)
+   (sdui :value-type string :initarg :sdui :reader sdui)
+   (sab :value-type string :initarg :sab :reader sab)
+   (tty :value-type string :initarg :tty :reader tty)
+   (code :value-type string :initarg :code :reader code)
+   (str :value-type string :initarg :str :reader str)
+   (srl :value-type fixnum :initarg :srl :reader srl)
+   (suppress :value-type string :initarg :suppress :reader suppress)
+   (cvf :value-type string :initarg :cvf :reader cvf)
+   (kpfeng :value-type string :initarg :kpfeng :reader kpfeng)
+   (kcuisui :value-type bigint :initarg :kcuisui :reader kcuisui)
+   (kcuilui :value-type bigint :initarg :kcuilui :reader kcuilui)
+   (kcuilrl :value-type fixnum :initarg :kcuilrl :reader kcuilrl)
+   (kluilrl :value-type fixnum :initarg :kluilrl :reader kluilrl)
+   (ksuilrl :value-type fixnum :initarg :ksuilrl :reader ksuilrl)
+   (s#def :reader s#def :subobject (find-udef-cui cui))
+   (s#so :reader s#so :subobject (find-uso-cui cui))
+   (s#hier :reader s#hier :subobject (find-uhier-cui cui))
+   (s#map :reader s#map :subobject (find-umap-cui cui))
+   (s#smap :reader s#smap :subobject (find-usmap-cui cui))
+   (s#sty :reader s#sty :subobject (find-usty-cui cui))
+   (s#term :reader s#term :subobject (find-uterm-cui cui))
+   (s#sat :reader s#sat :subobject (find-usat-ui cui))
+   (s#rel :reader s#rel :subobject (find-urel-cui cui))
+   #+mrcoc (s#coc :reader s#coc :subobject (find-ucoc-cui cui))
+   )
+  (:documentation "CONSO is a new concept from the RRF files.")
+  (:metaclass hyperobject-class)
+  (:user-name "Concept")
+  (:default-print-slots cui kcuilrl str sab))
+
+(defclass umap (umlsclass)
+  ((mapsetcui :value-type fixnum :initarg :mapsetcui :reader mapsetcui)
+   (mapsetsab :value-type string :initarg :mapsetsab :reader mapsetsab)
+   (mapsubsetid :value-type string :initarg :mapsubsetid :reader mapsubsetid)
+   ;; fixme: will convert to integer
+   (maprank :value-type string :initarg :maprank :reader maprank)
+   (fromid :value-type string :initarg :fromid :reader fromid)
+   (fromsid :value-type string :initarg :fromsid :reader fromsid)
+   (fromexpr :value-type string :initarg :fromexpr :reader fromexpr)
+   (fromtype :value-type string :initarg :fromtype :reader fromtype)
+   (fromrule :value-type string :initarg :fromrule :reader fromrule)
+   (fromres :value-type string :initarg :fromres :reader fromres)
+   (rel :value-type string :initarg :rel :reader rel)
+   (rela :value-type string :initarg :rela :reader rela)
+   (toid :value-type string :initarg :toid :reader toid)
+   (tosid :value-type string :initarg :tosid :reader tosid)
+   (toexpr :value-type string :initarg :toexpr :reader toexpr)
+   (totype :value-type string :initarg :totype :reader totype)
+   (torule :value-type string :initarg :torule :reader torule)
+   (tores :value-type string :initarg :tores :reader tores)
+   (maprule :value-type string :initarg :maprule :reader maprule)
+   (maptype :value-type string :initarg :maptype :reader maptype)
+   (mapatn :value-type string :initarg :mapatn :reader mapatn)
+   (mapatv :value-type string :initarg :mapatv :reader mapatv)
+   (cvf :value-type string  :initarg :cvf :reader cvf))
+  (:metaclass hyperobject-class)
+  (:user-name "Mapping")
+  (:default-print-slots mapsetcui mapsetsab mapsubsetid maprank fromid fromsid fromexpr fromtype
+                        fromrule fromres rel rela toid tosid toexpr totype torule tores maprule
+                        maptype mapatn mapatv))
+
+(defclass usmap (umlsclass)
+  ((mapsetcui :value-type fixnum :initarg :mapsetcui :reader mapsetcui)
+   (mapsetsab :value-type string :initarg :mapsetsab :reader mapsetsab)
+   (fromexpr :value-type string :initarg :fromexpr :reader fromexpr)
+   (fromtype :value-type string :initarg :fromtype :reader fromtype)
+   (rel :value-type string :initarg :rel :reader rel)
+   (rela :value-type string :initarg :rela :reader rela)
+   (toexpr :value-type string :initarg :toexpr :reader toexpr)
+   (totype :value-type string :initarg :totype :reader totype)
+   (cvf :value-type string  :initarg :cvf :reader cvf))
+  (:metaclass hyperobject-class)
+  (:user-name "Simple Mapping")
+  (:default-print-slots mapsetcui mapsetsab fromexpr fromtype rel rela toexpr totype))
 
 (defclass uxw (umlsclass)
-  ((wd :type string :initarg :wd :reader wd)
-   (cui :type fixnum :initform nil :initarg :cui :reader cui :print-formatter fmt-cui)
-   (lui :type fixnum :initform nil :initarg :lui :reader lui :print-formatter fmt-lui)
-   (sui :type fixnum :initform nil :initarg :sui :reader sui :print-formatter fmt-sui))
+  ((wd :value-type string :initarg :wd :reader wd)
+   (cui :value-type fixnum :initform nil :initarg :cui :reader cui :print-formatter fmt-cui)
+   (lui :value-type fixnum :initform nil :initarg :lui :reader lui :print-formatter fmt-lui)
+   (sui :value-type fixnum :initform nil :initarg :sui :reader sui :print-formatter fmt-sui))
+  (:metaclass hyperobject-class)
+  (:user-name "XW Index" "XW Indices")
+  (:default-print-slots wd cui lui sui))
+
+(defclass uxw-noneng (umlsclass)
+  ((lat :value-type string :initarg :lat :reader lat)
+   (wd :value-type string :initarg :wd :reader wd)
+   (cui :value-type fixnum :initform nil :initarg :cui :reader cui :print-formatter fmt-cui)
+   (lui :value-type fixnum :initform nil :initarg :lui :reader lui :print-formatter fmt-lui)
+   (sui :value-type fixnum :initform nil :initarg :sui :reader sui :print-formatter fmt-sui)
+   (lrl :value-type fixnum :initform nil :initarg :lrl :reader lrl))
   (:metaclass hyperobject-class)
-  (:default-initargs :wd nil :cui nil :lui nil :sui nil)
-  (:title "XW Index")
-  (:print-slots wd cui lui sui))
+  (:user-name "XW Non-English Index" "XW Non-English Indices")
+  (:default-print-slots wd cui lui sui))
 
 (defclass uxnw (umlsclass)
-  ((lat :type string :initarg :lat :reader lat)
-   (nwd :type string :initarg :nwd :reader nwd)
-   (cuilist :type list :initarg :cuilist :reader uxnw-cuilist))
+  ((lat :value-type string :initarg :lat :reader lat)
+   (nwd :value-type string :initarg :nwd :reader nwd)
+   (cuilist :value-type list :initarg :cuilist :reader uxnw-cuilist))
   (:metaclass hyperobject-class)
-  (:default-initargs :lat nil :nwd nil :cuilist nil)
-  (:title "XNW Index")
-  (:print-slots lat nwd cuilist))
+  (:user-name "XNW Index" "XNW Indices")
+  (:default-print-slots lat nwd cuilist))
 
 (defclass uxns (umlsclass)
-  ((lat :type string :initarg :lat :reader lat)
-   (nstr :type string :initarg :nstr :reader nstr)
-   (cuilist :type list :initarg :cuilist :reader cuilist))
+  ((lat :value-type string :initarg :lat :reader lat)
+   (nstr :value-type string :initarg :nstr :reader nstr)
+   (cuilist :value-type list :initarg :cuilist :reader cuilist))
   (:metaclass hyperobject-class)
-  (:default-initargs :lat nil :nstr nil :cuilist nil)
-  (:title "XNS Index")
-  (:print-slots lat nstr cuilist))
+  (:user-name "XNS Index" "XNS Indices")
+  (:default-print-slots lat nstr cuilist))
+
+(defclass udoc (umlsclass)
+  ((dockey :value-type string :initarg :dockey :reader dockey)
+   (expl :value-type cdata :initarg :expl :reader expl)
+   (dtype :value-type cdata :initarg :dtype :reader dtype)
+   (dvalue :value-type cdata :initarg :dvalue :reader dvalue))
+  (:metaclass hyperobject-class)
+  (:user-name "Documentation record")
+  (:default-print-slots dockey expl dtype dvalue))
 
 
 ;;; LEX objects
 
 (defclass lexterm (umlsclass)
-  ((eui :type fixnum :initarg :eui :reader eui :print-formatter fmt-eui
-       :hyperlink find-lexterm-eui)
-   (wrd :type string :initarg :wrd :reader wrd)
-   (s#abr :reader s#abr :subobject t)
-   (s#agr :reader s#agr :subobject t)
-   (s#cmp :reader s#cmp :subobject t)
-   (s#mod :reader s#mod :subobject t)
-   (s#nom :reader s#nom :subobject t)
-   (s#prn :reader s#prn :subobject t)
-   (s#prp :reader s#prp :subobject t)
-   (s#spl :reader s#spl :subobject t)
-   (s#trm :reader s#trm :subobject t)
-   (s#typ :reader s#typ :subobject t))
-  (:metaclass hyperobject-class)
-  (:default-initargs :eui nil :wrd nil)
-  (:title "Lexical Term")
-  (:print-slots eui wrd))
+  ((eui :value-type fixnum :initarg :eui :reader eui :print-formatter fmt-eui
+        :hyperlink find-lexterm-eui)
+   (wrd :value-type string :initarg :wrd :reader wrd)
+   (s#abr :reader s#abr :subobject (find-labr-eui eui))
+   (s#agr :reader s#agr :subobject (find-lagr-eui eui))
+   (s#cmp :reader s#cmp :subobject (find-lcmp-eui eui))
+   (s#mod :reader s#mod :subobject (find-lmod-eui eui))
+   (s#nom :reader s#nom :subobject (find-lnom-eui eui))
+   (s#prn :reader s#prn :subobject (find-lprn-eui eui))
+   (s#prp :reader s#prp :subobject (find-lprp-eui eui))
+   (s#spl :reader s#spl :subobject (find-lspl-eui eui))
+   (s#trm :reader s#trm :subobject (find-ltrm-eui eui))
+   (s#typ :reader s#typ :subobject (find-ltyp-eui eui)))
+  (:metaclass hyperobject-class)
+  (:user-name "Lexical Term")
+  (:default-print-slots eui wrd))
 
 
 (defclass labr  (umlsclass)
-  ((eui :type integer :initarg :eui :reader eui :print-formatter fmt-eui)
-   (bas :type string :initarg :bas :reader bas)
-   (abr :type string :initarg :abr :reader abr)
-   (eui2 :type integer :initarg :eui2 :reader eui2 :print-formatter fmt-eui)
-   (bas2 :type string :initarg :bas2 :reader bas2))
+  ((eui :value-type integer :initarg :eui :reader eui :print-formatter fmt-eui)
+   (bas :value-type string :initarg :bas :reader bas)
+   (abr :value-type string :initarg :abr :reader abr)
+   (eui2 :value-type integer :initarg :eui2 :reader eui2 :print-formatter fmt-eui)
+   (bas2 :value-type string :initarg :bas2 :reader bas2))
   (:metaclass hyperobject-class)
-  (:default-initargs :eui nil :bas nil :abr nil :eui2 nil :bas2 nil)
-  (:title "Abbreviations and Acronyms")
-  (:print-slots eui bas abr eui2 bas2))
+  (:user-name "Abbreviations and Acronym")
+  (:default-print-slots eui bas abr eui2 bas2))
 
 (defclass lagr  (umlsclass)
-  ((eui :type integer :initarg :eui :reader eui :print-formatter fmt-eui)
-   (str :type string :initarg :str :reader str)
-   (sca :type string :initarg :sca :reader sca)
-   (agr :type string :initarg :agr :reader agr)
-   (cit :type string :initarg :cit :reader cit)
-   (bas :type string :initarg :bas :reader bas))
+  ((eui :value-type integer :initarg :eui :reader eui :print-formatter fmt-eui)
+   (str :value-type string :initarg :str :reader str)
+   (sca :value-type string :initarg :sca :reader sca)
+   (agr :value-type string :initarg :agr :reader agr)
+   (cit :value-type string :initarg :cit :reader cit)
+   (bas :value-type string :initarg :bas :reader bas))
   (:metaclass hyperobject-class)
-  (:default-initargs :eui nil :str nil :sca nil :agr nil :cit nil :bas nil)
-  (:title "Agreement and Inflection")
-  (:print-slots eui str sca agr cit bas))
+  (:user-name "Agreement and Inflection")
+  (:default-print-slots eui str sca agr cit bas))
 
 (defclass lcmp  (umlsclass)
-  ((eui :type integer :initarg :eui :reader eui :print-formatter fmt-eui)
-   (bas :type string :initarg :bas :reader bas)
-   (sca :type string :initarg :sca :reader sca)
-   (com :type string :initarg :com :reader com))
+  ((eui :value-type integer :initarg :eui :reader eui :print-formatter fmt-eui)
+   (bas :value-type string :initarg :bas :reader bas)
+   (sca :value-type string :initarg :sca :reader sca)
+   (com :value-type string :initarg :com :reader com))
   (:metaclass hyperobject-class)
-  (:default-initargs :eui nil :bas nil :sca nil :com nil)
-  (:title "Complementation")
-  (:print-slots eui bas sca com))
+  (:user-name "Complementation")
+  (:default-print-slots eui bas sca com))
 
 (defclass lmod  (umlsclass)
-  ((eui :type integer :initarg :eui :reader eui :print-formatter fmt-eui)
-   (bas :type string :initarg :bas :reader bas)
-   (sca :type string :initarg :sca :reader sca)
-   (psnmod :type string :initarg :psnmod :reader psnmod)
-   (fea :type string :initarg :fea :reader fea))
+  ((eui :value-type integer :initarg :eui :reader eui :print-formatter fmt-eui)
+   (bas :value-type string :initarg :bas :reader bas)
+   (sca :value-type string :initarg :sca :reader sca)
+   (psnmod :value-type string :initarg :psnmod :reader psnmod)
+   (fea :value-type string :initarg :fea :reader fea))
   (:metaclass hyperobject-class)
-  (:default-initargs :eui nil :bas nil :sca nil :psnmod nil :fea nil)
-  (:title "Modifiers")
-  (:print-slots eui bas sca psnmod fea))
+  (:user-name "Modifier")
+  (:default-print-slots eui bas sca psnmod fea))
 
 (defclass lnom  (umlsclass)
-  ((eui :type integer :initarg :eui :reader eui :print-formatter fmt-eui)
-   (bas :type string :initarg :bas :reader bas)
-   (sca :type string :initarg :sca :reader sca)
-   (eui2 :type integer :initarg :eui2 :reader eui2 :print-formatter fmt-eui)
-   (bas2 :type string :initarg :bas2 :reader bas2)
-   (sca2 :type string :initarg :sca2 :reader sca2))
+  ((eui :value-type integer :initarg :eui :reader eui :print-formatter fmt-eui)
+   (bas :value-type string :initarg :bas :reader bas)
+   (sca :value-type string :initarg :sca :reader sca)
+   (eui2 :value-type integer :initarg :eui2 :reader eui2 :print-formatter fmt-eui)
+   (bas2 :value-type string :initarg :bas2 :reader bas2)
+   (sca2 :value-type string :initarg :sca2 :reader sca2))
   (:metaclass hyperobject-class)
-  (:default-initargs :eui nil :bas nil :sca nil :eui2 nil :bas2 nil :sca2 nil)
-  (:title "Nominalizations")
-  (:print-slots eui bas sca eui2 bas2 sca2))
+  (:user-name "Nominalization")
+  (:default-print-slots eui bas sca eui2 bas2 sca2))
 
 (defclass lprn  (umlsclass)
-  ((eui :type integer :initarg :eui :reader eui :print-formatter fmt-eui)
-   (bas :type string :initarg :bas :reader bas)
-   (num :type string :initarg :num :reader num)
-   (gnd :type string :initarg :gnd :reader gnd)
-   (cas :type string :initarg :cas :reader cas)
-   (pos :type string :initarg :pos :reader pos)
-   (qnt :type string :initarg :qnt :reader qnt)
-   (fea :type string :initarg :fea :reader fea))
-  (:metaclass hyperobject-class)
-  (:default-initargs :eui nil :bas nil :num nil :gnd nil :cas nil
-                    :pos nil :qnt nil :fea nil)
-  (:title "Pronouns")
-  (:print-slots eui bas num gnd cas pos qnt fea))
+  ((eui :value-type integer :initarg :eui :reader eui :print-formatter fmt-eui)
+   (bas :value-type string :initarg :bas :reader bas)
+   (num :value-type string :initarg :num :reader num)
+   (gnd :value-type string :initarg :gnd :reader gnd)
+   (cas :value-type string :initarg :cas :reader cas)
+   (pos :value-type string :initarg :pos :reader pos)
+   (qnt :value-type string :initarg :qnt :reader qnt)
+   (fea :value-type string :initarg :fea :reader fea))
+  (:metaclass hyperobject-class)
+  (:user-name "Pronoun")
+  (:default-print-slots eui bas num gnd cas pos qnt fea))
 
 (defclass lprp  (umlsclass)
-  ((eui :type integer :initarg :eui :reader eui :print-formatter fmt-eui)
-   (bas :type string :initarg :bas :reader bas)
-   (str :type string :initarg :str :reader str)
-   (sca :type string :initarg :sca :reader sca)
-   (fea :type string :initarg :fea :reader fea))
+  ((eui :value-type integer :initarg :eui :reader eui :print-formatter fmt-eui)
+   (bas :value-type string :initarg :bas :reader bas)
+   (str :value-type string :initarg :str :reader str)
+   (sca :value-type string :initarg :sca :reader sca)
+   (fea :value-type string :initarg :fea :reader fea))
   (:metaclass hyperobject-class)
-  (:default-initargs :eui nil :bas nil :str nil :sca nil :fea nil)
-  (:title "Properties")
-  (:print-slots eui bas str sca fea))
+  (:user-name "Property" "Properties")
+  (:default-print-slots eui bas str sca fea))
 
 
 (defclass lspl  (umlsclass)
-  ((eui :type integer :initarg :eui :reader eui :print-formatter fmt-eui)
-   (spv :type string :initarg :spv :reader spv)
-   (bas :type string :initarg :bas :reader bas))
+  ((eui :value-type integer :initarg :eui :reader eui :print-formatter fmt-eui)
+   (spv :value-type string :initarg :spv :reader spv)
+   (bas :value-type string :initarg :bas :reader bas))
   (:metaclass hyperobject-class)
-  (:default-initargs :eui nil :spv nil :bas nil)
-  (:title "Spelling Variants")
-  (:print-slots eui spv bas))
+  (:user-name "Spelling Variant")
+  (:default-print-slots eui spv bas))
 
 
 (defclass ltrm  (umlsclass)
-  ((eui :type integer :initarg :eui :reader eui :print-formatter fmt-eui)
-   (bas :type string :initarg :bas :reader bas)
-   (gen :type string :initarg :gen :reader gen))
+  ((eui :value-type integer :initarg :eui :reader eui :print-formatter fmt-eui)
+   (bas :value-type string :initarg :bas :reader bas)
+   (gen :value-type string :initarg :gen :reader gen))
   (:metaclass hyperobject-class)
-  (:default-initargs :eui nil :bas nil :gen nil)
-  (:title "Trade Marks")
-  (:print-slots eui bas gen))
+  (:user-name "Trade Mark")
+  (:default-print-slots eui bas gen))
 
 (defclass ltyp  (umlsclass)
-  ((eui :type integer :initarg :eui :reader eui :print-formatter fmt-eui)
-   (bas :type string :initarg :bas :reader bas)
-   (sca :type string :initarg :sca :reader sca)
-   (typ :type string :initarg :typ :reader typ))
+  ((eui :value-type integer :initarg :eui :reader eui :print-formatter fmt-eui)
+   (bas :value-type string :initarg :bas :reader bas)
+   (sca :value-type string :initarg :sca :reader sca)
+   (typ :value-type string :initarg :typ :reader typ))
   (:metaclass hyperobject-class)
-  (:default-initargs :eui nil :bas nil :sca nil :typ nil)
-  (:title "Inflection Type")
-  (:print-slots eui bas sca typ))
+  (:user-name "Inflection Type")
+  (:default-print-slots eui bas sca typ))
 
 (defclass lwd (umlsclass)
-  ((wrd :type string :initarg :wrd :reader wrd)
-   (euilist :type list :initarg :euilist :reader euilist))
+  ((wrd :value-type string :initarg :wrd :reader wrd)
+   (euilist :value-type list :initarg :euilist :reader euilist))
   (:metaclass hyperobject-class)
-  (:default-initargs :wrd nil :euilist nil)
-  (:title "Lexical Word Index")
-  (:print-slots wrd euilist))
+  (:user-name "Lexical Word Index" "Lexical Word Indices")
+  (:default-print-slots wrd euilist))
 
 ;;; Semantic NET objects
 
 (defclass sdef (umlsclass)
-  ((rt :type string :initarg :rt :reader rt)
-   (ui :type integer :initarg :ui :reader ui :print-formatter fmt-tui)
-   (styrl :type string :initarg :styrl :reader styrl)
-   (stnrtn :type string :initarg :stnrtn :reader stnrtn)
-   (def :type string :initarg :def :reader def)
-   (ex :type string :initarg :ex :reader ex)
-   (un :type string :initarg :un :reader un)
-   (rh :type string :initarg :rh :reader rh)
-   (abr :type string :initarg :abr :reader abr)
-   (rin :type string :initarg :rin :reader rin))
-  (:metaclass hyperobject-class)
-  (:default-initargs 
-   :rt nil :ui nil :styrl nil :stnrtn nil :def nil :ex nil :un nil :rh nil 
-   :abr nil :rin nil)
-  (:title "Basic information about Semantic Types and Relations")
-  (:print-slots rt ui styrl stnrtn def ex un rh abr rin))
+  ((rt :value-type string :initarg :rt :reader rt)
+   (ui :value-type integer :initarg :ui :reader ui :print-formatter fmt-tui)
+   (styrl :value-type string :initarg :styrl :reader styrl)
+   (stnrtn :value-type string :initarg :stnrtn :reader stnrtn)
+   (def :value-type string :initarg :def :reader def)
+   (ex :value-type string :initarg :ex :reader ex)
+   (un :value-type string :initarg :un :reader un)
+   (rh :value-type string :initarg :rh :reader rh)
+   (abr :value-type string :initarg :abr :reader abr)
+   (rin :value-type string :initarg :rin :reader rin))
+  (:metaclass hyperobject-class)
+  (:user-name "Basic information about Semantic Types and Relation")
+  (:default-print-slots rt ui styrl stnrtn def ex un rh abr rin))
 
 (defclass sstr (umlsclass)
-  ((styrl :type string :initarg :styrl :reader styrl)
-   (rl :type string :initarg :rl :reader rl)
-   (styrl2 :type string :initarg :styrl2 :reader styrl2)
-   (ls :type string :initarg :ls :reader ls))
+  ((styrl :value-type string :initarg :styrl :reader styrl)
+   (rl :value-type string :initarg :rl :reader rl)
+   (styrl2 :value-type string :initarg :styrl2 :reader styrl2)
+   (ls :value-type string :initarg :ls :reader ls))
   (:metaclass hyperobject-class)
-  (:default-initargs :styrl nil :rl nil :styrl2 nil :ls nil)
-  (:title "Structure of the Network")
-  (:print-slots styrl rl styrl2 ls))
+  (:user-name "Structure of the Network")
+  (:default-print-slots styrl rl styrl2 ls))
 
 (defclass sstre1 (umlsclass)
-  ((ui :type integer :initarg :ui :reader ui :print-formatter fmt-tui)
-   (ui2 :type integer :initarg :ui2 :reader ui2 :print-formatter fmt-tui)
-   (ui3 :type integer :initarg :ui3 :reader ui3 :print-formatter fmt-tui))
+  ((ui :value-type integer :initarg :ui :reader ui :print-formatter fmt-tui)
+   (ui2 :value-type integer :initarg :ui2 :reader ui2 :print-formatter fmt-tui)
+   (ui3 :value-type integer :initarg :ui3 :reader ui3 :print-formatter fmt-tui))
   (:metaclass hyperobject-class)
-  (:default-initargs :ui nil :ui2 nil :ui3 nil)
-  (:title "Fully Inherited Set of Releatons (TUI's)")
-  (:print-slots ui ui2 ui3))
+  (:user-name "Fully Inherited Set of Relation (TUIs)"
+              "Fully Inherited Set of Relations (TUIs)")
+  (:default-print-slots ui ui2 ui3))
 
 (defclass sstre2 (umlsclass)
-  ((sty :type string :initarg :ui :reader sty)
-   (rl :type string :initarg :ui2 :reader rl)
-   (sty2 :type string :initarg :ui3 :reader sty2))
-  (:metaclass hyperobject-class)
-  (:default-initargs :sty nil :rl nil :sty2 nil)
-  (:title "Fully Inherited Set of Releatons (strings)")
-  (:print-slots sty rl sty2))
-
-;;; Formatting routines
-
-(defun fmt-comma-integer (i)
-  (format nil "~:d" i))
-
-(defgeneric fmt-cui (c))
-(defmethod fmt-cui ((c ucon))
-  (format nil "C~7,'0d" (cui c)))
-
-(defmethod fmt-cui ((c fixnum))
-  (format nil "C~7,'0d" c))
-
-(defmethod fmt-cui ((c string))
-  (if (eql (aref c 0) #\C)
-      c
-    (format nil "C~7,'0d" (parse-integer c))))
-
-(defmethod fmt-cui ((c null))
-  (format nil "nil"))
-
-(defgeneric fmt-lui (c))
-(defmethod fmt-lui ((l uterm))
-  (format nil "L~7,'0d" (lui l)))
-
-(defmethod fmt-lui ((l fixnum))
-  (format nil "L~7,'0d" l))
-
-(defmethod fmt-lui ((l string))
-  (if (eql (aref l 0) #\L)
-      l
-  (format nil "L~7,'0d" (parse-integer l))))
-
-(defgeneric fmt-sui (s))
-(defmethod fmt-sui ((s ustr))
-  (format nil "S~7,'0d" (sui s)))
-
-(defmethod fmt-sui ((s fixnum))
-  (format nil "S~7,'0d" s))
-
-(defmethod fmt-sui ((s string))
-  (if (eql (aref s 0) #\S)
-      s
-  (format nil "S~7,'0d" (parse-integer s))))
-
-(defgeneric fmt-tui (t))
-(defmethod fmt-tui ((s fixnum))
-  (format nil "T~3,'0d" s))
-
-(defmethod fmt-tui ((s string))
-  (if (eql (aref s 0) #\T)
-      s
-  (format nil "T~3,'0d" (parse-integer s))))
-
-(defgeneric fmt-eui (e))
-(defmethod fmt-eui ((e fixnum))
-  (format nil "E~7,'0d" e))
-
-(defmethod fmt-eui ((e string))
-  (if (eql (aref e 0) #\E)
-      e
-    (format nil "E~7,'0d" (parse-integer e))))
-
-(defmethod fmt-eui ((e null))
-  (format nil "nil"))
-
-;;; Generic display functions
-
-(eval-when (:compile-toplevel :load-toplevel :execute)
-(defun english-term-p (obj)
-  "Returns two values: T/NIL if term is english and T/NIL if obj is a TERM"
-  (if (eq (hyperobject::class-name (hyperobject::class-of obj)) 'uterm)
-      (values (string-equal (lat obj) "ENG") t)
-    (values nil nil))))
-
-
-(defgeneric print-umlsclass (obj &key os format label file-wrapper english-only subobjects refvars)
-  )
-
-(defmethod print-umlsclass ((obj umlsclass) &key (os *standard-output*) (format :text)
-                             (label nil) (file-wrapper t) (english-only nil) (subobjects nil)
-                             (refvars nil))
-  (view obj :os os :format format :label label :subobjects subobjects
-       :file-wrapper file-wrapper
-       :english-only-function (if english-only #'english-term-p nil)
-       :refvars refvars))
-
-
-(defmacro define-lookup-display (newfuncname lookup-func)
-  "Defines functions for looking up and displaying objects"
-  `(defun ,newfuncname  (keyval &key (os *standard-output*) (format :text) (label nil)
-                               (file-wrapper t) (english-only nil) (subobjects nil))
-     (let ((obj (funcall ,lookup-func keyval)))
-       (print-umlsclass obj :os os :format format :label label 
-                       :file-wrapper file-wrapper :english-only english-only
-                       :subobjects subobjects)
-       obj)))
-
-(define-lookup-display display-con #'find-ucon-cui)
-(define-lookup-display display-term #'find-uterm-lui)
-(define-lookup-display display-str #'find-ustr-sui)
-
-#+(or scl cmu)
-(dolist (c '(urank udef usat uso ucxt ustr ulo uterm usty urel ucoc uatx ucon uxw uxnw uxns lexterm labr lagr lcmp lmod lnom lprn lprp lspl ltrm ltyp lwd sdef sstr sstre1 sstre2 usrl))
-    #+cmu
-    (let ((cl (pcl:find-class c)))
-      (pcl:finalize-inheritance cl))
-    #+scl
-    (let ((cl (find-class c)))
-      (clos:finalize-inheritance cl)))
+  ((sty :value-type string :initarg :ui :reader sty)
+   (rl :value-type string :initarg :ui2 :reader rl)
+   (sty2 :value-type string :initarg :ui3 :reader sty2))
+  (:metaclass hyperobject-class)
+  (:user-name "Fully Inherited Set of Relation (strings)"
+              "Fully Inherited Set of Relations (strings)")
+  (:default-print-slots sty rl sty2))
+
+
+;;; **************************
+;;; Local Classes
+;;; **************************
+
+(defclass ustats (umlsclass)
+  ((name :value-type string :initarg :name :reader name)
+   (hits :value-type integer :initarg :hits :reader hits
+         :user-name "count"
+         :print-formatter fmt-comma-integer)
+   (srl :value-type fixnum :initarg :srl :reader srl))
+  (:metaclass hyperobject-class)
+  (:default-initargs :name nil :hits nil :srl nil)
+  (:user-name "UMLS Statistic")
+  (:default-print-slots name hits srl)
+  (:documentation "Custom Table: UMLS Database statistics."))