(1) Start the metaModeller

Start the metaModeler (the modeling tool of Metsafe).
Click on File > Open Repository.
Log in as described below: select "Cars" and enter your UserID (Guest) and Password (demo).

(1) This list contains all databases (repositories) which are assigned to you by the administrator
(2) The "D"…Dictionary-Pespective is chosen. We will later see the other two perspectives
(3) After hitting the OK-Butting -> the metaDictionary window is open, ready to display its content

(2) Structure of the Dictionary

After hitting the OK-Button the metaModeller displays the structure of the dictionary.

(3) Create a new Entity

The "unique entity type name" describes what we mean by "a Customer".
Why "type name": this is the name we give to all the "things" which belong to the "group or class" Customer.

If we say "Miller is a Customer", we mean that there is an "entity instance" (in contrast to a type) which is an entity instance of the type Customer.

(4) Document the new Entity
  • (1) Click on the "Entities" handle and the list of entities will open
  • (2) Double click on the "Customer" to open the description window
  • (3) The description window for entities.
    The window contains several fields to describe what a "Customer" is: There is a description, a help text, naming conventions etc. the "identifications" for entities should be easy to search, easy to remember and  last for the lifetime of the entity.
    All changed fields which are not yet saved in the database are turned yellow
  • (4) Click on the "file"-icon to save the changes - these are reserved (locked) but not yet commited!
  • (5) To confirm the change click on the green OK-button. The change is written to the database and the  entity is unlocked for other users. The red "backout"-button returns to the previous state and discards all changes
(5) Create Relations

The verbal description of the subject:

"A Customer places an Order,
an Order contains a Product,
a Customer pays a Payment,
a Payment is paid for an Order."

  • (1) Add the entities named in this description to the dictionary.
  • (2) Add the relations of the description to the dictionary: e.g. "places"
    The entity "Customer" (=Subject) "places" (=Verb which connects a subject to an object) an entity "Order" (=Object). Or the reverse sentence: An entity "Order" "is placed by" an entity "Customer".
    Right-click on "Relations" – this opens the context menu "Add..".
  • (3) Select "Add " ->  the window "Add Relation Type" pops up.
  • (4) Enter the name of the verbs (forwards and backwards) as described in the two sentences above "place and placedBy". Confirm by clicking OK.
(6) Document Relations
  • (1) A double click on the relation "place" opens a (meta) attribute editor window.
  • (2) The description field contains the global description of the relation. A relation (type) may be used as a connection between several different entities, which creates a different context. In such a context the relationship has also different properties: The cardinality of a relationship is such a model-related property. These properties are described later at the model level.
  • (3) The relation class is bound to the relation type.
    The modeler documents the relation class but does not use it (yet). The primary purpose of the class is to allow applications to control the creation of relation instances.
(7) Create Attributes
  • The properties of entities are described by attributes – e.g The CompanyName of the entity Customer. To create a new attribute (type) right click the Attributes-Icon in the dictionary and choose "Add Attribute".
  • The window "Add Attribute Type" pops up.
  • Enter the name of the attribute – e.g. CompanyName: The name must be unique and comply to some restrictions on the characterset. Acceptable are A-Z, a-z, 0-9, underscore (_) and point(.). Spaces and special characters are not allowed. Names are case sensitive.
  • Choose the datatype of the attribute: Metasafe supports the basic data types (string, integer, long and float) as single values and as arrays. The datatype "Date" is used to store date and time values. "Binary" is a datatype to store BLOBs (Binary Large Objects, e.g. Pictures, Documents etc.). The datatype Indexed is used for fast search. External is a special datatype to provide a gateway to data stored outside of the repository.
  • "CompanyName" is a string of characters – therefore choose "String" and store the result with the OK-Button