Datalink vs link - open discussion
Pierre Fernique
Pierre.Fernique at astro.unistra.fr
Fri Nov 15 11:58:16 CET 2019
Dear Datalink contributors and Apps members
/This is an open discussion concerning DATALINK vs LINK usage.//
/
I looked in detail at the new Datalink document
<https://wiki.ivoa.net/internal/IVOA/DataLink-1_0-Next/DataLink.pdf> and
I tried to evaluate the potential impact on the current use of the
classic VOTable LINK. Specifically, I tried to write the VOTable
corresponding to a basic Simbad result, containing two direct links, one
to get the basic Simbad result page, the other to list the associated
bib references (this is a real/live example since 18 years - the
expected result in Aladin is provided at the end of this mail).
Currently, I have to admit that I remain a little bit dubious about the
complexity of the Datalink solution to implement one or more direct
simple links.
In any case, here are the results of my effort:
*1) Method using VOTable LINK (available from v1.0 and following), using
templating convention ($ {columnName} ... described in VOTable appendices)**
**
*/We can easily describe in one XML line the 4 essential elements of a
link: 1-how is built the link, 2-where it must be placed, 3-what is its
associated text, 4-what it will return.////The knowledge of the links is
placed at the beginning of the VOTable stream which will simplify the
life of the clients/
<VOTABLE><RESOURCE><TABLE>
<FIELD ID="MAIN_ID" name="MAIN_ID" ucd="meta.id;meta.main"
datatype="char" arraysize="*" width="22">
<DESCRIPTION>Main identifier for an object</DESCRIPTION>
* <LINK contentType="text/html"
href="http://simbad.u-strasbg.fr/simbad/sim-id?Ident=${MAIN_ID}&NbIdent=1"/>**
* </FIELD>
...
<FIELD ID="BIBLIST" name="BIBLIST" ucd="meta.bib" datatype="short"
width="4">
<DESCRIPTION>List of Bibcodes</DESCRIPTION>
* <LINK ***contentType="text/html" title*****="${BIBLIST}
references for ${MAIN_ID}"
*
*href="http://simbad.u-strasbg.fr/simbad/sim-id?bibdisplay=refsum&Ident=${MAIN_ID}#lab_bib"/>
* </FIELD>
...
<DATA><TABLEDATA>
<TR>
<TD>[VV98] J084822.3+274553</TD>
...
<<TD>19</TD>
</TR>
...
</TABLEDATA></DATA></RESOURCE></VOTABLE>
*2) The same thing expressed in Datalink 1.1*(templating alternative
discussed in Datalink author groups (see Datalink github
<https://github.com/ivoa-std/datalink/>) is presented below)***
*
**/We can describe via additional RESOURCES one or more links: 1-we know
how to build it but with limitations (everything before the ? is
constant and only key=value parameters are possible), 2- wedo not know
where the link should be placed (on which column), 3- we can describe
the associated text, 4- we can describe the type of data returned. The
knowledge of the links is given at the end of the stream which can/will
force the client to buffer. Finally the client must check that these
services descriptors do not use a VO standardID or multiple choice
parameters (OPTION).///
//
<VOTABLE>*<RESOURCE>*<RESOURCE *type="result"*><TABLE>
<FIELD ID="MAIN_ID" name="MAIN_ID" ucd="meta.id;meta.main"
datatype="char" arraysize="*" width="22">
<DESCRIPTION>Main identifier for an object</DESCRIPTION>
</FIELD>
...
<FIELD ID="BIBLIST" name="BIBLIST" ucd="meta.bib" datatype="short"
width="4">
<DESCRIPTION>List of Bibcodes</DESCRIPTION>
</FIELD>
...
<DATA><TABLEDATA>
<TR>
<TD>[VV98] J084822.3+274553</TD>
...
<<TD>19</TD>
</TR>
...
</TABLEDATA></DATA></RESOURCE>
<RESOURCE type="meta" utype="adhoc:service" name="SimbadMainPage">
<DESCRIPTION>Link to Simbad main page</DESCRIPTION>
<PARAM name="accessURL" datatype="char" arraysize="*"
value="http://simbad.u-strasbg.fr/simbad/sim-id"/>
<PARAM name="contentType" datatype="char" arraysize="*"
value="text/html"/>
<GROUP name="inputParams">
<PARAM name="Ident" datatype="char" arraysize="*" ref="MAIN_ID"/>
<PARAM name="NbIdent" datatype="char" arraysize="*" value="1"/>
</GROUP>
</RESOURCE>
<RESOURCE type="meta" utype="adhoc:service" name="SimbadBiblio">
<DESCRIPTION>Link to Simbad biblio</DESCRIPTION>
<PARAM name="accessURL" datatype="char" arraysize="*"
value="http://simbad.u-strasbg.fr/simbad/sim-id"/>
<PARAM name="contentType" datatype="char" arraysize="*"
value="text/html"/>
<GROUP name="inputParams">
<PARAM name="*bibdisplay*" datatype="char" arraysize="*"
value="*refsum*"/>
<PARAM name="Ident" datatype="char" arraysize="*" ref="MAIN_ID"/>
<!-- Not possible to describe the end of the URL : *#lab_bib* -->
</GROUP>
</RESOURCE>
</RESOURCE>
</VOTABLE>
Or via the alternative templating possibility proposed in 1.1 datalink
discussion (only the last link description is provided - thanks to
François Bonnarel for his help)*
*
...
<RESOURCE type="meta" utype="adhoc:service" name="SimbadBiblio">
<DESCRIPTION>Link to Simbad biblio</DESCRIPTION>
<PARAM name="accessURL" datatype="char" arraysize="*"
value="http://simbad.u-strasbg.fr/simbad/sim-id"/>
<PARAM name="contentType" datatype="char" arraysize="*"
value="text/html"/>
<GROUP name="inputParams">
<PARAM name="*bibdisplay*" datatype="char" arraysize="*"
value="*refsum*"/>
</GROUP>
<GROUP name="endpoints" >
<PARAM name="identifier" utype="template" datatype="char"
arraysize="*" ucd="meta.code" value= "Ident={?MAIN_ID*}#lab_bib />
</GROUP>
</RESOURCE>
...
At the end, and in the context of basic direct links, from a LINK
solution in one code line without using any additional dedicated
structure, we had to deploy a solution with additional RESOURCES,
nested, structured, 10 to 15 times more verbose, but who can not do the
job completely. There are two main issues in addition of the complexity :
* There is no possibility in Datalink to say that this link in
associated to this value of this row, on this other link to this
other value. Datalink is only row oriented.
* Datalink can only describe key=value parameters URL implying
constant values for the root URL (no REST URLs for instance)
My reaction is it will not be easy to sell this Datalink alternative,
and the risk of writing/parsing errors will be proportionate to this
complexity.
As far as I understood and after my exercise, *I would tend to think
that Datalink can not/should not replace the use of basic LINK - with or
without templating - and probably each method will keep its
niche:****the basic LINK for direct links associated with the values of
a column, the Datalink for lists of links with descriptions, SODA and
more for each line result.* I'm afraid that if we do not keep the
classic LINK usage, we'll just see Aladin Desktop's links disappear (as
it was occured for the NED results for example).
Feel free to react to this open discussion, maybe only is the DAL
mailing list for avoiding dupplications.
Best regards
Pierre Fernique
---
PS. FYI, here is the list of clients and data providers who currently
use - to my knowledge - the LINK (with or without templating). To my
knowledge, none of them has had any inclination in these last 4 years to
move to Datalink1.0 alternative for basic direct links (except Aladin
Desktop).
*Clients *(clearly CDS oriented)*:**
*
1. Aladin Desktop (Java)
2. CDS portal (JS)
3. Simbad Simplay (Flash)
*Data base services using VOTable LINK facility with templating
(${columnName} variables in the LINK URL template)**
*
1. CDS Simbad
2. CDS VizieR
3. CDS photometric service (VizieR SED)
4. IMCCE Skybot
5. LEDA Hypercat
6. All HiPS providers using progenitor facility (for accessing to
the original images)
*Some examples (in use):*
1) Simbad:
http://alasky.u-strasbg.fr/cgi/simbad-flat/simbad-cs.py?target=08+47+18.60770+%2B26+53+20.1212&SR=54.63&format=votable-tsv&SRUNIT=arcmin&SORTBY=nbref
<FIELD ID="BIBLIST" name="BIBLIST" ucd="meta.bib" datatype="short"
width="4"><DESCRIPTION>List of Bibcodes</DESCRIPTION><LINK value="ref
(${BIBLIST})"
href="http://simbad.u-strasbg.fr/simbad/sim-id?bibdisplay=refsum&Ident=${MAIN_ID}#lab_bib"/></FIELD>
2) VizieR SED:
http://vizier.u-strasbg.fr/viz-bin/sed?-c=04+59+02.70698+%2B21+44+11.2538&-c.rs=5.0
<FIELD name="_tabname" ucd="meta.table" datatype="char"
arraysize="32*">
<DESCRIPTION>Table name</DESCRIPTION>
<LINK
href="http://vizier.u-strasbg.fr/viz-bin/VizieR-5?-info=XML&-out.add=.&-source=${_tabname}&${_ID}"/>
</FIELD>
...
<FIELD ID="sed_filter" name="_sed_filter"
ucd="meta.id;instr.filter" unit="" datatype="char" width="32"
arraysize="32*">
<DESCRIPTION>Filter designation, in the form
photoSystem:filterName; a designation starting by ':=' is an assumed
monochromatic point; this column is empty when the frequency is
specified for each data point.</DESCRIPTION>
<LINK
href="http://cdsarc.u-strasbg.fr/viz-bin/metafilter?${_sed_filter}"/>
</FIELD>
3) VizieR:
vizier.u-strasbg.fr/viz-bin/votable?-source=I%2F284%2Fout&-c=05+34+31.93920+%2B22+00+52.2000&-out.add=_RAJ,_DEJ&-oc.form=dm&-out.meta=DhuL&-out.max=999999&-c.rm=23.82&-out=_VizieR,*Mime(image/fits),*&-mime=TSV
<FIELD name="_V" ucd="meta.ref" datatype="char" arraysize="6">
<DESCRIPTION>Link to the VizieR record with all details</DESCRIPTION>
<LINK
href="http://vizier.u-strasbg.fr/viz-bin/VizieR-5?-info=XML&-out.add=.&-source=I/284/out&-c=${RAJ2000}${DEJ2000}&-c.eq=J2000.000&-c.rs=0.5"/>
</FIELD>
4) HiPS - HST B example:
http://alasky.u-strasbg.fr/HST-hips/filter_B_hips/HpxFinder/metadata.xml
<FIELD name="DATASET" datatype="char" arraysize="*"><LINK
href="http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/AdvancedSearch/?Observation.observationID=${DATASET}"
title="Full metainfo"/></FIELD>
5) IMCCE:
http://vo.imcce.fr/webservices/skybot/skybotconesearch_query.php?-ep=2019-11-11&-ra=131.82753208333332&-dec=26.888922555555556&-size=109.26,109.26&-mime=votable&-out=basic&-loc=500&-search=Asteroids+and+Planets&-filter=120+arcsec&-from=Aladin
<vot:FIELD ID="name" name="Name" ucd="meta.id;meta.main" datatype="char"
arraysize="32"><vot:DESCRIPTION>Solar system object
name</vot:DESCRIPTION><vot:LINK href="${ExternalLink}"/></vot:FIELD>
6) LEDA:
http://leda.univ-lyon1.fr/leda/leda-aladin.cgi?type=astrores&ra=210.80242917&de=54.34875&width=1.4&height=1.4
<FIELD name="Designation" ucd="IDENT" datatype="A" width="21">
<DESCRIPTION>LEDA designation</DESCRIPTION>
<LINK
href="http://leda.univ-lyon1.fr/leda/querybyname.cgi?objname=${Designation}&donnee=mean&Submit=Submit">${Designation}</LINK>
</FIELD>
*Résultats à obtenir dans Aladin Desktop pour les deux liens directs
Simbad**
*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.ivoa.net/pipermail/dal/attachments/20191115/586148e1/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ddflkhgekhghjjdi.png
Type: image/png
Size: 150136 bytes
Desc: not available
URL: <http://mail.ivoa.net/pipermail/dal/attachments/20191115/586148e1/attachment-0001.png>
More information about the dal
mailing list