Semantic Markup: mrow's are needed

We have talked a little about needing proper mrow structure in order to
mark up prefix/posfix/infix operators. For example, the following can *not*
be semantically marked up:
<mrow>
  <mi>m</mi>
  <mo>!</mo>
  <mi>n</mi>
  <mo>!</mo>
</mrow>

It needs an extra layer of mrows around the postfix factorials in the mrow.
<mrow>
  <mrow>
    <mi>m</mi>
    <mo>!</mo>
  </mrow>
  <mrow>
    <mi>n</mi>
    <mo>!</mo>
  </mrow>
</mrow>

Here's a case we haven't talked about: implicit mrows.
<msqrt>
  <mi>n</mi>
  <mo>!</mo>
</msqrt>

There is no place to markup the factorial here either. Implicit mrows don't
work for semantic markup.

Given what MathML generators typically produce, I think this pretty much
forces the need for a canonicalization tool for anyone wanting to
hand-remediate MathML. For a tool that wants to infer the semantics, it
seems necessary also.

More directly actionable though is what we should say in a MathML 4
specification. Specifically,

   - Should we discourage or maybe even deprecate implicit mrows?
   - Should we have stronger language encouraging "proper" mrow structure?

Received on Friday, 26 June 2020 14:39:42 UTC