SEDS on EXPRESS: USE FROM on
Ed Barkmeyer
edbark at nist.gov
Tue Mar 2 11:26:12 EST 2004
Lothar Klein wrote:
> Problem Description:
> With a USE FROM *all* only all the data types get interfaced, but not
> functions, procedures and constants. To get them in as well an
> additional REFERENCE FROM *all* would be needed. Since USE FROM on a
> data type takes precedence over a REFERENCE FROM this is not what
> schema developer like to do.
I don't understand this last sentence.
It is SC4 policy to require USE statements in APs and to disallow
REFERENCE statements. This SEDS identifies a problem, but the
second sentence suggests that the solution is already provided
for in Part 11. So the solution to the stated problem appears to
be to amend the policy rather than the standard.
But perhaps the last sentence is intended to convey another part
of the problem that I don't understand.
> Conditions Under Which the Issue Was Discovered:
> Module development
>
> Proposed Solution (Optional):
> After this sentence
> "If there are no named_types specified, all of the named data types
> declared within or USEd by the foreign schema are treated as if
> declared locally."
> add
>
> "In addition all of the following EXPRESS items declared within or
> referenced by the foreign schema are made visible in the current
> schema:
> - Constant;
> - Function;
> - Procedure."
It is very much the intent of clause 11 that REFERENCE is the
primary link between schemas, and therefore that
REFERENCE FROM S;
imports the entire definition space of S into the definition
space of the current schema, making all the supporting elements
in S -- TYPEs, FUNCTIONs, RULEs, CONSTANTs, etc. -- usable in the
current schema.
USE FROM S (ent);
on the other hand, adds a very specific notion -- that the entity
"ent", defined in S, is a *primary* and *independent* object
class in the current schema. That property cannot *ever* apply
to constants, functions, procedures, rules, or TYPEs. They are,
by their nature, *dependent* notions, in that they are only
meaningful (and can only be used) in describing properties of
entity data types.
It was very clearly the expectation of the 1994 EXPRESS standard
that the structure of an exchange schema would be:
SCHEMA exchange-1;
REFERENCE FROM <support-schema-1> (* all *);
REFERENCE FROM <support-schema-2> (<support elements>);
...
REFERENCE FROM <major-concept-schema>(<dependent elements>);
USE FROM <major-concept-schema>(<primary entities>);
USE FROM <major-concept-schema-2>(...);
...
END_SCHEMA;
I understand Lothar's complaint to say that that model of an
exchange schema "is not what schema developer[s] like to [use]".
Why not? It is the model that the EXPRESS language was
designed to support.
Now the formerly unwritten SC4 "quality" directives did in fact
*forbid* that model to be used, whether "schema developers" liked
it or not. That policy required APs to contain *only* USE
statements, which makes no sense. But that mistake is easier to
reverse than changing the standard.
However, if we are going to change the standard to "what schema
developers are used to using" (as in C++, Java, UML and XML
schema), we should delete both USE and REFERENCE and substitute
IMPORT, which has only the syntactic behavior of copying
declarations verbatim from one schema to another. It has *no*
"interfacing" semantics (dependent, independent, explicit or
implicit). (We would want to keep the SELECT-type pruning
rules.) And selective IMPORT can, unlike EXPRESS "interfacing",
result in importing declarations with undefined symbols. But
that is "what schema developers are used to", because that's what
you get in Java and C++, and even less in UML and XML schema
(which have no selective import).
-Ed
"Be careful what you wish for. You may get it."
-- traditional
(is William W. Jacobs' "The Monkey's Paw" the original?)
--
Edward J. Barkmeyer Email: edbark at nist.gov
National Institute of Standards & Technology
Manufacturing Systems Integration Division
100 Bureau Drive, Stop 8264 Tel: +1 301-975-3528
Gaithersburg, MD 20899-8264 FAX: +1 301-975-4694
"The opinions expressed above do not reflect consensus of NIST,
and have not been reviewed by any Government authority."
More information about the wg11
mailing list