[wg11] SEDS for EXPRESS (10303-11:2004)
Ed Barkmeyer
edbark at nist.gov
Fri May 27 18:24:16 EDT 2005
All,
Following Phil's email, I made a number of changes to the EXPRESS
metamodel. I attach a drawing of a new addition to the diagram set.
I hope this is what Phil meant and what Part 11 was trying to say.
Although it isn't what I thought, it makes sense to me (now).
A SingleEntityValue represents a collection of values for the explicit
attributes contained in a single EXPRESS entity declaration, and the
SingleEntityType represents the "data type" of that collection, i.e. the
data type of the output of the "implicit" partial entity constructor and
the group (\) operator for that entity data type.
A PartialEntityValue, per Part 11 (after TC2), represents one or more
SingleEntityValues packaged together. This represents the output of the
"entity instance constructor" (||) operator, as well as the operators
above. This may not correspond to any actual entity data type, because
it is missing the values of some required supertype. (Part 11 says
this.) A PartialEntityType is the data type of one of those collections.
"Without loss of generality", a PartialEntityValue (-Type) consisting of
exactly one SingleEntityValue (-Type) is "equivalent to" that
SingleEntityValue (-Type). That is why the diagram shows
SingleEntityValue (-Type) as a subtype of PartialEntityValue (-Type).
Now some PartialEntityValues contain all the attributes needed to
represent an EntityInstance of a given EntityType, i.e. they have
SingleEntityValues for an EntityType and all of its supertypes. Those
are called EntityValues in the diagram. They correspond to a true
EntityType, and not just to the SingleEntityType derived from it.
An EntityValue also represents the state of a "conceptual"
EntityInstance at some point in time (e.g. the time of the exchange).
It may be the state of more than one distinct EntityInstance, which is
why Part 11 says EntityInstances are "named" EntityValues. (Hmm. The
diagram should have an id:InstanceName attribute on EntityInstance. I
had a battle with the Poseidon tool about this, and I guess I lost.)
An EntityInstance/EntityValue can be "characterized" by a single leaf
node in the subtype/supertype graph, if all the attributes of that
instance are either declared for or inherited by the named entity data
type at that node. Those are the instances that can use "internal
mapping" in Part 21, and that is what is meant by a SingleLeafInstance.
An instance that is an ANDOR of two or more leaf entity types, so
that no one entity data type declares/inherits all of its attributes is
a MultileafInstance. Those are the instances that require "external
mapping" in Part 21. (The term Multi-leaf Instance appears in Part 11,
clause 3.3 and is never used; the term Single-leaf Instance doesn't.)
If everyone agrees that this was the intended model, we can make the
necessary fixes to the Part 11 definitions (and one or two other places)
to make this clear.
Phil says that he personally believes the values of an entity data type
are EntityValues, not EntityInstances. The text of Part 11 is a bit
confused on this point. I find it more useful to insist that the
instances of an EntityType are EntityInstances, each of which has a name
and a corresponding "state", which is an EntityValue. One can always
extract the Value from the Instance when needed. The other way around
doesn't work: An EntityValue can correspond to (be the state of) zero
or more EntityInstances, and in general you have no way to know which
one is intended.
Some applications don't want certain EntityValues to be distinguished by
"names", e.g. for my tool, all values of Cartesian_point at the same
coordinates are the same point. But you can always write rules and
programs that compare entities by value if you started with "instances",
and you can thereby ignore the "names". But you cannot do anything
meaningful about distinguishing "Instances" if Part 11 insists that
EXPRESS only describes the Values.
The point of the SEDS and the attached diagram is that one can make the
text of Part 11 clear on these points, using a somewhat complicated but
clearly structured (meta)model. The result can clearly define all the
existing operators and functions, and it should break no existing
schemas that were clear as to their intent. I would also be surprised
if this model breaks any existing EXPRESS or SDAI tools, although it may
bring to light some dubious practices on both the modeling side and the
tooling side.
-Ed
P.S. The discussion thus far has shown that two of the would-be SEDS
should be somewhat (ranging to significantly) modified before they
become official. I will do that in the near future.
P.P.S. I would have drawn the attached diagrams in EXPRESS-G, but I
don't have an EXPRESS-G tool that still works, and one annoying modeling
tool per week is about all I can take. ;-)
--
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."
-------------- next part --------------
A non-text attachment was scrubbed...
Name: EntityValues.jpg
Type: image/jpeg
Size: 43286 bytes
Desc: not available
Url : http://lists.steptools.com/pipermail/wg11/attachments/20050527/3ec4a4c1/EntityValues.jpg
-------------- next part --------------
A non-text attachment was scrubbed...
Name: EntityValues.wmf
Type: video/x-ms-wm
Size: 43720 bytes
Desc: not available
Url : http://lists.steptools.com/pipermail/wg11/attachments/20050527/3ec4a4c1/EntityValues.bin
More information about the wg11
mailing list