MathML 3成為W3C推薦標準 & 好處雜談

嗨 大家好,

MathML在不久之前(10月21日)成為了一個新的W3C推薦標 
準(REC),似乎有一些新聞報導的樣子[1]。我在台灣 
Google的朋友看到這篇報導,就說「一個數學式子要用這 
麼多char組成也太沒效率了吧~」然後問我看法。恰好記 
得之前看到W3C數學工作組的Q&A[2]提到的一些MathML的優 
點:

- 因為是XML可以用DOM的API操作
- 有語意
- 所以能提供無障礙環境(Accessibility)

就順手寫了一篇文,貼在後面分享給大家。話說,HTML5 
有內建MathML所以就算是不用XML只要用了<math>標籤就可以 
用MathML囉[3]。現在Gecko有支援,尚未釋出的Webkit也有, 
就不知道Trident什麼時候支援啦。

其實不管數學是什麼格式都好,還是希望有生之年可以 
在Web上看到更多的數學文章跟論文,PDF真的是對非 
Windows使用者來說蠻困擾的,而且現在論文裡用的超連 
結也不是很多、、、歡迎大家多多推銷一下MathML,有什 
麼建議的文章嗎?

另外WHATWG似乎討論在HTML5該用LaTex還是MathML討論了很 
久,還沒空做個詳盡的考古 :p [4]

[1] (英文) http://www.readwriteweb.com/hack/2010/10/w3c-announces-mathml-3-new-sta 
.php
[2] (英文) http://www.w3.org/Math/mathml-faq#syntax

[3] (英文,徵求翻譯!) http://en.wikipedia.org/wiki/Comparison_of_layout_engines_%28H 
TML5%29#Elements
[4] http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2006-June/thread.html#6624


-- 附文 --

我對MathML不熟 隨便講講


第一件事就是反正MathML也不是給人看或是寫的 主要還 
是機器寫的吧
就像WikiText用

a
(斷行)
b

來代表
<p>a</p>
<p>b</p>
--
== Test == 代表 <h2>Test</h2>
--
[http://www.example.com/ example] 代表 <a href="http:// 
www.example.com/">
example</a>

你也可以說HTML很冗長啊 不過反正就是給瀏覽器看的
反正也是會有很多轉換的工具吧
我曾經提到一個 LaTex2MathML的工具 -> http://math.etsu.edu/ 
LaTeXMathML/ (目前只能用Firefox開 之後就可以用Chrome跟 
Safari啦)

如果你問說為啥瀏覽器不直接實作LaTex 則我不太清楚  
可能是因為語法差太多吧
另外就是LaTex如果你誇號(\test{})不關 系統是不讓你輸出 
的 而會die
Web/HTML是不會有這種事的 如果某個做網頁的人輸出破爛 
的HTML code然後
瀏覽器開不起來 他只會叫使用者換瀏覽器而已

在HTML有叫做tagsoup的自動修復機制
在HTML5裡的MathML應該也有提到MathML的修復機制 而不是不 
能顯示它


另一方面跟新聞連結提到的連結裡面的後一個例子有關
總之 簡單來說 他就是強迫MathML的使用者在寫
5 * 2 + 3 * 1 的時候要誇號 即 (5 * 2) + (3 * 1)

這有什麼好處呢?

首先以下大概是對的
「在廣大的數學環境下 自動推斷誇號在哪是不可能 
的」
因為不同領域的數學家根本就有可能把同一個算子用在 
不同的地方
這本身就有某種矛盾性 絕對不可能有一個中心控管機 
制排列所有算子的排序
這跟程式語言是不同的 程式語言(像是C)通常都有一個 
標準跟標準算子排序
數學家每天都在發明符號 不可能會同意某個標準
而且每天吵 ☉ 跟 x 哪個優先也是很無聊

強迫有刮號總是存下比較多的資訊 減少矛盾性
存下比較多資訊比較好這種事大家都越來越懂了 像是 
以前的書商就笨笨的 存PDF
現在PDF轉不出字來做不出電子書就是一個很頭的大問題
存InDesign原始檔或是.doc原始檔
都比前者好 因為PDF有的資訊就是比較少(某方面來說)

那有誇號的好處是什麼呢?

比如說 (2 + 3) - (4 + 2) 有誇號的資訊的話 你就可以讓使 
用者顯示成:

       2 + 3 - (4 + 2)   (可能用某種CSS) 或是

       2+3 - 4+2         (說不定哪個國家就是這樣寫的) 或 
是

(用講的) 2 加 3 減 括號 4 加 2 括號   或是

(用講的) 2 加 3 減 (停頓) 4 加 2      甚至是

(用講的) A 是 2 加 3; B 是 4 加 2; 這是 A 減 B


因為數學符號是被設計成拿來看的 所以某些情況下會 
對視障很吃力
而保留全部的資料(誇號)對這方面的的應用很有幫助

(我知道這很難啦 像是HTML的<img src=... alt="這張圖片解 
釋..." />
就是當視障看不到 圖片時唸給他聽的東西 這種功能或 
許也是會被批評為很多餘)

現在HTML5的方向還蠻強調媒介(視覺、聽覺)中立性的
比如說<i>就不解釋為斜體 而是「另一種*腔調*,像是夢 
境等等」
而MathML跟這方面的方向還蠻合的


此致
Kenny

Received on Tuesday, 26 October 2010 14:12:51 UTC