[wg11] EXPRESS Section 11 question

Alan R Williams alanrw at cs.man.ac.uk
Mon May 24 06:52:27 EDT 2004


Hello everyone,

I've got a question about Section 11 of EXPRESS (interface
specification).

The section states that

"An entity which is either explicitly REFERENCE'd or implicitly
interfaced shall only be instantiated to play the role described by an
attribute of an instantiation of an entity in the schema"

I have no problem agreeing with the explicitly REFERENCE'd entities
restriction.  However, IMO there is a problem wrt implicitly
interfaced objects as shown in Example 80.

SCHEMA s1;

  TYPE t1 = REAL;
  END_TYPE;

  ENTITY e1;
    a : t1;
  END_ENTITY;

  ENTITY e2;
    a1 : e1;
  END_ENTITY;

END_SCHEMA;

SCHEMA s2;
  REFERENCE FROM s1 (e2);

  ENTITY e3;
    a3 : e2;
  END_ENTITY;
END_SCHEMA;

>From the viewpoint of s2,

  s2.e3 is independently instantiatable
  s1.e2 is explicitly REFERENCE'd and is OK because an instance can
	(must) play the role s2.e3.a3
  s1.e1 is implicitly interfaced but there is no way it can play a
	role described by an attribute of an entity in s2.

So ... my question:

Is the "to play the role described by an attribute" restriction meant
to be interpreted loosely and s1.e1 is OK because it can be an
s2.e3.a3.a1?  i.e. it is only _graphs__ of entity instances that do
not contain an independently instantiatable object that are banned.

Or, is Example 80 misleading as s1.e1 really can't be instantiated
validly and so neither can s1.e2 nor s2.e3?

Or some other possibility I haven't thought of.

Thanks in advance,

Alan

Alan Williams, Room IT301, Department of Computer Science,
University of Manchester, Oxford Road, Manchester, M13 9PL, U.K.
Tel: +44 161 275 6270      Fax: +44 161 275 6280



More information about the wg11 mailing list