0. Intended Use
EXPRESS is a language directed towards the conceptual modeling of domainswithin the field of Product Data. Although computer processability is adesign goal, a conscious attempt has been made to avoid including constructsor features in the language which are directed towards ease of implementationor towards the development of physical schemas. EXPRESS is not intendedto model dynamics: an EXPRESS schema describes a valid population of theuniverse of discourse, but does not specify how that population can betransformed into another valid population.
1. Basic Concepts
EXPRESS specifies an information domain in terms of Entities (classesof objects sharing common characteristics). Entities have associated attributesand constraints, which represent these common characteristics. Constraintsare written using a very expressive mix of declarative and procedural language.
2. Objects
An EXPRESS Entity type represents a class of real-world objects whichshare common properties. The instances of this data type then individuallyrepresent these real-world objects.
2.1 Operations
Because it does not model dynamics, EXPRESS does not support much inthe way of operations. The specification of constraints requires some supportfor operations, but these operations cannot change the state of the populationbeing modeled. The operations include the builtin arithmetic, relational,logical, string, and aggregate operations. In addition, EXPRESS supportsbuiltin and user-defined functions and procedures. It is likely that futureversions of EXPRESS will provide significantly more support for operations.
2.2 requests
No notion of request.
2.3 messages
No notion of messages.
2.4 specification of behavioral semantics
EXPRESS provides for the specification of constraints on the populationand its members, but does not support any other behavioral specifications.It is likely that future versions of EXPRESS will support behavioral modeling.
2.5 methods
No methods supported, but planned for version 2.
2.6 state
In a sense, EXPRESS models only state; in another, it has no need ofstate since it has no concept of state change.
2.7 object lifetime
Not an issue as it is a conceptual schema language.
2.8 behavior/state grouping
2.9 communication model
2.10 events
3. Binding
EXPRESS support operator overloading only for the builtin arithmetic,etc. operators. Binding is thus a non-issue.
4. Polymorphism
No notion of polymorphism. A function call activates a function. Thenumber and type of the actual parameters must agree with the formal parametersdefined for that function.
5. Encapsulation
EXPRESS has no notion of encapsulation. All attribute values of an instanceare visible in any context in which the instance itself is visible.
6. Identity, Equality, Copy
The specification of an entity data type in the EXPRESS language describesa domain. The individual members of the domain are assumed to be distinguishedby some associated identifier which is unique. EXPRESS does not specifythe content or representation of these identifiers. [ISO DIS-10303:11]
The language supports two notions of equality, identity equality anddeep equality. Most operations in the language make use of the latter ratherthan the former. For example, set uniqueness is based on deep [un]equality,and assignment and parameter binding are based on deep copying. It is likelythat future versions of EXPRESS will provide more operations based on identity.
Instances of the primitive data types and of the aggregate data typesdo not have identifiers.
7. Types and Classes
The fundamental constructs of EXPRESS are entities and types. Whileboth are considered to be types, entities differ from the other types inthree respects: 1) a subtype/supertype relation is defined only on entitytypes, 2) entity instances have identifiers while others do not, and 3)entity instances can have a significantly more complex internal structure.The types in EXPRESS include the usual primitive types (integer, string,etc.) as well as enumeration, aggregation, and select (union) types. User-definedtypes are also supported, and can be founded on any types other than entities.
An entity type is defined by a set of attributes. An attribute has anassociated value (or none) for each instance of the entity type.
EXPRESS does not require the subtypes of a particular supertype to bedisjoint; thus, it is possible for and instance of the supertype to bean instance of two or more subtypes simultaneously. The language allowsthe ways in which the subtypes may overlap to be constrained using theso-called supertype expression. For example, it is possible to state that"these two subtypes are disjoint" or that "an instance ofthe supertype must be an instance of at least one of these three subtypes,and also of no more than one of these four subtypes".
8. Inheritance and Delegation
EXPRESS supports single as well as multiple inheritance (an entity typemay have more than one supertype). Attributes and constraints are inheritedfrom supertype to subtype entities. An instance of a subtype is valid inany context in which an instance of (any of) its supertype(s) is valid.
When a name conflict arises as a result of multiple inheritance, anyuse of the name in question must be prefixed with the name of the originallydefining entity type in order to provide an unambiguous reference.
In the case of repeat inheritance, where multiple inheritance causesa subtype to inherit from some supertype by more than one path, the subtypeinherits only one set of the attribute definitions from the supertype inquestion. If these attributes have been constrained differently along thedifferent inheritance paths, the subtype inherits all of the constraintsapplied along all of the paths.
9. Noteworthy Objects
9.1 relationships
"In EXPRESS the declaration in one entity data type (the declaringentity) of an attribute whose domain is another entity data type (the representingentity) explicitly establishes a relationship between these two data types.This relationship is referred to as a simple relationship, and relatesan instance of the declaring entity to one instance of the representingentity." [ISO DIS-10303:11]
The cardinality of this relationship gets considerably more complexas aggregate types and inverse attributes are added. The cardinality inthe forward direction of the relation can be constrained by use of variousaggregate data types. The cardinality of the reverse direction can be constrainedby explicitly naming the reverse direction as an inverse attribute of thesecond type representing entity and then once again making use of the variousaggregate data types for this inverse attribute.
It is common usage in the STEP community to explicitly model whole-partand other relationships using entities, although the language does notdirectly support this usage. It is likely that future versions of EXPRESSwill directly support the modeling of n-ary relationships as first-classobjects.
9.2. attributes
An attribute represents a property of an entity which can be representedby a value of some type. There are three kinds of attributes in EXPRESS:an explicit attribute is one whose value must be given by external means;a derived attribute can be computed from the values of other attributes;and an inverse attribute establishes a name for the inverse direction ofthe relationship established by an explicit attribute.
9.3 literals
EXPRESS supports literals of all of the primitive types (integer, string,etc.), as well as enumeration literals.
9.4 containment
EXPRESS has no concept of containment.
9.5 aggregates
The aggregation types are array, bag, list and set. Arrays and listscan optionally require that their elements are unique, essentially providingindexed and ordered sets, respectively. This uniqueness and that of a setis based on deep comparison and not on instance identity. Aggregates inEXPRESS are extensional: an aggregate value has no identifier of its own.
9.6 other
See 7. Types and Classes.
10. Extensibility
This is not an issue for a conceptual modeling language.
10.1 dynamic
No dynamic extensibility, but static user-defined functions are allowed.
10.2 metaclasses/metaobject protocol
EXPRESS currently has no notion of metaclass. It is likely that futureversions of EXPRESS will support at least two, if not n, meta-levels.
10.3 introspection
This is essentially not considered by EXPRESS, although some of thebuiltin functions provide string-based representations of some meta-levelinformation on an ad-hoc basis. It is likely that future versions of EXPRESSwill address the issue more fully.
11. Object Languages
EXPRESS itself provides no manipulation language. Within STEP, thereis work on the Standard Data Access Interface (ISO CD-10303:22), a proceduralinterface to instances of EXPRESS models.
12. Semantics of Base Classes (+type constructors)
Not addressed.
13. Background and References
EXPRESS is a conceptual schema language. It is defined specificallyto deal with the information that is consumed or produced during productmanufacturing. EXPRESS is not a programming language. It does not containlanguage elements which allow input/output, information processing or exceptionhandling. EXPRESS focuses on the definition of entities consisting of dataand behavior. Data represents the properties by which an entity is realizedand behavior is represented by constraints and operations.
References
ISO/DIS 10303-11 Industrial automation systems and integration -
Product data representation and exchange -
Part 11: Description methods: The EXPRESS
language reference manual, July 15, 1992.
(or, ISO 10303-11, date: to be published. The IS ballot has completed;
final editing of the Standard is in process.)
ISO/CD 10303-22 Industrial automation systems and integration -
Product data representation and exchange -
Part 22: Implementation methods: Standard
data access interface specification, November 1, 1993.