Datalink service descriptor usage

Mark Taylor m.b.taylor at
Fri Feb 2 12:33:44 CET 2018

Dear DAL,

I have another question about the DataLink standard.

Section 4 of the DataLink document describes Service Descriptors.
These are RESOURCE elements in VOTable documents containing
information about external services that can be invoked in
a way that is relevant to the data in a results table contained
within the same VOTable document.

As I understand it, there are two separate ways these service
descriptors can be used.

  1. A {links}-response table (as described in DataLink section 3)
     may refer to a specific Service Descriptor by giving its ID
     in the service_def column.

  2. Any VOTable is allowed to include Service Descriptor resources,
     as made explicit in paragraphs 2 and 3 of DataLink section 4.
     Such service descriptors will presumably have at least some 
     input parameters that take their values from the results table.

In case 2, the service descriptor effectively defines a different
(full or partial) service invocation for every row of the results table.
In case 1 however, such invocations are only defined for those rows 
in which the service_def column names the descriptor in question.

So client code that handles service descriptors generically,
by offering service invocations per-row for each service
desriptor, cannot be used for links-response tables.
It must be replaced instead by code which offers invocations
only for those rows with the relevant service_def values.
Such clients must therefore be able to identify whether a
given table is or is not a links-response table and behave

Have I got that right?


Mark Taylor   Astronomical Programmer   Physics, Bristol University, UK
m.b.taylor at +44-117-9288776

More information about the dal mailing list