Minutes: MathML semantics meeting 9 July, 2020

The meeting was recorded:
https://benetech.zoom.us/rec/share/6upWFLjZ-UROWM_vzm_ZWu0QIYv5eaa8g3Ac_aAOyRmZ5o3zgPGm5sRzWsMQqxCMPassword:
3w$2jxT&

Attendees:

Neil Soiffer

David Farmer

Deyan Ginev

Sam Dooley

Steve Noble

Louis Maher

Regrets: David Carlisle, connection issues: Murray Sargent, Patrick Ion,
Bruce Miller

We started with SD showing his equation editor and the markup he generated
with a partial derivative. SD’s priority is to be able reconstruct content
MathML from presentation MathML.

The Content is:

<math xmlns="http://www.w3.org/1998/Math/MathML">

  <apply>

    <partialdiff/>

    <bvar>

      <degree>

        <cn>1</cn>

      </degree>

      <ci>x</ci>

    </bvar>

    <bvar>

      <degree>

        <cn>2</cn>

      </degree>

      <ci>y</ci>

    </bvar>

    <degree>

      <cn>3</cn>

    </degree>

    <apply>

      <ci>f</ci>

      <ci>x</ci>

      <ci>y</ci>

    </apply>

  </apply>

</math>

The corresponding Presentation with semantics is:

<math xmlns="http://www.w3.org/1998/Math/MathML">

  <mrow semantic="partialdiff">

    <mfrac>

      <msup>

        <mo arg="0">&#x2202;</mo>

        <mn arg="3">3</mn>

      </msup>

      <mrow semantic="pvars" arg="2">

        <mrow semantic="pvar" arg="1">

          <mo>&#x2202;</mo>

          <msup>

            <mi arg="1">x</mi>

            <mn arg="2">1</mn>

          </msup>

        </mrow>

        <mspace width="thinmathspace"/>

        <mrow semantic="pvar" arg="2">

          <mo>&#x2202;</mo>

          <msup>

            <mi arg="1">y</mi>

            <mn arg="2">2</mn>

          </msup>

        </mrow>

      </mrow>

    </mfrac>

    <mrow semantic="f" arg="1">

      <mi arg="0">f</mi>

      <mo>&#x2061;</mo>

      <mfenced>

        <mrow>

          <mi arg="1">x</mi>

          <mo>,</mo>

          <mi arg="2">y</mi>

        </mrow>

      </mfenced>

    </mrow>

  </mrow>

</math>

SD also showed if the partial without a superscript and DF asked about
representing f_{xyy}.

Next up DG presented his example which starts with TeX and shows markup
along with a little bit of speech. This is something people can play with
at https://dginev.github.io/tiny-mathml-a11y-demo/

A simple example of 1+2+3=6:

<mrow data-semantic="#op(#1,#2)">

    <mrow data-arg="1" data-semantic="#op(#1,#2,#3)">

      <mn data-arg="1" data-semantic="1">1</mn>

      <mo data-arg="op" data-semantic="plus">+</mo>

      <mn data-arg="2" data-semantic="2">2</mn>

      <mo>+</mo>

      <mn data-arg="3" data-semantic="3">3</mn>

    </mrow>

    <mo data-arg="op" data-semantic="equals">=</mo>

    <mn data-arg="2" data-semantic="6">6</mn>

  </mrow>


A different example is x<y<z which creates a multirelation:

 <mrow data-semantic="multirelation(#1,#2,#3,#4,#5)">

    <mi data-arg="1">x</mi>

    <mo data-arg="2" data-semantic="less-than">&lt;</mo>

    <mi data-arg="3">y</mi>

    <mo data-arg="4" data-semantic="less-than">&lt;</mo>

    <mi data-arg="5">z</mi>

  </mrow>


That’s not the same for +/-: a+b-c+d

<mrow data-semantic="#op(#1,#2)">

    <mrow data-arg="1" data-semantic="#op(#1,#2)">

      <mrow data-arg="1" data-semantic="#op(#1,#2)">

        <mi data-arg="1">a</mi>

        <mo data-arg="op" data-semantic="plus">+</mo>

        <mi data-arg="2">b</mi>

      </mrow>

      <mo data-arg="op" data-semantic="minus">-</mo>

      <mi data-arg="2">c</mi>

    </mrow>

    <mo data-arg="op" data-semantic="plus">+</mo>

    <mi data-arg="2">d</mi>

  </mrow>

If people want to play, you can fork the project and use it or add to it.
So far only baseline LaTeX conversions, i.e. with very limited inferred
semantics, in coming weeks will add some basic semantic macros to get e.g.
integrals and differentials with the proposed markup.


Next up DF. An example from a calculus textbook. The yellow is special
pretext markup, and the other formulas are just regular TeX rendered by
MathJax. The markup is not too different from other proposals and DF is
flexible to change to something different. The goal is to semantically
markup the entire textbook.

NS showed MathPlayer rules for some markup including the derivatives. He
emphasized that a complication with the rules was matching all the ways
someone might write the same expression. He also showed some heuristics
that would go away if semantics were known.


Meet again next week. Neil to say what is needed for speech that is missing
from current proposals (e.g, marking the ‘dr’ as a differentialD as opposed
to times, especially if just ASCII ‘d’ is used.

<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon>
Virus-free.
www.avast.com
<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link>
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Received on Friday, 10 July 2020 03:30:04 UTC