Integrated generic resource: Fundamentals of product description and support | ISO 10303-41:2021(E) © ISO |
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.
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.
EXPRESS specification:
*)
TYPE
absorbed_dose_measure
=
REAL;
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
acceleration_measure
=
REAL;
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
amount_of_substance_measure
=
REAL;
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
area_measure
=
REAL;
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
capacitance_measure
=
REAL;
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
celsius_temperature_measure
=
REAL;
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
conductance_measure
=
REAL;
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
context_dependent_measure
=
REAL;
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
count_measure
=
NUMBER;
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
descriptive_measure
=
STRING;
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
dose_equivalent_measure
=
REAL;
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
electric_charge_measure
=
REAL;
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
electric_current_measure
=
REAL;
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
electric_potential_measure
=
REAL;
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
energy_measure
=
REAL;
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
force_measure
=
REAL;
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
frequency_measure
=
REAL;
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
illuminance_measure
=
REAL;
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
inductance_measure
=
REAL;
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
length_measure
=
REAL;
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
luminous_flux_measure
=
REAL;
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
luminous_intensity_measure
=
REAL;
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
magnetic_flux_density_measure
=
REAL;
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
magnetic_flux_measure
=
REAL;
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
mass_measure
=
REAL;
END_TYPE;
(*
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;
(*
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.
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;
(*
EXPRESS specification:
*)
TYPE
parameter_value
=
REAL;
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
plane_angle_measure
=
REAL;
END_TYPE;
(*
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.
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.
EXPRESS specification:
*)
TYPE
positive_ratio_measure
=
ratio_measure;
WHERE
WR1: SELF > 0.0;
END_TYPE;
(*
Formal propositions:
WR1: The value shall be positive.
EXPRESS specification:
*)
TYPE
power_measure
=
REAL;
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
pressure_measure
=
REAL;
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
radioactivity_measure
=
REAL;
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
ratio_measure
=
REAL;
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
resistance_measure
=
REAL;
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
s_name_attribute_select
=
SELECT
BASED_ON
name_attribute_select
WITH
(derived_unit);
END_TYPE;
(*
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.
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.
EXPRESS specification:
*)
TYPE
solid_angle_measure
=
REAL;
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
thermodynamic_temperature_measure
=
REAL;
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
time_measure
=
REAL;
END_TYPE;
(*
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;
(*
EXPRESS specification:
*)
TYPE
velocity_measure
=
REAL;
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
volume_measure
=
REAL;
END_TYPE;
(*
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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