- From: <bugzilla@jessica.w3.org>
- Date: Thu, 21 Jul 2011 22:48:18 +0000
- To: public-qt-comments@w3.org
http://www.w3.org/Bugs/Public/show_bug.cgi?id=13187
David Lee <dlee@calldei.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |dlee@calldei.com
--- Comment #1 from David Lee <dlee@calldei.com> 2011-07-21 22:48:17 UTC ---
XQuery and/or XPath need either a map or a nested sequence.
An extremely common use case is to load a coded value map which is used across
a complex xquery program. Today you need to put this into an XML object and
use xpath hoping it is optimized. By providing either a map or a nested
sequence then processors have the necessary hints to optimize the access.
These are actually subtly 2 separate use cases.
Maps: provide a guaranteed (or at least implied) efficient mapping of
key->value pair for xquery processors. Example: mapping codes to values. (say
ICD9 codes to descriptions. So instead of of using
collection("IDC9")/value[@code eq 'value'] you could preload the map so you
could use map:map( $icd9 , 'value' ).
Agreed this is primarily a hint to optimizers. In theory any implementation
should be able to index arbitrary XML as maps. But in practice it is very
difficult and rarely done.
As for sub-sequences. This is a similar but not identical problem.
Maps *could* be implemented as sub-sequences such as
( "key" , ( "value1" , "value2" , "value3" ) ,
"key2" ,( "value1" , "value2" , "value3" ) )
but this requires a major change in xquery semantics which would be not
backwards compatible. I feel that sub-sequences should have been implemented
from the start (aka Lisp) but as they were initially flattened into single
level sequences it may be a hard step to implement them without backwards
comparability problems.
A Map as a top level object would solve most sub-sequence use cases without
backwards compatibility problems.
--
Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
Received on Thursday, 21 July 2011 22:48:20 UTC