Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Embedding the semantic tree in MathML

Davide P. Cervone edited this page Apr 22, 2015 · 9 revisions

This proposal is in its very early stages and will change considerably

Simple starting example: a+b+c which might be realized as

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

which would yield a semantic tree looking like

+ 
|--- a
|--- b
|--- c

which could be embedded as follows

<math id=0>
 <mrow id=1 data-math-semantic-parent="3,5" data-math-semantic-children="2,4,6">
 <mi id=2 data-math-semantic-child>a</mi>
 <mo id=3 data-math-semantic-operator="sum(meaning),+(type)">+</mo>
 <mi id=4 data-math-semantic-child>b</mi>
 <mo id=5 data-math-semantic-operator="sum,+">+</mo>
 <mi id=6 data-math-semantic-child>c</mi>
 </mrow>
</math>

In other words,

  • add mrows when necessary for semantic-tree-nodes with children
  • identify parent and children
  • use "standard" MathML tree numbering (IDs) (Texthelp/DSI/MathJax conversation but simplified).

The hope is that this simple parent/child structure works well recursively, e.g.,

a + b*d + c

i.e.,

<math>
 <mi>a</mi>
 <mo>+</mo>
 <mi>b</mi>
 <mo>&#x22C5;</mo>
 <mi>d</mi>
 <mo>+</mo>
 <mi>c</mi>
</math>

would lead to a semantic tree of

+ 
|--- a
|--- *
| |--- b
| |--- c
|--- d

and we simply start from the leafs adding an mrow for * etc. to get

<math id=0>
<mrow id=1 data-math-semantic-parent="3,8" data-math-semantic-children="2,4,9">
 <mi id=2 data-math-semantic-child>a</mi>
 <mo id=3 data-math-semantic-operator="sum,+">+</mo>
 <mrow id=4 data-math-semantic-child data-math-semantic-parent="6" data-math-semantic-children="5,7">
 <mi id=5 data-math-semantic-child>b</mi>
 <mo id=6 data-math-semantic-operator="product,⋅">&#x22C5;</mo>
 <mi id=7 data-math-semantic-child>d</mi>
 </mrow>
 <mo id=8 data-math-semantic-operator="sum,+">+</mo>
 <mi id=9 data-math-semantic-child>c</mi>
</mrow>
</math>

Questions:

  • Is this too simplistic?
  • Is adding mrows too destructive?
  • Do we need/want to be more destructive than that?
Clone this wiki locally

AltStyle によって変換されたページ (->オリジナル) /