ISO 10303-50:2002/Cor 2:2014
(Corrigendum)Industrial automation systems and integration - Product data representation and exchange - Part 50: Integrated generic resource: Mathematical constructs - Technical Corrigendum 2
Industrial automation systems and integration - Product data representation and exchange - Part 50: Integrated generic resource: Mathematical constructs - Technical Corrigendum 2
Systèmes d'automatisation industrielle et intégration — Représentation et échange de données de produits — Partie 50: Ressources génériques intégrées: Constructions mathématiques — Rectificatif technique 2
General Information
- Status
- Published
- Publication Date
- 01-Dec-2014
- Technical Committee
- ISO/TC 184/SC 4 - Industrial data
- Drafting Committee
- ISO/TC 184/SC 4/WG 12 - STEP product modelling and resources
- Current Stage
- 6060 - International Standard published
- Start Date
- 02-Dec-2014
- Due Date
- 04-Oct-2016
- Completion Date
- 04-Oct-2016
Relations
- Effective Date
- 26-Nov-2021
Overview
ISO 10303-50:2002/Cor 2:2014 is a Technical Corrigendum to Part 50 of the ISO 10303 (STEP) family: Integrated generic resource - Mathematical constructs. Published in 2014 by ISO/TC 184/SC 4, this corrigendum corrects EXPRESS language errors, updates schema identifiers, and refines EXPRESS entity and function definitions. It is intended to be used together with ISO 10303-50:2001/Cor.1:2010 and addresses issues reported via SEDS and Bugzilla (e.g., SEDS 1299; Bug 979, 1109, 2574, 4114, 5046, 5053, 5059).
Key Topics
- EXPRESS schema corrections: Fixes to schema name casing (iso13584_*), and updates to Annex B document and schema object identifiers for unambiguous identification in open systems.
- Entity and type updates:
- Replacement of the tuple_space type with an extensible SELECT-based definition to support product-space extensions.
- Addition of complex_number_literal_polar, enabling complex numbers defined by modulus and argument (with derived real/imag parts and validation rules).
- Revised extended_tuple_space entity (correct attribute types and semantics).
- Corrections to linearized_table_function and symmetric_matrix EXPRESS definitions (data-type and WHERE-clause fixes).
- Function fixes:
- Reworked derive_function_range, introducing local variables and correcting type assignments across many maths_function subtypes.
- Corrected make_extended_tuple_space return/value types and argument documentation.
- Fixed stripped_typeof to handle schema prefixes and short strings safely.
- Documentation and diagrams: Updated Annex D EXPRESS-G diagrams (e.g., Figures D.3, D.5) to reflect new entities and relationships.
Applications
- Implementers of STEP (ISO 10303) schemas: CAD/PLM developers, geometry and mathematical-function library authors who need correct EXPRESS semantics.
- Data exchange and integration engineers: ensuring robust product data representation and numeric/mathematical construct handling across systems.
- EXPRESS tool and parser vendors: required changes to support corrected type definitions, function behavior, and schema identifiers.
- Standards managers and systems integrators: maintain consistent and interoperable STEP profiles and schema versions.
Related Standards
- ISO 10303-1 (Overview and fundamental principles)
- ISO 10303-11 (EXPRESS language reference)
- ISO 10303-41, ISO 10303-42 (Integrated generic resources)
- ISO 13584-20 (Parts Library - logical model of expressions)
- ISO/IEC 8824-1 (ASN.1 - referenced for object identifier semantics)
This corrigendum is essential for anyone implementing or validating the mathematical constructs of STEP (ISO 10303-50), improving data type correctness, schema identifiers, and EXPRESS model interoperability. Keywords: ISO 10303-50, STEP, EXPRESS, mathematical constructs, technical corrigendum, product data representation, data exchange.
Frequently Asked Questions
ISO 10303-50:2002/Cor 2:2014 is a standard published by the International Organization for Standardization (ISO). Its full title is "Industrial automation systems and integration - Product data representation and exchange - Part 50: Integrated generic resource: Mathematical constructs - Technical Corrigendum 2". This standard covers: Industrial automation systems and integration - Product data representation and exchange - Part 50: Integrated generic resource: Mathematical constructs - Technical Corrigendum 2
Industrial automation systems and integration - Product data representation and exchange - Part 50: Integrated generic resource: Mathematical constructs - Technical Corrigendum 2
ISO 10303-50:2002/Cor 2:2014 is classified under the following ICS (International Classification for Standards) categories: 25.040.40 - Industrial process measurement and control. The ICS classification helps identify the subject area and facilitates finding related standards.
ISO 10303-50:2002/Cor 2:2014 has the following relationships with other standards: It is inter standard links to ISO 10303-50:2002. Understanding these relationships helps ensure you are using the most current and applicable version of the standard.
You can purchase ISO 10303-50:2002/Cor 2:2014 directly from iTeh Standards. The document is available in PDF format and is delivered instantly after payment. Add the standard to your cart and complete the secure checkout process. iTeh Standards is an authorized distributor of ISO standards.
Standards Content (Sample)
INTERNATIONAL STANDARD ISO 10303-50:2001
TECHNICAL CORRIGENDUM 2
Published 2014-07-01
INTERNATIONAL ORGANIZATION FOR STANDARDIZATION • МЕЖДУНАРОДНАЯ ОРГАНИЗАЦИЯ ПО СТАНДАРТИЗАЦИИ • ORGANISATION INTERNATIONALE DE NORMALISATION
Industrial automation systems and integration —
Product data representation and exchange —
Part 50:
Integrated generic resource:
Mathematical constructs
TECHNICAL CORRIGENDUM 2
Systèmes d’ automatisation industrielle et intégration – Représentation et échange de données de produits
- Partie 50: Ressources génériques intégrées: Constructions mathematiques
RECTIFICATIF TECHNIQUE 2
Technical Corrigendum 2 to International Standard ISO 10303-50:2001 was prepared by Technical Committee ISO/TC 184,
Automation systems and integration, Subcommittee SC 4, Industrial data.
This Technical Corrigendum is intended to be used in conjunction with ISO 10303-50:2001/Cor.1:2010. Included SEDS reports: SEDS
1299. Included Bugzilla reports: Bug 979, Bug 1109, Bug 2574, Bug 4114, Bug 5046, Bug 5053, Bug 5059
ICS 25.040.40 Ref. No. ISO 10303-50:2004/Cor.2:2014(E)
© ISO 2014 – All rights reserved
Published in Switzerland
ISO 10303-50:2001/Cor.2:2014(E)
Introduction
This Technical Corrigendum applies to ISO 10303-50:2001 as modified by TC1.
The purpose of the modifications to the text of ISO 10303-50:2001 is to correct EXPRESS errors relating
to incorrect data types in EXPRESS type, entity and function definitions, and to update the document
identifiers in annex B.
ii °c ISO 2014 — All rights reserved
ISO 10303-50:2001/Cor.2:2014(E)
Modifications to the text of ISO 10303-50:2001
Delete the current list of normative references and replace with the following undated references and
move the reference to ISO//IEC 8824-1 to the bibligraphy:
ISO 10303-1, Industrial automation systems and integration - Product data representation and exchange
- Part 1 : Overview and fundamental principles.
ISO 10303-11, Industrial automation systems and integration - Product data representation and ex-
change - Part 11 : Description methods: The EXPRESS language reference manual.
ISO 10303-41, Industrial automation systems and integration — Product data representation and ex-
change — Part 41: Integrated generic resource: Fundamentals of product description and support.
ISO 10303-42, Industrial automation systems and integration — Product data representation and ex-
change — Part 42: Integrated generic resource: Geometric and topological representation.
ISO 13584-20, Industrial automation systems and integration — Parts Library — Part 20: Logical re-
source: Logical model of expressions.
Page 6, 4 Mathematical functions, EXPRESS specification
In the EXPRESS references to the schemas from ISO 13584-20 the wrong case is used in the schema
names. Delete the line:
REFERENCE FROM ISO13584_generic_expressions_schema – ISO 13584-20
And replace with:
REFERENCE FROM iso13584_generic_expressions_schema -- ISO 13584-20
Delete the line:
REFERENCE FROM ISO13584_expressions_schema – ISO 13584-20
And replace with:
REFERENCE FROM iso13584_expressions_schema -- ISO 13584-20
In NOTE 1 change the schema names from ISO13584_generic_expressions_schema and ISO13584_-
expressions_schema to:
iso13584_generic_expressions_schema and
iso13584_expressions_schema.
Page 34, 4.4.27, tuple_space
This type requires extensions in other parts of ISO 10303. Delete the current EXPRESS definition of the
type tuple_space and replace with:
°c ISO 2014 — All rights reserved 1
ISO 10303-50:2001/Cor.2:2014(E)
EXPRESS specification:
)
*
TYPE tuple_space = EXTENSIBLE GENERIC_ENTITY SELECT
(product_space,
extended_tuple_space);
END_TYPE;
(
*
Page 38, 4.5.5, complex_number_literal
The definition of complex_number_literal lacks a subtype to enable the definition of complex numbers
by giving the values of modulus and argument. Immediately after clause 4.5.5 insert the following new
definition as clause 4.5.6 and re-number the existing clauses 4.5.6 to 4.5.77 as 4.5.7 to 4.5.78.
4.5.6 complex_number_literal_polar
A complex_number_literal_polar is a type of complex_number_literal defined by the values of its
modulus and argument.
EXPRESS specification:
)
*
ENTITY complex_number_literal_polar
SUBTYPE OF (complex_number_literal);
modulus : REAL;
argument : REAL;
DERIVE
SELF\complex_number_literal.real_part : REAL := modulus cos(argument);
*
SELF\complex_number_literal.imag_part : REAL := modulus sin(argument);
*
WHERE
WR1: modulus >= 0;
WR2: {0 <= argument <= 2 PI};
*
END_ENTITY;
(
*
Attribute definitions:
modulus: The value of the modulus of the complex number. This is equal to the distance from the point
representing the complex number to the origin of the complex plane.
argument: The value of the argument of the complex number. This is equal to the angle between the
line joining the point representiong the complex number to the origin and the real axis.
2 °c ISO 2014 — All rights reserved
ISO 10303-50:2001/Cor.2:2014(E)
Formal propositions:
WR1: The modulus shall not be negative.
WR2: The argument shall be between 0 and 2¼.
Page 54, 4.5.32, extended_tuple_space
This entity contains an incorrect data type for the first attribute. Delete the current EXPRESS definition
of the entity type extended_tuple_space and replace with:
EXPRESS specification:
)
*
ENTITY extended_tuple_space
SUBTYPE OF (maths_space, generic_literal);
base : tuple_space;
extender : maths_space;
WHERE
WR1: expression_is_constant(base) AND expression_is_constant(extender);
WR2: no_cyclic_space_reference(SELF, []);
WR3: extender <> the_empty_space;
END_ENTITY;
(
*
Remove the description given for the first attribute base and replace with:
The tuple_space describing the common initial component spaces of all the ordered tuples belonging to
this tuple space. When there are no ocommon initial components, the value of base will be the zero-tuple
space.
Page 73, 4.5.52, linearized_table_function
This entity contains an incomplete reference path in WR2. Delete the current EXPRESS definition of the
entity type linearized_table_function and replace with:
°c ISO 2014 — All rights reserved 3
ISO 10303-50:2001/Cor.2:2014(E)
EXPRESS specification:
)
*
ENTITY linearized_table_function
SUPERTYPE OF (ONEOF (standard_table_function,
regular_table_function,
triangular_matrix,
symmetric_matrix,
banded_matrix))
SUBTYPE OF (explicit_table_function, unary_generic_expression);
SELF\unary_generic_expression.operand : maths_function;
first : integer;
DERIVE
source : maths_function := SELF\unary_generic_expression.operand;
WHERE
WR1: function_is_1d_array(source);
WR2: member_of(first, source\maths_function.domain);
END_ENTITY;
(
*
Page 79, 4.5.57, symmetric_matrix
The entity symmetric_matrix contains incorrect data types in WR3 and WR4. Delete the current EX-
PRESS definition of the entity symmetric_matrix and replace with:
EXPRESS specification:
)
*
ENTITY symmetric_matrix
SUBTYPE OF (linearized_table_function);
symmetry : symmetry_type;
triangle : lower_upper;
order : ordering_type;
WHERE
WR1: SIZEOF (SELF\explicit_table_function.shape) = 2;
WR2: SELF\explicit_table_function.shape[1] =
SELF\explicit_table_function.shape[2];
WR3: NOT (symmetry = symmetry_type.skew) OR (
(space_dimension(SELF\linearized_table_function.source.range) = 1) AND
subspace_of_es(factor1(SELF\linearized_table_function.source.range),
es_numbers));
WR4: NOT ((symmetry = symmetry_type.hermitian) OR
(symmetry = symmetry_type.skew_hermitian)) OR (
(space_dimension(SELF\linearized_table_function.source.range) = 1) AND
subspace_of_es(factor1(SELF\linearized_table_function.source.range),
es_complex_numbers));
END_ENTITY;
(
*
4 °c ISO 2014 — All rights reserved
ISO 10303-50:2001/Cor.2:2014(E)
Page 141, 4.6.31 derive_function_range
The function derive_function_range contains EXPRESS errors of incompatible types for the assignment
statements with function calls to the make_uniform_product_space funtion. A new local variable is
introduced to correct this problem. Remove completely the existing EXPRESS definition and replace
with:
EXPRESS specification:
)
*
FUNCTION derive_function_range(func : maths_function) : tuple_space;
LOCAL
typenames : SET OF STRING := stripped_typeof(func);
tspace : tuple_space := make_listed_product_space ([]);
m, n : nonnegative_integer := 0;
temp : INTEGER := 0;
END_LOCAL;
IF ’FINITE_FUNCTION’ IN typenames THEN
RETURN (derive_finite_function_range (func\finite_function.pairs));
END_IF;
IF ’CONSTANT_FUNCTION’ IN typenames THEN
RETURN (one_tuples_of (make_finite_space ([func\constant_function.sole_output])));
END_IF;
IF ’SELECTOR_FUNCTION’ IN typenames THEN
tspace := func.domain;
IF (space_dimension(tspace) = 1) AND ((schema_prefix + ’TUPLE_SPACE’) IN
TYPEOF (tspace)) THEN
tspace := factor1 (tspace);
END_IF;
RETURN (one_tuples_of (factor_space (tspace, func\selector_function.selector)));
END_IF;
IF ’ELEMENTARY_FUNCTION’ IN typenames THEN
RETURN (derive_elementary_function_range (func\elementary_function.func_id));
END_IF;
IF ’RESTRICTION_FUNCTION’ IN typenames THEN
RETURN (one_tuples_of (func\restriction_function.operand));
END_IF;
IF ’REPACKAGING_FUNCTION’ IN typenames THEN
tspace := func\repackaging_function.operand.range;
IF func\repackaging_function.output_repack = ro_wrap_as_tuple THEN
tspace := one_tuples_of (tspace);
END_IF;
IF func\repackaging_function.output_repack = ro_unwrap_tuple THEN
tspace := factor1 (tspace);
END_IF;
IF func\repackaging_function.selected_output > 0 THEN
tspace := one_tuples_of (factor_space (tspace,
func\repackaging_function.selected_output));
END_IF;
RETURN (tspace);
°c ISO 2014 — All rights reserved 5
ISO 10303-50:2001/Cor.2:2014(E)
END_IF;
IF ’REINDEXED_ARRAY_FUNCTION’ IN typenames THEN
RETURN (func\unary_generic_expression.operand\maths_function.range);
END_IF;
IF ’SERIES_COMPOSED_FUNCTION’ IN typenames THEN
RETURN (func\series_composed_function.operands[SIZEOF
(func\series_composed_function.operands)].range);
END_IF;
IF ’PARALLEL_COMPOSED_FUNCTION’ IN typenames THEN
RETURN (func\parallel_composed_function.final_function.range);
END_IF;
IF ’EXPLICIT_TA
...










Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.
Loading comments...