- From: <noah_mendelsohn@us.ibm.com>
- Date: Tue, 17 Feb 2009 16:42:49 -0500
- To: David Orchard <orchard@pacificspirit.com>
- Cc: John Kemp <john.kemp@nokia.com>, Larry Masinter <masinter@adobe.com>, "www-tag@w3.org WG" <www-tag@w3.org>
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