Один рендеринг имеет несколько выражений MathML?

В настоящее время я работаю над математическим распознаванием выражений. Я иду через набор данных CROHME и нашел это:

<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? Должны ли они все делать то же самое?

1 ответ

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 и иметь различные варианты поведения на его основе.

Должны ли они все делать то же самое?

Да.

Другие вопросы по тегам