[wg11] Re: [step-os] Using STEPMod XML Representation of EXPRESS

Ed Barkmeyer edbark at nist.gov
Fri Sep 10 10:54:04 EDT 2004


Tanaka-san,

Thank you very much for the clarification.

Fumiki Tanaka wrote:

> 2)Usage of Part28ed2 EXPRESS and requirement.
> 
> My plan to use Part28ed2 is as follows.
> 
> EXPRESS--<tool>-->Part28ed2 --<XSLT>-->XML Schema
> -->(RelaxNG) : I don't have plan now.
> -->XMI
> -->Document
> 
> I need some stable and translative representation for XSLT.
> 
> Sorry, I don't know the stepmod representation, I cannot judge the stepmod
> rep. is better or not.
> However, if that representation can map to these schemas using XSLT, this is
> OK.

I think you will find that this is very much the same kind of concern as 
that of the STEP Open Source folks, and they would probably welcome you 
into that community.

In both the Part 28 v1 markup and the STEPmod markup, Entity, Attribute, 
   Attribute-type, Rule, and so on are marked up.

The primary distinction is in those EXPRESS constructs that involve 
"expressions" of one kind or another.  The STEPmod markup makes the 
whole expression a single CDATA string value; the Part 28v1 markup 
markup makes each variable and operation and subexpression a separate 
XML element.  For example,
   ENTITY snark;
    shares_owned : INTEGER;
    boojum : BOOLEAN;
   WHERE
    wr1: NOT boojum OR shares_owned > 1;
   END_ENTITY;

The STEPmod and P28v1 markups for
   ENTITY snark;
    shares_owned : INTEGER;
    boojum : BOOLEAN;
are similar, both something like:
   <entity name="snark">
     <attribute name="shares_owned">
       <integer-type/>
     </attribute>
     <attribute name="boojum">
       <boolean-type/>
     </attribute>

But the markup for
  wr1: NOT boojum OR shares_owned > 1;

in the STEPmod case is something like:
  <Where-rule name="wr1">NOT boojum OR shares_owned &gt; 1</Where-rule>

while the markup in the P28v1 case is something like:
  <Where-rule>
   <identifier>wr1</identifier>
   <boolean-expression>
     <operation name="OR">
       <operation name="NOT">
         <attribute-ref>boojum</attribute-ref>
       </operation>
       <operation name="&gt;">
         <attribute-ref>shares_owned</attribute-ref>
         <integer-literal>1</integer-literal>
       </operation>
     </operation>
   </boolean-expression>
  </Where-rule>

Part 28v1 produces a parse of the EXPRESS per the grammar in Part 11, 
eliminating only the 1-to-1 reductions.  The STEPmod representation is 
really a representation of the EXPRESS model as captured in the 
"meta-model" of the STEPmod database -- an interpretation of the EXPRESS 
schema into the fundamental concepts of the EXPRESS language.

As David Price points out, unless your intent is to transform the 
EXPRESS to OCL, you don't need to have the expression detail, and the 
parse detail greatly complicates the representation, the processing, and 
the XSLT transforms.

For comparison, in 2000, the OMG community standardized a metamodel for 
UML, and XMI as a means of conveying just such "meta-models" of model 
schemas.  OMG is only just now working on a standard for conveying the 
"syntactic parse" of UML (called "diagram interchange").  In the UML 
model, OCL (where-) rules are attached to classes (entities) as 
'annotations', and in XMI you can choose whether to pass an annotation 
as text or as marked up content.

Personally, I see Part 25v2 as the future standard for the exchange of 
EXPRESS *models*.  But I see a standard meta-model of EXPRESS, 
represented using MOF concepts, as the way to achieve that.  Then we 
don't need to standardize XML markup for EXPRESS models; we just use 
XMI.  With that view, I would recommend that we *reject* JP-5 and 
include no such markup in Part 28.  But I'm not sure that matches David 
Price's view of Part 25, and doing nothing now risks taking another 3 
years to provide a Standard, or worse yet, taking another 4-5 years to 
agree on what the requirements for such a Standard might be.  So, in the 
absence of a clear roadmap for WG11, I am inclined to accept JP-5, pick 
a useful representation, and think of it as an 'interim solution'.

Since Masa-san will be there and David will be there, can we talk about 
this in Seattle?

-Ed

"As they say: For any engineering task, you build one and throw it away;
then you build the real one.  The ISO development process must therefore
be 'SLOW prototyping'."
   -- Brian Meek

-- 
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