Findings in FDIS 10303-11:2003
Günter Staub
staub at pdtec.de
Fri Aug 8 03:45:07 EDT 2003
All,
during some implementation work done here at PDTec, we found a number of
issues/bugs in the camera ready version of EXPRESS (WG11/N210, Date
2003/07/21). See below for details.
Comments/discussions are welcome!
Rgds,
Gunter
PDTec GmbH ------------------------------------------
Dr. Guenter Staub Fon: +49-721-61844-11
Haid-und-Neu-Str. 7 Fax: +49-721-61844-19
D-76131 Karlsruhe Email: staub at pdtec.de
Germany Web: www.pdtec.de
------------------------------------------------------------------------
Chapter G.3.2, page 206, Example 1:
The single quotes used there are typographical quotes not ASCII(27) !
Therefore a cut and paste of examples leads to errors.
Note that this kind of wrong quoting character is used in other places as
well.
Chapter G.5.3.1, page 224, Example 1: The enumeration "gender" uses the
reserved word "unknown" !
Chapter G.5.5, page 230, Example 1 and paragraph above example: Example does
not compile, because reference to "binary_entity_relationship" instead of
"binary_relationship" Paragraph above refers also to the wrong entity_name
Furthermore not clear how to handle a case of
...
end_one : SET OF GENERIC_ENTITY
...
or
...
end_one : AGGREGATE OF GENERIC_ENTITY
...
What would be the rules in these cases?
Chapter G, especially ordering of G.5.5 and G.5.3.2 : There can be cases
constructed where the normal ordering of steps leads to wrong results
-------------------------------------------------------------------------
SCHEMA import; -- Example Test_G55_Ex_2.txt
ENTITY action_assignment ABSTRACT;
set_of_items : SET [1 : ?] OF action_items;
items : action_items;
END_ENTITY;
TYPE configuration_effectivity = NUMBER;
END_TYPE;
TYPE action_item_203e2 = SELECT BASED_ON action_items WITH
(configuration_effectivity);
END_TYPE;
TYPE action_items = EXTENSIBLE GENERIC_ENTITY SELECT ;
END_TYPE;
TYPE action_items_2 = EXTENSIBLE GENERIC_ENTITY SELECT
(action_assignment);
END_TYPE;
ENTITY applied_action_assignment
SUBTYPE OF (action_assignment);
SELF\action_assignment.set_of_items : SET [1 : 5] OF action_items;
SELF\action_assignment.items : configuration_effectivity;
END_ENTITY;
END_SCHEMA;
-------------------------------------------------------------------------Doi
ng G.5.3.2 first converts extensible Selects into standard selects. By this
step G.5.5 cannot applied since the "GENERIC_ENTITY" is no longer there.
Chapter G.4.4 :
It is not explicitly written, that the pruning step has to be iterative
until no more changes occur. Since pruning of rules could lead to things in
the artifact schema which should not be there. Example below:
-------------------------------------------------------------------------
SCHEMA s1;
ENTITY e1;
END_ENTITY;
ENTITY thing;
END_ENTITY;
ENTITY function_thing_local;
END_ENTITY;
ENTITY function_thing_inp;
END_ENTITY;
ENTITY e2 SUBTYPE OF (e1);
END_ENTITY;
ENTITY e3 SUBTYPE OF (e1);
END_ENTITY;
SUBTYPE_CONSTRAINT sc_total_over FOR e1;
TOTAL_OVER (e2, e3);
END_SUBTYPE_CONSTRAINT;
RULE e2_and_e3 FOR (e2, e3);
-- rule body
WHERE
wr1 : f2(TRUE);
END_RULE;
FUNCTION f1(inp : function_thing_inp) : BOOLEAN;
LOCAL
a : function_thing_local;
END_LOCAL;
RETURN(TRUE);
END_FUNCTION;
FUNCTION f2(inp : BOOLEAN) : BOOLEAN;
LOCAL
a : function_thing_local;
END_LOCAL;
RETURN(TRUE);
END_FUNCTION;
END_SCHEMA; -- end s1
SCHEMA import;
REFERENCE FROM s1 (function_thing_inp);
REFERENCE FROM s1 (e2);
END_SCHEMA; -- end import
------------------------------------------------------------------------
Without iteration this would lead to inclusion of "f2" and
"function_thing_local" which a per se not part of the longform.
To get rid of "function_thing_local" a pruning of entities which are not
referenced and not brought into the schema through USE_FROM or
REFERENCE_FROM has to take place.
PDTec GmbH ------------------------------------------
Dr. Guenter Staub Fon: +49-721-61844-11
Haid-und-Neu-Str. 7 Fax: +49-721-61844-19
D-76131 Karlsruhe Email: staub at pdtec.de
Germany Web: www.pdtec.de
More information about the wg11
mailing list