(*
META_MODEL
EXPRESS specification:
*)
SCHEMA META_MODEL;
(*
Section For Page 1
Description of Section For Page 1

Figure D.1 - META_MODEL EXPRESS-G diagram 1 of 12
abstract_object
An <b>abstract_object</b> is a <b>thing</b> that does not exist in space-time.
EXPRESS specification:
*)
ENTITY abstract_object
SUPERTYPE OF (ONEOF(class_or_class_with_structure, tuple))
SUBTYPE OF(thing);
END_ENTITY;
(*
class_or_class_with_structure
An <b>abstract_object</b> that is either a <b>class</b> or a <b>class_with_structure</>.
EXPRESS specification:
*)
ENTITY class_or_class_with_structure
ABSTRACT
SUPERTYPE OF (ONEOF(class, class_with_structure))
SUBTYPE OF(abstract_object, thing_with_structure);
END_ENTITY;
(*
classification_by_class_or_class_with_structure
A <b>tuple</b> that is either a <b>classification</b> or a <b>classification_by_class_with_structure</b>.
EXPRESS specification:
*)
ENTITY classification_by_class_or_class_with_structure
ABSTRACT
SUBTYPE OF(binary_tuple);
classifier	:	class_or_class_with_structure;
classified	:	thing;
END_ENTITY;
(*
composition_of_extent
EXPRESS specification:
*)
ENTITY composition_of_extent
SUBTYPE OF(binary_tuple);
whole	:	extent;
part	:	extent;
END_ENTITY;
(*
extent
A <b>thing</b> that exists in some possible universe that is a space-time continuum.
EXAMPLE <b>extent</b>s include:
- things where any of the space time dimensions are vanishingly small, 
- those that are either all space for any time, or all time and any space, 
- the entirety of all space time 
- things that actually exist, or have existed, 
- things that are fictional or conjectured in some possible universe and possibly exist in the past, present or future,
- temporal parts (states) of other individuals,
- things that have a specific position, but zero extent in one or more dimensions, such as points, lines, and surfaces.
- The pump with serial number ABC123, Battersea Power Station, Sir Joseph Whitworth, Shakespeare, and the starship "Enterprise" are <b>extent</b>s.
EXPRESS specification:
*)
ENTITY extent
SUBTYPE OF(thing);
END_ENTITY;
(*
intentional_thing
A <b>thing</b> that is intentionally constructed.
EXAMPLE   Money is something that is intentionally constructed. The value money has is a matter of human convention.
EXPRESS specification:
*)
ENTITY intentional_thing
SUBTYPE OF(thing);
END_ENTITY;
(*
thing
A <b>thing</b> is anything that exists including material and non-material objects, ideas, and actions where every <b>thing</b> is either an <b>individual</b>, or an <b>abstract_object</b>.
EXPRESS specification:
*)
ENTITY thing
SUPERTYPE OF (ONEOF(abstract_object, extent) ANDOR intentional_thing ANDOR thing_with_structure);
id	:	OPTIONAL STRING;
record_copy_created	:	OPTIONAL representation_of_Gregorian_date_and_UTC_time;
record_created	:	OPTIONAL representation_of_Gregorian_date_and_UTC_time;
record_logically_deleted	:	OPTIONAL representation_of_Gregorian_date_and_UTC_time;
why_deleted	:	OPTIONAL information_content;
record_created_by	:	OPTIONAL extent;
UNIQUE
UR1	:	id;
END_ENTITY;
(*
Attribute definitions:
id	:	A unique identifier of the <b>thing</b> within the system.
record_copy_created	:	The date and time when this copy of the record was created in the current system. This attribute shall have a value only when the current system is not the originating system.
record_created	:	The date and time on which this record was first created in its originating system.
record_logically_deleted	:	The date and time that this record was logically deleted.
why_deleted	:	The reason why the record was logically deleted.

NOTE:	Logical deletion means that whilst the record is still available in the system as a matter of historical record, it is no longer considered a valid statement. That is to say it is considered that it was never true.
thing_with_structure
EXPRESS specification:
*)
ENTITY thing_with_structure
SUBTYPE OF(thing);
END_ENTITY;
(*
Section For Page 2

Figure D.2 - META_MODEL EXPRESS-G diagram 2 of 12
class
A <b>thing</b> that is a collection, possibly infinite, of distinct <b>thing</b>s with identity dependent only on its members.

NOTE 1  The identity of a <b>class</b> is ultimately defined by its members. No two <b>class</b>es have the same membership. However, a distinction must be made between a <b>class</b> having members, and those members being known, so within an information system the members recorded may change over time, even though the true membership does not change.

NOTE 2	The membership of a <b>class</b> is unchanging as a result of the spatio-temporal paradigm upon which this schema is based. In another paradigm it might be stated that a car is red at one time, and green at another time, indicating that the class of red things and class of green things changed members. However, using a spatio-temporal paradigm, a temporal part, state 1, of the car is red, and another temporal part of the car, state 2, is green. In this way the members of the <b>class</b>es red and green are unchanging. The same principle applies to future temporal parts as to past temporal parts, it is just more likely that the membership of these is not known.

NOTE 3  A class may be a member of another class or itself.

NOTE 4  There is a null <b>class</b> that has no members.

NOTE 5	The known members of a <b>class</b> are identified by <b>classification</b>.

EXAMPLE 1	Centrifugal pump is a <b>class</b>.

EXAMPLE 2	Mechanical equipment type is a <b>class</b>.

EXAMPLE 3	Temperature is a <b>class</b>.

EXAMPLE 4	Commercial fusion reactor is a <b>class</b>.

EXAMPLE 5	Centigrade scale is a <b>class</b>.

NOTE 5	Although there is only one <b>class</b> that has no members, there can be a <b>class</b> that has no members in the actual world, but which does have members in other possible worlds.

EXAMPLE 6       Unicorn is a <b>class</b>.

EXPRESS specification:
*)
ENTITY class
SUPERTYPE OF (enumerated_class ANDOR class_of_abstract_object ANDOR well_founded_class ANDOR ONEOF(countable_class, uncountable_class))
SUBTYPE OF(class_or_class_with_structure);
END_ENTITY;
(*
class_of_abstract_object
A <b>class</b> whose members classify members of <b>abstract_object</b>.
NOTE   <b>class_of_abstract_object</b> is the powerclass of <b>abstract_object</b>, i.e. <b>abstract_object</b> and all its possible subtypes are instances of <b>class_of_abstract_object</b>.
EXPRESS specification:
*)
ENTITY class_of_abstract_object
SUBTYPE OF(class);
END_ENTITY;
(*
class_of_class_or_class_with_structure
A <b>class_of_abstract_object</b> whose members classify members of <b>class_or_class_with_structure</b>.
NOTE   <b>class_of_class_or_class_with_structure</b> is the powerclass of <b>class_or_class_with_structure</b>, i.e. <b>class_or_class_with_structure</b> and all its possible subtypes are instances of <b>class_of_class_or_class_with_structure</b>.
EXPRESS specification:
*)
ENTITY class_of_class_or_class_with_structure
SUBTYPE OF(class_of_abstract_object);
END_ENTITY;
(*
class_of_class_with_structure
A <b>class_of_class_or_class_with_structure</b> whose members classify members of <b>class_with_structure</b>.
NOTE   <b>class_of_class_with_structure</b> is the powerclass of <b>class_with_structure</b>, i.e. <b>class_with_structure</b> and all its possible subtypes are instances of <b>class_of_class_with_structure</b>.
EXPRESS specification:
*)
ENTITY class_of_class_with_structure
SUBTYPE OF(class_of_class_or_class_with_structure);
END_ENTITY;
(*
classification
A <b>tuple</b> where the classified <b>thing</b> is a member of the classifier <b>class</b>.
<b>classification</b> is not transitive. 
NOTE	A subtype of <b>relationship</b> is transitive if when A is related to B, and B is related to C in the same way, then A is necessarily related to C in that way. <b>specialization</b> and <b>composition</b> are examples of transitive subtypes of <b>relationship</b>. However, because <b>classification</b> is not transitive does not mean that A cannot be related to C in the same way, only that it does not necessarily follow from A being related to B and B being related to C.
EXAMPLE 1	The <b>relationship</b> where London is a member of the class known as 'capital city' is a <b>classification</b>.
EXAMPLE 2	The <b>relationship</b> where 'pump' is a member of the class 'equipment type' is a <b>classification</b>.
EXPRESS specification:
*)
ENTITY classification
SUBTYPE OF(classification_by_class_or_class_with_structure);
SELF\classification_by_class_or_class_with_structure.classifier	:	class;
END_ENTITY;
(*
Attribute definitions:
classifier	:	The <b>class</b> of which the classified <b>thing</b> is a member.
countable_class
A <b>class</b> that has a one to one mapping with the integers or a subset of the integers.
EXPRESS specification:
*)
ENTITY countable_class
SUBTYPE OF(class);
END_ENTITY;
(*
enumerated_class
A <b>class</b> that has each of its members enumerated.
EXPRESS specification:
*)
ENTITY enumerated_class
SUBTYPE OF(class);
END_ENTITY;
(*
finite_class
A <b>countable class</b> that has a finite number of members.
EXPRESS specification:
*)
ENTITY finite_class
SUBTYPE OF(countable_class);
END_ENTITY;
(*
specialization
A <b>specialization</b> is a <b>relationship</b> where all members of the subclass are members of the superclass.
<b>specialization</b> is transitive. 
NOTE	If A is a <b>specialization</b> of B and B is a <b>specialization</b> of C, then A is necessarily a <b>specialization</b> of C.
EXAMPLE	Centrifugal pump is a <b>specialization</b> of pump.
EXPRESS specification:
*)
ENTITY specialization
SUBTYPE OF(binary_tuple);
subclass	:	class;
superclass	:	class;
END_ENTITY;
(*
Attribute definitions:
subclass	:	The <b>class</b> that is a specialization of the superclass <b>class</b>.
superclass	:	The <b>class</b> that is a generalization of the subclass <b>class</b>.
uncountable_class
A <b>class</b> that is not a <b>countable class</b>.
EXPRESS specification:
*)
ENTITY uncountable_class
SUBTYPE OF(class);
END_ENTITY;
(*
well_founded_class
A <b>class</b> that conforms to the Zermelo Frankel axioms of set theory.
EXPRESS specification:
*)
ENTITY well_founded_class
SUBTYPE OF(class);
END_ENTITY;
(*
Section For Page 3
Description of Section For Page 3

Figure D.3 - META_MODEL EXPRESS-G diagram 3 of 12
class_of_class
A <b>class_or_class_with_structure</b> whose members are instances of <b>class</b>.

NOTE 1   <b>class_of_class</b> is the powerclass of
<b>class</b>, i.e. <b>class</b> and all its
possible subtypes are instances of <b>class_of_class</b>.

NOTE 2	When it is necessary to classify a <b>class_of_class</b>, another <b>class_of_class</b> can be used. This is because a <b>class_of_class</b> is a <b>class</b>.
EXPRESS specification:
*)
ENTITY class_of_class
SUBTYPE OF(class_of_class_or_class_with_structure);
END_ENTITY;
(*
class_of_relation
A <b>class_of_class</b> whose members are instances of <b>relation</b>.
EXAMPLE	Reflexive is an example of <b>class_of_relation</b>. A reflexive <b>relation</b> is one that may have the same <b>thing</b> playing both roles, such as connection, where something may be connected to itself.
EXPRESS specification:
*)
ENTITY class_of_relation
SUBTYPE OF(class_of_class);
END_ENTITY;
(*
class_with_structure
An <b>abstract object</b> that consists of a <b>class</b> and a <b>structuring relation</b>.
EXPRESS specification:
*)
ENTITY class_with_structure
SUBTYPE OF(class_or_class_with_structure);
structure	:	OPTIONAL SET [1:?] OF structuring_relation;
END_ENTITY;
(*
class_with_total_ordering
A <b>class with structure</b> that consists of a <b>class</b> and a <b>total ordering relation</b> R such that for any two members of the class, a, b, either R(a,b) or R(b,a).
EXPRESS specification:
*)
ENTITY class_with_total_ordering
SUBTYPE OF(class_with_structure);
SELF\class_with_structure.structure RENAMED total_ordering	:	OPTIONAL SET [1:?] OF total_ordering_relation;
END_ENTITY;
(*
classification_by_class
A <b>class_of_classification</b> is a <b>class_of_relationship</b> whose members are members of <b>classification</b>. A <b>class_of_classification</b> where a member of the class_of_classified <b>class</b> is classified by one or more members of the class_of_classifier <b>class_of_class</b>.
EXAMPLE	The link between <b>class</b> centrifugal pump and the <b>class_of_property</b> RPM, requiring that a centrifugal pump is a member of at least one RPM class, can be represented by an instance of <b>class_of_classification</b>.
EXPRESS specification:
*)
ENTITY classification_by_class
SUBTYPE OF(binary_mapping);
class_of_classified	:	class;
class_of_classifier	:	class_of_class;
END_ENTITY;
(*
Attribute definitions:
class_of_classified	:	The <b>class</b> that is the class_of_classified in the <b>class_of_classification</b>.
class_of_classifier	:	The <b>class_of_class</b> that is the class_of_classifier in the <b>class_of_classification</b>.
classification_by_class_with_structure
A <b>classification_by_class_or_class_with_structure</b> where the classified <b>thing</b> is a member of the <b>class</b> structured by the <b>class_with_structure</b>.
EXPRESS specification:
*)
ENTITY classification_by_class_with_structure
SUBTYPE OF(classification_by_class_or_class_with_structure);
SELF\classification_by_class_or_class_with_structure.classifier	:	class_with_structure;
END_ENTITY;
(*
specialization_by_class
A <b>class_of_specialization</b> is a <b>class_of_relationship</b> whose members are instances of <b>specialization</b> where a member of the class_of_subclass is a subclass of a member of the class_of_superclass.
EXAMPLE	The <b>class_of_specialization</b> where members of the class "family of ASME bolts", e.g. 3 inch, 2 inch bolts, are specializations of members of the <b>enumerated_property_set</b> "set of bolt lengths", e.g. 3 inch, 2 inch.
EXPRESS specification:
*)
ENTITY specialization_by_class
SUBTYPE OF(binary_mapping);
class_of_subclass	:	class_of_class;
class_of_superclass	:	class_of_class;
END_ENTITY;
(*
Attribute definitions:
class_of_subclass	:	The <b>class_of_class</b> whose members are the subclass in the members of the <b>class_of_specialization</b>.
class_of_superclass	:	The <b>class_of_class</b> whose members are the superclass in the members of the <b>class_of_specialization</b>.
structuring_relation
A <b>relation</b> that provides structure over the members of a <b>class</b>.
EXPRESS specification:
*)
ENTITY structuring_relation
SUBTYPE OF(relation);
END_ENTITY;
(*
substructure_of_class_with_structure
A <b>relationship</b> where all the members of the substructure are members of the superstructure and the relevant structure is inherited.
EXPRESS specification:
*)
ENTITY substructure_of_class_with_structure
SUBTYPE OF(binary_tuple);
substructure	:	class_with_structure;
superstructure	:	class_with_structure;
END_ENTITY;
(*
total_ordering_relation
A <b>structuring relation</b> such that for any two members a,b, of the class it orders, either R(a,b) or R(b,a) but not both.
EXPRESS specification:
*)
ENTITY total_ordering_relation
SUBTYPE OF(structuring_relation);
END_ENTITY;
(*
Section For Page 4
Description of Section For Page 4

Figure D.4 - META_MODEL EXPRESS-G diagram 4 of 12
arithmetic_number
A <b>class_with_total_ordering</b> whose members have the same sign and count or magnitude. 

NOTE    An <b>arithmetic_number</b> is the number itself, not any representation of the number.
NOTE 	<b>integer_number</b> is not a subtype of <b>real_number</b>. The members of <b>integer_number</b> are part of a different continuum from the members of <b>real_number</b>, but are isomorphic to a subset of it.
EXAMPLE 1	The number 2 and the number 2.0 can be represented by instances of <b>arithmetic_number</b>.
EXAMPLE 2	Fifteen, the number itself not the English word "fifteen", is an <b>arithmetic_number</b>. It could be represented by an <b>EXPRESS_integer</b> or an <b>EXPRESS_real</b> but could also be represented by  "XV", or a binary, or a hexadecimal representation.
EXPRESS specification:
*)
ENTITY arithmetic_number
SUPERTYPE OF (ONEOF(real_number, integer_number, multidimensional_number))
SUBTYPE OF(class_with_total_ordering);
END_ENTITY;
(*
boundary_of_number_space
A <b>boundary_of_number_space</b> is a <b>specialization</b> where a <b>number_space</b> is a boundary to another <b>number_space</b>.
NOTE    The number space that is the boundary is of lower dimension (usually one less) than the bounded number space.
EXAMPLE	The side of a cube in R3 is a <b>number_space</b> that is a plane in R3 and that is a boundary to the <b>number_space</b> that is a cube in R3.
EXPRESS specification:
*)
ENTITY boundary_of_number_space
SUBTYPE OF(specialization);
SELF\specialization.subclass	:	number_space;
SELF\specialization.superclass	:	number_space;
END_ENTITY;
(*
class_of_number
A <b>class_of_number</b> is a <b>class_of_class</b> whose members are members of <b>arithmetic_number</b>.
EXAMPLE	The class of prime numbers can be represented by an instance <b>class_of_number</b>.
EXPRESS specification:
*)
ENTITY class_of_number
SUPERTYPE OF (ONEOF(number_space, enumerated_number_set))
SUBTYPE OF(class_of_abstract_object);
END_ENTITY;
(*
enumerated_number_set
An <b>enumerated_number_set</b> is a <b>class_of_number</b> and an <b>enumerated_set_of_class</b>.
EXAMPLE	The set of integer numbers {3,4,5} can be represented by an instance of <b>enumerated_number_set</b>.
EXPRESS specification:
*)
ENTITY enumerated_number_set
SUBTYPE OF(class_of_number, enumerated_set_of_class);
END_ENTITY;
(*
integer_number
An <b>integer_number</b> is an <b>arithmetic_number</b> that is an integer number.
EXAMPLE	1, 2, and 10 are representations of integer numbers.
EXPRESS specification:
*)
ENTITY integer_number
SUBTYPE OF(arithmetic_number, countable_class);
END_ENTITY;
(*
lower_bound_of_number_range
A <b>lower_bound_of_number_range</b> is a <b>classification</b> where an <b>arithmetic_number</b> is the lowest value in a <b>number_range</b>.
EXAMPLE	The instance of <b>real_number</b> that is represented by the instance of <b>EXPRESS_real</b> '3.1' has a <b>lower_bound_of_number_range</b> relationship with the instance of <b>number_range</b> '(3.1 to 5.3)'.
EXPRESS specification:
*)
ENTITY lower_bound_of_number_range
SUBTYPE OF(classification);
SELF\classification_by_class_or_class_with_structure.classified	:	arithmetic_number;
SELF\classification.classifier	:	number_range;
END_ENTITY;
(*
Attribute definitions:
classified	:	The <b>arithmetic_number</b> that as classified is the lower bound to the <b>number_range</b>.
classifier	:	The <b>number_range</b> that as classifier is bounded by the <b>arithmetic_number</b>.
multidimensional_number
A <b>multidimensional_number</b> is an <b>arithmetic_number</b> that is also a <b>multidimensional_object</b>.
EXAMPLE	<b>3.2, 5.4, 55.6</b> is a <b>multidimensional_number</b>.
EXPRESS specification:
*)
ENTITY multidimensional_number
SUBTYPE OF(arithmetic_number, n_ary_tuple);
END_ENTITY;
(*
multidimensional_number_space
A <b>multidimensional_number_space</b> is a <b>number_space</b> and a <b>multidimensional_object</b>.
EXAMPLE	R3, the space defined as being all the triples of real numbers (e.g. <b>1.0, 2.1, 5.4</b>), is a <b>multidimensional_number_space</b>.
EXPRESS specification:
*)
ENTITY multidimensional_number_space
SUBTYPE OF(number_space, n_ary_tuple);
END_ENTITY;
(*
number_range
A <b>number_range</b> is a one dimensional <b>number_space</b>.
EXAMPLE	The number space -273.1 to +infinity is a <b>number_range</b>.
EXPRESS specification:
*)
ENTITY number_range
SUBTYPE OF(number_space);
END_ENTITY;
(*
number_space
A <b>number_space</b> is a <b>class_of_number</b> that is a continuum.
EXAMPLE	The integers from 1 to 5 and the reals from 0.000 to 1.000 are examples of <b>number_space</b>.
EXPRESS specification:
*)
ENTITY number_space
SUPERTYPE OF (ONEOF(number_range, multidimensional_number_space))
SUBTYPE OF(class_of_number);
END_ENTITY;
(*
real_number
A <b>real_number</b> is an <b>arithmetic_number</b> that is a real number.
EXAMPLE	3.2146 is a representation of a real number.
EXPRESS specification:
*)
ENTITY real_number
SUBTYPE OF(arithmetic_number, uncountable_class);
END_ENTITY;
(*
upper_bound_of_number_range
An <b>upper_bound_of_number_range</b> is a <b>relationship</b> where an <b>arithmetic_number</b> is the largest value in a <b>number_range</b>.
EXAMPLE	5.3 is the upper bound of the range <b>3.1 to 5.3</b>.
EXPRESS specification:
*)
ENTITY upper_bound_of_number_range
SUBTYPE OF(classification);
SELF\classification_by_class_or_class_with_structure.classified	:	arithmetic_number;
SELF\classification.classifier	:	number_range;
END_ENTITY;
(*
Attribute definitions:
classified	:	The <b>arithmetic_number</b> that as classified is the upper bound to the <b>number_range</b>.
classifier	:	The <b>number_range</b> that as classifier is bounded in the <b>upper_bound_of_number_range</b>.
Section For Page 5
Description of Section For Page 5

Figure D.5 - META_MODEL EXPRESS-G diagram 5 of 12
binary_tuple
A <b>tuple</b> that is a list of two things.
EXPRESS specification:
*)
ENTITY binary_tuple
ABSTRACT
SUBTYPE OF(tuple);
END_ENTITY;
(*
n_ary_tuple
A <b>tuple</b> that is an ordered list of <b>thing</b> here the number of <b>thing</b>s in the list is greater than two. 

NOTE 1	The significance of the <b>n_ary_tuple</b> is determined by being a member of an <b>n_ary_relation</b> where the role played by each of its elements is specified.
NOTE 2	The <b>n_ary_tuple</b> <b>A,B,C</b> is different from <b>B,C,A</b>.
EXAMPLE	<b>32, 1.8, 20</b> is an <b>n_ary_tuple</b> that may be specified to be the input parameters for the function y=a+bx to convert 20 Celsius to Fahrenheit.
EXPRESS specification:
*)
ENTITY n_ary_tuple
SUPERTYPE OF (ONEOF(multidimensional_number, multidimensional_number_space, n_ary_mapping))
SUBTYPE OF(tuple);
elements	:	LIST [1:?] OF thing;
position	:	OPTIONAL LIST [1:?] OF INTEGER;
END_ENTITY;
(*
Attribute definitions:
elements	:	The list of <b>thing</b> that constitute the <b>multidimensional_object</b>. The role of each <b>thing</b> is determined by a classifying <b>class_of_multidimensional_object</b>.
position	:	The position of the element relative to the list of roles in the classifying <b>class_of_multidimensional_object</b>.

The elements shall be listed in ascending order.

When this attribute is missing, then all elements are present as defined in the <b>class_of_multidimensional_object</b>.

NOTE	This attribute is required when some elements are missing. The list data type does not allow empty elements in the list. This attribute, when present, supplies the mapping information. 

other_binary_tuple
An <b>other_relationship</b> is a <b>relationship</b> that is not a member of any of the other explicit subtypes of <b>relationship</b>.
The meaning of an <b>other_relationship</b> is specified by a <b>classification</b> by an instance of <b>class_of_relationship_with_signature</b>.
EXAMPLE	The <b>relationship</b> where a car is manufactured by Ford can be represented by an instance of <b>other_relationship</b>.
The <b>role_and_domain</b> that classifies the end_1 and end_2 attributes is given by the class_of_end_1 and class_of_end_2 attributes respectively for the <b>class_of_relationship_with_signature</b> that classifies the <b>other_relationship</b>. Where the <b>class_of_relationship_with_signature</b> is also a <b>class_of_relationship_with_related_end_1</b> or a <b>class_of_relationship_with_related_end_2</b> then the end_1 or end_2 respectively of the <b>other_relationship</b> shall take the value specified by the related attribute.
EXPRESS specification:
*)
ENTITY other_binary_tuple
SUBTYPE OF(binary_tuple);
end_1	:	thing;
end_2	:	thing;
END_ENTITY;
(*
Attribute definitions:
end_1	:	the first of two instances of <b>thing</b> that are related.
end_2	:	the second of two instances of <b>thing</b> that are related.
tuple
An <b>abstract_object</b> that is a list of <b>thing</b>s.
EXPRESS specification:
*)
ENTITY tuple
ABSTRACT
SUPERTYPE OF (ONEOF(binary_tuple, n_ary_tuple) ANDOR mapping)
SUBTYPE OF(abstract_object);
END_ENTITY;
(*
Section For Page 6
Description of Section For Page 6

Figure D.6 - META_MODEL EXPRESS-G diagram 6 of 12
binary_mapping
A <b>mapping</b> between two <b>thing</b>s where a <b>binary_relation</b> give the gragh of the <b>binary_mapping</b>.

NOTE	The <b>cardinality</b> of the mapping for each place can be specified.
EXPRESS specification:
*)
ENTITY binary_mapping
SUPERTYPE OF (ONEOF(classification_by_class, usage_of_representation_by_pattern, responsibility_for_representation_by_pattern, specialization_by_class, representation_by_pattern, functional_mapping, representation_by_pattern_by_class, usage_of_representation_by_pattern_by_class, responsibility_for_representation_by_pattern_by_class))
SUBTYPE OF(mapping, binary_tuple);
end_1_cardinality	:	OPTIONAL cardinality;
end_2_cardinality	:	OPTIONAL cardinality;
graph_of_mapping	:	binary_relation;
END_ENTITY;
(*
Attribute definitions:
end_1_cardinality	:	The maximum and minimum cardinality for the first attribute of the <b>class_of_relationship</b>.
If no cardinality is specified, then there is no constraint on the cardinality.
end_2_cardinality	:	The maximum and minimum cardinality for the second attribute in the <b>class_of_relationship</b>.
If no cardinality is specified then there is no constraint on the cardinality.
cardinality
A <b>cardinality</b> is a <b>number_range</b> that is the allowed number of times a member of the domain in the <b>mapping</b> can play a particular role in a <b>relation</b> that is the graph of the <b>mapping</b>.
EXAMPLE	A minimum of 1 and a maximum of 1 means that there is exactly one <b>relationship</b> or <b>multidimensional_object</b> of this type for each object.
EXPRESS specification:
*)
ENTITY cardinality
SUBTYPE OF(number_range);
END_ENTITY;
(*
mapping
A <b>tuple</b> that defines a mapping between two <b>thing</b>s where there is a <b>relation</b> that is the graph of the <b>mapping</b>.
EXPRESS specification:
*)
ENTITY mapping
SUPERTYPE OF (ONEOF(binary_mapping, n_ary_mapping))
SUBTYPE OF(tuple);
graph_of_mappng	:	relation;
mapped_classes	:	tuple;
END_ENTITY;
(*
n_ary_mapping
A <b>mapping</b> between more than two <b>things</b> where there is an <b>n_ary_relation</b> that is the graph for the <b>n_ary_mapping</b>.

NOTE	The <b>cardinality</b> of the mapping for each place can be specified.
EXPRESS specification:
*)
ENTITY n_ary_mapping
SUBTYPE OF(mapping, n_ary_tuple);
cardinalities	:	OPTIONAL LIST [1:?] OF cardinality;
graph_of_mapping	:	n_ary_relation;
END_ENTITY;
(*
Attribute definitions:
cardinalities	:	The list of cardinalities that apply to the roles.

If no cardinality is specified, then there are no constraints on the cardinality. If cardinality is specified, then it must be specified for all roles.
Section For Page 7
Description of Section For Page 7

Figure D.7 - META_MODEL EXPRESS-G diagram 7 of 12
binary_relation
A <b>relation</b> that has two places and whose members are instances of <b>binary_tuple</b>.
EXPRESS specification:
*)
ENTITY binary_relation
SUBTYPE OF(relation);
END_ENTITY;
(*
binary_relation_with_signature
A <b>relation</b> that has two places with the <b>role</b> for each place specified.
NOTE    The <b>role</b> may be repeated from a supertype.
EXAMPLE	Married is a <b>relation</b> where role_1 is husband, and role_2 is wife.
EXPRESS specification:
*)
ENTITY binary_relation_with_signature
SUBTYPE OF(binary_relation);
role_1	:	role;
role_2	:	role;
END_ENTITY;
(*
Attribute definitions:
role_1	:	the specification of the first place role for the <b>binary relationship with signature</b>.
role_2	:	the specification of the <b>role</b> of the second place in the <b>binary relation with signature</b>.
n_ary_relation
A <b>relation</b> that has more than two places and whose members are instances of <b>n_ary_tuple</b>.
EXPRESS specification:
*)
ENTITY n_ary_relation
SUBTYPE OF(relation);
END_ENTITY;
(*
n_ary_relation_with_signature
A <b>relation</b> whose members are instances of <b>n_ary_tuple</b> where the role played by each position in the classified <b>tuple</b> is specified at the same position in the <b>roles</b> attribute. Constant values that apply to any position in <b>roles</b> are specified in the same position in the <b>parameters</b> attribute. The cardinalities for the roles attribute are specified by the same position in the cardinalities attribute.
EXAMPLE	The definition of the input to a function y = a + bx to convert Celsius to Fahrenheit with roles <b>a, b, x</b> defining the input <b>n_ary_relation</b>, and parameters <b>32,1.8</b> with parameter_position list <b>1,2</b> is an example of a <b>n_ary_relation</b>.
EXPRESS specification:
*)
ENTITY n_ary_relation_with_signature
SUBTYPE OF(n_ary_relation);
optional_element	:	LIST [1:?] OF BOOLEAN;
parameters	:	OPTIONAL LIST [1:?] OF thing;
parameter_position	:	OPTIONAL LIST [1:?] OF INTEGER;
roles	:	LIST [1:?] OF role;
END_ENTITY;
(*
Attribute definitions:
optional_element	:	Determines if the element in this list position in a <b>multidimensional_object</b> that is a member of this <b>class_of_multidimensional_object</b> is optional (or mandatory). The value TRUE means it is optional, the value FALSE means it is mandatory.
parameters	:	The list of parameters associated with the roles.
parameter_position	:	The list of positions relative to the roles for the list of parameters.

NOTE	This attribute is necessary because the EXPRESS LIST datatype does not allow empty positions. The list of positions provides the mapping to the role positions.
roles	:	The roles associated with the classified <b>multidimensional_object</b>.
relation
A <b>class</b> whose members are instances of <b>tuple</b>.
EXPRESS specification:
*)
ENTITY relation
ABSTRACT
SUPERTYPE OF (ONEOF(binary_relation, n_ary_relation) ANDOR structuring_relation)
SUBTYPE OF(class_of_abstract_object);
END_ENTITY;
(*
role
A <b>role</b> is a <b>class</b> that specifies the role for a place in a <b>relation</b> or the way an <b>individual</b> participates in an <b>activity</b>.

EXPRESS specification:
*)
ENTITY role
SUBTYPE OF(well_founded_class);
END_ENTITY;
(*
Section For Page 8
Description of Section For Page 8

Figure D.8 - META_MODEL EXPRESS-G diagram 8 of 12
difference_of_set_of_class
A <b>functional_graph_element</b> where the membership of the result <b>class</b> is the difference between the membership of the union of the classes that are members of the <b>enumerated_set_of_class</b> and their intersection.
NOTE	When the <b>enumerated_set_of_class</b> consists of a <b>class</b> and another <b>class</b> that is a subclass of the first class, then the difference is the complement of the subclass.
EXAMPLE	The difference of the <b>enumerated_set_of_class</b> {{A,B,C},{B,C,D},{C,D,E}} is {A,B,D,E}.
EXPRESS specification:
*)
ENTITY difference_of_set_of_class
SUBTYPE OF(functional_graph_element);
SELF\functional_graph_element.input	:	enumerated_set_of_class;
SELF\functional_graph_element.result	:	class;
END_ENTITY;
(*
Attribute definitions:
input	:	The <b>enumerated_set_of_class</b> that is the domain of the difference function.
result	:	The <b>class</b> that is the range of the difference function.
enumerated_set_of_class
A <b>class_of_class</b> that is also an <b>enuerated_class</b>.
NOTE    Enumerated means that the full set of members is specified.
EXAMPLE	{Plastic, 1.2kg, frame} is an <b>enumerated_set_of_class</b>. More generally {{A,B,C},{B,C,D},{C,D,E}} is an <b>enumerated_set_of_class</b>.
EXPRESS specification:
*)
ENTITY enumerated_set_of_class
SUBTYPE OF(class_of_class, enumerated_class);
END_ENTITY;
(*
functional_graph_element
A <b>tuple</b> where the input gave the result as determined by the classifying <b>functional_mapping</b>.
EXAMPLE The mapping of <b>5, 3</b> to 2, classified by the minus function is an example of <b>functional_mapping</b>.
EXPRESS specification:
*)
ENTITY functional_graph_element
SUPERTYPE OF (ONEOF(difference_of_set_of_class, union_of_set_of_class, intersection_of_set_of_class))
SUBTYPE OF(binary_tuple);
input	:	thing;
result	:	thing;
END_ENTITY;
(*
Attribute definitions:
input	:	The input to the mapping.
result	:	The result of the application of the function to the input.
functional_mapping
A <b>mapping</b> that is a many-to-one mapping. A <b>functional_mapping</b> is a function (mathematical sense).
NOTE 1	This entity type would naturally have the name of function, but this is an EXPRESS reserved word.
NOTE 2	The significance of a function being a many to one mapping is that the same answer is always obtained. So, for example, 5 - 3 always gives 2. Note that the minus function on two other arguments can also give 2.
NOTE 3	When there are several arguments to a function, then these are presented in a <b>n_ary_tuple</b>.
EXAMPLE	Minus is an example of <b>functional_mapping</b>.
EXPRESS specification:
*)
ENTITY functional_mapping
SUBTYPE OF(binary_mapping);
codomain	:	class_or_class_with_structure;
domain	:	class_or_class_with_structure;
END_ENTITY;
(*
Attribute definitions:
codomain	:	The result of applying the function to the domain.
domain	:	The set of things to which the function is applied.
intersection_of_set_of_class
A <b>functional_graph_element</b> where the result <b>class</b> consists of those members of the members of the <b>enumerated_set_of_class</b> that are common to each class.
EXAMPLE	The intersection of the <b>enumerated_set_of_class</b> {{A,B,C},{B,C,D},{C,D,E}} is {C}.
EXPRESS specification:
*)
ENTITY intersection_of_set_of_class
SUBTYPE OF(functional_graph_element);
SELF\functional_graph_element.input	:	enumerated_set_of_class;
SELF\functional_graph_element.result	:	class;
END_ENTITY;
(*
Attribute definitions:
input	:	The <b>enumerated_set_of_class</b> whose members are intersected.
result	:	The <b>class</b> that represents the intersection of the members of the <b>enumerated_set_of_class</b>.
isomorphic_functional_mapping
A <b>functional_mapping</b> that is isomorphic.
EXAMPLE	The natural logarithm function is an <b>isomorphic_functional_mapping</b>.
EXPRESS specification:
*)
ENTITY isomorphic_functional_mapping
SUBTYPE OF(functional_mapping);
END_ENTITY;
(*
union_of_set_of_class
A <b>functional_graph_element</b> where the membership of the result <b>class</b> is the union of the members of the <b>enumerated_set_of_class</b> classes.
EXAMPLE The union of the <b>enumerated_set_of_class</b> {{A,B,C},{B,C,D},{C,D,E}} is {A,B,C,D,E}.
EXPRESS specification:
*)
ENTITY union_of_set_of_class
SUBTYPE OF(functional_graph_element);
SELF\functional_graph_element.input	:	enumerated_set_of_class;
SELF\functional_graph_element.result	:	class;
END_ENTITY;
(*
Attribute definitions:
input	:	The <b>enumerated_set_of_class</b> that is the domain of the union function.
result	:	The <b>class</b> that is the range of the union function.
Section For Page 9
Description of Section For Page 9

Figure D.9 - META_MODEL EXPRESS-G diagram 9 of 12
definition
A <b>definition</b> is a <b>representation_of_thing</b> where the <b>class</b> is defined by the sign <b>possible_individual</b>.
EXAMPLE	The <b>relationship</b> between this copy of the preceding sentence and the heading before that is a <b>definition</b>.
EXPRESS specification:
*)
ENTITY definition
SUBTYPE OF(representation_of_thing);
SELF\representation_of_thing.represented	:	class;
END_ENTITY;
(*
Attribute definitions:
represented	:	the <b>class</b> that is defined in the <b>definition</b>.
description
A <b>description</b> is a <b>representation_of_thing</b> where the <b>possible_individual</b> describes the <b>thing</b>.
EXAMPLE	A copy of the Piping and Instrumentation Diagram for Crude Distillation Unit 1 at refinery X has a <b>description</b> relationship with the plant.
EXPRESS specification:
*)
ENTITY description
SUBTYPE OF(representation_of_thing);
END_ENTITY;
(*
identification
An <b>identification</b> is a <b>representation_of_thing</b> where the <b>possible_individual</b> is an identifier for the <b>thing</b> identified.
EXAMPLE 1	The relationship between the text "P101" on a printed copy of a pump data sheet and the applicable <b>functional_physical_object</b> is an example of <b>identification</b>.
EXAMPLE 2	The relationship between a name tag and an employee wearing it is an example of <b>identification</b>.
EXPRESS specification:
*)
ENTITY identification
SUBTYPE OF(representation_of_thing);
END_ENTITY;
(*
representation_of_thing
A <b>representation_of_thing</b> is a <b>relationship</b> where a <b>possible_individual</b> is a sign for a <b>thing</b>.
EXAMPLE	The relationship between a nameplate with its serial number and other data, and a particular pressure vessel (<b>materialized_physical_object</b>) is an example of <b>representation_of_thing</b> that is an <b>identification</b>.
NOTE	In general it will be <b>class_of_representation_of_thing</b> that will be of interest, rather than each <b>representation_of_thing</b>. However, <b>representation_of_thing</b> will be of interest when individual copies of documents are managed and controlled.
EXPRESS specification:
*)
ENTITY representation_of_thing
SUBTYPE OF(binary_tuple);
represented	:	thing;
information_carrier	:	extent;
END_ENTITY;
(*
Attribute definitions:
represented	:	the <b>thing</b> that is represented in the <b>representation_of_thing</b>.
responsibility_for_representation
A <b>responsibility_for_representation</b> is a <b>relationship</b> where the controller <b>possible_individual</b> administers the controlled <b>representation_of_thing</b>.
EXAMPLE	The responsibility for the administration of this standard lies with ISO.
EXPRESS specification:
*)
ENTITY responsibility_for_representation
SUBTYPE OF(binary_tuple);
controlled	:	representation_of_thing;
controller	:	extent;
END_ENTITY;
(*
Attribute definitions:
controlled	:	the <b>representation_of_thing</b> controlled in the <b>responsibility_for_representation</b>.
usage_of_representation
A <b>usage_of_representation</b> is a <b>relationship</b> where the <b>representation_of_thing</b> is used by the <b>possible_individual</b>. Usage does not imply responsibility.
EXAMPLE	The sign "P101" is used by the XYZ company to represent a particular pump in a design.
EXPRESS specification:
*)
ENTITY usage_of_representation
SUBTYPE OF(binary_tuple);
used	:	representation_of_thing;
user	:	extent;
END_ENTITY;
(*
Attribute definitions:
used	:	the <b>representation_of_thing</b> that is used by some user or user group.
Section For Page 10
Description of Section For Page 10

Figure D.10 - META_MODEL EXPRESS-G diagram 10 of 12
definition_by_pattern
A <b>representation_of_thing_by_class</b> where the pattern is a definition of the represented <b>class</b>.
EXAMPLE	That the pattern 'something that moves liquid' defines <i>pump</i> in English can be represented by an instance of <b>definition_by_class</b>.
EXPRESS specification:
*)
ENTITY definition_by_pattern
SUBTYPE OF(representation_by_pattern);
SELF\representation_by_pattern.represented	:	class;
END_ENTITY;
(*
Attribute definitions:
represented	:	The <b>class</b> that is defined by the members of the referenced <b>class_of_information_representation</b>.
description_by_pattern
A <b>representation_of_thing_by_class</b> where the pattern is a description of the represented <b>thing</b>.
EXAMPLE	That the pattern 'this is an old bilge pump' describes a particular pump is a <b>description_by_class</b>.
EXPRESS specification:
*)
ENTITY description_by_pattern
SUBTYPE OF(representation_by_pattern);
END_ENTITY;
(*
identification_by_pattern
A <b>representation_of_thing_by_class</b> where the pattern is used to identify the represented <b>thing</b>.
EXAMPLE	That the pattern 'AC-1234' identifies a particular pump is an example of <b>identification_by_class</b>.
EXPRESS specification:
*)
ENTITY identification_by_pattern
SUBTYPE OF(representation_by_pattern);
END_ENTITY;
(*
representation_by_pattern
A <b>mapping</b> where all members of the pattern <b>class_of_information_representation</b> represent the <b>thing</b>.
EXAMPLE	That the pattern 'London' represents the capital of the United Kingdom is a <b>representation_of_thing_by_class</b>.
EXPRESS specification:
*)
ENTITY representation_by_pattern
SUBTYPE OF(binary_mapping);
pattern	:	information_content;
represented	:	thing;
END_ENTITY;
(*
Attribute definitions:
pattern	:	the <b>class_of_information_representation</b> whose members represent the referenced <b>thing</b>
represented	:	The <b>thing</b> that is represented by the members of the referenced <b>class_of_information_representation</b>.
responsibility_for_representation_by_pattern
A <b>class_of_responsibility_for_representation</b> is a <b>class_of_relationship</b> whose members are members of <b>responsibility_for_representation</b> where a <b>possible_individual</b> (usually an organization) deems that members of the pattern can be used as representations of the represented thing.
EXAMPLE	The link between the identification of pump #1234 and the XYZ Corporation, where the XYZ Corporation controls this identification, can be represented by an instance of  <b>class_of_responsibility_for_representation</b>.
EXPRESS specification:
*)
ENTITY responsibility_for_representation_by_pattern
SUBTYPE OF(binary_mapping);
controlled	:	representation_by_pattern;
controller	:	extent;
END_ENTITY;
(*
Attribute definitions:
controlled	:	The <b>class_of_representation_of_thing</b> that is controlled by the referenced <b>possible_individual</b>.
usage_of_representation_by_pattern
A <b>mapping</b> where whose members are instances of <b>usage_of_representation</b> where a <b>possible_individual</b> (usually an organization) reads or otherwise uses members of the pattern as a representation of the represented thing.
EXAMPLE	The link between the identification of pump #1234 and contractor ABC Ltd, where ABC Ltd uses this identification can be represented by a class of <b>class_of_usage_of_representation</b>.
EXPRESS specification:
*)
ENTITY usage_of_representation_by_pattern
SUBTYPE OF(binary_mapping);
used	:	representation_by_pattern;
used_by	:	extent;
END_ENTITY;
(*
Attribute definitions:
used	:	The <b>class_of_representation_of_thing</b> that is used by the referenced <b>possible_individual</b>.
Section For Page 11
Description of Section For Page 11

Figure D.11 - META_MODEL EXPRESS-G diagram 11 of 12
EXPRESS_Boolean
An <b>EXPRESS_Boolean</b> is a <b>class_of_EXPRESS_information_representation</b> that represents a Boolean value as defined in ISO 10303-11:1994, 8.1.5.
NOTE	The UNIQUE rule ensures that any value is only held once.
EXPRESS specification:
*)
ENTITY EXPRESS_Boolean
SUBTYPE OF(EXPRESS_information_content);
content	:	BOOLEAN;
UNIQUE
rule_1	:	content;
END_ENTITY;
(*
Attribute definitions:
content	:	The value of the <b>EXPRESS_Boolean</b>
EXPRESS_binary
An <b>EXPRESS_binary</b> is a <b>class_of_EXPRESS_information_representation</b> that represents a binary value as defined in ISO 10303-11:1994, 8.1.7.
NOTE	The UNIQUE rule ensures that any value is only held once.
EXPRESS specification:
*)
ENTITY EXPRESS_binary
SUBTYPE OF(EXPRESS_information_content);
content	:	BINARY;
UNIQUE
rule_1	:	content;
END_ENTITY;
(*
Attribute definitions:
content	:	The value of the <b>EXPRESS_binary</b>
EXPRESS_information_content
A <b>class_of_EXPRESS_information_representation</b> is a <b>class_of_information_representation</b> that is defined by ISO 10303-11.
EXPRESS specification:
*)
ENTITY EXPRESS_information_content
ABSTRACT
SUPERTYPE OF (ONEOF(EXPRESS_string, EXPRESS_integer, EXPRESS_real, EXPRESS_logical, EXPRESS_Boolean, EXPRESS_binary))
SUBTYPE OF(information_content);
END_ENTITY;
(*
EXPRESS_integer
An <b>EXPRESS_integer</b> is a <b>class_of_EXPRESS_information_representation</b> that represents an integer number as defined in ISO 10303-11:1994, 8.1.3.
NOTE	The UNIQUE rule ensures that any value is only held once.
EXPRESS specification:
*)
ENTITY EXPRESS_integer
SUBTYPE OF(EXPRESS_information_content);
content	:	INTEGER;
UNIQUE
rule_1	:	content;
END_ENTITY;
(*
Attribute definitions:
content	:	The value of the <b>EXPRESS_integer</b>
EXPRESS_logical
An <b>EXPRESS_logical</b> is a <b>class_of_EXPRESS_information_representation</b> that represents a logical value as defined in ISO 10303-11:1994, 8.1.4.
NOTE	The UNIQUE rule ensures that any value is only held once.
EXPRESS specification:
*)
ENTITY EXPRESS_logical
SUBTYPE OF(EXPRESS_information_content);
content	:	LOGICAL;
UNIQUE
rule_1	:	content;
END_ENTITY;
(*
Attribute definitions:
content	:	The value of the <b>EXPRESS_logical</b>
EXPRESS_real
An <b>EXPRESS_real</b> is a <b>class_of_EXPRESS_information_representation</b> that represents a real number as defined in ISO 10303-11:1994, 8.1.2.
NOTE	The UNIQUE rule ensures that any value is only held once.
EXPRESS specification:
*)
ENTITY EXPRESS_real
SUBTYPE OF(EXPRESS_information_content);
content	:	REAL;
UNIQUE
rule_1	:	content;
END_ENTITY;
(*
Attribute definitions:
content	:	The value of the <b>EXPRESS_real</b>
EXPRESS_string
An <b>EXPRESS_string</b> is a <b>class_of_EXPRESS_information_representation</b> that represents a string as defined in ISO 10303-11:1994, 8.1.6.
NOTE	The UNIQUE rule ensures that any value is only held once.
EXPRESS specification:
*)
ENTITY EXPRESS_string
SUBTYPE OF(EXPRESS_information_content);
content	:	STRING;
UNIQUE
rule_1	:	content;
END_ENTITY;
(*
Attribute definitions:
content	:	The value of the <b>EXPRESS_string</b>
information_content
A <b>class_of_information_representation</b> is a  <b>class_of_arranged_individual</b> that defines a pattern that represents information.
EXAMPLE	The texts formed with the pattern of characters 's' concatenated with 'u' concatenated with 'n' are members of the 'sun' <b>class_of_information_representation</b>.
EXPRESS specification:
*)
ENTITY information_content
SUPERTYPE OF (ONEOF(EXPRESS_information_content, representation_of_Gregorian_date_and_UTC_time));
END_ENTITY;
(*
representation_of_Gregorian_date_and_UTC_time
A <b>representation_of_Gregorian_date_and_UTC_time</b> is a <b>class_of_information_representation</b> whose members are representations of time using the UTC system of time identification as specified in ISO 8601:2000 together with the Gregorian system for representing dates.
All times shall be represented using UTC representation of time. Dates shall follow the Gregorian calendar.
NOTE	Coordinated Universal Time (UTC) is the basis for legal time worldwide and follows TAI (see below) exactly except for an integral number of seconds, presently 32. These leap seconds are inserted on the advice of the International Earth Rotation Service (IERS) (http://hpiers.obspm.fr) to ensure that, on average over the years, the Sun is overhead within 0.9 seconds of 12:00:00 UTC on the meridian of Greenwich. UTC is thus the modern successor of Greenwich Mean Time, GMT, which was used when the unit of time was the mean solar day. International Atomic Time (TAI) is calculated by the BIPM from the readings of more than 200 atomic clocks located in metrology institutes and observatories in more than 30 countries around the world. TAI is made available every month in the BIPM Circular T (ftp://62.161.69.5/pub/tai/publication). It is estimated that TAI does not lose or gain with respect to an imaginary perfect clock by more than about one tenth of a microsecond (0.0000001 second) per year.
EXPRESS specification:
*)
ENTITY representation_of_Gregorian_date_and_UTC_time
SUBTYPE OF(information_content);
year	:	INTEGER;
month	:	OPTIONAL INTEGER;
day	:	OPTIONAL INTEGER;
hour	:	OPTIONAL INTEGER;
minute	:	OPTIONAL INTEGER;
second	:	OPTIONAL REAL;
WHERE
valid_month	:	{1<= month <= 12};
valid_day	:	{1<= day <= 31};
valid_hour	:	{0<= hour <= 23};
valid_minute	:	{0<= minute <= 59};
valid_second	:	{0.0 <= second < 61.0};
END_ENTITY;
(*
Attribute definitions:
year	:	The year as defined in the Gregorian calendar. The year shall be completely
and explicitly specified using as many digits as necessary to unambiguously convey the century and year
within the century. Truncated year numbers shall not be used.
month	:	The position of the specified month in a year as defined in ISO 8601:2000, 5.2.1; the value shall be between 1 and 12 inclusive.
day	:	The value of day as defined in ISO 8601:2000, 5.2.1; the value shall be between 1 and 31 inclusive.
hour	:	the hour element of a specified time on a 24 hour clock; the value shall be an integer between 0 and 23 inclusive. Midnight shall be represented by the value zero.

NOTE	Although ISO 8601 allows two representations for midnight, 0000 and 2400, this part of ISO 15926 restricts the representation to 0000.

minute	:	the minute element of a specified time; the value shall be between 0 and 59 inclusive.
second	:	the second element of a specified time; the value shall be from 0.0 and up to but not including 61.0.

NOTE	A value of 61.0 allows for leap seconds. The mean solar time is determined by the rotation of the earth. Leap seconds are added or subtracted as required, usually in the middle or at the end of a year, and ensure that the legal time does not differ from the non-uniform mean solar time by more than one second, in spite of the variations of the earth's rotation.

Formal Propositions:
valid_month	month shall be between 1 and 12 inclusive
valid_day	day shall be between 1 and 31 inclusive
valid_hour	hour shall be between 0 and 23 inclusive
valid_minute	minute shall be between 0 and 59 inclusive
valid_second	second shall be from 0.0 and up to but not including 61.0
Section For Page 12
Description of Section For Page 12

Figure D.12 - META_MODEL EXPRESS-G diagram 12 of 12
class_of_class_of_definition
A <b>representation by pattern by class</b> whose members are members of <b>definition by pattern</b>.
EXAMPLE	Normative, is a <b>definition by pattern by class</b>.
EXPRESS specification:
*)
ENTITY class_of_class_of_definition
SUBTYPE OF(representation_by_pattern_by_class);
END_ENTITY;
(*
class_of_information_content
A <b>class_of_class_of_information_representation</b> is a <b>class_of_class_of_individual</b> that classifies information representation classes.
EXAMPLE	Integer Octal is a <b>class_of_class_of_information_representation</b> whose members are all the information representation classes that correspond to Octal formatted integers.
EXPRESS specification:
*)
ENTITY class_of_information_content
SUPERTYPE OF (ONEOF(representation_form, language, document_definition));
END_ENTITY;
(*
description_by_pattern_by_class
A <b>representation by pattern by class</b> whose members are members of <b>description by pattern</b>.
EXAMPLE	Service description is a <b>description by pattern by class</b>.
EXPRESS specification:
*)
ENTITY description_by_pattern_by_class
SUBTYPE OF(representation_by_pattern_by_class);
END_ENTITY;
(*
document_definition
A <b>document_definition</b> is a <b>class_of_class_of_information_representation</b> that defines the content and/or structure of documents.
EXAMPLE	XYZ Corp. Material Safety Data Sheet is a <b>document_definition</b>.
EXPRESS specification:
*)
ENTITY document_definition
SUBTYPE OF(class_of_information_content);
END_ENTITY;
(*
identification_by_pattern_by_class
A <b>representation by pattern by class</b> whose members are members of <b>identification by pattern</b>.
<p>
EXAMPLE	The link between the <b>class</b> 'family of manufactured parts' and the <b>representation_form</b> 'ISO 13584 Basic Semantic Unit', where part families can be identified using ISO 13584, can be represented by an instance of <b>identification by pattern by class</b>.
EXPRESS specification:
*)
ENTITY identification_by_pattern_by_class
SUBTYPE OF(representation_by_pattern_by_class);
END_ENTITY;
(*
language
A <b>language</b> is a <b>class_of_class_of_information_representation</b> whose members are all the information representations made in the language.
EXAMPLE	English, French, C++ and Java can be represented by instances of <b>language</b>.
EXPRESS specification:
*)
ENTITY language
SUBTYPE OF(class_of_information_content);
END_ENTITY;
(*
representation_by_pattern_by_class
A <b>class_of_class_of_relationship</b> whose members are instances of <b>class_of_representation_of_thing</b>.
EXAMPLE	The link where members of the class 'document' can be represented by patterns of the class 'XML' is a <b>class_of_class_of_representation</b>.
EXPRESS specification:
*)
ENTITY representation_by_pattern_by_class
SUBTYPE OF(class_of_relation, binary_mapping);
pattern_by_class	:	class_of_information_content;
represented_by_class	:	class;
END_ENTITY;
(*
Attribute definitions:
pattern_by_class	:	The <b>class_of_class_of_information_representation</b> whose members can represent members of the referenced <b>class</b>.
represented_by_class	:	The <b>class</b> whose members can be represented by members of the referenced <b>class_of_class_of_information_representation</b>.
representation_form
A <b>representation_form</b> is a  <b>class_of_class_of_information_representation</b> that distinguishes the form of representation.
EXAMPLE	Hexadecimal, text, script, symbol, picture, diagram, semaphore, Morse code, music score, MIDI file format, and XML can each be represented by instances of <b>representation_form</b>.
EXPRESS specification:
*)
ENTITY representation_form
SUBTYPE OF(class_of_information_content);
END_ENTITY;
(*
responsibility_for_representation_by_pattern_by_class
A <b>class_of_class_of_responsibility_for_representation</b> is a <b>class_of_class_of_relationship</b> whose members are members of <b>class_of_responsibility_for_representation</b> linking the controller to a set of representations.
EXAMPLE	The link between Weir and the identification set between Weir pumps and Weir serial numbers where the  identifications are defined by Weir can be represented by an instance of <b>class_of_class_of_responsibility_for_representation</b>.
EXPRESS specification:
*)
ENTITY responsibility_for_representation_by_pattern_by_class
SUBTYPE OF(class_of_relation, binary_mapping);
controlled	:	representation_by_pattern_by_class;
controller	:	extent;
END_ENTITY;
(*
Attribute definitions:
controlled	:	The <b>class_of_class_of_representation</b> that is controlled by the referenced <b>possible_individual</b>.
usage_of_representation_by_pattern_by_class
A <b>class_of_class_of_usage_of_representation</b> is a <b>class_of_class_of_relationship</b> whose members are members of <b>class_of_usage_of_representation</b> linking the user to a set of representations.
EXAMPLE	The link between a user company and the identification set between Weir pumps and Weir serial numbers where the user company uses the Weir identifiers can be represented by an instance of <b>class_of_class_of_usage_of_representation</b>.
EXPRESS specification:
*)
ENTITY usage_of_representation_by_pattern_by_class
SUBTYPE OF(class_of_relation, binary_mapping);
used	:	representation_by_pattern_by_class;
user	:	extent;
END_ENTITY;
(*
Attribute definitions:
used	:	The <b>class_of_class_of_representation</b> that is used by the referenced <b>possible_individual</b>.
*)
END_SCHEMA;