MathML

Bách khoa toàn thư mở Wikipedia
Bước tới: menu, tìm kiếm

MathML (viết tắt cho Mathematical Markup Language, Ngôn ngữ Đánh dấu Toán học) là một ứng dụng của XML để thể hiện ký hiệu và công thức toán học với mục đích rộng là phương cách trao đổi thông tin toán học trên máy tính (để hiển thị cũng như để tính toán) và mục đích hẹp là hiển thị tài liệu toán học trên World Wide Web. Nhóm toán học của W3C đề xuất mọi người nên dần sử dụng ngôn ngữ này trên mạng.

Phiên bản 1.01 được công bố vào tháng 7 năm 1999 và bản 2.0 xuất hiện vào tháng 2 năm 2001. Tháng 10 năm 2003, bản chỉnh sửa lần thứ hai của phiên bản 2.0 của MathML được công bố là bản cuối cùng của nhóm toán W3C.

MathML được thiết kế để không chỉ hiển thị tốt công thức toán học mà còn, theo tùy chọn, chứa ý nghĩa của công thức, giúp các máy tính có thể trao đổi và hiểu nội dung toán học. Một chuẩn khác là OpenMath được thiết kế đặc biệt cho lưu trữ ý nghĩa toán học có thể được dùng để bổ trợ cho MathML.

Đối với hiển thị trên trang mạng, cấu trúc XML không ngắn gọn như TeX, nhưng có thể được dễ dàng sử dụng bởi các trình duyệt, cho phép hiển thị ngay lập tức công thức toán học một cách đẹp mắt, đồng thời truyền tải ý nghĩa toán học cho các phần mềm tính toán. Khác với TeX, MathML không được thiết kế để viết hay sửa trực tiếp bởi con người. Cần có công cụ soạn thảo, hay chuyển đổi từ ngôn ngữ thân thiện với người khác (như TeX), để cho ra kết quả là biểu diễn MathML.

Ví dụ[sửa | sửa mã nguồn]

Công thức bậc hai:

x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}

Vốn được viết theo ngữ pháp TeX:

x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}

Sẽ có thể được viết bằng MathML:

<math>
 <mrow>
  <mi>x</mi>
  <mo>=</mo>
  <mfrac>
    <mrow>
      <mrow>
        <mo>-</mo>
        <mi>b</mi>
      </mrow>
      <mo>&PlusMinus;</mo>
      <msqrt>
        <mrow>
          <msup>
            <mi>b</mi>
            <mn>2</mn>
          </msup>
          <mo>-</mo>
          <mrow>
            <mn>4</mn>
            <mo>&InvisibleTimes;</mo>
            <mi>a</mi>
            <mo>&InvisibleTimes;</mo>
            <mi>c</mi>
          </mrow>
        </mrow>
      </msqrt>
    </mrow>
    <mrow>
      <mn>2</mn>
      <mo>&InvisibleTimes;</mo>
      <mi>a</mi>
    </mrow>
  </mfrac>
 </mrow>
</math>

Nếu muốn hiển thị đúng trong trình duyệt Mozilla, cần thêm

<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN"
 "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd"
 [ <!ENTITY mathml "http://www.w3.org/1998/Math/MathML"> ] >

Và lưu giữ các mã này trong tập tin có đuôi .xml.

Như trong ví dụ trên:

<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN"
 "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd"
 [ <!ENTITY mathml "http://www.w3.org/1998/Math/MathML"> ] >
<body>
<math xmlns="&mathml;">
<mrow>
  <mi>x</mi>
  <mo>=</mo>
  <mfrac>
    <mrow>
      <mrow>
        <mo>-</mo>
        <mi>b</mi>
      </mrow>
      <mo>&PlusMinus;</mo>
      <msqrt>
        <mrow>
          <msup>
            <mi>b</mi>
            <mn>2</mn>
          </msup>
          <mo>-</mo>
          <mrow>
            <mn>4</mn>
            <mo>&InvisibleTimes;</mo>
            <mi>a</mi>
            <mo>&InvisibleTimes;</mo>
            <mi>c</mi>
          </mrow>
        </mrow>
      </msqrt>
    </mrow>
    <mrow>
      <mn>2</mn>
      <mo>&InvisibleTimes;</mo>
      <mi>a</mi>
    </mrow>
  </mfrac>
</mrow>
</math>
</body>

Hỗ trợ[sửa | sửa mã nguồn]

Có nhiều phần mềm chuyển TeX thành MathML. Như itex2mml. Hãng Wolfram Research cung cấp một trang mạng chuyển mọi biểu thức toán học sang MathML.

Trong số các trình duyệt thông dụng, Mozilla và một số trình duyệt cùng họ như là Mozilla Firefox trực tiếp hiển thị MathML. [1] Các trình duyệt khác có thể cần thêm phần mềm gắn vào; như Internet Explorer cần gắn thêm MathPlayer.

MathML được hỗ trợ bởi các phần mềm văn phòng như Microsoft Word, OpenOffice.orgKOffice và các phần mếm tính toán kỹ thuật như Maple, Mathematica, và MathCad.

Liên kết ngoài[sửa | sửa mã nguồn]