ivoa-std / VOTable

VOTable Format Definition
4 stars 15 forks source link

Consider removing recommendation to avoid forward references #27

Closed smonkewitz closed 11 months ago

smonkewitz commented 3 years ago

In section 3.2 of the 1.4 standard, it is stated that:

From VOTable 1.2, it is further recommended to place the ID attribute prior to referencing it whenever possible.

When emitting a DataLink service descriptor, one must produce a RESOURCE with type="meta" that contains a GROUP of PARAMs referencing columns in the results RESOURCE. Following the VO table spec recommendation above leads to placing service descriptor resources after results resources. This is suboptimal from the perspective of e.g. clients wishing to initialize a GUI using service descriptor metadata, as they must in many cases read all of the (potentially large) result data before its full description is available.

From my perspective, it's much more natural to place service descriptor resources before result resources. While the current standard doesn't make this illegal, I propose we make it less discouraging of that particular implementation choice.

mbtaylor commented 3 years ago

IIRC the text recommending ID before ref was at my suggestion. In general it does make life easier for streaming parsers, which is what I had in mind. But I agree the case above might work better the other way round. The existing text doesn't outlaw that, but I wouldn't be averse to toning it down, e.g. "For the convenience of streaming parsers, it is generally preferred to place the ID attribute prior to referencing it."

smonkewitz commented 3 years ago

I would be happy with that wording.