attachLibrarian

 

 

Overview

The attachLibrarian function attaches the specified librarian Lambda {anLambda} to the specified ObjectRepository {aGor}. Once the attachLibrarian function returns, the ObjectRepository is no longer a simple associative memory. The database schema and the entire behavior of the ObjectRepository is now completely determined by the attached librarian Lambda. Furthermore, multiple librarian Lambdas may interact, controlling multiple ObjectRepositories, thus creating very large object databases and/or distributed object databases.

Normally, when an ObjectRepository is opened (see the new function), an ObjectRepository object is returned to the caller. This ObjectRepository object behaves, as previously described, like a simple associative memory. However, once a librarian Lambda is attached to an ObjectRepository, when an ObjectRepository is opened (see the new function), the librarian Lambda object (not the ObjectRepository object) is returned to the caller.

Once attached to the ObjectRepository, the librarian Lambda always resides on disk in the ObjectRepository. Any Analytic Information Server server opening the ObjectRepository talks with the attached librarian Lambda, not with the ObjectRepository directly. The librarian Lambda continues to treat the ObjectRepository as a simple associative memory, but the other intelligent Lambdas, end users, and Analytic Information Server servers see the ObjectRepository according to the database schema implemented by the attached librarian Lambda.

Usage

Use the attachLibrarian function to return the result the attached libriarian Lambda and not the Object Repository.

 

Syntax


Expression:

(attachLibrarian aGor anLambda)


Arguments Name Type Description
Argument:aGorObjectRepository The ObjectRepository whose librarian Lambda is to receive the command string.
Argument:anLambdaLambda The librarian Lambda to be attached to the ObjectRepository.

Returns:

Determined by the librarian Lambda.



 

Examples

Here are a number of links to Lambda coding examples which contain this instruction in various use cases.

 

Argument Types

Here are the links to the data types of the function arguments.

ObjectRepository Lambda

Here are also a number of links to functions having arguments with any of these data types.

abortTransaction addMethod argCount argFetch
attachLibrarian balance beginTransaction callcc
checkPointTransaction class commitTransaction compareEQ
compareGE compareGT compareLE compareLT
compareNE compare comparison compile
copy debugBrowsableProcs debug defchild
defclass define(macro) define defmacro
defmethod deforphan defriend defun
delete detachLibrarian disassemble evalInSyncLocalContext
eval exportCsv exportSbf exportTab
globalBinding importCsv importSbf importTab
inspect isClass isComplex isIdentical
isImmediate isTransaction lambda lisp
loadRepository macroReplace makeLambda methodsOf
myself new onError refLibrarian
ref rename saveImmediate saveRepository
send set setf setq
sizeof super

Analytic Information Server (AIS)

AIS Component Systems

  • Smartbase Engine
  • QT C++ Libraries
  • MySQL Relational Database
  • AIS Lisp Libraries
  • Rapid Analytic Demo IDE