- ((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)")
- (:fields (sty :string) (rl :string) (sty2 :string)))
-
-;;; Formatting routines
-
-(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::portable-class-name (hyperobject::portable-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))
- (print-hyperobject 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)))