張碩 石成
摘 要:本系統主要是實現了一種找尋近似結果的方式,它是一種使用基于代價的查詢轉換的樹型查詢方法,通過調節轉化的代價,能適應不同類型的XML文檔。
關鍵詞:MSXML;DOM;XML;近似檢索
前言
今天,XML語言的使用已經覆蓋了各行各業,其內容的龐大和結構的復雜使用戶不能輕易的全面掌握整個文檔。了解到XML文檔的異構性和復雜性,發現現有的XML文檔檢索系統已不能夠滿足用戶需求,急需更進步更人性化的文檔檢索系統。本系統就是在XML文檔精確檢索的基礎上發展起來的近似檢索系統,通過引入XML文檔,實現查詢條件的模糊查找,為用戶提供相似度最大的查詢結果。
1 系統簡介
本系統避免了一般XML文檔檢索系統給用戶造成的使用上的困難性,形成了方便實用,為用戶提供最大便捷性的文檔近似檢索系統。它采用VC++開發工具,設計了方便快捷的用戶使用界面,用戶使用用戶名和密碼登錄本系統,可以對本系統進行各項操作。系統具有友好的使用界面,能夠讓用戶引入用戶希望查詢的XML文檔,為了減輕用戶的使用負擔,不需要用戶對整個XML文檔了解,只需要清楚要查詢的那部分結構信息,在查詢命令輸入界面內輸入查詢命令。為了能夠實現近似的檢索,需要用戶輸入相應節點的插入,刪除,更名代價值。這樣,將用戶輸入的查詢表達式進行適當的插入節點或刪除節點或將節點更名等轉化后,變為與引入的XML文檔內的某一段內容相符。通過不同的轉換,能夠得到不同的結果,將最小代價和也就是系統認為最相近的查詢結果返回給用戶。這樣實現了文檔的近似檢索。
關于XML文檔的近似性,其主旨是如果沒有精確匹配文件被找出, 根據他們的相似性應當將其查詢的最相似結果應該找出.
關于用戶輸入的查詢命令,例如:\cd[title["piano" and "concerto"] and composer["rachmaninov"]],在設計時,將屬性名和屬性值同樣對待,作為元素節點。將其與用戶添加的XML文本進行對照,找到相似的那部分。如圖1所示。
圖1 嵌入樹模型
在轉化的過程中,有時候不可能正好一一對照。有可能多一個節點,少一個節點或者有一個節點的名稱不相符。這就要求系統能對不相符的節點進行近似轉化。如圖2所示。
添加節點、刪除節點、更名節點對系統來說是有代價大小的,不同的節點的代價值也是不相同的。例如:將cd轉化為dvd這就是針對cd節點的更名,用戶需要輸入相對節點的代價值。如果設計這種代價很小,那么對于系統來說將其更名是非常容易的,更名后的轉化結果與原文件的相似度是最大的。相反,如果設置這個代價值為無限大,那么就是告訴系統這個節點不能被更名。同樣對于節點的添加、刪除有一樣的意義。用戶將自定義節點及對應的代價值,系統把輸入的這些數據系統進行后臺計算。系統設定所有沒有在表中列出的刪除和更名代價都是無限大,所有更名的插入代價都是1。如表1所示。
表1 代價輸入表
2 系統功能
2.1 系統提供了新建工程、打開工程和保存工程的功能。用戶在第一次使用此系統時,需要新建工程;對XML文件檢索完畢后如果用戶想要在以后查詢此次檢索結果,可以將此次的檢索工程進行保存,需要輸入保存工程的工程名;在今后需要調用以前保存過的工程時,要打開用戶所需的工程。
2.2 系統提供了對XML的管理功能。用戶可以通過系統對需要檢索的XML文件進行添加或刪除操作,并且提供了友好的文本顯示界面,對添加的XML文件系統會自動對其進行遍歷以文本形式將每個節點顯示給用戶,其方便簡潔性供用戶可以很快對新添加的XML文件有一個整體的了解。
2.3 為了實現用戶的近似查詢,系統除了提供查詢語句輸入功能外還提供了節點的代價值輸入功能。實現近似查詢關鍵在代價值的定義,通過用戶定義不同節點的插入代價、刪除代價或更名代價,能夠將用戶輸入的查詢語句進行有代價的轉化,適當的轉化能夠使原輸入語句變為與引入XML文檔中的一部分內容相符的結果,這就實現了用戶的近似查詢。不需要用戶非要清楚的記住精確的路徑表達式,也能夠通過不同節點的轉化達到成功查詢的目的。
2.4 隨著用戶的要求不斷增多,系統提供了功能的擴展,可以及時將用戶的要求加進系統中。其雖然增加了新的功能,但并不影響系統原有的功能。系統將每一個功能做成一個功能模塊,新增加的功能變成了新的功能模塊,各個功能模塊之間由主框架進行連接,使系統具有良好的擴展性。
2.5 由于本系統能夠直接對數據庫進行添加修改操作,不良的操作可能對數據庫造成不良的后果。因此,需要對用戶進行身份驗證,只有獲得用戶名和密碼的用戶才能夠對系統進行操作。沒有輸入正確的用戶名和密碼的用戶將無權使用本系統,系統將自動關閉。另外,由于在編寫程序的時候,各個功能被做成了對應的功能模塊,各個功能模塊之間沒有直接的關聯關系,一個功能模塊出了問題,不會影響其它的功能模塊。每個功能模塊提供了容錯能力,避免了因為錯誤操作造成系統或服務的不正常運行。
3 結束語
本系統可以在Windows XP操作系統以上環境中運行,通過用多類不同行業定義的XML文檔結構進行測試,能夠快速將用戶輸入節點的代價和檢索命令進行轉化形成五元組,系統再將五元組進行轉化與用戶引入的XML文檔進行比較,得到最相近的一段XML文本,在顯示對話框中顯示出來,實現XML文檔近似檢索的設計目的,為用戶的快速查找提供了方便性與時效性。
參考文獻
[1]余宏,萬常選.面向XML的語義近似檢索模型[J].情報,2007(10).
[2]張曉琳.面向對象的XML數據管理技術研究[D].東北大學,2006.