ISO 13584-20:1998
(Main)Industrial automation systems and integration — Parts library — Part 20: Logical resource: Logical model of expressions
Industrial automation systems and integration — Parts library — Part 20: Logical resource: Logical model of expressions
This part of ISO 13584 specifies: — an EXPRESS schema for generic expressions; — an EXPRESS schema for expressions, that models the subset of the allowed expressions in the EXPRESS language defined in ISO 10303-11 that corresponds to integer, real, Boolean and string data types. This schema uses the resources defined in the generic expression schema. The following are within the scope of this part of ISO 13584: — the exchange of expressions that involve both constants and variables; — the function that checks whether or not a numeric expression should evaluate to an integer value; — the constraints which ensure that an expression is semantically correct; — the computation of the variables or functions used in an expression; — the function that checks if an expression may be mapped on to the SQL query language. The following are outside the scope of this part of ISO 13584: — the assignment of values to variables within some context; — the triggering mechanism that computes the value of an expression in a given context.
Systèmes d'automatisation industrielle et intégration — Bibliothèque de composants — Partie 20: Ressource logiques: Modèle logique d'expressions
General Information
Standards Content (Sample)
INTERNATIONAL ISO
STANDARD 13584-20
First edition
1998-07-01
Industrial automation systems and
integration — Parts library —
Part 20:
Logical resource: Logical model of expressions
Systèmes d'automatisation industrielle et intégration — Bibliothèque de
composants —
Partie 20: Ressource logique: Modèle logique d'expressions
A
Reference number
Page
Contents
Foreword .vi
Introduction . viii
1 Scope . 1
2 Normative references. 1
3 Terms and definitions. 2
3.1 Terms and definitions from ISO 10303-11 . 2
3.2 Terms and definitions from ISO 10303-44 . 2
3.3 Other terms and definitions. 3
4 Abbreviated terms . 5
5 Fundamental concepts and assumptions. 6
5.1 Static and dynamic data. 6
5.2 Syntax of expressions. 6
5.3 Semantics of expressions . 6
5.3.1 Semantic of expressions. 6
5.3.2 Exchange time and evaluation time . 6
5.4 Levels of abstraction in expression modelling . 7
5.4.1 Specialisation of the ISO13584_generic_expressions_schema. 7
5.4.2 Specialisation of the ISO13584_expressions_schema. 7
5.5 Modelling a variable . 7
5.5.1 Syntactic representation . 7
5.5.2 Domain of values for a variable .8
5.5.3 Semantics of a variable. 8
5.6 Mappability to the SQL language. 8
6 ISO13584_generic_expressions_schema .8
6.1 Introduction . 8
6.2 ISO13584_generic_expressions_schema entity definitions . 9
6.2.1 Generic_expression. 9
6.2.2 Simple_generic_expression. 10
6.2.3 Generic_literal. 10
6.2.4 Generic_variable. 10
6.2.5 Variable_semantics. 11
6.2.6 Environment. 11
6.2.7 Unary_generic_expression . 11
6.2.8 Binary_generic_expression. 12
6.2.9 Multiple_arity_generic_expression. 12
6.3 ISO13584_generic_expressions_schema function definitions . 12
6.3.1 Is_acyclic function. 13
6.3.2 Used_variables function. 14
© ISO 1998
All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized in any form or by any
means, electronic or mechanical, including photocopying and microfilm, without permission in writing from the publisher.
International Organization for Standardization
Case postale 56 • CH-1211 Genève 20 • Switzerland
Internet iso@iso.ch
Printed in Switzerland
ii
©ISO
7 ISO13584_expressions_schema . 15
7.1 Introduction . 15
7.2 ISO13584_expressions_schema overall entity definitions. 16
7.2.1 Expression . 16
7.2.1.1 Variable. 16
7.2.1.2 Defined_function.17
7.2.1.3 SQL_mappable_defined_function . 17
7.3 ISO13584_expressions_schema : entity definitions for numeric expressions. 17
7.3.1 Numeric_expression . 17
7.3.2 Simple_numeric_expression. 18
7.3.3 Literal_number . 18
7.3.4 Int_literal . 19
7.3.5 Real_literal . 19
7.3.6 Numeric_variable. 19
7.3.7 Int_numeric_variable. 20
7.3.8 Real_numeric_variable . 20
7.3.9 Unary_numeric_expression . 20
7.3.10 Binary_numeric_expression. 21
7.3.11 Multiple_arity_numeric_expression. 21
7.3.12 Length_function . 21
7.3.13 Value_function . 22
7.3.14 Int_value_function. 22
7.3.15 Numeric_defined_function . 23
7.3.16 Plus_expression. 23
7.3.17 Minus_expression. 23
7.3.18 Mult_expression. 24
7.3.19 Div_expression . 24
7.3.20 Mod_expression. 24
7.3.21 Slash_expression. 25
7.3.22 Power_expression . 25
7.3.23 Unary_function_call . 25
7.3.24 binary_function_call . 26
7.3.25 Multiple_arity_function_call. 26
7.3.26 Abs_function . 26
7.3.27 Minus_function. 27
7.3.28 Sin_function . 27
7.3.29 Cos_function. 28
7.3.30 Tan_function . 28
7.3.31 Asin_function . 28
7.3.32 Acos_function . 29
7.3.33 Exp_function . 29
7.3.34 Log_function . 29
7.3.35 Log2_function . 30
7.3.36 Log10_function . 30
7.3.37 Square_root_function. 31
7.3.38 Atan_function . 31
7.3.39 Maximum_function. 31
7.3.40 Minimum_function. 32
7.3.41 Integer_defined_function .32
7.3.42 Real_defined_function . 32
7.4 Boolean_expression. 33
7.4.1 Simple_boolean_expression. 33
7.4.2 Boolean_literal . 34
7.4.3 Boolean_variable . 34
7.4.4 Unary_boolean_expression . 34
7.4.5 Not_expression. 34
7.4.6 Odd_function. 35
iii
©ISO
7.4.7 Binary_boolean_expression. 35
7.4.8 Multiple_arity_boolean_expression. 36
7.4.9 Xor_expression. 36
7.4.10 Equals_expression. 37
7.4.11 And_expression . 37
7.4.12 Or_expression. 37
7.4.13 Comparison_expression . 38
7.4.14 Comparison_equal. 39
7.4.15 Comparison_greater . 39
7.4.16 Comparison_greater_equal . 39
7.4.17 Comparison_less . 40
7.4.18 Comparison_less_equal . 40
7.4.19 Comparison_not_equal. 40
7.4.20 Like_expression. 41
7.4.21 Interval_expression. 41
7.4.22 Boolean_defined_function . 42
7.5 String_expression . 43
7.5.1 Simple_string_expression.43
7.5.2 String_literal . 43
7.5.3 String_variable . 44
7.5.4 Index_expression. 44
7.5.5 Substring_expression . 45
7.5.6 Concat_expression . 46
7.5.7 Format_function. 46
7.5.8 String_defined_function . 47
7.6 Functions to determine properties of the expression. 47
7.6.1 Is_int_expr . 48
7.6.2 Is_SQL_mappable . 50
7.6.3 Used_functions . 53
Annex A (normative) Short names of entities. 56
Annex B (normative) Information object registration.58
B.1 Document identification. 58
B.2 Schema identification. 58
B.2.1 ISO13584_generic_expressions_schema. 58
B.2.2 ISO13584_expressions_schema. 58
Annex C (informative) EXPRESS-G diagrams. 59
Annex D (informative) Use of the ISO13584_expressions_schema. 73
D.1 Introduction. 73
D.2 Interpretation function and variable semantics. 73
D.3 Representation of the interpretation function in ISO 13584 Part 20 . 73
D.4 Use of the variable_semantics entity to define the semantic of new variables. 74
D.4.1 Use of a particular subtype of the variable_semantics entity . 74
D.4.2 Multiple inheritance of the variable_semantics entity and of another entity . 75
D.4.3 Defining a concept not represented in the model. 77
Annex E (informative) Specialisation of the schemata. 78
E.1 Introduction . 78
iv
©ISO
E.2 Specialisation of the ISO13584_generic_expressions_schema. 78
E.3 Specialisation of the ISO13584_expressions_schema. 78
E.4 Methodology for specialisation of ISO 13584 part 20 . 79
E.5 Example of specialisation of the ISO13584_generic_expressions_schema schema. 80
E.6 Example of specialisation of the ISO13584_expressions_schema schema . 82
Annex F (informative) Static analysis of expressions . 83
F.1 Introduction . 83
F.2 is_acyclic function. 83
F.3 Used_variables and used_functions functions. 83
F.4 Is_SQL_mappable function. 84
F.5 Type control and type synthesis . 84
Index . 85
Figures
Figure D.1 — Syntax and semantics association for variables. 74
Figure D.2 — Specialisation of the semantics by subtyping of the variable_semantics entity. 75
Figure D.3 — Specialisation of the semantics by subtyping the variable_semantics entity
and another entity . 76
Figure D.4 — Example of the definition of a concept not represented in the model : coordinates . 77
Table
Table A.1 — Short names of entities . 56
v
©ISO
Foreword
ISO (the International Organization for Standardization) is a worldwide federation of national standards
bodies (ISO member bodies). The work of preparing International Standards is normally carried out
through ISO technical committees. Each member body interested in a subject for which a technical
committee has been established has the right to be represented on that committee. International
organisations, governmental and non-governmental, in liaison with ISO, also take part in the work. ISO
collaborates closely with the International Electrotechnical Commission (IEC) on all matters of
electrotechnical standardisation.
Draft International Standards adopted by the technical committees are circulated to the member
bodies for voting. Publication as an International Standard requires approval by at least 75 % of the
member bodies casting a vote.
International Standard ISO 13584-20 was prepared by Technical Committee ISO/TC 184, Industrial
automation systems and integration, Subcommittee SC 4, Industrial data.
ISO 13584 consists of the following parts, under the general title Industrial automation systems and
integration — Parts library:
— Part 1: Overview and fundamental principles
— Part 10: Conceptual description: Conceptual model of parts library
— Part 20: Logical resource: Logical model of expressions
— Part 24: Logical resource: Logical model of supplier library
— Part 26: Logical resource: Supplier identification
— Part 31: Implementation resource: Geometric programming interface
— Part 42: Description methodology: Methodology for structuring part families
— Part 101: View exchange protocol: Geometric view exchange protocol by parametric program
— Part 102: View exchange protocol: View exchange protocol by ISO 10303 conforming
specification
The structure of ISO 13584 is described in ISO 13584-1. The numbering of the parts of ISO 13584
reflects its structure:
— Parts 10 to 19 specify the conceptual descriptions,
— Parts 20 to 29 specify the logical resources,
— Parts 30 to 39 specify the implementation resources,
— Parts 40 to 49 specify the description methodology,
— Parts 50 to 59 specify the conformance testing,
— Parts 100 to 199 specify the view exchange protocol,
vi
©ISO
— Parts 500 to 599 specify the standardised content.
Should further parts of ISO 13584 be published, they will follow the same numbering pattern.
Annexes A and B form an integral part of this part of ISO 13584. Annexes C, D, E and F are for
information only.
vii
©ISO
Introduction
ISO 13584 is an International Standard for the computer-interpretable representation and exchange of
part library data. The objective is to provide a neutral mechanism capable of transferring parts library
data, independent of any application that is using a parts library data system. The nature of this
description makes it suitable not only for the exchange of files containing parts, but also as a basis for
implementing and sharing databases of parts library data.
ISO 13584 is organised as a series of parts, each published separately. The parts of ISO 13854 fall
into one of the following series: conceptual descriptions, logical resources, implementation resources,
description methodology, conformance testing, view exchange protocol, and standardised content.
The series are described in ISO 13584-1. This part of ISO 13584 is a member of the logical resources
series.
This part of ISO 13584 provides the general purpose EXPRESS resource constructs needed for
expression modelling. These EXPRESS resource constructs are intended to be detailed in other parts
of ISO 13584. They are also intended to be used outside ISO 13584 wherever EXPRESS information
models of expressions prove to be useful.
viii
INTERNATIONAL STANDARD ©ISO ISO 13584-20:1998(E)
Industrial automation systems and integration —
Parts library —
Part 20:
Logical resource: Logical model of expressions
1 Scope
This part of ISO 13584 specifies:
— an EXPRESS schema for generic expressions;
— an EXPRESS schema for expressions, that models the subset of the allowed expressions in the
EXPRESS language defined in ISO 10303-11 that corresponds to integer, real, Boolean and
string data types. This schema uses the resources defined in the generic expression schema.
The following are within the scope of this part of ISO 13584:
— the exchange of expressions that involve both constants and variables;
— the function that checks whether or not a numeric expression should evaluate to an integer
value;
— the constraints which ensure that an expression is semantically correct;
— the computation of the variables or functions used in an expression;
— the function that checks if an expression may be mapped on to the SQL query language.
The following are outside the scope of this part of ISO 13584:
— the assignment of values to variables within some context;
— the triggering mechanism that computes the value of an expression in a given context.
2 Normative references
The following normative documents contain provisions which, through reference in this text, constitute
provisions of this part of ISO 13584. For dated references, subsequent amendments to, or revisions
of, any of these publications do not apply. However, parties to agreements based on this part of ISO
13584 are encouraged to investigate the possibility of applying the most recent editions of the
normative documents indicated below. For undated references the latest edition of the normative
document referred to applies. Members of IEC and ISO maintain registers of currently valid
International Standards.
ISO/IEC 9075: 1992, Information technology — Database languages — SQL.
ISO 10303-11: 1994, Industrial automation systems and integration — Product data representation
and exchange — Part 11: Description methods: The EXPRESS language reference manual.
©ISO
ISO 10303-44: 1994, Industrial automation systems and integration — Product data representation
and exchange — Part 44: Integrated generic resources: Product structure configuration.
3 Terms and definitions
For the purposes of this part of ISO 13584, the following terms and definitions apply.
3.1 Terms and definitions from ISO 10303-11
For the purposes of this part of ISO 13584, the following terms and definitions given in
ISO 10303-11:1994 (which are repeated below for convenience) apply.
3.1.1
data type
a domain of values.
[ISO 10303-11:1994]
3.1.2
entity
a class of information defined by common properties.
[ISO 10303-11:1994]
3.1.3
entity data type
a representation of an entity. An entity data type establishes a domain of values defined by common
attributes and constraints.
[ISO 10303-11:1994]
3.1.4
entity (data type) instance
a named unit of data which represents a unit of information within the class defined by an entity. It is a
member of the domain established by an entity data type.
[ISO 10303-11:1994]
3.2 Terms and definitions from ISO 10303-44
For the purpose of this part of ISO 13584, the following terms and definitions given in ISO
10303-44:1994 (which are repeated below for convenience) apply.
3.2.1
ancestor node
any node that can be reached from a given node, by successive traversals of links in the reverse
direction. For a given node, its ancestor nodes include all parent nodes, all parent nodes of these
parent nodes, etc.
[ISO 10303-44:1994]
©ISO
3.2.2
child node
node to which a link is pointing.
[ISO 10303-44:1994]
3.2.3
descendent node
any node that can be reached from a given node, by successive traversals of links. For a given node,
its descendent nodes include all children nodes, all children nodes of these children nodes, etc.
[ISO 10303-44:1994]
3.2.4
directed acyclic graph
collection of nodes and directed links such that no node is an ancestor (or descendant) of itself.
[ISO 10303-44:1994]
3.2.5
link
uni-directional relationship from one node to another node within a directed acyclic graph.
[ISO 10303-44:1994]
3.2.6
node
element of a directed acyclic graph, connected to other such elements by links.
[ISO 10303-44:1994]
3.2.7
parent node
node from which a link is initiated.
[ISO 10303-44:1994]
3.3 Other terms and definitions
For the purpose of this part of ISO 13584, the following apply.
3.3.1
arity of an operator
the maximum number of operands that shall be associated with an operator.
3.3.2
binary operator
an operator whose arity is equal to two.
©ISO
3.3.3
environment
association between syntax and semantics.
NOTE In the context of this part of ISO 13584, the environment entity associates to a generic_variable
(syntax) its corresponding meaning (semantics) represented by the variable_semantics entity.
3.3.4
evaluation
the computation of the value represented by an expression.
3.3.5
expression
set of variables or constants or both that are combined by operators.
NOTE 1 An expression specifies a function whose arguments are the variables occurring in the expression.
NOTE 2 The underlying structure is a directed acyclic graph, where nodes are operators, constants or
variables, and where links represent the uni-directional relationship from each operators to its arguments,
that are themselves expressions.
3.3.6
expression data type
domain where the result of an expression shall take its values.
NOTE In this part of ISO 13584, type control and type synthesis are only performed for the ISO13584_
expressions_schema. Type control is ensured by the structure and the rules of this EXPRESS schema.
Type synthesis is done by the EXPRESS TYPEOF function that computes whether an expression is a
numeric_expression, a Boolean_expression or a string_expression, and by the is_int function that
computes whether or not a numeric_expression evaluates to an INTERGER value.
3.3.7
interpretation
function that returns the semantics associated to each variable.
NOTE This function uses an environment that associates a variable to its corresponding semantics (and
may be to its possible value).
3.3.8
multiple arity operator
an operator whose arity is greater than two.
3.3.9
operator
function that combines one or several values, named its operands, to produce a value, named its
result.
NOTE The definition of an operator includes the data type definition of its operands and of its result.
3.3.10
semantics
meaning of a given concept.
©ISO
EXAMPLE The semantics of a variable is the meaning carried by this variable.
NOTE In the context of this part of ISO 13584, the semantics is represented by the variable_semantics
entity. This entity is an ABSTRACT SUPERTYPE, that can be specialised to carry specific meanings and
values.
3.3.11
syntactic representation
sequence of characters that represents a given concept.
NOTE 1 In usual programming languages, the sequence of characters used to represent the different
concepts shall obey to a set of rules known as the syntax of the language.
NOTE 2 In the context of this part of ISO 13584, a syntactic representation is an entity (data type) instance
name.
3.3.12
type control
operation that allows the determination whether or not a given expression is correctly typed.
NOTE 1 An expression is correctly typed if the data type of each operand of each operator of this
expression complies with the required data type.
NOTE 2 In this part of ISO 13584, type control is ensured by the constraints of the EXPRESS schema.
3.3.13
type synthesis
determination of an expression data type.
NOTE In the ISO13584_expressions_schema schema, the data type of each constant, variable or
operator result is carried by the entity that represents it; therefore, the data type of an expression may be
deduced from the result of the EXPRESS TYPEOF function applied to the node that represents this
expression.
3.3.14
unary operator
an operator whose arity is equal to one.
3.3.15
variable
representation of a value that shall belong to a specified data type.
4 Abbreviated terms
For the purpose of this part of ISO 13584 the following abbreviated term applies.
— SQL : The structured Query Language defined by ISO/IEC 9075:1992.
©ISO
5 Fundamental concepts and assumptions
5.1 Static and dynamic data
When exchanging parts library information, there is a need to exchange not only static properties, that
may be modelled as data, but also dynamic behaviour that expresses e.g. how the value of a property
may be deduced from the values of other properties. Expressions are one of the structures that enable
the modelling of dynamic behaviours.
This part of ISO 13584 specifies a form for the unambiguous representation and exchange of
computer interpretable expressions.
5.2 Syntax of expressions
The syntax of an expression consists of a set of symbols that represent the constants, the variables
and the operators of this expression. In textual languages these symbols obey a set of rules usually
defined in a grammar.
In this part of ISO 13584, the constants, the variables and the operators are represented as entity data
types. The rules these entities shall obey are modelled in the EXPRESS schema that defines these
entity data types.
5.3 Semantics of expressions
5.3.1 Semantic of expressions
An expression consists of operators and operands. The semantics of an expression is defined by the:
— range of the function performed by each operator;
— interpretation function that associates the corresponding value to each operand;
— evaluation function that computes the result of each operator when applied to its operands.
In this part of ISO 13584, the interpretation function shall be modelled by subtyping the
variable_semantics entity. The evaluation function is not addressed in this part of ISO 13584.
5.3.2 Exchange time and evaluation time
The processing of expressions can be distinguished between two types of procedures.
— At exchange time an expression is represented by its structure. The corresponding directed
acyclic graph is modelled and exchanged, and it is not required that the variables are bound to
any value, but their semantics are known. Static analyses (acyclicity of a graph, type checking,
mappability to the SQL language) can be performed at this level.
— At evaluation time, the expression can be assigned a value. At this stage, all the variables
occurring in the expression must be bound to a value. Dynamic evaluation of an expression,
testing and debugging, can be performed at this level.
Only the static analysis that correspond to exchange time are addressed in this part of ISO 13584.
The informative annex F provides an overview of the different analyses of expressions.
©ISO
5.4 Levels of abstraction in expression modelling
The operators used in the ISO13584_generic_expressions_schema allow the specification of
abstract generic expressions that can be specialised for different purposes and on different data types.
5.4.1 Specialisation of the ISO13584_generic_expressions_schema
The ISO13584_expressions_schema is one specialisation of the ISO13584_generic_expres-
sions_schema. The operators used in the ISO13584_expressions_schema belong to a subset of
the operators defined in ISO 10303-11. Their range and evaluation function shall conform to the
specification given in ISO 10303-11.
The operands are either constants, represented by literal values, variables or other expressions.
Variables are strongly typed and it is assumed that, when the expression is evaluated in some context,
an interpretation function provides each variable with a value conforming to its data type. When this
condition is false, the expression evaluation results in an error.
The informative annex E discusses the details of such a specialisation process and outlines a
methodology for other possible specialisation’s of the ISO13584_generic_expressions_schema.
5.4.2 Specialisation of the ISO13584_expressions_schema
The ISO13584_expression_schema may itself be specialised to meet the requirements that are not
addressed by the numeric-valued, string-valued or Boolean-valued operators defined in the EXPRESS
language reference manual.
The specialisation of the ISO13584_expressions_schema consists either (1) in enlarging the schema
by adding the definitions of new entities which carry the semantics of functions returning an integer, a
real, a Boolean or a string value, or (2) in defining new sub-types of the variable_semantics.
The entities that carry the semantics of functions shall be defined as subtypes of the corresponding
defined_function entity. Indeed, a function returning an integer, a real, a Boolean or a string value
respectively shall be defined as a subtype of the integer_defined_function, real_defined_function,
boolean_defined_function and string_defined_function.
Such a specialisation is compatible with the strong data type checking that results from the rules of the
ISO13584_expression_schema.
The informative annex E discusses the details of such a specialisation process and outlines a
methodology for specialisation of the ISO13584_expressions_schema.
5.5 Modelling a variable
A variable has three aspects:
— it is a (syntactic) symbol that may be used to build an expression;
— it is associated with a data type that defines the domain of its value;
— it is associated with a semantics that defines its meaning, and therefore its value at evaluation
time.
5.5.1 Syntactic representation
In this part of ISO 13584, a variable is an instance of the generic_variable entity. An instance of such
a data type is associated with an identifier, known as the instance identity, that constitutes the symbol
of the corresponding variable when it is used in an expression.
©ISO
5.5.2 Domain of values for a variable
The domain of values for a variable is modelled by subtyping the generic_variable entity. This
approach, known as strong typing, ensures that the data type of any expression may be computed
(synthesised) at exchange time.
5.5.3 Semantics of a variable
In the ISO13584_generic_expression_schema, shall be variables associated with a
variable_semantics. This entity is defined as an ABSTRACT SUPERTYPE and shall be subtyped
wherever a particular semantics is intended to be used. The description of a subtype of a
variable_semantics shall contain the description of the context within which the variable shall be
used. This description shall be accompanied with the description of the interpretation function that
associates a value with this variable.
EXAMPLE The EXPRESS notation SELF.a is an example of . Such a variable can
variable semantics
only be used in the context of some instance of some class where its syntactic representation appears.
Within this context, the interpretation function is the function that associates to this variable the value of the
“a” attribute of this instance.
The informative annex D discusses the different approaches that may be used to define
variable_semantics subtypes that meet some specific requirements. It gives the details of the
definition of the interpretation function through the variable_semantics entity.
5.6 Mappability to the SQL language
In programming languages, expressions are commonly used to access databases. The SQL language
only allows a small number of operators and restricts the use of expressions to a given category of
expressions. In order to make a clear distinction between those expressions that are SQL mappable
and the other expressions, a specific derived Boolean attribute states whether or not an expression is
mappable onto the SQL language.
6 ISO13584_generic_expressions_schema
This clause defines the requirements for the ISO13584_generic_expression_schema. The following
EXPRESS declaration introduces the ISO13584_generic_expression_schema block.
EXPRESS specification:
*)
SCHEMA ISO13584_generic_expressions_schema;
(*
6.1 Introduction
The ISO13584_generic_expressions_schema is an abstract resource that provides a common
framework for the set of all the possible expressions.
EXAMPLE In a parametric shape model, a real value may be represented as an expression of which
operands are geometric representation items, e.g., distance (point_1, point_2). A geometric item may be
specified by a geometric operator, e.g., centre_of (circle_1).
The underlying structure is an acyclic graph, where nodes are operators, literal values or variables,
and where links represent the relation of operators to their arguments, that are expressions
themselves.
©ISO
The following capabilities are provided in the ISO13584_generic_expressions_schema:
— generic constants corresponding to the values of the manipulated data type;
— generic variables that stand for values interpreted from the context;
— unary expressions for unary operators;
— binary expressions for binary operators;
— multiple arity expressions for multiple-arity operators.
Each specific kind of expressions is obtained by specialising (actually subtyping) the constants, the
variables and the operators into those of the considered data type(s).
6.2 ISO13584_generic_expressions_schema entity definitions
6.2.1 Generic_expression
A generic_expression entity is the information model of a generic_expression as defined in clause
3.1.6. It is the ABSTRACT SUPERTYPE of all the possible expressions. In order to be able to assert
the acyclicity of expressions, it is subtyped according to its arity. When a subtype of a
generic_expression is not a subtype of either a simple_generic_expression, or an
unary_generic_expression, or a binary_generic_expression, or a
multiple_arity_generic_expression it shall not contain any variable.
EXPRESS specification:
*)
ENTITY generic_expression
ABSTRACT SUPERTYPE OF(ONEOF(simple_generic_expression,
unary_generic_expression,
binary_generic_expression
...








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