<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p><br>
</p>
Dear all,<br>
<br>
Following this I closed the pull request #28.
(<a class="moz-txt-link-freetext" href="https://github.com/ivoa-std/DataLink/pull/28">https://github.com/ivoa-std/DataLink/pull/28</a>)<br>
I let open the issue #27
(<a class="moz-txt-link-freetext" href="https://github.com/ivoa-std/DataLink/issues/27">https://github.com/ivoa-std/DataLink/issues/27</a>) <br>
and copied and paste this email below in this issue for follow up<br>
<br>
Regards<br>
François<br>
<br>
<br>
<div class="moz-cite-prefix">Le 19/11/2019 à 16:57, Patrick Dowler a
écrit :<br>
</div>
<blockquote type="cite"
cite="mid:CAFK8nrpPXax-ow79=Kxg6sURWvAwW4Q0gsy-7KG4JcGOFz1zjA@mail.gmail.com">
<meta http-equiv="Context-Type" content="text/html; charset=UTF-8">
<div dir="ltr">
<div class="gmail_default"><br>
</div>
<div class="gmail_default">Thanks Pierre - this has a lot of
great analysis and use cases that DataLink can/should address.
I think we will need to come up with a coherent design to add
support for fragments and RESTful path elements to the current
query param support - especially since they can in principle
all play together (eg in VOSpace one uses both path and query
params and that is a common pattern, you showed using query
params and fragment, and I can easily see using path, query,
and fragment making sense in some context).</div>
<div class="gmail_default"><br>
</div>
<div class="gmail_default">I will try to condense this into a
single github issue with reference to this mail thread. We can
continue broad discussion here.</div>
<div class="gmail_default"><br>
</div>
<div>
<div dir="ltr" class="gmail_signature"
data-smartmail="gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div>--<br>
</div>
<div>Patrick Dowler<br>
</div>
Canadian Astronomy Data Centre<br>
</div>
Victoria, BC, Canada<br>
</div>
</div>
</div>
</div>
</div>
<br>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Fri, 15 Nov 2019 at 03:04,
Pierre Fernique <<a
href="mailto:Pierre.Fernique@astro.unistra.fr"
moz-do-not-send="true">Pierre.Fernique@astro.unistra.fr</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote">
<div>
<p>Dear Datalink contributors and Apps members</p>
<p><i>This is an open discussion concerning DATALINK vs LINK
usage.</i><i><br>
</i></p>
<p><span lang="en"><span title="">I looked in detail at the
<a
href="https://wiki.ivoa.net/internal/IVOA/DataLink-1_0-Next/DataLink.pdf"
target="_blank" moz-do-not-send="true">new Datalink
document</a> and I tried to evaluate the potential
impact on the current use of the classic VOTable LINK.</span>
<span title="">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</span>
<span title="">years - the expected result in Aladin is
provided at the end of this mail).</span> <span
title=""></span><br>
<br>
<span title="">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.</span><br>
<span title="">In any case, here are the results of my
effort:</span></span></p>
<div>
<div>
<div><span lang="en"><b><span title="">1) Method using
VOTable LINK (available from v1.0 and
following), using templating convention ($
{columnName} ... described in VOTable
appendices)</span></b><b><br>
</b><b><br>
</b><i><span title="">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.</span></i><i> </i><i><span
title="">The knowledge of the links is placed at
the beginning of the VOTable stream which will
simplify the life of the clients</span></i></span></div>
</div>
</div>
<div><br>
</div>
<p><tt><VOTABLE><RESOURCE><TABLE></tt><tt><br>
</tt><tt> <FIELD ID="MAIN_ID" name="MAIN_ID" ucd="<a
href="http://meta.id" target="_blank"
moz-do-not-send="true">meta.id</a>;meta.main"
datatype="char" arraysize="*" width="22"></tt><tt><br>
</tt><tt> <DESCRIPTION>Main identifier for an
object</DESCRIPTION></tt><tt><br>
</tt><b><tt> <LINK contentType="text/html" href=<a
href="http://simbad.u-strasbg.fr/simbad/sim-id?Ident=$%7BMAIN_ID%7D&NbIdent=1"
target="_blank" moz-do-not-send="true">"http://simbad.u-strasbg.fr/simbad/sim-id?Ident=${MAIN_ID}&NbIdent=1"</a>/></tt></b><b><tt><br>
</tt></b><tt> </FIELD></tt><tt><br>
</tt><tt> ...</tt><tt><br>
</tt><tt> <FIELD ID="BIBLIST" name="BIBLIST"
ucd="meta.bib" datatype="short" width="4"></tt><tt><br>
</tt><tt> <DESCRIPTION>List of
Bibcodes</DESCRIPTION></tt><tt><br>
</tt><b><tt> <LINK </tt></b><b><tt><b><tt>contentType="text/html"
title</tt></b></tt></b><b><tt><b><tt><b><tt>="${BIBLIST}
references for ${MAIN_ID}"<br>
</tt></b> </tt></b>href=<a
href="http://simbad.u-strasbg.fr/simbad/sim-id?bibdisplay=refsum&Ident=$%7BMAIN_ID%7D#lab_bib"
target="_blank" moz-do-not-send="true">"http://simbad.u-strasbg.fr/simbad/sim-id?bibdisplay=refsum&Ident=${MAIN_ID}#lab_bib"</a>/></tt><tt><br>
</tt></b><tt> </FIELD></tt><tt><br>
</tt><tt>...</tt><tt><br>
</tt><tt><DATA><TABLEDATA></tt><tt><br>
</tt><tt> <TR></tt><tt><br>
</tt><tt> <TD>[VV98]
J084822.3+274553</TD></tt><tt><br>
</tt><tt> ...</tt><tt><br>
</tt><tt> <<TD>19</TD></tt><tt><br>
</tt><tt> </TR></tt><tt><br>
</tt><tt> ...</tt><tt><br>
</tt><tt></TABLEDATA></DATA></RESOURCE></VOTABLE></tt><tt><br>
</tt></p>
<p><br>
<b><span lang="en"><span title="">2) The same thing
expressed in Datalink 1.1</span></span></b><span
lang="en"><span title=""> (templating alternative
discussed in Datalink author groups (see <a
href="https://github.com/ivoa-std/datalink/"
target="_blank" moz-do-not-send="true">Datalink
github</a>) is presented below)</span></span><b><span
lang="en"></span></b><span lang="en"><span title=""></span></span><b><span
lang="en"><br>
</span></b></p>
<p><b><span lang="en"></span></b><i><span lang="en"><span
title="">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- we</span> <span title="">do 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.</span> <span
title="">The knowledge of the links is given at the
end of the stream which can/will force the client to
buffer.</span> <span title="">Finally the client
must check that these services descriptors do not
use a VO standardID or multiple choice parameters
(OPTION).</span></span></i><i> </i></p>
<i> </i>
<p><tt><VOTABLE><b><RESOURCE></b><RESOURCE </tt><tt><b>type="result"</b></tt><tt>><TABLE></tt><tt><br>
</tt><tt> <FIELD ID="MAIN_ID" name="MAIN_ID" ucd="<a
href="http://meta.id" target="_blank"
moz-do-not-send="true">meta.id</a>;meta.main"
datatype="char" arraysize="*" width="22"></tt><tt><br>
</tt><tt> <DESCRIPTION>Main identifier for an
object</DESCRIPTION></tt><tt><br>
</tt><tt> </FIELD></tt><tt><br>
</tt><tt> ...</tt><tt><br>
</tt><tt> <FIELD ID="BIBLIST" name="BIBLIST"
ucd="meta.bib" datatype="short" width="4"></tt><tt><br>
</tt><tt> <DESCRIPTION>List of
Bibcodes</DESCRIPTION></tt><tt><br>
</tt><tt> </FIELD></tt><tt><br>
</tt><tt>...</tt><tt><br>
</tt><tt><DATA><TABLEDATA></tt><tt><br>
</tt><tt> <TR></tt><tt><br>
</tt><tt> <TD>[VV98]
J084822.3+274553</TD></tt><tt><br>
</tt><tt> ...</tt><tt><br>
</tt><tt> <<TD>19</TD></tt><tt><br>
</tt><tt> </TR></tt><tt><br>
</tt><tt> ...</tt><tt><br>
</tt><tt></TABLEDATA></DATA></RESOURCE></tt><tt><br>
</tt><tt><br>
</tt><tt><RESOURCE type="meta" utype="adhoc:service"
name="SimbadMainPage"></tt><tt><br>
</tt><tt> <DESCRIPTION>Link to Simbad main
page</DESCRIPTION></tt><tt><br>
</tt><tt> <PARAM name="accessURL" datatype="char"
arraysize="*" value=<a
href="http://simbad.u-strasbg.fr/simbad/sim-id"
target="_blank" moz-do-not-send="true">"http://simbad.u-strasbg.fr/simbad/sim-id"</a>/></tt><tt><br>
</tt><tt> <PARAM name="contentType" datatype="char"
arraysize="*" value="text/html"/></tt><tt><br>
</tt><tt> <GROUP name="inputParams"></tt><tt><br>
</tt><tt> <PARAM name="Ident" datatype="char"
arraysize="*" ref="MAIN_ID"/></tt><tt><br>
</tt><tt><tt> <PARAM name="NbIdent"
datatype="char" arraysize="*" value="1"/></tt><tt><br>
</tt> </GROUP></tt><tt><br>
</tt><tt></RESOURCE></tt></p>
<p><tt><RESOURCE type="meta" utype="adhoc:service"
name="SimbadBiblio"></tt><tt><br>
</tt><tt> <DESCRIPTION>Link to Simbad
biblio</DESCRIPTION></tt><tt><br>
</tt><tt> <PARAM name="accessURL" datatype="char"
arraysize="*" value=<a
href="http://simbad.u-strasbg.fr/simbad/sim-id"
target="_blank" moz-do-not-send="true">"http://simbad.u-strasbg.fr/simbad/sim-id"</a>/></tt><tt><br>
</tt><tt> <PARAM name="contentType" datatype="char"
arraysize="*" value="text/html"/></tt><tt><br>
</tt><tt> <GROUP name="inputParams"></tt><tt><tt><br>
<PARAM name="</tt></tt><tt><tt><b><tt>bibdisplay</tt></b>"
datatype="char" arraysize="*" value="</tt></tt><tt><tt><tt><tt><b><tt>refsum</tt></b></tt></tt>"/></tt><tt><br>
</tt></tt><tt> <PARAM name="Ident"
datatype="char" arraysize="*" ref="MAIN_ID"/></tt><tt><br>
</tt><tt><tt> <!-- Not possible to describe the
end of the URL : </tt></tt><tt><tt><b><tt>#lab_bib</tt></b></tt><tt>
--><br>
</tt> </GROUP></tt><tt><br>
</tt><tt></RESOURCE></tt></p>
<p><tt></RESOURCE><br>
</tt><tt></VOTABLE></tt></p>
<p><tt><br>
</tt></p>
<p>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)<b><br>
</b></p>
<p><tt>...<br>
<RESOURCE type="meta" utype="adhoc:service"
name="SimbadBiblio"></tt><tt><br>
</tt><tt> <DESCRIPTION>Link to Simbad
biblio</DESCRIPTION></tt><tt><br>
</tt><tt> <PARAM name="accessURL" datatype="char"
arraysize="*" value=<a
href="http://simbad.u-strasbg.fr/simbad/sim-id"
target="_blank" moz-do-not-send="true">"http://simbad.u-strasbg.fr/simbad/sim-id"</a>/></tt><tt><br>
</tt><tt> <PARAM name="contentType" datatype="char"
arraysize="*" value="text/html"/></tt><tt><br>
</tt><tt> <GROUP name="inputParams"></tt><tt><tt><br>
<PARAM name="</tt></tt><tt><tt><b><tt>bibdisplay</tt></b>"
datatype="char" arraysize="*" value="</tt></tt><tt><tt><tt><tt><b><tt>refsum</tt></b></tt></tt>"/></tt><tt><br>
</tt></tt><tt> </GROUP></tt><tt><br>
<GROUP name="endpoints" ><br>
<PARAM name="identifier" utype="template"
datatype="char" arraysize="*" </tt><tt><tt>ucd="meta.code"
value= "Ident={?MAIN_ID*}#lab_bib /></tt></tt><tt><tt><br>
</GROUP></tt></tt><tt><br>
</tt><tt></RESOURCE><br>
...<br>
</tt></p>
<p><span lang="en"><span title=""><br>
</span></span></p>
<p><span lang="en"><span title="">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 :</span></span></p>
<ul>
<li><span lang="en"><span title="">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.</span></span></li>
<li><span lang="en"><span title="">Datalink can only
describe key=value parameters URL implying constant
values for the root URL (no REST URLs for instance)<br>
</span></span></li>
</ul>
<span lang="en"><span title="">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.</span></span><br>
<span lang="en"></span>
<p><span lang="en"><span title="">As far as I understood and
after my exercise, <b>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:</b></span><b> </b><b><span
title="">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.</span></b> <span title="">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).</span></span></p>
<p><span lang="en"><span title="">Feel free to react to this
open discussion, maybe only is the DAL mailing list
for avoiding dupplications.<br>
</span></span></p>
<p>Best regards<br>
Pierre Fernique<br>
</p>
<p>---<br>
</p>
<p>PS. <span lang="en"><span title="">FYI, here is the list
of clients and data providers who currently use - to
my knowledge - the LINK (with or without templating).</span>
<span title="">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</span>
<span title="">(except Aladin Desktop).</span></span> </p>
<p><b>Clients </b>(clearly CDS oriented)<b>:</b><b><br>
</b></p>
<ol>
<li> Aladin Desktop (Java)</li>
<li> CDS portal (JS)</li>
<li> Simbad Simplay (Flash)<br>
</li>
</ol>
<p><b>Data base services using VOTable LINK facility with
templating (${columnName} variables in the LINK URL
template)</b><b><br>
</b></p>
<ol>
<li> CDS Simbad</li>
<li> CDS VizieR</li>
<li> CDS photometric service (VizieR SED)</li>
<li> IMCCE Skybot</li>
<li> LEDA Hypercat</li>
<li> All HiPS providers using progenitor facility (for
accessing to the original images)</li>
</ol>
<p><b>Some examples (in use):</b><br>
<br>
1) Simbad: <a
href="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"
target="_blank" moz-do-not-send="true">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</a><br>
<br>
<tt><FIELD ID="BIBLIST" name="BIBLIST" ucd="meta.bib"
datatype="short" width="4"><DESCRIPTION>List of
Bibcodes</DESCRIPTION><LINK value="ref
(${BIBLIST})" href=<a
href="http://simbad.u-strasbg.fr/simbad/sim-id?bibdisplay=refsum&Ident=$%7BMAIN_ID%7D#lab_bib"
target="_blank" moz-do-not-send="true">"http://simbad.u-strasbg.fr/simbad/sim-id?bibdisplay=refsum&Ident=${MAIN_ID}#lab_bib"</a>/></FIELD></tt><tt><br>
</tt><br>
2) VizieR SED: <a
href="http://vizier.u-strasbg.fr/viz-bin/sed?-c=04+59+02.70698+%2B21+44+11.2538&-c.rs=5.0"
target="_blank" moz-do-not-send="true">http://vizier.u-strasbg.fr/viz-bin/sed?-c=04+59+02.70698+%2B21+44+11.2538&-c.rs=5.0</a><br>
<br>
<tt> <FIELD name="_tabname" ucd="meta.table"
datatype="char" arraysize="32*"></tt><tt><br>
</tt><tt> <DESCRIPTION>Table
name</DESCRIPTION></tt><tt><br>
</tt><tt> <LINK href=<a
href="http://vizier.u-strasbg.fr/viz-bin/VizieR-5?-info=XML&amp;-out.add=.&amp;-source=$%7B_tabname%7D&amp;$%7B_ID%7D"
target="_blank" moz-do-not-send="true">"http://vizier.u-strasbg.fr/viz-bin/VizieR-5?-info=XML&amp;-out.add=.&amp;-source=${_tabname}&amp;${_ID}"</a>/></tt><tt><br>
</tt><tt> </FIELD></tt><tt><br>
</tt><tt>...</tt><tt><br>
</tt><tt> <FIELD ID="sed_filter" name="_sed_filter"
ucd="<a href="http://meta.id" target="_blank"
moz-do-not-send="true">meta.id</a>;instr.filter"
unit="" datatype="char" width="32" arraysize="32*"></tt><tt><br>
</tt><tt> <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></tt><tt><br>
</tt><tt> <LINK href=<a
href="http://cdsarc.u-strasbg.fr/viz-bin/metafilter?$%7B_sed_filter%7D"
target="_blank" moz-do-not-send="true">"http://cdsarc.u-strasbg.fr/viz-bin/metafilter?${_sed_filter}"</a>/></tt><tt><br>
</tt><tt> </FIELD></tt><tt><br>
</tt><tt><br>
</tt><br>
3) VizieR:
<a
href="http://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%28image/fits%29,*&-mime=TSV"
target="_blank" moz-do-not-send="true">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</a><br>
<br>
<tt> <FIELD name="_V" ucd="meta.ref" datatype="char"
arraysize="6"></tt><tt><br>
</tt><tt> <DESCRIPTION>Link to the VizieR
record with all details</DESCRIPTION></tt><tt><br>
</tt><tt> <LINK href=<a
href="http://vizier.u-strasbg.fr/viz-bin/VizieR-5?-info=XML&amp;-out.add=.&amp;-source=I/284/out&amp;-c=$%7BRAJ2000%7D$%7BDEJ2000%7D&amp;-c.eq=J2000.000&amp;-c.rs=0.5"
target="_blank" moz-do-not-send="true">"http://vizier.u-strasbg.fr/viz-bin/VizieR-5?-info=XML&amp;-out.add=.&amp;-source=I/284/out&amp;-c=${RAJ2000}${DEJ2000}&amp;-c.eq=J2000.000&amp;-c.rs=0.5"</a>/></tt><tt><br>
</tt><tt> </FIELD></tt><tt><br>
</tt> <br>
4) HiPS - HST B example: <a
href="http://alasky.u-strasbg.fr/HST-hips/filter_B_hips/HpxFinder/metadata.xml"
target="_blank" moz-do-not-send="true">http://alasky.u-strasbg.fr/HST-hips/filter_B_hips/HpxFinder/metadata.xml</a><br>
<br>
<tt><FIELD name="DATASET" datatype="char"
arraysize="*"><LINK href=<a
href="http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/AdvancedSearch/?Observation.observationID=$%7BDATASET%7D"
target="_blank" moz-do-not-send="true">"http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/AdvancedSearch/?Observation.observationID=${DATASET}"</a>
title="Full metainfo"/></FIELD></tt><tt><br>
</tt><tt><br>
</tt>5) IMCCE: <a
href="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"
target="_blank" moz-do-not-send="true">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</a><br>
<br>
<tt><vot:FIELD ID="name" name="Name" ucd="<a
href="http://meta.id" target="_blank"
moz-do-not-send="true">meta.id</a>;meta.main"
datatype="char"
arraysize="32"><vot:DESCRIPTION>Solar system
object name</vot:DESCRIPTION><vot:LINK
href="${ExternalLink}"/></vot:FIELD></tt><tt><br>
</tt><br>
6) LEDA: <a
href="http://leda.univ-lyon1.fr/leda/leda-aladin.cgi?type=astrores&ra=210.80242917&de=54.34875&width=1.4&height=1.4"
target="_blank" moz-do-not-send="true">http://leda.univ-lyon1.fr/leda/leda-aladin.cgi?type=astrores&ra=210.80242917&de=54.34875&width=1.4&height=1.4</a><br>
<br>
<tt> <FIELD name="Designation" ucd="IDENT"
datatype="A" width="21"></tt><tt><br>
</tt><tt> <DESCRIPTION>LEDA
designation</DESCRIPTION></tt><tt><br>
</tt><tt> <LINK href=<a
href="http://leda.univ-lyon1.fr/leda/querybyname.cgi?objname=$%7BDesignation%7D&amp;donnee=mean&amp;Submit=Submit"
target="_blank" moz-do-not-send="true">"http://leda.univ-lyon1.fr/leda/querybyname.cgi?objname=${Designation}&amp;donnee=mean&amp;Submit=Submit"</a>>${Designation}</LINK></tt><tt><br>
</tt><tt> </FIELD></tt><tt><br>
</tt></p>
<p><br>
</p>
<p><b>Résultats à obtenir dans Aladin Desktop pour les deux
liens directs Simbad</b><b><br>
</b></p>
<p><img src="cid:part25.108A8EAF.8FFA0C58@astro.unistra.fr"
alt="" class=""></p>
<br>
</div>
</blockquote>
</div>
</blockquote>
<br>
</body>
</html>