- From: <Noah_Mendelsohn@lotus.com>
- Date: Fri, 28 Apr 2000 19:12:23 -0400
- To: Dan Connolly <connolly@w3.org>
- Cc: cmsmcq@acm.org, ht@cogsci.ed.ac.uk, reagle@w3.org, www-xml-schema-comments@w3.org
Dan, I think you're presuming answers to a versioning architecture for XML and namespaces. I believe that to be a known hard problem which, in spite of my suggestions to the contrary [1], the XML activity has so far declined to formally consider (I believe it was discussed informally at a CG meeting, perhaps in Montreal last year.) Everything you propose, i.e. immutable namespaces, makes sense in isolation. The problem I see is that none of the other necessary XML machinery has been developed. Let's assume that some particular vocabulary undergoes within a year 20 minor modifications, mostly bug fixes,introducing little incompatibilities that are not of concern to the vast majority of users. So, over the course of the year, 100,000 documents are written to this vocabulary, 5,000 in each of the 20 namespaces. Question: how do I build and maintain 30 XSL stylesheets that do the right thing with these documents? For the sake of discussion, none of the stylesheets happen to make use of any of the features that were affected by the 20 bug fixes. Were it not for the decision to make namespaces immutable, a single set of 30 stylesheets would suffice, and none of the 30 would have required change through the year. Presuming immutable namespaces, which do indeed have many desirable architectural properties, I either need 600 stylesheets (30 useful sheets x 20 namespaces used in the instances), or some rather messy disjunctions in each of my XPaths. I do not propose that we go into an extensive discussion of versioning here. I merely wish to agree with Henry that the answers are far from clear, and in that sense we are feeling our way. I think we are far from having worked out the practical ramifications of any particular fixed design for versioning, including any that might be based on immutable namespaces. It is my opinion that almost anything practical we do for robust versioning of XML vocabularies will require some serious engineering in one or another of our existing XML specifications (e.g. XPath, if you believe the analysis above). Pending such developments, I think we in the schemas group will have to make decisions that are somewhat ad hoc at times, perhaps republishing minor fixes as changes to the same namespace, with some means of deploying new ones for major changes. In short, I think we are about to get bitten by an overall lack of investment in figuring out how to do namespace and vocabulary versioning in a robust manner. Maybe I am just being too pessimistic. [1] http://lists.w3.org/Archives/Member/w3c-xml-plenary/1999Oct/0019.html (My apologies to those on the schema comments list who cannot access this member-only e-mail archive. The note basically suggests that versioning is an important problem that will rear its head soon, and points out some of the issues to be considered.) ------------------------------------------------------------------------ Noah Mendelsohn Voice: 1-617-693-4036 Lotus Development Corp. Fax: 1-617-693-8676 One Rogers Street Cambridge, MA 02142 ------------------------------------------------------------------------ Dan Connolly <connolly@w3.org> 04/28/00 06:48 PM To: "Henry S. Thompson" <ht@cogsci.ed.ac.uk> cc: "Joseph M. Reagle Jr." <reagle@w3.org>, www-xml-schema-comments@w3.org, "C. M. Sperberg-McQueen" <cmsmcq@acm.org>, Noah_Mendelsohn@lotus.com Subject: Re: XML Schema working with DTDs? "Henry S. Thompson" wrote: > > "Joseph M. Reagle Jr." <reagle@w3.org> writes: > > > I used to both schema and DTD validate, but I didn't realize these things > > had moved. I'll try using these URLs and see if it still works. However, > > this policy of locating the schema and DTD at the namespace is pretty > > confusing. I appreciate you don't want to change the namespace every time > > you issue a new draft and I hope you would try every time you made a > > substantive change, because now the result is that even if I write my XML > > instance that (today) validates under [1,2] next time you pout out a new > > draft it won't! Before, not updating your namespace violated a philosphical > > point (but the actual dtd and schema were in a more specific (month) date > > space). Now you are violating a more practical point, if I have an example > > that works now based on something in date space it won't in the future. (I > > think, right?) > > > > [1] http://www.w3.org/1999/XMLSchema.dtd > > [2] http://www.w3.org/1999/XMLSchema.xsd > > Well, it's a difficult point. I'd say we don't _have_ a namespace > yet, we're just working towards having one, and using the same name so > people will get used to it as the XML Schema namespace. Really? That seems like an odd way of looking at things, to me. It's quite clear to me that we have a namespace; the definition is what you get back from http://www.w3.org/1999/XMLSchema. And if we change the definition, it's sort of antisocial to re-use the old address, as Joseph has observed. Though this is work-in-progress stuff, and we don't really plan to support drafts once they've been superceded, we might as well avoid the sort of problems Reagle is having when it's easy to do. > I appreciate your point about things going stale -- if we ever make a > backwards incompatible change, we'll put the old schema and dtd > somewhere in date space and you can use them for your stale documents. Again, that seems backwards; if we make backwards-incompatible changes, the thing to do is to leave the old one alone and use a new identifier for the new definition. It's not really fair to expect folks to change pointers in old documents. If we decide to break their old documents, i.e. to not support them, that's one thing. But the way to support them, if we're going to go to any trouble at all, is to just leave the old definition in place if we make a new, incompatible one. > We're in new territory here (never before has there been a definitive > and operational anything _at_ a namespace URI before), I don't really see how this is all that novel... namespaces are just like any other resource, and Joseph is just reminding us that immutable resources solve a lot of versioning problems. COM uses this idea: "Interfaces are immutable contracts ? you cannot define a new version of an old interface and give it the same identifier. Adding or removing methods of an interface, or changing semantics creates a new interface, not a new version of an old interface. Therefore a new interface cannot conflict with an old interface." -- Interface Pointers and Interfaces January 05, 2000 http://msdn.microsoft.com/library/psdk/com/com_37w3.htm Ted Nelson calls it "stable publishing". The RDF spec uses this idiom too: "Since changing the logical structure of a schema risks breaking other RDF models which depend on that schema, this specification recommends that a new namespace URI should be declared whenever an RDF schema is changed. " http://www.w3.org/TR/2000/CR-rdf-schema-20000327/#s4.1.2 > Dan and I have > been making policy by the seat of our pants, by all means lets keep > discussing this, but move the archiving to the public comments list > (see addresses above). to the exclusion of xmlschema-dev? why pass up the opportunity for mutual education? -- Dan Connolly, W3C http://www.w3.org/People/Connolly/
Received on Friday, 28 April 2000 19:16:57 UTC