;;;; -*- Mode: LISP; Syntax: Common-Lisp; Base: 10 -*- ;;;; --------------------------------------------------------------------------- ;;;; File name: defsys.lsp ;;;; System: FIRE Knowledge Base Browser System ;;;; Author: Shawn Nicholson ;;;; Created: June 18, 2001 08:24:37 ;;;; Purpose: ;;;; --------------------------------------------------------------------------- ;;;; Modified: Saturday, September 29, 2001 at 10:44:11 by Nicholson ;;;; --------------------------------------------------------------------------- (in-package :common-lisp-user) #-qrg (error "You must first load qrg-setup.lisp.") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Load defsys for other modules required by this system if any (unless (member :knowledge-browser *features*) (qrg:load-qrg-defsys "knowledge tools" "knowledge browser" "v1" "v1r00") ) (unless (member :fire *features*) (qrg:load-qrg-defsys "fire" "v1") ) (unless (member :fire-graphs *features*) (qrg:load-qrg-defsys "fire" "v1" "fire-graphs") ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Set up packages (eval-when (:compile-toplevel :load-toplevel :execute) (defpackage :fire-kb-browser (:use :common-lisp :qrg))) ;;Provide the ability to move data to a separate package in the future. (eval-when (:compile-toplevel :load-toplevel :execute) (unless (find-package :data) (rename-package (find-package :cl-user) :common-lisp-user ;keep name the same '(:cl-user :user ;replace standard nicknames :data)))) ;add a new nickname (in-package :fire-kb-browser) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Global variables (defconstant *fire-kb-browser-version* "v1r00") ;; current version number (defparameter *fire-kb-browser-path* (qrg:make-qrg-path "fire" "v1" "kb-browser" "v1" *fire-kb-browser-version*)) (defparameter *fire-kb-browser-files* nil) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; PackDoc stuff (eval-when (:load-toplevel :compile-toplevel :execute) (defmacro export-symbols (subpackage-name doc-string symbols) "Assigns a name and documentation to the group of symbols and exports them from the current package. If PackDoc has been loaded, subpackage documentation will also be generated." `(progn (export ,symbols) (when (member :packdoc *features*) (funcall (intern :subpackage-documentation :packdoc) ,subpackage-name ,symbols ,doc-string))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Load the export file (qrg:load-file *fire-kb-browser-path* "export" :action :load-source :verbose t) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; List the system files (setq *fire-kb-browser-files* '("kb-browser-interface" "kb-browser-fire-html" "kb-browser-fire-zgraph-interface" )) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Define the system's loading function (defun explain-usage () (format t "~%~%To run: ~%") (format t " (fire-kb-browser:browse-fire-kb &key (starting-concept nil) (kb-name name) (kb-path path))~%") ) (defun load-fire-kb-browser (&key (action :source-if-newer) (verbose t) (force-load t)) (cond ((and (not force-load) (member :fire-kb-browser qrg:*modules-loaded*)) (format t "~%;;; FIRE Knowledge Base Browser System already loaded.")) (t ;; Loading FIRE (when (not (member :fire qrg:*modules-loaded*)) (format t "Loading FIRE System~%") (fire:load-fire :action action :verbose verbose)) ;; Loading the core Knowledge Browser System (when (not (member :knowledge-browser qrg:*modules-loaded*)) (format t "Loading Core Knowledge Browser System~%") (knowledge-browser:load-knowledge-browser :action action :verbose verbose)) ;; Loading the Fire Graphs System (when (not (member :fire-graphs qrg:*modules-loaded*)) (format t "Loading FIRE Graphcs System~%") (fire-graphs:load-fire-graphs :action action :verbose verbose)) ;; Load the FIRE Knowledge Base Browser System (format t "Loading FIRE Knowledge Base Browser System~%") (load-files *fire-kb-browser-path* *fire-kb-browser-files* :action action :verbose verbose) (pushnew :fire-kb-browser *features*) (pushnew :fire-kb-browser qrg:*modules-loaded*))) (explain-usage) :done) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; End of Code (format t "To load: fire-kb-browser::load-fire-kb-browser takes the keys - :action :verbose :force-load~%")