Simple DataLink question: Can links be relative?

Tom McGlynn (NASA/GSFC Code 660.1) tom.mcglynn at nasa.gov
Fri Feb 16 19:19:11 CET 2018


Thanks to Carlos and Mark for responding.  Sounds like I should forego any thought of using relative 
URLs.

I'd suggest that this should be made explicit in any future revision of thestandard.  Carlos' quote 
from the standard is arguably relevant, but I think the language is quite unclear -- while I 
understand what it means not to have to add parameters what 'client handling' covers is vague.  It's 
not obvious to me that it would preclude relative URLs.  The one thing that the relative URL is sure 
to have is the parameters!  And of course this text doesn't apply to the service descriptor queryURL.

Mark's comment that DataLinks might be stored, could apply equally to HTML documents where we 
nonetheless find relative URLs helpful -- in circumstances similar to what I was thinking of.

The use case I was considering is where I have a set of interconnected VO services, e.g., a TAP 
service that refers to a DataLink service which in turn might refer to SIA and SSA services (among 
others)

If I want to have a multiple versions of this framework (development, test, operations, e.g.), then 
it would be very clean to use relative addresses.  E.g., I might have a development environment at
          http://anyURL/devel
  where I could run a TAP request
          http://anyURL/devel/vo/tap/sync?.....
that refers to a service at
                      ../../datalink
  which when invoked returns a row pointing to an associated SIA service at
                      ../sia?POS=...
Nothing at all would need to change when I delivered the framework to
         http://anyURL/ops

Instead the code will need to dig up the invoked URL dynamically (subject to issues when playing 
with firewalls and load balancers) or have addresses hardwired into the system using a settings file 
or some such. In general I think maintenance of related systems is substantially easier if the 
elements can refer to each using their relationship rather than by absolute addresses.. But if the 
clients don't support relative URL's I guess I'm out of luck!


     Tom


Carlos Rodrigo wrote:
> Hi Tom
>
> In my understanding, whenever URL are provided by VO services, they must be full URLs. Otherwise,
> clients would need to remember the url that generated the current VOTable to be able to complete the
> following URL, what looks like a complication.
>
> So, although I don't remember that this is specified explicitely by any standard, I would say that
> relative URL are not a very good idea (at least at first sight).
>
> In the DataLink particular case, it is said (sec 3.2.2)
>
> "The access_url column contains a URL to download a single resource. The URL
> in this column must be usable as-is with no additional parameters or client
> handling; it can be a link to a dynamic resource (e.g. preview generation)."
>
> So I think that it is clear that relative url's are not allowed.
>
> Carlos
>
> On 15/02/18 20:57, Tom McGlynn (NASA/GSFC Code 660.1) wrote:
>> In a service descriptor  (4.1 in the sDataLink tandard) can I use a relative URL to describe the
>> location of the service to be invoked in the accessURL?
>>
>> Similarly can relative URLs be used in  a DataLink results table (section 3.2) in the accessURL
>> column of  the table?
>>
>>      Tom McGlynn
>>
>>
>>
>>
>>



More information about the dal mailing list