A profile in MDWorkbench enables you to enhance a metamodel with dynamic metatypes. Scripts can then be attached on these new metatypes, allowing the use of polymorphism and inheritance rather than 'if' statements in a script's implementation.
For example, in UML, rather than testing in a script if a Class has a stereotype "EJB" and returning a different value based on this test, one can :
To enable profile capability, the metamodel must define a profile provider, which is used to determine the metatype of a model element. This has already been done for the UML metamodels.