W3C home > Mailing lists > Public > www-xml-schema-comments@w3.org > October to December 2009

Re: [Bug 7695] Conformance

From: C. M. Sperberg-McQueen <cmsmcq@blackmesatech.com>
Date: Wed, 7 Oct 2009 16:09:02 -0600
Cc: "C. M. Sperberg-McQueen" <cmsmcq@blackmesatech.com>
Message-Id: <6A644692-1928-4DC3-8E8B-EDFDF0688721@blackmesatech.com>
To: www-xml-schema-comments@w3.org

On 7 Oct 2009, at 14:31 , bugzilla@wiggum.w3.org wrote:

> http://www.w3.org/Bugs/Public/show_bug.cgi?id=7695
> ...
> --- Comment #1 from Noah Mendelsohn <noah_mendelsohn@us.ibm.com>   
> 2009-10-07 20:31:06 ---
> In doing a bit of looking at this issue, I was struck by what may or  
> may not be
> better tracked as a separate concern.
>
> Specifically is the intended distinction (if any) between minimally  
> conforming
> processors (a term formally defined in section 2.4), and  
> "conforming" as used
> in the preamble to Appendix C.1, a clear one?

Just for the record, this member of the WG never believed any
distinction was intended.

> ...
>
> Note also that in 2.4 we say:
>
> "[Definition:]  Minimally conforming processors must  completely and  
> correctly
> implement the ˇSchema Component Constraintsˇ, ˇValidation Rulesˇ,  
> and ˇSchema
> Information Set Contributionsˇ contained in this specification."
>
> That is a bit ambiguous, but at least suggests that the whole PSVI  
> be exposed
> by a minimally conforming processor.

I have never understood it in that way, and never understood it to
have been intended in that way.  As far back in the WG's history
as I can remember, we have contemplated the idea that processors
which expose only part of the PSVI should be conforming processors.
That was and remains my understanding of the conformance requirements
of 1.0, and of those of 1.1.  I agree that the definition of
minimal conformance is not a very clear expression of that state
of affairs, but until bug 7695 was opened I thought the worst that
could be said of it was that it was awkwardly expressed and made
it unnecessarily difficult to understand what was meant; that
did not distinguish it sufficiently from the rest of the spec to
make me want to revise it.

If this difference of opinion about what the meaning of "minimal
conformance" becomes an issue, I suppose it may be necessary to
consult the decision records of the last eleven years for records
that shed light on this question.  Until that time, I am going to
rely solely on memory, with all the dangers of error that that
entails.

I am surprised to see Noah suggesting that it might be a requirement
of minimal conformance not only to implement the infoset contributions
(that is, to generate the appropriate information in the course of
validation) but to expose it to downstream applications.  It would
surprise me no matter who suggested it, but I associate Noah with
consistently strong advocacy over the years for the contrary
position.  I do not remember anyone ever suggesting that minimally
conformant processors are or should be required to expose the entire
PSVI, or assuming that position in building other arguments.  (Until,
that is, MK opened this issue, which made me aware that the definition  
of
minimal conformance is not only awkwardly formulated but subject
to an interpretation which I believe to be a complete reversal
of the documented intention.)

>  Taking the two quotes together, I think
> one concludes that either (1) there are processors that are  
> conforming but not
> minimally conforming, which seems strange to me or (2) the  
> presentations in 2.4
> and C.1 were never reconciled.

I don't believe they are in conflict; as a consequence, it did
not occur to me to believe that they should (or could) be
reconciled.

N.B. while I believe that the two passages are not, when properly
understood, in conflict, I do favor changing the wording
of section 2, which is awkwardly expressed, and which has now been
shown to give rise to undesirable (and I believe unintended)
interpretations.

> I think that cleaning this up is relatively easy, and doing so is  
> likely to
> give us a slightly cleaner backdrop against which to consider MK's  
> concerns.  I
> think I could live with either of the following resolutions, both of  
> which
> collapse the two terms into one.  Either:
>
> A)  In section 2.4  change the text to read
>
> "Minimally conforming processors must  completely and correctly  
> implement the
> ˇSchema Component Constraintsˇ, ˇValidation Rulesˇ, and,  
> >optionally, some or
> all of the< ˇSchema Information Set Contributionsˇ contained in this
> specification.""

That change would suggest that implementing an infoset contribution
is the same as exposing the information to a downstream processor.
That suggestion, in turn, seems to reflect yet another recurrence
of confusion between information sets and APIs.

> Change section C.1 to read:
>
> "...the information set taken as input is augmented in the course of
> schema-validity assessment. >Minimally conforming< processors >MAY<  
> provide
> access to some or all of this information..."
>
>    -- or --
>
> B)  Get rid of the term minimally conforming completely.  In its  
> place, make
> "conforming processors" a termdef" in section 2.4, and change the  
> text to read
>
> ">All< ˇconforming processorsˇ must  completely and correctly  
> implement the
> ˇSchema Component Constraintsˇ, and ˇValidation Rulesˇ.   
> >Additionally,
> conforming processors MAY report some or all of the< ˇSchema  
> Information Set
> Contributionsˇ contained in this specification. >(See Appendix C.1)<""

I'm not sure I understand the proposal.

I think you are suggesting that the text you give ("All conforming
processors must ... (See Appendix C.1)") be marked as a definition
of 'conforming processor'.  (But then why is 'conforming processors'
marked as a term REF in the proposed text?)  But the words given are
not in the form of a definition, and (like many other locations in
the spec which I continue to find confusing they seem to conflate the
act of defining a term with the act of specifying conformance  
requirements.

The wording here does have the advantage that "MAY report" is
a better way of phrasing what it is that processors may or may not
do with infoset contributions.

A different small change to the definition of 'minimally conforming
processors' might serve a similar purpose:

    [Definition:]  A minimally conforming processor is one
    which implements the rules given in this specification,
    insofar as they affect the processor's behavior or the
    information it exposes.

But I think that if the WG agrees to reconsider what classes of
conforming software to define, then wordsmithing the current
definition of minimal conformance may prove pointless.  Let us
draft clear definitions of the conformance classes we wish to
specify, once we know what those are.

-- 
****************************************************************
* C. M. Sperberg-McQueen, Black Mesa Technologies LLC
* http://www.blackmesatech.com
* http://cmsmcq.com/mib
* http://balisage.net
****************************************************************
Received on Wednesday, 7 October 2009 22:09:34 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Sunday, 6 December 2009 18:13:17 GMT