The description below discusses the current version of CoBro. This version has a new set of core domain concepts, a fully revised meta level interface, and a reworked tool suite. For a description of the original CoBro environment, refer to the PhD dissertation of Dirk Deridder.

CoBro Core Concept Package

The basic CoBro system imports a predefined set of concepts that are used by the kernel to provide its basic functionality (e.g., defining a concept, setting a slot value, getting a slot value, defining a relationship). This Core Concept Package represents the meta model of CoBro. In order to bootstrap the system the concepts are loaded through a special mechanism which temporarily bypasses the metacircular implementation and overrides all safety checks. The mechanism is implemented by the following methods on the Concepts namespace: bootstrapDefineConcept:, and bootstrapExtendConceptDefinitionFor:. Use these with care since you can introduce subtle errors that might break the kernel.

The Core Concept Package defines the elements that are used for its own definition, which means that it is self-describing. This is why we needed to provide the bootstrapping mechanism described earlier. The concept definitions themselves can be extended (or altered with great care) if the need arises.

Below we show a snapshot of the core concepts in the concept namespace:

In CoBro we only distinguish between two (virtual) concept layers: the base layer (a.k.a. the model layer) and the meta layer (a.k.a. the metamodel layer). These layers are virtual and should be seen as the role played by the concepts in them. What is a base concept set in one situation can well play the role of a meta concept set in another situation. Note that we do not add an explicit layer for the model instances. This is because the concept namespace is based on a notion of prototypes (as opposed to a class based vision).

cobro/cobro-coreconcepts.txt · Last modified: 10.07.2009 14:22 by dderidde
Driven by DokuWiki