X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=data-structures.lisp;h=9fc75fffeeee6b6babd14da13f756bcb112b8937;hb=90dcc29376b4e52a1ba4b7b86dd19ce9f81be4c5;hp=3f51b3ed45df3c8f4502d22d97d90b191f7f1332;hpb=b9fe7fe8b8e24133538f78dbaf6af73b5f0bdec2;p=umlisp.git diff --git a/data-structures.lisp b/data-structures.lisp index 3f51b3e..9fc75ff 100644 --- a/data-structures.lisp +++ b/data-structures.lisp @@ -20,37 +20,54 @@ ;;; Paths for files +(defparameter *release* "2006AD") + (defparameter *umls-path* - (make-pathname :directory '(:absolute "home" "kevin" "2006AC")) + (make-pathname :directory (list :absolute "srv" "umls" *release*)) "Path for base of UMLS data files") -(defvar *meta-path* - (merge-pathnames - (make-pathname :directory '(:relative "META")) - *umls-path*)) +(defparameter *meta-dir* + (make-pathname :directory '(:relative "META"))) + +(defparameter *lex-dir* + (make-pathname :directory '(:relative "LEX"))) + +(defparameter *net-dir* + (make-pathname :directory '(:relative "NET"))) + +(defparameter *meta-path* + (merge-pathnames *meta-dir* *umls-path*)) -(defvar *lex-path* - (merge-pathnames - (make-pathname :directory '(:relative "LEX")) - *umls-path*)) +(defparameter *lex-path* + (merge-pathnames *lex-dir* *umls-path*)) -(defvar *net-path* - (merge-pathnames - (make-pathname :directory '(:relative "NET")) - *umls-path*)) +(defparameter *net-path* + (merge-pathnames *net-dir* *umls-path*)) (defun umls-path! (p) - (setq *umls-path* p)) + (setq *umls-path* (etypecase p + (string (parse-namestring p)) + (pathname p))) + (setq *meta-path* (merge-pathnames *meta-dir* *umls-path*)) + (setq *lex-path* (merge-pathnames *lex-dir* *umls-path*)) + (setq *net-path* (merge-pathnames *net-dir* *umls-path*))) ;;; Structures for parsing UMLS text files - -(defparameter *umls-files* nil + +(defparameter *umls-files* nil "List of umls file structures. Used when parsing text files.") -(defparameter *umls-cols* nil +(defparameter *umls-cols* nil "List of meta column structures. Used when parsing text files.") +;; Special variables + +(defvar *has-fixnum-class* (when (ignore-errors (find-class 'fixnum)) t)) + +(defvar *octet-sql-storage* t + "Used to deciding field lengths. Use nil if using UTF-8 database encoding. But, UTF-8 will cause MySQL to double the bytes used for fixed field sizes.") + ;; Preliminary objects to replace structures (defclass ufile () @@ -66,7 +83,7 @@ (fields :initarg :fields :accessor fields) (ucols :initarg :ucols :accessor ucols)) (:default-initargs :fil nil :table nil :des nil :fmt nil :cls nil :rws nil :bts nil - :fields nil :ucols nil :subdir nil :dir nil) + :fields nil :ucols nil :subdir nil :dir nil) (:documentation "UMLS File")) (defclass ucol () @@ -84,8 +101,8 @@ (datatype :initarg :datatype :accessor datatype) (custom-value-fun :initarg :custom-value-fun :accessor custom-value-fun)) (:default-initargs :col nil :des nil :ref nil :min nil :av nil :max nil :fil nil - :sqltype nil :dty nil :parse-fun nil :datatype nil - :custom-value-fun nil) + :sqltype nil :dty nil :parse-fun nil :datatype nil + :custom-value-fun nil) (:documentation "UMLS column")) @@ -98,4 +115,3 @@ (format s "~A" (col obj)))) -