Minutes: MathML Full meeting 23 March, 2023


   - Neil Soiffer
   - David Carlisle
   - Bert Bos
   - David Farmer
   - Steve Noble
   - Paul Libbrecht
   - Bruce Miller
   - Cary Supalo
   - Murray Sargent


   - Louis Maher
   - Deyan Ginev
   - Patrick Ion

Thanks to Bert for taking minutes!
Announcements/Updates/Progress reports

Note: spec was updated for some parts of intent #450
<https://github.com/w3c/mathml/issues/450>, #452

450: "@" was changed to just use ":".

452: is more speculative and not merged into the spec. It is just a PR and
probably not getting merged.
Vote on intent direction (template vs function approach)

PL: Unicode WG is working on templating for messages. Does anyone know
anything about it?

MS: It might be in the CLDR (Common Locale Data Repository) subgroup

PL: Not sure how this might impact "intent"

DC: Not really math focused, which is what "intent" is aimed at.

BB: Should talk to Addison Phillips (chair of I18n WG)

PL: He is the one that mentioned it to me.

DC: We should have some more actionable with the vote: close #446 which
emphasizes templates.

DF: differentiates between arbitrary speech strings and adding info such as
"Bessel functions of the first kind" that AT can speak.

DF: AT can be helped by knowing the type ("function") without speaking it,
e.g., when omitting the full name on second use of the same function.

DC: Long and short name, "Bessel function of the 1st kind" vs "J". But then
that "J" should be in the intent. AT should not have to use the content
when there is an intent. Intent could show alternative names. But I
wouldn't want to write both alternatives in every intent, that would make
the doc much longer.

NS: If it shows the type (":named-function=..."), AT could be smart, even
if it doesn't know the name of the function as such, especially if it is
not a core function.

DC: Who would implement it? Can already use ARIA attributes.

NS: Let's ask the question: Who wants to make it easy to write text strings?

BM: The pseudo-templates with underscores as spaces *should* be hard to

MS: We only need intent to explain things that are not obvious from the

DC: Usually no need to force AT to read things how you would read it
yourself in your head.

The d example: why is d^2 spoken as dee-two and dt^2 as dee-tee-squared?

DF: H^2x = H_2x is spoken as "H2 of x is H2 of x", even though one is
superscript and the other subscript. Either say intent=superscript or

DF: Rule could be, if something is set to be a name, say the name five
times and after that use the short name.

BM: Adding the extra text is worth it. Uses not too much space.

DC: Could also leave it to the author to write it five times and then write
something else.

NS: But people don't always read from the start of the book to the end
(anymore). They jump to the middle.

BM: That's why it is useful to put the title on every occurrence.

MS: In a regular paper, it makes sense to define things up front and not
repeat every time.

Discussion about some keyword like index or superscript to avoid it saying
"squared". "silent" might do it, too.

DC: Let's concentrate on the green column in my intent draft spec. What
symbols are allowed in the syntax? We cannot stop people using arbitrary
text. They can use :function(arbitrary text).

DC: We should settle on something. We need a CR soon. Not add more and more
alternatives. We can keep it open whether to add something for named
function to the grammar.

BM: Many interesting ideas today. But let's talk about future scope. What
gets the most done without blocking off extensions. There could be rules
such as a superscript with a J is a Bessel function. The rule about
speaking the same thing five times is interesting, but it is an awful lot
to specify. What exactly is the same thing?

NS: Who is in favor of (1) making templated strings easy/primary/main way
of speaking. (2) Who is in favor of function approach the primary way?

Conclusion: We don't want the template approach be the easy/primary way.

NS: Close #446?

Conclusion: close #446
Intent issues this week:
What's in a name (also "reference", etc)? #448

NS: My comment is that speech engines have no clue what to do. BM suggested
to make them like IDs. DC mentioned the Unicode expression for identifiers.

BM: Literals should be IDs. References...

DC: This issue merges both,

NS: AT might translate some symbols. But intent should say what you want.

DC: "†" says "dagger". Could be Chinese and speech engine will speak
Chinese. Why is there no math speech engine?

NS: I think I saw an example by DC with the content and the intent the

NS: Is intent="†" the same as <mo>†</mo>?

NS: You're saying let's take the MathML and turn it into a text to speak.
But I turn it into some XML that has more tags, like <binomial>. But <†> is
not XML.

DC: There is no default intent, it's implementation-dependent. What is the
default intent of an <mo>?

Example of x^T, spoken as "transpose of x" or "x transpose". Example of
d/dt applied to f(t).

NS: Higher order functions, can the intent reference an element or does it
need to be lifted up to the top level?

BM: Higher order functions, function applied to something yields a function
that is then applied to something else. How crucial is the distinction in
the speech?

NS: I think a function name "apply".

DC: Can you make a PR with an example?

*Action* NS to make an issue.

DF: *Action* F-with-hat(x) is another example where I found it difficult to
make an intent.

NS: In higher level math it is normal to have structures that have
arguments. But difficult concept to translate.

NS: Do I say "applied to", "of", something else?

BM: Generating reasonable speech assumes reasonable speech exists :-)

NS: Do we agree that parent properties should be used first?

DF: Depending on the intent, you may not even inspect the children.

NS: A reference allows a property: intent="$arg1 :int" but arg1 says
intent=":real". Which is it?

DC: We don't know what expanding a reference means. It is not a macro

DC: Example of x^T: do you generate speech for the reference and then use
that in the intent that reference it?

NS: What I ended up doing is writing the MathML suggested by the intent.

DC: You would not lift the intent? Say I had included :postfix in the

NS: intent=prefix/postfix in a leaf element is of no use. You can write it,
but it is not used.

DC: One way of doing it is to substitute all references and get one big
expression and then turn that into speech.

BM: Some things affect pronunciation: "ordinal" turns three into third. But
"function" doesn't influence how the argument is spoken. There may be
additional properties that have to be reinserted at the end and modify the
speech. A "$op" may refer to a "3" and then "ordinal" changes it. A
"transpose" may turn into "transpose of".

DF: If "transpose" is in core, then it won't have arguments and you have to
put it on the <mi>. Something like intent=superscript is a reasonable way
to indicate the digit is not a power. It doesn't mean "superscript" is

DC: In the example with intent="... $op@function($arg)" where $op is
"transpose", transpose now has an argument.
Intent Properties: ordering & references #449
Proposed intent with functional notation #451
Close issues #426 <https://github.com/w3c/mathml/issues/426> and #436
<https://github.com/w3c/mathml/issues/436> ?

DC: #436 syntax of isa: Conclusion was to not have an isa, but only the

Conclusion: close #436

DC: #426 was overtaken by the idea to use properties.

Conclusion: close #426


Received on Monday, 27 March 2023 21:45:12 UTC