- From: Paul Libbrecht <paul@hoplahup.net>
- Date: Thu, 03 Jun 2021 17:14:36 +0200
- To: "Neil Soiffer" <soiffer@alum.mit.edu>
- Cc: "Deyan Ginev" <deyan.ginev@gmail.com>, public-mathml4@w3.org
- Message-ID: <0FA8DE80-DB62-483D-B677-14FCB1732A4B@hoplahup.net>
Hello Neil, Deyan and all,
On 27 May 2021, at 8:58, Neil Soiffer wrote:
> I agree with much of what Deyan mentions. I do see a copy/paste bug:
>
> .set {
> mathintent-mo-mid: "$1 given $2";
> }
>
> You mean "such that" in this case, right?
- that was an error: thanks, this is fixed
>
> What I don't see is what the connection between the $n and the MathML
> referenced. Using the conditional probability example because it is
> shorter:
>
> <mrow class="conditional-prob">
> <mo>P</mo>
> <mo>(</mo>
> <mi>A</mi>
> <mo>|</mo>
> <mi>B</mi>
> <mo>)</mo>
> </mrow>
>
> The CSS match is on the mrow. I would normally think that $1 refers to
> the
> first child, but that's not right here (FYI: the 'P' should be an <mi>
> and
> there should be an <mo> with ⁡ [function apply] in it that
> follows
> the 'P'). I think maybe you mean it refers to the first <mi>, but the
> argument could easily be a number or a complicated expression, so that
> can't be it. In the intent proposal, the arguments get marked with
> "arg"
> attrs. Perhaps the RHS of the css rule needs to include CSS selectors?
That’s the question of the selector language (i.e. how to interpret
$1, $2, …): this is a problem we currently have with all intents, even
those explicit in attributes I think.
Yes, it is difficult to solve
> Whereas using attrs can be repetitive, it does keep the intent in one
> place. If one were using a WYSIWYG editor that allowed the user to
> specify
> what they mean, how would copy/paste out of that editor convey both
> the
> MathML (with a class attr) and the CSS? It seems to me that a CSS-like
> approach only works if the entire document, including the math, is
> generated from the source. Definitely a possibility, but also IMHO a
> limitation.
As said here and there, this is not a problem in the current browser
landscape: it is trivial for a DOM sub-tree loaded by a browser to
enrich attributes so that the style element of the `mrow` named by the
class carries the extra property (that is just “style resolution based
on class-names”). I’ve tried to explain it a bit deeper in the
second paragraph of [challenges and
hopes](https://mathmlmuses.netlify.app/intents-as-css-styles/#challenges-&-hopes)
(starting from “However, CSS inheritance”).
What’s difficult is to apply “$1 given $2” to the A, pipe, and B
elements by either using what’s in the style element or what’s in
the table of default intents. I haven’t resolved this and, as Deyan
noted, this is not solved by the spec or the table of all default
intents. Maybe we can leave it to some implementations…
> My gut feel is that using class/CSS is wrong in principle. CSS is
> meant to
> style something, not add semantics. Using it to change the way you
> speak it
> such as "J sub 1" vs "J 1" seems appropriate, but using CSS to change
> the
> meaning of the 'J' to be a Bessel function seems wrong. Although HTML
> is
> not perfect about it, the point is that the meaning is conveyed by the
> markup; class doesn't count in that sense (ARIA could have used it,
> but
> instead felt a separate @role was appropriate).
As for the feeling that CSS is not for intents. I fully disagree: CSS is
as much semantics carrying when it says that a given paragraph should be
displayed big as it is semantics to indicate that a given paragraph
should be displayed or not using a print-media or using an accessibility
tool.
I’m afraid, the word semantics should be banned here…
> I suspect others share your enthusiasm for CSS, so this is a very good
> topic for a call. Perhaps some more email discussion will help further
> refine your ideas before discussing them on a call...
On 28 May 2021, at 18:11, Brian Kardell wrote:
> Perhaps it would be a good idea to file an issue in the repo on
> https://github.com/w3c/mathml/issues so that we don't lose visibility
> into
> history here?
The list archive has it already.
I would expect that the issues are more with decided directions…
Paul
> On Mon, May 24, 2021 at 11:06 AM Deyan Ginev <deyan.ginev@gmail.com>
> wrote:
>
>> Hi Paul, all,
>>
>> Now that Paul has updated his examples, I took the time to see what
>> his level 3 list complaint was, and added the notation. Emailing to
>> all as an encouragement to add future examples to the list directly.
>>
>> So. The list already had "free-product" added, and my encyclopedia
>> index didn't contain the amalgamated variant of it, likely since
>> wikipedia doesn't have a standalone page for that. I did a quick
>> search + cursory reading and found that there are three rough
>> synonyms
>> for the same notation - "amalgamated-product",
>> "amalgamated-free-product" and "free-product-with-amalgamation".
>>
>> So I added in an entry with a name and two aliases, the source links
>> from my search, and the nice subscripted infix * operator. I also
>> added the speech hint I found in a phd thesis (though maybe there are
>> better ones?) of: "amalgamated product of $1 and $3 with $2
>> amalgamated".
>>
>> And now, 5 minutes later, it's in the list and one can imagine it
>> spoken by an AT tool. Relatively painless I would hope.
>>
>> I'll keep this email short, so no CSS comments for now, just this
>> level 3
>> note.
>>
>> Greetings,
>> Deyan
>>
>> On Tue, May 11, 2021 at 3:47 PM Deyan Ginev <deyan.ginev@gmail.com>
>> wrote:
>>>
>>> Hi Paul, all,
>>>
>>> Thanks for the quick CSS writeup! It's still a little difficult to
>>> follow, and can benefit from a fully worked out minimal example
>>> (with
>>> an explicit MathML tree and CSS rules as per your preferences).
>>>
>>> That aside, there are multiple open questions, most pressingly:
>>>
>>> 1. How can we set up the Math and CSS working groups on a solid
>>> common
>>> footing where **any** constructive collaboration can take place?
>>> 2. Followed by the secondary complication that MathML has been
>>> possible to use in the past without a strict dependence on CSS, so
>>> introducing one for the AT component will also have wider ecosystem
>>> considerations.
>>>
>>> ---
>>>
>>> If (and that's a big if) those can be productively addressed, the
>>> technical considerations about a "selector language for math
>>> notations" are also non-trivial / interesting. Traditionally this
>>> has
>>> required a full-blown grammar (e.g. CFG) to do well, since we have a
>>> lot of contextual interplay - balancing fences, repeated delimiters,
>>> n-ary infix operators, and even recognizing full-blown subtrees with
>>> holes (e.g. Leibniz's notation, falling factorial, Prüfer group,
>>> ...).
>>> Present day CSS is very ill-equipped to do these kinds of
>>> selections.
>>> I'll also pose this technical challenge to our prior topic of
>>> discussing "subject area" rule sets. For these conceptual "subject
>>> definition sets" one also needs such a selection mechanism for
>>> targeting notational primitives.
>>>
>>> Annotating every single MathML node with an intent attribute clearly
>>> feels redundant and verbose, but I think it is a very solid baseline
>>> for what is allowable by the spec. Similarly to how you don't have
>>> to
>>> add a CSS "style" attribute to every HTML node, but if you really
>>> wanted to - you could. What you lose in verbosity you gain in AT
>>> runtime simplicity - you don't need any advanced lookup/logic when
>>> the
>>> intent is already spelled out. How you get the annotations on the
>>> tree
>>> is then a burden shifted to the authoring tools / remediating
>>> author.
>>> And some tools are very well-equipped for this kind of thing, have
>>> pre-existing macro/palette interfaces, grammar capabilities, etc.
>>>
>>> I don't think the fully verbose variant is the best we can do, but
>>> it
>>> definitely seems like the right "flat" target. For a browser
>>> analogy,
>>> the inspector tools for CSS have a "Rules" (or "Styles") and
>>> "Computed" tabs, where the "Computed" one contains all fully
>>> flattened/instantiated rules, derived from all CSS rules applicable
>>> to
>>> the node inspected. The big question is whether we can achieve this
>>> model with the level of technical work we're prepared to invest
>>> here.
>>>
>>> Thanks for investigating the CSS angle,
>>> Deyan
>>>
>>> P.S. GMail had flagged the original email as "spam" for me, for some
>>> unknowable reason, so there is a chance the original post had a
>>> limited audience.
>>>
>>> On Wed, May 5, 2021 at 6:01 AM Paul Libbrecht <paul@hoplahup.net>
>>> wrote:
>>>>
>>>> Hello community,
>>>>
>>>> We discussed in the last group call that CSS could possibly play a
>> role to support the intent attribute. I’ve sketched a few thoughts
>> inside
>> this page in the form of a “what if…”:
>>>> https://mathmlmuses.netlify.app/intents-as-css-styles/
>>>>
>>>> … and got surprised in writing that this seems desirable…
>>>>
>>>> Thanks for thoughts.
>>>>
>>>> Paul
>>>>
>>>> On 2 May 2021, at 3:31, Neil Soiffer wrote in Minutes of the call
>>>> 29
>> April 2021:
>>>>
>>>> NS: A.T. does not see CSS information. It just sees the MathML.
>>>> You
>> may not be able to globally change speech behavior with CSS
>> technology.
>>>>
>>>> NS: Should we say that the A.T. must look at CSS as well as MathML?
>> (this is often not the case or not doable thus far)
>>
>>
Received on Thursday, 3 June 2021 15:16:44 UTC