• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 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é)任編輯:楊玉潔]

    依兰县| 固阳县| 江安县| 温泉县| 株洲市| 眉山市| 启东市| 郓城县| 大埔区| 长沙县| 徐汇区| 金川县| 大洼县| 巫山县| 呼玛县| 玉林市| 桂林市| 玛多县| 边坝县| 乌海市| 文成县| 股票| 公安县| 南和县| 田东县| 曲阜市| 商城县| 天长市| 淄博市| 乌海市| 漯河市| 张家界市| 蓝田县| 土默特左旗| 宾川县| 鹤庆县| 上饶县| 哈尔滨市| 顺义区| 富源县| 武汉市|