EXPRESS-X
Whilst EXPRESS is said not to be a programming language, the EXPRESS-X language is. EXPRESS-X is the name of a variant of the EXPRESS language. A version of EXPRESS-X is documented in ISO TC184/SC4/WG11/N002, on which EDMexpressX is based. EXPRESS-X (ISO 10303-14) is currently in the standardization process and it is expected to be an international standard (IS) by end 2004. EXPRESS-X shares many of the keywords and semantics found in EXPRESS but it also includes many that are unique to it. EXPRESS-X is generally considered to be a mapping language in the sense that it is intended to specify data mappings. However, since EXPRESS-X is still undergoing development the language is expected to incorporate more features. Thus, EXPRESS-X may not be confined to data mapping. Other areas where EXPRESS-X is used is for applying methods, rules and queries to EXPRESS data models. Nevertheless, data mapping is expected to be the core feature of the language.
The term data mapping refers to the creation of an instance of a type based on another instance of a semantically equivalent but not necessarily structurally similar data type. As illustrated in Example 2, the entity data types Person and Human are said to be semantically equivalent types: both data types refer to the same thing. However, both entities have dissimilar structure. The two data types are to be mapped in the manner specified in Example 3.
As illustrated in Example 3, an EXPRESS-X MAP declaration has three basic elements:
An identification of semantically, in the form MAP and FROM declaration, similar data types that are defined in one or more schemata.
A condition, in the form or WHEN clause, upon which instances of one data type are to be created from equivalent instances.
A definition, in the form of BEGIN_MAP and END_MAP clause, of the structural correlation that exists between two or more data types.
The EXPRESS Data Manager supports a version of EXPRESS-X (ISO TC184/SC4/WG11/N002), designated as EDMexpressX