一个渲染是否有多个MathML表达式?

时间:2015-04-09 14:33:51

标签: mathml

我目前正致力于数学表达识别。我正在浏览CROHME dataset并发现了这个:

<math xmlns='http://www.w3.org/1998/Math/MathML'>
    <mrow>
        <mi xml:id="y_1">y</mi>
        <mrow>
            <mo xml:id="=_1">=</mo>
            <mrow>
                <mi xml:id="A_1">A</mi>
                <mrow>
                    <mi xml:id="x_1">x</mi>
                    <mrow>
                        <mo xml:id="+_1">+</mo>
                        <msup>
                            <mi xml:id="A_2">A</mi>
                            <mn xml:id="2_1">2</mn>
                        </msup>
                    </mrow>
                </mrow>
            </mrow>
        </mrow>
    </mrow>
</math>

呈现给enter image description herehttp://www.mathmlcentral.com/Tools/FromMathML.jsp

mrow的应用对我来说似乎相当武断。这个表达式在语义上与

完全相同
<math xmlns='http://www.w3.org/1998/Math/MathML'>
    <mrow>
        <mi xml:id="y_1">y</mi>
        <mo xml:id="=_1">=</mo>
        <mi xml:id="A_1">A</mi>
        <mi xml:id="x_1">x</mi>
        <mo xml:id="+_1">+</mo>
        <msup>
            <mi xml:id="A_2">A</mi>
            <mn xml:id="2_1">2</mn>
        </msup>
    </mrow>
</math>

<math xmlns='http://www.w3.org/1998/Math/MathML'>
    <mrow>
        <mi xml:id="y_1">y</mi>
        <mo xml:id="=_1">=</mo>
        <mrow>
            <mi xml:id="A_1">A</mi>
            <mi xml:id="x_1">x</mi>
        </mrow>
        <mo xml:id="+_1">+</mo>
        <msup>
            <mi xml:id="A_2">A</mi>
            <mn xml:id="2_1">2</mn>
        </msup>
    </mrow>
</math>

这三个MathML表达式有什么区别?他们都应该渲染到同一个吗?

1 个答案:

答案 0 :(得分:0)

mrow允许在元素/标记内部使用长表达式,这些表达式可以包含有限数量的子元素。例如,“x + y”的平方根必须写为

<math>
<msqrt>
<mrow>
<mi>x</mi>
<mo>+</mo>
<mi>y</mi>
</mrow>
</msqrt>
</math>

渲染软件必须呈现

<math>
<mi>x</mi>
</math>

<math>
<mrow>
<mi>x</mi>
</mrow>
</math>

以同样的方式。

回到你的问题,

  

此表达式在语义上是否相同

我们正在谈论演示MathML,所以不要谈论语义。

  

这三个MathML表达式之间有什么区别?

区别在于表达式的MathML树。如果您要通过某些软件处理表达式,它可以根据MathML树做出一些假设,并根据它做出不同的行为。

  

它们都应该渲染到同一个吗?