r3067: *** empty log message ***
authorKevin M. Rosenberg <kevin@rosenberg.net>
Wed, 16 Oct 2002 16:05:23 +0000 (16:05 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Wed, 16 Oct 2002 16:05:23 +0000 (16:05 +0000)
composite.lisp
sql.lisp

index 4dcc194f03fb0cbae8693c429b465a78518aa6e5..9b5f60199a65eede49754dfa5d8624bf178cc0a6 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; Programmer:    Kevin M. Rosenberg
 ;;;; Date Started:  Apr 2000
 ;;;;
-;;;; $Id: composite.lisp,v 1.5 2002/10/14 15:03:43 kevin Exp $
+;;;; $Id: composite.lisp,v 1.6 2002/10/16 16:05:23 kevin Exp $
 ;;;;
 ;;;; This file, part of UMLisp, is
 ;;;;    Copyright (c) 2000-2002 by Kevin M. Rosenberg, M.D.
   (:fields (tui :string fmt-tui) (freq :fixnum) (sty :string))
   (:documentation "Composite object of usty/freq"))
 
+(defmethod tui ((s usty_freq))
+  (usty-tui (usty_freq-usty s)))
+
+(defmethod sty ((s usty_freq))
+  (usty-sty (usty_freq-usty s)))
+
+
 (defun find-usty_freq-all ()
   (let ((usty_freqs '()))
     (dolist (tuple (mutex-sql-query "select distinct TUI from MRSTY"))
        (push (make-instance 'usty_freq :usty (find-usty-tui tui) :freq freq) usty_freqs)))
     (sort usty_freqs #'> :key #'freq)))
 
-(defun usty_freq-tui (s)
-  (tui (usty s)))
-(defun usty_freq-sty (s)
-  (sty (usty s)))
 
 (defclass usrl_freq (umlsclass)
   ((usrl :type usrl :initarg :usrl :reader usrl)
   (:fields (sab :string) (freq :commainteger) (srl :fixnum))
   (:documentation "Composite object of usrl/freq"))
 
-(defun usrl_freq-sab (s)
+(defmethod sab ((s usrl_freq))
   (sab (usrl s)))
  
-(defun usrl_freq-srl (s)
+(defmethod srl ((s usrl_freq))
   (srl (usrl s)))
 
 
 ;; Frequency finding functions
+
+(defun find-usrl_freq-all ()
+  (let ((freqs '()))
+    (dolist (usrl (find-usrl-all))
+      (let ((freq (ensure-integer 
+                  (caar (mutex-sql-query 
+                         (format nil "select count(*) from MRSO where SAB='~a'" 
+                                 (sab usrl)))))))
+       (push (make-instance 'usrl_freq :usrl usrl :freq freq) freqs)))
+    (sort freqs #'> :key #'usrl_freq-freq)))
+
 (defun find-ucon2_freq-coc-tui (ucon tui)
 "Return sorted list of tuples with ucon and freq that have co-occuring concepts of semantic type tui" 
   (let ((ucon_freqs '())) 
index 94a7243e9da75dbbeeb019516f1405b4f1008de9..ef3be08ee04b4cd16cb7cf089fbab9a2dadb214f 100644 (file)
--- a/sql.lisp
+++ b/sql.lisp
@@ -7,7 +7,7 @@
 ;;;; Programmer:    Kevin M. Rosenberg
 ;;;; Date Started:  Apr 2000
 ;;;;
-;;;; $Id: sql.lisp,v 1.4 2002/10/16 15:22:28 kevin Exp $
+;;;; $Id: sql.lisp,v 1.5 2002/10/16 16:05:23 kevin Exp $
 ;;;;
 ;;;; This file, part of UMLisp, is
 ;;;;    Copyright (c) 2000-2002 by Kevin M. Rosenberg, M.D.
                           :srl (ensure-integer (nth 1 tuple))) usrls))
     usrls))
 
-;; already reversed by sql
-
-(defun find-usrl_freq-all ()
-  (let ((freqs '()))
-    (dolist (usrl (find-usrl-all))
-      (let ((freq (ensure-integer 
-                  (caar (mutex-sql-query 
-                         (format nil "select count(*) from MRSO where SAB='~a'" 
-                                 (sab usrl)))))))
-       (push (make-instance 'usrl_freq :usrl usrl :freq freq) freqs)))
-    (sort freqs #'> :key #'usrl_freq-freq)))
-
-
-(defun find-ucon-normalized-multiword (str &key (srl *current-srl*))
-  "Return sorted list of ucon's that match a multiword string"
-  (let* ((words (delimited-string-to-list str #\space))
-        (ucons '())
-        (nwords '()))
-    (dolist (word words)
-      (let ((nws (lvg:process-terms word)))
-       (dolist (nword nws)
-         (push nword nwords))))
-    (dolist (word nwords)
-      (setq ucons (append ucons (find-ucon-word word :srl srl))))
-    (umlisp::sort-score-ucon-str str (delete-duplicates ucons :test #'eql :key #'cui))))
-(defun find-ustr-normalized-multiword (str &key (srl *current-srl*))
-  "Return sorted list of ustr's that match a multiword string"
-  (let* ((words (delimited-string-to-list str #\space))
-        (ustrs '())
-        (nwords '()))
-    (dolist (word words)
-      (let ((nws (lvg:process-terms word)))
-       (dolist (nword nws)
-         (push nword nwords))))
-    (dolist (word nwords)
-      (setq ustrs (append ustrs (find-ustr-word word :srl srl))))
-    (umlisp::sort-score-ustr-str str (delete-duplicates ustrs :test #'eql :key #'ustr-cui))))
-
-(defun a (str)
-  (find-normalized-matches-for-str str #'find-ustr-normalized-word #'ustr-sui))
-
-(defun find-normalized-matches-for-str (str lookup-func key-func)
-  "Return list of objects that normalize match for words in string,
-eliminate duplicates."
-  (let ((objs '())
-       (nwords '()))
-    (dolist (word (delimited-string-to-list str #\space))
-      (dolist (nword (lvg:process-terms word))
-       (unless (member nword nwords :test #'string-equal)
-         (push nword nwords))))
-    (dolist (nw nwords)
-      (setq objs (append objs (funcall lookup-func nw))))
-    (delete-duplicates objs :key key-func :test #'eql)))
+