• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于MathML的web公式檢索的方案設(shè)計(jì)

      2014-10-21 14:56:52王霞文劉浩
      科技視界 2014年36期

      王霞文 劉浩

      【摘 要】數(shù)理公式作為知識(shí)體系中的重要組成部分,在基于Web的網(wǎng)絡(luò)教學(xué)、信息發(fā)布、學(xué)術(shù)交流等方面起著非常重要的作用。然而在目前的Web環(huán)境下,數(shù)理公式的檢索問題一直困擾著用戶。本文設(shè)計(jì)了一個(gè)公式檢索系統(tǒng),可以實(shí)現(xiàn)數(shù)學(xué)公式的在線輸入及準(zhǔn)確的檢索。系統(tǒng)使用JSP技術(shù)開發(fā)前天界面,Oracle作為后臺(tái)數(shù)據(jù)庫,MathML數(shù)學(xué)標(biāo)記語言作為數(shù)學(xué)公式的描述語言,通過設(shè)計(jì)在線公式編輯模塊,用戶可以所見即所得的編輯數(shù)學(xué)公式,而公式在系統(tǒng)中存儲(chǔ)為MathML代碼形式,因此可以通過代碼的匹配實(shí)現(xiàn)數(shù)學(xué)公式的檢索。

      【關(guān)鍵詞】公式檢索;在線公式編輯;MathML

      0 引言

      科技飛速發(fā)展的今天,數(shù)學(xué)公式的應(yīng)用越來越廣泛。然而WEB技術(shù)對(duì)數(shù)學(xué)符號(hào)、公式和特殊符號(hào)的支持還十分有限。目前微軟的IE瀏覽器仍無法直接支持?jǐn)?shù)學(xué)公式的顯示。

      目前,Web上處理數(shù)學(xué)公式問題的方法主要有以下四種:

      (1)圖片法。Web發(fā)布者先通過MathType等客戶端公式編輯器來編輯公式并將其轉(zhuǎn)換為圖片(JPG或JIF格式),然后嵌入到HTML網(wǎng)頁中,最后公式以圖片的形式在客戶端的瀏覽器中顯示。這種方式只能實(shí)現(xiàn)實(shí)現(xiàn)公式的顯示,無法對(duì)其查詢。

      (2)使用專用的數(shù)學(xué)公式的瀏覽器插件。有些公司為了配合本公司自己的教學(xué)軟件或教學(xué)網(wǎng)站,設(shè)計(jì)了專用的插件。訪問者要觀看數(shù)理公式,必須先要下載這些專用的瀏覽器插件。這種方式的主要缺點(diǎn)有公式復(fù)用性差;軟件獨(dú)立性差。

      (3)使用LaTex。LaTex是一套基于習(xí)慣性書寫思維的數(shù)學(xué)公式表示方法。一些大的軟件公司開發(fā)一些專用的LaTex瀏覽器插件,通過這種方式。瀏覽器可以直接觀看嵌入在HTML中的公式符號(hào)。這種方式的優(yōu)點(diǎn)是LaTex文檔的操作簡(jiǎn)潔,復(fù)用性好;缺點(diǎn)是LaTex不是一種標(biāo)記語言,在網(wǎng)絡(luò)應(yīng)用和數(shù)據(jù)的格式化標(biāo)準(zhǔn)化方面的擴(kuò)展能力較差。

      (4)基于MathML的應(yīng)用。MathML是W3C組織制定的一套基于XML的數(shù)學(xué)公式處理的標(biāo)準(zhǔn)。作為一種標(biāo)記語言,MathML在設(shè)計(jì)之初就考慮到網(wǎng)絡(luò)上的應(yīng)用和集成,其公式存儲(chǔ)形式更利于所以MathML在web上具有非常廣泛的應(yīng)用前景。

      1 公式預(yù)處理

      當(dāng)用戶輸入數(shù)學(xué)公式后,首先會(huì)進(jìn)行預(yù)處理,過濾掉代碼中的無用xml標(biāo)簽,同時(shí)替換掉字符代碼。比如勾股定理c2=a2+b2,當(dāng)用戶查找時(shí)若輸入z2=x2+y2,則無法匹配,得不到預(yù)期的結(jié)果。所以該模塊將輸入的字符數(shù)據(jù)替換成統(tǒng)一字符x,這樣在查找時(shí)就不會(huì)因?yàn)槟硞€(gè)字母不一致而無法查詢了。

      雖然這樣做會(huì)降低查準(zhǔn)率,但是格式相同或相近的公式畢竟不多,所以本系統(tǒng)更加著重于提高查全率。

      圖1 預(yù)處理模塊工作流程圖

      2 匹配方法

      對(duì)于已知公式名稱,可以很簡(jiǎn)單查詢到公式的內(nèi)容。但是對(duì)于只知道部分公式內(nèi)容,則需要進(jìn)行代碼預(yù)處理,以過濾標(biāo)簽、字母,達(dá)到查詢的準(zhǔn)確性。

      2.1 處理不匹配字符的規(guī)則

      在從右向左掃描的過程中,若發(fā)現(xiàn)某個(gè)字符x不匹配,則按如下兩種情況討論:

      (1)如果字符x在模式P中沒有出現(xiàn),那么從字符x開始的m個(gè)文本顯然不可能與P匹配成功,直接全部跳過該區(qū)域即可。即skip=plen,其中skip為向右移動(dòng)的距離,plen為模式串P的長(zhǎng)度。

      (2)如果x在模式P中其它位置出現(xiàn),則以該字符進(jìn)行對(duì)齊。即skip=plen-max(x),其中skip為向右移動(dòng)的距離,plen為模式串P的長(zhǎng)度,max(x)為模式串P中x再次出現(xiàn)的位置。

      程序中使用MakeSkip()函數(shù)實(shí)現(xiàn)該規(guī)則的處理,函數(shù)返回結(jié)果為模式串右移的距離。它的程序流程為:

      (1)獲取匹配字符及模式串作為參數(shù)。

      (2)若獲取參數(shù)為空,則拋出異常;否則進(jìn)行第3步。

      (3)初始化設(shè)置skip=0。

      (4)將字符與模式串進(jìn)行匹配。

      (5)如果該字符在模式串中其它位置未出現(xiàn),則skip=plen;否則skip=plen-max(x)。

      (6)返回skip值。

      (7)結(jié)束。

      2.2 處理已匹配字符串的規(guī)則:

      若發(fā)現(xiàn)某個(gè)字符不匹配的同時(shí),已有部分字符匹配成功,則按如下兩種情況討論:

      (1)如果在P中位置t處已匹配的部分p1,在P中的t′位置再次出現(xiàn),且位置t1的前一個(gè)字符與位置t的前一個(gè)字符不相同,則將p右移使t1對(duì)應(yīng)t方才的所在的位置。

      (2)如果在P中任何位置已匹配部分p1′都沒有再出現(xiàn),則找到與p1的后綴p11相同的p的最長(zhǎng)前綴x,向右移動(dòng)p,使x對(duì)應(yīng)方才p11后綴所在的位置。

      程序中使用MakeShift()函數(shù)實(shí)現(xiàn)該規(guī)則的處理,函數(shù)返回結(jié)果為模式串右移的距離。它的程序流程為:

      (1)獲取已匹配字符p1及模式串p作為參數(shù)。

      (2)若獲取參數(shù)為空,則拋出異常;否則進(jìn)行第3步。

      (3)初始化設(shè)置shift=0。

      (4)將已匹配的字符串p1與模式串p進(jìn)行匹配。

      (5)如果該字符串在模式串中其它位置未出現(xiàn),則shift=plen-pidx,其中pidx為p中再次出現(xiàn)p1的位置;否則進(jìn)行第6步。

      (6)去掉p1串的頭部,再次匹配,直到在p中找到相同的最長(zhǎng)前綴x,設(shè)置shift=plen-pidx;若p1在p中從未再次出現(xiàn)過,則shift=plen。

      (7)返回shift值。

      (8)結(jié)束。

      2.3 匹配的實(shí)現(xiàn)

      通過MakeSkip()函數(shù)和MakeShift()函數(shù)可以處理不同失配的情況時(shí),模式串右移的距離,通過本函數(shù),即Search()函數(shù),則可以實(shí)現(xiàn)該匹配模式的部分精確匹配的功能。它的程序流程為:

      (1)初始化,獲取文本串和模式串。

      (2)若獲取參數(shù)為空,則拋出異常;否則進(jìn)行第3步。

      (3)字符串左端對(duì)齊,從右端開始匹配,若匹配成功,則返回1;否則進(jìn)行下一步。

      (4)調(diào)用MakeSkip()函數(shù),計(jì)算出現(xiàn)不匹配字符的時(shí)候,模式串p應(yīng)該右移的距離skip。

      (5)調(diào)用MakeShift()函數(shù),計(jì)算出現(xiàn)已匹配字符串的時(shí)候,模式串p應(yīng)該右移的距離shift。

      (6)令模式串p右移的距離moved為skip和shift中的大者。

      (7)模式串右移moved距離,同時(shí)設(shè)置記錄文本串長(zhǎng)的參數(shù)blen,令blen=blen-moved。

      (8)判斷是否匹配結(jié)束,即blen

      (9)結(jié)束。

      3 結(jié)論

      現(xiàn)有的Web中的數(shù)學(xué)公式,存儲(chǔ)格式五花八門,多以圖片形式存在,少數(shù)以MathML代碼形式出現(xiàn)的公式,其存儲(chǔ)格式多數(shù)不夠規(guī)范,因應(yīng)用較少,故難以達(dá)成統(tǒng)一標(biāo)準(zhǔn)。

      系統(tǒng)以文本編輯器Fckeditor作為運(yùn)行平臺(tái),用戶在界面中編輯要查詢的數(shù)理公式,通過對(duì)公式代碼的處理,即可到公式數(shù)據(jù)庫中查詢。結(jié)果頁面會(huì)返回查詢公式的相關(guān)信息,并根據(jù)查詢到的公式名稱到百度、谷歌兩個(gè)搜索引擎中查詢出相關(guān)頁面,并返回頁面鏈接。

      作者聲明:“作者對(duì)本文版權(quán)全權(quán)負(fù)責(zé),無抄襲.”

      本文作者創(chuàng)新點(diǎn):設(shè)計(jì)了一個(gè)公式檢索系統(tǒng),可以實(shí)現(xiàn)數(shù)學(xué)公式的在線輸入及準(zhǔn)確的檢索。系統(tǒng)使用JSP技術(shù)開發(fā)前天界面,Oracle作為后臺(tái)數(shù)據(jù)庫,MathML數(shù)學(xué)標(biāo)記語言作為數(shù)學(xué)公式的描述語言,通過設(shè)計(jì)在線公式編輯模塊,用戶可以所見即所得的編輯數(shù)學(xué)公式,而公式在系統(tǒng)中存儲(chǔ)為MathML代碼形式,因此可以通過代碼的匹配實(shí)現(xiàn)數(shù)學(xué)公式的檢索。

      【參考文獻(xiàn)】

      [1]李春偉.基于MathML的web數(shù)學(xué)公式的解決方案[J].中國(guó)科技信息,2008,10(17):78-82

      [2]姜力.基于MathML的WEB數(shù)學(xué)公式表示[J].齊齊哈爾大學(xué)學(xué)報(bào),2006,9(06): 98-102.

      [3]童寧江,喻茜芝,凌代紅.WebEQ數(shù)學(xué)套件核心技術(shù)精解[J].中國(guó)科技信息, 2008,6(05).

      [責(zé)任編輯:楊玉潔]

      陵川县| 宜君县| 阜南县| 凌云县| 镇安县| 历史| 通州区| 泽州县| 洛浦县| 双峰县| 县级市| 鹤庆县| 左贡县| 兴文县| 绵竹市| 勐海县| 冷水江市| 新绛县| 资阳市| 平罗县| 东兰县| 航空| 林周县| 慈利县| 望城县| 吴江市| 怀柔区| 寿光市| 门头沟区| 安福县| 麻阳| 济宁市| 元朗区| 四会市| 绥江县| 忻州市| 九台市| 屏山县| 乌苏市| 哈巴河县| 伊春市|