The busy diagram below captures the Dbquity Metamodel where each box can be clicked taking you to the reference page of the notion that it represents, and the boxes with non-italic names also directly represents a keyword in the Dbquity Modeling Language and reveal language syntax in their tooltip.
A model is either a site
or a library
, which comprises any number of classifier
s, each of which is either
enumeration
with a set of named options
, orcomplex
, which may nest a number of other classifier
s, compose a number of members of type field
, action
, or function
and is either
class
,entity
composing a number of step
, filter
, and query
members organised by a behaviour
expression, and with
collection
and (most often) an identity
field, orsingleton
modifier, orentity
, which is either
association
, which composes one or more end
members,container
, which is a singleton
by default and may declare access permissions
,area
, whichs is a singleton
container
and acts as the root of all collection
s, orblob
, which may store a binary large object such as an image or a video clip.A model may declare references
to other models to use classifier
s declared in these other models.
The diagram is generated using the
dot
command of theCLI
:dbquity dot overview metamodel -filter:primitives+Classifiers+Members+Models+Core +l -r -nolabel
and then manual removal of the base edges from
complex
toentity
and frommember
tofield
inoverview.dbquity.dot
followed bydot2svg overview
If you open the source file, Metamodel.dbquity, you'll notice that it is quite atypical, because in addition to an abundance of
diagramhint
properties it abuses most of the language keywords and redefines them to declare pseudo entities that capture the metamodel includingsite
,field
, andentity
.