我目前正致力于数学表达识别。我正在浏览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>
呈现给(http://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表达式有什么区别?他们都应该渲染到同一个吗?
答案 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树做出一些假设,并根据它做出不同的行为。
它们都应该渲染到同一个吗?
是