Re: Formulate erratum text on versioning for the web architecture document

Larry Masinter wrote:

> I think a full finding on versioning might even include a discussion
> of the various mechanisms for versioning, MIME types

I agree, but my interpretation is that our recent decision that Dave will 
publish the earlier work as a note suggests that the TAG is not at the 
moment committed to working toward a full finding on version.  In fact, 
current course and speed is that we will not.  Of course, we can change 
course anytime, but as Dave says, we have beaten our collective heads 
against this tough issue for quite a number of years, and some of us at 
least would like to take a rest from it.

As to the particular ACTION-165 on John, that is only indirectly related 
to any findings on versioning.  It traces to the fact that AWWW has in it 
specific advice [1] suggesting that well designed languages should always 
provide some means of putting explicit version identifiers in instance 
documents, or at least that's how I read it.  I observed some time ago 
that I thought this was not in general correct, I.e. that there are times 
when providing for such identifiers is the right thing, but other times 
when it's arguably a mistake.  Along the way I was asked by the TAG to set 
down some thoughts in the TAG's blog, which I did at [2].

The work immediately before us, and that motivated the action to John, was 
to go back and decide what to do about that little bit of text in AWWW.

John proposes:

> I believe that the best practice is still correct and important - data
> format specifications should provide a mechanism (where that mechanism
> might simply be "use XML namespaces") allowing instances to indicate
> version information. Authors will likely not know whether they will
> later have to create a new, incompatible version of a format a priori,
> but should likely assume that they will.

Well, I still respectfully disagree.  This suggests that a big subset of 
the programming languages we use are poorly designed because they don't 
invite us to say things like:

        <?php PHPVersion="4.1"  ...  ?>

or to put Java version="2.0"  in our Java source files.  I gave my reasons 
in the blog posting, and I won't repeat them here.
 
> I would suggest, however, that perhaps an additional best practice
> might be warranted, along the lines of Noah's suggestion in [3]:
> 
>  "If a language, or data format, changes in incompatible ways, a new
> version identifier should be assigned to the updated data format, and
> allowed in document instances."

Thank you.  I do think that bit is worth saying.  Overall, I might go with 
something like this:

"In cases where the same instance document has incompatible meanings per 
two or more versions of the language specification, provision MUST be made 
for indicating the version(s) used to encode each instance.  Use of 
explicit version identifiers in other languages is optional, and in some 
cases such explict identifiers can actually inhibit the adoption of new 
language versions, or can inhibit interoperability between systems 
implementing differing versions of the language."

...or words to that effect.

As an example of that last admonition, one can argue that XML 1.1 might 
have been deployed much more successfully if no version attribute were 
provided in the XML declaration.  I don't believe it's the case that the 
same document ever had two different legal meanings in XML 1.0 and XML 
1.1;  it's just that some documents are legal in one version and some 
legal in the other.  XML 1.0 processors would have rejected content using 
new XML 1.1 characters just as surely (if not just as early) if no version 
identifier were provided.  The ID is really just a cross check or early 
warning in such cases.  The only time it's really crucial is if the same 
document can mean different things as the specification changes.

Noah

[1] http://www.w3.org/TR/webarch/#ext-version
[2] http://www.w3.org/QA/2007/12/version_identifiers_reconsider.html

--------------------------------------
Noah Mendelsohn 
IBM Corporation
One Rogers Street
Cambridge, MA 02142
1-617-693-4036
--------------------------------------








David Orchard <orchard@pacificspirit.com>
Sent by: www-tag-request@w3.org
02/17/2009 03:34 PM
 
        To:     Larry Masinter <masinter@adobe.com>
        cc:     John Kemp <john.kemp@nokia.com>, "www-tag@w3.org WG" 
<www-tag@w3.org>, (bcc: Noah Mendelsohn/Cambridge/IBM)
        Subject:        Re: Formulate erratum text on versioning for the 
web architecture        document


Larry,

The TAG has spent a great deal of time on versioning over the past 7 
years.  I have focused on it heavily during 3 terms, as well as a year in 
between when I was not on the TAG.  It is extremely difficult to get to 
consensus on what I thought were very simple things, like saying 
"languages intended to be versioned should be extensible." 

I very much agree that there is much much more work that could be done on 
versioning and updating the findings.  You may find it difficult to 
allocate time to versioning compared to other activities on the TAG.   I 
applaud your consideration of the fullness of issues wrt versioning.

This is also directly related to HTML5 WG issue 41, which is that HTML5 
currently precludes support for distributed extensibility.

Cheers,
Dave

On Tue, Feb 17, 2009 at 11:37 AM, Larry Masinter <masinter@adobe.com> 
wrote:
It's pretty clear to me that the findings on versionings
aren't specific enough.

I think a full finding on versioning might even
include a discussion of the various mechanisms for versioning,
MIME types, DOCTYPE, version attributes on root elements,
version elements, the relationship between major and minor
version numbers, the issues and pros and cons of the various
ways of designing languages that are version compatible, and
also address the various issues with deployment, difficulties
of supporting multiple versions in a single set of software,
relationship of scripting to versioning, versioning of
languages that are used in compound XML documents from
multiple namespaces.

Certainly these topics and more are part of the ongoing
discussion of versioning in HTML, see

http://www.w3.org/html/wg/tracker/issues/4

Larry
--
http://larry.masinter.net



-----Original Message-----
From: www-tag-request@w3.org [mailto:www-tag-request@w3.org] On Behalf Of 
John Kemp
Sent: Tuesday, February 17, 2009 7:47 AM
To: www-tag@w3.org WG
Subject: Formulate erratum text on versioning for the web architecture 
document

Hello,

I acquired an action item [1] to investigate whether the AWWW best
practice on versioning [2] should be updated in light of the
versioning work done  by the TAG. Noah wrote a nice description of the
issue on the TAG blog [3] which includes links to the relevant work
done by Dave Orchard on versioning.

The AWWW currently says this, marked as a best practice:

 "A data format specification SHOULD provide for version information."

My understanding of that line is that when designing a data format
specification, the author should provide a mechanism allowing an
instance document, conforming to the said specification, to carry
information pertaining to the version of the specified format with
which the instance complies (where complies _might_ mean 'should
validate against the related XML schema' or something else, at the
specified discretion of the author). Of course, using XML namespaces
in an appropriate manner would be one way by which this best practice
could be applied.

As Noah described in [3], it is not always necessary for a format
author to create an updated version identifier, or require its use in
compliant instances. This particular item is also touched on in the
AWWW in a section on Versioning and XML Namespace Policy [4]

I believe that the best practice is still correct and important - data
format specifications should provide a mechanism (where that mechanism
might simply be "use XML namespaces") allowing instances to indicate
version information. Authors will likely not know whether they will
later have to create a new, incompatible version of a format a priori,
but should likely assume that they will.

I would suggest, however, that perhaps an additional best practice
might be warranted, along the lines of Noah's suggestion in [3]:

 "If a language, or data format, changes in incompatible ways, a new
version identifier should be assigned to the updated data format, and
allowed in document instances."

Regards,

- johnk

[1] http://www.w3.org/2001/tag/group/track/actions/165
[2] http://www.w3.org/TR/webarch/#ext-version
[3] http://www.w3.org/QA/2007/12/version_identifiers_reconsider.html
[4] http://www.w3.org/TR/webarch/#versioning-xmlns

Received on Tuesday, 17 February 2009 21:41:56 UTC