FrameDefinitionLanguage (aka. FDL)
see trac/browser/Promot/trunk/fdl
is a object-oriented language for model construction based on CommonLispObjectSystem and the MetaObjectProtocol.
It uses the facilities of CommonLisp to dynamically handle ClassMetaObjects? and allow changes and editing. Fdl defines a macro language for generic class definitions as well as an ApplicationProgramInterface? to access FdlClass definitions and their parts (FdlEffectiveSlotDefinition?). The access methods allow addition, deletion and manipulation of classes and slots.
FdlClass es are instantiated as FdlObjects, which implies that all of their parts are also automatically instantiated and initialized. It is possible to store ParameterSets? with classes that override the default values for parts of a class.