> By the way, where it says "There must be at least two interoperable
> implementations...." I think the intent is to say "There must be at least
> two conforming implementations ...", not "There must be at least two
> uniform(?) implementations ..."
> In any case "interoperable" is not the proper term to use. I argued this for
> several years and eventually gave up. But I have to back Larry up on this.
> His definition is the traditional one in standards.
The criterion given in
http://www.w3.org/TR/CSS21/#crec
"There must be at least two interoperable implementations for every feature."
which was adapted from the W3C process document:
http://www.w3.org/2005/10/Process-20051014/tr.html
" Shown that each feature of the technical report has been implemented.
Preferably, the Working Group should be able to demonstrate two interoperable
implementations of each feature."
which used the term "interoperable" without definition or reference.
The phrase itself was taken from (and the process somewhat in reaction
to) the IETF process, described in RFC 2026 (http://too ls.ietf.org/html/bcp9)
without the rest of the context:
In general, an Internet Standard is a specification that is stable
and well-understood, is technically competent, has multiple,
independent, and interoperable implementations with substantial
operational experience, enjoys significant public support, and is
recognizably useful in some or all parts of the Internet.
and
o These procedures are explicitly aimed at recognizing and adopting
generally-accepted practices. Thus, a candidate specification
must be implemented and tested for correct operation and
interoperability by multiple independent parties and utilized in
increasingly demanding environments, before it can be adopted as
an Internet Standard.
and
A specification from which at least two independent and interoperable
implementations from different code bases have been developed, and
for which sufficient successful operational experience has been
obtained, may be elevated to the "Draft Standard" level. For the
purposes of this section, "interoperable" means to be functionally
equivalent or interchangeable components of the system or process in
which they are used. If patented or otherwise controlled technology
is required for implementation, the separate implementations must
also have resulted from separate exercise of the licensing process.
Elevation to Draft Standard is a major advance in status, indicating
a strong belief that the specification is mature and will be useful.
The requirement for at least two independent and interoperable
implementations applies to all of the options and features of the
specification. In cases in which one or more options or features
have not been demonstrated in at least two interoperable
implementations, the specification may advance to the Draft Standard
level only if those options or features are removed.
The W3C process was developed somewhat in reaction to the cumbersome
requirements of the IETF, recognizing that in "Internet speed", most
specifications were well-deployed well before they met the IETF's
stringent qualifications for "Internet standard", but the IETF terminology
and requirements were the basis for the discussions.
The phrase "two independent interoperable implementations of every
feature" was used as a shorthand for the IETF Draft Standards
requirement, but the shorthand was widely misinterpreted, in the
sense that "interoperable" was taken to apply to the part (the
feature) rather than the whole. Apparently that happened with the
CSS committee, which apparently wound up defining "feature" and
"interoperable" without any W3C guidance to the source of those
terms.
Based on experience with HTTP and WebDAV interoperability events,
I drafted a proposed IETF process document:
http://tools.ietf.org/html/draft-ietf-newtrk-interop-reports-00
with the suggestion that someone attempt to make such a report
before going further, which resulted in:
http://tools.ietf.org/html/draft-saintandre-xmpp-interop-report-00
I'm not sure if this is too formal, but it at least captures
a definition of "implementation", "interoperable" and "feature".
Larry
--
http://larry.masinter.net