POSC Specifications Version 3.0 |
Epicentre Modeling Methodology |
This is a non-normative summary of the data types allowed in an Epicentre logical data model.
A simple type is an unstructured, built-in type in EXPRESS. Table 1 summarizes the allowed EXPRESS Simple Data Types. The general form of specification is:
typeName ( parameter ) qualifier
For example:
TYPE ndt_my_integer = integer ; END_TYPE; TYPE ndt_fixed_string = string(15) FIXED ; END_TYPE; TYPE ndt_variable_binary = binary(8) ; END_TYPE;
These are the Epicentre data types that are defined using the extended EXPRESS Meta Type Syntax. There are three basic categories of types: simple pattern, measured quantity and geometry. The general form of specification is:
typeName ( param1, param2, ... )
For example:
TYPE ndt_my_date = date(6) ; END_TYPE; TYPE ndt_date_interval = yearmonthinterval ; END_TYPE; TYPE ndt_unconstrained_location = location('',10) ; END_TYPE; TYPE ndt_1d_location = location('earth 1d',10) ; END_TYPE;
The simple pattern types define the interrelationship of multiple components of a value. A parameter may be required in order to constrain components of the type.
Type | Parameter | Description |
---|---|---|
date | A calendar date, specifying a year, month and day of month. | |
time | precision | A clock time in Universal Coordinated Time (UCT) specifying an hour, minute, second and time zone. |
timestamp | precision | A point in time in either a precise form or imprecise form. The imprecise form allows the point to be specified in geologic time or in certain combinations of century, year, quarter, month, week, day (of year, month or week) and time of day. |
yearmonthinterval | An interval between two dates, given in years and months. | |
daytimeinterval | precision | A time interval measured using certain combinations of days, hours, minutes and seconds. |
complex | precision | A complex number consisting of a real and an imaginary part. |
rational | A rational number represented as an integer numerator and an integer denominator. | |
ratio | precision | The ratio of two signed numbers, represented by a real number numerator and a real number denominator. |
The measured quantity types also define the interrelationship of multiple components of a value. They differ from the simple pattern types in that they require unit of measure information in addition to the numerical values. A parameter is required in order to constrain components of the type. The type of quantity or coordinate system will constrain the allowed units of measure.
Type | Parameter | Description |
---|---|---|
quantity | quantity_type | A real number and a unit of measure, qualifying the real number. |
precision | ||
anyquantity | precision | A real number, a unit of measure and the quantity type of the instance. |
angle | quantity_type | A plane angle given in degrees, minutes, seconds, radians, grads or DMS (degree, minute, second). |
precision | ||
money | money_constraint | An amount of a specified currency, expressed as an integer number of currency unit and an integer number of its subunits. |
location | coordinate_constraint | A set of coordinate values in a specified coordinate system. DMS (degree, minute, second) values are supported. |
precision |
The geometry types define a somewhat complex interaction of arrays of data that is used to define the geometry and other geometrically distributed properties of an object.
Type | Description |
---|---|
geometry | The abstract supertype of POINT, SAMPLE, LINE, SURFACE, VOLUME, HYPERCUBE and ELEMENT. |
point | Specifies geometry and (optionally) properties at a point. |
sample | Specifies geometry and (optionally) properties at a collection of points. The points are not ordered. |
line | Specifies geometry and (optionally) properties at ordered points on a continuous one dimensional object. |
surface | Specifies geometry and (optionally) properties at ordered points on a continuous two dimensional object. |
volume | Specifies geometry and (optionally) properties at ordered points on a continuous three dimensional object. |
hypercell | Specifies geometry and (optionally) properties at ordered points on a continuous 4+ dimensional object. |
element | Specifies properties on a continuous object that has been sampled using ordered points on a grid. The properties may be assigned to any element of the grid (e.g., node, edge, face, cell). The geometry values must be defined by a different instance of geometry. |
unstructured_3d_topology | This is a special type whose only purpose is to allow an unstructured grid to be defined independent of an instance of a VOLUME type. Its only use will be to allow applications to define grid modifications outside the context of a data type instance. The type does not have any parameters. |
Geometry, and therefore all of its subtypes, has six required parameters (see Table 5) that may be used to constrain what is instantiated in the meta type instance. Geometry allows all of the values that are allowed by its subtypes but certain combinations will inherently constrain the meta type instance to one subtype. For example, specifying 'contour' for the representation_constraint will only allow the instance to be of type SURFACE.
order | parameter | description | Type |
---|---|---|---|
1 | representation_constraint | Specifies a constraint on the type and dimensionality of the grid that can be used. The allowed values are defined in Table 6. | string(80) |
2 | position_constraint | Specifies the grid element to which values are attached. The allowed values are defined in Table 6. | string(80) |
3 | coordinate_constraint | Specifies the identifier of an instance of Ref_coordinate_sys_constraint. The geometry values must be in a coordinate system that has already been validated against this constraint. The constraint specifies the number and order of the axes and specifies the type of property that each axis may have. The number of axes on a coordinate system must be greater than or equal to the dimensionality of the grid. An empty string ('') indicates that there is no constraint on which coordinate system may be used. | string(80) |
4 | coordinate_precision | Specifies the minimum precision of the coordinate values. The value must be greater than zero. | integer |
5 | property_constraint | Specifies the identifier of an instance of Ref_property_set. The instantiated properties must be in the list allowed by the set. A value of 'none' indicates that property values are not allowed (not allowed for type element). An empty string ('') indicates that there is no constraint on what properties can be instantiated. A value of 'required' indicates that property values must be specified but there is no constraint on what properties can be instantiated. | string(80) |
6 | property_precision | Specifies the minimum precision of the property values. The value must be greater than zero unless the property constraint is 'none'. | integer |