- From: <noah_mendelsohn@us.ibm.com>
- Date: Fri, 8 Sep 2006 21:03:40 -0400
- To: Dan Connolly <connolly@w3.org>
- Cc: www-tag@w3.org
- Message-ID: <OFD4DF1C3E.B06290B6-ON852571E4.00019321-852571E4.0005D492@lotus.com>
On our call this week I had a much appreciated opportunity to discuss the first of my significant comments on the versioning draft (I.e. the first one at [1]). Your recent note [2] is a good openning for me to bring up another comment I made, one we did not yet discuss in detail: Dan Connolly wrote: > I'm pretty sure that the term "backwards compatible" can be > completely defined in terms of intent, text, etc. and a bit of logic. I want to make the case that we need to discuss compatibility not just at the information transfer level, but also in terms of how programs behave and in terms of what users consider to be a successful result of processing. First of all, I agree completely with what I think you're trying to say, which is that insofar as what we mean is: "the texts are in both languages, and the information they convey in the two languages is either the same or sufficiently close", you have a good definition of backward compatibility at the information level. Furthermore, I agree that we should be able to tell that story in terms of {text, intent, logic}. Indeed, that was exactly my hope in making the comments we discussed on Tues. The concern I want to discuss here is that, while the above is a very important building block for us to put in place, it does not define compatiblity as users in practice worry about it. There is another related view of compatibility that has only indirectly to do with languages, texts and information. Stated informally: "a given text is compatible with my program if that program will produce results that I consider acceptable when processing that text". Similarly, "a given language is compatible with my program if that program will produce acceptable results from all texts in that language". That's a very different notion of compatibility, and we need to keep them separate. Let's call the sort of compatibilty you were discussing "information compatibility" and this other one "program compatibility". First of all, program compatibility is not an all or nothing thing. That's one of the reasons I want to be careful with glib use of the term "backwards compatible" at the program level (it's fine at the information level as you use it). Consider the attached HTML file. The W3C Validator says it's valid HTML transitional. If you open it in Firefox, it's a bit ugly, but it basically works. You can see the whole thing, but if your display isn't pretty wide you'll probaby have to scroll. Now stay in Firefox and try "Print Preview". I think you'll see that information is lost. So, if this file had come from a program writing some newer version of HTML would we consider it backwards compatible? I think we all believe that internally Firefox has extracted all the intended information from it (I bet that even their printing support isn't internally failing to correctly interpret the <td>...</td> and extract the long string), but many users would say "That file is not compatble with Firefox's printing support", and they'd be right. My point is that I want to tell the story at both levels. I think you're on the right track with the information compatibility part, but I want to talk about program compatibility too, because that's what users really care about. Explaining the difference could be very helpful, I think. What is the relationship? Well, as best I can tell, to perform whatever function, a program will depend on some or all of the information it gleans from the input. However, even if the program gets all the information correctly, it may still not behave well for other reasons, as was the case with Firefox. It may even perform according to specification, but just not do what the user wants. Interestingly, it's also possible that information was lost or mangled due to language mismatch, but that the program doesn't care about the part that's in error. In that case, the program will behave compatibly for the purpose, even though there was some incompatibility at the information transfer level. The draft finding does try to tell a story about program compatibility, but I don't think the approach taken really works well. As I understand it, the draft proposes that we characterize each program by language that it accepts. In the Firefox example, we'd have to talk about at least two HTML languages: the one that it can display on the screen, and the one that it can successfully print. The problems I see are that, first of all, it's very hard to define at the text level which input strings will cause a given version of Firefox to clip it's print outout. There also would be a tremendous proliferation of versions to discuss. In fact, you can get the attached file to print in Firefox by setting the printing scale to 30%: should we say there's a different version of the HTML language for each possible setting of the Firefox Print Scale (and Font, etc.)? It's coherent intellectually, but it's not how people think about these things. I'd rather that the finding admit that there's just one version of the HTML language involved in this scenario, that Firefox is presumed to be completely compatible with that language at an information transfer level, but that for certain purposes it may still not behave compatibly at the program level. By the way, mustUnderstand can be much better modeled at the program level than the information transfer level, I think, but that's a subject for a different note. Bottom line: I'd like the finding to have some sections on information transfer compatiblity, and I agree that at that level the formalism you're looking at is a good start. I also want the finding to talk about program compatiblity, and how at that level you need to define compatibility in terms of what you consider to be a successful outcome. Indeed, at that level, it's even reasonable to consider an input as incompatible if a correct result is produced, but if the time taken to do it is impractical. Noah [1] http://lists.w3.org/Archives/Public/www-tag/2006Aug/att-0111/versioning26July2006withNoahComments.html#noahComments [2] http://lists.w3.org/Archives/Public/www-tag/2006Sep/0043.html -------------------------------------- Noah Mendelsohn IBM Corporation One Rogers Street Cambridge, MA 02142 1-617-693-4036 --------------------------------------
Attachments
- text/html attachment: bigtable.html
Received on Saturday, 9 September 2006 01:03:56 UTC