Introduction

This document contains a complete EXPRESS-G representation of the Car Registration Authority example model. There are details which cannot be expressed using the EXPRESS-G iconic language but which can be described using the EXPRESS lexical language.

An EXPRESS model is a primary representation and an EXPRESS-G model is a secondary representation.

Model overview

The model consists of three schemas, as shown in Figure Complete schema-level model for Registration Authority example (Page 1 of 1)..

ex cargschema
Figure 1. Complete schema-level model for Registration Authority example (Page 1 of 1).

The schema registration_authority is the primary schema. It references the noted items from the auxiliary schema; some functions, rules or procedures may also be referenced from this schema as well, but the diagram cannot show these. This schema also references one or more items from the calendar schema. These may be rules, functions or procedures but again the diagram cannot show these; alternatively, the entire schema may be referenced.

The auxiliary schema references at least two items from the calendar schema. Rules, functions and procedures may also be referenced, but this cannot be discerned via EXPRESS-G.

The calendar schema is self-contained as it neither uses nor references any other schema.

An entity-level model for the registration_authority schema is given in Figure Complete entity-level model of the Registration Authority schema (Page 1 of 1).. The entity-level model for the auxiliary schema is displayed in Figures Complete entity-level model of the Auxiliary schema (Page 1 of 2). and Complete entity-level model of the Auxiliary schema (Page 2 of 2).. The internals of the calendar schema are shown in Figure Complete entity-level model of Calendar schema (Page 1 of 1)..

The registration authority schema

Figure Complete entity-level model of the Registration Authority schema (Page 1 of 1). shows the registration_authority schema and the entities and types in it.

ex cargreg
Figure 2. Complete entity-level model of the Registration Authority schema (Page 1 of 1).

There are three entities altogether, namely send_message, history and authorized_manufacturer. There are constraints on the two latter entities. The entity authorized_manufacturer is a subtype of the entity manufacturer which is defined in the auxiliary schema.

There are no types defined within the schema.

The auxiliary schema

The auxiliary schema contains too many items to be displayed on a single page. Figures Complete entity-level model of the Auxiliary schema (Page 1 of 2). and Complete entity-level model of the Auxiliary schema (Page 2 of 2). show the entities and types that are contained in the schema.

ex cargaux1
Figure 3. Complete entity-level model of the Auxiliary schema (Page 1 of 2).
ex cargaux2
Figure 4. Complete entity-level model of the Auxiliary schema (Page 2 of 2).

The schema contains the following entities:

  • car

  • car_model

  • destroyed_car, which is a subtype of car

  • garage, which is a subtype of named_owner

  • group, which is a subtype of owner

  • manufacturer, which is a subtype of named_owner

  • named_owner, which is an abstract supertype and also a subtype of owner. It puts a OneOf constraint on its subtypes.

  • owner, which is an abstract supertype and puts a OneOf constraint on its subtypes.

  • person, which is a subtype of named_owner

  • transfer

It also contains the following types:

  • identification_no, a defined data type with a base-type of String

  • fuel_consumption, a defined data type with a base-type of Real

  • name, a defined data type with a base-type of String

The calendar schema

Figure Complete entity-level model of Calendar schema (Page 1 of 1). shows the entities and types within the calendar schema.

ex cargcal
Figure 5. Complete entity-level model of Calendar schema (Page 1 of 1).

There is one entity called date and one enumeration type called months.