<div dir="ltr">Hi Mark, all,<br><div class="gmail_extra"><br><div class="gmail_quote">2018-02-02 12:33 GMT+01:00 Mark Taylor <span dir="ltr">&lt;<a href="mailto:m.b.taylor@bristol.ac.uk" target="_blank">m.b.<span class="" id=":vx.1" tabindex="-1" style="">taylor</span>@<span class="" id=":vx.2" tabindex="-1" style="">bristol</span>.ac.<span class="" id=":vx.3" tabindex="-1" style="">uk</span></a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Dear DAL,<br>
<br>
I have another question about the DataLink standard.<br></blockquote><div><br></div><div>Note: I don&#39;t <span class="" id=":vx.4" tabindex="-1" style="">consider</span> myself a <span class="" id=":vx.5" tabindex="-1" style="">Datalink</span> expert.</div><div>I&#39;m taking your mail as a chance to climb that</div><div>expertise.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Section 4 of the DataLink document describes Service Descriptors.<br>
These are RESOURCE elements in VOTable documents containing<br>
information about external services that can be invoked in<br>
a way that is relevant to the data in a results table contained<br>
within the same VOTable document.<br>
<br>
As I understand it, there are two separate ways these service<br>
descriptors can be used.<br>
<br>
  1. A {links}-response table (as described in DataLink section 3)<br>
     may refer to a specific Service Descriptor by giving its ID<br>
     in the service_def column.<br>
<br>
  2. Any VOTable is allowed to include Service Descriptor resources,<br>
     as made explicit in paragraphs 2 and 3 of DataLink section 4.<br>
     Such service descriptors will presumably have at least some<br>
     input parameters that take their values from the results table.<br>
<br>
In case 2, the service descriptor effectively defines a different<br>
(full or partial) service invocation for every row of the results table.<br>
In case 1 however, such invocations are only defined for those rows<br>
in which the service_def column names the descriptor in question.<br></blockquote><div><br></div><div>I agree, but I would say that your description of case 2</div><div>may fail if no <span class="" id=":vx.6" tabindex="-1" style="">DatasetID</span> is set in a row. But that&#39;s probably</div><div>a borderline case.</div><div><br></div><div>My idea of <span class="" id=":vx.7" tabindex="-1" style="">datalink</span> is simply that of a subsequent step to</div><div>initial data discovery, whatever the discovery protocol used.</div><div><br></div><div>The distinction between 1 and 2 being only on where the</div><div>service descriptor <span class="" id=":vx.8" tabindex="-1" style="">adhoc</span>:service sits: directly on the</div><div>results of discovery, in a further (multi)-access enabling</div><div>document.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">So client code that handles service descriptors generically,<br>
by offering service invocations per-row for each service<br>
desriptor, cannot be used for links-response tables.<br></blockquote><div><br></div><div>I agree in the sense that links-responses are a different</div><div>(second) set of <span class="" id=":vx.9" tabindex="-1" style="">dataset</span> access <span class="" id=":vx.10" tabindex="-1" style="">metadata</span> (otherwise</div><div>a URL would suffice in the first discovery response.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
It must be replaced instead by code which offers invocations<br>
only for those rows with the relevant service_def values.<br>
Such clients must therefore be able to identify whether a<br>
given table is or is not a links-response table and behave<br>
appropriately.<br>
<br>
Have I got that right?<br></blockquote><div><br></div><div>I think so, but see the note at the top.</div><div>You can prepare a client <span class="" id=":vx.12" tabindex="-1" style="">dialog</span>/form only where a</div><div>service definition is available.</div><div>Otherwise a URL follow up should suffice (but there</div><div>the MIME-type topic gets in).</div><div> </div><div>Cheers</div><div>      Marco*</div><div><br></div><div>* - happy you sent this email &#39;cause you forced him</div><div>into a deeper look in <span class="" id=":vx.13" tabindex="-1" style="">Datalnk</span></div></div></div></div>