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

邱文淇
邱文淇
Nov 5 · 3 min read

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

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade