What is a <syntax> (from: E2 to E1 SHTOLO test files)

Ed Barkmeyer edbark at nist.gov
Tue May 7 15:41:43 EDT 2002


All,

I think Jochen is right that we may need to be clearer as to what a <syntax>
object is.  There seem to be three interpretations that are not quite the
same:
 - some collection of Express schemas,
 - the collection of Express schemas in a single "file",
 - one or more short-form schemas and the transitive closure of the
"interfaces" (USE/REFERENCE) relationships out of them.

I always thought that a <syntax> corresponded to a "Part" of ISO 10303,
until Peter observed that the set of schemas in Part 53 consists of
multiple "files".  (Because I also always thought of a "Part" as a
single logical "file".)

The problem with "file" is that it no longer means "the largest 
unit of information submitted to a single process".  It now only means
"some collection of information conveniently managed as a unit for
computer operating system purposes."  So I don't think it means
anything to say a "syntax" is a "file".  It is the same as the first:
some collection of Express schemas.

And we could use the first interpretation -- a "syntax" is any 
collection of Express schemas packaged together.  In that case, every
schema has an associated language-version-id, and putting the 
language-version-id in front of the syntax associates that version
with every schema in the package.  But then it is the schema that has 
the language version; the syntax is just a convenience.  And then we do 
have to talk about E2 schemas interfacing E1 schemas and vice versa.

Or we could use the third interpretation, which *is* "the largest unit 
of information submitted to a single process", that is, the set of all 
schemas that are submitted to an Express parser for a single 
'compilation'.  Not only the file you submit but also any file that it 
has to open in order to satisfy a USE/REFERENCE.  (This is analogous 
to the XML concept of a "document", which may consist of any number of 
"files" that are incorporated by reference.)

That seems to be what Phil meant by a "syntax", and upon reflection,
I think that is the only meaning that is well-defined.  And in that 
view, you cannot have "an E2 schema interfacing an E1 schema".  The
parser is processing a *closed* "syntax", which consists of a set of
schemas in which any unsatisfied USE/REFERENCE is an error.  The
<syntax> is either E2 -- the version(4) conformance class -- or E1 --
the version(3) conformance class; it cannot be a mix.

So I agree we should define <syntax>.  But "file" is the same as
"any collection of schemas".  And the alternative is "all the 
schemas you need".  So does the language-version-id associate with 
"all the schemas you need" or "each schema separately"?

-Ed

-- 
Edward J. Barkmeyer                       Email: edbark at nist.gov
National Institute of Standards & Technology
Manufacturing Systems Integration Division
100 Bureau Drive, Mail Stop 8260          Tel: +1 301-975-3528
Gaithersburg, MD 20899-8260               FAX: +1 301-975-4482

"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