X-Git-Url: http://git.kpe.io/?p=umlisp.git;a=blobdiff_plain;f=data-structures.lisp;h=f45de422125d88abf9fb2751880d5d7140ddefb2;hp=36b874c7973fab89f922a6ea67b83b9a5ac88971;hb=HEAD;hpb=8e895602ced5ab847ecc36c1eaa7be1c9a872a22 diff --git a/data-structures.lisp b/data-structures.lisp index 36b874c..f45de42 100644 --- a/data-structures.lisp +++ b/data-structures.lisp @@ -2,15 +2,13 @@ ;;;; ************************************************************************* ;;;; FILE IDENTIFICATION ;;;; -;;;; Name: data-structures.lisp +;;;; Name: data-structures.lisp ;;;; Purpose: Basic data objects for UMLisp ;;;; Author: Kevin M. Rosenberg ;;;; Created: Apr 2000 ;;;; -;;;; $Id$ -;;;; ;;;; This file, part of UMLisp, is -;;;; Copyright (c) 2000-2006 by Kevin M. Rosenberg, M.D. +;;;; Copyright (c) 2000-2011 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. @@ -20,27 +18,37 @@ ;;; Paths for files +(defparameter *release* "2017AA") + (defparameter *umls-path* - (make-pathname :directory '(:absolute "srv" "umls" "2006AC")) + (make-pathname :directory (list :absolute "srv" "umls" *release* *release*)) "Path for base of UMLS data files") +(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 - (make-pathname :directory '(:relative "META")) - *umls-path*)) + (merge-pathnames *meta-dir* *umls-path*)) (defparameter *lex-path* - (merge-pathnames - (make-pathname :directory '(:relative "LEX")) - *umls-path*)) + (merge-pathnames *lex-dir* *umls-path*)) (defparameter *net-path* - (merge-pathnames - (make-pathname :directory '(:relative "NET")) - *umls-path*)) + (merge-pathnames *net-dir* *umls-path*)) -(defun umls-path! (p) - (setq *umls-path* p)) +(defun set-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 @@ -57,7 +65,7 @@ (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 () @@ -73,7 +81,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 () @@ -91,17 +99,15 @@ (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")) -(defmethod print-object ((obj ufile) (s stream)) +(defmethod print-object ((obj ufile) s) (print-unreadable-object (obj s :type t) (format s "~A" (fil obj)))) -(defmethod print-object ((obj ucol) (s stream)) +(defmethod print-object ((obj ucol) s) (print-unreadable-object (obj s :type t) (format s "~A" (col obj)))) - -