Generic FIELD/PARAM metadata items in VOTable

BONNAREL FRANCOIS francois.bonnarel at astro.unistra.fr
Fri Jun 30 13:18:34 CEST 2023


Dear all,


Le 24/05/2023 à 12:34, F.-X. Pineau a écrit :
> Mark and All,
>
> 2 - On the particular HEALPix example
>
> VOTable represents tabular data, thus a very flat view on data.
>
> I lack fantasy to imagine what to do from an HEALPix number without 
> knowing its order.
> The order is an important piece of data going along with the HEALPix 
> indices.
> When each row have a different order, it is natural to provide the 
> order in a separate column.
> We do not consider the "order" column as a sub-column.
> So, if all rows have the same order, it seems natural to me to provide 
> the info in a PARAM
> (= column of constant value), thus at a table level (and not at a 
> column level).
>
> From my point-of-view, it is the role of GROUPs or VODML or refs
> (or other mechanism possibly complementing but letting the FIELD/PARAM 
> structure unchanged)
> to introduce a hierarchy/logic/semantic(?) (beyond UCDs) in the set of 
> FIELDS/PARAMS.
>
>> You could also end up with multiple PARAMs having the same name, but
>> referring to different columns, but I don't think there is any rule
>> against that.
>
> I probably miss your point since I don't see this as problematic 
> knowing that
> there is (at most) one ref per PARAM and the IDs are supposed to be 
> unique.
> (A good practice, though, should be to have unique FIELDs/PARAMs names).
> Are you thinking of several columns sharing a same PARAM (that will 
> have to be duplicated)?
>
> (I agree for the readability, but are VOTable made to be human readable?
> And from a human point-of-view, the column name (e.g. 'hpx8') and the 
> DESCRIPTION
> of the column should be enough to know the order).
>
> Bonus: when serializing a VOTable in CSV, I tend to think that
> PARAMs should be represented as columns containing constant values
> (so even if the metadata is lost, we still have the PARAMs (redundant) 
> values in output).
>
> What do you think?


I think the PARAM solution works well for the healpix_order issue and 
also for the optional/mandatory issue for service input Parameters

It's really VOTable conservative and requires no change in the schema

I would only suggest to use the utype attribute of this  PARAM to give 
the "healpix_oder" role of the PARAM instead of a name. It's really 
difficult to standardize names at the VOTable spec level and utypes are 
used as ivoa_roles in practice (by the way even when they point to a 
datamodel attribute they serve as ivoa_roles. They could go in a 
specific utype or ivoa_role ivoa list of terms in the future , now taht 
we have MIVOT on the other side )

So following François Xavier example this could give

<PARAM name =hpxo" utype="healpix_order"  value="8" ref="healpix_id"/>
<FIELD ID="healpix_id" name="healpix_id" datatype="int"/>

and for a parameter in a service descriptor

<PARAM name="ID_status_or_whatever" utype="param_optional_tag" 
datatype="boolean" value="false" ref="ID-id" />

<PARAM ID="ID_id" name="ID" datatype="char" arraysize="*" value="" 
ref="id_inthe_table" />

<PARAM name="BAND_status_or_whatever" utype="param_optional_tag" 
datatype="boolean" value="true" ref="band-id" />

<PARAM ID="BAND-id" name="BAND" datatype="double" arraysize="2" value="" 
xtype="interval" />


Of course for Rdf use case, it is a little bit more complicated.

Best regards

François



More information about the apps mailing list