MathML is a markup language for displaying mathematics and mathematical content with a web browser.

The problem that MathML tries to solve, is that the definition of HTML does not include very sophisticated mathematics markup and image rendering commands for browsers. There are some small ones, for example <sub> for subscripts and <sup> for superscripts, as well as a few Greek letters and some math symbols. But in the main, not all browsers properly display these symbols, and even so, they are insufficient for anything but very rudimentary math.

x2 + y2 = z2

But in more complicated mathematical sentences, the HTML writer is left to ascii art:

            n
         -------
          \
       1   \
mean = -   /       x
       n  /         n
         -------
          i = 0
which states that the mean is equal to the sum of x's from 0 to n divided by n.

Or

   |^ 1
   |   x
   |  e dx
   |
   |
  v 0
Which is the integral of e to the x power, times dx in the range 0 to 1.

All of which is unsightly at best, and quite likely difficult to read (mathematics can already be difficult enough), and certainly differs from artist to artist.

As an example of what MathML looks like, the integral above is rendered by this MathML:

<mrow>
   <msubsup>
      <mo> &int; </mo>
      <mn> 0 </mn>
      <mn> 1 </mn>
   </msubsup>
   <mrow>
      <msup>
         <mi> &ExponentialE; </mi>
         <mi> x </mi>
      </msup>
      <mo> &InvisibleTimes; </mo>
      <mrow>
         <mo> &DifferentialD; </mo>
         <mi> x </mi>
      </mrow>
   </mrow>
</mrow>
Which may not be so pretty here, but will look a lot better than that little picture of the integral drawn above.