A Module is a standard O-Telos object which defines the content of a module.
Class Module with
attribute
contains : Proposition
end
In general, a module can be defined as a container of objects. One must note that modules manage their own name space: object names must be unique within one module, but different modules can contain different objects with identical names.
Tell, Untell and Ask operations work relatively to a specified module. The normal way of specifying the context in which a transaction takes place is using the Set Module function from the CBworkbench. See subsection 5.1.2 to learn how to change the module-context of a transaction.
The basic set of predefined objects of ConceptBase (such as Class, Proposition, QueryClass, etc.) belongs to the predefined module System. When the CBserver starts up, the module-context is System. First you have to reset the servers module-context to the name of your own module in order to work on it.
The contains-attribute of the Module-object is a derived attribute and is a link to all objects defined inside the context of a certain module. This attribute is not stored explicitly but can be used anywhere in the O-Telos assertion language.
Now we show how to create modules. We introduce a small running example in order to demonstrate all module-related facilities of ConceptBase.
Let's assume you've started a fresh application file. After telling the following two frames, the server contains two modules which are nested inside the System module:
Module Employees end Module Managers end