EXPRESS Language



Overview

EXPRESS is the data modeling language of STEP and standardized as ISO 10303-11.

An EXPRESS data model can be defined in two ways, textually and graphically. For the formal verification and as an input for tools such as SDAI the textual representation within an ACSII 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, which can be formulated in the textual form.

EXPRESS is similar to programming languages such as PASCAL. Within a SCHEMA various data types can be defined together with structural constraints and algorithmic rules. A main feature of EXPRESS is the possibility to formally validate a population of data types - this is to check for all the structural and algorithmic rules.

A simple EXPRESS data model looks 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.

To top

Data types

See below the various data types of EXPRESS. A value of a specific datatype may always have an unset value. In the EXPRESS language this is indicated by a "?" and in a STEP-File with "$". SDAI reports an error when trying to read an entity attribute of an unset value.

A few general things are to be mentioned for data types.
To top

Sub- and supertypes

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.

To top

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 data types 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.
To top

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.

To top

Note: Information was obtained from wikipedia (www.wikipedia.org).


Copyright © 2005-2008 LKSoftWare GmbH. All Rights Reserved.
JSDAI is a registered trade mark of LKSoftWare GmbH.