use-loom [Macro]


Purpose

The use-loom macro imports Loom symbols into a specified package and optionally creates a new knowledge base that is associated with that package. In contrast to call-use-loom, which can be invoked from within other functions, use-loom should only be called at top-level.

Syntax

use-loom packageName &key dont-create-knowledge-base-p knowledge-base-name
path-name loom-imports

Arguments

The packageName argument is a symbol or string that identifies the Lisp package which will use Loom.

If the dont-create-knowledge-base-p argument is t, use-loom does not create a new knowledge base. Otherwise, it defines a knowledge base named packageName-KB.

The knowledge-base-name argument is a symbol or string to be used as the name of the new knowledge base. It overrides the default name, packageName-KB.

The path-name argument is a string specifying the file to be used for saving and restoring the knowledge base. The pathname may be supplied here, or it may be passed directly to save-kb.

The loom-imports argument is a string, or a list of strings, identifying Loom symbols which are to be shadowing-imported into packageName. These symbols override their counterparts in the common-lisp package, or in other packages inherited by packageName.

Value

This function returns nil.

Remarks

The variable ``LOOM::*shadow-import-from-loom*'' contains symbols (such as defmethod, trace, and pi) that are automatically shadowing-imported into packageName in addition to any symbols specified by loom-imports.

The compile-loom and load-loom utilities are used to build the Loom system from source files or binaries. After loading the required files, these utilities ask the user to call use-loom to set up an initial knowledge base.

Examples

(use-loom "USER") ==> NIL 
(use-loom test :dont-create-knowledge-base-p t 
               :path-name "test-kb.lisp") ==> NIL  
(use-loom 'foo :knowledge-base-name "FOO-KB" 
               :loom-imports '("ASK" "TELL")) ==> NIL

See Also

Last modified: Jun 1 1995