The case for building ADQL from a SQL core.
Jim Gray
gray at microsoft.com
Fri Feb 6 07:08:28 PST 2004
I agree: "there's no real difference between extending ADQL/string and
ADQL/xml."
In both cases, you start from zero and have to write a man-page for
every feature (since you start with the empty set and build ADQL)
The point is that there is a huge difference between
subsetting SQL and
creating a new core language from scratch.
In the subsetting approach you hijack the years of language design and
skills of the SQL folks.
In the creating a new core lanugage you go it alone and have to do that
design and write those man pages yourself.
That is a BIG difference.
The current efforts been defining language syntax (in xml) and leaving
the semantics to the reader.
The semantics are the hard part.
Hijacking someone else's semantics is a lot easier.
So, there is a BIG difference between the two approaches.
The SQL first approch can just hijack the semantics for this rather
complex expression
SELECT <select list>
INTO <table name>
FROM <from expression>
WHERE <predicate>
GROUP BY <group by list>
HAVING <predicate>
ORDER BY <order list>
One has to modify the naming and explain about MyDB and define the
non-standard functions, but that is easy compared to explaining the
semantics of this beast.
Jim Gray
Microsoft Research, Suite 1690, 455 Market, SF CA 94105,
tel: 415 778 8222 fax: 425 706 7329
Gray at Microsoft.com http://research.Microsoft.com/~gray
-----Original Message-----
From: owner-voql at eso.org [mailto:owner-voql at eso.org] On Behalf Of Martin
Hill
Sent: Friday, February 06, 2004 5:47 AM
To: Clive Page
Cc: voql at ivoa.net
Subject: Re: The case for XML ADQL
In fact there's no real difference between extending ADQL/string and
ADQL/xml.
We can't in practice allow ADQL/string to pass through 'blind' in
general for security reasons, so ADQL/string parsers will need to be
updated to provide for new functions. Anyway there will usually need to
be a translation layer to get to the local SQL form, and ADQL/XML gives
us the one->many rather than
many->many combinations we need.
We *do* need to ensure scope for adding new functions, but this has to
be treated carefully; ADQL is meant to be a *standard* query language
that we can apply across a range of datacenters. If a particular
datacenter implements a particular new function, but other datacenters
do not, we lose the 'generality'
of it.
So I suggest that the datacenter-specific functions do not need to be
built into the ADQL language itself, but either inserted as an unchecked
element, eg:
<DatacenterFunction name="HtmSearch">
<Parameter>HtmIdenitfier</Parameter>
</DatacenterFunction>
or by creating a datacenter-specific ADQL schema that extends the
standard one.
Cheers,
Martin
Clive Page wrote:
> On Thu, 5 Feb 2004, Tony Linde wrote:
>
>
>>Anyone who wants to provide a text input service will have to write a
>>parser that translates from the text form into the standard xml form.
>
>
> I think it will be essential to have converters in both directions
> between ADQL/text (alias SkyQL) and ADQL/XML. We have already found
> that it is exceedingly difficult to test software which requires fully
> formed XML as its input, so the testers need to be able to input
> ADQL/text. I think power users who are already familiar with SQL will
> want to be able to continue using it (or something very similar) -
> they will not take kindly to instructions to learn ADQL/XML. Thirdly,
> the ADQL/text form has very limited extensibility: if some backend can
> provide additional facilities such as stored procedures/user-defined
> functions, then these would be unusable from ADQL/XML until the
> parsers have been modified and tested, but a pass-through of ADQL/text
> would be able to use these extensions immediately, and they might (if
> suitable) be incorporated into the standard at some future date. A
> living language needs a simple route for growth.
>
>
>
--
Martin Hill
Software Engineer
AstroGrid @ ROE
Tel: +44 7901 55 24 66
www.astrogrid.org
More information about the voql
mailing list