【Side Project】MathML數理式解析器程式

Ivan Chiou
3 min readNov 5, 2019

--

MathML數理式解析器程式,是為解決目前視障教育者教學數理科目所面臨的問題,運用數理教材的資訊化來呈現,並透過HTML、MathML、NVDA的搭配使用,可有效的解決現行方式所遭遇到的問題。

HTML是網頁語言中最被普遍接受的加註語言,大體上已能處理以文字為主,以圖片或聲音影像為輔的網路文件,但是很多科學界使用的符號所組成的數學表達式,並不能被歸類為文字,而使用圖片呈現數學式只適合明眼人閱讀,因此,W3C於1998年提出出版數學公式的加註語言MathML對數學式提供了標籤化設計,對數學式中的符號與本身前後關係意義設計不同標籤語言,配合適當的程式解析,以結構化的語法呈現數學式所欲表達之內容,相較於文字化描述方式,視障者更能快速理解數學式的構成與意義,同時,目前有多套圖形化編輯器可供撰寫MathML數學式,在各個大專院校課程、各類國際數理出版資料中也被廣為使用,視障教育者更容易學習編輯數學式。

本計劃預計實做一套MathML(Presentation Markup類型以下同)數理式解析器程式,將MathML數理式轉換為線性式資訊讓文字轉語音引擎得以順利朗讀出MathML數理式的內容,並改進現有程式在中文化上的不足。

解析器程式能讀取分數、根號、次方類型的MathML數理式,舉例如下表:

使用工具 — wxPython Python的視窗程式library

利用M(Model)V(View)C(Controller)架構設計整個程式框架。

再加上Python PubSub利用訂閱者模式(Publish/Subscribe Pattern)來設計訊息傳遞方式。

最後在應用程序中加入顯示HTML的功能 — 使用HTML2.WebView

半成品目前如下:

專案持續進行中。

希望對Python開源專案,有志一同的朋友們,能夠一同加入開發的行列。

信箱: wyattkidd@gmail.com

--

--

Ivan Chiou
Ivan Chiou

Written by Ivan Chiou

Rich experience in multimedia integration, cross-functional collaboration, and dedicated to be a mentor for young developers.

No responses yet