本發(fā)明涉及一種基于Voronoi樹圖的信息檢索可視化系統(tǒng)及方法。
背景技術(shù):
在人機交互領(lǐng)域中,信息檢索的可視化界面設(shè)計是一個快速發(fā)展的新興方向。已有的可視化方法包括樹、網(wǎng)絡(luò)、散點圖和圖等。其中樹是用于將復(fù)雜的數(shù)據(jù)層次化并提供全局和局部的數(shù)據(jù)視圖。其中樹分為表、節(jié)點鏈接圖和樹圖,而樹圖又包含矩形樹圖和Voronoi樹圖等。相比矩陣樹圖,Voronoi樹圖具有更好的縱橫比與層次化體現(xiàn),常被用于層次數(shù)據(jù)的可視化展示。
圖形化檢索作為代替文本檢索的主流方法允許用戶直接操作查詢和搜索的過程。現(xiàn)有的Venn圖、filter flow和InfoCrystal都能將查詢和結(jié)果可視化。目前,傳統(tǒng)的可視化工具主要適用于簡單查詢,對于復(fù)雜的多屬性布爾查詢式則很難生效。因此,研究支持復(fù)雜的多屬性的層次型數(shù)據(jù)的可視化檢索工具成為一個難點。
如何尋求可視化界面的結(jié)構(gòu),以及如何在其之上進行復(fù)雜多屬性的查詢操作,成了一個亟需解決的問題。
技術(shù)實現(xiàn)要素:
本發(fā)明為了解決上述問題,提出了一種基于Voronoi樹圖的信息檢索可視化系統(tǒng)及方法,該發(fā)明基于Voronoi樹圖的結(jié)合選擇路徑樹和多層次的屬性樹來檢索復(fù)雜數(shù)據(jù),將由數(shù)據(jù)提取出的屬性樹生成Voronoi樹圖,在每個非葉節(jié)點添加一個子節(jié)點代表其本身,生成新型Voronoi樹圖。初始化結(jié)束后提供兩個窗口,一個是Voronoi樹圖,用戶通過對布爾運算符和屬性的選擇,生成選擇路徑樹。另一個顯示查詢的結(jié)果,通過選擇路徑樹,實時轉(zhuǎn)化為布爾表達式,并返回位于數(shù)據(jù)庫中的符合條件的數(shù)據(jù)列表。
為了實現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:
一種基于Voronoi樹圖的信息檢索可視化系統(tǒng),包括Voronoi圖生成模塊、查詢模塊和顯示模塊,其中:
所述Voronoi圖生成模塊,根據(jù)給定的數(shù)據(jù)集,提取公共屬性,將各個屬性作為根節(jié)點構(gòu)建多顆樹,對于有子屬性的節(jié)點,添加子節(jié)點,并添加輔助子節(jié)點位于其Voronoi單元重心處代表其本身,生成Voronoi樹圖;
所述查詢模塊,依次顯示Voronoi樹圖的每一層Voronoi區(qū)域,選擇布爾運算符和屬性,生成新的的Voronoi區(qū)域,以顯示其子節(jié)點的Voronoi區(qū)域,不斷更新選擇路徑樹,生成代表布爾運算表達式的選擇路徑樹;
所述顯示模塊,遍歷選擇的路徑樹,得到布爾表達式,將其轉(zhuǎn)換為相應(yīng)的數(shù)據(jù)庫查詢語言,在數(shù)據(jù)庫中查詢并返回顯示符合條件的數(shù)據(jù)列表。
一種基于Voronoi樹圖的信息檢索可視化方法,包括以下步驟:
(1)根據(jù)給定的數(shù)據(jù)集,提取公共屬性,將各個屬性作為根節(jié)點構(gòu)建多顆樹,對于有子屬性的節(jié)點,添加子節(jié)點,并添加輔助子節(jié)點位于其Voronoi單元重心處代表其本身,生成Voronoi樹圖;
(2)依次顯示Voronoi樹圖的每一層Voronoi區(qū)域,選擇布爾運算符和屬性,生成新的的Voronoi區(qū)域,以顯示其子節(jié)點的Voronoi區(qū)域,不斷更新選擇路徑樹,生成代表布爾運算表達式的選擇路徑樹;
(3)遍歷選擇的路徑樹,得到布爾表達式,將其轉(zhuǎn)換為相應(yīng)的數(shù)據(jù)庫查詢語言,在數(shù)據(jù)庫中查詢并返回顯示符合條件的數(shù)據(jù)列表。
所述步驟(1)中,對于給定的數(shù)據(jù)集,提取其公共屬性,并將各個屬性作為根節(jié)點構(gòu)建多顆樹,對于每棵樹的每個節(jié)點,若其有子屬性,將其添加至該屬性的子節(jié)點,不斷重復(fù)添加,直至所有節(jié)點不再有未添加的子屬性。
所述步驟(1)中,對于給定屬性樹的節(jié)點,若其已有子節(jié)點,添加一個輔助子節(jié)點節(jié)點位于其Voronoi單元重心處代表其本身,不斷重復(fù),直至所有非葉節(jié)點都已添加過輔助節(jié)點。
所述步驟(1)中,將構(gòu)建的屬性樹作為Voronoi樹圖的結(jié)構(gòu)樹,運行Voronoi樹圖算法,生成Voronoi樹圖。
所述步驟(2)中,具體步驟包括:
(2.1)僅顯示Voronoi樹圖的第一層Voronoi區(qū)域;
(2.2)對于顯示的每一層,先選擇布爾運算符,再選擇屬性;
(2.3)點擊新的Voronoi區(qū)域,以顯示其子節(jié)點的Voronoi區(qū)域;
(2.4)重復(fù)步驟(2.2)和(2.3),對于每一次選擇,更新選擇路徑樹。
所述步驟(2.2)中,依照用戶需求,指定本層的布爾運算符。再依次選擇需要的屬性。
所述步驟(2.3)中,選擇某一Voronoi區(qū)域,若其為非葉節(jié)點,本層的其他站點均按比例遠離該區(qū)域的站點,使該Voronoi區(qū)域面積達到其父節(jié)點面積的40%以上,在擴大后的Voronoi區(qū)域,顯示其子節(jié)點的Voronoi區(qū)域。
所述步驟(2.4)中,對于每次輔助節(jié)點運算符的選擇,若其父節(jié)點不為根節(jié)點,用一條弧連接該節(jié)點和其父節(jié)點,對于每次運算符后的屬性選擇,用一條弧連接輔助節(jié)點和被選擇的屬性所代表的節(jié)點,生成一顆代表布爾運算表達式的選擇路徑樹。
本發(fā)明的有益效果為:
(1)本發(fā)明提出了支持復(fù)雜的多屬性的層次型數(shù)據(jù)的可視化檢索的解決方案;
(2)本發(fā)明可支持同層次屬性多選,跨層次屬性多選來查詢數(shù)據(jù),加強普適性;
(3)本發(fā)明保證了界面空間的利用率,優(yōu)化了選擇的操作次數(shù)。所提出的路徑樹既可視化了數(shù)據(jù)選擇的過程,也可作為層次信息的結(jié)果作為展示。
附圖說明
圖1(a)為Voronoi樹圖選擇過程圖;
圖1(b)為查詢結(jié)果顯示過程圖;
圖2為本發(fā)明流程框架的示意圖;
圖3歷史文物的分類樹示意圖;
圖4(a)(b)(c)(d)傳統(tǒng)Voronoi樹圖與新型Voronoi樹圖;
圖5(a)(b)(c)為選擇過程示意圖。
具體實施方式:
下面結(jié)合附圖與實施例對本發(fā)明作進一步說明。
基于Voronoi樹圖的檢索可視化方法,包括以下步驟:
(1)生成新型Voronoi樹圖。
(2)新型Voronoi樹圖上操作,得到實時的選擇路徑樹。
(3)根據(jù)選擇路徑樹,顯示查詢數(shù)據(jù)結(jié)果。
所述步驟(1)包含如下步驟:
(1.1)對于給定數(shù)據(jù)集,得到其屬性樹。
(1.2)對于屬性樹,添加輔助節(jié)點,生成新型屬性樹。
(1.3)根據(jù)新型屬性樹,得到新型Voronoi樹圖。
所述步驟(1.1)包含如下步驟:
(1.1.1)對于給定的數(shù)據(jù)集,提取其公共屬性,并將各個屬性作為根節(jié)點構(gòu)建多顆樹。
(1.1.2)對于每棵樹的每個節(jié)點,若其有子屬性,將其添加至該屬性的子節(jié)點。
(1.1.3)重復(fù)(1.1.2)直至所有節(jié)點不再有未添加的子屬性
所述步驟(1.2)包含如下步驟:
(1.2.1)對于給定屬性樹的節(jié)點,若其已有子節(jié)點,添加一個輔助子節(jié)點位于其Voronoi單元重心處代表其本身。
(1.2.2)重復(fù)(1.2.1)直至所有非葉節(jié)點都已添加過輔助節(jié)點。
所述步驟(1.3)包含如下步驟:
(1.3.1)將新型屬性樹作為Voronoi樹圖的結(jié)構(gòu)樹。
(1.3.2)運行Voronoi樹圖算法,生成新型Voronoi樹圖。
所述步驟(2)包含如下步驟:
(2.1)僅顯示Voronoi樹圖的第一層Voronoi區(qū)域。
(2.2)對于顯示的每一層,先選擇布爾運算符,再選擇屬性。
(2.3)點擊新的Voronoi區(qū)域,以顯示其子節(jié)點的Voronoi區(qū)域。
(2.4)重復(fù)(2.2)和(2.3),對于每一次選擇,更新選擇路徑樹。
所述步驟(2.2)包含如下步驟:
(2.2.1)每一層的輔助節(jié)點,進行相應(yīng)的布爾運算符(“∩”,“∪”,“-”)或刪除操作。選擇任意一個布爾運算符,即選擇了本層的布爾運算符。進行刪除操作,即刪除了從本節(jié)點下的所有子節(jié)點的選擇和布爾運算符的選擇。
所述步驟(2.3)包含如下步驟:
(2.3.1)單擊某一Voronoi區(qū)域,若其為非葉節(jié)點,本層的其他站點均按比例遠離該區(qū)域的站點,使該Voronoi區(qū)域足夠大。
(2.3.2)在擴大后的Voronoi區(qū)域,顯示其子節(jié)點的Voronoi區(qū)域。
所述步驟(2.4)包含如下步驟:
(2.4.1)對于每次輔助節(jié)點運算符的選擇,若其父節(jié)點不為根節(jié)點,用一條弧連接該節(jié)點和其父節(jié)點。
(2.4.2)對于每次運算符后的屬性選擇,用一條弧連接輔助節(jié)點和被選擇的屬性所代表的節(jié)點。
(2.4.3)由此,生成一顆代表布爾運算表達式的選擇路徑樹。
所述步驟(3)包含如下步驟:
(3.1)對于選擇路徑樹,轉(zhuǎn)換為特定的數(shù)據(jù)庫查詢語言。
(3.2)根據(jù)數(shù)據(jù)庫查詢語言,在數(shù)據(jù)庫中查詢并返回顯示符合條件的數(shù)據(jù)列表。
所述步驟(3.1)包含如下步驟:
(3.1.1)通過中序遍歷選擇路徑樹,得到布爾表達式。
(3.1.4)將布爾表達式中的(A-a1-a2)修改為(a3∪a4...∪an)。(A的子節(jié)點為a1,a2....an)。
(3.1.2)根據(jù)對于布爾表達式中每一個屬性a(屬于大屬性A),修改為“A like(a)”。
(3.1.3)將布爾表達式中的“∩”,“∪”分別修改為“and”和“or”。
(3.1.4)在句首添加特定數(shù)據(jù)庫的特定的語句。
如圖3所示,進行步驟(1.1),根據(jù)歷史文物的公共屬性,提取5種屬性(Material、Function、Region、Dynasty、Source),并分別將其子屬性添加至其子節(jié)點構(gòu)建五顆屬性樹。
進行步驟(1.2),對于屬性樹,添加輔助節(jié)點。
圖4(a)為原第一層Voronoi,圖4(b)添加輔助節(jié)點“root”后的新的第一層Voronoi。
圖4(c)為Source下的一層Voronoi,圖4(d)添加輔助節(jié)點“Source”后新的Voronoi。
根據(jù)Voronoi樹圖算法,生成新型Voronoi樹圖。
如圖4(b)所示,初始界面僅顯示Voronoi的第一層Voronoi圖,定義初始化某節(jié)點為僅顯示該節(jié)點Voronoi區(qū)域而不顯示其子節(jié)點;
如圖5(a)所示,對于一層展開的Voronoi。用戶選擇相應(yīng)的輔助節(jié)點,進行布爾運算符選擇或刪除操作。如圖5(b)所示,選擇布爾運算符(“∪”),該輔助節(jié)點確定該布爾運算符(“∪”)。如圖5(c)所示,依次選擇本層的屬性(Central_China,SouthWest,TW_HK_MC)。
對于本次操作,更新選擇路徑樹,此時選擇路徑樹即為如圖所示的直線組成的樹。
將屬性字符串轉(zhuǎn)換成布爾表達式,即將布爾表達式轉(zhuǎn)化為特定的數(shù)據(jù)庫查詢語句。
在數(shù)據(jù)庫中查詢符合條件的數(shù)據(jù)集,來實現(xiàn)新窗口的更新。
用戶可重復(fù)步驟(2),通過單擊某Voronoi區(qū)域展開新的一層Voronoi,進而進行選擇。如圖1(b)圖,對應(yīng)的布爾表達式為若欲刪除X.S.Z只需要長按其輔助節(jié)點并單擊“×”,則此時布爾表達式變成
上述雖然結(jié)合附圖對本發(fā)明的具體實施方式進行了描述,但并非對本發(fā)明保護范圍的限制,所屬領(lǐng)域技術(shù)人員應(yīng)該明白,在本發(fā)明的技術(shù)方案的基礎(chǔ)上,本領(lǐng)域技術(shù)人員不需要付出創(chuàng)造性勞動即可做出的各種修改或變形仍在本發(fā)明的保護范圍以內(nèi)。