具有智能提示功能的圖形化xml內容和結構查詢系統的製作方法
2023-05-04 05:48:01 3
專利名稱:具有智能提示功能的圖形化xml內容和結構查詢系統的製作方法
技術領域:
本發明涉及信息檢索或數據查詢等應用領域中XML查詢的應用,尤其是當用戶不 了解要查詢的XML文檔的內容,結構,模式等信息的情況下的圖形化XML小枝查詢技術。
背景技術:
已有的XML資料庫允許用戶提交一個XPath或者XQuery來查詢相關的結果。這種 信息查詢模式需要用戶對XML資料庫的結構和內容比較了解,而且要對查詢語言很熟悉。 如果一個用戶對XML 了解很少,則在寫查詢時他經常會感到困惑,所以他不得不去學習復 雜的DTD或者XML模式從而來了解XML文檔的結構。
為了解決這些問題,學者們已經設計了多種系統旨在簡化用戶的查詢過程。已有 的圖形化XML查詢系統大致可以分為兩類(i)開發圖形化系統支持傳統的XQuery語言, 例如XQE,這些系統提供友好的接口來輸入XQuery表達式並且作了大量的工作來優化查詢 計劃。(ii)開發圖形化查詢語言來把查詢轉化為SQL或者SQL/XML,例如GLASS,XML-GL, 這些系統提供新的圖形化語言來查詢XML文檔。但是上述這些系統依然要求用戶對XML文 檔的結構和內容的知識,但是這對於普通用戶而言是很困難的,而且隨著XML文檔越來越 複雜,越來越大,要在查詢前事先對文檔進行了解是很不合理,很不科學的。而且不利於推發明內容
為了克服已有XML圖形化查詢系統要求用戶必須對XML文檔的結構或者內容了解 的不足,本發明開發新穎的圖形化界面來提供XML小枝查詢下的智能提示功能,以此來智 能引導用戶完成查詢條件的創建,並用新的排序公式來對結果進行排序,最後用圖形化界 面來直觀展示結果。
本發明首先利用JavMcript+jsp設計了支持圖形化方式創建小枝模式的系統。 該步驟A的主要實現步驟包括:A1、實現通過拖拽產生結點。A2、根據B和C返回的列表來 確定結點。A3、通過為結點加邊來完成小枝模式的創建。A4、通過增加順序標誌來實現帶順 序的查詢。
其次,本發明提出了智能提示算法來返回標籤名稱列表。該步驟B主要實現步驟 包括B1、把正在創建的結點的X,Y坐標通過AJAX發送給伺服器。Β2、通過智能提示算法返 回目前可行的標籤名稱。Β3、為這些標籤名稱構建tag-trie。
接著,本發明提出了結點值提示方案。該步驟C主要包括C1、通過AJAX把n0de_ name中的值發給伺服器。C2、通過預處理時的統計信息來來判斷該結點下的值的類型為 數值型還是字符串型,並根據不同類型返回相應的輸入框。C3、根據索引找到屬於該標籤名 的值,並抽取具有代表性的幾個來構建value-trie。C4、通過AJAX把用戶在node-value中 輸入字符發給伺服器,伺服器會調整抽取的值來構建新的value-trie。
進一步,本發明設計了新的結果排序公式。該步驟D主要包括D1、設計考慮內容5的排序公式Sv。D2、設計考慮結構的結果排序公式&。D3、設計公Skore把Sv和&結合 起來對結果進行排序。
最後,本發明利用Jav必cript+jsp設計了結果展示和打分系統。該步驟E包括 E1、求得結果中各個元素的坐標。E2、用Jav必cript在這些坐標點上相應的圖形來表示相 應的元素。E3、用JavMcript為各個元素連接相應的邊。E4、用JavMcript繪製相應長度 的進度條來表示公式score的值。
本發明的有益效果是,提供高效的智能提示功能來改進傳統的圖形化XML搜索系 統必須要求用戶事先對要搜索的XML文檔的結構和內容了解的不足,使得用戶(即使是對 文檔一無所知的初級用戶)能方便地創建有意義的小枝查詢。而且本發明設計了新穎的圖 形化創建小枝模式的界面。本發明還提出了新的排序公式綜合考慮了內容和結構信息,很 好地對結果進行排序,並能通過圖形化的方式直觀地展示搜索結果給用戶。
圖1 :XML文檔轉化為一棵有序樹。
圖2 —個小枝模式在XML文檔中執行的結果。
圖 3 由{b, abc, abd, bed, abed, efg, hii}這六個詞構成的 Trie 樹的結構。
圖4 有無順序限制時智能提示的不同。
圖5 查詢帶順序要求的航班信息時的小枝模式。
圖6:系統結構圖
圖7 是否在一個結點的影響範圍內對潛在結點名稱的影響
圖8 新結點落在多個結點的範圍內時可行結點名稱必須保證是其他所有結點的 後代。
圖9 父親結點是否有順序要求時可行結點名列表的不同。
圖10 能自動考慮結點在小枝中的位置以及結點間的關係並為結點返回智能提 示的算法。
具體實施方式
為了更全面地理解本發明及其優點,下面結合附圖及具體實施過程對本發明做進 一步詳細地說明。
一.為了便於清楚理解期間,首先對以下幾個定義進行簡單地介紹。
XML文檔XML文檔由各種用戶自定義的標籤有結構有順序地組成,可以轉化為一 棵帶根結點的有序樹。圖1是XML文檔轉化為有序樹的例子。
XQuery語言是另外一種XML查詢語言,XQuery相對於XML的關係,等同於SQL相 對於資料庫表的關係。XQuery使用函數來提取XML文檔中的數據。XQuery還定義了 FLWOR 結構來進行規範查詢,其中FLW0R是〃 For, Let, Where, Order by, Return"的首字母縮 寫。下面是一個XQuery表達式
權利要求
1.具有智能提示功能的圖形化XML數據的查詢技術,具體的步驟包括A、開發一個圖形化創建小枝模式的操作界面。B、設計智能提示算法,能根據小枝中結點的不同位置來自動反饋當前該結點可行的標 籤名稱,並設計tag-trie來支持前綴搜索。C、設計能自動識別結點類型並且動態構建value-trie來支持對大量結點值的前綴搜索。D、設計新的既考慮結構又考慮內容的排序公式E、開發能以樹形方式展示結果,並對查詢結果進行打分界面。
2.根據權利請求1中的步驟A,其具體步驟包括如下內容步驟Al 實現拖拽圓(系統中給定的,並且支持多次拖拽)到任意的地方來產生結點, 在拖拽後的結點的右下角出現兩個輸入框標籤名稱(必填)和結點值(可選)。步驟A2 根據權利申請1中B和C的方法分別完成對這兩個輸入框的信息提交,結點 則創建成功。步驟A3 選定兩個結點,並且確定要連接的邊的類型,然後進行連線。連線後一棵小枝 創建成功。步驟A4 如果要對某個結點增加順序要求,則選中那個結點,點擊增加順序按鈕。
3.根據權利請求2,其中步驟Al進一步闡述為步驟Al-I 事先在系統中放置N個ID不同的圓(c_i,i表示第i個圓),其中1個可 見N-I個不可見,每個圓都有一個變量flag來控制它是否可以被拖拽。N個ID不同的不 可見的層(1」,i表示第i個層),每個層中包含四個輸入框,兩個可見的用於輸入標籤名 (node_name)和結點值(nodejalue),兩個不可見的用於記錄提交信息時對應結點的X,Y 坐標(xpos和ypos);還需放置三個不可見的輸入框,一個用於記錄當前的小枝情況(twig_ current),另一個用於記錄哪個結點被標誌了順序(node^rder),最後一個記錄所有結點 信息串(nodejnessage),格式為[結點名,結點值,X坐標,Y坐標];步驟A1-2 利用JavMcript實現當對第一個圓進行拖拽時,原來不可見的第二個圓變 得可見,以此類推;步驟A1-3 利用JavMcript實現當第一個圓被拖拽到一個地方後,第一個層變得可 見,並出現在該結點的右下角,並把該結點的X,Y坐標記錄到xpos和ypos中。
4.根據權利請求2,其中步驟A2進一步過程為步驟A2-1 當用戶把滑鼠定位到標籤名稱的輸入框時,JavMcript調用AJAX發送請 求,把當前結點的xpos和ypos發送到伺服器,然後根據權利申請1中的步驟B在輸入框旁 邊出現了一個存放目前可行的標籤名稱列表。步驟A2-2 用戶選擇列表中的任意一個,則n0de_name輸入框中的值也跟著變化。如 果用戶通過鍵盤直接在nodmame輸入框中輸入字符,則用戶每輸入一個字符就觸發一次 AJAX請求的發送,則根據權利申請1中的步驟B返回一個前綴與用戶輸入信息相同的,並且 在目前位置下是可行的標籤名稱列表,並更新nodejnessage的值。步驟A2-3 當用戶選定一個結點名稱後並把滑鼠定位到node^alue輸入框中時,觸發 一次AJAX請求,則根據權利申請1中的步驟C反饋該標籤名稱下的所有值中具有代表性的 幾個,當用戶在node^alue中輸入字符時,用戶每輸入一個字符就觸發一次AJAX請求的發送,由於值的個數一般都很多,所以根據權利申請1中的步驟C返回一些前綴與用戶輸入信 息相同的並具有代表性的值,並更新nodejiiessage的值。
5.根據權利請求2,其中步驟A3進一步過程為步驟A3-1 利用JavMcript實現平面上任意兩點間的連線,定義drawPC(xl, yl, x2, y2)方法來對點(xl, yl)和(x2, y2)連接一條紅線,表示Parent-Child關係; drawAD(xl, yl, x2, y2)方法來對點(xl,yl)和(x2,y2)連接兩條平行的綠線,表示 Ancestor-Descendant 關係。步驟A3-2 利用JavMcript從nodejiiessage中獲取已經創建好的結點名稱和當選定 要連線的兩個結點對應的X,Y坐標。步驟A3-3 當選擇要連接Parent-Child邊時,系統會調用drawPC方法來加邊。當選 擇Ancestor-Descendant時,則調用drawAD方法來加邊。每次為兩個結點加邊的操作實際 上就是創建小枝(Twig)的操作,因此要更新twig_current的值。
6.根據權利請求2,其中步驟A4進一步過程為步驟A4-1 利用JavMcript實現markOrder (x,y)方法在任意一點增加順序標記。 步驟A4-2 利用Javakript從nodejiiessage中獲取要增加順序要求的結點對應的X, Y坐標,然後調用markOrder來增加「〈」標記到相應的結點上。步驟A4-3 設置n0de_0rder的值為被被標記了順序的結點,並更新twig_current的值。
7.根據權利請求1,其中步驟B進一步過程為步驟Bl 當用戶把滑鼠定位到node_name輸入框中時,AJAX會把xpos和ypos中的值 發給伺服器。步驟B2 伺服器根據傳來的值調用智能提示算法,把所有可行的結果反饋出來,並構 建tag-trie來支持用戶的前綴搜索。
8.根據權利請求1中的步驟C,其具體步驟包括如下內容步驟Cl 當用戶把滑鼠定位到nodejalue輸入框中時,AJAX會把nodejame中的值發 給伺服器。步驟C2 伺服器根據傳來的節點名稱在預處理XML文檔時記錄下的統計信息中找該結 點下的值的類型。如果為數值型,則返回一個具有描述大於,小於,等於以及「and」與「or」 操作的下拉框組;如果為字符串型則返回一個輸入框即可。步驟C3:當判斷出結點值的類型為字符串時,就要選擇結點值中具有代表性的一些進 行構建value-trie來支持前綴搜索。步驟C4 當用戶在node-value中輸入字符時,之前的value-trie返回的結果個數如 果少於5個或者不存在以這些字符為前綴的值時,會刪除該value-trie,繼續根據索引尋 找符合前綴要求的值,並選擇這些值中的少數有代表性的,再構建新的value-trie來提供 前綴搜索。直到用戶在列表中找到自己想要的值為止。
9.根據權利請求1,其中步驟D的進一步過程為 步驟Dl 提出公式Sv來對結果按照內容進行排序 步驟D2 提出公式&來對結果按照結構進行排序步驟D3 提出公式kore綜合考慮Sv和&來對結果進行排序。
10.根據權利請求9,其中步驟Dl的進一步過程為
11.根據權利請求9,其中步驟D2的進一步過程為
12.根據權利請求9,其中步驟D3的進一步過程為 score (r, q) = α Sv (r)+ (I-α )ST(r, q)其中α是一個在介於0,1之間的係數,而且Sv和&分別表示值和結構因素。
13.根據權利請求1,其中步驟E的進一步過程為步驟El 查詢結果返回的是XML小文檔,用jsp來計算文檔中結點,結點值,屬性等賦 予能構成樹形式的坐標(即根結點的y坐標最小,葉子結點的y坐標最大,χ坐標的分配按 照各層的結點個數多少來動態改變)。步驟E2 用JavMcript在這些坐標點上繪製相應的圓(表示結點),方形(表示結點 值)或者菱形(表示屬性)。步驟E3 用JavMcript實現類似權利申請5步驟A3-1中的drawPC那樣的畫線功能, 這裡要實現三種邊結點與結點,結點與值,結點與屬性。步驟E4 根據步驟El的求得的坐標,以及識別每個坐標對應的元素來來相應的線條。 步驟E5 根據權利申請8步驟D3中求出的score的值,為每個結果繪製出一個以該值 為寬度的有背景色的層,並繪製一個寬度為100的,無背景色但是有邊框顏色的層放在後 面。這樣就能直觀地表示出各個結果的分數。
全文摘要
本發明屬於信息技術領域關於智能化的XML數據查詢技術,具體的是在提出新的XML圖形化查詢方法的基礎上設計了一套具有智能提示功能的XML查詢系統。該系統提供在一個圖形化創建查詢的界面上,針對標籤名稱和結點值提供了智能提示功能來引導用戶創建查詢。從而使用戶在不了解XML模式、內容、結構甚至不會寫XQuery等查詢語言的情況下也能進行XML搜索。系統定義了一個綜合考慮查詢結果的排序機制,並把對每個結果進行打分後用樹的形式展示給用戶1,開發支持圖形化拖拽方式創建XML查詢語句的界面;2,設計智能提示算法;3,設計對查詢結果根據結構和內容信息排序的機制;4,開發為結果打分並以樹的顯示展示結果的界面。
文檔編號G06F17/30GK102033956SQ201010606470
公開日2011年4月27日 申請日期2010年12月27日 優先權日2010年12月27日
發明者林春彬, 陸嘉恆 申請人:陸嘉恆