MathML

Bahasa Markah Matematika (MathML, ) adalah bahasa markah matematika, yaitu sebuah penerapan XML untuk menjelaskan notasi matematika. Bahasa ini ditujukan untuk memasukkan rumus matematika ke dalam halaman web dan dokumen lainnya. Ia menjadi bagian dalam HTML5 dan standar ISO nomor ISO/IEC DIS 40314 sejak 2015.

Sejarah 
Pada awalnya, W3C menyadari bahwa penulisan secara ilmiah adalah masalah yang sangat serius. Penulisan rumus biasanya dilakukan dengan membuat gambar dengan tulisan rumus tersebut sehingga sulit untuk membaca dan menulisnya. Dave Raggett mengusulkan proposal "HTML Math" dalam draf kerja HTML 3.0 pada tahun 1994.

Sebuah panel diskusi diadakan dalam WWW Conference di Darmstadt pada bulan April 1995. Kemudian pada November 1995, perwakilan dari Wolfram Research mempresentasikan sebuah proposal dalam penulisan rumus matematika di HTML kepada tim W3C. Pada bulan Mei 1996, Digital Library Initiative di Champaign-Urbana menciptakan sejarah penting dengan mengumpulkan banyak kelompok yang tertarik dalam masalah ini. Sebagai tindak lanjut, HTML Math Editorial Review Board dibentuk. Perkumpulan ini berkembang dan akhirnya secara resmi dibentuk kembali dalam W3C Math Working Group pada bulan Maret 1997. W3C Math Working Group dibentuk kembali pada Juli 1998 dan diberikan waktu untuk menjalankan tugasnya hingga tahun 2000.

MathML 1 akhirnya menjadi rekomendasi pertama W3C pada bulan April 1998 untuk masalah penulisan rumus matematika dalam bentuk XML. Versi 1.01 dirilis pada bulan Juli 1999 dan versi 2.0 pada bulan Februari 2011. Pada bulan Oktober 2003, edisi kedua dari MathML 2.0 dipublikasikan sebagai rilis resmi oleh W3C Math Working Group. Pada bulan Juni 2006, W3C membentuk kembali MathML Working Group untuk membuat Rekomendasi MathML 3 hingga Februari 2008, dan diperpanjang kembali pada bulan November 2008 menjadi hingga April 2010. Draft kerja keenam dari revisi MathML 3 dipublikasikan pada bulan Juni 2009. Pada 10 Agustus 2010, status MathML 3 dinaikkan menjadi Proposed Recommendation dari sebelumnya hanya berupa draf.

MathML 3.0 secara resmi dirilis sebagai rekomendasi dari W3C pada tanggal 21 Oktober 2010 sebagai revisi dari MathML 20.0

Contoh dan perbandingan dengan format lainnya 
Rumus kuadrat berikut:

dapat ditampilkan dengan sintaks LaTeX sebagai berikut:

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

dalam troff/eqn sebagai berikut:

 x = {-b +- sqrt{b sup 2 – 4ac}} over 2a

dalam Apache OpenOffice Math dan LibreOffice Math sebagai berikut: (ketiganya sah)

 x = {-b plusminus sqrt {b^2 – 4 ac}} over {2 a}
x = {-b +- sqrt {b^2 – 4ac}} over {2a}
x = {-b ± sqrt {b^2 – 4ac}} over {2a}

dan dalam AsciiMath sebagai berikut:

 x = (-b +- sqrt(b^2 - 4ac))/(2a)

Persamaan di atas dapat ditulis dalam MathML sebagai pohon kalimat dengan elemen tata letak seperti  dan :

<math mode="display" xmlns="http://www.w3.org/1998/Math/MathML">
 <semantics>
  <mrow>
   <mi>x</mi>
   <mo>=</mo>
   <mfrac>
    <mrow>
     <mo form="prefix">−<!-- − --></mo>
     <mi>b</mi>
     <mo>±<!-- &PlusMinus; --></mo>
     <msqrt>
      <msup>
       <mi>b</mi>
       <mn>2</mn>
      </msup>
      <mo>−<!-- − --></mo>
      <mn>4</mn>
      <mo>⁢<!-- &InvisibleTimes; --></mo>
      <mi>a</mi>
      <mo>⁢<!-- &InvisibleTimes; --></mo>
      <mi>c</mi>
     </msqrt>
    </mrow>
    <mrow>
     <mn>2</mn>
     <mo>⁢<!-- &InvisibleTimes; --></mo>
     <mi>a</mi>
    </mrow>
   </mfrac>
  </mrow>
  <annotation encoding="TeX">
   x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}
  </annotation>
  <annotation encoding="StarMath 5.0">
   x={-b plusminus sqrt {b^2 - 4 ac}} over {2 a}
  </annotation>
 </semantics>
</math>

Contoh di atas menggunakan elemen  yang dapat dipakai untuk menyematkan catatan dalam format non-XML, misalnya rumus dalam format yang dipakai oleh penyunting persamaan seperti StarMath atau dalam format LaTeX.

Meski tidak seringkas TeX, stuktur XML membuatnya dapat dipakai lebih luas untuk tampilan instan seperti peramban web dan dapat menyampaikan makna/tafsiran dalam perangkat lunak matematika. MathML tidak ditujukan untuk ditulis/disunting secara langsung oleh manusia.

Dukungan peramban web 

Di antara peramban web modern, peramban berbasis Gecko (seperti Firefox) memiliki dukungan asli untuk MathML.

Meski mesin tata letak WebKit memiliki versi pengembangan MathML, fitur ini hanya ada pada versi 5.1 ke atas untuk Safari dan versi 24 untuk Chrome, tetapi tidak ada pada Chrome versi di atasnya. Google menghapus dukungan MathML dengan alasan masalah keamanan arsitektur dan penggunaan yang sedikit sehingga tidak sebanding dengan waktu pengerjaan perbaikan masalah tersebut.  implementasi WebKit/Safari memiliki banyak kutu.

Peramban web JavaFX/WebView tersemat, juga berbasis WebKit, mendukung MathML sejak versi JavaFX 8 Update 192 dan JavaFX 11. JavaFX 8 versi sebelumnya, JavaFX 9, dan JavaFX 10 tidak mendukung MathML.

Opera dari versi 9.5 sampai 12 mendukung MathML untuk gaya CSS, tetapi tidak bisa meletakkan tanda diakritik dengan benar. Sebelum versi 9.5, ia membutuhkan UserJS dan gaya khusus untuk meniru dukungan MathML. Sejak versi 14, Opera menghapus dukungan MathML dengan mengganti ke mesin Chromium 25.

Internet Explorer tidak mendukung MathML secara bawaan. Dukungan untuk IE6 dan IE9 dapat ditambahkan dengan memasang pengaya MathPlayer. IE10 memiliki kutu yang membuat macet dengan MathPlayer sehingga Microsoft memutuskan untuk mematikan dukungan pengaya MathPlayer.

Konqueror, peramban web berbasis KHTML, belum mendukung MathML.

Kualitas hasil MathML dalam peramban web bergantung pada fon yang terpasang. Proyek STIX Fonts telah merilis set fon matematika yang disetujui dalam lisensi terbuka. Fon Cambria Math yang sepaket dengan Microsoft Windows memiliki dukungan yang lebih sedikit.

Menurut anggota tim MathJax, tidak ada peramban web besar (utama) yang membayar pengembang mereka untuk pekerjaan terkait pembuatan dukungan MathML; segala dukungan yang ada merupakan hasil kerja sukarelawan yang tak terbayar.

Pada tahun 2015, Perhimpunan MathML didirikan untuk mendukung adopsi standar MathML.

Lihat pula 
 Cascading Style Sheets (CSS)
 Daftar bahasa markah
 Perbandingan bahasa markah dokumen
 Penyunting rumus
 LaTeX
 LaTeXML
 KaTeX
 MathJax

Catatan kaki

Referensi

Bacaan lebih lanjut

Spesifikasi 
 W3C Recommendation: Mathematical Markup Language (MathML) 1.01 Specification
 W3C Recommendation: Mathematical Markup Language (MathML) Version 2.0 (Edisi Kedua)
 W3C Recommendation: Mathematical Markup Language (MathML) Version 3.0 (Edisi Ketiga)

Pranala luar 
 W3C Math Home – berisi spesifikasi, tanya jawab, dan daftar perangkat lunak yang mendukung