[xquery-talk] Geospatial and XQuery?

Xia Li xli at galdosinc.com
Tue Oct 4 15:58:23 PDT 2005


Hi Michael,

    I know Dimitre's work on XSLT. But I don't know Saxon has this
capability cause I only looked at Saxon-B and I enjoy reading the source
implementation of the XQuery part in Saxon-B. 

 

   Thanks for the info. This looks promising.

 

   Lisa

 

 

________________________________

From: Michael Kay [mailto:mhk at mhk.me.uk] 
Sent: Tuesday, October 04, 2005 1:22 PM
To: Xia Li; 'Paul Cotton'; kfandre at netbox.com; talk at xquery.com
Subject: RE: [xquery-talk] Geospatial and XQuery?

 

Have you looked at Dimitre Novatchev's library of higher-order functions
implemented in XSLT?

 

See http://fxsl.sourceforge.net/

 

Dimitre discovered a neat way of implementing higher-order functions by
exploiting the apply-templates capability. Sadly there is no equivalent
in standard XQuery. I do have an extension that enables it in Saxon,
however: see

 

http://www.saxonica.com/documentation/extensions/functions/function.html

 

I'm hoping at some stage to provide the ability for XQuery to call XSLT
function libraries. Saxon already offers the reverse, which is less
useful, because there are a lot more XSLT libraries currently in
existence.

 

Michael Kay

http://www.saxonica.com/

	 

	
________________________________


	From: Xia Li [mailto:xli at galdosinc.com] 
	Sent: 04 October 2005 21:30
	To: Paul Cotton; Michael Kay; kfandre at netbox.com;
talk at xquery.com
	Subject: RE: [xquery-talk] Geospatial and XQuery?

	I guess it depends on the strategies to extend a query language
to support graph operations. The approach I have chosen is to specify a
graph explicitly and provide special graph operations. Here is the case
where a higher order function is needed,

	 

	shortestPath(graph, point1, point2, cost)

	 

	The function is to compute the shortest path between two pointes
in the graph. The graph is represented as a sequence of GML Edge
objects. The fourth parameter "cost" is required to be a function that
maps an edge to a numeric value as being of the cost of the edge. 

	 

	Not only this one, many network analysis queries, such as
circle, nearest neighbors, need higher order functions.

	 

	 

	Lisa

	 

	  

	 

	
________________________________


	From: Paul Cotton [mailto:Paul.Cotton at microsoft.com] 
	Sent: Tuesday, October 04, 2005 10:47 AM
	To: Xia Li; Michael Kay; kfandre at netbox.com; talk at xquery.com
	Subject: RE: [xquery-talk] Geospatial and XQuery?

	 

	>Another thing I found is that to support spatial network query,
one have to extend XQuery into a high order functional language. 

	 

	This is surprising since was not necessary to add spatial
functionality to SQL engines.  Can you give your rationale?

	 

	/paulc

	 

	 

	Paul Cotton, Microsoft Canada
	17 Eleanor Drive, Nepean, Ontario K2E 6A3
	Tel: (613) 225-5445 Fax: (425) 936-7329
	mailto:Paul.Cotton at microsoft.com
	
	 

	
________________________________


	From: talk-bounces at xquery.com [mailto:talk-bounces at xquery.com]
On Behalf Of Xia Li
	Sent: October 4, 2005 2:06 PM
	To: Michael Kay; kfandre at netbox.com; talk at xquery.com
	Subject: RE: [xquery-talk] Geospatial and XQuery?

	 

	I did a bit exploration for extending XQuery to support query on
spatial, spatial temporal and spatial network data types defined in GML
(Geographic Markup Language) last year and an experimental
implementation study on a particular XQuery engine Saxon. I chose to add
all operations and functions defined for the GML types to the system
built-in function library. The way to achieve this in Saxon is to
register those functions and bind those function definitions with the
function call in query so that these function will be processed just
like any other system built-in functions. I remember one advantage of
this approach is that once integrating the functions into the existing
architecture we can focus on the implementation of computation logic of
the function itself and do not need to pay attention to do the type
checking for the parameters of the functions which requires the entire
implementation of XQuery sequence type matching. 

	 

	Another thing I found is that to support spatial network query,
one have to extend XQuery into a high order functional language. 

	 

	 

	Lisa

	 

	 

	
________________________________


	From: talk-bounces at xquery.com [mailto:talk-bounces at xquery.com]
On Behalf Of Michael Kay
	Sent: Tuesday, October 04, 2005 9:06 AM
	To: kfandre at netbox.com; talk at xquery.com
	Subject: RE: [xquery-talk] Geospatial and XQuery?

	 

	Good point: though I don't think it proves that you need such
functions in the core (standardized) language, only that you need the
XQuery engine to be aware of the functions so that it can optimize them.

	 

	Michael Kay

	http://www.saxonica.com/ 

		Without a standard how would an XQuery optimizer know
how to deal with a third-party geospatial function? Execution plans
would differ drastically depending on the cost or absence of spatial
indexes, etc.  I recall seeing a sepecialized XQuery extension standard
for text search. It seems like there's an opprotunity to do the same
with geospatial data, especially if it was written w.r.t common XML
geospatial data formats.

		 

		-Kevin

		
		
		 

		On 10/4/05, Martin Probst <martin at x-hive.com> wrote: 

		Real-To:  Martin Probst <martin at x-hive.com>
		Real-Cc:   talk at xquery.com <mailto:talk at xquery.com> 
		
		Hi,
		
		> If so, what would the geospatial functions look like
in a query?
		
		> Have any of the XQuery or XML database products
(commercial or open-
		> source) implemented geospatial functions ahead of the
spec? If so, 
		> what do these look like?
		
		X-Hive/DB is used by Galdos (http://www.galdosinc.com/)
in Cartalinea.
		They did not need custom functions that much as fast
range queries on 
		XML attributes, e.g. to find certain specific elements
that are within
		(in the spatial, not in the XML sense) a set of
coordinates.
		
		So basically they needed fast range index lookups on
XQuery, XPointer
		and XPath queries. 
		
		I don't think there is a need for a standardisation on
specific
		geospatial functions, especially as you can extend
nearly every XQuery
		implementation with your own custom functions so you can
use these
		custom functions as an adaptor-like wrapper around a
library in e.g.
		Java.
		
		Martin
		
		_______________________________________________
		talk at xquery.com
		http://xquery.com/mailman/listinfo/talk 

		 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://xquery.com/pipermail/talk/attachments/20051004/d9e78c94/attachment-0001.htm


More information about the talk mailing list