[SIAv2] upload
Patrick Dowler
patrick.dowler at nrc-cnrc.gc.ca
Fri Mar 7 13:32:16 PST 2014
OK, not much discussion on this so I will answer with my CADC hat on
since we have implemented upload in services and have clients (Our
AdvancedSearch web UI that queries our TAP service).
Then there is a call to vote on one of two choices at the bottom so you
have to read the TL;DR to get a vote :-)
On 22/01/14 11:42 AM, Patrick Dowler wrote:
> ** Some possibilities pulled out of thin air:
>
> Magically get positional constraints out of the table:
> POS=<name>
> - would work in simple contrived cases
> - table might not contain any identifiable position data
> - table might contain multiple/ambiguous position data
It is really hard to get the magic stuff to work well and certainly not
currently feasible to resolve ambiguities.
> Get specific constraints out of a column:
> POS=<name>.<field.name>
> - would resolve the ambiguity, but assumes a single field contains the
> complete position data (no multiple columns with RA and DEC, for example)
I think this needs to be supported because a TAP query can have a column
with a pair of coordinates:
select s_region from ivoa.ObsCore ...
select CENTROID(s_region) from ivoa.ObsCore ...
and such output tables should be usable. Several of the original ObsTAP
use cases revolved around using ObsCore output tables as input to
another query and the CSP "upload list" feature echoed the same kind of
uses.
> Get specific constraints out of multiple columns:
> POS=CIRCLE <name>.<ra column> <name>.<dec column> <name>.<radius
> column>
> - <name>.<radius column> could be replaced by a numeric constant
> - typical tables would not be feasibly usable with any other geometric
> value types, but circle is > 95% of the use cases anyway
Likewise, there are many VOTables existing or produced by current
services that have longitude and latitide in separate columns and we
would have to support them. This is the most complex to support, but
probably most tables are like this.
So, with my CADC hat on, I would say that query params need to refer to
the columns in the uploaded table. We should limit SIA-2.0 to a single
UPLOAD of a VOTable for simplicity. I would favour a shell-script-like
syntax to identify columns, eg:
UPLOAD=foo,http;//example.com/mytable.xml
POS=CIRCLE $foo.RA $foo.DEC $foo.rad
or (allow constants when table doesn't have all the values):
POS=CIRCLE $foo.RA $foo.DEC 0.2
DALI already requires that the name of an uploaded resource be a very
simple (SQL-valid) identifier, so the dot notation is safe. The
shell-script-like $ sign for symbols mans that one could refer to
columns that contain strings for other parameters that expect string
values, eg:
POL=$foo.pol_states
I haven't done it (will do) but I am confident this translates fairly
easily into an equivalent TAP request with an upload and a single join.
** choices **
1. Ignore CSP "upload lists" and say that UPLOAD is not supported in SIA-2.0
2. Define a single votable upload with $symbolic reference to the table
and columns as described above.
Plus one option: Do we make support for UPLOAD mandatory or optional?
Note that if it is optional, that opens up needing a way to declare
support for it, eg VOSI_capabilities, which implies a RegExt.
SimpleDALRegExt doesn't cover this...
--
Patrick Dowler
Canadian Astronomy Data Centre
National Research Council Canada
5071 West Saanich Road
Victoria, BC V9E 2E7
250-363-0044 (office) 250-363-0045 (fax)
More information about the dal
mailing list