r11704: can not use keywords in :subobject functions
[umlisp.git] / classes.lisp
1 ;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10; Package: umlisp -*-
2 ;;;; *************************************************************************
3 ;;;; FILE IDENTIFICATION
4 ;;;;
5 ;;;; Name:     classes.lisp
6 ;;;; Purpose:  Class defintions for UMLisp
7 ;;;; Author:   Kevin M. Rosenberg
8 ;;;; Created:  Apr 2000
9 ;;;;
10 ;;;; $Id$
11 ;;;;
12 ;;;; This file, part of UMLisp, is
13 ;;;;    Copyright (c) 2000-2006 by Kevin M. Rosenberg, M.D.
14 ;;;;
15 ;;;; UMLisp users are granted the rights to distribute and use this software
16 ;;;; as governed by the terms of the GNU General Public License.
17 ;;;; *************************************************************************
18
19 (in-package #:umlisp)
20
21 (defclass umlsclass (hyperobject)
22   ()
23   (:metaclass hyperobject-class)
24   (:description "Parent class of all UMLS objects. It is based on the HYPEROBJECT-CLASS metaclass that provides object printing functions."))
25
26
27 (defclass usrl (umlsclass)
28   ((sab :value-type string :initarg :sab :reader sab)
29    (srl :value-type fixnum :initarg :srl :reader srl))
30   (:metaclass hyperobject-class)
31   (:user-name "Source Restriction Level")
32   (:default-print-slots sab srl)
33   (:description "Custom Table: Source Restriction Level"))
34
35
36 (defclass urank (umlsclass)
37   ((rank :value-type fixnum :initarg :rank :reader rank)
38    (sab :value-type string :initarg :sab :reader sab)
39    (tty :value-type string :initarg :tty :reader tty)
40    (suppress :value-type string :initarg :suppress :reader suppress))
41   (:metaclass hyperobject-class)
42   (:user-name "Rank")
43   (:default-print-slots rank sab tty suppres))
44
45 (defclass udef (umlsclass)
46   ((def :value-type cdata :initarg :def :reader def)
47    (sab :value-type string :initarg :sab :reader sab :hyperlink find-usab-rsab)
48    (suppress :value-type string :initarg :suppress :reader suppress))
49   (:metaclass hyperobject-class)
50   (:user-name "Definition")
51   (:default-print-slots sab def))
52
53 (defclass usat (umlsclass)
54   ((sab :value-type string :initarg :sab :reader sab :hyperlink find-usab-rsab)
55    (code :value-type string :initarg :code :reader code)
56    (atn :value-type string :initarg :atn :reader atn)
57    (atv :value-type cdata :initarg :atv :reader atv))
58   (:metaclass hyperobject-class)
59   (:user-name "Simple Attribute")
60   (:default-print-slots sab code atn atv))
61
62 (defclass usab (umlsclass)
63   ((vcui :value-type fixnum :initarg :vcui :reader vcui :print-formatter fmt-cui)
64    (rcui :value-type fixnum :initarg :rcui :reader rcui :print-formatter fmt-cui)
65    (vsab :value-type string :initarg :vsab :reader vsab)
66    (rsab :value-type string :initarg :rsab :reader rsab :hyperlink find-ustr-sab
67          :hyperlink-parameters (("subobjects" . "no")))
68    (son :value-type string :initarg :son :reader son)
69    (sf :value-type string :initarg :sf :reader sf)
70    (sver :value-type string :initarg :sver :reader sver)
71    (vstart :value-type string :initarg :vstart :reader vstart)
72    (vend :value-type string :initarg :vend :reader vend)
73    (imeta :value-type string :initarg :imeta :reader imeta)
74    (rmeta :value-type string :initarg :rmeta :reader rmeta)
75    (slc :value-type cdata :initarg :slc :reader slc)
76    (scc :value-type cdata :initarg :scc :reader scc)
77    (srl :value-type fixnum :initarg :srl :reader srl)
78    (tfr :value-type fixnum :initarg :tfr :reader tfr :print-formatter fmt-comma-integer)
79    (cfr :value-type fixnum :initarg :cfr :reader cfr :print-formatter fmt-comma-integer)
80    (cxty :value-type string :initarg :cxty :reader cxty)
81    (ttyl :value-type string :initarg :ttyl :reader ttyl)
82    (atnl :value-type string :initarg :atnl :reader atnl)
83    (lat :value-type string :initarg :lat :reader lat)
84    (cenc :value-type string :initarg :cenc :reader cenc)
85    (curver :value-type string :initarg :curver :reader curver)
86    (sabin :value-type string :initarg :sabin :reader sabin)
87    (ssn :value-type string :initarg :ssn :reader ssn)
88    (scit :value-type string :initarg :scit :reader scit))
89   (:metaclass hyperobject-class)
90   (:user-name "Source Abbreviation")
91   (:default-print-slots vcui rcui vsab rsab son sf sver vstart vend imeta
92                 rmeta slc scc srl tfr cfr cxty ttyl atnl lat cenc
93                 curver sabin ssn scit))
94
95 (defclass uhier (umlsclass)
96   ((cui :value-type fixnum :initarg :cui :reader cui :hyperlink find-ucon-cui
97         :print-formatter fmt-cui)
98    (aui :value-type fixnum :initarg :aui :reader aui :hyperlink find-ucon-aui
99          :print-formatter fmt-aui)
100    (cxn :value-type fixnum :initarg :cxn :reader cxn)
101    (paui :value-type fixnum :initarg :paui :reader paui
102          :print-formatter fmt-aui)
103    (sab :value-type string :initarg :sab :reader sab :hyperlink find-usab-rsab)
104    (rela :value-type string :initarg :rela :reader rela)
105    (ptr :value-type string :initarg :ptr :reader ptr)
106    (hcd :value-type string :initarg :hcd :reader hcd)
107    (cvf :value-type string  :initarg :cvf :reader cvf))
108   (:metaclass hyperobject-class)
109   (:user-name "Context")
110   (:default-print-slots cxn paui sab rela ptr hcd))
111
112 (defclass ustr (umlsclass)
113   ((sui :value-type fixnum :initarg :sui :reader sui :print-formatter fmt-sui
114         :hyperlink find-ustr-sui)
115    (cui :value-type fixnum :initarg :cui :reader cui :print-formatter fmt-cui
116         :hyperlink find-ucon-cui)
117    (lui :value-type fixnum :initarg :lui :reader lui :print-formatter fmt-lui
118         :hyperlink find-uterm-lui)
119    (cuisui :value-type integer :initarg :cuisui :reader cuisui )
120    (str :value-type cdata :initarg :str :reader str)
121    (lrl :value-type fixnum :initarg :lrl :reader lrl)
122    (stt :value-type string :initarg :stt :reader stt)
123    (suppress :value-type string :initarg :suppress :reader suppress)
124    (s#so :reader s#so :subobject (find-uso-cuisui cui sui))
125    (s#sat :reader s#sat :subobject (find-usat-ui cui lui sui)))
126   (:metaclass hyperobject-class)
127   (:user-name "String")
128   (:default-print-slots sui stt lrl str suppress))
129
130
131 (defclass uso (umlsclass)
132   ((aui :value-type fixnum :initarg :aui :reader aui :print-formatter fmt-aui
133         :hyperlink find-ucon-aui)
134    (cui :value-type fixnum :initarg :cui :reader cui :print-formatter fmt-cui
135         :hyperlink find-ucon-cui)
136    (sui :value-type fixnum :initarg :sui :reader sui :print-formatter fmt-sui
137         :hyperlink find-ucon-sui)
138    (saui :value-type string :initarg :saui :reader saui)
139    (sdui :value-type string :initarg :sdui :reader sdui)
140    (scui :value-type string :initarg :scui :reader scui)
141    (tty :value-type string :initarg :tty :reader tty)
142    (code :value-type string :initarg :code :reader code)
143    (sab :value-type string :initarg :sab :reader sab :hyperlink find-usab-rsab)
144    (lat :value-type string :initarg :lat :reader lat)
145    (str :value-type cdata :initarg :str :reader str)
146    (srl :value-type fixnum :initarg :srl :reader srl))
147   (:metaclass hyperobject-class)
148   (:user-name "Source")
149   (:default-print-slots aui sab code saui sdui scui tty srl))
150
151 (defclass uterm (umlsclass)
152   ((lui :value-type fixnum :initarg :lui :reader lui :print-formatter fmt-lui
153         :hyperlink find-uterm-lui)
154    (cui :value-type fixnum :initarg :cui :reader cui :print-formatter fmt-cui
155         :hyperlink find-ucon-cui)
156    (lat :value-type string :initarg :lat :reader lat)
157    (ts :value-type string  :initarg :ts :reader ts)
158    (lrl :value-type fixnum :initarg :lrl :reader lrl)
159    (s#str :reader s#str :subobject (find-ustr-cuilui cui lui))
160    (s#sat :reader s#sat :subobject (find-usat-ui cui lui)))
161   (:metaclass hyperobject-class)
162   (:user-name "Term")
163   (:default-print-slots lui lat ts lrl))
164
165 (defclass usty (umlsclass)
166   ((tui :value-type fixnum :initarg :tui :reader tui :print-formatter fmt-tui
167         :hyperlink find-ucon-tui
168         :hyperlink-parameters (("subobjects" . "no")))
169    (sty :value-type string :initarg :sty :reader sty))
170   (:metaclass hyperobject-class)
171   (:user-name "Semantic Type")
172   (:default-print-slots tui sty))
173
174 (defclass urel (umlsclass)
175   ((rel :value-type string :initarg :rel :reader rel :hyperlink find-brel-rel)
176    (cui1 :value-type fixnum :initarg :cui1 :reader cui1 :print-formatter fmt-cui)
177    (aui1 :value-type fixnum :initarg :aui1 :reader aui1 :print-formatter fmt-aui)
178    (stype1 :value-type string  :initarg :stype1 :reader stype1)
179    (cui2 :value-type fixnum :initarg :cui2 :reader cui2 :hyperlink find-ucon-sui
180          :print-formatter fmt-cui)
181    (aui2 :value-type fixnum :initarg :aui2 :reader aui2 :hyperlink find-ucon-aui
182          :print-formatter fmt-aui)
183    (pfstr2 :value-type cdata :initarg :pfstr2 :reader pfstr2)
184    (stype2 :value-type string  :initarg :stype2 :reader stype2)
185    (rela :value-type string :initarg :rela :reader rela)
186    (rui :value-type fixnum  :initarg :rui :reader rui :print-formatter fmt-rui)
187    (srui :value-type string  :initarg :srui :reader srui)
188    (sab :value-type string :initarg :sab :reader sab :hyperlink find-usab-rsab)
189    (sl :value-type string  :initarg :sl :reader sl)
190    (rg :value-type string  :initarg :rg :reader rg)
191    (dir :value-type string  :initarg :dir :reader dir)
192    (suppress :value-type string  :initarg :suppress :reader suppress)
193    (cvf :value-type string  :initarg :cvf :reader cvf))
194   (:metaclass hyperobject-class)
195   (:user-name "Relationship")
196   (:default-print-slots stype1 rel cui2 aui2 stype2 rela rui srui sab sl rg dir suppress pfstr2))
197
198 (defclass ucoc (umlsclass)
199   ((cui1 :value-type fixnum :initarg :cui1 :reader cui1 :print-formatter fmt-cui)
200    (aui1 :value-type fixnum :initarg :aui1 :reader aui1 :print-formatter fmt-aui)
201    (cui2 :value-type fixnum :initarg :cui2 :reader cui2 :print-formatter fmt-cui
202          :hyperlink find-ucon-cui)
203    (aui2 :value-type fixnum :initarg :aui2 :reader aui2 :print-formatter fmt-aui
204          :hyperlink find-ucon-aui)
205    (pfstr2 :value-type cdata :initarg :pfstr2 :reader pfstr2)
206    (sab :value-type string :initarg :sab :reader sab)
207    (cot :value-type string :initarg :cot :reader cot)
208    (cof :value-type fixnum :initarg :cof :reader cof)
209    (coa :value-type cdata :initarg :coa :reader coa)
210    (cvf :value-type string  :initarg :cvf :reader cvf))
211   (:metaclass hyperobject-class)
212   (:user-name "Co-occuring Concept")
213   (:default-print-slots cot cof coa cui2 aui2 sab pfstr2))
214
215 (defclass ucon (umlsclass)
216   ((cui :value-type fixnum :initarg :cui :reader cui :print-formatter fmt-cui
217         :hyperlink find-ucon-cui)
218    (lrl :value-type fixnum :initarg :lrl :reader lrl
219         :compute-cached-value (find-lrl-cui cui))
220    (pfstr :value-type cdata :initarg :pfstr :reader pfstr
221           :compute-cached-value (find-pfstr-cui cui))
222    (s#def :reader s#def :subobject (find-udef-cui cui))
223    (s#so :reader s#so :subobject (find-uso-cui cui))
224    (s#hier :reader s#hier :subobject (find-uhier-cui cui))
225    (s#map :reader s#map :subobject (find-umap-cui cui))
226    (s#smap :reader s#smap :subobject (find-usmap-cui cui))
227    (s#sty :reader s#sty :subobject (find-usty-cui cui))
228    (s#term :reader s#term :subobject (find-uterm-cui cui))
229    (s#sat :reader s#sat :subobject (find-usat-ui cui))
230    (s#rel :reader s#rel :subobject (find-urel-cui cui))
231    (s#coc :reader s#coc :subobject (find-ucoc-cui cui)))
232   (:metaclass hyperobject-class)
233   (:user-name "Concept")
234   (:default-print-slots cui lrl pfstr))
235
236
237 (defclass uconso (umlsclass)
238   ((cui :value-type fixnum :initarg :cui :reader cui :print-formatter fmt-cui
239         :hyperlink find-ucon-cui)
240    (pfstr :value-type cdata :initarg :pfstr :reader pfstr
241           :compute-cached-value (find-pfstr-cui cui))
242    (lat :value-type string :initarg :lat :reader lat)
243    (ts :value-type string :initarg :ts :reader ts)
244    (lui :value-type fixnum :initarg :lui :reader lui :print-formatter fmt-lui)
245    (stt :value-type string :initarg :stt :reader stt)
246    (sui :value-type fixnum :initarg :sui :reader sui :print-formatter fmt-sui)
247    (ispref :value-type string :initarg :ispref :reader ispref)
248    (aui :value-type fixnum :initarg :aui :reader aui :print-formatter fmt-aui)
249    (saui :value-type string :initarg :saui :reader saui)
250    (scui :value-type string :initarg :scui :reader scui)
251    (sdui :value-type string :initarg :sdui :reader sdui)
252    (sab :value-type string :initarg :sab :reader sab)
253    (tty :value-type string :initarg :tty :reader tty)
254    (code :value-type string :initarg :code :reader code)
255    (str :value-type string :initarg :str :reader str)
256    (srl :value-type fixnum :initarg :srl :reader srl)
257    (suppress :value-type string :initarg :suppress :reader suppress)
258    (cvf :value-type string :initarg :cvf :reader cvf)
259    (kpfeng :value-type string :initarg :kpfeng :reader kpfeng)
260    (kcuisui :value-type bigint :initarg :kcuisui :reader kcuisui)
261    (kcuilui :value-type bigint :initarg :kcuilui :reader kcuilui)
262    (kcuilrl :value-type fixnum :initarg :kcuilrl :reader kcuilrl)
263    (kluilrl :value-type fixnum :initarg :kluilrl :reader kluilrl)
264    (ksuilrl :value-type fixnum :initarg :ksuilrl :reader ksuilrl)
265    (s#def :reader s#def :subobject (find-udef-cui cui))
266    (s#so :reader s#so :subobject (find-uso-cui cui))
267    (s#hier :reader s#hier :subobject (find-uhier-cui cui))
268    (s#map :reader s#map :subobject (find-umap-cui cui))
269    (s#smap :reader s#smap :subobject (find-usmap-cui cui))
270    (s#sty :reader s#sty :subobject (find-usty-cui cui))
271    (s#term :reader s#term :subobject (find-uterm-cui cui))
272    (s#sat :reader s#sat :subobject (find-usat-ui cui))
273    (s#rel :reader s#rel :subobject (find-urel-cui cui))
274    (s#coc :reader s#coc :subobject (find-ucoc-cui cui)))
275   (:documentation "CONSO is a new concept from the RRF files. This object is a rather raw row from the MRCONSO table.")
276   (:metaclass hyperobject-class)
277   (:user-name "Concept")
278   (:default-print-slots cui kcuilrl str sab))
279
280 (defclass umap (umlsclass)
281   ((mapsetcui :value-type fixnum :initarg :mapsetcui :reader mapsetcui)
282    (mapsetsab :value-type string :initarg :mapsetsab :reader mapsetsab)
283    (mapsubsetid :value-type string :initarg :mapsubsetid :reader mapsubsetid)
284    ;; fixme: will convert to integer
285    (maprank :value-type string :initarg :maprank :reader maprank)
286    (fromid :value-type string :initarg :fromid :reader fromid)
287    (fromsid :value-type string :initarg :fromsid :reader fromsid)
288    (fromexpr :value-type string :initarg :fromexpr :reader fromexpr)
289    (fromtype :value-type string :initarg :fromtype :reader fromtype)
290    (fromrule :value-type string :initarg :fromrule :reader fromrule)
291    (fromres :value-type string :initarg :fromres :reader fromres)
292    (rel :value-type string :initarg :rel :reader rel)
293    (rela :value-type string :initarg :rela :reader rela)
294    (toid :value-type string :initarg :toid :reader toid)
295    (tosid :value-type string :initarg :tosid :reader tosid)
296    (toexpr :value-type string :initarg :toexpr :reader toexpr)
297    (totype :value-type string :initarg :totype :reader totype)
298    (torule :value-type string :initarg :torule :reader torule)
299    (tores :value-type string :initarg :tores :reader tores)
300    (maprule :value-type string :initarg :maprule :reader maprule)
301    (maptype :value-type string :initarg :maptype :reader maptype)
302    (mapatn :value-type string :initarg :mapatn :reader mapatn)
303    (mapatv :value-type string :initarg :mapatv :reader mapatv)
304    (cvf :value-type string  :initarg :cvf :reader cvf))
305   (:metaclass hyperobject-class)
306   (:user-name "Mapping")
307   (:default-print-slots mapsetcui mapsetsab mapsubsetid maprank fromid fromsid fromexpr fromtype
308                         fromrule fromres rel rela toid tosid toexpr totype torule tores maprule
309                         maptype mapatn mapatv))
310
311 (defclass usmap (umlsclass)
312   ((mapsetcui :value-type fixnum :initarg :mapsetcui :reader mapsetcui)
313    (mapsetsab :value-type string :initarg :mapsetsab :reader mapsetsab)
314    (fromexpr :value-type string :initarg :fromexpr :reader fromexpr)
315    (fromtype :value-type string :initarg :fromtype :reader fromtype)
316    (rel :value-type string :initarg :rel :reader rel)
317    (rela :value-type string :initarg :rela :reader rela)
318    (toexpr :value-type string :initarg :toexpr :reader toexpr)
319    (totype :value-type string :initarg :totype :reader totype)
320    (cvf :value-type string  :initarg :cvf :reader cvf))
321   (:metaclass hyperobject-class)
322   (:user-name "Simple Mapping")
323   (:default-print-slots mapsetcui mapsetsab fromexpr fromtype rel rela toexpr totype))
324
325 (defclass uxw (umlsclass)
326   ((wd :value-type string :initarg :wd :reader wd)
327    (cui :value-type fixnum :initform nil :initarg :cui :reader cui :print-formatter fmt-cui)
328    (lui :value-type fixnum :initform nil :initarg :lui :reader lui :print-formatter fmt-lui)
329    (sui :value-type fixnum :initform nil :initarg :sui :reader sui :print-formatter fmt-sui))
330   (:metaclass hyperobject-class)
331   (:user-name "XW Index" "XW Indices")
332   (:default-print-slots wd cui lui sui))
333
334 (defclass uxw-noneng (umlsclass)
335   ((lat :value-type string :initarg :lat :reader lat)
336    (wd :value-type string :initarg :wd :reader wd)
337    (cui :value-type fixnum :initform nil :initarg :cui :reader cui :print-formatter fmt-cui)
338    (lui :value-type fixnum :initform nil :initarg :lui :reader lui :print-formatter fmt-lui)
339    (sui :value-type fixnum :initform nil :initarg :sui :reader sui :print-formatter fmt-sui)
340    (lrl :value-type fixnum :initform nil :initarg :lrl :reader lrl))
341   (:metaclass hyperobject-class)
342   (:user-name "XW Non-English Index" "XW Non-English Indices")
343   (:default-print-slots wd cui lui sui))
344
345 (defclass uxnw (umlsclass)
346   ((lat :value-type string :initarg :lat :reader lat)
347    (nwd :value-type string :initarg :nwd :reader nwd)
348    (cuilist :value-type list :initarg :cuilist :reader uxnw-cuilist))
349   (:metaclass hyperobject-class)
350   (:user-name "XNW Index" "XNW Indices")
351   (:default-print-slots lat nwd cuilist))
352
353 (defclass uxns (umlsclass)
354   ((lat :value-type string :initarg :lat :reader lat)
355    (nstr :value-type string :initarg :nstr :reader nstr)
356    (cuilist :value-type list :initarg :cuilist :reader cuilist))
357   (:metaclass hyperobject-class)
358   (:user-name "XNS Index" "XNS Indices")
359   (:default-print-slots lat nstr cuilist))
360
361 (defclass udoc (umlsclass)
362   ((dockey :value-type string :initarg :dockey :reader dockey)
363    (expl :value-type cdata :initarg :expl :reader expl)
364    (dtype :value-type cdata :initarg :dtype :reader dtype)
365    (dvalue :value-type cdata :initarg :dvalue :reader dvalue))
366   (:metaclass hyperobject-class)
367   (:user-name "Documentation record")
368   (:default-print-slots dockey expl dtype dvalue))
369
370
371 ;;; LEX objects
372
373 (defclass lexterm (umlsclass)
374   ((eui :value-type fixnum :initarg :eui :reader eui :print-formatter fmt-eui
375         :hyperlink find-lexterm-eui)
376    (wrd :value-type string :initarg :wrd :reader wrd)
377    (s#abr :reader s#abr :subobject (find-labr-eui eui))
378    (s#agr :reader s#agr :subobject (find-lagr-eui eui))
379    (s#cmp :reader s#cmp :subobject (find-lcmp-eui eui))
380    (s#mod :reader s#mod :subobject (find-lmod-eui eui))
381    (s#nom :reader s#nom :subobject (find-lnom-eui eui))
382    (s#prn :reader s#prn :subobject (find-lprn-eui eui))
383    (s#prp :reader s#prp :subobject (find-lprp-eui eui))
384    (s#spl :reader s#spl :subobject (find-lspl-eui eui))
385    (s#trm :reader s#trm :subobject (find-ltrm-eui eui))
386    (s#typ :reader s#typ :subobject (find-ltyp-eui eui)))
387   (:metaclass hyperobject-class)
388   (:user-name "Lexical Term")
389   (:default-print-slots eui wrd))
390
391
392 (defclass labr  (umlsclass)
393   ((eui :value-type integer :initarg :eui :reader eui :print-formatter fmt-eui)
394    (bas :value-type string :initarg :bas :reader bas)
395    (abr :value-type string :initarg :abr :reader abr)
396    (eui2 :value-type integer :initarg :eui2 :reader eui2 :print-formatter fmt-eui)
397    (bas2 :value-type string :initarg :bas2 :reader bas2))
398   (:metaclass hyperobject-class)
399   (:user-name "Abbreviations and Acronym")
400   (:default-print-slots eui bas abr eui2 bas2))
401
402 (defclass lagr  (umlsclass)
403   ((eui :value-type integer :initarg :eui :reader eui :print-formatter fmt-eui)
404    (str :value-type string :initarg :str :reader str)
405    (sca :value-type string :initarg :sca :reader sca)
406    (agr :value-type string :initarg :agr :reader agr)
407    (cit :value-type string :initarg :cit :reader cit)
408    (bas :value-type string :initarg :bas :reader bas))
409   (:metaclass hyperobject-class)
410   (:user-name "Agreement and Inflection")
411   (:default-print-slots eui str sca agr cit bas))
412
413 (defclass lcmp  (umlsclass)
414   ((eui :value-type integer :initarg :eui :reader eui :print-formatter fmt-eui)
415    (bas :value-type string :initarg :bas :reader bas)
416    (sca :value-type string :initarg :sca :reader sca)
417    (com :value-type string :initarg :com :reader com))
418   (:metaclass hyperobject-class)
419   (:user-name "Complementation")
420   (:default-print-slots eui bas sca com))
421
422 (defclass lmod  (umlsclass)
423   ((eui :value-type integer :initarg :eui :reader eui :print-formatter fmt-eui)
424    (bas :value-type string :initarg :bas :reader bas)
425    (sca :value-type string :initarg :sca :reader sca)
426    (psnmod :value-type string :initarg :psnmod :reader psnmod)
427    (fea :value-type string :initarg :fea :reader fea))
428   (:metaclass hyperobject-class)
429   (:user-name "Modifier")
430   (:default-print-slots eui bas sca psnmod fea))
431
432 (defclass lnom  (umlsclass)
433   ((eui :value-type integer :initarg :eui :reader eui :print-formatter fmt-eui)
434    (bas :value-type string :initarg :bas :reader bas)
435    (sca :value-type string :initarg :sca :reader sca)
436    (eui2 :value-type integer :initarg :eui2 :reader eui2 :print-formatter fmt-eui)
437    (bas2 :value-type string :initarg :bas2 :reader bas2)
438    (sca2 :value-type string :initarg :sca2 :reader sca2))
439   (:metaclass hyperobject-class)
440   (:user-name "Nominalization")
441   (:default-print-slots eui bas sca eui2 bas2 sca2))
442
443 (defclass lprn  (umlsclass)
444   ((eui :value-type integer :initarg :eui :reader eui :print-formatter fmt-eui)
445    (bas :value-type string :initarg :bas :reader bas)
446    (num :value-type string :initarg :num :reader num)
447    (gnd :value-type string :initarg :gnd :reader gnd)
448    (cas :value-type string :initarg :cas :reader cas)
449    (pos :value-type string :initarg :pos :reader pos)
450    (qnt :value-type string :initarg :qnt :reader qnt)
451    (fea :value-type string :initarg :fea :reader fea))
452   (:metaclass hyperobject-class)
453   (:user-name "Pronoun")
454   (:default-print-slots eui bas num gnd cas pos qnt fea))
455
456 (defclass lprp  (umlsclass)
457   ((eui :value-type integer :initarg :eui :reader eui :print-formatter fmt-eui)
458    (bas :value-type string :initarg :bas :reader bas)
459    (str :value-type string :initarg :str :reader str)
460    (sca :value-type string :initarg :sca :reader sca)
461    (fea :value-type string :initarg :fea :reader fea))
462   (:metaclass hyperobject-class)
463   (:user-name "Property" "Properties")
464   (:default-print-slots eui bas str sca fea))
465
466
467 (defclass lspl  (umlsclass)
468   ((eui :value-type integer :initarg :eui :reader eui :print-formatter fmt-eui)
469    (spv :value-type string :initarg :spv :reader spv)
470    (bas :value-type string :initarg :bas :reader bas))
471   (:metaclass hyperobject-class)
472   (:user-name "Spelling Variant")
473   (:default-print-slots eui spv bas))
474
475
476 (defclass ltrm  (umlsclass)
477   ((eui :value-type integer :initarg :eui :reader eui :print-formatter fmt-eui)
478    (bas :value-type string :initarg :bas :reader bas)
479    (gen :value-type string :initarg :gen :reader gen))
480   (:metaclass hyperobject-class)
481   (:user-name "Trade Mark")
482   (:default-print-slots eui bas gen))
483
484 (defclass ltyp  (umlsclass)
485   ((eui :value-type integer :initarg :eui :reader eui :print-formatter fmt-eui)
486    (bas :value-type string :initarg :bas :reader bas)
487    (sca :value-type string :initarg :sca :reader sca)
488    (typ :value-type string :initarg :typ :reader typ))
489   (:metaclass hyperobject-class)
490   (:user-name "Inflection Type")
491   (:default-print-slots eui bas sca typ))
492
493 (defclass lwd (umlsclass)
494   ((wrd :value-type string :initarg :wrd :reader wrd)
495    (euilist :value-type list :initarg :euilist :reader euilist))
496   (:metaclass hyperobject-class)
497   (:user-name "Lexical Word Index" "Lexical Word Indices")
498   (:default-print-slots wrd euilist))
499
500 ;;; Semantic NET objects
501
502 (defclass sdef (umlsclass)
503   ((rt :value-type string :initarg :rt :reader rt)
504    (ui :value-type integer :initarg :ui :reader ui :print-formatter fmt-tui)
505    (styrl :value-type string :initarg :styrl :reader styrl)
506    (stnrtn :value-type string :initarg :stnrtn :reader stnrtn)
507    (def :value-type string :initarg :def :reader def)
508    (ex :value-type string :initarg :ex :reader ex)
509    (un :value-type string :initarg :un :reader un)
510    (rh :value-type string :initarg :rh :reader rh)
511    (abr :value-type string :initarg :abr :reader abr)
512    (rin :value-type string :initarg :rin :reader rin))
513   (:metaclass hyperobject-class)
514   (:user-name "Basic information about Semantic Types and Relation")
515   (:default-print-slots rt ui styrl stnrtn def ex un rh abr rin))
516
517 (defclass sstr (umlsclass)
518   ((styrl :value-type string :initarg :styrl :reader styrl)
519    (rl :value-type string :initarg :rl :reader rl)
520    (styrl2 :value-type string :initarg :styrl2 :reader styrl2)
521    (ls :value-type string :initarg :ls :reader ls))
522   (:metaclass hyperobject-class)
523   (:user-name "Structure of the Network")
524   (:default-print-slots styrl rl styrl2 ls))
525
526 (defclass sstre1 (umlsclass)
527   ((ui :value-type integer :initarg :ui :reader ui :print-formatter fmt-tui)
528    (ui2 :value-type integer :initarg :ui2 :reader ui2 :print-formatter fmt-tui)
529    (ui3 :value-type integer :initarg :ui3 :reader ui3 :print-formatter fmt-tui))
530   (:metaclass hyperobject-class)
531   (:user-name "Fully Inherited Set of Relation (TUIs)"
532               "Fully Inherited Set of Relations (TUIs)")
533   (:default-print-slots ui ui2 ui3))
534
535 (defclass sstre2 (umlsclass)
536   ((sty :value-type string :initarg :ui :reader sty)
537    (rl :value-type string :initarg :ui2 :reader rl)
538    (sty2 :value-type string :initarg :ui3 :reader sty2))
539   (:metaclass hyperobject-class)
540   (:user-name "Fully Inherited Set of Relation (strings)"
541               "Fully Inherited Set of Relations (strings)")
542   (:default-print-slots sty rl sty2))
543
544
545 ;;; **************************
546 ;;; Local Classes
547 ;;; **************************
548
549 (defclass ustats (umlsclass)
550   ((name :value-type string :initarg :name :reader name)
551    (hits :value-type integer :initarg :hits :reader hits
552          :user-name "count"
553          :print-formatter fmt-comma-integer)
554    (srl :value-type fixnum :initarg :srl :reader srl))
555   (:metaclass hyperobject-class)
556   (:default-initargs :name nil :hits nil :srl nil)
557   (:user-name "UMLS Statistic")
558   (:default-print-slots name hits srl)
559   (:documentation "Custom Table: UMLS Database statistics."))
560