param-link-to-field
François Bonnarel
francois.bonnarel at astro.unistra.fr
Thu Feb 27 23:36:42 PST 2014
Hi all,
Thank you Markus for convergence. I could argue a little more about
utype use in my proposal but this is not the main point I want to
emphasize now.
By the way such kind of Service description (here used for a
Datalink service) could be generalized to other kind of services and
could also be included in DataLink responses.
For example an AccessData service could be described in a DataLink
response this way by adding a few standard parameters .
<RESOURCE type="service">
<PARAM name="resourceIdentifier" datatype="char" arraysize="*"
value="ivo://example/accessData" />
<PARAM name="standardID" datatype="char" arraysize="*"
value="ivo://ivoa.net/std/AccesData#cutout" />
<PARAM name="accessURL" datatype="char" arraysize="*"
value="http://example.com/accessData/mycutout" />
<PARAM name="ID" ref="DATASET_ID" />
<PARAM name="POS" />
<PARAM name="BAND" />
</RESOURCE>
While a free service could be described in a DataLink response this way
<RESOURCE type="service">
<PARAM name="resourceIdentifier" datatype="char" arraysize="*"
value="ivo://example/myFreeService" />
<PARAM name="standardID" datatype="char" arraysize="*"
value="ivo://ivoa.net/freeService" />
<PARAM name="accessURL" datatype="char" arraysize="*"
value="http://example.com/myFreeServices/modelFit" />
<PARAM name="ID" ref="DATASET_ID" />
<PARAM name="MODEL">
<VALUES>
<OPTION XXX YYY ZZZ />
</VALUES>
</PARAM>
<PARAM name="TEMP">
<VALUES>
<MIN 10000K />
<MAX 50000K />
</VALUES>
</PARAM>
</RESOURCE>
CAUTION : if the described service is not associated to all Query
response rows but to some rows only the bounding is made via the PARAM
"resourceIdentifier" which is associated to appropriate row this way
<RESOURCE type="service">
<PARAM name="resourceIdentifier" datatype="char" arraysize="*"
value="ivo://example/myFreeService" ref ="resourceID" />
<PARAM name="standardID" datatype="char" arraysize="*"
value="ivo://ivoa.net/freeService" />
<PARAM name="accessURL" datatype="char" arraysize="*"
value="http://example.com/myFreeServices/modelFit" />
<PARAM name="ID" ref="DATASET_ID" />
<PARAM name="MODEL">
<VALUES>
<OPTION XXX YYY ZZZ />
</VALUES>
</PARAM>
<PARAM name="TEMP">
<VALUES>
<MIN 10000K />
<MAX 50000K />
</VALUES>
</PARAM>
</RESOURCE>
Best regards
François (after discussion with Laurent and Mireille here in Strasbourg)
Le 19/02/2014 09:49, Markus Demleitner a écrit :
> Dear DAL,
>
> On Tue, Feb 18, 2014 at 03:55:52PM +0100, François Bonnarel wrote:
>> A simple "ref" on the SErvice parameter could work as long as it's
>> distinguished by an ad hoc (DataLink specific utype) this way, eg :
>>> <RESOURCE type="service">
>>> <PARAM name="resourceIdentifier" datatype="char" arraysize="*"
>>> value="ivo://example/datalink" />
>>> <PARAM name="standardID" datatype="char" arraysize="*"
>>> value="ivo://ivoa.net/std/DataLink#links" />
>>> <PARAM name="accessURL" datatype="char" arraysize="*"
>>> value="http://example.com/datalink/mylinks" />
>>> <PARAM name="ID" utype="dl:serviceInputParam" ref="datalinkID" />
>>> </RESOURCE>
> Whoa! I had completely forgotten about PARAM/@ref. Sorry about
> causing all the stir. This is, to me, the VOTably correct solution.
>
> While thinking a bit further, I wondered what the utype here said.
> Giving the LINK a content-role would have made sense because the
> PARAM might have had other LINKs. In the PARAM, on the other hand,
> the utype refers to the whole thing element (rather than just the
> ref), and the PARAM with the name ID, already by the protocol
> definition, must always be the parameter holding the identifier.
>
> If we now have a second thing to mark up "this is the id parameter"
> -- i.e., the utype --, we'd have to say "a service that has
> dl:serviceInputParam on anything but a PARAM with the name ID is
> invalid," and then anyone would ask: "Then why bother with the utype
> at all?"
>
> After this, I'd like to retract the part of my Dec 12 proposal
> between "A data access service accepting identifiers" and "is of
> course arbitrary." I'd like to replace it with:
>
> A data access service accepting identifiers from the corresponding
> column would declare its ID parameter in the inputParams GROUP with
> a ref attribute referencing the FIELD's ID. Continuing the
> previous example, it could look like this:
>
> <PARAM name="ID" arraysize="*" datatype="char" ucd="meta.id;meta.main"
> value="" ref="datalinkID">
> <DESCRIPTION>The pubisher DID of the dataset of interest</DESCRIPTION>
> </PARAM>
>
> The string chosen for the FIELD's ID and consequently in the
> PARAM's ref attributes is up to the generating service (i.e.,
> clients must not assume the datalinkID). The description of the
> PARAM should be adapted to the actual identifier used.
>
> Again, apologies for having missed this elegant solution and
> therefore having caused all the noise. And thanks to François for
> pointing this out.
>
> Cheers,
>
> Markus
More information about the dal
mailing list