Skip to content

implicit multiplication

Volker Sorge edited this page Apr 20, 2015 · 1 revision

Issue. Back to list of issues.

Implicit operator

Embedding via an empty mrow or via an explicit mo? Here's an example:

Original MathML:

<math>
  <mi>a</mi>
  <mo>+</mo>
  <mi>b</mi>
  <mi>c</mi>
  <mo>+</mo>
  <mi>d</mi>
</math>

Semantic Tree:

<stree>
  <infixop role="addition" id="8">
    +
    <content>
      <operator role="addition" id="1">+</operator>
      <operator role="addition" id="4">+</operator>
    </content>
    <children>
      <identifier role="latinletter" font="italic" id="0">a</identifier>
      <infixop role="implicit" id="7"><content>
          <operator role="multiplication" id="6"></operator>
        </content>
        <children>
          <identifier role="latinletter" font="italic" id="2">b</identifier>
          <identifier role="latinletter" font="italic" id="3">c</identifier>
        </children>
      </infixop>
      <identifier role="latinletter" font="italic" id="5">d</identifier>
    </children>
  </infixop>
</stree>

Version 1 of semantically enriched MathML, with an empty mrow, that contains the operator as an attribute (observe that the content of the attribute is actually 'infixop comma invisible times').

<math type="infixop" role="addition" id="8" children="0,7,5" content="1,4">
  <mi type="identifier" role="latinletter" id="0" parent="8">a</mi>
  <mo type="operator" role="addition" id="1" operator="infixop,+" parent="8">+</mo>
  <mrow type="infixop" role="implicit" id="7" children="2,3" content="6" parent="8">
    <mi type="identifier" role="latinletter" id="2" parent="7">b</mi>
    <mrow type="operator" role="multiplication" id="6" children="" operator="infixop,⁢" parent="7"/>
    <mi type="identifier" role="latinletter" id="3" parent="7">c</mi>
  </mrow>
  <mo type="operator" role="addition" id="4" operator="infixop,+" parent="8">+</mo>
  <mi type="identifier" role="latinletter" id="5" parent="8">d</mi>
</math>

Alternative with an explicit mo element containing the invisible times. This would mean there might be some effect on rendering, anything that works or walks on the original MathML tree etc.

<math type="infixop" role="addition" id="8" children="0,7,5" content="1,4">
  <mi type="identifier" role="latinletter" id="0" parent="8">a</mi>
  <mo type="operator" role="addition" id="1" operator="infixop,+" parent="8">+</mo>
  <mrow type="infixop" role="implicit" id="7" children="2,3" content="6" parent="8">
    <mi type="identifier" role="latinletter" id="2" parent="7">b</mi>
    <mo type="operator" role="multiplication" id="6" children="" operator="infixop,⁢" parent="7"/>⁢</mo>
    <mi type="identifier" role="latinletter" id="3" parent="7">c</mi>
  </mrow>
  <mo type="operator" role="addition" id="4" operator="infixop,+" parent="8">+</mo>
  <mi type="identifier" role="latinletter" id="5" parent="8">d</mi>
</math>
Clone this wiki locally