段克松,施化吉,李星毅
(江蘇大學(xué) 計(jì)算機(jī)科學(xué)與通信工程學(xué)院,江蘇 鎮(zhèn)江212013)
在XML查詢中,如何對(duì)大量的XML數(shù)據(jù)流進(jìn)行查詢匹配是一個(gè)關(guān)鍵問(wèn)題。目前,人們已經(jīng)取得了一定的成果,如XFilter,YFilter,XPush技術(shù)等。但是面對(duì)海量XML數(shù)據(jù)流進(jìn)行查詢處理時(shí)依然很難滿足實(shí)際應(yīng)用的需求。最近有學(xué)者提出利用能夠自然處理樹(shù)狀數(shù)據(jù)結(jié)構(gòu)的樹(shù)自動(dòng)機(jī)來(lái)實(shí)現(xiàn)XML查詢匹配的方法XEBT[1],提供了一個(gè)很好的思路。但該方法存在以下兩個(gè)問(wèn)題:①如果系統(tǒng)中有n條XPath查詢語(yǔ)句,則轉(zhuǎn)換后系統(tǒng)會(huì)存在n個(gè)非確定的樹(shù)自動(dòng)機(jī);②在XPath表達(dá)式與樹(shù)自動(dòng)機(jī)的轉(zhuǎn)換過(guò)程中,把謂詞直接轉(zhuǎn)換為樹(shù)自動(dòng)機(jī)的狀態(tài),造成系統(tǒng)運(yùn)行時(shí)對(duì)于每個(gè)查詢都要進(jìn)行謂詞匹配,相對(duì)于只在結(jié)構(gòu)匹配成功時(shí)才進(jìn)行謂詞匹配效率明顯比較低。本文針對(duì)上述認(rèn)識(shí),提出了一種高效的XML過(guò)濾技術(shù)XTAFilter。該技術(shù)具有以下特點(diǎn):通過(guò)構(gòu)建hash表來(lái)存儲(chǔ)謂詞信息來(lái)替代把謂詞作為樹(shù)自動(dòng)機(jī)狀態(tài)的方法,使得該技術(shù)只有在結(jié)構(gòu)匹配成功時(shí),才進(jìn)行謂詞匹配,而不是每次查詢都進(jìn)行謂詞匹配,提高了匹配效率;同時(shí)利用共享路徑構(gòu)建樹(shù)自動(dòng)機(jī),減少了匹配消耗的時(shí)間,提高了查詢匹配的效率。
XML(extensible markup language)已成為互聯(lián)網(wǎng)上數(shù)據(jù)存儲(chǔ)、交換和表示的事實(shí)性標(biāo)準(zhǔn)。在具體的XML應(yīng)用中,查詢通常使用XPath(XML path language)語(yǔ)言,通過(guò)結(jié)構(gòu) (路徑表達(dá)式)和內(nèi)容 (謂詞)來(lái)進(jìn)行信息的查詢匹配。XPath是XML數(shù)據(jù)流查詢匹配的基本機(jī)制,支持豐富的路徑查詢特性。它由一系列位置步驟組成,每個(gè)位置步驟包括軸、節(jié)點(diǎn)測(cè)試和零個(gè)或多個(gè)謂詞。軸指定節(jié)點(diǎn)間的層次關(guān)系,節(jié)點(diǎn)由一個(gè)元素的名稱或通配符 ‘*’(匹配任何元素中指定的測(cè)試名稱)構(gòu)成,謂詞可以用于處理文檔中的元素內(nèi)容或其它元素引用。由于應(yīng)用很少涉及到所有的特性,所以討論基本上都集中在XPath的子集上2-4。本文討論的定位步驟集合PA為:{/a,//a,/*,//*,[]}。
XTAFilter技術(shù)是基于樹(shù)自動(dòng)機(jī)的。樹(shù)自動(dòng)機(jī)支持兩種執(zhí)行策略,即自上而下和自下而上。因此存在兩種樹(shù)自動(dòng)機(jī)。區(qū)別在于自下而上樹(shù)自動(dòng)機(jī)是指樹(shù)語(yǔ)言是從葉子節(jié)點(diǎn)開(kāi)始向下被識(shí)別的,而自上而下樹(shù)自動(dòng)機(jī)是指樹(shù)語(yǔ)言是從根節(jié)點(diǎn)開(kāi)始向下被識(shí)別的。本文以未確定化的自上而下執(zhí)行樹(shù)自動(dòng)機(jī)進(jìn)行討論,以下統(tǒng)稱為樹(shù)自動(dòng)機(jī),下面給出其定義。
定義1 樹(shù)自動(dòng)機(jī)T為四元組T= (Q,F(xiàn),δ,Qf)。其中F是有序字母表,Q是有限狀態(tài)集,QfQ是終止?fàn)顟B(tài)集,X為變量的集合。δ是狀態(tài)轉(zhuǎn)移函數(shù)集,具有以下的形式
q(f(x1,x2,...,xn))→f(q1(x1),q2(x2),...,qn(xn)) (1)其 中n≥ 0,f∈Fn,q1,q2,...qn∈ Q;x1,x2,...xn∈X。
樹(shù)自動(dòng)機(jī)T基于有序字母表F。它從根節(jié)點(diǎn)開(kāi)始執(zhí)行,沿著狀態(tài)和子項(xiàng)向下轉(zhuǎn)換。當(dāng)n=0,有序字母集F就只有一個(gè)常量a,轉(zhuǎn)換規(guī)則式 (1)變?yōu)閝(a)→a,因此字符自動(dòng)機(jī)可看作樹(shù)自動(dòng)機(jī)特例。
對(duì)XML數(shù)據(jù)流進(jìn)行查詢匹配主要是基于路徑表達(dá)式XPath,而任何一個(gè)路徑表達(dá)式XPath都可以轉(zhuǎn)化成一個(gè)等價(jià)的正則表達(dá)式。根據(jù)樹(shù)自動(dòng)機(jī)理論知,存在一個(gè)接受該語(yǔ)言的有限樹(shù)自動(dòng)機(jī)。本文正是基于以上理論采用非確定樹(shù)自動(dòng)機(jī)代替XPath實(shí)現(xiàn)對(duì)XML數(shù)據(jù)流的導(dǎo)航。
Dan Suciu引入了XPath的樹(shù)模式概念。給定一個(gè)支持{/,//,*,[]}的XPath,可以構(gòu)建一個(gè)等價(jià)的樹(shù)模式,反之亦然。根據(jù)樹(shù)模式思想來(lái)構(gòu)造樹(shù)自動(dòng)機(jī)是簡(jiǎn)單而直接的,下面利用一個(gè)例子來(lái)簡(jiǎn)要說(shuō)明XPath樹(shù)模式到樹(shù)自動(dòng)機(jī)的構(gòu)建。
例1:給定XPath的查詢Q1=a/b//c [*/d][e],建立與之對(duì)應(yīng)的樹(shù)模式,并依據(jù)樹(shù)模式的思想構(gòu)建樹(shù)自動(dòng)機(jī),如圖1所示。
圖1 樹(shù)模式到樹(shù)自動(dòng)機(jī)的轉(zhuǎn)換
注意到XML過(guò)濾過(guò)程是將XML數(shù)據(jù)流和XPath訂購(gòu)消息進(jìn)行匹配并轉(zhuǎn)發(fā)的過(guò)程,在匹配過(guò)程中,包含結(jié)構(gòu)部分和謂詞部分。因此,在設(shè)計(jì)XTAFilter過(guò)濾算法時(shí)需同時(shí)考慮結(jié)構(gòu)和謂詞的匹配效率對(duì)過(guò)濾性能的影響。依據(jù)樹(shù)模式把XPath轉(zhuǎn)換為樹(shù)自動(dòng)機(jī)時(shí)把謂詞樹(shù)自動(dòng)機(jī)的狀態(tài),造成每次結(jié)構(gòu)匹配時(shí)都需要進(jìn)行謂詞匹配。為了減少不必要的匹配,在結(jié)構(gòu)匹配不成功時(shí)不再進(jìn)行謂詞匹配,XTAFilter技術(shù)利用hash表來(lái)存儲(chǔ)謂詞部分。其存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu)如圖2所示。
圖2 謂詞存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)
用戶通過(guò)路徑表達(dá)式XPath來(lái)表示他們感興趣的信息,而用戶提交的多個(gè)XPath訂購(gòu)表達(dá)式中可能存在相同的XPath片段。如果訂購(gòu)表達(dá)式從根結(jié)點(diǎn)開(kāi)始具有相同的XPath片段,可以通過(guò)合并這些片段來(lái)構(gòu)建一個(gè)共享XPath路徑樹(shù)自動(dòng)機(jī)。這樣一方面降低系統(tǒng)運(yùn)行的活動(dòng)狀態(tài),另一方面提高系統(tǒng)匹配效率。如圖3所示。
圖3 構(gòu)建共享路徑樹(shù)自動(dòng)機(jī)
XML是一種樹(shù)形數(shù)據(jù)類型,而XPath采用了路徑表達(dá)式的語(yǔ)法,因此對(duì)XML數(shù)據(jù)流進(jìn)行查詢,很自然的方法是基于導(dǎo)航的查詢執(zhí)行策略。即當(dāng)XML數(shù)據(jù)以數(shù)據(jù)流的形式出現(xiàn)時(shí),預(yù)先存儲(chǔ)的查詢語(yǔ)句對(duì)XML數(shù)據(jù)流進(jìn)行導(dǎo)航,過(guò)濾出與之匹配的XML文檔。為了以下算法描述的需要給出相關(guān)定義。
圖3 顯示了共享XPath路徑樹(shù)自動(dòng)機(jī)的構(gòu)建過(guò)程。一個(gè)圓圈代表一個(gè)狀態(tài)。橢圓表示接受狀態(tài)。邊符號(hào)表示輸入該符號(hào)觸發(fā)狀態(tài)轉(zhuǎn)換。根據(jù)上圖可知,如果將每一個(gè)查詢都轉(zhuǎn)化為一個(gè)樹(shù)自動(dòng)機(jī),則系統(tǒng)運(yùn)行時(shí)的狀態(tài)為14,而通過(guò)構(gòu)建共享XPath路徑樹(shù)自動(dòng)機(jī),系統(tǒng)的運(yùn)行狀態(tài)只有6個(gè)。因此,通過(guò)共享XPath路徑構(gòu)建樹(shù)自動(dòng)機(jī),將可以有效地降低系統(tǒng)運(yùn)行時(shí)的活動(dòng)狀態(tài);同時(shí)減少匹配的時(shí)間,提高查詢匹配的效率。
定義2PX是XPath上的位置步驟轉(zhuǎn)換集合,其形式化定義為
式中:Q——狀態(tài)集,∑——符號(hào)集,元素a∈∑,qi,qj∈Q,f——狀態(tài)轉(zhuǎn)移函數(shù),a (qi)(*)——狀態(tài)qi的自反與傳遞閉包,∑(﹡)——字符集的自反與傳遞閉包。為了降低系統(tǒng)信息描述和匹配時(shí)的復(fù)雜度,對(duì)位置步驟集合中的//*基本操作,通過(guò)與位于其后的定位步驟進(jìn)行合并來(lái)實(shí)現(xiàn):①當(dāng) “//*”不出現(xiàn)在表達(dá)式末尾時(shí),“//*/a”和“//*//a”都等價(jià)于 “//a”;②當(dāng) “//*”出現(xiàn)在表達(dá)式的末尾時(shí),則可采用 “/*”來(lái)取代。
定義3 令Q為狀態(tài)集,∑為符號(hào)集,元素a,b∈∑,f為狀態(tài)轉(zhuǎn)移函數(shù),狀態(tài)q,qi,qj,qk∈Q,位置步驟組合轉(zhuǎn)換集合CP為:
為了處理謂詞的需要,給出謂詞關(guān)系集合PQ的形式化定義。
③全面開(kāi)展監(jiān)測(cè)評(píng)價(jià)。建成11個(gè)坡地徑流場(chǎng)、163個(gè)觀測(cè)小區(qū)和14個(gè)溝道控制站,基本覆蓋全市的水土流失監(jiān)測(cè)網(wǎng)絡(luò)。依托科技部中德合作項(xiàng)目,引進(jìn)德國(guó)先進(jìn)設(shè)備,構(gòu)建土壤蒸滲儀監(jiān)測(cè)點(diǎn)→坡面土壤侵蝕和平原區(qū)監(jiān)測(cè)點(diǎn)→小流域監(jiān)測(cè)→大流域監(jiān)測(cè)構(gòu)成的監(jiān)測(cè)網(wǎng)絡(luò),對(duì)降水、徑流、泥沙、土壤水分循環(huán)、水質(zhì)水量、生物多樣性、水文形態(tài)特征等開(kāi)展監(jiān)測(cè),及時(shí)評(píng)估水土保持效益,為生態(tài)清潔小流域建設(shè)提供科學(xué)依據(jù)。
PQ= {a,a>const,a>=const,a==const,a<const,a<=const,a≠const}
本文采用基于樹(shù)自動(dòng)機(jī)導(dǎo)航的方式對(duì)XML數(shù)據(jù)流的進(jìn)行查詢匹配,XML查詢處理過(guò)程中處理的不是XML文檔本身,而是經(jīng)過(guò)解析后的事件流。常用的XML解析模型一有兩種:基于DOM解析和基于SAX解析。SAX解析時(shí)能夠立即進(jìn)行分析,而不是等待所有的數(shù)據(jù)被處理完成,對(duì)于大量、實(shí)時(shí)的XML數(shù)據(jù)流,利用SAX解析是比較合適,因此本文匹配的數(shù)據(jù)為XML的SAX解析事件流。
為了實(shí)現(xiàn)XML數(shù)據(jù)流的導(dǎo)航功能,首先需要構(gòu)建樹(shù)自動(dòng)機(jī),并對(duì)可以合并的XPath片段進(jìn)行共享路徑樹(shù)自動(dòng)機(jī)的構(gòu)建,然后才能在樹(shù)自動(dòng)機(jī)的支持下對(duì)XML數(shù)據(jù)流導(dǎo)航。基于以上分析,相應(yīng)的構(gòu)建和導(dǎo)航算法如下。
算法1:XPath與樹(shù)自動(dòng)機(jī)轉(zhuǎn)換算法TA。
江西茶葉出口企業(yè)應(yīng)該重視品牌的力量,加大品牌宣傳力度。企業(yè)要加強(qiáng)對(duì)品牌理論和實(shí)踐的研究,積極向外國(guó)學(xué)習(xí)創(chuàng)新的品牌營(yíng)銷模式,學(xué)習(xí)國(guó)外品牌發(fā)展的建設(shè)經(jīng)驗(yàn),尤其是值得借鑒跨國(guó)公司成功的經(jīng)驗(yàn)。企業(yè)可以增強(qiáng)與國(guó)內(nèi)其他知名品牌(如黃山毛峰)之間的交流和合作,學(xué)習(xí)借鑒他們的品牌建設(shè)模式,強(qiáng)強(qiáng)聯(lián)合,共同推動(dòng)國(guó)茶走向世界。企業(yè)還可以聘請(qǐng)一些品牌營(yíng)銷和策劃的專家以及相關(guān)方面的人才進(jìn)行品牌的國(guó)際推廣,加強(qiáng)品牌的國(guó)際宣傳,提高國(guó)際市場(chǎng)的知名度。
小心翼翼地沿著走廊尋找,終于找到那扇寫(xiě)著“38”的門。透過(guò)門上的玻璃看去,里面的病床上躺著一個(gè)穿病號(hào)服的少年,他似乎睡著了,臉微微側(cè)向一邊,嘴角還有一團(tuán)顯而易見(jiàn)的瘀青。
Return false;
輸出:樹(shù)自動(dòng)機(jī)T= (Q,F(xiàn),δ,Qf)。
TA (Qn,&Q,&F,&δ,&Qf){
δ=Q=Qf= {},F(xiàn)= {ε};
把Qn第一個(gè)查詢結(jié)點(diǎn)放入集合Qf;
While Length (Qn)>0 {
If存在 字符,屬性,數(shù)據(jù)則加入Q中;
If存在px∈CP,則把相應(yīng)的推導(dǎo)規(guī)則f加入δ中;
統(tǒng)計(jì)學(xué)分析 采用SPSS22.0軟件進(jìn)行統(tǒng)計(jì)學(xué)分析。正態(tài)分布計(jì)量資料以均數(shù) ±標(biāo)準(zhǔn)差 (x±s)表示,組間比較采用成組t檢驗(yàn),組內(nèi)治療前后比較采用配對(duì)t檢驗(yàn)。計(jì)數(shù)資料以率表示,比較采用χ2檢驗(yàn)。以P<0.05為差異有顯著意義。
If存在k個(gè)孩子軸,則把k元函數(shù)f(,…,)加入F中;
If存在 謂詞,則把謂詞存入hash表PQ;
Length(Qn)--;
}
}//endl
該算法實(shí)現(xiàn)是訂購(gòu)表達(dá)式XPath到樹(shù)自動(dòng)機(jī)的轉(zhuǎn)換,該轉(zhuǎn)換是基于XPath是正則表達(dá)式這一事實(shí),通過(guò)轉(zhuǎn)化為等價(jià)的樹(shù)自動(dòng)機(jī)來(lái)實(shí)現(xiàn)的。
3)在加木墊板后,錨桿支護(hù)預(yù)應(yīng)力場(chǎng)壓應(yīng)力區(qū)峰值和壓應(yīng)力擴(kuò)散范圍都出現(xiàn)明顯降低。應(yīng)力峰值降低38%,-0.10、-0.08、-0.02 MPa等各應(yīng)力等值面面積平均降低27%。
給定XPath查詢集QN= {Q1,Q2,…,Qn}進(jìn)行匹配,如果存在可以合并的XPath,則執(zhí)行如下算法。
算法2:共享路徑樹(shù)自動(dòng)機(jī)合并算法XTA。
2)中國(guó)女籃比澳大利亞、日本女籃的2分球投籃命中率、內(nèi)線得分更高,說(shuō)明中國(guó)女籃內(nèi)線實(shí)力較強(qiáng),但是中國(guó)女籃的得分點(diǎn)較少;其他得分技術(shù)指標(biāo)均無(wú)顯著性差異。
輸入:XPath訂購(gòu)表達(dá)式集合QN,
輸出:樹(shù)自動(dòng)機(jī)XTA= (Q,F(xiàn),δ,Qf)。
隨著我國(guó)國(guó)民經(jīng)濟(jì)的不斷發(fā)展,城鄉(xiāng)居民生活水平的不斷提高,自我保健意識(shí)增強(qiáng),進(jìn)而消費(fèi)觀念改變,對(duì)肉品的需求也發(fā)生重大變化,簡(jiǎn)單的藏羊胴體肉已經(jīng)很難滿足人們的需求,加工精細(xì)、精致包裝、營(yíng)養(yǎng)價(jià)值高的高質(zhì)量肉品更受到市場(chǎng)的歡迎。為迎合市場(chǎng)需求,藏羊肉加工企業(yè)已經(jīng)開(kāi)發(fā)出少量迎合市場(chǎng)的精深加工食品,以冷鮮羊肉為代表的深加工產(chǎn)品得到了市場(chǎng)的響應(yīng),各種羊肉熟制品、風(fēng)味小吃市場(chǎng)占有率也逐步上升。
For接收序列Qn的每一個(gè)滿足該狀態(tài)的元素;{
XTA=T1;
Whilen>0{
XTAFilter(S,XTA,&RA){
n--;
}
}//endl
基于樹(shù)自動(dòng)機(jī)導(dǎo)航的XML數(shù)據(jù)流匹配,其輸入數(shù)據(jù)為XML的SAX解析事件流,返回為查詢結(jié)果。匹配過(guò)程可以形式化描述為:在XML數(shù)據(jù)流S之上,對(duì)于給定XPath查詢集QN= {Q1,Q2,…,Qn}進(jìn)行匹配,返回解果集RA。如果最終能到達(dá)接受狀態(tài),則表示該XML匹配某些消費(fèi)者的訂購(gòu)。下面給出樹(shù)自動(dòng)機(jī)導(dǎo)航下XML數(shù)據(jù)流的匹配執(zhí)行。
算法3:基于樹(shù)自動(dòng)機(jī)的XML數(shù)據(jù)流過(guò)濾算法XTAFilter。
輸入:XML數(shù)據(jù)流S、樹(shù)自動(dòng)機(jī)XTA,
輸出:匹配結(jié)果。
If存在px∈CP,XTA=combined(XTA,Tn);
對(duì)于自己,即使別人認(rèn)為我不合時(shí)宜,觀念迂腐,思想落伍,被無(wú)私洗腦等等;別人總勸我要做一個(gè)現(xiàn)代女性,不應(yīng)該再為兒孫輩而放棄自己的生活,應(yīng)該實(shí)現(xiàn)自我價(jià)值……我的心里卻很明白,每個(gè)人的追求不同,不必走和別人一樣的道路。
新建棧T,并在棧頂生成一個(gè)空層;
開(kāi)始解析文檔,持續(xù)解析XML文檔產(chǎn)生事件流;{
If輸入的事件流是元素,該元素壓入棧中;
If輸入的事件流是數(shù)據(jù),把該數(shù)據(jù)壓入棧中;
If當(dāng)前輸入的字符可以在觸發(fā)轉(zhuǎn)化,則從棧中彈出該狀態(tài),并把轉(zhuǎn)換后的狀態(tài)壓入棧中;{
If轉(zhuǎn)換后的狀態(tài)屬于終結(jié)狀態(tài)集,則把該結(jié)果存入結(jié)果集RA;
Else繼續(xù)執(zhí)行;
}
If文檔不為空,或者棧不為空繼續(xù)執(zhí)行;
直到文檔解析完成;
}
}//endl
食醋釀造中需要加入大量的填充料,它的作用在于疏松醋醅、儲(chǔ)存大量空氣和空氣流通。填充料的存在為醋酸菌細(xì)胞的生長(zhǎng)提供了吸附載體,為醋酸菌提供了好氧發(fā)酵的環(huán)境。所以,填充料要求接觸面積大,其纖維質(zhì)具有適當(dāng)?shù)挠捕燃岸栊?。常用的填充料有:谷糠、高粱秸稈、玉米秸稈、玉米芯、多空玻璃纖維等。
謂詞的匹配過(guò)程是基于結(jié)構(gòu)匹配成功的基礎(chǔ)上,通過(guò)查詢謂詞表來(lái)進(jìn)一步的進(jìn)行篩選查詢,如果存在所要的結(jié)果,則返回;否則查詢失敗。本文基于樹(shù)自動(dòng)機(jī)導(dǎo)航,并對(duì)XML數(shù)據(jù)流的謂詞匹配中采用SP方法存儲(chǔ)謂詞信息。SP謂詞匹配法充分利用了查詢內(nèi)部各謂詞之間的相關(guān)性,使用short-cut策略提高謂詞匹配的效率。謂詞查詢算法PQmatch如下。
算法4:基于樹(shù)自動(dòng)機(jī)導(dǎo)航的謂詞匹配算法PQmatch。
輸入:XML數(shù)據(jù)流S、樹(shù)自動(dòng)機(jī)XTA、謂詞表,
輸出:匹配結(jié)果 (true,flase)。
花五奇朝喬十二郎看了一眼,低頭皺眉想著什么,再看一眼,忽然用兵器指著他,尖聲叫道:“花燈節(jié)!孫悟空!李六爺!”話音未落,幾個(gè)縱躍搶到喬十二郎面前,手中利刃兜頭砍下。事出突然,除了喬十二郎和老太醫(yī),其他人根本沒(méi)聽(tīng)懂花五奇說(shuō)的是什么,更不明白他為何向一個(gè)觀戰(zhàn)的孩子痛下殺手。
鳳河支流官溝流經(jīng)東半壁店小流域,是流域內(nèi)主要河流,流域排水一部分通過(guò)農(nóng)田二支渠、三支渠等農(nóng)田灌溉和排澇渠系排入官溝后入鳳河,部分排水直接排入鳳河,部分雨水也排入流域坑塘。
BOOL PQmatch(S,XTA,SP).{
For接收狀態(tài)結(jié)構(gòu)匹配成功;{
宋代的瓷器與玉器都有用于禮儀活動(dòng)、觀賞品鑒和日常使用等方面,宋代瓷器與玉器的發(fā)展,受到整個(gè)宋代社會(huì)的經(jīng)濟(jì)政治和文化思潮的深刻影響,玉文化與瓷文化反過(guò)來(lái)滲透在宋代社會(huì)的方方面面。玉器和瓷器作為宋代社會(huì)中兩種關(guān)乎生活方式又蘊(yùn)含精神屬性的重要器物,呈現(xiàn)出諸多相類似的特質(zhì),甚至達(dá)到一種超越其他朝代的高度契合狀態(tài)。
此外,今年農(nóng)產(chǎn)品產(chǎn)量不高且價(jià)格偏低,導(dǎo)致農(nóng)民收入微薄,即便是種植大戶也是依靠國(guó)家補(bǔ)貼才能勉強(qiáng)維持。而肥料價(jià)格的大幅上漲,勢(shì)必會(huì)影響農(nóng)民購(gòu)買肥料的積極性,這讓原本就不太明朗的冬儲(chǔ)市場(chǎng)雪上加霜。
XTA (QN,&Q,&F,&δ,&Qf){
定義4 ∑為符號(hào)集,元素a∈∑,XPath中的謂詞集合PQ形式化定義如下
接收滿足該狀態(tài)的步驟step number;
If Qn is match{
If按照step number of SP執(zhí)行失敗,退出;
輸入:XPath訂購(gòu)表達(dá)式Qn,
}
If all of Qn is match
Reture true;
}
}
}//endl
XML片段<a><b><c></c></b></a>在XTAFilter導(dǎo)航下,匹配用戶的訂購(gòu)信息,執(zhí)行過(guò)程如圖4所示。
圖4 XML查詢執(zhí)行實(shí)例
在Linux環(huán)境下構(gòu)建了仿真實(shí)驗(yàn)環(huán)境。實(shí)驗(yàn)數(shù)據(jù)采用開(kāi)放平臺(tái)NASA (national aeronautics and space administration)XML Project提供的XML數(shù)據(jù),數(shù)據(jù)量約為23M。在對(duì)數(shù)據(jù)的處理過(guò)程中,采取對(duì)XML數(shù)據(jù)流單邊掃描的方式,特定時(shí)間只處理一個(gè)解析事件。利用XPath生成器獲得不同特性組合的XPath查詢集合1K,2K,5K,10K,15K,20K,訂購(gòu)數(shù)據(jù)的參數(shù)為:XPath層次數(shù)w=6,謂詞族數(shù)l=5,XML數(shù)據(jù)深度h=20。實(shí)驗(yàn)平臺(tái)的配置為HP541(NE808PA)),CPU為Intel酷睿2T5670,主存儲(chǔ)器2GB,操作系統(tǒng)是RHEL4。7-i386。
在仿真實(shí)驗(yàn)中,主要關(guān)注以下性能指標(biāo):
(1)平均事件匹配時(shí)間。當(dāng)XML數(shù)據(jù)流經(jīng)過(guò)時(shí),對(duì)于已有的某個(gè)訂購(gòu)事件,系統(tǒng)需要消耗多長(zhǎng)時(shí)間才可以找到所有匹配成功的消息,它反映了過(guò)濾技術(shù)的時(shí)間效率。
(2)系統(tǒng)運(yùn)行時(shí)的活動(dòng)狀態(tài)。在匹配過(guò)程中,不同的匹配技術(shù)在系統(tǒng)運(yùn)行時(shí)的活動(dòng)狀態(tài)。需要不同的存儲(chǔ)空間,反映了過(guò)濾技術(shù)的空間狀態(tài)。
仿真實(shí)驗(yàn)主要在謂詞和共享XPath方面進(jìn)行分析與比較。為了評(píng)估XML流數(shù)據(jù)的查詢時(shí)間,實(shí)驗(yàn)中每個(gè)算法皆執(zhí)行30次,并將查詢時(shí)間取平均值計(jì)算。圖5和圖6記錄了試驗(yàn)的結(jié)果。
圖5顯示了XTAFilter技術(shù)及XEBT (XPath evaluation based on tree automata)技術(shù)在相同條件下匹配時(shí)間復(fù)雜度方面的比較。在試驗(yàn)中,XTAFilter技術(shù)集合了共享XPath路徑和樹(shù)自動(dòng)機(jī)的優(yōu)點(diǎn),XML數(shù)據(jù)流查詢的時(shí)間效率總體上明顯比XEBT有一定的提高。這是因此XTAFilter技術(shù)采用合并相同訂購(gòu)路徑表達(dá)式進(jìn)行樹(shù)自動(dòng)機(jī)重構(gòu)并對(duì)謂詞采用hash表進(jìn)行存儲(chǔ),減少了重復(fù)匹配和不必要的匹配,提高了查詢效率。圖6顯示了XTAFilter及XEBT技術(shù)在相同條件下匹配空間復(fù)雜度方面的比較。在實(shí)驗(yàn)中,XTAFilter技術(shù)優(yōu)于XEBT,這是因?yàn)閄TAFilter技術(shù)采用共享XPath片段構(gòu)建樹(shù)自動(dòng)機(jī),比單純的依靠樹(shù)模式構(gòu)建樹(shù)自動(dòng)機(jī)在空間狀態(tài)上有所的提高。這是因?yàn)閄TAFilter技術(shù)通過(guò)對(duì)可以合并的XPath片段進(jìn)行重構(gòu),減少運(yùn)行時(shí)的活動(dòng)狀態(tài),系統(tǒng)在運(yùn)行時(shí)占用空間更少。
綜上所述,XTAFilter技術(shù)在查詢效率上比XEBT機(jī)有明顯的提高,系統(tǒng)在運(yùn)行時(shí)的活動(dòng)狀態(tài)也有明顯的減少,因此XTAFilter技術(shù)在一定程度上提高了XML數(shù)據(jù)流處理性能。
XML在多種領(lǐng)域中已得到廣泛的應(yīng)用。由于XML是一種半結(jié)構(gòu)化數(shù)據(jù),對(duì)其進(jìn)行有效管理在技術(shù)上帶來(lái)了新的挑戰(zhàn)。對(duì)XML數(shù)據(jù)管理的研究既是一個(gè)重要課題,又是一項(xiàng)具有廣泛應(yīng)用前景的技術(shù)。本文根據(jù)樹(shù)自動(dòng)機(jī)查詢遍歷的特點(diǎn),針對(duì)用戶多個(gè)訂購(gòu)表達(dá)式中存在相同的XPath部分的特征,對(duì)查詢中可以合并的XPath片段進(jìn)行合并。減少了重復(fù)查詢的次數(shù),提高了查詢效率。下一步的工作將對(duì)XML查詢中路由協(xié)議,XML查詢的安全性等問(wèn)題進(jìn)行研究。
[1]GAO Jun,YANG Dongqing,TANG Shiwei,et al.Tree automata based efficient XPath evaluation over XML data stream[J].Journal of Software,2005,16 (2):223-232 (in Chinese).[高軍,楊冬青,唐世渭,等.基于樹(shù)自動(dòng)機(jī)的XPath在XML數(shù)據(jù)流上的高效執(zhí)行 [J].軟件學(xué)報(bào),2005,16(2):223-232.]
[2]GOU Gang,Chirkova Rada.Efficient algorithms for evaluating XPath over streams[C].Beijing:International Conference on Management of Data,2007:269-280.
[3]XIN Yefei,HE Zhen,CAO Jinli.Effective pruning for XML structural match queries [J].Data & Knowledge Engineering,2010,69 (6):640-659.
[4]ZHANG Xiaolin,LI Honghui,HAN jianfeng.Research on recursive query over XML data stream based on pushdown automation [J].Computer Engineering & Design,2010,31 (4):763-766(in Chinese).[張曉琳,李宏輝,韓劍鋒.基于下推自動(dòng)機(jī)的XML數(shù)據(jù)流遞歸查詢研究 [J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31 (4):763-766.]
[5]Chien Pingchou,Kuen Fangjea,Heng Hsunliao.A syntactic approach to twig-query matching on XML streams [J].Journal of Systems and Software,2011,84 (6):993-1007.
[6]Sayyed Kamyar Izadi,Theo Harder,Mostafa S.S3:evaluation of tree-pattern XML queries supported by structural summaries[J].Data & Knowledge Engineering,2009,68 (1):126-145.
[7]LEE Hyunho,LEE Wonsuk.Selectivity-sensitive shared evaluation of multiple continuous XPath queries over XML streams [J].Information Sciences,2009,179 (12):1984-2001.
[8]Maged E Sayed,Katica Dimitrova,Elke A Rundensteiner.Efficiently supporting order in XML query processing [J].Data & Knowledge Engineering,2005,54 (3):355-390.
[9]CHEN Qun,Andrew Lim,Kian Win Ong,et al.Indexing XML documents for XPath query processing in external memory[J].Data & Knowledge Engineering,2006,59 (3):681-699.
[10]CHEN Zhiyuan,Gehrke Johannes,F(xiàn)lip Korn,et al.Index structures for matching XML twigs using relational query processors [J].Data & Knowledge Engineering,2007,60(2):283-302.
[11]MIN Junki,LEE Jihyun,CHUNG Chinwan.An efficient XML encoding and labeling method for query processing and updating on dynamic XML data [J].Journal of Systems and Software,2009,82 (3):503-515.
[12]MIN Junki,Park Myung Jae,CHUNG Chinwan.XTREAM:An efficient multi-query evaluation on streaming XML data information sciences[J].Information Sciences,2007,177 (17):3519-3538.
[13]MIN Junki,CHUNG Chinwan,Kyuseok Shim.An adaptive path index for XML data using the query workload [J].Information Systems,2005,30 (6):467-487.
[14]GU Jinguang,XU Baowen,CHEN Xinmeng.An XML query rewriting mechanism with multiple ontologies integration based on complex semantic mapping[J].Information Fusion,2008,10 (9):512-522.
[15]Prakash Ramanan.Worst-case optimal algorithm for XPath evaluation over XML streams [J].Journal of Computer and System Sciences,2009,75 (8):465-485.