ISO 10303-11
Encyclopedia
EXPRESS is a standard data modeling
language
for product
data. EXPRESS is formalized in the ISO Standard for the Exchange of Product model STEP (ISO 10303), and standardized as ISO 10303
-11.
s formally define data objects and relationships among data objects for a domain of interest. Some typical applications of data models include supporting the development of database
s and enabling the exchange of data for a particular area of interest. Data models are specified in a data modeling language. EXPRESS is a data modeling language defined in ISO 10303-11, the EXPRESS Language Reference Manual.
An EXPRESS data model can be defined in two ways, textually and graphically. For formal verification and as input for tools such as SDAI
the textual representation within an ASCII
file is the most important one. The graphical representation on the other hand is often more suitable for human use such as explanation and tutorials. The graphical representation, called EXPRESS-G, is not able to represent all details that can be formulated in the textual form.
EXPRESS is similar to programming languages such as Pascal
. Within a SCHEMA various datatypes can be defined together with structural constraints and algorithmic rules. A main feature of EXPRESS is the possibility to formally validate a population of datatypes - this is to check for all the structural and algorithmic rules.
s. It is a useful companion to the EXPRESS language for displaying entity and type definitions, relationships and cardinality. This graphical notation supports a subset of the EXPRESS language. One of the advantages of using EXPRESS-G over EXPRESS is that the structure of a data model can be presented in a more understandable manner. A disadvantage of EXPRESS-G is that complex constraints cannot be formally specified. Figure 1 is an example. The data model presented in figure could be used to specify the requirements of a database for an audio compact disc (CD) collection.
SCHEMA Family;
ENTITY Person
ABSTRACT SUPERTYPE OF (ONEOF (Male, Female));
name: STRING;
mother: OPTIONAL Female;
father: OPTIONAL Male;
END_ENTITY;
ENTITY Female
SUBTYPE OF (Person);
END_ENTITY;
ENTITY Male
SUBTYPE of (Person);
END_ENTITY;
END_SCHEMA;
The data model is enclosed within the EXPRESS schema Family. It contains a supertype entity Person with the two subtypes Male and Female. Since Person is declared to be ABSTRACT only occurrences of either (ONEOF) the subtype Male or Female can exist. Every occurrence of a person has a mandatory name attribute and optionally attributes mother and father. There is a fixed style of reading for attributes of some entity type:
A few general things are to be mentioned for datatypes.
There are three different kinds of attributes, explicit, derived and inverse attributes. And all these can be re-declared in a subtype. In addition an explicit attribute can be re-declared as derived in a subtype. No other change of the kind of attributes is possible.
Specific attribute symbols of the EXPRESS-G notation:
An entity instance can be constructed for either a single entity (if not abstract) or for a complex combination of entities in such a sub-supertype graph. For the big graphs the number of possible combinations is likely to grow in astronomic ranges. To restrict the possible combinations special supertype constraints got introduced such as ONEOF and TOTALOVER. Furthermore an entity can be declared to be abstract to enforce that no instance can be constructed of just this entity but only if it contains a non-abstract subtype.
The EXPRESS language can describe local and global rules.
For example:
ENTITY area_unit
SUBTYPE OF (named_unit);
WHERE
WR1: (SELF\named_unit.dimensions.length_exponent = 2) AND
(SELF\named_unit.dimensions.mass_exponent = 0) AND
(SELF\named_unit.dimensions.time_exponent = 0) AND
(SELF\named_unit.dimensions.electric_current_exponent = 0) AND
(SELF\named_unit.dimensions.
thermodynamic_temperature_exponent = 0) AND
(SELF\named_unit.dimensions.amount_of_substance_exponent = 0) AND
(SELF\named_unit.dimensions.luminous_intensity_exponent = 0);
END_ENTITY; -- area_unit
This example describes that area_unit entity must have square value of
length. For this the attribute dimensions.length_exponent must be equal to 2 and all other exponents of basic SI units must be 0.
Another example:
TYPE day_in_week_number = INTEGER;
WHERE
WR1: (1 <= SELF) AND (SELF <= 7);
END_TYPE; -- day_in_week_number
That is, it means that week value cannot exceed 7.
And so, you can describe some rules to your entities. More details on the given examples can be found in ISO 10303-41
Other related subjects
Data modeling
Data modeling in software engineering is the process of creating a data model for an information system by applying formal data modeling techniques.- Overview :...
language
Modeling language
A modeling language is any artificial language that can be used to express information or knowledge or systems in a structure that is defined by a consistent set of rules...
for product
Product (business)
In general, the product is defined as a "thing produced by labor or effort" or the "result of an act or a process", and stems from the verb produce, from the Latin prōdūce ' lead or bring forth'. Since 1575, the word "product" has referred to anything produced...
data. EXPRESS is formalized in the ISO Standard for the Exchange of Product model STEP (ISO 10303), and standardized as ISO 10303
ISO 10303
ISO 10303 is an ISO standard for the computer-interpretable representation and exchange of product manufacturing information. Its official title is: Automation systems and integration — Product data representation and exchange...
-11.
Overview
Data modelData model
A data model in software engineering is an abstract model, that documents and organizes the business data for communication between team members and is used as a plan for developing applications, specifically how data is stored and accessed....
s formally define data objects and relationships among data objects for a domain of interest. Some typical applications of data models include supporting the development of database
Database
A database is an organized collection of data for one or more purposes, usually in digital form. The data are typically organized to model relevant aspects of reality , in a way that supports processes requiring this information...
s and enabling the exchange of data for a particular area of interest. Data models are specified in a data modeling language. EXPRESS is a data modeling language defined in ISO 10303-11, the EXPRESS Language Reference Manual.
An EXPRESS data model can be defined in two ways, textually and graphically. For formal verification and as input for tools such as SDAI
ISO 10303-22
ISO 10303-22 is a part of the implementation methods of STEP with the official title Standard data access interface or simply SDAI....
the textual representation within an ASCII
ASCII
The American Standard Code for Information Interchange is a character-encoding scheme based on the ordering of the English alphabet. ASCII codes represent text in computers, communications equipment, and other devices that use text...
file is the most important one. The graphical representation on the other hand is often more suitable for human use such as explanation and tutorials. The graphical representation, called EXPRESS-G, is not able to represent all details that can be formulated in the textual form.
EXPRESS is similar to programming languages such as Pascal
Pascal (programming language)
Pascal is an influential imperative and procedural programming language, designed in 1968/9 and published in 1970 by Niklaus Wirth as a small and efficient language intended to encourage good programming practices using structured programming and data structuring.A derivative known as Object Pascal...
. Within a SCHEMA various datatypes can be defined together with structural constraints and algorithmic rules. A main feature of EXPRESS is the possibility to formally validate a population of datatypes - this is to check for all the structural and algorithmic rules.
EXPRESS-G
EXPRESS-G is a standard graphical notation for information modelInformation model
An information model in software engineering is a representation of concepts, relationships, constraints, rules, and operations to specify data semantics for a chosen domain of discourse...
s. It is a useful companion to the EXPRESS language for displaying entity and type definitions, relationships and cardinality. This graphical notation supports a subset of the EXPRESS language. One of the advantages of using EXPRESS-G over EXPRESS is that the structure of a data model can be presented in a more understandable manner. A disadvantage of EXPRESS-G is that complex constraints cannot be formally specified. Figure 1 is an example. The data model presented in figure could be used to specify the requirements of a database for an audio compact disc (CD) collection.
Simple example
A simple EXPRESS data model looks like fig 2, and the code like this:SCHEMA Family;
ENTITY Person
ABSTRACT SUPERTYPE OF (ONEOF (Male, Female));
name: STRING;
mother: OPTIONAL Female;
father: OPTIONAL Male;
END_ENTITY;
ENTITY Female
SUBTYPE OF (Person);
END_ENTITY;
ENTITY Male
SUBTYPE of (Person);
END_ENTITY;
END_SCHEMA;
The data model is enclosed within the EXPRESS schema Family. It contains a supertype entity Person with the two subtypes Male and Female. Since Person is declared to be ABSTRACT only occurrences of either (ONEOF) the subtype Male or Female can exist. Every occurrence of a person has a mandatory name attribute and optionally attributes mother and father. There is a fixed style of reading for attributes of some entity type:
- a Female can play the role of mother for a Person
- a Male can play the role of father for a Person
Datatypes
EXPRESS offers a series of datatypes, with specific data type symbols of the EXPRESS-G notation:- Entity data type: This is the most important datatype in EXPRESS. It is covered below in more detail. Entity datatypes can be related in two ways, in a sub-supertype tree and/or by attributes.
- Enumeration data type: Enumeration values are simple strings such as red, green, and blue for an rgb-enumeration. In the case that an enumeration type is declared extensible it can be extended in other schemas.
- Defined data type: This further specializes other datatypes—e.g., define a datatype positive that is of type integer with a value > 0.
- Select data type: Selects define a choice or an alternative between different options. Most commonly used are selects between different entity_types. More rare are selects that include defined types. In the case that an enumeration type is declared extensible, it can be extended in other schemas.
- Simple data type
- String: This is the most often used simple type. EXPRESS strings can be of any length and can contain any character (ISO 10646/Unicode). However it is common practise.
- Binary: This data type is only very rarely used. It covers a number of bits (not bytes). For some implementations the size is limited to 32 bit.
- Logical: Similar to the boolean datatype a logical has the possible values TRUE and FALSE and in addition UNKNOWN.
- Boolean: With the boolean values TRUE and FALSE.
- Number: The number data type is a supertype of both, integer and real. Most implementations take uses a double type to represent a real_type, even if the actual value is an integer.
- Integer: EXPRESS integers can have in principle any length, but most implementations restricted them to a signed 32 bit value.
- Real: Ideally an EXPRESS real value is unlimited in accuracy and size. But in practise a real value is represented by a floating point value of type double.
- Aggregation data type: The possible kinds of aggregation_types are SET, BAG, LIST and ARRAY. While SET and BAG are unordered, LIST and ARRAY are ordered. A BAG may contain a particular value more than once, this is not allowed for SET. An ARRAY is the only aggregate that may contain unset members. This is not possible for SET, LIST, BAG. The members of an aggregate may be of any other data type
A few general things are to be mentioned for datatypes.
- Constructed datatypes can be defined within an EXPRESS schema. They are mainly used to define entities, and to specify the type of entity attributes and aggregate members.
- Datatypes can be used in a recursive way to build up more and more complex data types. E.g. it is possible to define a LIST of an ARRAY of a SELECT of either some entities or other datatypes. If it makes sense to define such datatypes is a different question.
- EXPRESS defines a couple of rules how a datatype can be further specialized. This is important for re-declared attributes of entities.
- GENERIC data types can be used for procedures, functions and abstract entities.
Entity-Attribute
Entity attributes allow to add "properties" to entities and to relate one entity with another one in a specific role. The name of the attribute specifies the role. Most datatypes can directly serve as type of an attribute. This includes aggregation as well.There are three different kinds of attributes, explicit, derived and inverse attributes. And all these can be re-declared in a subtype. In addition an explicit attribute can be re-declared as derived in a subtype. No other change of the kind of attributes is possible.
- Explicit attributes are those with direct values visible in a STEP-File.
- Derived attributes get their values from an expression. In most cases the expression refers to other attributes of THIS instance. The expression may also use EXPRESS functions.
- Inverse attributes do not add "information" to an entity, but only name and constrain an explicit attribute to an entity from the other end.
Specific attribute symbols of the EXPRESS-G notation:
Supertypes and subtypes
An entity can be defined to be a subtype of one or several other entities (multiple inheritance is allowed!). A supertype can have any number of subtypes. It is very common practice in STEP to build very complex sub-supertype graphs. Some graphs relate 100 and more entities with each other.An entity instance can be constructed for either a single entity (if not abstract) or for a complex combination of entities in such a sub-supertype graph. For the big graphs the number of possible combinations is likely to grow in astronomic ranges. To restrict the possible combinations special supertype constraints got introduced such as ONEOF and TOTALOVER. Furthermore an entity can be declared to be abstract to enforce that no instance can be constructed of just this entity but only if it contains a non-abstract subtype.
Algorithmic constraints
Entities and defined data types may be further constraint with WHERE rules. WHERE rules are also part of global rules. A WHERE rule is an expression, which must evaluate to TRUE, otherwise a population of an EXPRESS schema, is not valid. Like derived attributes these expression may invoke EXPRESS functions, which may further invoke EXPRESS procedures. The functions and procedures allow formulating complex statements with local variables, parameters and constants - very similar to a programming language.The EXPRESS language can describe local and global rules.
For example:
ENTITY area_unit
SUBTYPE OF (named_unit);
WHERE
WR1: (SELF\named_unit.dimensions.length_exponent = 2) AND
(SELF\named_unit.dimensions.mass_exponent = 0) AND
(SELF\named_unit.dimensions.time_exponent = 0) AND
(SELF\named_unit.dimensions.electric_current_exponent = 0) AND
(SELF\named_unit.dimensions.
thermodynamic_temperature_exponent = 0) AND
(SELF\named_unit.dimensions.amount_of_substance_exponent = 0) AND
(SELF\named_unit.dimensions.luminous_intensity_exponent = 0);
END_ENTITY; -- area_unit
This example describes that area_unit entity must have square value of
length. For this the attribute dimensions.length_exponent must be equal to 2 and all other exponents of basic SI units must be 0.
Another example:
TYPE day_in_week_number = INTEGER;
WHERE
WR1: (1 <= SELF) AND (SELF <= 7);
END_TYPE; -- day_in_week_number
That is, it means that week value cannot exceed 7.
And so, you can describe some rules to your entities. More details on the given examples can be found in ISO 10303-41
See also
ISO related subjects- ISO 10303ISO 10303ISO 10303 is an ISO standard for the computer-interpretable representation and exchange of product manufacturing information. Its official title is: Automation systems and integration — Product data representation and exchange...
: ISO standard for the computer-interpretable representation and exchange of industrial product data. - ISO 10303-21ISO 10303-21STEP-File is the most widely used data exchange form of STEP. Due to its ASCII structure it is easy to read with typically one instance per line. The format of a STEP-File is defined in ISO 10303-21 Clear Text Encoding of the Exchange Structure....
: Data exchange form of STEP with an ASCII structure - ISO 10303-22ISO 10303-22ISO 10303-22 is a part of the implementation methods of STEP with the official title Standard data access interface or simply SDAI....
: Standard data access interface, part of the implementation methods of STEP - ISO 10303-28ISO 10303-28STEP-XML is a short term for ISO 10303-28, Industrial automation systems and integration—Product data representation and exchange—Part 28: Implementation methods: XML representations of EXPRESS schema and data...
: STEP-XML specifies the use of the Extensible Markup Language (XML) to represent EXPRESS schema - ISO 13584ISO 13584The official title of ISO 13584 is Industrial automation systems and integration - Parts library, with the acronym PLIB. PLIB is developed and maintained by the ISO technical committee TC 184, Technical Industrial automation systems and integration, sub-committee SC4 Industrial data...
-24: The logical model of PLIB is specified in EXPRESS - ISO 13399ISO 13399The official title of ISO 13399 is Cutting tool data representation and exchange.ISO 13399 is an International Standard for the computer-interpretable representation and exchange of industrial product data. The objective is to provide a mechanism that is capable of describing product data regarding...
: ISO standard for cutting tool data representation and exchange - ISO/PAS 16739Industry Foundation ClassesThe Industry Foundation Classes data model is intended to describe building and construction industry data.It is a neutral and open specification that is not controlled by a single vendor or group of vendors...
: Industry Foundation Classes is specified in EXPRESS - List of STEP (ISO 10303) parts
Other related subjects
- CAD data exchangeCAD data exchangeCAD data exchange involves a number of software technologies and methods to translate data from one Computer-aided design system to another CAD file format...
- EDIFEDIFEDIF is a vendor-neutral format in which to store Electronic netlists and schematics. It was one of the first attempts to establish a neutral data exchange format for the electronic design automation industry. The goal was to establish a common format from which the proprietary formats of the EDA...
: Electronic Design Interchange Format - DiagramDiagramA diagram is a two-dimensional geometric symbolic representation of information according to some visualization technique. Sometimes, the technique uses a three-dimensional visualization which is then projected onto the two-dimensional surface...
- General-purpose modelingGeneral-purpose modelingGeneral-purpose modeling is the systematic use of a general-purpose modeling language to represent the various facets of an object or a system...
- Modeling languageModeling languageA modeling language is any artificial language that can be used to express information or knowledge or systems in a structure that is defined by a consistent set of rules...
- Wirth syntax notationWirth syntax notationWirth syntax notation is a metasyntax, that is, a formal way to describe formal languages. Originally proposed by Niklaus Wirth in 1977 as an alternative to Backus-Naur form , it has several advantages over BNF in that it can be defined using itself, it contains an explicit iteration construct,...
Further reading
- ISO 10303ISO 10303ISO 10303 is an ISO standard for the computer-interpretable representation and exchange of product manufacturing information. Its official title is: Automation systems and integration — Product data representation and exchange...
, the main page for STEP, the Standard for the Exchange of Product model data - Douglas A. Schenck and Peter R. Wilson, Information Modeling the EXPRESS Way, Oxford University Press, 1993, ISBN 978-0-19-508714-7