VOTable-1.3 Erratum 3 - Clarification on arraysize="1"Author: Tom Donaldson - Applications Working Group Vice-ChairDate: 05 May 2018 The following erratum amends the VOTable-1.3 (Ochsenbein et al. 2013) recommendation. RationaleBackground The VOTable specification (all versions to date) allows FIELD and PARAM values to be arrays of primitive types. To allow proper parsing and interpretation of such values, FIELDs and PARAMs have an "arraysize" attribute which describes the size of each dimension of the array. In VOTable 1.3, "arraysize" is described in sections 2.2 and 4.1, and referenced in multiple other places. The Issue As discussed at the 2017 Interop meeting in Santiago, the VOTable specification has not been interpreted consistently with respect to an arraysize value of 1 (M. Demleitner - "VOTable arraysize=1 discussion"). Does it mean that a FIELD table cell value should be interpreted as an array of size 1, or is it just reinforcing the fact that single scalar values should be expected? Different clients have picked different answers to that question. Conversely, if one scalar value is expected per table cell, should arraysize be set to 1 or omitted entirely? Again, different data providers have made different choices for that case. With both data providers and consumers being inconsistent on these questions, interoperability is more challenging than need be, with clients needing to guess the intentions of the data provider. The Resolution This erratum clarifies that arraysize should be present if, and only if, the corresponding FIELD or PARAM values are intended to be treated as arrays. FIELDs or PARAMs with single scalar values should not have an arraysize attribute. | ||||||||
Changed: | ||||||||
< < | The only cases in which arraysize=1 would be appropriate would be those FIELDs or PARAMs whose single values are meant to be interpreted as arrays of size 1. Since those cases are rare, and legacy clients will misinterpret such specification, we for now discourage the use of arraysize="1" entirely. | |||||||
> > | The only cases in which arraysize=1 would be appropriate would be those FIELDs or PARAMs whose single values are meant to be interpreted as arrays of size 1. Since those cases are rare, and some legacy clients will misinterpret such specification, we for now discourage the use of arraysize="1" entirely. | |||||||
Change of standards textSection 2.2 - append the following text to end of the section: Note: arraysize should be present if, and only if, each table cell for the FIELD is intended to be treated as an array. arraysize="1" should not be used, as it is interpreted differently by different clients at this point. If a future VOTable specification re-encourages its use, arraysize="1" will mean "array of length 1". Section 4.1 - append the following text to the arraysize bullet: The arraysize attribute should be omitted unless the corresponding table cell contents is intended to be understood as an array (see also section 2.2).Impact AssesmentOperational services will not break as a direct result of this erratum. However:
ReferencesInterop presentation - "VOTable arraysize=1 discussion"M. Demleitner - 2017 - Santiago http://wiki.ivoa.net/internal/IVOA/InterOpOct2017Apps/arraysize-slides.pdf |
VOTable-1.3 Erratum 3 - Clarification on arraysize="1" | ||||||||
Changed: | ||||||||
< < | Author: Tom Donaldson - Applications Working Group Vice-Chair Date: 08 February 2018 | |||||||
> > | Author: Tom Donaldson - Applications Working Group Vice-Chair Date: 05 May 2018 | |||||||
The following erratum amends the VOTable-1.3 (Ochsenbein et al. 2013) recommendation. | ||||||||
Changed: | ||||||||
< < | Rationale | |||||||
> > | Rationale | |||||||
Background The VOTable specification (all versions to date) allows FIELD and PARAM values to be arrays of primitive types. To allow proper parsing and interpretation of such values, FIELDs and PARAMs have an "arraysize" attribute which describes the size of each dimension of the array. In VOTable 1.3, "arraysize" is described in sections 2.2 and 4.1, and referenced in multiple other places. The Issue As discussed at the 2017 Interop meeting in Santiago, the VOTable specification has not been interpreted consistently with respect to an arraysize value of 1 (M. Demleitner - "VOTable arraysize=1 discussion"). Does it mean that a FIELD table cell value should be interpreted as an array of size 1, or is it just reinforcing the fact that single scalar values should be expected? Different clients have picked different answers to that question. Conversely, if one scalar value is expected per table cell, should arraysize be set to 1 or omitted entirely? Again, different data providers have made different choices for that case. With both data providers and consumers being inconsistent on these questions, interoperability is more challenging than need be, with clients needing to guess the intentions of the data provider. The Resolution | ||||||||
Changed: | ||||||||
< < | This erratum clarifies that arraysize should be present if, and only if, the corresponding FIELD or PARAM values are intended to be treated as arrays. FIELDs or PARAMs with single scalar values should not have an arraysize attribute. | |||||||
> > | This erratum clarifies that arraysize should be present if, and only if, the corresponding FIELD or PARAM values are intended to be treated as arrays. FIELDs or PARAMs with single scalar values should not have an arraysize attribute. | |||||||
Changed: | ||||||||
< < | The only cases in which arraysize=1 is appropriate are those FIELDs or PARAMs whose single values are meant to be interpreted as arrays of size 1. Since those cases are probably rare, it is recommended that VOTable validators flag a warning any time arraysize=1 is used. | |||||||
> > | The only cases in which arraysize=1 would be appropriate would be those FIELDs or PARAMs whose single values are meant to be interpreted as arrays of size 1. Since those cases are rare, and legacy clients will misinterpret such specification, we for now discourage the use of arraysize="1" entirely. | |||||||
Deleted: | ||||||||
< < | Change of standards text | |||||||
Added: | ||||||||
> > | Change of standards text | |||||||
Section 2.2 - append the following text to end of the section: | ||||||||
Changed: | ||||||||
< < | Note: arraysize should be present if, and only if, each table cell for the FIELD is intended to be treated as an array. arraysize="1" should only be used in the unusual case that the table cells will contain single values that are intended to be understood as single-value arrays. | |||||||
> > | Note: arraysize should be present if, and only if, each table cell for the FIELD is intended to be treated as an array. arraysize="1" should not be used, as it is interpreted differently by different clients at this point. If a future VOTable specification re-encourages its use, arraysize="1" will mean "array of length 1". | |||||||
Section 4.1 - append the following text to the arraysize bullet: | ||||||||
Changed: | ||||||||
< < | The arraysize attribute should be omitted unless the corresponding table cell contents is intended to be understood as an array. | |||||||
> > | The arraysize attribute should be omitted unless the corresponding table cell contents is intended to be understood as an array (see also section 2.2). | |||||||
Deleted: | ||||||||
< < | Impact Assesment | |||||||
Added: | ||||||||
> > | Impact Assesment | |||||||
Operational services will not break as a direct result of this erratum. However:
| ||||||||
Changed: | ||||||||
< < | References | |||||||
> > | References | |||||||
Interop presentation - "VOTable arraysize=1 discussion" M. Demleitner - 2017 - Santiago http://wiki.ivoa.net/internal/IVOA/InterOpOct2017Apps/arraysize-slides.pdf |
VOTable-1.3 Erratum 3 - Clarification on arraysize="1"Author: Tom Donaldson - Applications Working Group Vice-ChairDate: 08 February 2018 The following erratum amends the VOTable-1.3 (Ochsenbein et al. 2013) recommendation. RationaleBackground The VOTable specification (all versions to date) allows FIELD and PARAM values to be arrays of primitive types. To allow proper parsing and interpretation of such values, FIELDs and PARAMs have an "arraysize" attribute which describes the size of each dimension of the array. In VOTable 1.3, "arraysize" is described in sections 2.2 and 4.1, and referenced in multiple other places. The Issue As discussed at the 2017 Interop meeting in Santiago, the VOTable specification has not been interpreted consistently with respect to an arraysize value of 1 (M. Demleitner - "VOTable arraysize=1 discussion"). Does it mean that a FIELD table cell value should be interpreted as an array of size 1, or is it just reinforcing the fact that single scalar values should be expected? Different clients have picked different answers to that question. Conversely, if one scalar value is expected per table cell, should arraysize be set to 1 or omitted entirely? Again, different data providers have made different choices for that case. With both data providers and consumers being inconsistent on these questions, interoperability is more challenging than need be, with clients needing to guess the intentions of the data provider. The Resolution This erratum clarifies that arraysize should be present if, and only if, the corresponding FIELD or PARAM values are intended to be treated as arrays. FIELDs or PARAMs with single scalar values should not have an arraysize attribute. The only cases in which arraysize=1 is appropriate are those FIELDs or PARAMs whose single values are meant to be interpreted as arrays of size 1. Since those cases are probably rare, it is recommended that VOTable validators flag a warning any time arraysize=1 is used.Change of standards textSection 2.2 - append the following text to end of the section: Note: arraysize should be present if, and only if, each table cell for the FIELD is intended to be treated as an array. arraysize="1" should only be used in the unusual case that the table cells will contain single values that are intended to be understood as single-value arrays. Section 4.1 - append the following text to the arraysize bullet: The arraysize attribute should be omitted unless the corresponding table cell contents is intended to be understood as an array.Impact AssesmentOperational services will not break as a direct result of this erratum. However:
ReferencesInterop presentation - "VOTable arraysize=1 discussion"M. Demleitner - 2017 - Santiago http://wiki.ivoa.net/internal/IVOA/InterOpOct2017Apps/arraysize-slides.pdf |