<div dir="ltr">Hi Mark, all,<div>you may be right, and I may be confused by my</div><div>biased idea that datalink is meant to having</div><div>proper ID&#39;s in the originating discovery response</div><div>data table to attach to.</div><div><br></div><div>Thus, that would really mean two separate</div><div>datalink consumers for a client app, one for</div><div>services described directly in the discovery</div><div>response (your case 2) and one for the </div><div>links-response solutions (case 1).</div><div><br></div><div>I&#39;m wondering, however, if also in case 1</div><div>there&#39;s a way to allow the adhoc:service </div><div>on a  per row basis.</div><div><br></div><div>Cheers,</div><div>     Marco</div><div><div class="gmail_extra"><br><div class="gmail_quote">2018-02-05 11:48 GMT+01:00 Mark Taylor <span dir="ltr">&lt;<a href="mailto:m.b.taylor@bristol.ac.uk" target="_blank">m.b.taylor@bristol.ac.uk</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Marco,<br>
<br>
thanks for your response.<br>
<span class=""><br>
On Sun, 4 Feb 2018, Marco Molinaro wrote:<br>
<br>
&gt; &gt; Section 4 of the DataLink document describes Service Descriptors.<br>
&gt; &gt; These are RESOURCE elements in VOTable documents containing<br>
&gt; &gt; information about external services that can be invoked in<br>
&gt; &gt; a way that is relevant to the data in a results table contained<br>
&gt; &gt; within the same VOTable document.<br>
&gt; &gt;<br>
&gt; &gt; As I understand it, there are two separate ways these service<br>
&gt; &gt; descriptors can be used.<br>
&gt; &gt;<br>
&gt; &gt;   1. A {links}-response table (as described in DataLink section 3)<br>
&gt; &gt;      may refer to a specific Service Descriptor by giving its ID<br>
&gt; &gt;      in the service_def column.<br>
&gt; &gt;<br>
&gt; &gt;   2. Any VOTable is allowed to include Service Descriptor resources,<br>
&gt; &gt;      as made explicit in paragraphs 2 and 3 of DataLink section 4.<br>
&gt; &gt;      Such service descriptors will presumably have at least some<br>
&gt; &gt;      input parameters that take their values from the results table.<br>
&gt; &gt;<br>
&gt; &gt; In case 2, the service descriptor effectively defines a different<br>
&gt; &gt; (full or partial) service invocation for every row of the results table.<br>
&gt; &gt; In case 1 however, such invocations are only defined for those rows<br>
&gt; &gt; in which the service_def column names the descriptor in question.<br>
&gt; &gt;<br>
&gt;<br>
&gt; I agree, but I would say that your description of case 2<br>
&gt; may fail if no DatasetID is set in a row. But that&#39;s probably<br>
&gt; a borderline case.<br>
<br>
</span>Is that right?  Section 4 says this:<br>
<br>
   &quot;Here we describe how to construct a resource that describes a<br>
    service and add it to a VOTable document. The mechanism is<br>
    general and can be used wherever a VOTable document is created.&quot;<br>
<br>
>From that I take that this mechanism is not tied to the {links}-response<br>
format or to provision of a DatasetID.  So for instance you could<br>
write a VOTable that defines a Cone Search invocation for each row,<br>
like this:<br>
<br>
  &lt;VOTABLE&gt;<br>
  &lt;RESOURCE type=&quot;results&quot;&gt;<br>
    &lt;TABLE&gt;<br>
      &lt;FIELD name=&quot;RAJ2000&quot; datatype=&quot;double&quot; ID=&quot;col_ra&quot;/&gt;<br>
      &lt;FIELD name=&quot;DEJ2000&quot; datatype=&quot;double&quot; ID=&quot;col_dec&quot;/&gt;<br>
      &lt;DATA&gt;<br>
        &lt;TABLEDATA&gt;<br>
          &lt;TR&gt;&lt;TD&gt;83.50&lt;/TD&gt;&lt;TD&gt;22.01&lt;/<wbr>TD&gt;&lt;/TR&gt;<br>
          &lt;TR&gt;&lt;TD&gt;323.25&lt;/TD&gt;&lt;TD&gt;-0.81&lt;/<wbr>TD&gt;&lt;/TR&gt;<br>
        &lt;/TABLEDATA&gt;<br>
      &lt;/DATA&gt;<br>
    &lt;/TABLE&gt;<br>
  &lt;/RESOURCE&gt;<br>
  &lt;RESOURCE type=&quot;meta&quot; utype=&quot;adhoc:service&quot;&gt;<br>
    &lt;PARAM name=&quot;standardID&quot; datatype=&quot;char&quot; arraysize=&quot;*&quot;<br>
           value=&quot;ivo://<a href="http://ivoa.net/std/ConeSearch" rel="noreferrer" target="_blank">ivoa.net/std/<wbr>ConeSearch</a>&quot;/&gt;<br>
    &lt;PARAM name=&quot;accessURL&quot; datatype=&quot;char&quot; arraysize=&quot;*&quot;<br>
           value=&quot;<a href="http://cda.harvard.edu/cxcscs/coneSearch" rel="noreferrer" target="_blank">http://cda.harvard.edu/<wbr>cxcscs/coneSearch</a>&quot;/&gt;<br>
    &lt;GROUP name=&quot;inputParams&quot;&gt;<br>
      &lt;PARAM name=&quot;RA&quot;  datatype=&quot;char&quot; arraysize=&quot;*&quot; value=&quot;&quot; ref=&quot;col_ra&quot;/&gt;<br>
      &lt;PARAM name=&quot;DEC&quot; datatype=&quot;char&quot; arraysize=&quot;*&quot; value=&quot;&quot; ref=&quot;col_dec&quot;/&gt;<br>
      &lt;PARAM name=&quot;SR&quot;  datatype=&quot;char&quot; arraysize=&quot;1&quot; value=&quot;1&quot;/&gt;<br>
    &lt;/GROUP&gt;<br>
  &lt;/RESOURCE&gt;<br>
  &lt;/VOTABLE&gt;<br>
<br>
Or is that not the intention?<br>
<span class=""><br>
&gt; The distinction between 1 and 2 being only on where the<br>
&gt; service descriptor adhoc:service sits: directly on the<br>
&gt; results of discovery, in a further (multi)-access enabling<br>
&gt; document.<br>
<br>
</span>If the example above is correct use of the Service Descriptor<br>
construct, then the difference is greater: in case 2 the service<br>
descriptor(s) can be applied to all rows of the results table,<br>
but in case 1 only those rows with an appropriate service_def<br>
value define such invocations.<br>
<span class=""><br>
&gt; * - happy you sent this email &#39;cause you forced him<br>
&gt; into a deeper look in Datalnk<br>
<br>
</span>I&#39;m pleased that I could bring a little joy into your life!<br>
<div class="HOEnZb"><div class="h5"><br>
Mark<br>
<br>
--<br>
Mark Taylor   Astronomical Programmer   Physics, Bristol University, UK<br>
<a href="mailto:m.b.taylor@bris.ac.uk">m.b.taylor@bris.ac.uk</a> <a href="tel:%2B44-117-9288776" value="+441179288776">+44-117-9288776</a>  <a href="http://www.star.bris.ac.uk/~mbt/" rel="noreferrer" target="_blank">http://www.star.bris.ac.uk/~<wbr>mbt/</a><br>
</div></div></blockquote></div><br></div></div></div>