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)