<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="moz-cite-prefix">Le 14/02/2023 à 18:48, Mark Taylor a
      écrit :<br>
    </div>
    <blockquote type="cite"
      cite="mid:e6fc2520-90f8-ec89-b3e5-b69cc2330bd@IT076926">
      <pre class="moz-quote-pre" wrap="">Alberto,

On Tue, 14 Feb 2023, alberto micol wrote:

</pre>
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">Before answering Francois’ request for my comments,
I need to ask a question to Mark.
</pre>
      </blockquote>
      <pre class="moz-quote-pre" wrap="">
I'm assuming you're asking me with my taplint/votlint hat on.
 
</pre>
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">I do agree with you, Mark, that using scalar MIN and MAX values 
for a xtype=“interval" element is the least surprising semantics,
but...

Votable 1.4 seems to require that the MIN and MAX <VALUES> must be of the same arraysize as the parent parameter.
</pre>
      </blockquote>
      <pre class="moz-quote-pre" wrap="">
Is that true?  I may be missing it but I don't see text in VOTable 1.4
that says that.  I don't see anything much in the text that mandates
what has to go into the MIN/MAX value attribute, beyond a couple of
examples.  It's sort of obvious for scalar numeric fields,
but far from obvious for array values.  For that reason
(as far as I can remember) votlint/taplint does not attempt to
validate the MIN/MAX values - currently, you can write anything
in there and votlint/taplint will not tell you off.

If future versions of the VOTable standard are clearer about what
can go into MIN and MAX, I expect I will update the validator logic
to report non-compliance.

</pre>
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">Indeed ASTROPY complains if the arraysizes of the VALUES MIN and MAX are not the same as for the PARAM:
WARNING: E02: ?:?:?: E02: Incorrect number of elements in array. Expected multiple of 2, got 1 [astropy.io.votable.converters]
</pre>
      </blockquote>
      <pre class="moz-quote-pre" wrap="">
So it looks like the astropy validator made a different decision about
how to validate those elements than I did.

</pre>
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">I understand VOTable 1.5 is supposed to change this; the new text reads:
</pre>
        <blockquote type="cite">
          <pre class="moz-quote-pre" wrap="">When the parent of a VALUES element does have an xtype, special rules apply;
clients should only try to parse limits of xtyped fields when they know the xtype.
</pre>
        </blockquote>
        <pre class="moz-quote-pre" wrap="">
The text “when they know the xtype” confuses me quite a bit. What does that mean in practice? For example:
How will a validator understand how to validate a votable with MIN/MAX VALUES expressed with arraysizes different than its parent element,
as suggested for the MIN MAX of an interval ? 
</pre>
      </blockquote>
      <pre class="moz-quote-pre" wrap="">
I think the idea is that where a known xtype is present, parsers
(and validators) should interpret the MIN/MAX in accordance with
special rules about MIN/MAX that are provided along with the
xtype definition (most likely in DALI); those rules will explain
what the constraints are for that xtype.  If an unrecognised xtype
is present, parsers can't make sense of MIN/MAX and shouldn't try.
In absence of xtype, MIN/MAX has to be a scalar with "obvious"
semantics.</pre>
    </blockquote>
    <p>If we choose the scalar generic solution then the following text
      in 4.2 <br>
    </p>
    <p>"<span style="color: rgb(0, 0, 0); font-family: sans-serif;
        font-size: medium; font-style: normal; font-variant-ligatures:
        normal; font-variant-caps: normal; font-weight: 400;
        letter-spacing: normal; orphans: 2; text-align: start;
        text-indent: 0px; text-transform: none; white-space: normal;
        widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px;
        background-color: rgb(255, 255, 255); text-decoration-thickness:
        initial; text-decoration-style: initial; text-decoration-color:
        initial; display: inline !important; float: none;">For
        float-valued intervals (e.g., the standard BAND and TIME
        parameters),<span> </span></span><span class="xmlel"
        style="font-family: monospace; font-style: italic; color: rgb(0,
        0, 0); font-variant-ligatures: normal; font-variant-caps:
        normal; font-weight: 400; letter-spacing: normal; orphans: 2;
        text-align: start; text-indent: 0px; text-transform: none;
        white-space: normal; widows: 2; word-spacing: 0px;
        -webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
        255); text-decoration-thickness: initial; text-decoration-style:
        initial; text-decoration-color: initial;">VALUES/MIN</span><span
        style="color: rgb(0, 0, 0); font-family: sans-serif; font-size:
        medium; font-style: normal; font-variant-ligatures: normal;
        font-variant-caps: normal; font-weight: 400; letter-spacing:
        normal; orphans: 2; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: 2;
        word-spacing: 0px; -webkit-text-stroke-width: 0px;
        background-color: rgb(255, 255, 255); text-decoration-thickness:
        initial; text-decoration-style: initial; text-decoration-color:
        initial; display: inline !important; float: none;"><span> </span>and<span> </span></span><span
        class="xmlel" style="font-family: monospace; font-style: italic;
        color: rgb(0, 0, 0); font-variant-ligatures: normal;
        font-variant-caps: normal; font-weight: 400; letter-spacing:
        normal; orphans: 2; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: 2;
        word-spacing: 0px; -webkit-text-stroke-width: 0px;
        background-color: rgb(255, 255, 255); text-decoration-thickness:
        initial; text-decoration-style: initial; text-decoration-color:
        initial;">VALUES/MAX</span><span style="color: rgb(0, 0, 0);
        font-family: sans-serif; font-size: medium; font-style: normal;
        font-variant-ligatures: normal; font-variant-caps: normal;
        font-weight: 400; letter-spacing: normal; orphans: 2;
        text-align: start; text-indent: 0px; text-transform: none;
        white-space: normal; widows: 2; word-spacing: 0px;
        -webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
        255); text-decoration-thickness: initial; text-decoration-style:
        initial; text-decoration-color: initial; display: inline
        !important; float: none;"><span> </span>should be used to
        communicate the range of values for which clients can expect to
        receive data" <br>
      </span></p>
    <p>should become <span style="color: rgb(0, 0, 0); font-family:
        sans-serif; font-size: medium; font-style: normal;
        font-variant-ligatures: normal; font-variant-caps: normal;
        font-weight: 400; letter-spacing: normal; orphans: 2;
        text-align: start; text-indent: 0px; text-transform: none;
        white-space: normal; widows: 2; word-spacing: 0px;
        -webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
        255); text-decoration-thickness: initial; text-decoration-style:
        initial; text-decoration-color: initial; display: inline
        !important; float: none;"></span></p>
    <p><span style="color: rgb(0, 0, 0); font-family: sans-serif;
        font-size: medium; font-style: normal; font-variant-ligatures:
        normal; font-variant-caps: normal; font-weight: 400;
        letter-spacing: normal; orphans: 2; text-align: start;
        text-indent: 0px; text-transform: none; white-space: normal;
        widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px;
        background-color: rgb(255, 255, 255); text-decoration-thickness:
        initial; text-decoration-style: initial; text-decoration-color:
        initial; display: inline !important; float: none;">For
        float-valued intervals (e.g., the standard BAND and TIME
        parameters),<span> </span></span><span class="xmlel"
        style="font-family: monospace; font-style: italic; color: rgb(0,
        0, 0); font-variant-ligatures: normal; font-variant-caps:
        normal; font-weight: 400; letter-spacing: normal; orphans: 2;
        text-align: start; text-indent: 0px; text-transform: none;
        white-space: normal; widows: 2; word-spacing: 0px;
        -webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
        255); text-decoration-thickness: initial; text-decoration-style:
        initial; text-decoration-color: initial;">VALUES/MIN</span><span
        style="color: rgb(0, 0, 0); font-family: sans-serif; font-size:
        medium; font-style: normal; font-variant-ligatures: normal;
        font-variant-caps: normal; font-weight: 400; letter-spacing:
        normal; orphans: 2; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: 2;
        word-spacing: 0px; -webkit-text-stroke-width: 0px;
        background-color: rgb(255, 255, 255); text-decoration-thickness:
        initial; text-decoration-style: initial; text-decoration-color:
        initial; display: inline !important; float: none;"><span> </span>and<span> </span></span><span
        class="xmlel" style="font-family: monospace; font-style: italic;
        color: rgb(0, 0, 0); font-variant-ligatures: normal;
        font-variant-caps: normal; font-weight: 400; letter-spacing:
        normal; orphans: 2; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: 2;
        word-spacing: 0px; -webkit-text-stroke-width: 0px;
        background-color: rgb(255, 255, 255); text-decoration-thickness:
        initial; text-decoration-style: initial; text-decoration-color:
        initial;">VALUES/MAX</span><span style="color: rgb(0, 0, 0);
        font-family: sans-serif; font-size: medium; font-style: normal;
        font-variant-ligatures: normal; font-variant-caps: normal;
        font-weight: 400; letter-spacing: normal; orphans: 2;
        text-align: start; text-indent: 0px; text-transform: none;
        white-space: normal; widows: 2; word-spacing: 0px;
        -webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
        255); text-decoration-thickness: initial; text-decoration-style:
        initial; text-decoration-color: initial; display: inline
        !important; float: none;"><span> </span>should be used to
        communicate the range of values for which clients can expect to
        receive data as stated for MIN/MAX values in the generic case
        starting from VOTable 1.5"</span></p>
    <p><span style="color: rgb(0, 0, 0); font-family: sans-serif;
        font-size: medium; font-style: normal; font-variant-ligatures:
        normal; font-variant-caps: normal; font-weight: 400;
        letter-spacing: normal; orphans: 2; text-align: start;
        text-indent: 0px; text-transform: none; white-space: normal;
        widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px;
        background-color: rgb(255, 255, 255); text-decoration-thickness:
        initial; text-decoration-style: initial; text-decoration-color:
        initial; display: inline !important; float: none;"><br>
      </span></p>
    <p><span style="color: rgb(0, 0, 0); font-family: sans-serif;
        font-size: medium; font-style: normal; font-variant-ligatures:
        normal; font-variant-caps: normal; font-weight: 400;
        letter-spacing: normal; orphans: 2; text-align: start;
        text-indent: 0px; text-transform: none; white-space: normal;
        widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px;
        background-color: rgb(255, 255, 255); text-decoration-thickness:
        initial; text-decoration-style: initial; text-decoration-color:
        initial; display: inline !important; float: none;">But in the
        same 4.2 subsection we give examples for CIRCLE and POLYGON
        parameters and say</span></p>
    <p><span style="color: rgb(0, 0, 0); font-family: sans-serif;
        font-size: medium; font-style: normal; font-variant-ligatures:
        normal; font-variant-caps: normal; font-weight: 400;
        letter-spacing: normal; orphans: 2; text-align: start;
        text-indent: 0px; text-transform: none; white-space: normal;
        widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px;
        background-color: rgb(255, 255, 255); text-decoration-thickness:
        initial; text-decoration-style: initial; text-decoration-color:
        initial; display: inline !important; float: none;">1 ) "For
        CIRCLE, only a MAX is given. It contains three floating point
        values, separated by whitespace. These correspond to the RA and
        Dec of the center of a spherical circle covering the dataset,
        and a radius of such a covering circle. "</span></p>
    <p><span style="color: rgb(0, 0, 0); font-family: sans-serif;
        font-size: medium; font-style: normal; font-variant-ligatures:
        normal; font-variant-caps: normal; font-weight: 400;
        letter-spacing: normal; orphans: 2; text-align: start;
        text-indent: 0px; text-transform: none; white-space: normal;
        widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px;
        background-color: rgb(255, 255, 255); text-decoration-thickness:
        initial; text-decoration-style: initial; text-decoration-color:
        initial; display: inline !important; float: none;">Which look
        like a definition of how we could  interpret MIN/MAX in the case
        of xtype="circle" in DALI-next <br>
      </span></p>
    <p><span style="color: rgb(0, 0, 0); font-family: sans-serif;
        font-size: medium; font-style: normal; font-variant-ligatures:
        normal; font-variant-caps: normal; font-weight: 400;
        letter-spacing: normal; orphans: 2; text-align: start;
        text-indent: 0px; text-transform: none; white-space: normal;
        widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px;
        background-color: rgb(255, 255, 255); text-decoration-thickness:
        initial; text-decoration-style: initial; text-decoration-color:
        initial; display: inline !important; float: none;"> 2 ) </span><span
        style="color: rgb(0, 0, 0); font-family: sans-serif; font-size:
        medium; font-style: normal; font-variant-ligatures: normal;
        font-variant-caps: normal; font-weight: 400; letter-spacing:
        normal; orphans: 2; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: 2;
        word-spacing: 0px; -webkit-text-stroke-width: 0px;
        background-color: rgb(255, 255, 255); text-decoration-thickness:
        initial; text-decoration-style: initial; text-decoration-color:
        initial; display: inline !important; float: none;">"For POLYGON,
        again only a<span> </span></span><span class="xmlel"
        style="font-family: monospace; font-style: italic; color: rgb(0,
        0, 0); font-variant-ligatures: normal; font-variant-caps:
        normal; font-weight: 400; letter-spacing: normal; orphans: 2;
        text-align: start; text-indent: 0px; text-transform: none;
        white-space: normal; widows: 2; word-spacing: 0px;
        -webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
        255); text-decoration-thickness: initial; text-decoration-style:
        initial; text-decoration-color: initial;">MAX</span><span
        style="color: rgb(0, 0, 0); font-family: sans-serif; font-size:
        medium; font-style: normal; font-variant-ligatures: normal;
        font-variant-caps: normal; font-weight: 400; letter-spacing:
        normal; orphans: 2; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: 2;
        word-spacing: 0px; -webkit-text-stroke-width: 0px;
        background-color: rgb(255, 255, 255); text-decoration-thickness:
        initial; text-decoration-style: initial; text-decoration-color:
        initial; display: inline !important; float: none;"><span> </span>is
        given. It consists of a sequence of floating-point values, again
        separated by blanks, describing RA and Dec of the vertices of a
        spherical polygon covering the dataset. Data providers are
        encouraged to choose a minimal polygon. Example:"</span></p>
    <p><span style="color: rgb(0, 0, 0); font-family: sans-serif;
        font-size: medium; font-style: normal; font-variant-ligatures:
        normal; font-variant-caps: normal; font-weight: 400;
        letter-spacing: normal; orphans: 2; text-align: start;
        text-indent: 0px; text-transform: none; white-space: normal;
        widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px;
        background-color: rgb(255, 255, 255); text-decoration-thickness:
        initial; text-decoration-style: initial; text-decoration-color:
        initial; display: inline !important; float: none;">Which look
        like a definition of how we could  interpret MIN/MAX in the case
        of xtype="polygon" in DALI-next</span></p>
    <p><span style="color: rgb(0, 0, 0); font-family: sans-serif;
        font-size: medium; font-style: normal; font-variant-ligatures:
        normal; font-variant-caps: normal; font-weight: 400;
        letter-spacing: normal; orphans: 2; text-align: start;
        text-indent: 0px; text-transform: none; white-space: normal;
        widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px;
        background-color: rgb(255, 255, 255); text-decoration-thickness:
        initial; text-decoration-style: initial; text-decoration-color:
        initial; display: inline !important; float: none;">So for
        consistency in this subsection we could also write <br>
      </span></p>
    <p><span style="color: rgb(0, 0, 0); font-family: sans-serif;
        font-size: medium; font-style: normal; font-variant-ligatures:
        normal; font-variant-caps: normal; font-weight: 400;
        letter-spacing: normal; orphans: 2; text-align: start;
        text-indent: 0px; text-transform: none; white-space: normal;
        widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px;
        background-color: rgb(255, 255, 255); text-decoration-thickness:
        initial; text-decoration-style: initial; text-decoration-color:
        initial; display: inline !important; float: none;">We could also
        add in parenthesis (xtype="interval, xtype="circle",
        xtype="polygon") at the right place in the text<br>
      </span></p>
    <p><span style="color: rgb(0, 0, 0); font-family: sans-serif;
        font-size: medium; font-style: normal; font-variant-ligatures:
        normal; font-variant-caps: normal; font-weight: 400;
        letter-spacing: normal; orphans: 2; text-align: start;
        text-indent: 0px; text-transform: none; white-space: normal;
        widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px;
        background-color: rgb(255, 255, 255); text-decoration-thickness:
        initial; text-decoration-style: initial; text-decoration-color:
        initial; display: inline !important; float: none;">Thoughts ?</span></p>
    <p><span style="color: rgb(0, 0, 0); font-family: sans-serif;
        font-size: medium; font-style: normal; font-variant-ligatures:
        normal; font-variant-caps: normal; font-weight: 400;
        letter-spacing: normal; orphans: 2; text-align: start;
        text-indent: 0px; text-transform: none; white-space: normal;
        widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px;
        background-color: rgb(255, 255, 255); text-decoration-thickness:
        initial; text-decoration-style: initial; text-decoration-color:
        initial; display: inline !important; float: none;">Cheers</span></p>
    <p><span style="color: rgb(0, 0, 0); font-family: sans-serif;
        font-size: medium; font-style: normal; font-variant-ligatures:
        normal; font-variant-caps: normal; font-weight: 400;
        letter-spacing: normal; orphans: 2; text-align: start;
        text-indent: 0px; text-transform: none; white-space: normal;
        widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px;
        background-color: rgb(255, 255, 255); text-decoration-thickness:
        initial; text-decoration-style: initial; text-decoration-color:
        initial; display: inline !important; float: none;">François<br>
      </span><span class="xmlel" style="font-family: monospace;
        font-style: italic; color: rgb(0, 0, 0); font-variant-ligatures:
        normal; font-variant-caps: normal; font-weight: 400;
        letter-spacing: normal; orphans: 2; text-align: start;
        text-indent: 0px; text-transform: none; white-space: normal;
        widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px;
        background-color: rgb(255, 255, 255); text-decoration-thickness:
        initial; text-decoration-style: initial; text-decoration-color:
        initial;"></span><span style="color: rgb(0, 0, 0); font-family:
        sans-serif; font-size: medium; font-style: normal;
        font-variant-ligatures: normal; font-variant-caps: normal;
        font-weight: 400; letter-spacing: normal; orphans: 2;
        text-align: start; text-indent: 0px; text-transform: none;
        white-space: normal; widows: 2; word-spacing: 0px;
        -webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
        255); text-decoration-thickness: initial; text-decoration-style:
        initial; text-decoration-color: initial; display: inline
        !important; float: none;"></span><span style="color: rgb(0, 0,
        0); font-family: sans-serif; font-size: medium; font-style:
        normal; font-variant-ligatures: normal; font-variant-caps:
        normal; font-weight: 400; letter-spacing: normal; orphans: 2;
        text-align: start; text-indent: 0px; text-transform: none;
        white-space: normal; widows: 2; word-spacing: 0px;
        -webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
        255); text-decoration-thickness: initial; text-decoration-style:
        initial; text-decoration-color: initial; display: inline
        !important; float: none;"></span><span style="color: rgb(0, 0,
        0); font-family: sans-serif; font-size: medium; font-style:
        normal; font-variant-ligatures: normal; font-variant-caps:
        normal; font-weight: 400; letter-spacing: normal; orphans: 2;
        text-align: start; text-indent: 0px; text-transform: none;
        white-space: normal; widows: 2; word-spacing: 0px;
        -webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
        255); text-decoration-thickness: initial; text-decoration-style:
        initial; text-decoration-color: initial; display: inline
        !important; float: none;"></span><span style="color: rgb(0, 0,
        0); font-family: sans-serif; font-size: medium; font-style:
        normal; font-variant-ligatures: normal; font-variant-caps:
        normal; font-weight: 400; letter-spacing: normal; orphans: 2;
        text-align: start; text-indent: 0px; text-transform: none;
        white-space: normal; widows: 2; word-spacing: 0px;
        -webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
        255); text-decoration-thickness: initial; text-decoration-style:
        initial; text-decoration-color: initial; display: inline
        !important; float: none;"></span></p>
    <blockquote type="cite"
      cite="mid:e6fc2520-90f8-ec89-b3e5-b69cc2330bd@IT076926">
      <pre class="moz-quote-pre" wrap="">

</pre>
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">One could even write: 
<PARAM arraysize=“2” xtype=“interval” name=“BAND”…>
<VALUES>
 <MIN arraysize=“” …>
 <MAX arraysize=“55” …>
</VALUES>
</PARAM>
Votable 1.5 seems to allow such possibility !
</pre>
      </blockquote>
      <pre class="moz-quote-pre" wrap="">
No, since (a) where the interval xtype is defined there should be
rules about how to use MIN/MAX and (b) there is no arraysize
attribute defined on the MIN/MAX elements.

</pre>
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">In which case the validator will need to simply omit any check on those MIN MAX values, right?
That does not seem particularly healthy.
</pre>
      </blockquote>
      <pre class="moz-quote-pre" wrap="">
About what one can not speak, one must remain silent.

Mark

--
Mark Taylor  Astronomical Programmer  Physics, Bristol University, UK
<a class="moz-txt-link-abbreviated" href="mailto:m.b.taylor@bristol.ac.uk">m.b.taylor@bristol.ac.uk</a>          <a class="moz-txt-link-freetext" href="http://www.star.bristol.ac.uk/~mbt/">http://www.star.bristol.ac.uk/~mbt/</a></pre>
    </blockquote>
    <p><br>
    </p>
  </body>
</html>