In the interest of research and all other things persuant to the ChronocidalManiac. Version 0.1 of the MetaModel for the GalacticModelingLanguage:
_____ | | | Box |__________ |_____|0..1 | |2 | | | __|*_ __|1_ | | | | |Line |_______|Label| |_____|0..1 *|_____|--DaveElton? & DavidBates? et al.
Now, let the debate about the cardinality of Box vs. Label begin
Too complicated and too verbose. All you'll ever need can be built from this metamodel:
_____ | | |Thing|______ |_____| | | | | | | | |_________|Box, Line and Label are all instances of Thing. In English:
Things have things.
This sort of unified-theory minimalism arises in all seriousness sometimes, e.g. in the elegant Interviews GUI framework, everything was a box. It's also reminiscent of pure OO languages, where everything is an object.
Or, in abbreviated UmlAsciiArt
Diagram [name,date,author,new(),save(),delete()] Box *Diagram@ [X,Y,width,height,weight,borderColor,fillColor,create(),draw(),delete()] Line *Box@ [X1,Y1,X2,Y2,weight,borderColor,fillColor,create(),draw(),delete()] Label *Box@,*Line@ [name,fontType,foreColor,backColor,X,Y,create(),draw(),delete()]