Understanding the "applicable specifications" clause (was: Re: Decentralised extensibility idea (ISSUE-41))

Leif Halvard Silli wrote:
> Tab Atkins Jr., Sun, 17 Jan 2010 10:25:08 -0800:
>> The "applicable specification" clause ensures that the extension is
>> accepted by a large enough group of people to make the validator
>> authors recognize it, which is a reasonable minimum quality bar.
>
> We don't really know how the "applicable spec" mechanism will work. But
> I don't think we'll simply hand it over to the validator team to tell
> what it is.

As far as HTML5 is concerned, a specification is an applicable 
specification when its requirements are recognised as applicable by the 
person checking the conformance of a document.

   "When someone applying this specification to their activities decides
    that they will recognise the requirements of such an extension
    specification, it becomes an applicable specification for the
    purposes of conformance requirements in this specification."

I understand that the implications of this can be difficult to grasp 
since it's so different from the previous approaches, such as using DTDs 
and/or versioning, but this has been done for good reasons that I will 
try to explain.

The first thing to understand is that such a specification could be 
written and published anywhere at all.  There is no requirement that an 
extension specification be published and formally endorsed by the W3C, 
nor, technically, any other standards body.  Standards bodies do, 
however, still have a useful role to fulfil, but I'll get to that later. 
  The point is that neither where a spec is published nor who officially 
endorses it is inherently relevant to the question of whether or not a 
document can conform with its requirements.

All that is relevant is whether or not the person, or software, checking 
the document's conformance chooses to recognise and adhere to the 
requirements of such a specification.  For example, if you choose to 
recognise the content of specification X, whatever that may be, and meet 
its requirements, then you can claim that your document conforms to 
HTML5 plus specification X.

This does not, however, inherently mean that everyone needs to recognise 
specification X.  If you publish that document and someone else looks at 
it who chooses not to recognise (or doesn't know about) specification X, 
they may also claim that the document is non-conforming HTML5. Both 
claims would be right.

This can occur because HTML5 doesn't define any way for documents to 
declare what they conform to, which is by design.  Previous editions of 
HTML allowed authors to explicitly associate their documents with custom 
DTDs which provided limited means by which a document could declare and 
be machine-checked against some additional conformance requirements, but 
this approach has been, and should remain, abandoned.

Henri Sivonen has previously explained why this is so [1]:

   "DTDs pollute the document with schema-specific syntax. Since the
    document itself declares the rules, the question answered by DTD
    validation is not the question that should be asked. DTD validation
    answers the question “Does this document conform to the rules it
    declares itself?” The interesting question is “Does this document
    conform to these rules?” when the person who asks the question
    chooses the rules the question is about."

Note that it's still possible to use custom schemas to validate your 
documents if you like.  Validator.nu even provides UI for it [2].  But 
there is no reason for such schemas to be explicitly linked with your 
document by, e.g. using a custom DOCTYPE or other schema specific syntax.

So, for example, you may choose to recognise the extensions being 
specified by the HTML+RDFa spec as conforming for your documents.  You 
may also produce a custom schema that can be used with the validator to 
assist with conformance checks.  I, on the other hand, choose to regard 
that specification as irrelevant and will regard those extensions as 
non-conforming in my documents.

With it now possible to make a conformance claim for a document with 
regards to any specification, I want to make it clear that I'm not 
suggesting that authors can get away with pretty much anything just by 
writing their own spec and claiming it's applicable.  This would 
completely ignore the goal of interoperability and the benefits of 
widespread review and support.

It's important to separate the idea of a conformance claim from the idea 
of what is considered widely supported and interoperable.  HTML5's 
concept of an applicable specification is not concerned with the latter. 
  But in practice, authors and implementers should be.

This is where standards bodies and industry groups become relevant, 
although they are not essential in all cases.  They provide the platform 
for widespread review and industry support that is usually needed to 
achieve interoperability, which can lead to widespread recognition. 
This allows people to reach agreements about what they will consider 
conforming and what they won't, rather than having everyone claiming 
conformance to and publishing documents using whatever extensions they 
like, which would be a complete mess.

Although this model tends to naturally centralise itself, it is 
effectively a model controlled by the market, as opposed to ivory tower 
spec writers.  This is a good thing and the result of this is that 
simply having a spec published by a standards organisation does not 
inherently mean widespread recognition and support; rather, such support 
must be built from the bottom up, ideally during the spec's development.

This is why the ideas about distributed extensibility (ISSUE-41) are 
bad.  Such extensibility actively encourages extensions without 
attaining widespread support or interoperability.  The idea of using the 
profile attribute as a way to declare extensions, and other ideas to 
provide versioning (ISSUE-4 DOCTYPE versioning), not only fails for this 
reason, but also miss the point of not allowing documents to make 
self-conformance claims.  This is why I believe both ISSUE-4 and 
ISSUE-41 should both be closed with no spec changes.

[1] http://about.validator.nu/#faq
[2] http://about.validator.nu/#details

-- 
Lachlan Hunt - Opera Software
http://lachy.id.au/
http://www.opera.com/

Received on Wednesday, 20 January 2010 10:35:45 UTC