-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Semantic Embedding Examples
Volker Sorge edited this page Apr 14, 2015
·
19 revisions
Some simple examples of embedded semantic tree. Note that for readability the attributes have been abbreviated
Original MathML:
<math>
<mi>a</mi>
<mo>+</mo>
<mi>b</mi>
<mo>+</mo>
<mi>c</mi>
</math>
Semantic Tree:
<stree>
<infixop role="addition" id="5">
+
<content>
<operator role="addition" id="1">+</operator>
<operator role="addition" id="3">+</operator>
</content>
<children>
<identifier role="latinletter" font="italic" id="0">a</identifier>
<identifier role="latinletter" font="italic" id="2">b</identifier>
<identifier role="latinletter" font="italic" id="4">c</identifier>
</children>
</infixop>
</stree>
Semantically enriched MathML:
<math>
<mrow semantic-type="infixop" semantic-role="addition" id="5" semantic-content="1,3" semantic-children="0,2,4">
<mi semantic-type="identifier" semantic-role="latinletter" id="0" semantic-parent="0">a</mi>
<mo semantic-type="operator" semantic-role="addition" id="1" semantic-operator="infixop,+" semantic-parent="1">+</mo>
<mi semantic-type="identifier" semantic-role="latinletter" id="2" semantic-parent="2">b</mi>
<mo semantic-type="operator" semantic-role="addition" id="3" semantic-operator="infixop,+" semantic-parent="3">+</mo>
<mi semantic-type="identifier" semantic-role="latinletter" id="4" semantic-parent="4">c</mi>
</mrow>
</math>
Original MathML:
<math>
<mn>5</mn>
<mo>=</mo>
<mn>3</mn>
<mo>+</mo>
<mn>2</mn>
</math>
Semantically enriched MathML:
<math>
<mrow semantic-type="relseq" semantic-role="equality" id="6" semantic-content="1" semantic-children="0,5">
<mn semantic-type="number" semantic-role="integer" id="0" semantic-parent="0">5</mn>
<mo semantic-type="relation" semantic-role="equality" id="1" semantic-operator="relseq,=" semantic-parent="1">=</mo>
<mrow semantic-type="infixop" semantic-role="addition" id="5" semantic-content="3" semantic-children="2,4" semantic-parent="5">
<mn semantic-type="number" semantic-role="integer" id="2" semantic-parent="2">3</mn>
<mo semantic-type="operator" semantic-role="addition" id="3" semantic-operator="infixop,+" semantic-parent="3">+</mo>
<mn semantic-type="number" semantic-role="integer" id="4" semantic-parent="4">2</mn>
</mrow>
</mrow>
</math>
Observe that for the semantic interpretation the original MathML tags are pretty irrelevant. E.g., writing numbers as identifiers still yields the same semantic markup.
Original MathML:
<math>
<mi>5</mi>
<mo>=</mo>
<mi>3</mi>
<mo>+</mo>
<mi>2</mi>
</math>
Enriched MathML:
<math>
<mrow semantic-type="relseq" semantic-role="equality" id="6" semantic-content="1" semantic-children="0,5">
<mi semantic-type="number" semantic-role="integer" id="0" semantic-parent="0">5</mi>
<mo semantic-type="relation" semantic-role="equality" id="1" semantic-operator="relseq,=" semantic-parent="1">=</mo>
<mrow semantic-type="infixop" semantic-role="addition" id="5" semantic-content="3" semantic-children="2,4" semantic-parent="5">
<mi semantic-type="number" semantic-role="integer" id="2" semantic-parent="2">3</mi>
<mo semantic-type="operator" semantic-role="addition" id="3" semantic-operator="infixop,+" semantic-parent="3">+</mo>
<mi semantic-type="number" semantic-role="integer" id="4" semantic-parent="4">2</mi>
</mrow>
</mrow>
</math>
Original MathML:
<math>
<mi>a</mi>
<mo>+</mo>
<mi>b</mi>
<mo>-</mo>
<mi>c</mi>
<mo>+</mo>
<mi>d</mi>
</math>
Semantically enriched MathML:
<math>
<mrow semantic-type="infixop" semantic-role="addition" id="9" semantic-content="5" semantic-children="8,6">
<mrow semantic-type="infixop" semantic-role="subtraction" id="8" semantic-content="3" semantic-children="7,4" semantic-parent="8">
<mrow semantic-type="infixop" semantic-role="addition" id="7" semantic-content="1" semantic-children="0,2" semantic-parent="7">
<mi semantic-type="identifier" semantic-role="latinletter" id="0" semantic-parent="0">a</mi>
<mo semantic-type="operator" semantic-role="addition" id="1" semantic-operator="infixop,+" semantic-parent="1">+</mo>
<mi semantic-type="identifier" semantic-role="latinletter" id="2" semantic-parent="2">b</mi>
</mrow>
<mo semantic-type="operator" semantic-role="subtraction" id="3" semantic-operator="infixop,-" semantic-parent="3">-</mo>
<mi semantic-type="identifier" semantic-role="latinletter" id="4" semantic-parent="4">c</mi>
</mrow>
<mo semantic-type="operator" semantic-role="addition" id="5" semantic-operator="infixop,+" semantic-parent="5">+</mo>
<mi semantic-type="identifier" semantic-role="latinletter" id="6" semantic-parent="6">d</mi>
</mrow>
</math>
Original MathML:
<math>
<mi>a</mi>
<mo>+</mo>
<mi>b</mi>
<mo>∘</mo>
<mi>c</mi>
<mi>d</mi>
<mo>+</mo>
<mi>e</mi>
<mo>∘</mo>
<mi>f</mi>
</math>
Semantically enriched MathML:
<math>
<mrow semantic-type="infixop" semantic-role="addition" id="10" semantic-content="1,6" semantic-children="0,13,14">
<mi semantic-type="identifier" semantic-role="latinletter" id="0" semantic-parent="0">a</mi>
<mo semantic-type="operator" semantic-role="addition" id="1" semantic-operator="infixop,+" semantic-parent="1">+</mo>
<mrow semantic-type="infixop" semantic-role="multiplication" id="13" semantic-content="3" semantic-children="2,12" semantic-parent="13">
<mi semantic-type="identifier" semantic-role="latinletter" id="2" semantic-parent="2">b</mi>
<mo semantic-type="operator" semantic-role="multiplication" id="3" semantic-operator="infixop,∘" semantic-parent="3">∘</mo>
<mrow semantic-type="infixop" semantic-role="implicit" id="12" semantic-content="11" semantic-children="4,5" semantic-parent="12">
<mi semantic-type="identifier" semantic-role="latinletter" id="4" semantic-parent="4">c</mi>
<mrow semantic-type="operator" semantic-role="multiplication" id="11" semantic-children="" semantic-operator="infixop," semantic-parent="11"/>
<mi semantic-type="identifier" semantic-role="latinletter" id="5" semantic-parent="5">d</mi>
</mrow>
</mrow>
<mo semantic-type="operator" semantic-role="addition" id="6" semantic-operator="infixop,+" semantic-parent="6">+</mo>
<mrow semantic-type="infixop" semantic-role="multiplication" id="14" semantic-content="8" semantic-children="7,9" semantic-parent="14">
<mi semantic-type="identifier" semantic-role="latinletter" id="7" semantic-parent="7">e</mi>
<mo semantic-type="operator" semantic-role="multiplication" id="8" semantic-operator="infixop,∘" semantic-parent="8">∘</mo>
<mi semantic-type="identifier" semantic-role="latinletter" id="9" semantic-parent="9">f</mi>
</mrow>
</mrow>
</math>