Re: How we are being silently manipulated - a fresh example - Was: Re: QT4CG meeting 120 draft minutes, 6 May 2025

And Joel, it is explicitly said in the newly published text of the Spec
that:


 <changes>
               <change issue="1240">A dynamic function call can now be
applied to a sequence of functions, and in particular
               *to an empty sequence*. This makes it easier to chain a
sequence of calls.</change>
            </changes>

Not "tangential", but intentional.

[image: image.png]



On Tue, May 6, 2025 at 3:55 PM Dimitre Novatchev <dnovatchev@gmail.com>
wrote:

> >  PR 1975 nowhere removes any errors. It merely allows a singleton to be
> a sequence. The speaker did not need to address the question you raised,
> because it was irrelevant.
>
> No it was not irrelevant.
>
> The presenter even mentioned starting his presentation today, that this PR
> was quite controversial, as he was well-acquainted with the problem and the
> objections to it, expressed in comments.
> Also, in the proposed text it was explicitly stated that invoking a
> method/function off an empty sequence will not raise an error - and that
> this was raising an error in XPath 3.1.
>
> The presenter himself created this issue: "Dynamic function call applied
> to empty sequence #1972"  https://github.com/qt4cg/qtspecs/issues/1972
>
> There he explicitly proposed that a method/function could be invoked off
> an empty sequence, and that, while in XPath 3.1 this results in raising an
> error, "it would be more useful" not to raise such error in XPath 4. Here
> is a full quote:
>
> "The rules for dynamic function calls (xpath, ยง4.5.3.1) state that $F($X) raises
> a type error if $F is an empty sequence.
> I think it would be more useful if both map:get() and dynamic function
> calls were changed to have "empty if empty" semantics."
>
> And the presenter himself acknowledged that "the people should have known
> about this issue" if they read well the PR. This he thought was an excuse
> for not mentioning the problem at all. He said in his response above:
>
> "Our modus operandi is for detailed technical discussions to take place in
> writing before we take a decision in a meeting. *There is no need for all
> the technical arguments to be repeated verbally* in the meeting ..."
>
> Your reaction simply proves that the participants were not aware at all of
> the problem...
>
> Thanks,
> Dimittre.
>
>
> On Tue, May 6, 2025 at 2:55 PM Joel Kalvesmaki <kalvesmaki@gmail.com>
> wrote:
>
>> Dimitre, your point is tangential to the PR that was accepted today. PR
>> 1975 nowhere removes any errors. It merely allows a singleton to be a
>> sequence. The speaker did not need to address the question you raised,
>> because it was irrelevant.
>>
>> Repeating your claims, with bluster and without argument, does not serve
>> your cause.
>>
>> Best wishes,
>>
>> Joel
>>
>> On Tue, May 6, 2025 at 2:46 PM Dimitre Novatchev <dnovatchev@gmail.com>
>> wrote:
>>
>>> > Our modus operandi is for detailed technical discussions to take place
>>> in writing before we take a decision in a meeting.
>>> > There is no need for all the technical arguments to be repeated
>>> verbally in the meeting - it is assumed that attendees
>>> > have prepared for the meeting by reading the discussion thread.
>>>
>>> The fact remains that this most serious issue was not pointed out by the
>>> presenter - and not out of forgetfulness.
>>>
>>> Let us be well aware that we are being manipulated - even when this is
>>> being justified with "good intentions and logistics".
>>>
>>> I still hope that we are going to address the issue and find a
>>> satisfactory solution - contrary to the attempt to hide it.
>>>
>>> Dimitre Novatchev,
>>>
>>> On Tue, May 6, 2025 at 10:54 AM Michael Kay <mike@saxonica.com> wrote:
>>>
>>>> I think we are all well aware that the handling of empty sequences in
>>>> path expressions is a mixed blessing: it means that $BOOK / AUTHOR / NAME
>>>> returns the names of all the authors of the book whether the book has 0, 1,
>>>> or many authors; but at the same time it means that if the element name
>>>> AUTHOR is misspelled, no error is reported.
>>>>
>>>> In 3.1 we reproduced this behaviour with lookup of fields in records
>>>> ($BOOK ? AUTHOR ? NAME), and this PR extended this to lookup with methods
>>>> ($BOOK ? AUTHOR() ? NAME()). The construct $BOOK ! AUTHOR ! NAME also
>>>> follows the same pattern - emptiness is propagated down the path, rather
>>>> than being treated as erroneous. Consistency is important for usability,
>>>> and this handling of hierarchic selection paths is absolutely intrinsic to
>>>> the style and character of XPath as a language.
>>>>
>>>> Since it is not an error for a book to have no authors, there is no
>>>> "swallowing" of any error - the expression is not erroneous so there is no
>>>> error to swallow, and this applies to all these cases.
>>>>
>>>> The corrollory that XPath doesn't detect misspelled selectors in a path
>>>> is indeed a serious problem that costs developers hours of effort. This was
>>>> recognized soon after XPath 1.0 and the introduction of schema awareness
>>>> was an attempt to solve it, with mixed success. I think the functions such
>>>> as exactly-one() were also introduced with this in mind; the idea was that
>>>> if you expected a book to have exactly one author, you could write
>>>> $BOOK/exactly-one(AUTHOR)/exactly-one(NAME). But hardly anyone does so;
>>>> people will always write the code that is easiest to write, rather than the
>>>> code that is most robust.
>>>>
>>>> But the rule about a dynamic function call requiring a singleton wasn't
>>>> really a solution to that problem, it only detected it in a very small
>>>> minority of cases, and it did so more by accident than by design.  We
>>>> should look for better solutions to that problem, which is what issue 1979
>>>> strives to do.
>>>>
>>>> Our modus operandi is for detailed technical discussions to take place
>>>> in writing before we take a decision in a meeting. There is no need for all
>>>> the technical arguments to be repeated verbally in the meeting - it is
>>>> assumed that attendees have prepared for the meeting by reading the
>>>> discussion thread.
>>>>
>>>> Michael Kay
>>>>
>>>>
>>>>
>>>
>>> --
>>> Cheers,
>>> Dimitre Novatchev
>>> ---------------------------------------
>>> Truly great madness cannot be achieved without significant intelligence.
>>> ---------------------------------------
>>> To invent, you need a good imagination and a pile of junk
>>> -------------------------------------
>>> Never fight an inanimate object
>>> -------------------------------------
>>> To avoid situations in which you might make mistakes may be the
>>> biggest mistake of all
>>> ------------------------------------
>>> Quality means doing it right when no one is looking.
>>> -------------------------------------
>>> You've achieved success in your field when you don't know whether what
>>> you're doing is work or play
>>> -------------------------------------
>>> To achieve the impossible dream, try going to sleep.
>>> -------------------------------------
>>> Facts do not cease to exist because they are ignored.
>>> -------------------------------------
>>> Typing monkeys will write all Shakespeare's works in 200yrs.Will they
>>> write all patents, too? :)
>>> -------------------------------------
>>> Sanity is madness put to good use.
>>> -------------------------------------
>>> I finally figured out the only reason to be alive is to enjoy it.
>>>
>>>
>>
>>
>> --
>> Joel Kalvesmaki
>> kalvesmaki.com
>>
>
>
> --
> Cheers,
> Dimitre Novatchev
> ---------------------------------------
> Truly great madness cannot be achieved without significant intelligence.
> ---------------------------------------
> To invent, you need a good imagination and a pile of junk
> -------------------------------------
> Never fight an inanimate object
> -------------------------------------
> To avoid situations in which you might make mistakes may be the
> biggest mistake of all
> ------------------------------------
> Quality means doing it right when no one is looking.
> -------------------------------------
> You've achieved success in your field when you don't know whether what
> you're doing is work or play
> -------------------------------------
> To achieve the impossible dream, try going to sleep.
> -------------------------------------
> Facts do not cease to exist because they are ignored.
> -------------------------------------
> Typing monkeys will write all Shakespeare's works in 200yrs.Will they
> write all patents, too? :)
> -------------------------------------
> Sanity is madness put to good use.
> -------------------------------------
> I finally figured out the only reason to be alive is to enjoy it.
>
>


-- 
Cheers,
Dimitre Novatchev
---------------------------------------
Truly great madness cannot be achieved without significant intelligence.
---------------------------------------
To invent, you need a good imagination and a pile of junk
-------------------------------------
Never fight an inanimate object
-------------------------------------
To avoid situations in which you might make mistakes may be the
biggest mistake of all
------------------------------------
Quality means doing it right when no one is looking.
-------------------------------------
You've achieved success in your field when you don't know whether what
you're doing is work or play
-------------------------------------
To achieve the impossible dream, try going to sleep.
-------------------------------------
Facts do not cease to exist because they are ignored.
-------------------------------------
Typing monkeys will write all Shakespeare's works in 200yrs.Will they write
all patents, too? :)
-------------------------------------
Sanity is madness put to good use.
-------------------------------------
I finally figured out the only reason to be alive is to enjoy it.

Received on Tuesday, 6 May 2025 22:59:39 UTC