From d5cdac77d9abe5fbff91ea11e1d2929b082bffbe Mon Sep 17 00:00:00 2001 From: "Kevin M. Rosenberg" Date: Mon, 8 Jan 2007 08:08:01 +0000 Subject: [PATCH] r11476: add force translation option --- create-sql.lisp | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/create-sql.lisp b/create-sql.lisp index 33e85b6..ad46fb4 100644 --- a/create-sql.lisp +++ b/create-sql.lisp @@ -243,16 +243,15 @@ (sql-create-indexes conn :indexes +custom-index-cols+ :verbose verbose) (sql-create-special-tables conn))) -(defun create-umls-db (&key (extension "-trans") (skip-translation nil) (verbose nil)) +(defun create-umls-db (&key (extension "-trans") (force-translation nil) (verbose nil)) "SQL Databases: initializes entire database via SQL copy commands. This is much faster that using create-umls-db-insert." (when verbose (format t "UMLS Import: Starting.~%")) (ensure-ucols+ufiles) (when verbose (format t "UMLS Import: Preparsing files.~%")) (ensure-preparse) - (unless skip-translation - (when verbose (format t "UMLS Import: Converting text UMLS files to optimized format.~%")) - (translate-all-files :extension extension :verbose verbose)) + (when verbose (format t "UMLS Import: Converting text UMLS files to optimized format.~%")) + (translate-all-files :extension extension :verbose verbose :force force-translation) (let ((copy-cmd (ecase (umls-sql-type) (:mysql #'mysql-copy-cmd) @@ -275,21 +274,21 @@ This is much faster that using create-umls-db-insert." (When verbose (format t "UMLS Import: Completed.~%")) t) -(defun translate-all-files (&key (extension "-trans") verbose) +(defun translate-all-files (&key (extension "-trans") verbose force) "Translate all *umls-files* to optimized import format." (make-noneng-index-file extension) (dolist (f (remove "MRXW_NONENG.RRF" *umls-files* :test #'string= :key #'fil)) (when verbose (format t "UMLS Import: translating file ~S.~%" (fil f))) - (translate-umls-file f extension))) + (translate-umls-file f extension :force force))) -(defun translate-umls-file (file extension) +(defun translate-umls-file (file extension &key force) "Translate a umls file into a format suitable for sql copy cmd" - (translate-files file extension (list file))) + (translate-files file extension (list file) :force force)) -(defun make-noneng-index-file (extension) +(defun make-noneng-index-file (extension &key force) "Make non-english index file" (translate-files (find-ufile "MRXW_NONENG.RRF") - extension (noneng-lang-index-files))) + extension (noneng-lang-index-files) :force force)) (defun verify-translation-file (output-path input-ufiles) "Returns t if translation file exists and is correct size. Warns and deletes incomplete translation file." @@ -326,12 +325,13 @@ This is much faster that using create-umls-db-insert." (delete-file output-path) nil))))) -(defun translate-files (out-ufile extension input-ufiles) +(defun translate-files (out-ufile extension input-ufiles &key force) "Translate a umls file into a format suitable for sql copy cmd" (let ((output-path (ufile-pathname out-ufile extension))) - (when (verify-translation-file output-path input-ufiles) + (when (and (not force) (verify-translation-file output-path input-ufiles)) (return-from translate-files output-path)) (with-open-file (ostream output-path :direction :output + :if-exists :overwrite #+(and clisp unicode) :external-format #+(and clisp unicode) charset:utf-8) (dolist (input-ufile input-ufiles) -- 2.34.1