- From: Michael Kay <mike@saxonica.com>
- Date: Fri, 25 Feb 2011 18:59:37 +0000
- To: "C. M. Sperberg-McQueen" <cmsmcq@blackmesatech.com>
- CC: www-xml-schema-comments@w3.org
> Should one take the filing of this bug report as a signal that you > do not find the analysis in > > http://lists.w3.org/Archives/Member/w3c-xml-schema-ig/2011Feb/0014.html > > persuasive? > I think what it boils down to is how one reads this: If a schema document P contains an <override> element E pointing to some schema document Q, then schema(P) contains not only the components in immed(P), but also the components in schema(override(E,Q)) My reading is that this definition is circular with no terminating condition. But MSMcQ appears able to read it in a sense where it's somehow obvious that you stop when you reach closure. I'm not sure whether or not that latter reading depends on the paragraph "If applying the override transformation specified in Transformation for xs:override (§F.2) to D and E results in a schema document equivalent to D" to supply a terminating condition. Also, I'm not sure whether or not that paragraph is part of a Note, and therefore non-normative. I think MSMcQ is reading it rather like one might read the statement "The income of a married person is to be taken as including the income of their spouse". It would take a moron or a computer (or a particularly evil taxman) to try to evaluate this as income(John) + income(wife(John)) + income(husband(wife(John))) + .... Trouble is, a computer is the only tool I have, and that's how it's interpreting it. So, where do I inject the intelligence that tells the computer when to stop? It isn't just a question of recognizing that husband(wife(John)) is John (the identity problem). It's also a question of recognizing that we are evaluating a union (and not, for example, a sum), and that therefore repeated evaluation of the same function has no effect on the outcome: the rule we are instinctively applying is union(income(S), income(S)) = income(S), not sum(income(S), income(S)) = 2*income(S). With this understanding, I think I can now read the sentence above and see how I was supposed to read it. Next question: how can I rephrase it so we don't put all our readers through the same agony? Michael Kay Saxonica
Received on Friday, 25 February 2011 19:00:06 UTC