EXPRESS-X
Issue Log

Updated: 1996-10-18


Issue 001 : Identification of schema version
Status : OPEN

David Briggs
There should be some way to identify the version of the schemas that are being mapped.


Issue 002 : Identification of EXPRESS/EXPRESS-X version
Status : OPEN

David Briggs
There should be some way (keyword?) to identify the version of EXPRESS and EXPRESS-X that a mapping is written against.


Issue 003 : Graphical form
Status : OPEN

Robert Armore
There should be a graphical form of EXPRESS-X.


Issue 004 : Mapping attribute type changes
Status : OPEN

Günter Sauter
It should be easy to create defined type maps that handle the case of only the attribute types changing.


Issue 005 : Checking for closure
Status : OPEN

Bill Burkett
It should be possible to check for "closure"; i.e., does everything map to something.


Issue 006 : Execution model
Status : OPEN

Ian Bailey
There needs to be a precise description of the execution model, including default instantiation rules. See also issue 022.


Issue 007 : Optional constructs
Status : OPEN

Ian Bailey
Which constructs are optional? Examples need to illustrate this better, especially with regard to the fully qualified instance names.


Issue 008 : Syntax for conformance classes
Status : OPEN

Ian Bailey
The WSN in the LRM needs to distinguish between the syntax for CC1 and CC2.


Issue 009 : Testing procedures
Status : OPEN

Ian Bailey
Procedures are needed to test for correct implementation.


Issue 010 : Changing WHEN to WHERE (syntax)
Status : OPEN

Ian Bailey
The keyword WHEN should be changed to WHERE to maintain compatibility with EXPRESS. See also issue 011.


Issue 011 : Domain rules or logical expression
Status : OPEN

Ian Bailey
Should the WHEN clause consist of a single logical expression terminated by a semicolon, or a list of one or more domain rules? The advantage of the first approach is that the keyword BEGIN_VIEW is not necessary.

John Valois
The second approach is more EXPRESS-like and may be necessary from the standpoint of the association operator (issue 025).

Ian Bailey
If the first approach is taken, then WHEN should remain as the keyword to reinforce the difference between EXPRESS and EXPRESS-X; otherwise WHEN should become WHERE. See also issue 010.


Issue 012 : External functions
Status : OPEN

Ian Bailey
Some way is needed to declare and call external functions.

Martin Hardwick
The existence of an external function can be documented using existing EXPRESS function syntax, defining a function with an empty body (except for a RETURN statement). It should be left up to the implementors how to link such functions with their actual external definitions.


Issue 013 : Mapping complex entities
Status : OPEN

Ian Bailey
Some way is needed to specify a mapping to and from complex entities.


Issue 014 : Mapping inheritance
Status : OPEN

Ian Bailey
Is there "inheritance" between mappings? I.e., when mapping a subtype, is the map for its supertypes performed first? If not the default, is there a way to specify this behavior as an option?


Issue 015 : User's guide
Status : OPEN

Ian Bailey
A "User's Guide" needs to be written. The LRM will define the language while the UG will illustrate how it is meant to be used. The UG must follow the LRM.


Issue 016 : Semantic meta-model
Status : OPEN

Ian Bailey
A semantic meta-model for EXPRESS-X is needed.


Issue 017 : Coercion syntax
Status : OPEN

Keith Williams
Why are subtype and select coercion distinguished (single v. double curly brackets)? Can't the same syntax be used for both?


Issue 018 : Multiple schema instances of same schema
Status : OPEN

Keith Williams
What is the purpose of declaring multiple schema instances of the same schema? Can this feature be better motivated?


Issue 019 : Constraints on mappings
Status : OPEN

Phil Spiby
Some way is needed to document the relationship between the schemas being mapped via constraints (sort of like "pre-conditions").


Issue 020 : COMPOSE construct
Status : OPEN

Phil Spiby
The COMPOSE construct is used to do too many different things. Each function should be broken out into a separate construct for clarity.


Issue 021 : Template mechanism
Status : OPEN

Keith Williams
Will there be some type of template mechanism, similar to that proposed for EXPRESS edition 2?


Issue 022 : Execution order
Status : OPEN

Keith Williams
What is the order of execution? How can it be controlled? See also issue 006.


Issue 023 : NEW statement
Status : OPEN

Günter Sauter
Is NEW necessary? Can it be deleted from the language?

Phil Spiby
It is necessary, for example, when mapping to a target schema that is semantically richer than the source. Consider the following:
SCHEMA source;                  SCHEMA target;

ENTITY parent; ENTITY parent; children : INTEGER; END_ENTITY; END_ENTITY; ENTITY child; END_SCHEMA; parent : parent; END_ENTITY; END_SCHEMA;

The only way to create the child instances in the target is with a REPEAT loop and NEW.


Issue 024 : Change VIEW to MAP (syntax)
Status : OPEN

Günter Sauter
The keyword VIEW should be changed to MAP. See also issue 029.


Issue 025 : Source/target instance association
Status : OPEN

Günter Sauter
Is the source/target association persistent? Is there anyway to access it elsewhere in the map?

John Valois
STEP Tools has a proposal for an addition to the language for this. See also issue 011.


Issue 026 : Specifying target type
Status : OPEN

Dave Price
If a primitive type (e.g. REAL) is the underlying type for several defined types, how is the resulting data type in the target controlled?

John Valois
The target type determines the type, unless it is a select, in which case the type is specified using the coercion operator.


Issue 027 : Mapping reference paths
Status : OPEN

Felix Metzger
Can EXPRESS-X accomplish the same thing as the reference path in the mapping tables, especially when two complicated paths intersect?


Issue 028 : IS operator
Status : OPEN

John Valois
The operator IS is poorly defined. Its definition should be made precise, perhaps: a IS t is equivalent to 'MYSCHEMA.T' IN TYPEOF(a). In addition, the current syntax does not allow an extended entity reference for 't'.


Issue 029 : Change SCHEMA_MAP to SCHEMA_VIEW
Status : OPEN

Ian Bailey
The keyword SCHEMA_MAP should become SCHEMA_VIEW, and END_SCHEMA_MAP should become END_SCHEMA_VIEW. See also issue 024.


Issue 030 : WHEN TRUE
Status : OPEN

Ian Bailey
The construct WHEN TRUE in view headers should be optional. I.e., in the WSN when_clause should be optional in compose_head and view_head.


Issue 031 : Both SCHEMA and SCHEMA_MAP in syntax
Status : OPEN

John Valois
Is EXPRESS-X an extension to EXPRESS or a distinct (but similar) language? If it is an extension then it should be legal to have both SCHEMA and SCHEMA_MAP in the WSN.


Issue 032 : Initial values
Status : OPEN

John Valois
What are the initial values of entity instance attributes? If a VIEW does not assign a value to an attribute, what is its value? Indeterminate?


Issue 033 : Multiple source instances in general_head
Status : OPEN

John Valois
In the WSN, general_head should allow one or more extended_entity_refs, not just one.


Issue 034 : Mapping direction
Status : OPEN

Adrian Laud
There should be some way to indicate mapping direction; i.e., which schema instance is the source and which is the target.


Issue 035 : Universal quantification
Status : OPEN

John Valois
It may be useful to have access to the set of all instances of a given entity within a population for use with the QUERY functions, for example in the WHEN clause.


Issue 036 : Change FROM statement (syntax)
Status : OPEN

Phil Spiby
The syntax of the FROM statement needs to be changed to something more descriptive.


Issue 037 : Interfacing SCHEMA_MAPs
Status : OPEN

John Valois
Some way of interfacing multiple SCHEMA_MAPs is needed.


Issue 038 : Examples using NEW
Status : OPEN

John Valois
Some of the examples in the manual using NEW to "initialize" aggregates are wrong and should be changed (aggregates do not need to be initialized).


Issue 039 : Replace new with entity constructors
Status : OPEN

John Valois
The NEW operator is confusing; it should be replaced with EXPRESS entity constructors and the complex entity instance construction operator. This would also allow creating complex entity instances, which is currently not possible with NEW.


Issue 040 : Manually instantiated instance (syntax)
Status : OPEN

Ian Bailey
Is there a better syntax for manually instantiated instances (perhaps based on EXPRESS-I)? Why do the variable names need to be prefixed with '#'?


Issue 041 : Mapping between near identical schemas
Status : OPEN

Ian Bailey
Many mappings are between only slightly differing schemas (e.g., mapping to a new version of the same schema). It should be easy to express such mappings, without a lot of trivial "copy" VIEW constructs.


Maintained by John Valois, STEP Tools, Inc. (valois@steptools.com)