- From: Sandro Hawke <sandro@w3.org>
- Date: Tue, 22 Apr 2008 16:15:20 -0400
- To: "Michael Kay" <mike@saxonica.com>
- Cc: "'Michael Rys'" <mrys@microsoft.com>, "'Jonathan Robie'" <jonathan.robie@redhat.com>, "'David Carlisle'" <davidc@nag.co.uk>, "'Jos de Bruijn'" <debruijn@inf.unibz.it>, public-qt-comments@w3.org, "'Jim Melton'" <jim.melton@acm.org>, "'Andrew Eisenberg'" <andrew.eisenberg@us.ibm.com>
> > What harm will be done to the Web by RIF assigning a namespace to > > the XQuery/XPath operations? > > The same harm that arises in any system if an interface that was designed to > be internal to a subsystem is promoted to a public global interface without > examining the consequences. For example, the user of this interface will > have a different expectation about the stability of the interface from its > supplier, and that will inevitably lead to tensions as the specs evolve. > > One of the technical issues is that the specification of these internal > functions makes many assumptions about the calling environment, for example > with respect to things such as type promotion of operands. Because the > specifications were written with one particular calling environment in mind, > these assumptions might not be clearly exposed. Can you spell out for me how that might actually manifest? There are some different RIF deployment scenarios, but probably the most useful is this: some developer of a rule engine implements a translator from RIF to their implemented language ("Import RIF Document" to the user) and a translator to RIF ("Export as RIF"). In this situation, the import translator has to convert every RIF document (in some defined profile/dialect) into something that runs correctly on the local system. The RIF document may have rules which use various built-in operations defined in our spec as matching XPath operations, like op:numeric-less-than. The implementor of this translation code has to turn the op:numeric-less-than in RIF into *something* which does the same thing in their rule engine. In that case, they probably have a "<" they can use, but it might not handle types and exceptions correctly. In the case of others fn:escape-html-uri, it's probably not built into their system and they'll need to emit a ruleset which binds to some library of procedures. That library could implement fn:escape-html-uri, or it could be linked to an xpath implementation, and us its implementation. This is all quite hidden from the user. They shouldn't need to know whether an xpath implementation is used under the hood. Where is something likely to go wrong because the RIF import translator looked for something like op:numeric-less-than in some stand namespace for op? -- Sandro
Received on Tuesday, 22 April 2008 20:16:54 UTC