Integrated generic resource: Fundamentals of product description and support ISO 10303-41:2021(E)
© ISO

Cover page
Table of contents
Copyright
Foreword
Introduction
1 Scope
2 Normative references
3 Terms, definitions and abbreviated terms
    3.1 Terms and definitions
    3.2 Abbreviated terms
4 Action
   4.1 General
   4.2 Fundamental concepts and assumptions
   4.3 Action type definitions
   4.4 Action entity definitions
   4.5 Action function definitions
5 Application context
   5.1 General
   5.2 Fundamental concepts and assumptions
   5.3 Application context type definitions
   5.4 Application context entity definitions
6 Approval
   6.1 General
   6.2 Fundamental concepts and assumptions
   6.3 Approval type definitions
   6.4 Approval entity definitions
   6.5 Approval function definitions
7 Basic attribute
   7.1 General
   7.2 Fundamental concepts and assumptions
   7.3 Basic attribute type definitions
   7.4 Basic attribute entity definitions
   7.5 Basic attribute function definitions
8 Certification
   8.1 General
   8.2 Fundamental concepts and assumptions
   8.3 Certification entity definitions
9 Contract
   9.1 General
   9.2 Fundamental concepts and assumptions
   9.3 Contract entity definitions
   9.4 Contract function definitions
10 Date time
   10.1 General
   10.2 Fundamental concepts and assumptions
   10.3 Date time type definitions
   10.4 Date time entity definitions
   10.5 Date time function definitions

11 Document
   11.1 General
   11.2 Fundamental concepts and assumptions
   11.3 Document type definition
   11.4 Document entity definitions
   11.5 Document function definitions
12 Effectivity
   12.1 General
   12.2 Fundamental concepts and assumptions
   12.3 Effectivity type definitions
   12.4 Effectivity entity definitions
   12.5 Effectivity function definitions
13 Experience
   13.1 General
   13.2 Fundamental concepts and assumptions
   13.3 Experience entity definitions
   13.4 Experience function definitions
14 External reference
   14.1 General
   14.2 Fundamental concepts and assumptions
   14.3 External reference type definitions
   14.4 External reference entity definitions
   14.5 External reference function definitions
15 Group
   15.1 General
   15.2 Fundamental concepts and assumptions
   15.3 Group type definition
   15.4 Group entity definitions
   15.5 Group function definitions
16 Language
   16.1 General
   16.2 Fundamental concepts and assumptions
   16.3 Language entity definition
17 Location
   17.1 General
   17.2 Fundamental concepts and assumptions
   17.3 Location entity definitions
   17.4 Location function definitions
18 Management resources
   18.1 General
   18.2 Fundamental concepts and assumptions
   18.3 Management resources type definitions
   18.4 Management resources entity definitions
   18.5 Management resources function definitions

19 Measure
   19.1 General
   19.2 Fundamental concepts and assumptions
   19.3 Measure type definitions
   19.4 Measure entity definitions
   19.5 Measure function definitions
20 Person organization
   20.1 General
   20.2 Fundamental concepts and assumptions
   20.3 Person organization type definitions
   20.4 Person organization entity definitions
   20.5 Person organization function definitions
21 Product definition
   21.1 General
   21.2 Fundamental concepts and assumptions
   21.3 Product definition type definitions
   21.4 Product definition entity definitions
   21.5 Product definition function definitions
22 Product property definition
   22.1 General
   22.2 Fundamental concepts and assumptions
   22.3 Product property definition type definitions
   22.4 Product property definition entity definitions
   22.5 Product property definition function definitions
23 Product property representation
   23.1 General
   23.2 Fundamental concepts and assumptions
   23.3 Product property representation type definitions
   23.4 Product property representation entity definitions
   23.5 Product property representation function definitions
24 Qualifications
   24.1 General
   24.2 Fundamental concepts and assumptions
   24.3 Qualifications entity definitions
   24.4 Qualifications function definitions
25 Security classification
   25.1 General
   25.2 Fundamental concepts and assumptions
   25.3 Security classification entity definitions
26 Support resource
   26.1 General
   26.2 Fundamental concepts and assumptions
   26.3 Support resource type definitions
   26.4 Support resource function definitions
A Short names of entities
B Information object registration
C Computer interpretable listings
D EXPRESS-G diagrams
E Technical discussion
F Examples
G Change history
Bibliography
Index

19 Measure schema

19.1 General

The subject of the measure_schema is the description of physical quantities.

EXAMPLE    Density, length, force, and time are different kinds of physical quantities.

The resource constructs defined in this schema are based upon material in ISO 31 and ISO 1000.

This clause defines the information requirements to which implementations shall conform using the EXPRESS language as defined in ISO 10303-11. The following EXPRESS declaration begins the measure_schema and identifies the necessary external references.

Each implementation of an AP that uses this schema and that encodes entity names shall use the encoding specified in Annex A. Each reference to this schema in an open system shall use the identifier encoding specified in Annex B. This schema is illustrated in Annex D using the EXPRESS-G notation.

EXPRESS specification:

*)
SCHEMA measure_schema;

REFERENCE FROM basic_attribute_schema    --  ISO 10303-41
  (get_name_value,
   name_attribute,
   name_attribute_select);

REFERENCE FROM representation_schema    --  ISO 10303-43
  (representation_context);

REFERENCE FROM support_resource_schema;    --  ISO 10303-41
(*

NOTE 1   The schemas referenced above are specified in the following parts:

basic_attribute_schema ISO 10303-41
representation_schema ISO 10303-43
support_resource_schema ISO 10303-41

NOTE 2   See Annex D for a graphical representation of this schema.

19.2 Fundamental concepts and assumptions

The following requirements are supported by this schema:

EXAMPLE    The elements of a list of material properties are physical quantities. Each element may be a different kind of physical quantity. The kind of each element is only decided upon at instantiation time.

19.3 measure_schema type definitions

19.3.1 absorbed_dose_measure   EXPRESS-G

An absorbed_dose_measure is the value of an absorbed dose of radiation.

EXPRESS specification:

*)
TYPE absorbed_dose_measure = REAL;
END_TYPE;
(*

19.3.2 acceleration_measure   EXPRESS-G

An acceleration_measure is the value of the rate of change of velocity.

EXPRESS specification:

*)
TYPE acceleration_measure = REAL;
END_TYPE;
(*

19.3.3 amount_of_substance_measure   EXPRESS-G

An amount_of_substance_measure is the value for the quantity of a substance when compared with the number of atoms in 0.012 kilogram of carbon 12.

EXPRESS specification:

*)
TYPE amount_of_substance_measure = REAL;
END_TYPE;
(*

19.3.4 area_measure   EXPRESS-G

An area_measure is the value of the extent of a surface.

EXPRESS specification:

*)
TYPE area_measure = REAL;
END_TYPE;
(*

19.3.5 capacitance_measure   EXPRESS-G

A capacitance_measure is the value of capacitance.

EXPRESS specification:

*)
TYPE capacitance_measure = REAL;
END_TYPE;
(*

19.3.6 celsius_temperature_measure   EXPRESS-G

A celsius_temperature_measure is the value for the degree of heat of a body.

EXPRESS specification:

*)
TYPE celsius_temperature_measure = REAL;
END_TYPE;
(*

19.3.7 conductance_measure   EXPRESS-G

A conductance_measure is the value of an electrical conductance.

EXPRESS specification:

*)
TYPE conductance_measure = REAL;
END_TYPE;
(*

19.3.8 context_dependent_measure   EXPRESS-G

A context_dependent_measure is the value of a physical quantity that may be interpreted based on the context in which it is used.

EXPRESS specification:

*)
TYPE context_dependent_measure = REAL;
END_TYPE;
(*

19.3.9 count_measure   EXPRESS-G

A count_measure is the value of a count.

EXPRESS specification:

*)
TYPE count_measure = NUMBER;
END_TYPE;
(*

19.3.10 descriptive_measure   EXPRESS-G

A descriptive_measure is a textual value of a physical quantity.

EXPRESS specification:

*)
TYPE descriptive_measure = STRING;
END_TYPE;
(*

19.3.11 dose_equivalent_measure   EXPRESS-G

A dose_equivalent_measure is the value of the radiation dose equivalent.

EXPRESS specification:

*)
TYPE dose_equivalent_measure = REAL;
END_TYPE;
(*

19.3.12 electric_charge_measure   EXPRESS-G

An electric_charge_measure is the value of an electrical charge.

EXPRESS specification:

*)
TYPE electric_charge_measure = REAL;
END_TYPE;
(*

19.3.13 electric_current_measure   EXPRESS-G

An electric_current_measure is the value for the movement of electrically charged particles.

EXPRESS specification:

*)
TYPE electric_current_measure = REAL;
END_TYPE;
(*

19.3.14 electric_potential_measure   EXPRESS-G

An electric_potential_measure is the value of an electrical potential.

EXPRESS specification:

*)
TYPE electric_potential_measure = REAL;
END_TYPE;
(*

19.3.15 energy_measure   EXPRESS-G

An energy_measure is the value of energy, or work done, in a system.

EXPRESS specification:

*)
TYPE energy_measure = REAL;
END_TYPE;
(*

19.3.16 force_measure   EXPRESS-G

A force_measure is the value of a force.

EXPRESS specification:

*)
TYPE force_measure = REAL;
END_TYPE;
(*

19.3.17 frequency_measure   EXPRESS-G

A frequency_measure is the value of a frequency.

EXPRESS specification:

*)
TYPE frequency_measure = REAL;
END_TYPE;
(*

19.3.18 illuminance_measure   EXPRESS-G

An illuminance_measure is the value of illuminance.

EXPRESS specification:

*)
TYPE illuminance_measure = REAL;
END_TYPE;
(*

19.3.19 inductance_measure   EXPRESS-G

An inductance_measure is the value of inductance.

EXPRESS specification:

*)
TYPE inductance_measure = REAL;
END_TYPE;
(*

19.3.20 length_measure   EXPRESS-G

A length_measure is the value of a distance.

EXPRESS specification:

*)
TYPE length_measure = REAL;
END_TYPE;
(*

19.3.21 luminous_flux_measure   EXPRESS-G

A luminous_flux_measure is the value of luminous flux.

EXPRESS specification:

*)
TYPE luminous_flux_measure = REAL;
END_TYPE;
(*

19.3.22 luminous_intensity_measure   EXPRESS-G

A luminous_intensity_measure is the value for the brightness of a body.

EXPRESS specification:

*)
TYPE luminous_intensity_measure = REAL;
END_TYPE;
(*

19.3.23 magnetic_flux_density_measure   EXPRESS-G

A magnetic_flux_density_measure is the value of magnetic flux density.

EXPRESS specification:

*)
TYPE magnetic_flux_density_measure = REAL;
END_TYPE;
(*

19.3.24 magnetic_flux_measure   EXPRESS-G

A magnetic_flux_measure is the value of magnetic flux.

EXPRESS specification:

*)
TYPE magnetic_flux_measure = REAL;
END_TYPE;
(*

19.3.25 mass_measure   EXPRESS-G

A mass_measure is the value of the amount of matter that a body contains.

EXPRESS specification:

*)
TYPE mass_measure = REAL;
END_TYPE;
(*

19.3.26 measure_value   EXPRESS-G

The measure_value type is a list of alternate data types. It provides a mechanism to refer to an instance of one of these data types. A measure_value is a value as defined in ISO 31-0.

EXPRESS specification:

*)
TYPE measure_value = SELECT
   (absorbed_dose_measure,
    dose_equivalent_measure,
    radioactivity_measure,
    acceleration_measure,
    amount_of_substance_measure,
    area_measure,
    celsius_temperature_measure,
    context_dependent_measure,
    count_measure,
    descriptive_measure,
    capacitance_measure,
    electric_charge_measure,
    conductance_measure,
    electric_current_measure,
    electric_potential_measure,
    energy_measure,
    magnetic_flux_density_measure,
    force_measure,
    frequency_measure,
    illuminance_measure,
    inductance_measure,
    length_measure,
    luminous_flux_measure,
    luminous_intensity_measure,
    magnetic_flux_measure,
    mass_measure,
    numeric_measure,
    non_negative_length_measure,
    parameter_value,
    plane_angle_measure,
    positive_length_measure,
    positive_plane_angle_measure,
    positive_ratio_measure,
    power_measure,
    pressure_measure,
    ratio_measure,
    resistance_measure,
    solid_angle_measure,
    thermodynamic_temperature_measure,
    time_measure,
    velocity_measure,
    volume_measure);
END_TYPE;
(*

19.3.27 non_negative_length_measure   EXPRESS-G

A non_negative_length_measure type is a length_measure whose value is greater than or equal to zero.

EXPRESS specification:

*)
TYPE non_negative_length_measure = length_measure;
WHERE
  WR1: SELF >= 0.0;
END_TYPE;
(*

Formal propositions:

WR1: A non_negative_length_measure shall be positive or zero.

19.3.28 numeric_measure   EXPRESS-G

A numeric_measure is the numeric value of a physical quantity.

NOTE    In order to define measure quantities that are not included as specific types in this standard a numeric_measure may be used as the value_component of a measure_with_unit, the corresponding unit_component being an si_unit or a derived_unit.

EXPRESS specification:

*)
TYPE numeric_measure = NUMBER;
END_TYPE;
(*

19.3.29 parameter_value   EXPRESS-G

A parameter_value is the value that specifies the amount of a parameter in a parameter space.

EXPRESS specification:

*)
TYPE parameter_value = REAL;
END_TYPE;
(*

19.3.30 plane_angle_measure   EXPRESS-G

A plane_angle_measure is the value of an angle in a plane.

EXPRESS specification:

*)
TYPE plane_angle_measure = REAL;
END_TYPE;
(*

19.3.31 positive_length_measure   EXPRESS-G

A positive_length_measure is a length_measure that is greater than zero.

EXPRESS specification:

*)
TYPE positive_length_measure = non_negative_length_measure;
WHERE
  WR1: SELF > 0.0;
END_TYPE;
(*

Formal propositions:

WR1: The value shall be positive.

19.3.32 positive_plane_angle_measure   EXPRESS-G

A positive_plane_angle_measure is a plane_angle_measure that is greater than zero.

EXPRESS specification:

*)
TYPE positive_plane_angle_measure = plane_angle_measure;
WHERE
  WR1: SELF > 0.0;
END_TYPE;
(*

Formal propositions:

WR1: The value shall be positive.

19.3.33 positive_ratio_measure   EXPRESS-G

A positive_ratio_measure is a ratio_measure that is greater than zero.

EXPRESS specification:

*)
TYPE positive_ratio_measure = ratio_measure;
WHERE
  WR1: SELF > 0.0;
END_TYPE;
(*

Formal propositions:

WR1: The value shall be positive.

19.3.34 power_measure   EXPRESS-G

A power_measure is the value of power, or the rate of doing work.

EXPRESS specification:

*)
TYPE power_measure = REAL;
END_TYPE;
(*

19.3.35 pressure_measure   EXPRESS-G

A pressure_measure is the value of force per unit area.

EXPRESS specification:

*)
TYPE pressure_measure = REAL;
END_TYPE;
(*

19.3.36 radioactivity_measure   EXPRESS-G

A radioactivity_measure is the value of the radioactive disintegration.

EXPRESS specification:

*)
TYPE radioactivity_measure = REAL;
END_TYPE;
(*

19.3.37 ratio_measure   EXPRESS-G

A ratio_measure is the value of the relation between two physical quantities that are of the same kind.

EXPRESS specification:

*)
TYPE ratio_measure = REAL;
END_TYPE;
(*

19.3.38 resistance_measure   EXPRESS-G

A resistance_measure is the value of electrical resistance.

EXPRESS specification:

*)
TYPE resistance_measure = REAL;
END_TYPE;
(*

19.3.39 s_name_attribute_select   EXPRESS-G

The s_name_attribute_select type is an extension of the name_attribute_select type. It adds the data type derived_unit to the list of alternate data types.

EXPRESS specification:

*)
TYPE s_name_attribute_select = SELECT BASED_ON name_attribute_select WITH
   (derived_unit);
END_TYPE;
(*

19.3.40 si_prefix   EXPRESS-G

An si_prefix is the name of a prefix that may be associated with an si_unit. The definitions of SI prefixes are specified in ISO 1000.

EXPRESS specification:

*)
TYPE si_prefix = ENUMERATION OF
   (exa,
    peta,
    tera,
    giga,
    mega,
    kilo,
    hecto,
    deca,
    deci,
    centi,
    milli,
    micro,
    nano,
    pico,
    femto,
    atto);
END_TYPE;
(*

Enumerated item definitions:

exa: see ISO 1000;

peta: see ISO 1000;

tera: see ISO 1000;

giga: see ISO 1000;

mega: see ISO 1000;

kilo: see ISO 1000;

hecto: see ISO 1000;

deca: see ISO 1000;

deci: see ISO 1000;

centi: see ISO 1000;

milli: see ISO 1000;

micro: see ISO 1000;

nano: see ISO 1000;

pico: see ISO 1000;

femto: see ISO 1000;

atto: see ISO 1000.

19.3.41 si_unit_name   EXPRESS-G

An si_unit_name is the name of an SI unit.

NOTE 1   The definitions of the names of SI units are specified in ISO 1000.

EXPRESS specification:

*)
TYPE si_unit_name = ENUMERATION OF
   (metre,
    gram,
    second,
    ampere,
    kelvin,
    mole,
    candela,
    radian,
    steradian,
    hertz,
    newton,
    pascal,
    joule,
    watt,
    coulomb,
    volt,
    farad,
    ohm,
    siemens,
    weber,
    tesla,
    henry,
    degree_Celsius,
    lumen,
    lux,
    becquerel,
    gray,
    sievert);
END_TYPE;
(*

Enumerated item definitions:

metre: see ISO 1000;

gram: see ISO 1000;

NOTE 2   ISO 1000 gives "kilogram" as the SI unit name. This part of ISO 10303 uses "gram" as the SI unit name.

second: see ISO 1000;

ampere: see ISO 1000;

kelvin: see ISO 1000;

mole: see ISO 1000;

candela: see ISO 1000;

radian: see ISO 1000;

steradian: see ISO 1000;

hertz: see ISO 1000;

newton: see ISO 1000;

pascal: see ISO 1000;

joule: see ISO 1000;

watt: see ISO 1000;

coulomb: see ISO 1000;

volt: see ISO 1000;

farad: see ISO 1000;

ohm: see ISO 1000;

siemens: see ISO 1000;

weber: see ISO 1000;

tesla: see ISO 1000;

henry: see ISO 1000;

degree_Celsius: see ISO 1000;

lumen: see ISO 1000;

lux: see ISO 1000;

becquerel: see ISO 1000;

gray: see ISO 1000;

sievert: see ISO 1000.

19.3.42 solid_angle_measure   EXPRESS-G

A solid_angle_measure is the value of a solid angle.

EXPRESS specification:

*)
TYPE solid_angle_measure = REAL;
END_TYPE;
(*

19.3.43 thermodynamic_temperature_measure   EXPRESS-G

A thermodynamic_temperature_measure is the value for the degree of heat of a body.

EXPRESS specification:

*)
TYPE thermodynamic_temperature_measure = REAL;
END_TYPE;
(*

19.3.44 time_measure   EXPRESS-G

A time_measure is the value of the duration of a period.

EXPRESS specification:

*)
TYPE time_measure = REAL;
END_TYPE;
(*

19.3.45 unit   EXPRESS-G

The unit type is a list of alternate data types. It provides a mechanism to refer to an instance of one of these data types. A unit is a physical quantity, with a value of one.

NOTE    A unit is used to express other physical quantities of the same kind.

EXPRESS specification:

*)
TYPE unit = SELECT
   (derived_unit,
    named_unit);
END_TYPE;
(*

19.3.46 velocity_measure   EXPRESS-G

A velocity_measure is the value of the rate of change of position.

EXPRESS specification:

*)
TYPE velocity_measure = REAL;
END_TYPE;
(*

19.3.47 volume_measure   EXPRESS-G

A volume_measure is the value of the solid content of a body.

EXPRESS specification:

*)
TYPE volume_measure = REAL;
END_TYPE;
(*

19.4 measure_schema entity definitions

19.4.1 absorbed_dose_measure_with_unit   EXPRESS-G

An absorbed_dose_measure_with_unit is a type of measure_with_unit in which the physical quantity is an absorbed dose of radiation as defined in ISO 31.

EXPRESS specification:

*)
ENTITY absorbed_dose_measure_with_unit
  SUBTYPE OF (measure_with_unit);
WHERE
  WR1: 'MEASURE_SCHEMA.ABSORBED_DOSE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
(*

Formal propositions:

WR1: The unit_component be of type absorbed_dose_unit.

19.4.2 absorbed_dose_unit   EXPRESS-G

An absorbed_dose_unit is a type of derived_unit in which the absorbed dose is expressed.

EXPRESS specification:

*)
ENTITY absorbed_dose_unit
  SUBTYPE OF (derived_unit);
WHERE
  WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.gray);
END_ENTITY;
(*

Formal propositions:

WR1: The dimensional exponents shall be equal to those of the Gray as defined in ISO 31.

19.4.3 acceleration_measure_with_unit   EXPRESS-G

An acceleration_measure_with_unit is a type of measure_with_unit in which the physical quantity is an acceleration.

EXPRESS specification:

*)
ENTITY acceleration_measure_with_unit
  SUBTYPE OF (measure_with_unit);
WHERE
  WR1: 'MEASURE_SCHEMA.ACCELERATION_UNIT' IN TYPEOF (SELF\measure_with_unit.unit_component);
END_ENTITY;
(*

Formal propositions:

WR1: The unit_component be of type acceleration_unit.

19.4.4 acceleration_unit   EXPRESS-G

An acceleration_unit is a type of derived_unit in which the acceleration of an object is expressed.

EXPRESS specification:

*)
ENTITY acceleration_unit
  SUBTYPE OF (derived_unit);
WHERE
  WR1: derive_dimensional_exponents(SELF) = dimensional_exponents ( 1.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0 );
END_ENTITY;
(*

Formal propositions:

WR1: The dimensional exponent of length shall be equal to one, the dimensional exponent of time shall be equal to minus two, and all the other dimensional exponents shall be equal to zero.

19.4.5 amount_of_substance_measure_with_unit   EXPRESS-G

An amount_of_substance_measure_with_unit is a type of measure_with_unit. This entity data type shall only be used to characterize a number of particles.

EXPRESS specification:

*)
ENTITY amount_of_substance_measure_with_unit
  SUBTYPE OF (measure_with_unit);
WHERE
  WR1: 'MEASURE_SCHEMA.AMOUNT_OF_SUBSTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
(*

Formal propositions:

WR1: The unit shall be an amount_of_substance_unit.

19.4.6 amount_of_substance_unit   EXPRESS-G

An amount_of_substance_unit is a type of named_unit in which the number of elementary entities of a substance as compared to the number of atoms in 0.012 kilograms of carbon-12 is expressed.

NOTE 1   This definition applies to the SI quantity 'mole'. When the mole is used, the elementary entities, whose quantity is expressed, must be specified. They may be atoms, molecules, ions, electrons or other particles or specified groups of such particles (see ISO 31-8).

NOTE 2   This unit corresponds to one of the seven fundamental quantities as specified in ISO 1000.

EXPRESS specification:

*)
ENTITY amount_of_substance_unit
  SUBTYPE OF (named_unit);
WHERE
  WR1: (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.time_exponent = 0.0) AND (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 1.0) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
END_ENTITY;
(*

Formal propositions:

WR1: The dimensional exponent of amount of substance shall be equal to one and all the other dimensional exponents shall be equal to zero.

19.4.7 area_measure_with_unit   EXPRESS-G

An area_measure_with_unit is a type of measure_with_unit in which the physical quantity is an area as defined in ISO 31.

EXPRESS specification:

*)
ENTITY area_measure_with_unit
  SUBTYPE OF (measure_with_unit);
WHERE
  WR1: 'MEASURE_SCHEMA.AREA_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
(*

Formal propositions:

WR1: The unit shall be an area_unit.

19.4.8 area_unit   EXPRESS-G

An area_unit is a type of derived_unit used to measure the extent of a surface.

EXPRESS specification:

*)
ENTITY area_unit
  SUBTYPE OF (derived_unit);
WHERE
  WR1: derive_dimensional_exponents(SELF) = dimensional_exponents ( 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 );
END_ENTITY;
(*

Formal propositions:

WR1: The dimensional exponent of length shall be equal to two and all the other dimensional exponents shall be equal to zero.

19.4.9 capacitance_measure_with_unit   EXPRESS-G

A capacitance_measure_with_unit is a type of measure_with_unit in which the physical quantity is an electric capacitance as defined in ISO 31.

EXPRESS specification:

*)
ENTITY capacitance_measure_with_unit
  SUBTYPE OF (measure_with_unit);
WHERE
  WR1: 'MEASURE_SCHEMA.CAPACITANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
(*

Formal propositions:

WR1: The unit_component be of type capacitance_unit.

19.4.10 capacitance_unit   EXPRESS-G

A capacitance_unit is a type of derived_unit in which the capacitance is expressed.

EXPRESS specification:

*)
ENTITY capacitance_unit
  SUBTYPE OF (derived_unit);
WHERE
  WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.farad);
END_ENTITY;
(*

Formal propositions:

WR1: The dimensional exponents shall be equal to those of the farad as defined in ISO 31.

19.4.11 celsius_temperature_measure_with_unit   EXPRESS-G

A celsius_temperature_measure_with_unit is a type of measure_with_unit in which the physical quantity is a Celsius temperature as defined in ISO 31-4.

EXPRESS specification:

*)
ENTITY celsius_temperature_measure_with_unit
  SUBTYPE OF (measure_with_unit);
WHERE
  WR1: 'MEASURE_SCHEMA.THERMODYNAMIC_TEMPERATURE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
(*

Formal propositions:

WR1: The unit shall be a thermodynamic_temperature_unit.

19.4.12 conductance_measure_with_unit   EXPRESS-G

A conductance_measure_with_unit is a type of measure_with_unit in which the physical quantity is a conductance as defined in ISO 31.

EXPRESS specification:

*)
ENTITY conductance_measure_with_unit
  SUBTYPE OF (measure_with_unit);
WHERE
  WR1: 'MEASURE_SCHEMA.CONDUCTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
(*

Formal propositions:

WR1: The unit_component shall be of type conductance_unit.

19.4.13 conductance_unit   EXPRESS-G

A conductance_unit is a type of derived_unit in which the electrical conductance is expressed.

EXPRESS specification:

*)
ENTITY conductance_unit
  SUBTYPE OF (derived_unit);
WHERE
  WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.siemens);
END_ENTITY;
(*

Formal propositions:

WR1: The dimensional exponents shall be equal to those of the siemens as defined in ISO 31.

19.4.14 context_dependent_unit   EXPRESS-G

A context_dependent_unit is a type of named_unit that is not related to the system of units defined in this part of ISO 10303.

EXAMPLE    The number of parts in an assembly is a physical quantity that may be measured in a unit called “parts”. Such a unit cannot be related to an SI unit.

EXPRESS specification:

*)
ENTITY context_dependent_unit
  SUBTYPE OF (named_unit);
  name : label;
END_ENTITY;
(*

Attribute definitions:

name: the label by which the context_dependent_unit is known.

19.4.15 conversion_based_unit   EXPRESS-G

A conversion_based_unit is a type of named_unit that defines a unit on the basis of a measure_with_unit.

NOTE    The value_component attribute of the measure_with_unit defines the conversion factor.

EXAMPLE    An inch is a conversion_based_unit. It is from the Imperial system, its name is "inch", and it can be related to the si_unit, millimetre, through a measure_with_unit whose value is 25.4 millimetre. A foot is also a conversion_based_unit. It is from the Imperial system, its name is "foot", and it can be related to an si_unit, millimetre, either directly or through the unit called "inch".

EXPRESS specification:

*)
ENTITY conversion_based_unit
  SUBTYPE OF (named_unit);
  name : label;
  conversion_factor : measure_with_unit;
WHERE
  WR1: SELF\named_unit.dimensions = derive_dimensional_exponents(conversion_factor\measure_with_unit.unit_component);
END_ENTITY;
(*

Attribute definitions:

name: the label by which the conversion_based_unit is known.

conversion_factor: the measure_with_unit that specifies the physical quantity from which the conversion_based_unit is derived.

Formal propositions:

WR1: The dimensional exponents shall be equal to those from the conversion_factor.

19.4.16 derived_unit   EXPRESS-G

A derived_unit is an expression of units.

EXAMPLE    Newtons per square millimetre is a derived_unit.

A derived_unit may be either an absorbed_dose_unit or an acceleration_unit, or a radioactivity_unit, or an area_unit, or a capacitance_unit, or a dose_equivalent_unit, or an electric_charge_unit, or a conductance_unit, or an electric_potential_unit, or an energy_unit, or a magnetic_flux_density_unit or a force_unit, or a frequency_unit, or an illuminance_unit, or an inductance_unit, or a magnetic_flux_unit, or a power_unit, or a pressure_unit, or a resistance_unit, or a velocity_unit, or a volume_unit.

EXPRESS specification:

*)
ENTITY derived_unit
  SUPERTYPE OF (ONEOF (absorbed_dose_unit,
                       acceleration_unit,
                       radioactivity_unit,
                       area_unit,
                       capacitance_unit,
                       dose_equivalent_unit,
                       electric_charge_unit,
                       conductance_unit,
                       electric_potential_unit,
                       energy_unit,
                       magnetic_flux_density_unit,
                       force_unit,
                       frequency_unit,
                       illuminance_unit,
                       inductance_unit,
                       magnetic_flux_unit,
                       power_unit,
                       pressure_unit,
                       resistance_unit,
                       velocity_unit,
                       volume_unit));
  elements : SET[1:?] OF derived_unit_element;
DERIVE
  name : label := get_name_value(SELF);
WHERE
  WR1: (SIZEOF(elements) > 1) OR ((SIZEOF(elements) = 1) AND (elements[1].exponent <> 1.0));
  WR2: SIZEOF(USEDIN(SELF, 'BASIC_ATTRIBUTE_SCHEMA.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1;
END_ENTITY;
(*

Attribute definitions:

elements: the derived_unit_elements and their exponents that define the derived_unit.

name: the label by which the derived_unit is known.

NOTE 1   This attribute is an upwardly compatible addition to derived_unit as specified in ISO 10303-41:1994.

Formal propositions:

WR1: There shall be either more than one member in the elements set or the value of the exponent of the single element of the elements set shall not be equal to one.

WR2: Each derived_unit shall be the named_item in at most one name_attribute.

NOTE 2   The name_attribute data type is defined in basic_attribute_schema of this part of ISO 10303.

NOTE 3   A template for constraining the population of the entity data types defined in the basic_attribute_schema is described in annex E.

19.4.17 derived_unit_element   EXPRESS-G

A derived_unit_element is the association of a named_unit with an exponent.

NOTE    This entity is used in this part of ISO 10303 to represent an element of the dimensional expression of a derived_unit.

EXAMPLE    Newtons per square millimetre is a derived unit. It has two elements, Newton whose exponent has a value of 1, and millimetre whose exponent is -2.

EXPRESS specification:

*)
ENTITY derived_unit_element;
  unit : named_unit;
  exponent : REAL;
END_ENTITY;
(*

Attribute definitions:

unit: the named_unit that specifies the mathematical factor of the element.

exponent: the power that is applied to the unit attribute.

19.4.18 dimensional_exponents   EXPRESS-G

A dimensional_exponents is a definition of the powers of the dimensions of the seven base quantities.

NOTE 1   The seven base quantities are defined in ISO 31.

NOTE 2   This entity enables the dimensional expression of any physical quantity with respect to these seven base quantities.

NOTE 3   Length, mass, time, electric current, thermodynamic temperature, amount of substance, and luminous intensity are the seven base quantities.

EXAMPLE 1   A length of 2 millimetres has a length exponent of 1. The remaining exponents are equal to 0.

EXAMPLE 2   A velocity of 2 millimetres per second has a length exponent of 1 and a time exponent of -1. The remaining exponents are 0.

EXPRESS specification:

*)
ENTITY dimensional_exponents;
  length_exponent : REAL;
  mass_exponent : REAL;
  time_exponent : REAL;
  electric_current_exponent : REAL;
  thermodynamic_temperature_exponent : REAL;
  amount_of_substance_exponent : REAL;
  luminous_intensity_exponent : REAL;
END_ENTITY;
(*

Attribute definitions:

length_exponent: the power of the length base quantity.

mass_exponent: the power of the mass base quantity.

time_exponent: the power of the time base quantity.

electric_current_exponent: the power of the electric current base quantity.

thermodynamic_temperature_exponent: the power of the thermodynamic temperature base quantity.

amount_of_substance_exponent: the power of the amount of substance base quantity.

luminous_intensity_exponent: the power of the luminous intensity base quantity.

19.4.19 dose_equivalent_measure_with_unit   EXPRESS-G

A dose_equivalent_measure_with_unit is a type of measure_with_unit in which the physical quantity is a radiation dose equivalent as defined in ISO 31.

EXPRESS specification:

*)
ENTITY dose_equivalent_measure_with_unit
  SUBTYPE OF (measure_with_unit);
WHERE
  WR1: 'MEASURE_SCHEMA.DOSE_EQUIVALENT_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
(*

Formal propositions:

WR1: The unit_component shall be of type dose_equivalent_unit.

19.4.20 dose_equivalent_unit   EXPRESS-G

A dose_equivalent_unit is a type of derived_unit in which the radiation dose equivalent is expressed.

EXPRESS specification:

*)
ENTITY dose_equivalent_unit
  SUBTYPE OF (derived_unit);
WHERE
  WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.sievert);
END_ENTITY;
(*

Formal propositions:

WR1: The dimensional exponents shall be equal to those of the sievert as defined in ISO 31.

19.4.21 electric_charge_measure_with_unit   EXPRESS-G

An electric_charge_measure_with_unit is a type of measure_with_unit in which the physical quantity is an electric charge as defined in ISO 31.

EXPRESS specification:

*)
ENTITY electric_charge_measure_with_unit
  SUBTYPE OF (measure_with_unit);
WHERE
  WR1: 'MEASURE_SCHEMA.ELECTRIC_CHARGE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
(*

Formal propositions:

WR1: The unit_component shall be of type electric_charge_unit.

19.4.22 electric_charge_unit   EXPRESS-G

An electric_charge_unit is a type of derived_unit in which the electric charge is expressed.

EXPRESS specification:

*)
ENTITY electric_charge_unit
  SUBTYPE OF (derived_unit);
WHERE
  WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.coulomb);
END_ENTITY;
(*

Formal propositions:

WR1: The dimensional exponents shall be equal to those of the coulomb as defined in ISO 31.

19.4.23 electric_current_measure_with_unit   EXPRESS-G

An electric_current_measure_with_unit is a type of measure_with_unit in which the physical quantity is an electric current as defined in ISO 31.

EXPRESS specification:

*)
ENTITY electric_current_measure_with_unit
  SUBTYPE OF (measure_with_unit);
WHERE
  WR1: 'MEASURE_SCHEMA.ELECTRIC_CURRENT_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
(*

Formal propositions:

WR1: The unit shall be an electric_current_unit.

19.4.24 electric_current_unit   EXPRESS-G

An electric_current_unit is a type of named_unit in which the movement of electrically charged particles is expressed.

NOTE    This unit corresponds to one of the seven fundamental quantities as specified in ISO 1000.

EXPRESS specification:

*)
ENTITY electric_current_unit
  SUBTYPE OF (named_unit);
WHERE
  WR1: (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.time_exponent = 0.0) AND (SELF\named_unit.dimensions.electric_current_exponent = 1.0) AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
END_ENTITY;
(*

Formal propositions:

WR1: The dimensional exponent of electric current shall be equal to one and all the other dimensional exponents shall be equal to zero.

19.4.25 electric_potential_measure_with_unit   EXPRESS-G

An electric_potential_measure_with_unit is a type of measure_with_unit in which the physical quantity is an electric potential as defined in ISO 31.

EXPRESS specification:

*)
ENTITY electric_potential_measure_with_unit
  SUBTYPE OF (measure_with_unit);
WHERE
  WR1: 'MEASURE_SCHEMA.ELECTRIC_POTENTIAL_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
(*

Formal propositions:

WR1: The unit_component shall be of type electric_potential_unit.

19.4.26 electric_potential_unit   EXPRESS-G

An electric_potential_unit is a type of derived_unit in which the electric potential is expressed.

EXPRESS specification:

*)
ENTITY electric_potential_unit
  SUBTYPE OF (derived_unit);
WHERE
  WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.volt);
END_ENTITY;
(*

Formal propositions:

WR1: The dimensional exponents shall be equal to those of the volt as defined in ISO 31.

19.4.27 energy_measure_with_unit   EXPRESS-G

An energy_measure_with_unit is a type of measure_with_unit in which the physical quantity is energy as defined in ISO 31.

EXPRESS specification:

*)
ENTITY energy_measure_with_unit
  SUBTYPE OF (measure_with_unit);
WHERE
  WR1: 'MEASURE_SCHEMA.ENERGY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
(*

Formal propositions:

WR1: The unit_component shall be of type energy_unit.

19.4.28 energy_unit   EXPRESS-G

An energy_unit is a type of derived_unit in which the energy is expressed.

EXPRESS specification:

*)
ENTITY energy_unit
  SUBTYPE OF (derived_unit);
WHERE
  WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.joule);
END_ENTITY;
(*

Formal propositions:

WR1: The dimensional exponents shall be equal to those of the joule as defined in ISO 31.

19.4.29 force_measure_with_unit   EXPRESS-G

A force_measure_with_unit is a type of measure_with_unit in which the physical quantity is force as defined in ISO 31.

EXPRESS specification:

*)
ENTITY force_measure_with_unit
  SUBTYPE OF (measure_with_unit);
WHERE
  WR1: 'MEASURE_SCHEMA.FORCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
(*

Formal propositions:

WR1: The unit_component shall be of type force_unit.

19.4.30 force_unit   EXPRESS-G

A force_unit is a type of derived_unit in which the force is expressed.

EXPRESS specification:

*)
ENTITY force_unit
  SUBTYPE OF (derived_unit);
WHERE
  WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.newton);
END_ENTITY;
(*

Formal propositions:

WR1: The dimensional exponents shall be equal to those of the newton as defined in ISO 31.

19.4.31 frequency_measure_with_unit   EXPRESS-G

A frequency_measure_with_unit is a type of measure_with_unit in which the quantity measured is a frequency as defined in ISO 31.

EXPRESS specification:

*)
ENTITY frequency_measure_with_unit
  SUBTYPE OF (measure_with_unit);
WHERE
  WR1: 'MEASURE_SCHEMA.FREQUENCY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
(*

Formal propositions:

WR1: The unit_component shall be of type frequency_unit.

19.4.32 frequency_unit   EXPRESS-G

A frequency_unit is a type of derived_unit in which the frequency is expressed.

EXPRESS specification:

*)
ENTITY frequency_unit
  SUBTYPE OF (derived_unit);
WHERE
  WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.hertz);
END_ENTITY;
(*

Formal propositions:

WR1: The dimensional exponents shall be equal to those of the hertz as defined in ISO 31.

19.4.33 global_unit_assigned_context   EXPRESS-G

A global_unit_assigned_context is a type of representation_context in which the units apply to all measure_values of the applicable kind.

NOTE    For an example of the use of this entity, see annex F.4.6.

EXPRESS specification:

*)
ENTITY global_unit_assigned_context
  SUBTYPE OF (representation_context);
  units : SET[1:?] OF unit;
END_ENTITY;
(*

Attribute definitions:

units: the units that apply in the representation_context.

Informal propositions:

IP1: Each unit shall be a different kind of unit.

NOTE    For an example of the use of this entity, see annex F.4.6.

19.4.34 illuminance_measure_with_unit   EXPRESS-G

An illuminance_measure_with_unit is a type of measure_with_unit in which the quantity measured is an illuminance as defined in ISO 31.

EXPRESS specification:

*)
ENTITY illuminance_measure_with_unit
  SUBTYPE OF (measure_with_unit);
WHERE
  WR1: 'MEASURE_SCHEMA.ILLUMINANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
(*

Formal propositions:

WR1: The unit_component shall be of type illuminance_unit.

19.4.35 illuminance_unit   EXPRESS-G

An illuminance_unit is a type of derived_unit in which the illuminance is expressed.

EXPRESS specification:

*)
ENTITY illuminance_unit
  SUBTYPE OF (derived_unit);
WHERE
  WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.lux);
END_ENTITY;
(*

Formal propositions:

WR1: The dimensional exponents shall be equal to those of the lux as defined in ISO 31.

19.4.36 inductance_measure_with_unit   EXPRESS-G

An inductance_measure_with_unit is a type of measure_with_unit in which the quantity measured is an inductance as defined in ISO 31.

EXPRESS specification:

*)
ENTITY inductance_measure_with_unit
  SUBTYPE OF (measure_with_unit);
WHERE
  WR1: 'MEASURE_SCHEMA.INDUCTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
(*

Formal propositions:

WR1: The unit_component shall be of type inductance_unit.

19.4.37 inductance_unit   EXPRESS-G

An inductance_unit is a type of derived_unit in which the inductance is expressed.

EXPRESS specification:

*)
ENTITY inductance_unit
  SUBTYPE OF (derived_unit);
WHERE
  WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.henry);
END_ENTITY;
(*

Formal propositions:

WR1: The dimensional exponents shall be equal to those of the henry as defined in ISO 31.

19.4.38 length_measure_with_unit   EXPRESS-G

A length_measure_with_unit is a type of measure_with_unit in which the physical quantity is a length as defined in ISO 31.

EXPRESS specification:

*)
ENTITY length_measure_with_unit
  SUBTYPE OF (measure_with_unit);
WHERE
  WR1: 'MEASURE_SCHEMA.LENGTH_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
(*

Formal propositions:

WR1: The unit shall be a length_unit.

19.4.39 length_unit   EXPRESS-G

A length_unit is a type of named_unit in which distances are expressed.

NOTE    This unit corresponds to one of the seven fundamental quantities as specified in ISO 1000.

EXPRESS specification:

*)
ENTITY length_unit
  SUBTYPE OF (named_unit);
WHERE
  WR1: (SELF\named_unit.dimensions.length_exponent = 1.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.time_exponent = 0.0) AND (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
END_ENTITY;
(*

Formal propositions:

WR1: The dimensional exponent of length shall be equal to one and all the other dimensional exponents shall be equal to zero.

19.4.40 luminous_flux_measure_with_unit   EXPRESS-G

A luminous_flux_measure_with_unit is a type of measure_with_unit in which the quantity measured is a luminous flux as defined in ISO 31.

EXPRESS specification:

*)
ENTITY luminous_flux_measure_with_unit
  SUBTYPE OF (measure_with_unit);
WHERE
  WR1: 'MEASURE_SCHEMA.LUMINOUS_FLUX_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
(*

Formal propositions:

WR1: The unit_component shall be of type luminous_flux_unit.

19.4.41 luminous_flux_unit   EXPRESS-G

A luminous_flux_unit is a type of named_unit in which the luminous flux is expressed.

EXPRESS specification:

*)
ENTITY luminous_flux_unit
  SUBTYPE OF (named_unit);
WHERE
  WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.lumen);
END_ENTITY;
(*

Formal propositions:

WR1: The dimensional exponents shall be equal to those of the lumen as defined in ISO 31.

19.4.42 luminous_intensity_measure_with_unit   EXPRESS-G

A luminous_intensity_measure_with_unit is a type of measure_with_unit in which the physical quantity is a luminous intensity as defined in ISO 31.

EXPRESS specification:

*)
ENTITY luminous_intensity_measure_with_unit
  SUBTYPE OF (measure_with_unit);
WHERE
  WR1: 'MEASURE_SCHEMA.LUMINOUS_INTENSITY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
(*

Formal propositions:

WR1: The unit shall be a luminous_intensity_unit.

19.4.43 luminous_intensity_unit   EXPRESS-G

A luminous_intensity_unit is a type of named_unit in which the brightness of a body is expressed.

NOTE    This unit corresponds to one of the seven fundamental quantities as specified in ISO 1000.

EXPRESS specification:

*)
ENTITY luminous_intensity_unit
  SUBTYPE OF (named_unit);
WHERE
  WR1: (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.time_exponent = 0.0) AND (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 1.0);
END_ENTITY;
(*

Formal propositions:

WR1: The dimensional exponent of luminous intensity shall be equal to one and all the other dimensional exponents shall be equal to zero.

19.4.44 magnetic_flux_density_measure_with_unit   EXPRESS-G

A magnetic_flux_density_measure_with_unit is a type of measure_with_unit in which the physical quantity is magnetic flux density as defined in ISO 31.

EXPRESS specification:

*)
ENTITY magnetic_flux_density_measure_with_unit
  SUBTYPE OF (measure_with_unit);
WHERE
  WR1: 'MEASURE_SCHEMA.MAGNETIC_FLUX_DENSITY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
(*

Formal propositions:

WR1: The unit_component shall be of type magnetic_flux_density_unit.

19.4.45 magnetic_flux_density_unit   EXPRESS-G

A magnetic_flux_density_unit is a type of derived_unit in which the magnetic flux density is expressed.

EXPRESS specification:

*)
ENTITY magnetic_flux_density_unit
  SUBTYPE OF (derived_unit);
WHERE
  WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.tesla);
END_ENTITY;
(*

Formal propositions:

WR1: The dimensional exponents shall be equal to those of the tesla as defined in ISO 31.

19.4.46 magnetic_flux_measure_with_unit   EXPRESS-G

A magnetic_flux_measure_with_unit is a type of measure_with_unit in which the quantity measured is a magnetic flux as defined in ISO 31.

EXPRESS specification:

*)
ENTITY magnetic_flux_measure_with_unit
  SUBTYPE OF (measure_with_unit);
WHERE
  WR1: 'MEASURE_SCHEMA.MAGNETIC_FLUX_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
(*

Formal propositions:

WR1: The unit_component shall be of type magnetic_flux_unit.

19.4.47 magnetic_flux_unit   EXPRESS-G

A magnetic_flux_unit is a type of derived_unit in which the magnetic flux is expressed.

EXPRESS specification:

*)
ENTITY magnetic_flux_unit
  SUBTYPE OF (derived_unit);
WHERE
  WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.weber);
END_ENTITY;
(*

Formal propositions:

WR1: The dimensional exponents shall be equal to those of the weber as defined in ISO 31.

19.4.48 mass_measure_with_unit   EXPRESS-G

A mass_measure_with_unit is a type of measure_with_unit in which the physical quantity is a mass as defined in ISO 31.

EXPRESS specification:

*)
ENTITY mass_measure_with_unit
  SUBTYPE OF (measure_with_unit);
WHERE
  WR1: 'MEASURE_SCHEMA.MASS_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
(*

Formal propositions:

WR1: The unit shall be a mass_unit.

19.4.49 mass_unit   EXPRESS-G

A mass_unit is a type of named_unit in which the amount of matter that a body contains is expressed.

NOTE    This unit corresponds to one of the seven fundamental quantities as specified in ISO 1000.

EXPRESS specification:

*)
ENTITY mass_unit
  SUBTYPE OF (named_unit);
WHERE
  WR1: (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 1.0) AND (SELF\named_unit.dimensions.time_exponent = 0.0) AND (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
END_ENTITY;
(*

Formal propositions:

WR1: The dimensional exponent of mass shall be equal to one and all the other dimensional exponents shall be equal to zero.

19.4.50 measure_with_unit   EXPRESS-G

A measure_with_unit is the specification of a physical quantity as defined in ISO 31. A measure_with_unit may be either a length_measure_with_unit or a mass_measure_with_unit, or a time_measure_with_unit, or an electric_current_measure_with_unit, or a thermodynamic_temperature_measure_with_unit, or a celsius_temperature_measure_with_unit, or an amount_of_substance_measure_with_unit, or a luminous_intensity_measure_with_unit, or a plane_angle_measure_with_unit, or a solid_angle_measure_with_unit, or an area_measure_with_unit, or a volume_measure_with_unit, or a ratio_measure_with_unit, or an acceleration_measure_with_unit, or a capacitance_measure_with_unit, or an electric_charge_measure_with_unit, or a conductance_measure_with_unit, or an electric_potential_measure_with_unit, or an energy_measure_with_unit, or a magnetic_flux_density_measure_with_unit, or a force_measure_with_unit, or a frequency_measure_with_unit, or an illuminance_measure_with_unit, or an inductance_measure_with_unit, or a luminous_flux_measure_with_unit, or a magnetic_flux_measure_with_unit, or a power_measure_with_unit, or a pressure_measure_with_unit, or a resistance_measure_with_unit, or a velocity_measure_with_unit, or an absorbed_dose_measure_with_unit, or a radioactivity_measure_with_unit, or a dose_equivalent_measure_with_unit.

EXPRESS specification:

*)
ENTITY measure_with_unit
  SUPERTYPE OF (ONEOF (length_measure_with_unit,
                       mass_measure_with_unit,
                       time_measure_with_unit,
                       electric_current_measure_with_unit,
                       thermodynamic_temperature_measure_with_unit,
                       celsius_temperature_measure_with_unit,
                       amount_of_substance_measure_with_unit,
                       luminous_intensity_measure_with_unit,
                       plane_angle_measure_with_unit,
                       solid_angle_measure_with_unit,
                       area_measure_with_unit,
                       volume_measure_with_unit,
                       ratio_measure_with_unit,
                       acceleration_measure_with_unit,
                       capacitance_measure_with_unit,
                       electric_charge_measure_with_unit,
                       conductance_measure_with_unit,
                       electric_potential_measure_with_unit,
                       energy_measure_with_unit,
                       magnetic_flux_density_measure_with_unit,
                       force_measure_with_unit,
                       frequency_measure_with_unit,
                       illuminance_measure_with_unit,
                       inductance_measure_with_unit,
                       luminous_flux_measure_with_unit,
                       magnetic_flux_measure_with_unit,
                       power_measure_with_unit,
                       pressure_measure_with_unit,
                       resistance_measure_with_unit,
                       velocity_measure_with_unit,
                       absorbed_dose_measure_with_unit,
                       radioactivity_measure_with_unit,
                       dose_equivalent_measure_with_unit));
  value_component : measure_value;
  unit_component : unit;
WHERE
  WR1: valid_units(SELF);
END_ENTITY;
(*

Attribute definitions:

value_component: the value of the physical quantity if expressed with respect to the unit_component.

unit_component: the unit in which the physical quantity is expressed.

Formal propositions:

WR1: The unit_component shall be a valid unit for the kind of measure specified by the value_component.

19.4.51 named_unit   EXPRESS-G

A named_unit is a unit quantity. A named_unit may be either a si_unit or a conversion_based_unit, or a context_dependent_unit, and additionally may be a length_unit or a mass_unit, or a time_unit, or an electric_current_unit, or a thermodynamic_temperature_unit, or an amount_of_substance_unit, or a luminous_flux_unit, or a luminous_intensity_unit, or a plane_angle_unit, or a solid_angle_unit, or a ratio_unit.

EXPRESS specification:

*)
ENTITY named_unit
  SUPERTYPE OF (ONEOF (si_unit,
                       conversion_based_unit,
                       context_dependent_unit)
               ANDOR ONEOF (length_unit,
                    mass_unit,
                    time_unit,
                    electric_current_unit,
                    thermodynamic_temperature_unit,
                    amount_of_substance_unit,
                    luminous_flux_unit,
                    luminous_intensity_unit,
                    plane_angle_unit,
                    solid_angle_unit,
                    ratio_unit));
  dimensions : dimensional_exponents;
END_ENTITY;
(*

Attribute definitions:

dimensions: the exponents of the base properties by which the named_unit is defined.

19.4.52 plane_angle_measure_with_unit   EXPRESS-G

A plane_angle_measure_with_unit is a type of measure_with_unit in which the physical quantity is a plane angle as defined in ISO 31.

EXPRESS specification:

*)
ENTITY plane_angle_measure_with_unit
  SUBTYPE OF (measure_with_unit);
WHERE
  WR1: 'MEASURE_SCHEMA.PLANE_ANGLE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
(*

Formal propositions:

WR1: The unit shall be a plane_angle_unit.

19.4.53 plane_angle_unit   EXPRESS-G

A plane_angle_unit is a type of named_unit in which angles in planes are expressed.

EXPRESS specification:

*)
ENTITY plane_angle_unit
  SUBTYPE OF (named_unit);
WHERE
  WR1: (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.time_exponent = 0.0) AND (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
END_ENTITY;
(*

Formal propositions:

WR1: All the dimensional exponents shall be equal to zero.

19.4.54 positive_length_measure_with_unit   EXPRESS-G

A positive_length_measure_with_unit is a type of length_measure_with_unit of which the value is positive.

EXPRESS specification:

*)
ENTITY positive_length_measure_with_unit
  SUBTYPE OF (length_measure_with_unit);
WHERE
  WR1: 'MEASURE_SCHEMA.POSITIVE_LENGTH_MEASURE' IN TYPEOF(SELF\measure_with_unit.value_component);
END_ENTITY;
(*

Formal propositions:

WR1: The value of the value_component shall be positive.

19.4.55 positive_plane_angle_measure_with_unit   EXPRESS-G

A positive_plane_angle_measure_with_unit is a type of plane_angle_measure_with_unit of which the value is positive.

EXPRESS specification:

*)
ENTITY positive_plane_angle_measure_with_unit
  SUBTYPE OF (plane_angle_measure_with_unit);
WHERE
  WR1: 'MEASURE_SCHEMA.POSITIVE_PLANE_ANGLE_MEASURE' IN TYPEOF(SELF\measure_with_unit.value_component);
END_ENTITY;
(*

Formal propositions:

WR1: The value of the value_component shall be positive.

19.4.56 power_measure_with_unit   EXPRESS-G

A power_measure_with_unit is a type of measure_with_unit in which the quantity measured is a power as defined in ISO 31.

EXPRESS specification:

*)
ENTITY power_measure_with_unit
  SUBTYPE OF (measure_with_unit);
WHERE
  WR1: 'MEASURE_SCHEMA.POWER_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
(*

Formal propositions:

WR1: The unit_component shall be of type power_unit.

19.4.57 power_unit   EXPRESS-G

A power_unit is a type of derived_unit in which the power is expressed.

EXPRESS specification:

*)
ENTITY power_unit
  SUBTYPE OF (derived_unit);
WHERE
  WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.watt);
END_ENTITY;
(*

Formal propositions:

WR1: The dimensional exponents shall be equal to those of the watt as defined in ISO 31.

19.4.58 pressure_measure_with_unit   EXPRESS-G

A pressure_measure_with_unit is a type of measure_with_unit in which the quantity measured is a pressure as defined in ISO 31.

EXPRESS specification:

*)
ENTITY pressure_measure_with_unit
  SUBTYPE OF (measure_with_unit);
WHERE
  WR1: 'MEASURE_SCHEMA.PRESSURE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
(*

Formal propositions:

WR1: The unit_component shall be of type pressure_unit.

19.4.59 pressure_unit   EXPRESS-G

A pressure_unit is a type of derived_unit in which the pressure is expressed.

EXPRESS specification:

*)
ENTITY pressure_unit
  SUBTYPE OF (derived_unit);
WHERE
  WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.pascal);
END_ENTITY;
(*

Formal propositions:

WR1: The dimensional exponents shall be equal to those of the pascal as defined in ISO 31.

19.4.60 radioactivity_measure_with_unit   EXPRESS-G

A radioactivity_measure_with_unit is a type of measure_with_unit in which the physical quantity is radioactivity as defined in ISO 31.

EXPRESS specification:

*)
ENTITY radioactivity_measure_with_unit
  SUBTYPE OF (measure_with_unit);
WHERE
  WR1: 'MEASURE_SCHEMA.RADIOACTIVITY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
(*

Formal propositions:

WR1: The unit_component shall be of type radioactivity_unit.

19.4.61 radioactivity_unit   EXPRESS-G

A radioactivity_unit is a type of derived_unit in which the radioactivity is expressed.

EXPRESS specification:

*)
ENTITY radioactivity_unit
  SUBTYPE OF (derived_unit);
WHERE
  WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.becquerel);
END_ENTITY;
(*

Formal propositions:

WR1: The dimensional exponents shall be equal to those of the becquerel as defined in ISO 31.

19.4.62 ratio_measure_with_unit   EXPRESS-G

A ratio_measure_with_unit is a type of measure_with_unit in which the physical quantity is a ratio as defined in ISO 31.

EXPRESS specification:

*)
ENTITY ratio_measure_with_unit
  SUBTYPE OF (measure_with_unit);
WHERE
  WR1: 'MEASURE_SCHEMA.RATIO_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
(*

Formal propositions:

WR1: The unit shall be a ratio_unit.

19.4.63 ratio_unit   EXPRESS-G

A ratio_unit is a type of named_unit in which the ratio between two physical quantities of the same kind is expressed.

EXPRESS specification:

*)
ENTITY ratio_unit
  SUBTYPE OF (named_unit);
WHERE
  WR1: (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.time_exponent = 0.0) AND (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
END_ENTITY;
(*

Formal propositions:

WR1: All the dimensional exponents shall be equal to zero.

19.4.64 resistance_measure_with_unit   EXPRESS-G

A resistance_measure_with_unit is a type of measure_with_unit in which the quantity measured is an electrical resistance as defined in ISO 31.

EXPRESS specification:

*)
ENTITY resistance_measure_with_unit
  SUBTYPE OF (measure_with_unit);
WHERE
  WR1: 'MEASURE_SCHEMA.RESISTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
(*

Formal propositions:

WR1: The unit_component shall be of type resistance_unit.

19.4.65 resistance_unit   EXPRESS-G

A resistance_unit is a type of derived_unit in which the electrical resistance is expressed.

EXPRESS specification:

*)
ENTITY resistance_unit
  SUBTYPE OF (derived_unit);
WHERE
  WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.ohm);
END_ENTITY;
(*

Formal propositions:

WR1: The dimensional exponents shall be equal to those of the ohm as defined in ISO 31.

19.4.66 si_absorbed_dose_unit   EXPRESS-G

A si_absorbed_dose_unit is a type of absorbed_dose_unit and a type of si_unit in which the absorbed dose is expressed in SI units.

EXPRESS specification:

*)
ENTITY si_absorbed_dose_unit
  SUBTYPE OF (absorbed_dose_unit, si_unit);
WHERE
  WR1: SELF\si_unit.name = si_unit_name.gray;
  WR2: NOT EXISTS(SELF\derived_unit.name);
END_ENTITY;
(*

Formal propositions:

WR1: The name of the si_unit shall be gray.

WR2: No other name shall be assigned to this entity.

19.4.67 si_capacitance_unit   EXPRESS-G

A si_capacitance_unit is a type of capacitance_unit and a type of si_unit in which the electric capacitance is expressed in SI units.

EXPRESS specification:

*)
ENTITY si_capacitance_unit
  SUBTYPE OF (capacitance_unit, si_unit);
WHERE
  WR1: SELF\si_unit.name = si_unit_name.farad;
  WR2: NOT EXISTS(SELF\derived_unit.name);
END_ENTITY;
(*

Formal propositions:

WR1: The name of the si_unit shall be farad.

WR2: No other name shall be assigned to this entity.

19.4.68 si_conductance_unit   EXPRESS-G

A si_conductance_unit is a type of conductance_unit and a type of si_unit in which the electrical conductance is expressed in SI units.

EXPRESS specification:

*)
ENTITY si_conductance_unit
  SUBTYPE OF (conductance_unit, si_unit);
WHERE
  WR1: SELF\si_unit.name = si_unit_name.siemens;
  WR2: NOT EXISTS(SELF\derived_unit.name);
END_ENTITY;
(*

Formal propositions:

WR1: The name of the si_unit shall be siemens.

WR2: No other name shall be assigned to this entity.

19.4.69 si_dose_equivalent_unit   EXPRESS-G

A si_dose_equivalent_unit is a type of dose_equivalent_unit and a type of si_unit in which the radiation dose equivalent is expressed in SI units.

EXPRESS specification:

*)
ENTITY si_dose_equivalent_unit
  SUBTYPE OF (dose_equivalent_unit, si_unit);
WHERE
  WR1: SELF\si_unit.name = si_unit_name.sievert;
  WR2: NOT EXISTS(SELF\derived_unit.name);
END_ENTITY;
(*

Formal propositions:

WR1: The name of the si_unit shall be sievert.

WR2: No other name shall be assigned to this entity.

19.4.70 si_electric_charge_unit   EXPRESS-G

A si_electric_charge_unit is a type of electric_charge_unit and a type of si_unit in which the electric charge is expressed in SI units.

EXPRESS specification:

*)
ENTITY si_electric_charge_unit
  SUBTYPE OF (electric_charge_unit, si_unit);
WHERE
  WR1: SELF\si_unit.name = si_unit_name.coulomb;
  WR2: NOT EXISTS(SELF\derived_unit.name);
END_ENTITY;
(*

Formal propositions:

WR1: The name of the si_unit shall be volt.

WR2: No other name shall be assigned to this entity.

19.4.71 si_electric_potential_unit   EXPRESS-G

A si_electric_potential_unit is a type of electric_potential_unit and a type of si_unit in which the electric potential is expressed in SI units.

EXPRESS specification:

*)
ENTITY si_electric_potential_unit
  SUBTYPE OF (electric_potential_unit, si_unit);
WHERE
  WR1: SELF\si_unit.name = si_unit_name.volt;
  WR2: NOT EXISTS(SELF\derived_unit.name);
END_ENTITY;
(*

Formal propositions:

WR1: The name of the si_unit shall be volt.

WR2: No other name shall be assigned to this entity.

19.4.72 si_energy_unit   EXPRESS-G

A si_energy_unit is a type of energy_unit and a type of si_unit in which the energy is expressed in SI units.

EXPRESS specification:

*)
ENTITY si_energy_unit
  SUBTYPE OF (energy_unit, si_unit);
WHERE
  WR1: SELF\si_unit.name = si_unit_name.joule;
  WR2: NOT EXISTS(SELF\derived_unit.name);
END_ENTITY;
(*

Formal propositions:

WR1: The name of the si_unit shall be joule.

WR2: No other name shall be assigned to this entity.

19.4.73 si_force_unit   EXPRESS-G

A si_force_unit is a type of force_unit and a type of si_unit in which the force is expressed in SI units.

EXPRESS specification:

*)
ENTITY si_force_unit
  SUBTYPE OF (force_unit, si_unit);
WHERE
  WR1: SELF\si_unit.name = si_unit_name.newton;
  WR2: NOT EXISTS(SELF\derived_unit.name);
END_ENTITY;
(*

Formal propositions:

WR1: The name of the si_unit shall be newton.

WR2: No other name shall be assigned to this entity.

19.4.74 si_frequency_unit   EXPRESS-G

A si_frequency_unit is a type of frequency_unit and a type of si_unit in which the frequency is expressed in SI units.

EXPRESS specification:

*)
ENTITY si_frequency_unit
  SUBTYPE OF (frequency_unit, si_unit);
WHERE
  WR1: SELF\si_unit.name = si_unit_name.hertz;
  WR2: NOT EXISTS(SELF\derived_unit.name);
END_ENTITY;
(*

Formal propositions:

WR1: The name of the si_unit shall be hertz.

WR2: No other name shall be assigned to this entity.

19.4.75 si_illuminance_unit   EXPRESS-G

A si_illuminance_unit is a type of illuminance_unit and a type of si_unit in which the illuminance is expressed in SI units.

EXPRESS specification:

*)
ENTITY si_illuminance_unit
  SUBTYPE OF (illuminance_unit, si_unit);
WHERE
  WR1: SELF\si_unit.name = si_unit_name.lux;
  WR2: NOT EXISTS(SELF\derived_unit.name);
END_ENTITY;
(*

Formal propositions:

WR1: The name of the si_unit shall be lux.

WR2: No other name shall be assigned to this entity.

19.4.76 si_inductance_unit   EXPRESS-G

A si_inductance_unit is a type of inductance_unit and a type of si_unit in which the inductance is expressed in SI units.

EXPRESS specification:

*)
ENTITY si_inductance_unit
  SUBTYPE OF (inductance_unit, si_unit);
WHERE
  WR1: SELF\si_unit.name = si_unit_name.henry;
  WR2: NOT EXISTS(SELF\derived_unit.name);
END_ENTITY;
(*

Formal propositions:

WR1: The name of the si_unit shall be henry.

WR2: No other name shall be assigned to this entity.

19.4.77 si_magnetic_flux_density_unit   EXPRESS-G

A si_magnetic_flux_density_unit is a type of magnetic_flux_density_unit and a type of si_unit in which the magnetic flux density is expressed in SI units.

EXPRESS specification:

*)
ENTITY si_magnetic_flux_density_unit
  SUBTYPE OF (magnetic_flux_density_unit, si_unit);
WHERE
  WR1: SELF\si_unit.name = si_unit_name.tesla;
  WR2: NOT EXISTS(SELF\derived_unit.name);
END_ENTITY;
(*

Formal propositions:

WR1: The name of the si_unit shall be tesla.

WR2: No other name shall be assigned to this entity.

19.4.78 si_magnetic_flux_unit   EXPRESS-G

A si_magnetic_flux_unit is a type of magnetic_flux_unit and a type of si_unit in which the magnetic flux is expressed in SI units.

EXPRESS specification:

*)
ENTITY si_magnetic_flux_unit
  SUBTYPE OF (magnetic_flux_unit, si_unit);
WHERE
  WR1: SELF\si_unit.name = si_unit_name.weber;
  WR2: NOT EXISTS(SELF\derived_unit.name);
END_ENTITY;
(*

Formal propositions:

WR1: The name of the si_unit shall be weber.

WR2: No other name shall be assigned to this entity.

19.4.79 si_power_unit   EXPRESS-G

A si_power_unit is a type of power_unit and a type of si_unit in which the power is expressed in SI units.

EXPRESS specification:

*)
ENTITY si_power_unit
  SUBTYPE OF (power_unit, si_unit);
WHERE
  WR1: SELF\si_unit.name = si_unit_name.watt;
  WR2: NOT EXISTS(SELF\derived_unit.name);
END_ENTITY;
(*

Formal propositions:

WR1: The name of the si_unit shall be watt.

WR2: No other name shall be assigned to this entity.

19.4.80 si_pressure_unit   EXPRESS-G

A si_pressure_unit is a type of pressure_unit and a type of si_unit in which the pressure is expressed in SI units.

EXPRESS specification:

*)
ENTITY si_pressure_unit
  SUBTYPE OF (pressure_unit, si_unit);
WHERE
  WR1: SELF\si_unit.name = si_unit_name.pascal;
  WR2: NOT EXISTS(SELF\derived_unit.name);
END_ENTITY;
(*

Formal propositions:

WR1: The name of the si_unit shall be pascal.

WR2: No other name shall be assigned to this entity.

19.4.81 si_radioactivity_unit   EXPRESS-G

A si_radioactivity_unit is a type of radioactivity_unit and a type of si_unit in which the radioactivity is expressed in SI units.

EXPRESS specification:

*)
ENTITY si_radioactivity_unit
  SUBTYPE OF (radioactivity_unit, si_unit);
WHERE
  WR1: SELF\si_unit.name = si_unit_name.becquerel;
  WR2: NOT EXISTS(SELF\derived_unit.name);
END_ENTITY;
(*

Formal propositions:

WR1: The name of the si_unit shall be becquerel.

WR2: No other name shall be assigned to this entity.

19.4.82 si_resistance_unit   EXPRESS-G

A si_resistance_unit is a type of resistance_unit and a type of si_unit in which the resistance is expressed in SI units.

EXPRESS specification:

*)
ENTITY si_resistance_unit
  SUBTYPE OF (resistance_unit, si_unit);
WHERE
  WR1: SELF\si_unit.name = si_unit_name.ohm;
  WR2: NOT EXISTS(SELF\derived_unit.name);
END_ENTITY;
(*

Formal propositions:

WR1: The name of the si_unit shall be ohm.

WR2: No other name shall be assigned to this entity.

19.4.83 si_unit   EXPRESS-G

An si_unit is a type of named_unit that defines a unit with respect to the system of units defined in ISO 80000.

EXPRESS specification:

*)
ENTITY si_unit
  SUBTYPE OF (named_unit);
  prefix : OPTIONAL si_prefix;
  name : si_unit_name;
DERIVE
  SELF\named_unit.dimensions : dimensional_exponents := dimensions_for_si_unit(name);
WHERE
  WR1: NOT(('MEASURE_SCHEMA.MASS_UNIT' IN TYPEOF(SELF)) AND (SIZEOF(USEDIN(SELF,'MEASURE_SCHEMA.DERIVED_UNIT_ELEMENT.UNIT')) > 0)) OR (prefix = si_prefix.kilo);
END_ENTITY;
(*

Attribute definitions:

prefix: the si_prefix that specifies the ratio with the unit specified by name. The value of this attribute need not be specified.

name: the si_unit_name by which the si_unit is known.

dimensions: the dimensional_exponents for the si_unit.

Formal propositions:

WR1: If the si_unit is a mass_unit it shall not be used by a derived_unit_element unless the prefix is kilo.

19.4.84 solid_angle_measure_with_unit   EXPRESS-G

A solid_angle_measure_with_unit is a type of measure_with_unit in which the physical quantity is a solid angle as defined in ISO 31.

EXPRESS specification:

*)
ENTITY solid_angle_measure_with_unit
  SUBTYPE OF (measure_with_unit);
WHERE
  WR1: 'MEASURE_SCHEMA.SOLID_ANGLE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
(*

Formal propositions:

WR1: The unit shall be a solid_angle_unit.

19.4.85 solid_angle_unit   EXPRESS-G

A solid_angle_unit is a type of named_unit in which solid angles are expressed.

EXPRESS specification:

*)
ENTITY solid_angle_unit
  SUBTYPE OF (named_unit);
WHERE
  WR1: (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.time_exponent = 0.0) AND (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
END_ENTITY;
(*

Formal propositions:

WR1: All the dimensional exponents shall be equal to zero.

19.4.86 thermodynamic_temperature_measure_with_unit   EXPRESS-G

A thermodynamic_temperature_measure_with_unit is a type of measure_with_unit in which the physical quantity is a thermodynamic temperature as defined in ISO 31.

EXPRESS specification:

*)
ENTITY thermodynamic_temperature_measure_with_unit
  SUBTYPE OF (measure_with_unit);
WHERE
  WR1: 'MEASURE_SCHEMA.THERMODYNAMIC_TEMPERATURE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
(*

Formal propositions:

WR1: The unit shall be a thermodynamic_temperature_unit.

19.4.87 thermodynamic_temperature_unit   EXPRESS-G

A thermodynamic_temperature_unit is a type of named_unit in which the degree of heat of a body is expressed.

NOTE    This unit corresponds to one of the seven fundamental quantities as specified in ISO 1000.

EXPRESS specification:

*)
ENTITY thermodynamic_temperature_unit
  SUBTYPE OF (named_unit);
WHERE
  WR1: (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.time_exponent = 0.0) AND (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 1.0) AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
END_ENTITY;
(*

Formal propositions:

WR1: The dimensional exponent of thermodynamic temperature shall be equal to one and the other dimensional exponents shall be equal to zero.

19.4.88 time_measure_with_unit   EXPRESS-G

A time_measure_with_unit is a type of measure_with_unit in which the physical quantity is a time as defined in ISO 31.

EXPRESS specification:

*)
ENTITY time_measure_with_unit
  SUBTYPE OF (measure_with_unit);
WHERE
  WR1: 'MEASURE_SCHEMA.TIME_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
(*

Formal propositions:

WR1: The unit shall be a time_unit.

19.4.89 time_unit   EXPRESS-G

A time_unit is a type of named_unit in which the duration of periods is expressed.

NOTE    This unit corresponds to one of the seven fundamental quantities as specified in ISO 1000.

EXPRESS specification:

*)
ENTITY time_unit
  SUBTYPE OF (named_unit);
WHERE
  WR1: (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.time_exponent = 1.0) AND (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
END_ENTITY;
(*

Formal propositions:

WR1: The dimensional exponent of time shall be equal to one and all the other dimensional exponents shall be equal to zero.

19.4.90 velocity_measure_with_unit   EXPRESS-G

A velocity_measure_with_unit is a type of measure_with_unit in which the quantity measured is a velocity.

EXPRESS specification:

*)
ENTITY velocity_measure_with_unit
  SUBTYPE OF (measure_with_unit);
WHERE
  WR1: 'MEASURE_SCHEMA.VELOCITY_UNIT' IN TYPEOF (SELF\measure_with_unit.unit_component);
END_ENTITY;
(*

Formal propositions:

WR1: The unit_component shall be of type velocity_unit.

19.4.91 velocity_unit   EXPRESS-G

A velocity_unit is a type of derived_unit in which the velocity is expressed.

EXPRESS specification:

*)
ENTITY velocity_unit
  SUBTYPE OF (derived_unit);
WHERE
  WR1: derive_dimensional_exponents(SELF) = dimensional_exponents ( 1.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0 );
END_ENTITY;
(*

Formal propositions:

WR1: The dimensional exponent of length shall be equal to one, the dimensional exponent of time shall be equal to minus one, and all the other dimensional exponents shall be equal to zero.

19.4.92 volume_measure_with_unit   EXPRESS-G

A volume_measure_with_unit is a type of measure_with_unit in which the physical quantity is a volume as defined in ISO 31.

EXPRESS specification:

*)
ENTITY volume_measure_with_unit
  SUBTYPE OF (measure_with_unit);
WHERE
  WR1: 'MEASURE_SCHEMA.VOLUME_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
(*

Formal propositions:

WR1: The unit shall be a volume_unit.

19.4.93 volume_unit   EXPRESS-G

A volume_unit is a type of derived_unit used to measure the extent of a solid.

EXPRESS specification:

*)
ENTITY volume_unit
  SUBTYPE OF (derived_unit);
WHERE
  WR1: derive_dimensional_exponents(SELF) = dimensional_exponents ( 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 );
END_ENTITY;
(*

Formal propositions:

WR1: The dimensional exponent of length shall be equal to three and all the other dimensional exponents shall be equal to zero.

19.5 measure_schema function definitions

19.5.1 derive_dimensional_exponents

The derive_dimensional_exponents function determines the dimensional exponents of a unit. For named units the dimensions attribute is returned and for derived units the dimensional exponents are calculated from its elements.

EXPRESS specification:

*)
FUNCTION derive_dimensional_exponents (x : unit) : dimensional_exponents;
LOCAL
      result : dimensional_exponents := dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
    END_LOCAL;

    IF 'MEASURE_SCHEMA.DERIVED_UNIT' IN TYPEOF(x) THEN
      REPEAT i := LOINDEX(x\derived_unit.elements) TO HIINDEX(x\derived_unit.elements);
        result.length_exponent := result.length_exponent + 
        (x\derived_unit.elements[i]\derived_unit_element.exponent * 
         x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.length_exponent);
        result.mass_exponent := result.mass_exponent + 
        (x\derived_unit.elements[i]\derived_unit_element.exponent * 
         x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.mass_exponent);
        result.time_exponent := result.time_exponent + 
        (x\derived_unit.elements[i]\derived_unit_element.exponent * 
         x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.time_exponent);
        result.electric_current_exponent := result.electric_current_exponent + 
        (x\derived_unit.elements[i]\derived_unit_element.exponent * 
         x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.electric_current_exponent);
        result.thermodynamic_temperature_exponent := result.thermodynamic_temperature_exponent + 
        (x\derived_unit.elements[i]\derived_unit_element.exponent * 
         x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.thermodynamic_temperature_exponent);
        result.amount_of_substance_exponent := result.amount_of_substance_exponent + 
        (x\derived_unit.elements[i]\derived_unit_element.exponent * 
         x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.amount_of_substance_exponent);
        result.luminous_intensity_exponent := result.luminous_intensity_exponent + 
        (x\derived_unit.elements[i]\derived_unit_element.exponent * 
         x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.luminous_intensity_exponent);
      END_REPEAT;
    ELSE
      result := x\named_unit.dimensions;
    END_IF;
    RETURN (result);
END_FUNCTION;
(*

Argument definitions:

x: (input) the unit that the dimensional_exponents are being derived from.

19.5.2 dimensions_for_si_unit

The dimensions_for_si_unit function returns the dimensional_exponents of the given si_unit.

EXPRESS specification:

*)
FUNCTION dimensions_for_si_unit (n : si_unit_name) : dimensional_exponents;
CASE n OF 
      metre:
        RETURN (dimensional_exponents(1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0));
      gram:
        RETURN (dimensional_exponents(0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0));
      second:
        RETURN (dimensional_exponents(0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0));
      ampere:
        RETURN (dimensional_exponents(0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0));
      kelvin:
        RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0));
      mole:
        RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0));
      candela:
        RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0));
      radian:
        RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0));
      steradian:
        RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0));
      hertz:
        RETURN (dimensional_exponents(0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0));
      newton:
        RETURN (dimensional_exponents(1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0));
      pascal:
        RETURN (dimensional_exponents(-1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0));
      joule:
        RETURN (dimensional_exponents(2.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0));
      watt:
        RETURN (dimensional_exponents(2.0, 1.0, -3.0, 0.0, 0.0, 0.0, 0.0));
      coulomb:
        RETURN (dimensional_exponents(0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0));
      volt:
        RETURN (dimensional_exponents(2.0, 1.0, -3.0, -1.0, 0.0, 0.0, 0.0));
      farad:
        RETURN (dimensional_exponents(-2.0, -1.0, 4.0, 2.0, 0.0, 0.0, 0.0));
      ohm:
        RETURN (dimensional_exponents(2.0, 1.0, -3.0, -2.0, 0.0, 0.0, 0.0));
      siemens:
        RETURN (dimensional_exponents(-2.0, -1.0, 3.0, 2.0, 0.0, 0.0, 0.0));
      weber:
        RETURN (dimensional_exponents(2.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0));
      tesla:
        RETURN (dimensional_exponents(0.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0));
      henry:
        RETURN (dimensional_exponents(2.0, 1.0, -2.0, -2.0, 0.0, 0.0, 0.0));
      degree_Celsius:
        RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0));
      lumen:
        RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0));
      lux:
        RETURN (dimensional_exponents(-2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0));
      becquerel:
        RETURN (dimensional_exponents(0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0));
      gray:
        RETURN (dimensional_exponents(2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0));
      sievert:
        RETURN (dimensional_exponents(2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0));
      OTHERWISE:
        RETURN (?);
    END_CASE;
END_FUNCTION;
(*

Argument definitions:

n: (input) the name of the si_unit_name for which the dimensional_exponents will be returned.

19.5.3 valid_units

The valid_units function validates a measure_with_unit. If the unit of the measure_with_unit is valid the function returns TRUE. Otherwise, it returns FALSE.

EXPRESS specification:

*)
FUNCTION valid_units (m : measure_with_unit) : BOOLEAN;
IF 'MEASURE_SCHEMA.LENGTH_MEASURE' IN TYPEOF(m.value_component) THEN
      IF derive_dimensional_exponents(m.unit_component) <> 
      dimensional_exponents(1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN
        RETURN (FALSE);
      END_IF;
    END_IF;
    IF 'MEASURE_SCHEMA.MASS_MEASURE' IN TYPEOF(m.value_component) THEN
      IF derive_dimensional_exponents(m.unit_component) <> 
      dimensional_exponents(0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN
        RETURN (FALSE);
      END_IF;
    END_IF;
    IF 'MEASURE_SCHEMA.TIME_MEASURE' IN TYPEOF(m.value_component) THEN
      IF derive_dimensional_exponents(m.unit_component) <> 
      dimensional_exponents(0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0) THEN
        RETURN (FALSE);
      END_IF;
    END_IF;
    IF 'MEASURE_SCHEMA.ELECTRIC_CURRENT_MEASURE' IN TYPEOF(m.value_component) THEN
      IF derive_dimensional_exponents(m.unit_component) <> 
      dimensional_exponents(0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) THEN
        RETURN (FALSE);
      END_IF;
    END_IF;
    IF 'MEASURE_SCHEMA.THERMODYNAMIC_TEMPERATURE_MEASURE' IN TYPEOF(m.value_component) THEN
      IF derive_dimensional_exponents(m.unit_component) <> 
      dimensional_exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) THEN
        RETURN (FALSE);
      END_IF;
    END_IF;
    IF 'MEASURE_SCHEMA.CELSIUS_TEMPERATURE_MEASURE' IN TYPEOF(m.value_component) THEN
      IF derive_dimensional_exponents(m.unit_component) <> 
      dimensional_exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) THEN
        RETURN (FALSE);
      END_IF;
    END_IF;
    IF 'MEASURE_SCHEMA.AMOUNT_OF_SUBSTANCE_MEASURE' IN TYPEOF(m.value_component) THEN
      IF derive_dimensional_exponents(m.unit_component) <> 
      dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) THEN
        RETURN (FALSE);
      END_IF;
    END_IF;
    IF 'MEASURE_SCHEMA.LUMINOUS_INTENSITY_MEASURE' IN TYPEOF(m.value_component) THEN
      IF derive_dimensional_exponents(m.unit_component) <> 
      dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0) THEN
        RETURN (FALSE);
      END_IF;
    END_IF;
    IF 'MEASURE_SCHEMA.PLANE_ANGLE_MEASURE' IN TYPEOF(m.value_component) THEN
      IF derive_dimensional_exponents(m.unit_component) <> 
      dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN
        RETURN (FALSE);
      END_IF;
    END_IF;
    IF 'MEASURE_SCHEMA.SOLID_ANGLE_MEASURE' IN TYPEOF(m.value_component) THEN
      IF derive_dimensional_exponents(m.unit_component) <> 
      dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN
        RETURN (FALSE);
      END_IF;
    END_IF;
    IF 'MEASURE_SCHEMA.AREA_MEASURE' IN TYPEOF(m.value_component) THEN
      IF derive_dimensional_exponents(m.unit_component) <> 
      dimensional_exponents(2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN
        RETURN (FALSE);
      END_IF;
    END_IF;
    IF 'MEASURE_SCHEMA.VOLUME_MEASURE' IN TYPEOF(m.value_component) THEN
      IF derive_dimensional_exponents(m.unit_component) <> 
      dimensional_exponents(3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN
        RETURN (FALSE);
      END_IF;
    END_IF;
    IF 'MEASURE_SCHEMA.RATIO_MEASURE' IN TYPEOF(m.value_component) THEN
      IF derive_dimensional_exponents(m.unit_component) <> 
      dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN
        RETURN (FALSE);
      END_IF;
    END_IF;
    IF 'MEASURE_SCHEMA.POSITIVE_LENGTH_MEASURE' IN TYPEOF(m.value_component) THEN
      IF derive_dimensional_exponents(m.unit_component) <> 
      dimensional_exponents(1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN
        RETURN (FALSE);
      END_IF;
    END_IF;
    IF 'MEASURE_SCHEMA.POSITIVE_PLANE_ANGLE_MEASURE' IN TYPEOF(m.value_component) THEN
      IF derive_dimensional_exponents(m.unit_component) <> 
      dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN
        RETURN (FALSE);
      END_IF;
    END_IF;
    IF 'MEASURE_SCHEMA.ACCELERATION_MEASURE' IN TYPEOF(m.value_component) THEN
      IF derive_dimensional_exponents(m.unit_component) <> 
        dimensional_exponents( 1.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0 ) THEN
        RETURN (FALSE);
      END_IF;
    END_IF;
     IF 'MEASURE_SCHEMA.CAPACITANCE_MEASURE' IN TYPEOF(m.value_component) THEN
      IF derive_dimensional_exponents(m.unit_component) <> 
        dimensional_exponents( -2.0, -1.0, 4.0, 2.0, 0.0, 0.0, 0.0 ) THEN
        RETURN (FALSE);
      END_IF;
    END_IF;
    IF 'MEASURE_SCHEMA.ELECTRIC_CHARGE_MEASURE' IN TYPEOF(m.value_component) THEN
      IF derive_dimensional_exponents(m.unit_component) <> 
        dimensional_exponents( 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0 ) THEN
        RETURN (FALSE);
      END_IF;
    END_IF;
        IF 'MEASURE_SCHEMA.CONDUCTANCE_MEASURE' IN TYPEOF(m.value_component) THEN
          IF derive_dimensional_exponents(m.unit_component) <> 
            dimensional_exponents( -2.0, -1.0, 3.0, 2.0, 0.0, 0.0, 0.0 ) THEN
            RETURN (FALSE);
          END_IF;
    END_IF;
        IF 'MEASURE_SCHEMA.ELECTRIC_POTENTIAL_MEASURE' IN TYPEOF(m.value_component) THEN
          IF derive_dimensional_exponents(m.unit_component) <> 
            dimensional_exponents( 2.0, 1.0, -3.0, -1.0, 0.0, 0.0, 0.0 ) THEN
            RETURN (FALSE);
          END_IF;
    END_IF;    
    IF 'MEASURE_SCHEMA.ENERGY_MEASURE' IN TYPEOF(m.value_component) THEN
      IF derive_dimensional_exponents(m.unit_component) <> 
        dimensional_exponents( 2.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0 ) THEN
        RETURN (FALSE);
      END_IF;
    END_IF;
    IF 'MEASURE_SCHEMA.FORCE_MEASURE' IN TYPEOF(m.value_component) THEN
      IF derive_dimensional_exponents(m.unit_component) <> 
        dimensional_exponents( 1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0 ) THEN
        RETURN (FALSE);
      END_IF;
    END_IF;
    IF 'MEASURE_SCHEMA.FREQUENCY_MEASURE' IN TYPEOF(m.value_component) THEN
      IF derive_dimensional_exponents(m.unit_component) <> 
        dimensional_exponents( 0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0 ) THEN
        RETURN (FALSE);
      END_IF;
    END_IF;
    IF 'MEASURE_SCHEMA.ILLUMINANCE_MEASURE' IN TYPEOF(m.value_component) THEN
      IF derive_dimensional_exponents(m.unit_component) <> 
        dimensional_exponents( -2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0 ) THEN
        RETURN (FALSE);
      END_IF;
    END_IF;
     IF 'MEASURE_SCHEMA.INDUCTANCE_MEASURE' IN TYPEOF(m.value_component) THEN
      IF derive_dimensional_exponents(m.unit_component) <> 
        dimensional_exponents( 2.0, 1.0, -2.0, -2.0, 0.0, 0.0, 0.0 ) THEN
        RETURN (FALSE);
      END_IF;
    END_IF;
    IF 'MEASURE_SCHEMA.LUMINOUS_FLUX_MEASURE' IN TYPEOF(m.value_component) THEN
      IF derive_dimensional_exponents(m.unit_component) <> 
        dimensional_exponents( 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0 ) THEN
        RETURN (FALSE);
      END_IF;
    END_IF;
    IF 'MEASURE_SCHEMA.MAGNETIC_FLUX_MEASURE' IN TYPEOF(m.value_component) THEN
      IF derive_dimensional_exponents(m.unit_component) <> 
        dimensional_exponents( 2.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0 ) THEN
        RETURN (FALSE);
      END_IF;
    END_IF;
     IF 'MEASURE_SCHEMA.MAGNETIC_FLUX_DENSITY_MEASURE' IN TYPEOF(m.value_component) THEN
      IF derive_dimensional_exponents(m.unit_component) <> 
        dimensional_exponents( 0.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0 ) THEN
        RETURN (FALSE);
      END_IF;
    END_IF;
    IF 'MEASURE_SCHEMA.POWER_MEASURE' IN TYPEOF(m.value_component) THEN
      IF derive_dimensional_exponents(m.unit_component) <> 
        dimensional_exponents( 2.0, 1.0, -3.0, 0.0, 0.0, 0.0, 0.0 ) THEN
        RETURN (FALSE);
      END_IF;
    END_IF;
    IF 'MEASURE_SCHEMA.PRESSURE_MEASURE' IN TYPEOF(m.value_component) THEN
      IF derive_dimensional_exponents(m.unit_component) <> 
        dimensional_exponents( -1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0 ) THEN
        RETURN (FALSE);
      END_IF;
    END_IF;
    IF 'MEASURE_SCHEMA.RESISTANCE_MEASURE' IN TYPEOF(m.value_component) THEN
      IF derive_dimensional_exponents(m.unit_component) <> 
        dimensional_exponents( 2.0, 1.0, -3.0, -2.0, 0.0, 0.0, 0.0 ) THEN
        RETURN (FALSE);
      END_IF;
    END_IF;
    IF 'MEASURE_SCHEMA.VELOCITY_MEASURE' IN TYPEOF(m.value_component) THEN
      IF derive_dimensional_exponents(m.unit_component) <> 
        dimensional_exponents( 1.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0 ) THEN
        RETURN (FALSE);
      END_IF;
    END_IF;
    IF 'MEASURE_SCHEMA.RADIOACTIVITY_MEASURE' IN TYPEOF(m.value_component) THEN
      IF derive_dimensional_exponents(m.unit_component) <> 
        dimensional_exponents(0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0) THEN
        RETURN (FALSE);
      END_IF;
    END_IF;
    IF 'MEASURE_SCHEMA.ABSORBED_DOSE_MEASURE' IN TYPEOF(m.value_component) THEN
      IF derive_dimensional_exponents(m.unit_component) <> 
        dimensional_exponents(2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0) THEN
        RETURN (FALSE);
      END_IF;
    END_IF;
    IF 'MEASURE_SCHEMA.DOSE_EQUIVALENT_MEASURE' IN TYPEOF(m.value_component) THEN
      IF derive_dimensional_exponents(m.unit_component) <> 
        dimensional_exponents(2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0) THEN
        RETURN (FALSE);
      END_IF;
    END_IF;
    RETURN (TRUE);
END_FUNCTION;
(*

Argument definitions:

m: (input) the candidate measure_with_unit that is to be checked.



*)
END_SCHEMA;  -- measure_schema
(*


© ISO 2021 — All rights reserved