Re: decoupling XSLT streaming recommendations from the main spec

I support the idea of modularizing the XSLT Specifications -- **for future
versions**. The Streaming specification must list explicitly the available
implementations (seems there is just one?), so that people who do not plan
to use these implementations can decide to skip reading the Streaming
specification.

> Then we get to 6.6.1 where xsl:mode has a “streamable” attribute.
>
>   What do we do here (and in all the similar places)?

One seemingly sensible way to deal with this is to omit the “streamable”
attribute from the Main specification. In the Streaming specification to
introduce the “streamable” attribute as one that is available/added only in
XSLT implementations that support streaming. Then describe only what this
attribute means and assume that the reader has knowledge about xsl:mode
(refer them to) the Main specification.

Liam Quin in an earlier message:

>     What about XSLT instructions that were introduced for streaming but
>     that are generally useful? Learning XSLT 3 without xsl:iterate, on-
>     empty, where-populated, accumulators, copy() and snapshot, would be a
>     poor education indeed.

These are best left in the Main specification, and referred to from the
Streaming specification.

In the description of these features in the Main specification say
something like this:

"This feature was introduced for Streaming, but is described here, as it
has its own, separate value even without streaming"

This definitely can be done. A positive side effect for most users who
haven't even tried to read and understand these features just because they
were "part of Streaming", will be that now they will read and understand
these and use them, without any fear that "this is the streaming, totally
mind-blowing stuff..."

Thanks,
Dimitre

On Thu, Sep 22, 2022 at 2:58 AM Norm Tovey-Walsh <norm@saxonica.com> wrote:

> Mukul Gandhi <gandhi.mukul@gmail.com> writes:
> > From my point of view, I think that, having a large body of
> > streaming/performance related recommendations within main body of the
> > spec, makes the primary functional intent of the spec, difficult to
> > comprehend.
>
> If we wanted to split streamability into a separate spec, as a practical
> matter, I wonder what would change?
>
> I opened up the 3.0 spec and searched for “streaming”.
>
> * One might possibly move 2.11, 2.12, and 2.13 to a new spec
> * Section 4.6 could probably be moved
>
> Then we get to 6.6.1 where xsl:mode has a “streamable” attribute.
>
> What do we do here (and in all the similar places)?
>
> 1. We could remove the “streamable” attribute from the tableaux and all
>    mentions of it from the description of xsl:mode.
>
>    On the one hand, that would make the spec “simpler” for readers who
>    want to ignore streaming. But what happens when a user comes across a
>    stylesheet that has a “streaming” attribute on xsl:mode? That’s
>    confusing.
>
>    Also, what does the streamability spec do? Does it reproduce the
>    entire tableaux, or does it just include the new attribute(s)? If
>    it’s the entire tableaux, does it include the descriptions of all the
>    attributes, or just the new ones? If it’s just the new ones, readers
>    have to look at both specs to understand what attributes are actually
>    available.
>
> 2. If we leave the “streamable” attribute in the tableaux, then we
>    surely have to leave the descriptions in place.
>
>    So now the spec isn’t “simpler” for the reader who wants to ignore
>    streaming, but at least everything is in one place.
>
> Neither of those options seems ideal to me.
>
> There are other paragraphs that mention streaming, and I suppose one
> might like to excise them all. But I fear that’s going to make streaming
> *a lot* harder to describe and understand.
>
> On balance, my feeling tends towards the view that it’s a language
> specification, not a user’s guide. I remain of the opinion that it would
> be very difficult to justify expending the editorial effort required to
> split the spec. And on reviewing what it would mean, I’m not at all
> persuaded that the result would really be of benefit.
>
> If what the world needs is a “XSLT 4.0 User’s Guide for Users Who Don’t
> Care about Streaming”, maybe we should pesuade Mike to write one (/me
> ducks).
>
>                                         Be seeing you,
>                                           norm
>
> --
> Norm Tovey-Walsh
> Saxonica
>


-- 
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 Thursday, 22 September 2022 14:34:08 UTC