Re: XQuery Update Facility Working Drafts

Glad to see the XQuery working group is working on the Update Facility.

I think it is useful to include another "move" update primitive. 
Although "move" can be achieved through combination of "insert" followed 
by "delete".
It will be much more convenient to have a simple "move".

I don't know what's the internal thinking on the expression level of the 
snapshot semantic:
"In principle, |upd:applyUpdates| could be invoked at a lower level, 
resulting in expression-level snapshot semantics. This change would 
require other semantic changes to ensure deterministic results. The 
Update Language Task Force is currently investigating the issue of 
snapshot semantics."

I have one suggestion here, which is based on the update mechanism used 
in Candle (http://www.vibrasoft.net/candle/manual.csp?pid=1038).
Firstly, I think it is important to preserve the functional nature (i.e. 
side-effect free) of the XQuery functions.
So I suggest to introduce a new routine type called "method" or "procedure".
Within functions, there can be updated instructions, by no applyUpdate. 
Thus the function only returns an update list and has no side effect.
"method" can contain mixture of flow control expr, update primitive and 
applyUpdate.
"method" can call function, by function cannot call method.

However, if we proceed along this line, allowing update instructions may 
seem redundant. And maintaining an update list can be complicated to 
implement.
Thus in Candle the update instructions are excluded completely from the 
functions. And each update instruction takes effect immediately.
Of course that becomes a totally different processing model.

Regards

Henry


Jonathan Robie wrote:

>
> Two new Working Drafts were published today:
>
> XQuery Update Facility
> W3C Working Draft 27 January 2006
> http://www.w3.org/TR/2006/WD-xqupdate-20060127/
>
> XQuery Update Facility Use Cases
> W3C Working Draft 27 January 2006
> http://www.w3.org/TR/2006/WD-xqupdateusecases-20060127/
>
> I wrote a quick summary of the functionality provided in the following
> blog entry:
>
> http://blogs.datadirect.com/jonathan_robie/2006/01/first_working_d.html
>
> Hope this is useful!
>
> Jonathan
>

Received on Saturday, 28 January 2006 01:20:04 UTC