国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于KSP算法的資源描述框架查詢方法和系統(tǒng)與流程

      文檔序號:11177325閱讀:851來源:國知局
      一種基于KSP算法的資源描述框架查詢方法和系統(tǒng)與流程
      本發(fā)明涉及語義網(wǎng)數(shù)據(jù)檢索技術(shù),尤其涉及一種基于ksp算法的資源描述框架查詢方法和系統(tǒng)。
      背景技術(shù)
      :資源描述框架(resourcedescriptionframework,rdf)是用于表達web資源的元數(shù)據(jù)的通用框架,它使用統(tǒng)一資源描述符(uri)來表示事物,用簡單的屬性和屬性值來描述事物,rdf把數(shù)據(jù)表示為<主體,謂詞,客體>,其中用于標識事物為主體,用于區(qū)分主語對象各個不同屬性的那部分為謂詞,陳述中用于區(qū)分各個屬性的值的部分叫做客體。因此rdf知識庫也可以看做是一個有向圖,其中頂點是資源、性質(zhì)、文字、描述,邊是謂詞用來描述頂點之間的關(guān)系。rdf知識庫可以建模成一個有向圖,其中頂點表示實體,邊表示實體之間關(guān)系。在rdf圖中我們稱存在空間坐標的頂點為位置頂點(places)。我們用v表示rdf圖中的任意頂點,用p表示位置頂點。每一個rdf三元組對應(yīng)一條從一個實體(主體)到另一個實體(客體)的有向邊。為了實現(xiàn)關(guān)鍵字的搜索,每一個實體都對應(yīng)一個文檔,用ψ表示,該文檔是從該實體對應(yīng)的資源、性質(zhì)、文字、描述中提取的關(guān)鍵字組成。語義位置(semanticplace)是rdf圖的一顆子樹,該子樹以位置頂點p為根,且包含所有的查詢關(guān)鍵字。從一個給定的位置頂點p出發(fā)可以構(gòu)造多個語義位置?,F(xiàn)有的rdf數(shù)據(jù)是使用結(jié)構(gòu)化查詢語言(structuredquerylanguage)進行訪問,如sparql(simpleprotocolandrdfquerylanguage)。但是標準的sparql查詢需要用戶完全了解語言本身,并且了解數(shù)據(jù)域。因此sparql限制數(shù)據(jù)訪問主要是數(shù)據(jù)域?qū)<遥驗樗鼘ζ胀ㄓ脩羰遣挥押玫?,也就是說對rdf數(shù)據(jù)進行查詢時,需要用戶懂得查詢語言和rdf語義,否則無法進行查詢。技術(shù)實現(xiàn)要素:本發(fā)明旨在解決現(xiàn)有技術(shù)中需要用戶懂得查詢語言和rdf語義否則無法進行查詢的技術(shù)問題,提供一種基于ksp算法的資源描述框架查詢方法和系統(tǒng)。本發(fā)明的實施例提供一種基于ksp算法的資源描述框架查詢方法,用于利用ksp算法在rdf圖上搜索查詢關(guān)鍵字的語義位置,所述查詢方法包括以下步驟:初始化存放結(jié)果函數(shù)hk,其中存放結(jié)果函數(shù)hk用于保存符合條件的語義位置qsp,符合條件的語義位置qsp為包含所有查詢關(guān)鍵字的子樹,k為符合條件的語義位置qsp的數(shù)量;根據(jù)預(yù)設(shè)的文檔倒排索引表和預(yù)設(shè)的所有查詢關(guān)鍵字對應(yīng)的半徑字領(lǐng)域表,對用戶輸入的查詢關(guān)鍵字中的每個關(guān)鍵字進行循環(huán)遍歷,得到輸入的查詢關(guān)鍵字對應(yīng)的倒排索引表,以及得到每個關(guān)鍵字對應(yīng)的值,并加載在預(yù)設(shè)的所有查詢關(guān)鍵字對應(yīng)的半徑字領(lǐng)域表中;根據(jù)所述輸入的查詢關(guān)鍵字和輸入的查詢關(guān)鍵字對應(yīng)的倒排索引表,構(gòu)建字典結(jié)構(gòu),其中所述字典結(jié)構(gòu)表示含有所述輸入的查詢關(guān)鍵字的節(jié)點;初始化單調(diào)排序函數(shù)的值θ,其中單調(diào)排序函數(shù)表示對根據(jù)輸入的查詢關(guān)鍵字查找的多個最緊湊的符合條件的語義位置進行排序,最緊湊的符合條件的語義位置表示為以p為根節(jié)點的松散度最小的符合條件的語義位置;預(yù)設(shè)的空間索引中根節(jié)點進入隊列,得到位置節(jié)點隊列q;根據(jù)輸入的查詢關(guān)鍵字和位置節(jié)點隊列q,遍歷預(yù)設(shè)的空間索引得到節(jié)點e,并對節(jié)點e進行判斷;當(dāng)節(jié)點e為包含空間位置信息的頂點,判斷e是否為不符合條件節(jié)點,若e為不符合條件節(jié)點則結(jié)束本次循環(huán),進入下次循環(huán),當(dāng)節(jié)點e為包含空間位置信息的頂點,且判斷節(jié)點e不是不符合條件節(jié)點時,則執(zhí)行函數(shù)getsemanticplace,得到符合條件的語義位置的子樹tp和子樹tp的松散度值l(tp),并判斷是否為l(tp)==+∞,如果是,則結(jié)束本次循環(huán),如果否,計算松散度值l(tp)的排序分數(shù)f,并將松散度值l(tp)和對應(yīng)排序分數(shù)f插入存放結(jié)果函數(shù)hk且更新單調(diào)排序函數(shù)的值θ;當(dāng)節(jié)點e為節(jié)點n時,循環(huán)遍歷節(jié)點n下的每一個節(jié)點,計算n下每個節(jié)點e對應(yīng)的半徑字的松散度值和對應(yīng)半徑字的排序分數(shù)當(dāng)時,則把對應(yīng)節(jié)點e插入位置節(jié)點隊列q并返回所述根據(jù)輸入的查詢關(guān)鍵字和位置節(jié)點隊列q,在預(yù)設(shè)的空間索引中查找節(jié)點e的步驟,直到根據(jù)存放結(jié)果函數(shù)hk向用戶返回查詢結(jié)果。本發(fā)明還提供一種實施例的基于ksp算法的資源描述框架查詢系統(tǒng),用于利用ksp算法在rdf圖上搜索查詢關(guān)鍵字的語義位置,所述查詢系統(tǒng)包括:第一初始化模塊,用于初始化存放結(jié)果函數(shù)hk,其中存放結(jié)果函數(shù)hk用于保存符合條件的語義位置qsp,符合條件的語義位置qsp為包含所有查詢關(guān)鍵字的子樹,k為符合條件的語義位置qsp的數(shù)量;循環(huán)遍歷模塊,用于根據(jù)預(yù)設(shè)的文檔倒排索引表和預(yù)設(shè)的所有查詢關(guān)鍵字對應(yīng)的半徑字領(lǐng)域表,對用戶輸入的查詢關(guān)鍵字中的每個關(guān)鍵字進行循環(huán)遍歷,得到輸入的查詢關(guān)鍵字對應(yīng)的倒排索引表,以及得到每個關(guān)鍵字對應(yīng)的值,并加載在預(yù)設(shè)的所有查詢關(guān)鍵字對應(yīng)的半徑字領(lǐng)域表中;構(gòu)建模塊,用于根據(jù)所述輸入的查詢關(guān)鍵字和輸入的查詢關(guān)鍵字對應(yīng)的倒排索引表,構(gòu)建字典結(jié)構(gòu),其中所述字典結(jié)構(gòu)表示含有所述輸入的查詢關(guān)鍵字的節(jié)點;第二初始化模塊,用于初始化單調(diào)排序函數(shù)的值θ,其中單調(diào)排序函數(shù)表示對根據(jù)輸入的查詢關(guān)鍵字查找的多個最緊湊的符合條件的語義位置進行排序,最緊湊的符合條件的語義位置表示為以p為根節(jié)點的松散度最小的符合條件的語義位置;生成隊列模塊,用于預(yù)設(shè)的空間索引的根節(jié)點進入隊列,得到位置節(jié)點隊列q;查找循環(huán)模塊,用于根據(jù)輸入的查詢關(guān)鍵字和位置節(jié)點隊列q,遍歷預(yù)設(shè)的空間索引得到節(jié)點e并對節(jié)點e進行判斷;頂點處理模塊,用于當(dāng)節(jié)點e為包含空間位置信息的頂點時,判斷節(jié)點e是否為不符合條件節(jié)點,若節(jié)點e為不符合條件節(jié)點則結(jié)束本次循環(huán),進入下次循環(huán),當(dāng)節(jié)點e為包含空間位置信息的頂點,且節(jié)點e不是不符合條件節(jié)點,則執(zhí)行函數(shù)getsemanticplace,得到符合條件的語義位置的子樹tp和子樹tp的松散度值l(tp),并判斷是否為l(tp)==+∞,如果是,則結(jié)束本次循環(huán),如果否,計算松散度值l(tp)的排序分數(shù)f,并將松散度值l(tp)和對應(yīng)排序分數(shù)f插入存放結(jié)果函數(shù)hk且更新單調(diào)排序函數(shù)的值θ;節(jié)點處理模塊,用于節(jié)點e為節(jié)點n時,循環(huán)遍歷節(jié)點n下的每一個節(jié)點,計算n下每個節(jié)點e對應(yīng)的半徑字的松散度值和對應(yīng)半徑字的排序分數(shù)當(dāng)時,則把對應(yīng)節(jié)點e插入位置節(jié)點隊列q并進入查找循環(huán)模塊,直到輸出結(jié)果模塊,用于根據(jù)存放結(jié)果函數(shù)hk向用戶返回查詢結(jié)果。本發(fā)明還提供一種實施例的計算機可讀存儲介質(zhì),其上存儲有計算機程序,該程序被處理器執(zhí)行時實現(xiàn)上述方法的步驟。本發(fā)明的技術(shù)方案與現(xiàn)有技術(shù)相比,有益效果在于:該ksp算法對用戶是友好的,用戶不需要掌握專門的查詢語言,只需要輸入查詢的關(guān)鍵字,算法將返回在查詢位置附近,包含所有關(guān)鍵字的子樹。附圖說明圖1是本發(fā)明基于ksp算法的資源描述框架查詢方法一種實施例的流程圖。圖2是本發(fā)明基于ksp算法的資源描述框架查詢方法另一種實施例的流程圖。圖3是本發(fā)明文檔倒排索引表一種實施例的示意圖。圖4是本發(fā)明所有查詢關(guān)鍵字對應(yīng)的半徑字領(lǐng)域表的創(chuàng)建方法一種實施例的流程圖。圖5是本發(fā)明基于ksp算法的資源描述框架查詢系統(tǒng)一種實施例的結(jié)構(gòu)示意圖。具體實施方式下面詳細描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,旨在用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。具體的,ksp算法中的查詢序列q由三部分組成,包括查詢位置q.λ,查詢關(guān)鍵字q.ψ,和語義位置數(shù)量k。具體的,對于一個給定ksp查詢序列q,和一個rdf圖g=<v,e>,其中v表示rdf圖的頂點,e表示rdf圖的邊,符合條件的語義位置qsp是一棵樹tp=<v',e'>,其中tp的根節(jié)點為p,并且滿足為了方便介紹,用<p,(v1,v2...)>表示一個語義位置,其中p是根節(jié)點,(v1,v2...)表示其他所有的頂點。給定一個查詢序列q可能存在多個符合條件的語義位置qsp,符合條件的語義位置qsp有相同的根節(jié)點p,但(v1,v2...)不同。因此還需要計算tp的松散度l(tp)。具體的,對于一個給定qsptp=<v',e'>,令表示從根節(jié)點p到包含關(guān)鍵字ti的節(jié)點v的最短距離,其中ti∈q.ψ,d(p,v)為p到v的最短距離,所以tp的松散度值l(tp)為:如果松散度越小,根節(jié)點和其他節(jié)點覆蓋了所有輸入的查詢關(guān)鍵字的相關(guān)性越高。因此對于一個給定的位置頂點p,以位置頂點p為根節(jié)點,我們要找的是最緊湊的符合條件的語義位置tqsp,表示以p為根節(jié)點的松散度值最小的qsp。另外,在rdf圖上,對于一個給定的ksp的查詢序列q,查詢結(jié)果為k個tqsp,且這k個tqsp的分數(shù)(rankingscore)是所有tqsp中最小的,松散度l(tp)的排序分數(shù)f,用函數(shù)f(l(tp),s(q,p))表示,l(tp)為子樹tp松散度,s(q,p)為q.λ查詢位置和p之間的歐式距離。函數(shù)f(l(tp),s(q,p))可以為任意的單調(diào)排序函數(shù),f(l(tp),s(q,p))=l(tp)×s(q,p)。本發(fā)明一個實施例的基于ksp算法的資源描述框架查詢方法,用于利用ksp算法在rdf圖上搜索查詢關(guān)鍵字的語義位置,如圖1所示,所述構(gòu)造方法包括以下步驟:步驟s101,初始化存放結(jié)果函數(shù)hk,其中存放結(jié)果函數(shù)hk用于保存符合條件的語義位置qsp,符合條件的語義位置qsp為包含所有查詢關(guān)鍵字的子樹,k為符合條件的語義位置qsp的數(shù)量;步驟s102,根據(jù)預(yù)設(shè)的文檔倒排索引表和預(yù)設(shè)的所有查詢關(guān)鍵字對應(yīng)的半徑字領(lǐng)域表,對用戶輸入的查詢關(guān)鍵字中的每個關(guān)鍵字進行循環(huán)遍歷,得到輸入的查詢關(guān)鍵字對應(yīng)的倒排索引表,以及得到每個關(guān)鍵字對應(yīng)的值,并加載在預(yù)設(shè)的所有查詢關(guān)鍵字對應(yīng)的半徑字領(lǐng)域表中;步驟s103,根據(jù)所述輸入的查詢關(guān)鍵字和輸入的查詢關(guān)鍵字對應(yīng)的倒排索引表,構(gòu)建字典結(jié)構(gòu),其中所述字典結(jié)構(gòu)表示含有所述輸入的查詢關(guān)鍵字的節(jié)點;步驟s104,初始化單調(diào)排序函數(shù)的值θ,其中單調(diào)排序函數(shù)表示對根據(jù)輸入的查詢關(guān)鍵字查找的多個最緊湊的符合條件進行排序,最緊湊的符合條件的語義位置表示為以p為根節(jié)點的松散度最小的符合條件的語義位置;步驟s105,預(yù)設(shè)的空間索引的根節(jié)點進入隊列,得到位置節(jié)點隊列q;步驟s106,根據(jù)輸入的查詢關(guān)鍵字和位置節(jié)點隊列q,遍歷預(yù)設(shè)的空間索引得到節(jié)點e,并對節(jié)點e進行判斷,當(dāng)節(jié)點e為包含空間位置信息的頂點,進入步驟s107,當(dāng)節(jié)點e為節(jié)點n,進入步驟s111;步驟s107,判斷節(jié)點e是否為不符合條件節(jié)點,如果是,則結(jié)束本次循環(huán),進入下次循環(huán)即返回步驟s106,如果否,進入步驟s108;步驟s108,執(zhí)行函數(shù)getsemanticplace,得到符合條件的語義位置的子樹tp和子樹tp的松散度值l(tp);步驟s109,判斷是否為l(tp)==+∞,如果是,結(jié)束本次循環(huán)即返回步驟s106,如果否,進入步驟s110;步驟s110;計算松散度值l(tp)的排序分數(shù)f,并將松散度值l(tp)和對應(yīng)排序分數(shù)f插入存放結(jié)果函數(shù)hk且更新單調(diào)排序函數(shù)的值θ,進入步驟s115;步驟s111,循環(huán)遍歷每一個節(jié)點n,計算節(jié)點e對應(yīng)的半徑字的松散度值和節(jié)點e對應(yīng)半徑字的排序分數(shù)步驟s112,判斷是否如果是,進入步驟s113,如果否,進入步驟s114;步驟s113,當(dāng)時,節(jié)點e符合條件,將對應(yīng)的節(jié)點e插入位置節(jié)點隊列q,并返回s106;步驟s114,進入步驟s115;步驟s115,根據(jù)存放結(jié)果函數(shù)hk向用戶返回查詢結(jié)果,也就是說,向用戶返回包含所有輸入的查詢關(guān)鍵字的子樹,并且該子樹的根節(jié)點靠近查詢位置。步驟s101,具體為,初始化hk中的元素按照f(l(tp),s(q,p))排序;hk中存放的是qsp,即存放最終的結(jié)果,其中qsp為包含所有查詢關(guān)鍵字的子樹。步驟s102,具體為:循環(huán)遍歷查詢關(guān)鍵字q.ψ中的每個關(guān)鍵字ti,做一下處理:首先從預(yù)設(shè)的文檔倒排索引表i中,查找關(guān)鍵字ti對一個的值,并保存,接著從預(yù)設(shè)的所有查詢關(guān)鍵字對應(yīng)的半徑字領(lǐng)域表即α-radiuswordneighborhood表iα中,加載關(guān)鍵字ti所對應(yīng)的值,并保存。步驟s103,具體為,建立一個字典結(jié)構(gòu)mq.ψ,結(jié)構(gòu)為{節(jié)點,(t1,t2,...)}表示含有查詢關(guān)鍵字的節(jié)點。步驟s104,具體為,初始化θ=+∞;θ為rankingscoref的值。在步驟s105中,對于預(yù)設(shè)的空間索引是在查詢之前建立好的,所以用于輸入不同的查詢關(guān)鍵字對應(yīng)的空間索引是相同的。另外,位置節(jié)點隊列q中保存多個位置節(jié)點,所述多個位置節(jié)點是符合查詢要求的,其中位置節(jié)點包含位置信息,而普通節(jié)點不包含位置信息。步驟s106,具體為:查找循環(huán)條件為e=getnext(q,r,q),函數(shù)getnext表示在r-tree上使用增強nn算法(incrementalnnalgorithm)查找節(jié)點e,若節(jié)點e是位置頂點,即包含空間位置信息的頂點,則進入步驟s107,若節(jié)點e不是位置頂點則進入步驟s111。當(dāng)節(jié)點e是位置頂點,做以下處理:首先若節(jié)點e不符合刪除規(guī)則1,則跳出本次循環(huán),進入下次循環(huán);再次回到步驟s106,開始新的循環(huán);接著,執(zhí)行函數(shù)getsemanticplace,得到tp的值;若l(tp)==+∞,說明沒有找到,則跳出本次循環(huán),進入下次循環(huán);接著,計算l(tp)的rankingscore,并將l(tp)和對應(yīng)的rankingscoref插入到hk中,即hk.add(tp,f);最后,更新θ的值,進入步驟s115。當(dāng)節(jié)點e是節(jié)點n時,循環(huán)遍歷n下的每一個節(jié)點e,做以下操作;針對每個節(jié)點:首先,計算節(jié)點e的α-boundonthelooseness刪除規(guī)則2,接著計算節(jié)點e的α-boundontherankingscore刪除規(guī)則3,最后根據(jù)刪除規(guī)則2,3可以判定,當(dāng)是,對應(yīng)的節(jié)點e符合條件,可以插入隊列q,即toq,直到進入步驟s115。具體的,所述存放結(jié)果函數(shù)hk中保存符合條件的語義位置qsp按照最緊湊的符合條件的語義位置的排序分數(shù)大小進行排序。在具體實施中,步驟s108,所述執(zhí)行函數(shù)getsemanticplace,如圖2所示,具體包括:步驟s201,初始化子樹tp,其中,tp表示以p為頂點,包含所有查詢關(guān)鍵字的一顆子樹;步驟s202,初始化子樹tp的松散度值l(tp)以使l(tp)=1;步驟s203,查詢的關(guān)鍵字q.ψ保存到數(shù)字集b中;步驟s204,從頂點p開始使用bfs(breadth-first-search)方式遍歷rdf圖且數(shù)字集b不為空;步驟s205,把bfs方式得到的節(jié)點v添加到子樹tp中;步驟s206,在所述字典結(jié)構(gòu)中查找節(jié)點v包含的查詢關(guān)鍵字;步驟s207,判斷節(jié)點v包含的查詢關(guān)鍵字和數(shù)字集b的交集是否為空,如果否,進入步驟s208,如果是,進入步驟s209;步驟s208,如果否,輸出l(tp)=+∞和tp=null;步驟s209,如果是,根據(jù)節(jié)點v包含的查詢關(guān)鍵字和數(shù)字集b的交集中元素的個數(shù)以及節(jié)點v和頂點p之間的距離的得到子樹tp的松散度值l(tp);步驟s210,從數(shù)字集b中刪除節(jié)點v包含的查詢關(guān)鍵字和數(shù)字集b的交集得到當(dāng)前的數(shù)字集b;步驟s211,當(dāng)前的數(shù)字集b是否為空,如果否,返回步驟s204,如果是,進入步驟s208,也就是說,直到數(shù)字集b為空,輸出l(tp)=+∞和tp=null。具體的,步驟s209的計算公式如下:l(tp)+=|b∩v.ψq|×d(p,v);其中,|b∩v.ψq|表示b和v.ψq的交集中元素的個數(shù),d(p,v)為位置頂點p到節(jié)點v的最短距離。也就是說,ksp算法通過執(zhí)行sp和getsemanticplace兩個函數(shù)以輸出輸入的查詢關(guān)鍵字的返回結(jié)果,sp函數(shù)內(nèi)部調(diào)用getsemanticplace函數(shù),函數(shù)sp(q,r,g,i,ia)的內(nèi)容具體為,步驟s101至步驟s115的過程。函數(shù)getsemanticplace(q.ψ,p,g,mq.ψ)的內(nèi)容具體為,步驟s201至步驟s211的過程,該函數(shù)的作用是輸出tp和l(tp),其中q表示查詢序列,r表示預(yù)設(shè)的空間索引,g表示rdf圖,i表示預(yù)設(shè)的文檔倒排索引表,iα表示預(yù)設(shè)的所有查詢關(guān)鍵字對應(yīng)的半徑字領(lǐng)域表。在具體實施中,所述查詢方法還包括以下步驟:創(chuàng)建預(yù)設(shè)的空間索引。具體的,在步驟s101之前,創(chuàng)建預(yù)設(shè)的空間索引。所述創(chuàng)建預(yù)設(shè)的空間索引的步驟,具體為:從rdf數(shù)據(jù)中提取含有坐標信息的數(shù)據(jù),得到預(yù)設(shè)的空間索引。因為rdf圖數(shù)據(jù)比較大,為了提高查詢的速度,首先從rdf數(shù)據(jù)中提取含有坐標信息的數(shù)據(jù),創(chuàng)建預(yù)設(shè)的空間索引r-tree使得查詢的速度可以得到有效的提高。在具體實施中,所述查詢方法還包括以下步驟:對每個節(jié)點的文檔中的關(guān)鍵字建立倒排索引以得到預(yù)設(shè)的文檔倒排索引表,倒排索引表的格式為(關(guān)鍵字,節(jié)點),具體的,在步驟s101之前,對每個節(jié)點的文檔中的關(guān)鍵字建立倒排索引以得到預(yù)設(shè)的文檔倒排索引表i,文檔倒排索引表的格式為(關(guān)鍵字,節(jié)點),如圖3所示。在具體實施中,如圖4所示,所述查詢方法還包括以下步驟:步驟s401,從頂點p開始使用bfs方式遍歷rdf圖;步驟s402,當(dāng)遍歷到節(jié)點v時,遍歷節(jié)點v的文檔中的關(guān)鍵字t,若(t,d(p,v))在wn(p)中沒有出現(xiàn)過,則將(t,d(p,v))添加到預(yù)設(shè)的所有查詢關(guān)鍵字對應(yīng)的半徑字領(lǐng)域表中,其中wn(p)表示從p到每一個查詢關(guān)鍵字ti的最短距離的集合{(ti,dg(p,ti))},dg(p,ti)≤α表示從根節(jié)點p到包含查詢關(guān)鍵字ti的頂點的最短的距離,(t,d(p,v))表示頂點v對應(yīng)的文檔信息,包含查詢關(guān)鍵字t;步驟s403,當(dāng)?shù)玫剿械娜~子節(jié)點的半徑字領(lǐng)域后,按照從葉子節(jié)點到非葉子節(jié)點的順序,計算wn(n)的值,wn(n)表示非葉子節(jié)點n下所有的位置頂點{pj}對應(yīng)的wn(pj)的聯(lián)合,非葉子節(jié)點n下面包含一系列的位置頂點{pj};步驟s404,對于非葉子節(jié)點n,{ei}表示n下的節(jié)點,wn(n)初始化為空,若(t,dg(ei,t))在wn(n)沒有相應(yīng)的值則將(t,dg(ei,t))添加到預(yù)設(shè)的所有查詢關(guān)鍵字對應(yīng)的半徑字領(lǐng)域表中,若有值則將所述半徑字鄰域表中非葉子節(jié)點n對應(yīng)的值更新為min(dg(n,t),dg(ei,t)),其中,(t,dg(ei,t))為關(guān)鍵字t在所述半徑字鄰域表中對應(yīng)的值。具體的,頂點p可以是根節(jié)點,如果是根節(jié)點,則包含位置信息。頂點p可以是包含位置信息的節(jié)點,所以它是包含位置信息的所有可能節(jié)點,包括根節(jié)點。另外,所述預(yù)設(shè)的所有查詢關(guān)鍵字對應(yīng)的半徑字領(lǐng)域表:是根據(jù)樹建立起來的,其中樹中的有葉子節(jié)點p,和非葉子節(jié)點n,首先算葉子節(jié)點的值,然后算非葉子節(jié)點的值,所以是葉子節(jié)點到非葉子節(jié)點,是一種自下到上的順序。比如,以下所示表格為所述預(yù)設(shè)的所有查詢關(guān)鍵字對應(yīng)的半徑字領(lǐng)域表。q.ψabbey...ancientcatholicromanhistory...dg(p1,ti)0...111-...dg(p2,ti)-...-001...dg(n,ti)0...1001...具體的,開始時初始化,使得所述預(yù)設(shè)的所有查詢關(guān)鍵字對應(yīng)的半徑字領(lǐng)域表為空,步驟s401-步驟s404就是填充這張表。其中:abbey,ancient,catholic,roman,history為所述半徑字領(lǐng)域表中關(guān)鍵字。(t,d(p,v)):表示頂點v的文檔信息中,有查詢關(guān)鍵字t,則對應(yīng)的值就會插入到半徑字鄰域表中。(t,dg(ei,t)):表示關(guān)鍵字t,在半徑字鄰域表中對應(yīng)的值。此處的ei就是上表中的p1,p2,即dg(ei,t)就是表中dg(p1,ti)對應(yīng)的值。min(dg(n,t),dg(ei,t)):就是表中dg(n,ti)的值去掉所在列的最小值。比如,catholic所在的列,有值1,0所以min(dg(n,t),dg(ei,t))的值為0,也就是dg(n,ti)的值。由于在根據(jù)ksp算法構(gòu)建tqsp的時候可能會遇到以下兩種情況:(i)遍歷完這個圖后仍未找到包含輸入查詢關(guān)鍵字的tp,(ii)找到了tp,但是tp的排序分數(shù)f大于θ(當(dāng)前已經(jīng)找到的第k個tp的排序分數(shù))。其中,tqsp為松散度最小的qsp針對情況。對于(i)的情況,在rdf圖中,讓表示以p為根節(jié)點子樹不能包含所有的查詢關(guān)鍵字。對于給定的查詢關(guān)鍵字序列q.ψ,若此時的p節(jié)點為不符合條件節(jié)點。針對(ii)情況,為了提高算法的效率,定義wn(p),對位置頂點p,它的wn(p)表示從p到每一個查詢關(guān)鍵字ti的最短距離的集合{(ti,dg(p,ti))},其中dg(p,ti)≤α,表示從根節(jié)點p到包含查詢關(guān)鍵字ti的頂點的最短的距離。根據(jù)上述中對一個點的字鄰域描述,我們可以得出對節(jié)點n的字鄰域的定義,如對r-tree中的頂點n。定義wn(n),對于r-tree的節(jié)點n下面包含一系列的位置頂點{pj},wn(n)為一系列的{(ti,dg(n,ti))},其中wn(n)是節(jié)點n下所有的位置頂點{pj}對應(yīng)的wn(pj)的聯(lián)合,其中對于每個關(guān)鍵字ti,顯然dg(n,ti)≤α。根據(jù)定義wn(p)和定義wn(n),可以創(chuàng)建節(jié)點對應(yīng)的半徑字領(lǐng)域表iα即預(yù)設(shè)的所有查詢關(guān)鍵字對應(yīng)的半徑字領(lǐng)域表(α-radiuswordneighborhood表),用于提高算法效率。進一步,為了提高算法的效率,引理1:由于wn(p)表示位置定點p的半徑字領(lǐng)域(α-radiuswordneighborhood)。對于給定的查詢關(guān)鍵字q.ψ={t1,...,tj,...tm},為了不失一般性,假設(shè)第j個關(guān)鍵字在wn(p)已經(jīng)有值,則以p為根節(jié)點的tp的tqsp的半徑字松散度(α-boundonthelooseness)可表示為并且引理2:由于表示以p為根節(jié)點的tp的tqsp的半徑字松散度,則對于給定的查詢序列q對應(yīng)的tp的半徑字排序分數(shù)(α-boundontherankingscore)可表示為且引理3:由于wn(n)表示頂點n的半徑字領(lǐng)域(α-radiuswordneighborhood),查詢關(guān)鍵字q.ψ={t1...,tj...,tm},為了不失一般性,假設(shè)第j個關(guān)鍵字在wn(n)中已經(jīng)有相應(yīng)的值,則在n節(jié)點下以p為根節(jié)點的tp對應(yīng)的所有的tqsp可表示為并且引理4:由于表示以在節(jié)點n下以p為根節(jié)點的tp的tqsp對應(yīng)的半徑字松散度,對于給定的查詢序列q,則在節(jié)點n下以p為根節(jié)點的所有的tp的半徑字松散度可表示為其中s(q,n)表示q和n之間最小的空間距離,且根據(jù)引理2我們得出刪除規(guī)則2,根據(jù)引理4得出刪除規(guī)則3,來提高算法的效率,具體刪除規(guī)則如下:刪除規(guī)則2:對于給定的查詢序列q,θ表示第k個候選tqsp的rankingscore。表示以p為根節(jié)點的tp的tqsp的α-boundontherankingscore。當(dāng)時tp不是我們要查的結(jié)果,p可以被刪除。刪除規(guī)則3:對于給定的查詢序列q,θ表示第k個候選tqsp的rankingscore,表示節(jié)點n下以p為根節(jié)點的tp的tqsp的α-boundontherankingscore,若則在n節(jié)點下任何節(jié)點都不滿足條件,n可以被刪除。基于ksp算法的資源描述框架查詢方法,主要是實現(xiàn)圖上關(guān)鍵字的搜索和rdf數(shù)據(jù)上關(guān)鍵字的搜索:由于關(guān)鍵字檢索對用戶的友好性,不僅用戶檢索網(wǎng)絡(luò)數(shù)據(jù),而且用于檢索xml文檔,關(guān)系型數(shù)據(jù)庫,和圖。傳統(tǒng)上圖的搜索算法將查詢轉(zhuǎn)化為在特征空間上的搜索,例如路徑,頻繁模式,和序列。這種搜索算法更多的關(guān)注圖的結(jié)構(gòu)而不是圖的語義內(nèi)容。圖上關(guān)鍵字的查詢通過利用內(nèi)容和鏈接結(jié)構(gòu)兩者來確定圖中一組密集鏈接的節(jié)點。由于這兩種信息的重新實施,可提高結(jié)果的整體質(zhì)量。而rdf數(shù)據(jù)上關(guān)鍵字的搜索,由于rdf數(shù)據(jù)是一種特殊類型的圖數(shù)據(jù)也可以提供查詢的效率。本發(fā)明還提供一種計算機可讀存儲介質(zhì),其上存儲有計算機程序,該程序被處理器執(zhí)行時實現(xiàn)上述方法的步驟。本發(fā)明的一實施例中提供一種基于資源描述框架的ksp算法查詢系統(tǒng),用于利用ksp算法在rdf圖上搜索查詢關(guān)鍵字的語義位置,如圖5所示,所述查詢系統(tǒng)包括:第一初始化模塊51,用于初始化存放結(jié)果函數(shù)hk,其中存放結(jié)果函數(shù)hk用于保存符合條件的語義位置qsp,符合條件的語義位置qsp為包含所有查詢關(guān)鍵字的子樹,k為符合條件的語義位置qsp的數(shù)量;循環(huán)遍歷模塊52,用于根據(jù)預(yù)設(shè)的文檔倒排索引表和預(yù)設(shè)的所有查詢關(guān)鍵字對應(yīng)的半徑字領(lǐng)域表,對用戶輸入的查詢關(guān)鍵字中的每個關(guān)鍵字進行循環(huán)遍歷,得到輸入的查詢關(guān)鍵字對應(yīng)的倒排索引表,以及得到每個關(guān)鍵字對應(yīng)的值,并加載在預(yù)設(shè)的所有查詢關(guān)鍵字對應(yīng)的半徑字領(lǐng)域表中;構(gòu)建模塊53,用于根據(jù)所述輸入的查詢關(guān)鍵字和輸入的查詢關(guān)鍵字對應(yīng)的倒排索引表,構(gòu)建字典結(jié)構(gòu),其中所述字典結(jié)構(gòu)表示含有所述輸入的查詢關(guān)鍵字的節(jié)點;第二初始化模塊54,用于初始化單調(diào)排序函數(shù)的值θ,其中單調(diào)排序函數(shù)表示對根據(jù)輸入的查詢關(guān)鍵字查找的多個最緊湊的符合條件的語義位置進行排序,最緊湊的符合條件的語義位置表示為以p為根節(jié)點的松散度最小的符合條件的語義位置;生成隊列模塊55,用于預(yù)設(shè)的空間索引的根節(jié)點進入隊列,得到位置節(jié)點隊列q;查找循環(huán)模塊56,用于根據(jù)輸入的查詢關(guān)鍵字和位置節(jié)點隊列q,遍歷預(yù)設(shè)的空間索引得到節(jié)點e,并對節(jié)點e進行判斷;頂點處理模塊57,于當(dāng)節(jié)點e為包含空間位置信息的頂點時,判斷節(jié)點e是否為不符合條件節(jié)點,若節(jié)點e為不符合條件節(jié)點則結(jié)束本次循環(huán),進入下次循環(huán),當(dāng)節(jié)點e為包含空間位置信息的頂點,且節(jié)點e不是不符合條件節(jié)點,則執(zhí)行函數(shù)getsemanticplace,得到符合條件的語義位置的子樹tp和子樹tp的松散度值l(tp),并判斷是否為l(tp)==+∞,如果是,則結(jié)束本次循環(huán),如果否,計算松散度值l(tp)的排序分數(shù)f,并將松散度值l(tp)和對應(yīng)排序分數(shù)f插入存放結(jié)果函數(shù)hk且更新單調(diào)排序函數(shù)的值θ;節(jié)點處理模塊58,用于節(jié)點e為節(jié)點n時,循環(huán)遍歷節(jié)點n下的每一個節(jié)點,計算n下每個節(jié)點e對應(yīng)的半徑字的松散度值和對應(yīng)半徑字的排序分數(shù)當(dāng)時,則把對應(yīng)節(jié)點e插入位置節(jié)點隊列q并進入查找循環(huán)模塊,直到輸出結(jié)果模塊59,用于根據(jù)存放結(jié)果函數(shù)hk向用戶返回查詢結(jié)果。具體的,所述存放結(jié)果函數(shù)hk中保存符合條件的語義位置qsp按照最緊湊的符合條件的語義位置的排序分數(shù)大小進行排序。在具體實施中,頂點處理模塊57還用于:初始化子樹tp,其中,tp表示以p為頂點,包含所有查詢關(guān)鍵字的一顆子樹;初始化子樹tp的松散度l(tp)以使l(tp)=1;查詢的關(guān)鍵字q.ψ保存到數(shù)字集b中;從頂點p開始使用bfs(breadth-first-search)方式遍歷rdf圖且數(shù)字集b不為空;把bfs方式得到的節(jié)點v添加到子樹tp中;在所述字典結(jié)構(gòu)中查找節(jié)點v包含的查詢關(guān)鍵字;判斷節(jié)點v包含的查詢關(guān)鍵字和數(shù)字集b的交集是否為空;如果否,輸出l(tp)=+∞和tp=null;如果是,根據(jù)節(jié)點v包含的查詢關(guān)鍵字和數(shù)字集b的交集中元素的個數(shù)以及節(jié)點v和頂點p之間的距離的,得到子樹tp的松散度值l(tp);從數(shù)字集b中刪除節(jié)點v包含的查詢關(guān)鍵字和數(shù)字集b的交集得到當(dāng)前的數(shù)字集b;當(dāng)前的數(shù)字集b是否為空,如果否,執(zhí)行從頂點p開始使用bfs(breadth-first-search)方式遍歷rdf圖且數(shù)字集b不為空的內(nèi)容;如果是,輸出l(tp)=+∞和tp=null,也就是說,直到數(shù)字集b為空,輸出l(tp)=+∞和tp=null。具體的,根據(jù)節(jié)點v包含的查詢關(guān)鍵字和數(shù)字集b的交集中元素的個數(shù)以及節(jié)點v和頂點p之間的距離的得到子樹tp的松散度l(tp)的值計算公式如下:l(tp)+=|b∩v.ψq|×d(p,v);其中,|b∩v.ψq|表示b和v.ψq的交集中元素的個數(shù),d(p,v)為頂點p到節(jié)點v的最短距離。在具體實施中,所述查詢系統(tǒng)還包括創(chuàng)建模塊,用于創(chuàng)建預(yù)設(shè)的空間索引。具體的,創(chuàng)建模塊還用于:從rdf數(shù)據(jù)中提取含有坐標信息的數(shù)據(jù),得到預(yù)設(shè)的空間索引。因為rdf圖數(shù)據(jù)比較大,為了提高查詢的速度,首先從rdf數(shù)據(jù)中提取含有坐標信息的數(shù)據(jù),創(chuàng)建預(yù)設(shè)的空間索引r-tree使得查詢的速度可以得到有效的提高。在具體實施中,創(chuàng)建模塊還用于:對每個節(jié)點的文檔中的關(guān)鍵字建立倒排索引以得到預(yù)設(shè)的文檔倒排索引表,倒排索引表的格式為(關(guān)鍵字,節(jié)點),如圖3所示。在具體實施中,如圖4所示,創(chuàng)建模塊還用于:從位置頂點p開始使用bfs方式遍歷rdf圖;當(dāng)遍歷到節(jié)點v時,遍歷節(jié)點v的文檔中的關(guān)鍵字t,若(t,d(p,v))在wn(p)中沒有出現(xiàn)過,則將(t,d(p,v))添加到預(yù)設(shè)的所有查詢關(guān)鍵字對應(yīng)的半徑字領(lǐng)域表中,其中wn(p)表示從p到每一個查詢關(guān)鍵字ti的最短距離的集合{(ti,dg(p,ti))},dg(p,ti)≤α表示從根節(jié)點p到包含查詢關(guān)鍵字ti的頂點的最短的距離,(t,d(p,v))表示頂點v對應(yīng)的文檔信息,包含查詢關(guān)鍵字t;得到所有的葉子節(jié)點的半徑字領(lǐng)域后,按照從葉子節(jié)點到非葉子節(jié)點的順序,計算wn(n)的值,wn(n)表示非葉子節(jié)點n下所有的位置頂點{pj}對應(yīng)的wn(pj)的聯(lián)合,非葉子節(jié)點n下面包含一系列的位置頂點{pj};對于非葉子節(jié)點n,{ei}表示n下的節(jié)點,wn(n)初始化為空,若(t,dg(ei,t))在wn(n)沒有相應(yīng)的值則將(t,dg(ei,t))添加到預(yù)設(shè)的所有查詢關(guān)鍵字對應(yīng)的半徑字領(lǐng)域表中,若有值則將所述半徑字鄰域表中非葉子節(jié)點n對應(yīng)的值更新為min(dg(n,t),dg(ei,t)),其中,(t,dg(ei,t))為關(guān)鍵字t在所述半徑字鄰域表中對應(yīng)的值。具體的,頂點p可以是根節(jié)點,如果是根節(jié)點,則包含位置信息。頂點p可以是包含位置信息的節(jié)點,所以它是包含位置信息的所有可能節(jié)點,包括根節(jié)點。另外,所述預(yù)設(shè)的所有查詢關(guān)鍵字對應(yīng)的半徑字領(lǐng)域表:是根據(jù)樹建立起來的,其中樹中的有葉子節(jié)點p,和非葉子節(jié)點n,首先算葉子節(jié)點的值,然后算非葉子節(jié)點的值,所以是葉子節(jié)點到非葉子節(jié)點,是一種自下到上的順序。比如,以下所示表格為所述預(yù)設(shè)的所有查詢關(guān)鍵字對應(yīng)的半徑字領(lǐng)域表。q.ψabbey...ancientcatholicromanhistory...dg(p1,ti)0...111-...dg(p2,ti)-...-001...dg(n,ti)0...1001...具體的,開始時初始化,使得所述預(yù)設(shè)的所有查詢關(guān)鍵字對應(yīng)的半徑字領(lǐng)域表為空,創(chuàng)建模塊的工作過程就是填充這張表。其中:abbey,ancient,catholic,roman,history為所述半徑字領(lǐng)域表中關(guān)鍵字。(t,d(p,v)):表示頂點v的文檔信息中,有查詢關(guān)鍵字t,則對應(yīng)的值就會插入到半徑字鄰域表中。(t,dg(ei,t)):表示關(guān)鍵字t,在半徑字鄰域表中對應(yīng)的值。此處的ei就是上表中的p1,p2,即dg(ei,t)就是表中dg(p1,ti)對應(yīng)的值。min(dg(n,t),dg(ei,t)):就是表中dg(n,ti)的值去掉所在列的最小值。比如,catholic所在的列,有值1,0所以min(dg(n,t),dg(ei,t))的值為0,也就是dg(n,ti)的值。由于在根據(jù)ksp算法構(gòu)建tqsp的時候可能會遇到以下兩種情況:(i)遍歷完這個圖后仍未找到包含輸入查詢關(guān)鍵字的tp,(ii)找到了tp,但是tp的排序分數(shù)f大于θ(當(dāng)前已經(jīng)找到的第k個tp的排序分數(shù))。其中,tqsp為松散度最小的qsp針對情況。對于(i)的情況,在rdf圖中,讓表示以p為根節(jié)點子樹不能包含所有的查詢關(guān)鍵字。對于給定的查詢關(guān)鍵字序列q.ψ,若此時的p節(jié)點為不符合條件節(jié)點。針對(ii)情況,為了提高算法的效率,定義wn(p),對位置頂點p,它的wn(p)表示從p到每一個查詢關(guān)鍵字ti的最短距離的集合{(ti,dg(p,ti))},其中dg(p,ti)≤α,表示從根節(jié)點p到包含查詢關(guān)鍵字ti的頂點的最短的距離。根據(jù)上述中對一個點的字鄰域描述,我們可以得出對節(jié)點n的字鄰域的定義,如對r-tree中的頂點n。定義wn(n),對于r-tree的節(jié)點n下面包含一系列的位置頂點{pj},wn(n)為一系列的{(ti,dg(n,ti))},其中wn(n)是節(jié)點n下所有的位置頂點{pj}對應(yīng)的wn(pj)的聯(lián)合,其中對于每個關(guān)鍵字ti,顯然dg(n,ti)≤α。根據(jù)定義wn(p)和定義wn(n),可以創(chuàng)建節(jié)點對應(yīng)的半徑字領(lǐng)域表iα即預(yù)設(shè)的所有查詢關(guān)鍵字對應(yīng)的半徑字領(lǐng)域表(α-radiuswordneighborhood表),用于提高算法效率。進一步,為了提高算法的效率,引理1:由于wn(p)表示頂點p的半徑字領(lǐng)域(α-radiuswordneighborhood)。對于給定的查詢關(guān)鍵字q.ψ={t1,...,tj,...tm},為了不失一般性,假設(shè)第j個關(guān)鍵字在wn(p)已經(jīng)有值,則以p為根節(jié)點的tp的tqsp的半徑字松散度(α-boundonthelooseness)可表示為并且引理2:由于表示以p為根節(jié)點的tp的tqsp的半徑字松散度,則對于給定的查詢序列q對應(yīng)的tp的半徑字排序分數(shù)(α-boundontherankingscore)可表示為且引理3:由于wn(n)表示頂點n的半徑字領(lǐng)域(α-radiuswordneighborhood),查詢關(guān)鍵字q.ψ={t1...,tj...,tm},為了不失一般性,假設(shè)第j個關(guān)鍵字在wn(n)中已經(jīng)有相應(yīng)的值,則在n節(jié)點下以p為根節(jié)點的tp對應(yīng)的所有的tqsp可表示為并且引理4:由于表示以在節(jié)點n下以p為根節(jié)點的tp的tqsp對應(yīng)的半徑字松散度,對于給定的查詢序列q,則在節(jié)點n下以p為根節(jié)點的所有的tp的半徑字松散度可表示為其中s(q,n)表示q和n之間最小的空間距離,且根據(jù)引理2我們得出刪除規(guī)則2,根據(jù)引理4得出刪除規(guī)則3,來提高算法的效率,具體刪除規(guī)則如下:刪除規(guī)則2:對于給定的查詢序列q,θ表示第k個候選tqsp的rankingscore。表示以p為根節(jié)點的tp的tqsp的α-boundontherankingscore。當(dāng)時tp不是我們要查的結(jié)果,p可以被刪除。刪除規(guī)則3:對于給定的查詢序列q,θ表示第k個候選tqsp的rankingscore,表示節(jié)點n下以p為根節(jié)點的tp的tqsp的α-boundontherankingscore,若則在n節(jié)點下任何節(jié)點都不滿足條件,n可以被刪除。基于ksp算法的資源描述框架查詢系統(tǒng),主要是實現(xiàn)圖上關(guān)鍵字的搜索和rdf數(shù)據(jù)上關(guān)鍵字的搜索:由于關(guān)鍵字檢索對用戶的友好性,不僅用戶檢索網(wǎng)絡(luò)數(shù)據(jù),而且用于檢索xml文檔,關(guān)系型數(shù)據(jù)庫,和圖。傳統(tǒng)上圖的搜索算法將查詢轉(zhuǎn)化為在特征空間上的搜索,例如路徑,頻繁模式,和序列。這種搜索算法更多的關(guān)注圖的結(jié)構(gòu)而不是圖的語義內(nèi)容。圖上關(guān)鍵字的查詢通過利用內(nèi)容和鏈接結(jié)構(gòu)兩者來確定圖中一組密集鏈接的節(jié)點。由于這兩種信息的重新實施,可提高結(jié)果的整體質(zhì)量。而rdf數(shù)據(jù)上關(guān)鍵字的搜索,由于rdf數(shù)據(jù)是一種特殊類型的圖數(shù)據(jù)也可以提供查詢的效率。在本說明書的描述中,參考術(shù)語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點包含于本發(fā)明的至少一個實施例或示例中。在本說明書中,對上述術(shù)語的示意性表述不必須針對的是相同的實施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點可以在任一個或多個實施例或示例中以合適的方式結(jié)合。此外,在不相互矛盾的情況下,本領(lǐng)域的技術(shù)人員可以將本說明書中描述的不同實施例或示例以及不同實施例或示例的特征進行結(jié)合和組合。盡管上面已經(jīng)示出和描述了本發(fā)明的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本發(fā)明的限制,本領(lǐng)域的普通技術(shù)人員在本發(fā)明的范圍內(nèi)可以對上述實施例進行變化、修改、替換和變型。當(dāng)前第1頁12
      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1