本發(fā)明公開了一種地理文本信息數(shù)據(jù)中的連續(xù)skyline查詢處理機制,主要用于在地理文本信息數(shù)據(jù)中skyline查詢結(jié)果的維護問題,涉及到運動建模、候選數(shù)據(jù)點提取、關(guān)鍵字相似度匹配以及支配檢驗等技術(shù)。
背景技術(shù):
skyline查詢是從海量數(shù)據(jù)中返回在各個方面具有優(yōu)勢的目標(biāo)結(jié)果集,可以應(yīng)用于多目標(biāo)決策系統(tǒng),城市導(dǎo)航系統(tǒng),數(shù)據(jù)挖掘和可視化,智能防御系統(tǒng),以及地理信息系統(tǒng)等領(lǐng)域,也是數(shù)據(jù)庫查詢處理領(lǐng)域的一個重要課題。對skyline結(jié)果集作為代替龐大的查詢數(shù)據(jù)集,避免對多余數(shù)據(jù)的無效訪問,降低了操作難度,提高了操作效率,促進了數(shù)據(jù)交互的發(fā)展。在基于位置服務(wù)(LBS)或其他移動終端上,由于查詢點的位置的持續(xù)移動,某些空間屬性的變化可能對skyline結(jié)果集產(chǎn)生影響。另外,查詢及屬性中可能存在關(guān)鍵字匹配的需求。本發(fā)明所提出的連續(xù)skyline查詢處理機制就是針對地理文本信息數(shù)據(jù)在此情形下的skyline結(jié)果維護而研制的。
在查詢點或查詢對象持續(xù)移動的場景中,傳統(tǒng)的skyline查詢處理技術(shù)只能在每個時間片刻采用快照的方式調(diào)用BBS等算法從數(shù)據(jù)中獲得skyline結(jié)果,然而這種形式的在時間,交互等方面的開銷都十分昂貴,尤其是在需要進行關(guān)鍵字相似度匹配的情形下,更是令人難以接受。同時,該處理技術(shù)不能完全保證所有時刻skyline結(jié)果的正確性,很難得到廣泛的應(yīng)用。連續(xù)skyline查詢技術(shù)能夠幫助克服開銷和正確性方面的限制,只需要獲取初始的skyline和一部分查詢點的運動特征,如最高移動速度,便可在后續(xù)時間段內(nèi)持續(xù)返回正確的skyline結(jié)果集。當(dāng)前定位數(shù)據(jù)采集隨處可見,而一些基本的運動特征也十分容易獲取,如手機、平板電腦、路由器等設(shè)備都可作為輸入設(shè)備,為采用該處理機制的相關(guān)系統(tǒng)的推廣提供了可能性。
自從Borzsonyi等人將skyline作為查詢操作符引入數(shù)據(jù)庫領(lǐng)域,各種skyline查詢受到了國內(nèi)外各種領(lǐng)域許多專家的關(guān)注。麻省理工學(xué)院、加州大學(xué)、新南威爾士大學(xué)、香港科技大學(xué)、清華大學(xué)等在SIGMOD,VLDB,ICDE,TKDE等數(shù)據(jù)庫及數(shù)據(jù)挖掘領(lǐng)域著名學(xué)術(shù)會議和期刊上發(fā)表了多篇相關(guān)的論文,根據(jù)不同的需求做了許多重要的改進,包括空間skyline查詢、概率skyline查詢、連續(xù)skyline查詢等等。與其他skyline查詢相比,連續(xù)skyline查詢的特征是不僅僅著眼于一個時刻,而是連續(xù)時刻或者整個時間區(qū)間。一方面,需要保證每個時刻skyline結(jié)果的正確性;另一方面,需要保證每個時刻的結(jié)果能夠被及時返回。一般地,連續(xù)skyline查詢處理技術(shù)通過對上一時刻或某個時刻的skyline結(jié)果進行緩存并維護代替每個時刻重新進行查詢,從而減少不必要數(shù)據(jù)的訪問并提高查詢效率。
相關(guān)研究中,由Huang等人最先研究了連續(xù)skyline查詢處理問題,針對skyline結(jié)果隨著查詢點的移動不斷變化,其利用時空相關(guān)性解決了這個問題,使用時空相關(guān)性來表示空間屬性沒有顯著變化的兩個時間片刻,移動查詢點的位置和速度都不會發(fā)生突變,利用這一點來逐步維護skyline結(jié)果。Cheema等人研究了查詢點移動情況下的連續(xù)空間skyline查詢問題,提出使用安全區(qū)域(Safe Zone)的思想來減少屬于最終空間skyline的點的重復(fù)遍歷。主要思想是當(dāng)查詢點q移動時,如果它變化之后的位置仍在安全區(qū)域里,那么不需要更新查詢結(jié)果,因此僅當(dāng)查詢點離開它的安全區(qū)域以后,才需要更新skyline查詢。盡管以上研究也解決了很多問題,但其仍然存在一個很大的缺陷,即要求每個移動對象將來的運動是已知的,而在實際情況中,對于查詢點的下一時刻的位置可能是無法真實預(yù)測的。這樣就限制了對于一些真實問題的可用性。另外,實際生活中的查詢往往是帶有一些關(guān)鍵字信息的,比如“酒店”,“比薩”等,以上的工作無法解決這類帶有關(guān)鍵字的查詢問題。
本發(fā)明所提出的地理文本信息數(shù)據(jù)中的連續(xù)skyline查詢處理機制是連續(xù)skyline查詢在地理文本數(shù)據(jù)上的首次應(yīng)用,利用不確定運動模型為地理信息文本數(shù)據(jù)的查詢對象進行建模,根據(jù)該模型的擴張階段和重定位階段對skyline結(jié)果集的變化特點,從海量數(shù)據(jù)中篩選出在各個時刻會對skyline結(jié)果集產(chǎn)生影響的小部分?jǐn)?shù)據(jù)并對其進行緩存,本發(fā)明提出一種對于地理文本信息的連續(xù)skyline查詢算法,得到計算初始skyline集后通過使用緩存隊列以實現(xiàn)連續(xù)skyline查詢結(jié)果的維護。本發(fā)明提出了準(zhǔn)確度高的,高效的解決方案,以地理位置信息作為檢索條件,利用網(wǎng)格對海量數(shù)據(jù)集的進行劃分以提高數(shù)據(jù)檢索速度,同時在不同階段的需求分別選用多種支配決策準(zhǔn)則以保持skyline結(jié)果正確性前提下提高算法效率。
技術(shù)實現(xiàn)要素:
[發(fā)明目的]:本發(fā)明主要解決在地理文本信息數(shù)據(jù)中,通過采集用戶查詢信息及運動數(shù)據(jù)實現(xiàn)連續(xù)skyline查詢的問題。
[技術(shù)方案]:本發(fā)明方案主要包括以下兩點內(nèi)容:
1.用戶運動建模:
1)建模:采集用戶初始位置信息及運動特征信息,如最高速度,方向等。根據(jù)運動特征使用不確定運動模型為其建模;
2)模型維護:在獲得新的用戶位置信息時,判斷用戶運動是否違反模型設(shè)定,如果是,那么為其運動重新建模;否則,進入重定位階段處理即可。
2.連續(xù)skyline查詢結(jié)果維護:
1)計算初始skyline結(jié)果集。
2)持續(xù)維護skyline結(jié)果集。
[有益效果]:本發(fā)明利用連續(xù)skyline處理技術(shù)及關(guān)鍵字相似度匹配技術(shù),克服傳統(tǒng)的快照式skyline查詢的限制。另外,本發(fā)明可利用現(xiàn)有的普遍應(yīng)用的各類移動設(shè)備如手機,平板電腦等,可為本發(fā)明的推廣提供條件。然后本發(fā)明作為連續(xù)skyline查詢在地理文本信息中的首次應(yīng)用,拓展了skyline查詢的應(yīng)用領(lǐng)域。最后,本發(fā)明的設(shè)計保證了整個機制的真實性。
附圖說明
圖1為本發(fā)明提出的系統(tǒng)結(jié)構(gòu)流程圖;
圖2為數(shù)據(jù)篩選的處理流程圖;
圖3為不確定運動模型兩個階段的示意圖;
具體實施方式
以下結(jié)合附圖和具體實例對本發(fā)明做具體的介紹。
本發(fā)明有兩部分組成:數(shù)據(jù)采集部分與skyline結(jié)果計算部分??梢杂矛F(xiàn)有的地圖,微博為作為地理文本信息的數(shù)據(jù)來源,用一個帶有定位功能的終端設(shè)備作為運動位置的信號輸入,用裝有Intel5300的設(shè)備(筆記本或者臺式機)進行位置信息處理以及skyline結(jié)果計算。電腦不斷地接收移動終端發(fā)送的位置信息并實時反饋對應(yīng)的skyline結(jié)果。由于查詢位置變化的影響,skyline結(jié)果集會發(fā)生明顯的變化。
如附圖1所示,采集完數(shù)據(jù)之后,對用戶運動進行建模,并通過持續(xù)獲得的定位信息實時反饋skyline結(jié)果。具體實施過程如下:
步驟1:用戶信息采集與建模
采集用戶的查詢信息以及運動特征信息。從終端傳送到服務(wù)端的關(guān)鍵字信息信息將被儲存起來,比如“酒店”,“火鍋”等,用于后續(xù)關(guān)鍵字相似度匹配計算中;根據(jù)運動特征為用戶運動建模。根據(jù)用戶不同的運行特征使用不同的模型進行建模,由于通訊的限制,服務(wù)端不可能完全實時獲得用戶的位置,其獲得的位置信息存在一定的延遲或誤差。使用運動建??梢越档烷_銷的同時提高skyline結(jié)果的準(zhǔn)確性。其具體過程如下:采集到用戶最高移動速度的信息,采用擴張運動模型為用戶運動進行建模;在后續(xù)的時刻中,一旦獲得新的用戶位置信息時,判斷用戶運動是否違反模型設(shè)定,如果是,那么為其運動重新建模;否則,進入重定位階段,使用新的位置更新模型的擴張中心,并從上一步的擴張階段中獲得當(dāng)前時刻的skyline結(jié)果。
步驟2:skyline查詢結(jié)果連續(xù)維護
步驟2.1:計算初始skyline結(jié)果。在初始時刻,在獲取用戶的位置,最大移動速度及所輸入的關(guān)鍵字后,使用文本關(guān)聯(lián)函數(shù)改進后關(guān)鍵字匹配模型計算初始的關(guān)鍵字Skyline結(jié)果集,用ISK表示,所有數(shù)據(jù)是用網(wǎng)格文件進行索引,具體算法如下:
1)令skyline結(jié)果集為空,將范圍距離中的網(wǎng)格文件按照與用戶位置從近至遠(yuǎn)放入到堆中;
2)讓堆頂?shù)木W(wǎng)格出堆,拆分,對于網(wǎng)格內(nèi)的數(shù)據(jù),文本關(guān)聯(lián)函數(shù)對關(guān)鍵字進行關(guān)聯(lián)判別,并計算文本相似度,然后重新插入到堆中;
3)如果堆頂是數(shù)據(jù),檢驗當(dāng)前skyline結(jié)果集中目前是否存在支配該數(shù)據(jù)的skyline點,如果有,那么丟棄,否則加入skyline結(jié)果集;如果堆頂是網(wǎng)格,拆分網(wǎng)格;
4)重復(fù)3)直到堆為空,那么skyline結(jié)果集將成為初始的skyline結(jié)果ISK。
步驟2.2:數(shù)據(jù)點分類。連續(xù)維護的關(guān)鍵是篩選出可能會對skyline結(jié)果產(chǎn)生影響的數(shù)據(jù)點。針對不確定模型,有以下幾個定理:
(1)隨著查詢點的半徑增加,Skyline結(jié)果集大小單調(diào)遞增。
(2)重定位階段的Skyline結(jié)果為前一時刻擴張階段的Skyline結(jié)果的子集。
(3)在查詢點的范圍半徑增加r的過程中,只有距離與任一skyline點的距離差距在2r范圍內(nèi)的數(shù)據(jù)點才有可能進入Skyline。
根據(jù)上述定理,對每個時刻新遍歷到的數(shù)據(jù)點進行分類:
數(shù)據(jù)點pin。此時遍歷到的數(shù)據(jù)點p此時不受對應(yīng)的sk支配。經(jīng)過檢驗,數(shù)據(jù)點p同時也不受當(dāng)前其余的Skyline點支配,那么加入Skyline;
數(shù)據(jù)點pprune。此時遍歷到的數(shù)據(jù)點p此時仍受sk支配?;蚪?jīng)過計算,在查詢半徑擴張到極限之前一直受sk支配,p可認(rèn)定為無潛力的數(shù)據(jù)點,丟棄;
數(shù)據(jù)點pcache。此時遍歷到的數(shù)據(jù)點p此時仍受sk支配。在最大擴張半徑已知的情況下,利用sk的位置和p點位置,計算在擴張半徑增加到極限之前是否能夠不受sk支配,并可以利用他們上一時刻到當(dāng)前時刻p點和對應(yīng)sk點之間距離變化的增量計算p不受sk支配的未來時刻t,假如在查詢半徑擴大到極限之前能不被支配,將該點加入Skyline候選點緩存隊列;
步驟2.3:對新遍歷數(shù)據(jù)點進行分類后,結(jié)合初始的skyline結(jié)果,可以進行連續(xù)的高效維護,具體的算法如下:
1)令當(dāng)前skyline集合CSK=ISK,令緩存隊列Q為空;
2)如果當(dāng)前模型的半徑R沒有達到上限,并且沒有從終端獲得新的定位信息:那么有:檢查隊列Q;對于所有滿足定理(2)的數(shù)據(jù)進行分類并處理,直到半徑達到極限或獲得新的定位信息;
3)獲得新的信息,更新定位信息,模型進入重定位階段,半徑根據(jù)上次獲得定位信息與當(dāng)前的時間差計算得到;根據(jù)定理(3)獲得CSK,并作為新的ISK;
4)回到1),重復(fù)1)-3),直到查詢結(jié)束。
上面對本發(fā)明作了詳細(xì)的說明,但是本發(fā)明并不限于上述的實施方式,在本領(lǐng)域的技術(shù)人員可以根據(jù)自己所具備的知識,對本發(fā)明做各種變化以達到更優(yōu)的效果。