欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種存儲(chǔ)優(yōu)化的語(yǔ)義數(shù)據(jù)查詢系統(tǒng)的制作方法

文檔序號(hào):6429019閱讀:264來(lái)源:國(guó)知局
專利名稱:一種存儲(chǔ)優(yōu)化的語(yǔ)義數(shù)據(jù)查詢系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明屬于語(yǔ)義網(wǎng)的資源描述框架數(shù)據(jù)存儲(chǔ)及其查詢領(lǐng)域,具體涉及一種包含優(yōu)化的存儲(chǔ)模型和基于該優(yōu)化模型基礎(chǔ)上的語(yǔ)義數(shù)據(jù)查詢系統(tǒng)。
背景技術(shù)
語(yǔ)義網(wǎng)是由萬(wàn)維網(wǎng)的創(chuàng)始人Tim Berners-Lee提出的關(guān)于下一代互聯(lián)網(wǎng)的設(shè)想。它通過(guò)定義相應(yīng)的描述標(biāo)準(zhǔn)使得數(shù)據(jù)更加結(jié)構(gòu)化,通過(guò)向數(shù)據(jù)添加規(guī)則和語(yǔ)義,使得這些數(shù)據(jù)能夠被機(jī)器處理。在七層語(yǔ)義網(wǎng)架構(gòu)中,可擴(kuò)展標(biāo)識(shí)語(yǔ)言(Extensible Markup Language, XML) {^ ^ ^, [^^^ ! (Resource Description Framework, RDF)作為描述語(yǔ)義網(wǎng)數(shù)據(jù)的通用語(yǔ)言,是語(yǔ)義網(wǎng)描述數(shù)據(jù)的基礎(chǔ),資源描述框架的層次架構(gòu)之上可以使用資源描述框架模式(Resource Description Framework Schema, RDFS)和網(wǎng)絡(luò)本體語(yǔ)言(Web Ontology Language,OWL),通過(guò)一些內(nèi)建的推理規(guī)則,能夠?qū)Y源描述框架數(shù)據(jù)進(jìn)行邏輯推理操作。語(yǔ)義數(shù)據(jù)查詢語(yǔ)言(Simple Protocol and Query Language, SPARQL)已經(jīng)成為查詢資源描述框架數(shù)據(jù)的推薦標(biāo)準(zhǔn),語(yǔ)法和結(jié)構(gòu)化查詢語(yǔ)言(Mructured Query Language, SQL)相似,但又有不同的特點(diǎn)。因此,如何在特定的存儲(chǔ)模型上實(shí)現(xiàn)語(yǔ)義數(shù)據(jù)查詢并對(duì)其進(jìn)行查詢的優(yōu)化成為研究的熱點(diǎn)。傳統(tǒng)的存儲(chǔ)資源描述框架數(shù)據(jù)的方式為三元組表,這些方式主要有基于關(guān)系數(shù)據(jù)庫(kù)的存儲(chǔ)方式和基于磁盤的本地文件存儲(chǔ)方式。測(cè)試表明,三元組表或相似的方式存儲(chǔ)空間利用率和查詢效率都不是很高。垂直分割方式為了優(yōu)化三元組的方式提出了按照屬性進(jìn)行分割,每個(gè)屬性對(duì)應(yīng)一個(gè)表,使得存儲(chǔ)空間可以大大的較少,在查詢單值屬性可以快速的得到特定屬性的所有結(jié)果。同時(shí)注意到資源描述框架數(shù)據(jù)一般擁有相關(guān)的模式信息,可以使用模式信息對(duì)分割方式進(jìn)行進(jìn)一步的優(yōu)化。而隨著硬件技術(shù)的不斷發(fā)展,內(nèi)存容量也越來(lái)越大,構(gòu)建大規(guī)模的基于內(nèi)存的資源描述框架數(shù)據(jù)存儲(chǔ)系統(tǒng)成為可能。首先內(nèi)存能夠提供相當(dāng)快的訪問(wèn)速度,可以對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)的操作,節(jié)省磁盤的開銷,如果在內(nèi)存中設(shè)計(jì)一個(gè)存儲(chǔ)結(jié)構(gòu)良好的資源描述框架存儲(chǔ)系統(tǒng),可以進(jìn)一步的提高查詢和分析的效率?;趦?nèi)存的資源描述框架存儲(chǔ)結(jié)構(gòu)仍然處于不斷的研究和完善階段,構(gòu)建一個(gè)基于內(nèi)存的優(yōu)化的存儲(chǔ)模型和查詢系統(tǒng)還是相當(dāng)具有研究意義。研究表明,查詢語(yǔ)句的執(zhí)行順序?qū)Σ樵兊男阅苡绊戄^大。而語(yǔ)義數(shù)據(jù)查詢中基本圖模式(Basic Graph Pattern, BGP)是語(yǔ)義數(shù)據(jù)查詢語(yǔ)言非常重要的組成部分,因此優(yōu)化的主要工作是對(duì)基本圖模式的優(yōu)化。傳統(tǒng)的使用關(guān)系數(shù)據(jù)庫(kù)作為后端的資源描述框架數(shù)據(jù)存儲(chǔ)系統(tǒng),由于直接將語(yǔ)義數(shù)據(jù)查詢語(yǔ)言轉(zhuǎn)化為結(jié)構(gòu)化查詢語(yǔ)言,因此一般不需要直接對(duì)語(yǔ)義數(shù)據(jù)查詢語(yǔ)言進(jìn)行優(yōu)化,直接使用關(guān)系數(shù)據(jù)庫(kù)的結(jié)構(gòu)化查詢語(yǔ)言優(yōu)化引擎來(lái)實(shí)現(xiàn)。在優(yōu)化的過(guò)程中,一般使用選擇性評(píng)估來(lái)估計(jì)查詢的代價(jià)大小。基于不同的存儲(chǔ)模型有不同的選擇性評(píng)估方法。一般的資源描述框架數(shù)據(jù)都有相應(yīng)的模式信息,模式信息定義了實(shí)例空間數(shù)據(jù)使用的詞匯。可以使用模式空間的詞匯對(duì)實(shí)例空間的存儲(chǔ)結(jié)構(gòu)進(jìn)行優(yōu)化。本發(fā)明提出的基于內(nèi)存的存儲(chǔ)系統(tǒng)利用模式信息對(duì)存儲(chǔ)結(jié)構(gòu)進(jìn)行存儲(chǔ)優(yōu)化的方法可以達(dá)到提高存儲(chǔ)空間利用率,并且達(dá)到提高查詢的性能。同時(shí)通過(guò)支持語(yǔ)義數(shù)據(jù)查詢語(yǔ)言,并對(duì)查詢的過(guò)程使用選擇性評(píng)估和貪婪算法生成優(yōu)化的查詢計(jì)劃,可以大大提高查詢的速度。實(shí)驗(yàn)表明,使用模式信息對(duì)實(shí)例空間的數(shù)據(jù)進(jìn)行組織存儲(chǔ)在保證存儲(chǔ)空間利用率的前提下,可以提高查詢的效率。而在特定的優(yōu)化存儲(chǔ)模型上進(jìn)行語(yǔ)義數(shù)據(jù)查詢的優(yōu)化可以進(jìn)一步提高系統(tǒng)的查詢效率。

發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種存儲(chǔ)優(yōu)化的語(yǔ)義數(shù)據(jù)查詢系統(tǒng),該系統(tǒng)可以使得資源描述框架數(shù)據(jù)能夠高效地存儲(chǔ)并被快速地查詢。本發(fā)明提供的一種存儲(chǔ)優(yōu)化的語(yǔ)義數(shù)據(jù)查詢系統(tǒng),其特征在于,該系統(tǒng)包括語(yǔ)義數(shù)據(jù)導(dǎo)入模塊、語(yǔ)義數(shù)據(jù)存儲(chǔ)管理模塊、存儲(chǔ)數(shù)據(jù)持久化模塊和語(yǔ)義數(shù)據(jù)查詢模塊;語(yǔ)義數(shù)據(jù)導(dǎo)入模塊用于將各種格式的數(shù)據(jù)轉(zhuǎn)換成合適的格式,并和數(shù)據(jù)存儲(chǔ)管理模塊進(jìn)行交互完成數(shù)據(jù)的導(dǎo)入工作;語(yǔ)義數(shù)據(jù)存儲(chǔ)管理模塊負(fù)責(zé)整個(gè)系統(tǒng)的資源描述框架數(shù)據(jù)的存儲(chǔ)和管理;它接受來(lái)自于語(yǔ)義數(shù)據(jù)導(dǎo)入模塊做產(chǎn)生的格式化數(shù)據(jù),將數(shù)據(jù)存入語(yǔ)義數(shù)據(jù)存儲(chǔ)管理模塊當(dāng)中; 它與語(yǔ)義數(shù)據(jù)查詢模塊進(jìn)行交互,接受來(lái)自語(yǔ)義數(shù)據(jù)查詢模塊的數(shù)據(jù)查詢請(qǐng)求,并將符合條件的結(jié)果記錄返回給語(yǔ)義數(shù)據(jù)查詢模塊;它與存儲(chǔ)數(shù)據(jù)持久化模塊進(jìn)行交互,在整個(gè)系統(tǒng)退出前,將要序列化的數(shù)據(jù)傳輸給存儲(chǔ)數(shù)據(jù)持久化模塊,并在整個(gè)系統(tǒng)初始化的過(guò)程中, 將序列化的數(shù)據(jù)直接映像到內(nèi)存中;存儲(chǔ)數(shù)據(jù)持久化模塊用于與語(yǔ)義數(shù)據(jù)存儲(chǔ)管理模塊進(jìn)行交互,在系統(tǒng)退出時(shí),將內(nèi)存數(shù)據(jù)存儲(chǔ)到文件系統(tǒng)中,以保證數(shù)據(jù)的持久性;在系統(tǒng)初始化時(shí),將文件數(shù)據(jù)傳遞給模塊;語(yǔ)義查詢優(yōu)化模塊用于將用戶的查詢語(yǔ)句轉(zhuǎn)換成系統(tǒng)能執(zhí)行的特定格式,并將數(shù)據(jù)請(qǐng)求發(fā)送給語(yǔ)義數(shù)據(jù)存儲(chǔ)管理模塊,得到符合條件的記錄,并將結(jié)果返回給用戶。本發(fā)明將資源描述框架數(shù)據(jù)存儲(chǔ)優(yōu)化模型和語(yǔ)義數(shù)據(jù)查詢優(yōu)化相結(jié)合,提出了一種高效的數(shù)據(jù)查詢系統(tǒng)。該系統(tǒng)具有以下特點(diǎn)和優(yōu)勢(shì)(1)基于主存的方法,將三元組轉(zhuǎn)化為標(biāo)識(shí)符(整型ID)進(jìn)行存儲(chǔ),采用基于屬性的垂直分割方法并利用模式數(shù)據(jù)的信息來(lái)組織存儲(chǔ)結(jié)構(gòu),極大的提高了存儲(chǔ)空間的利用率,同時(shí)方便查詢的操作;(2)將語(yǔ)義數(shù)據(jù)查詢語(yǔ)句進(jìn)行查詢圖的轉(zhuǎn)換,并對(duì)底層數(shù)據(jù)進(jìn)行統(tǒng)計(jì),利用貪婪算法實(shí)現(xiàn)了優(yōu)化的查詢計(jì)劃,提高了語(yǔ)義數(shù)據(jù)查詢的性能。


圖1為語(yǔ)義數(shù)據(jù)查詢系統(tǒng)的總體結(jié)構(gòu)示意圖;圖2為語(yǔ)義數(shù)據(jù)導(dǎo)入模塊示意圖;圖3為語(yǔ)義數(shù)據(jù)存儲(chǔ)模型管理模塊示意圖;圖4為字符串與標(biāo)識(shí)符映射模塊數(shù)據(jù)結(jié)構(gòu)示意圖;圖5為資源描述框架數(shù)據(jù)存儲(chǔ)優(yōu)化模型示意圖;圖6為實(shí)例空間中謂詞為特定類型(rdf:type)的三元組的劃分方式;
圖7為數(shù)據(jù)查詢模塊示意圖;圖8為語(yǔ)義數(shù)據(jù)查詢語(yǔ)句的連接操作轉(zhuǎn)換示意具體實(shí)施例方式下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明。如圖1所示,本發(fā)明主要包括四個(gè)模塊語(yǔ)義數(shù)據(jù)導(dǎo)入模塊1、語(yǔ)義數(shù)據(jù)存儲(chǔ)管理模塊2、存儲(chǔ)數(shù)據(jù)持久化模塊3和語(yǔ)義數(shù)據(jù)查詢模塊4。語(yǔ)義數(shù)據(jù)存儲(chǔ)管理模塊2主要負(fù)責(zé)整個(gè)系統(tǒng)的資源描述框架數(shù)據(jù)的存儲(chǔ)和管理。 它接受來(lái)自于語(yǔ)義數(shù)據(jù)導(dǎo)入模塊1做產(chǎn)生的格式化數(shù)據(jù),將數(shù)據(jù)存入語(yǔ)義數(shù)據(jù)存儲(chǔ)管理模塊2當(dāng)中;它與語(yǔ)義數(shù)據(jù)查詢模塊4進(jìn)行交互,接受來(lái)自語(yǔ)義數(shù)據(jù)查詢模塊4的數(shù)據(jù)查詢請(qǐng)求,并將符合條件的結(jié)果記錄返回給語(yǔ)義數(shù)據(jù)查詢模塊4 ;它與存儲(chǔ)數(shù)據(jù)持久化模塊3進(jìn)行交互,在整個(gè)系統(tǒng)退出前,將要序列化的數(shù)據(jù)傳輸給存儲(chǔ)數(shù)據(jù)持久化模塊3,并在整個(gè)系統(tǒng)初始化的過(guò)程中,將序列化的數(shù)據(jù)直接映像到內(nèi)存中。數(shù)據(jù)導(dǎo)入模塊1主要將各種格式的數(shù)據(jù)轉(zhuǎn)換成統(tǒng)一的格式,并和數(shù)據(jù)存儲(chǔ)管理模塊2進(jìn)行交互完成數(shù)據(jù)的導(dǎo)入工作。存儲(chǔ)數(shù)據(jù)持久化模塊3的主要作用是與語(yǔ)義數(shù)據(jù)存儲(chǔ)管理模塊2進(jìn)行交互,在系統(tǒng)退出時(shí),將內(nèi)存數(shù)據(jù)存儲(chǔ)到文件系統(tǒng)中,以保證數(shù)據(jù)的持久性;在系統(tǒng)初始化時(shí),將文件數(shù)據(jù)傳遞給模塊2。查詢優(yōu)化模塊4將用戶的查詢語(yǔ)句轉(zhuǎn)換成系統(tǒng)能執(zhí)行的特定格式,并將數(shù)據(jù)請(qǐng)求發(fā)送給數(shù)據(jù)存儲(chǔ)管理模塊2,得到符合條件的記錄,并將結(jié)果返回給用戶。下面分別舉例說(shuō)明上述各個(gè)部件的具體構(gòu)成。如圖2所示,語(yǔ)義數(shù)據(jù)導(dǎo)入模塊1包括語(yǔ)義數(shù)據(jù)解析模塊1. 1、數(shù)據(jù)分類模塊1. 2 和數(shù)據(jù)格式化模塊1. 3。由于語(yǔ)義數(shù)據(jù)的格式各種各樣,語(yǔ)義數(shù)據(jù)解析模塊1. 1的作用是將各種格式的實(shí)例數(shù)據(jù)解析成系統(tǒng)可接受的形如 < 主體,謂詞,客體 > 這樣的三元組格式,并將該格式的數(shù)據(jù)和模式數(shù)據(jù)傳遞給數(shù)據(jù)分類模塊1. 2。數(shù)據(jù)分類模塊1. 2將模塊1. 1傳來(lái)的三元組格式數(shù)據(jù)根據(jù)模式數(shù)據(jù)劃分成不同的類別的數(shù)據(jù),并將分類之后的數(shù)據(jù)傳遞給數(shù)據(jù)格式化模塊1. 3。數(shù)據(jù)格式化模塊1. 3的主要作用是將接收的數(shù)據(jù)格式化成可以存儲(chǔ)的數(shù)據(jù)格式。如圖3所示,語(yǔ)義數(shù)據(jù)存儲(chǔ)管理模塊包括數(shù)據(jù)存儲(chǔ)器2. 1,數(shù)據(jù)查詢器2. 2,字符串管理器2. 3,索引管理器2. 4,統(tǒng)計(jì)信息管理器2. 5,實(shí)例數(shù)據(jù)管理器2. 6,以及存儲(chǔ)空間管理器 2. 7。數(shù)據(jù)存儲(chǔ)管理模塊2是整個(gè)系統(tǒng)的核心模塊,主要的所用是從格式化的數(shù)據(jù)建立起優(yōu)化的存儲(chǔ)模型,并提供數(shù)據(jù)檢索的功能。數(shù)據(jù)存儲(chǔ)器2. 1在接收語(yǔ)義數(shù)據(jù)導(dǎo)入模塊1所產(chǎn)生的格式化數(shù)據(jù)之后,首先將三元組的各個(gè)分量傳遞給字符串管理器2. 3,再將該三元組按照模式數(shù)據(jù)分別傳遞給索引管理器2. 4、統(tǒng)計(jì)信息管理器2. 5和實(shí)例數(shù)據(jù)管理器2. 6。統(tǒng)計(jì)信息管理器2. 5統(tǒng)計(jì)各個(gè)三元組的各個(gè)分量的出現(xiàn)情況,并存儲(chǔ)統(tǒng)計(jì)信息;索引管理器2. 4主要的作用是建立實(shí)例數(shù)據(jù)的索引,以便加快數(shù)據(jù)的查詢。
在字符串管理器2. 3中,主要建立的是字符串與其標(biāo)識(shí)符之間的映射從字符串到標(biāo)識(shí)符,從標(biāo)識(shí)符到字符串都需要能夠快速地進(jìn)行轉(zhuǎn)換。圖5展示了字符串管理器2. 3 所采用的數(shù)據(jù)結(jié)構(gòu)。字符串/標(biāo)識(shí)符映射表采用基于內(nèi)存的存儲(chǔ)長(zhǎng)度可變記錄的數(shù)據(jù)結(jié)構(gòu)來(lái)實(shí)現(xiàn)。表頭的元數(shù)據(jù)存儲(chǔ)部分(Metadata)記錄該結(jié)構(gòu)的使用情況的信息。變長(zhǎng)表可以通過(guò)偏移值 (offset)逐條訪問(wèn)記錄。其中每條記錄包含了該記錄的長(zhǎng)度(length),該字符串映射的標(biāo)識(shí)符(ID),該記錄的字符串值(string) 0標(biāo)識(shí)符/偏移映射表采用基于內(nèi)存的存儲(chǔ)長(zhǎng)度固定記錄的數(shù)據(jù)結(jié)構(gòu)來(lái)實(shí)現(xiàn)。表頭的元數(shù)據(jù)存儲(chǔ)部分(Metadata)記錄該結(jié)構(gòu)的使用情況的信息。由于表格中每條記錄都是固定長(zhǎng)度的,因此每條記錄不需要單獨(dú)存儲(chǔ)該記錄的長(zhǎng)度,記錄的長(zhǎng)度由表格的元數(shù)據(jù)統(tǒng)一存儲(chǔ)。表格中的每條記錄包含了標(biāo)識(shí)符(ID)和該標(biāo)識(shí)符在字符串與標(biāo)識(shí)符映射表中的起始偏移值(offset)。因此可以通過(guò)標(biāo)識(shí)符/偏移映射表可以快速通過(guò)標(biāo)識(shí)符得到字符串ο字符串哈希映射表采用內(nèi)存緩沖區(qū)來(lái)實(shí)現(xiàn),一般將裝填因子設(shè)計(jì)低于0. 5就可以構(gòu)建沖突率較小的哈希表。表中存儲(chǔ)的哈希到對(duì)應(yīng)位置的字符串在字符串/標(biāo)識(shí)符映射表中的偏移值(offset)。通過(guò)計(jì)算一個(gè)字符串的哈希值(hashktring)),便可得到哈希表的偏移值,進(jìn)而得到該字符串在字符串/標(biāo)識(shí)符映射表中的偏移值(offset),就可以得到該字符串的標(biāo)識(shí)符。插入字符串時(shí),其中各個(gè)表的工作流程為(1)當(dāng)要向字符串表中添加一條新的記錄時(shí),首先在字符串與標(biāo)識(shí)符映射表中找到下一個(gè)偏移位置,然后在標(biāo)識(shí)符/偏移映射表中分配一個(gè)新的標(biāo)識(shí)符值,將該標(biāo)識(shí)符值和字符串的長(zhǎng)度以及字符串,并將它們組成一條記錄,插入到字符串/標(biāo)識(shí)符映射表中;( 將得到的標(biāo)識(shí)符值和記錄在字符串/標(biāo)識(shí)符映射表中的偏移值形成新的記錄,插入到標(biāo)識(shí)符/偏移映射表中;C3)對(duì)字符串進(jìn)行哈希得到一個(gè)哈希值,根據(jù)該哈希值可以得到字符串哈希映射表的一個(gè)存儲(chǔ)位置,將(1)中在字符串/標(biāo)識(shí)符表得到的偏移值存儲(chǔ)于該位置上。查詢字符串的標(biāo)識(shí)符時(shí),各個(gè)表格的工作流程為(1)通過(guò)線性哈希函數(shù)對(duì)字符串進(jìn)行哈希作為字符串哈希映射表的偏移值;( 從字符串哈希映射表中得到存儲(chǔ)該字符串在字符串/標(biāo)識(shí)符表格中的偏移值;C3)從字符串/標(biāo)識(shí)符表格中得到字符串的標(biāo)識(shí)符。 從標(biāo)識(shí)符到字符串的轉(zhuǎn)換,可以直接從標(biāo)識(shí)符/偏移映射表中得到字符串在字符串/標(biāo)識(shí)符表中的偏移,其過(guò)程不再贅述。實(shí)例數(shù)據(jù)管理器2. 6的主要作用是將得到的實(shí)例數(shù)據(jù)進(jìn)按照從模式數(shù)據(jù)提取出來(lái)的元數(shù)據(jù)行優(yōu)化存儲(chǔ),建立一個(gè)數(shù)據(jù)存儲(chǔ)優(yōu)化模型。數(shù)據(jù)存儲(chǔ)優(yōu)化模型如圖5所示,建立數(shù)據(jù)存儲(chǔ)優(yōu)化模型步驟為①將實(shí)例數(shù)據(jù)按照謂詞進(jìn)行分組,將謂詞相同的實(shí)例數(shù)據(jù)存儲(chǔ)在一起,按照謂詞的不同分別執(zhí)行②③④。②對(duì)于謂詞為類型(rdf:type)的實(shí)例數(shù)據(jù)按照客體的不同進(jìn)一步劃分。過(guò)程如圖6所示,將客體相同的實(shí)例數(shù)據(jù)存儲(chǔ)在一起,并將省略客體的存儲(chǔ);③對(duì)于謂詞為客體屬性類型(Object Property)的實(shí)例數(shù)據(jù),按照傳統(tǒng)的垂直分割的方式進(jìn)行存儲(chǔ),即以按照謂詞、主體、客體的方式進(jìn)行存儲(chǔ)。由于這類謂詞描述的實(shí)例數(shù)據(jù)一般具有多個(gè)客體,因此可以同時(shí)建立 < 謂詞,客體,主體 > 和 < 謂詞,主體,客體 > 類型的表格,以便能夠同時(shí)快速的支持由謂詞和客體查找主體或者由謂詞和主體查找客體這兩種查詢。④對(duì)于屬于數(shù)據(jù)類型屬性(Datatype Property)的謂詞所描述的實(shí)例數(shù)據(jù),只做匹配和信息檢索操作。因此如果不需要進(jìn)行精確匹配操作,可以只存儲(chǔ) < 謂詞,主體,客體 >類型的表格,可以進(jìn)一步的減少存儲(chǔ)的空間。數(shù)據(jù)查詢器2. 2的主要作用是(1)響應(yīng)語(yǔ)義數(shù)據(jù)查詢模塊4的字符串-標(biāo)識(shí)符查詢的請(qǐng)求,將字符串轉(zhuǎn)換成標(biāo)識(shí)符或者將標(biāo)識(shí)符轉(zhuǎn)換成字符串返回給模塊4 ;(幻響應(yīng)語(yǔ)義數(shù)據(jù)查詢模塊4的統(tǒng)計(jì)信息查詢的請(qǐng)求,與統(tǒng)計(jì)信息管理器2. 5交互,將所要求查詢的統(tǒng)計(jì)信息返回給模塊4 ; (3)將符合語(yǔ)義數(shù)據(jù)查詢模塊4傳遞來(lái)的模式返回給模塊4。字符串-標(biāo)識(shí)符映射的查詢前面已經(jīng)描述,這里不再贅述。這里主要描述模式查詢的流程①根據(jù)謂詞定位到相應(yīng)的存儲(chǔ)塊,若主體和客體都未知?jiǎng)t返回該存儲(chǔ)塊的所有數(shù)據(jù),否則執(zhí)行步驟②; ②若主體已知,執(zhí)行步驟③,否則執(zhí)行步驟④;③查詢 < 謂詞,主體,客體 > 表,進(jìn)行二分查找定位到第一個(gè)主體,將后續(xù)主體等于已知標(biāo)識(shí)符的記錄返回;④查詢〈謂詞,客體,主體〉 表,進(jìn)行二分查找定位到第一個(gè)客體,將后續(xù)客體等于已知標(biāo)識(shí)符的記錄返回。統(tǒng)計(jì)信息的查詢與根據(jù)模式查詢的流程相似,不再贅述。存儲(chǔ)空間管理器2. 7的主要功能是負(fù)責(zé)整個(gè)系統(tǒng)的內(nèi)存空間的分配,管理整個(gè)系統(tǒng)的存儲(chǔ)空間,并與數(shù)據(jù)存儲(chǔ)持久化模塊3進(jìn)行交互。如圖7所示語(yǔ)義數(shù)據(jù)查詢模塊4的主要由查詢語(yǔ)言解析器4. 1,查詢語(yǔ)言轉(zhuǎn)換器 4. 2,查詢計(jì)劃生成器4. 3,以及查詢計(jì)劃執(zhí)行器4. 4組成。查詢語(yǔ)言解析器4. 1主要作用是首先,將用戶輸入的查詢語(yǔ)句轉(zhuǎn)化為分詞 (Token)的格式;然后從這些分詞中獲取查詢關(guān)鍵詞,識(shí)別查詢語(yǔ)句中所有變量,識(shí)別投影變量及查詢條件等。查詢語(yǔ)言轉(zhuǎn)換器4. 2目的是為了能夠方便對(duì)底層存儲(chǔ)結(jié)構(gòu)的操作,根據(jù)查詢語(yǔ)句進(jìn)行查詢,從而形成存儲(chǔ)和查詢的交互接口。查詢轉(zhuǎn)換主要功能包括結(jié)果變量的收集和轉(zhuǎn)換;查詢語(yǔ)句中基本查詢圖模式(Basic Graph Pattern, BGP)的轉(zhuǎn)換;查詢連接操作的表
7J\ ο(1)變量的收集。首先,將所有的變量進(jìn)行標(biāo)識(shí)符編碼,存儲(chǔ)變量與標(biāo)識(shí)符之間的映射關(guān)系;然后,解析選擇(SELECT)語(yǔ)句之后的投影變量,從前面得到的變量標(biāo)識(shí)符之間的映射關(guān)系找到相應(yīng)的標(biāo)識(shí)符。(2)基本查詢圖模式的轉(zhuǎn)換。對(duì)查詢語(yǔ)句中的三元組結(jié)點(diǎn)(Triple Node)進(jìn)行轉(zhuǎn)換的主要目的是使查詢的基本圖模式和底層的存儲(chǔ)模型聯(lián)系起來(lái),實(shí)現(xiàn)查詢和底層存儲(chǔ)結(jié)構(gòu)的相互操作。將查詢語(yǔ)句中每一個(gè)三元組結(jié)點(diǎn)使用一個(gè)數(shù)據(jù)結(jié)構(gòu)進(jìn)行表示,主要的作用是標(biāo)識(shí)該節(jié)點(diǎn)中的主體、謂詞、客體以及主體、謂詞、客體是否為變量并用一個(gè)標(biāo)識(shí)符標(biāo)識(shí)該三元組節(jié)點(diǎn)。使用這些信息,就可可以確定單個(gè)三元組節(jié)點(diǎn)(模式)查詢的類型。C3)查詢連接操作的表示。根據(jù)三元組結(jié)點(diǎn)的標(biāo)識(shí)符和變量關(guān)系,可分析查詢語(yǔ)句中三元組結(jié)點(diǎn)之間的連接操作。如果三元組結(jié)點(diǎn)之間存在相同的變量,那么兩個(gè)三元組之間就需要進(jìn)行連接操作。將其中的任意一個(gè)三元組節(jié)點(diǎn)標(biāo)為起始三元組節(jié)點(diǎn),另一個(gè)為終止三元組節(jié)點(diǎn)。則該連接操作可以用包含起始三元組節(jié)點(diǎn),終止三元組節(jié)點(diǎn)和兩節(jié)點(diǎn)共同變量標(biāo)識(shí)符來(lái)的結(jié)構(gòu)體來(lái)表示。查詢系統(tǒng)通過(guò)使用該結(jié)構(gòu)(連接操作邊)表示三元組結(jié)點(diǎn)之間的連接操作。通過(guò)遍歷所有的結(jié)點(diǎn),建立相應(yīng)結(jié)點(diǎn)之間的連接操作關(guān)系。如圖8(1)中的查詢語(yǔ)句,可以形成圖8( 的查詢連接操作。查詢計(jì)劃生成器4. 3的主要作用是生成查詢計(jì)劃,并存儲(chǔ)在查詢計(jì)劃信息結(jié)構(gòu)中,并對(duì)該查詢計(jì)劃進(jìn)行優(yōu)化,使得查詢能夠正確高效地執(zhí)行。查詢計(jì)劃信息結(jié)構(gòu)主要包括三元組節(jié)點(diǎn)先后執(zhí)行的順序、投影變量和維度(投影變量在結(jié)果集中的位置)之間的關(guān)系和三元組節(jié)點(diǎn)的連接信息。三元組結(jié)點(diǎn)的執(zhí)行順序的生成,主要是保存三元組結(jié)點(diǎn)的執(zhí)行順序,以便查詢能夠順序的執(zhí)行。投影變量和維度之間的關(guān)系,主要是保存查詢連接操作之后結(jié)果集和投影變量之間的關(guān)系,以便進(jìn)行下一步的操作。三元組節(jié)點(diǎn)的連接操作信息,主要保存和中間結(jié)果進(jìn)行連接操作的三元組的信息,主要包含變量的個(gè)數(shù),執(zhí)行連接操作的的類型和共同變量的標(biāo)識(shí)符。查詢計(jì)劃的形成的主要步驟是首先,選取基本查詢圖模式中的第一個(gè)三元組結(jié)點(diǎn),然后根據(jù)該三元組結(jié)點(diǎn)的標(biāo)識(shí)符,查找和該三元組結(jié)點(diǎn)進(jìn)行連接操作的相關(guān)的的結(jié)點(diǎn), 加入到查詢計(jì)劃的結(jié)點(diǎn)執(zhí)行順序表中;同時(shí)對(duì)查詢連接操作后的變量進(jìn)行收集,并且形成變量和結(jié)果集的對(duì)應(yīng)關(guān)系。連接操作執(zhí)行完后根據(jù)查詢圖給出的投影操作,進(jìn)行投影變量的獲取,最后形成查詢計(jì)劃的工作流。語(yǔ)義數(shù)據(jù)查詢優(yōu)化主要是利用統(tǒng)計(jì)信息來(lái)建立代價(jià)模型,利用該模型調(diào)整模式查詢和連接的執(zhí)行順序。代價(jià)模型主要包含兩方面三元組節(jié)點(diǎn)(模式)的選擇性 (selectivity)的計(jì)算;查詢連接操作選擇性的計(jì)算。下面分別介紹其流程。1)三元組結(jié)點(diǎn)的選擇性計(jì)算。①判斷三元組節(jié)點(diǎn)中變量的個(gè)數(shù),如果為1則執(zhí)行 ②,否則執(zhí)行③;②根據(jù)已知的兩個(gè)常量對(duì)底層 < 謂詞,客體,主體 > 表進(jìn)行查詢。由于〈謂詞,客體,主體〉表已經(jīng)排序,通過(guò)二分查找可以迅速的得到結(jié)果集的大??;③對(duì)于有兩個(gè)變量的三元組結(jié)點(diǎn),由于本系統(tǒng)已經(jīng)對(duì)相應(yīng)的結(jié)果集進(jìn)行統(tǒng)計(jì)并存儲(chǔ),而存儲(chǔ)的統(tǒng)計(jì)信息格式為〈謂詞標(biāo)識(shí)符(pid),數(shù)量(count)〉,因此,可以在相應(yīng)的統(tǒng)計(jì)信息表中得到相關(guān)的統(tǒng)計(jì)信息。這樣就可以得出每個(gè)三元組節(jié)點(diǎn)的選擇性三元組節(jié)點(diǎn)的選擇性為三元組節(jié)點(diǎn)的預(yù)估的結(jié)果集大小。2)連接操作的選擇性計(jì)算。連接操作選擇性的估計(jì)主要是為了實(shí)現(xiàn)查詢連接操作順序的調(diào)整,以便提高查詢的性能。因此需要計(jì)算查詢圖中各個(gè)連接操作邊的選擇性大小。 計(jì)算方法如下連接操作邊的選擇性=起始三元組結(jié)點(diǎn)的結(jié)果集大小X終止三元組結(jié)點(diǎn)的結(jié)果集大小。下面使用貪婪算法形成優(yōu)化的查詢計(jì)劃,步驟如下①如果查詢基本圖模式(Basic Graph Pattern)中三元組結(jié)點(diǎn)只有一個(gè),那么直接將結(jié)點(diǎn)加入到查詢計(jì)劃信息結(jié)構(gòu)中,并且建立變量之間的關(guān)系;查詢計(jì)劃生成完畢,直接返回。②如果查詢的基本圖模式(Basic Graph Pattern)中三元組結(jié)點(diǎn)個(gè)數(shù)大于一個(gè), 按照上面介紹的計(jì)算三元組結(jié)點(diǎn)和連接操作邊選擇性方法計(jì)算三元組結(jié)點(diǎn)的選擇性和連接操作的選擇性。③從連接操作中根據(jù)選擇性選取代價(jià)最少的連接,獲取連接操作包含的兩個(gè)三元組結(jié)點(diǎn),并按照三元組結(jié)點(diǎn)的選擇性進(jìn)行排序,按三元組結(jié)點(diǎn)的選擇性從小到大的順序?qū)⒔Y(jié)點(diǎn)插入到查詢計(jì)劃信息結(jié)構(gòu)中;如果三元組結(jié)點(diǎn)的個(gè)數(shù)為兩個(gè),查詢計(jì)劃生成完畢,直接返回;否則,轉(zhuǎn)步驟④。④從已經(jīng)加入查詢計(jì)劃的三元組結(jié)點(diǎn)與未加入查詢計(jì)劃的三元組結(jié)點(diǎn)的連接操作中選取選擇性最小的操作,并將該連接操作中未加入查詢計(jì)劃的三元組結(jié)點(diǎn)加入到查詢計(jì)劃中。⑤循環(huán)執(zhí)行步驟④,當(dāng)所有的三元組結(jié)點(diǎn)都加入到查詢計(jì)劃中,查詢計(jì)劃生成完畢,返回。查詢執(zhí)行器4. 4的主要作用是根據(jù)生成的查詢計(jì)劃圖,執(zhí)行相關(guān)的查詢操作。由于查詢計(jì)劃是個(gè)一顆樹,所以可以從樹的根節(jié)點(diǎn)開始遍歷樹的所有節(jié)點(diǎn)完成查詢。具體的流程為①如果當(dāng)前節(jié)點(diǎn)的左兒子和右兒子都不為空,并且當(dāng)前為根節(jié)點(diǎn)執(zhí)行步驟②,若不為根節(jié)點(diǎn)執(zhí)行步驟③,若當(dāng)前節(jié)點(diǎn)為葉子節(jié)點(diǎn),執(zhí)行步驟④;②分別對(duì)左兒子和右兒子分別執(zhí)行步驟①,再執(zhí)行投影操作操作(得出最后的結(jié)果)并退出;③分別對(duì)左兒子和右兒子執(zhí)行步驟①,再執(zhí)行連接操作;④將三元組節(jié)點(diǎn)傳遞給數(shù)據(jù)存儲(chǔ)管理模塊2,進(jìn)行模式查詢。 經(jīng)過(guò)這幾個(gè)步驟,就可以得出最后的結(jié)果。本發(fā)明不僅局限于上述具體實(shí)施方式
,本領(lǐng)域一般技術(shù)人員根據(jù)本發(fā)明公開的內(nèi)容,可以采用其它多種具體實(shí)施方式
實(shí)施本發(fā)明,因此,凡是采用本發(fā)明的設(shè)計(jì)結(jié)構(gòu)和思路,做一些簡(jiǎn)單的變化或更改的設(shè)計(jì),都落入本發(fā)明保護(hù)的范圍。
權(quán)利要求
1.一種存儲(chǔ)優(yōu)化的語(yǔ)義數(shù)據(jù)查詢系統(tǒng),其特征在于,該系統(tǒng)包括語(yǔ)義數(shù)據(jù)導(dǎo)入模塊(1)、語(yǔ)義數(shù)據(jù)存儲(chǔ)管理模塊O)、存儲(chǔ)數(shù)據(jù)持久化模塊C3)和語(yǔ)義數(shù)據(jù)查詢模塊; 語(yǔ)義數(shù)據(jù)導(dǎo)入模塊(1)用于將各種格式的數(shù)據(jù)轉(zhuǎn)換成統(tǒng)一的格式,并和數(shù)據(jù)存儲(chǔ)管理模塊( 進(jìn)行交互完成數(shù)據(jù)的導(dǎo)入工作;語(yǔ)義數(shù)據(jù)存儲(chǔ)管理模塊( 負(fù)責(zé)整個(gè)系統(tǒng)的資源描述框架數(shù)據(jù)的存儲(chǔ)和管理;它接受來(lái)自于語(yǔ)義數(shù)據(jù)導(dǎo)入模塊(1)做產(chǎn)生的格式化數(shù)據(jù),將數(shù)據(jù)存入語(yǔ)義數(shù)據(jù)存儲(chǔ)管理模塊(2)當(dāng)中;它與語(yǔ)義數(shù)據(jù)查詢模塊(4)進(jìn)行交互,接受來(lái)自語(yǔ)義數(shù)據(jù)查詢模塊(4)的數(shù)據(jù)查詢請(qǐng)求,并將符合條件的結(jié)果記錄返回給語(yǔ)義數(shù)據(jù)查詢模塊(4);它與存儲(chǔ)數(shù)據(jù)持久化模塊C3)進(jìn)行交互,在整個(gè)系統(tǒng)退出前,將要序列化的數(shù)據(jù)傳輸給存儲(chǔ)數(shù)據(jù)持久化模塊(3), 并在整個(gè)系統(tǒng)初始化的過(guò)程中,將序列化的數(shù)據(jù)直接映像到內(nèi)存中;存儲(chǔ)數(shù)據(jù)持久化模塊C3)用于與語(yǔ)義數(shù)據(jù)存儲(chǔ)管理模塊( 進(jìn)行交互,在系統(tǒng)退出時(shí), 將內(nèi)存數(shù)據(jù)存儲(chǔ)到文件系統(tǒng)中,以保證數(shù)據(jù)的持久性;在系統(tǒng)初始化時(shí),將文件數(shù)據(jù)傳遞給模塊⑵;語(yǔ)義查詢優(yōu)化模塊(4)用于將用戶的查詢語(yǔ)句轉(zhuǎn)換成系統(tǒng)能執(zhí)行的格式,并將數(shù)據(jù)請(qǐng)求發(fā)送給語(yǔ)義數(shù)據(jù)存儲(chǔ)管理模塊O),得到符合條件的記錄,并將結(jié)果返回給用戶。
2.根據(jù)權(quán)利要求1所述的存儲(chǔ)優(yōu)化的語(yǔ)義數(shù)據(jù)查詢系統(tǒng),其特征在于,語(yǔ)義數(shù)據(jù)導(dǎo)入模塊(1)包括語(yǔ)義數(shù)據(jù)解析模塊(1. 1)、數(shù)據(jù)分類模塊(1. 2)和數(shù)據(jù)格式化模塊(1. 3);語(yǔ)義數(shù)據(jù)解析模塊(1. 1)用于將各種格式的實(shí)例數(shù)據(jù)解析成系統(tǒng)可接受的三元組格式,并將該格式的數(shù)據(jù)和模式數(shù)據(jù)傳遞給數(shù)據(jù)分類模塊(1.2);數(shù)據(jù)分類模塊(1. 2)將語(yǔ)義數(shù)據(jù)解析模塊(1. 1)傳來(lái)的三元組格式數(shù)據(jù)根據(jù)模式數(shù)據(jù)劃分成不同的類別的數(shù)據(jù),并將分類之后的數(shù)據(jù)傳遞給數(shù)據(jù)格式化模塊(1.3); 數(shù)據(jù)格式化模塊(1. 用于將接收的數(shù)據(jù)格式化成能夠存儲(chǔ)的數(shù)據(jù)格式。
3.根據(jù)權(quán)利要求1或2所述的存儲(chǔ)優(yōu)化的語(yǔ)義數(shù)據(jù)查詢系統(tǒng),其特征在于,語(yǔ)義數(shù)據(jù)查詢模塊(4)包括查詢語(yǔ)言解析器(4. 1)、查詢語(yǔ)言轉(zhuǎn)換器(4. 2)、查詢計(jì)劃生成器(4. 3)和查詢計(jì)劃執(zhí)行器(4. 4);查詢語(yǔ)言解析器(4. 1)用于將用戶輸入的查詢語(yǔ)句轉(zhuǎn)化為分詞的格式;然后從這些分詞中獲取查詢關(guān)鍵詞,識(shí)別查詢語(yǔ)句中所有變量,識(shí)別投影變量及查詢條件;查詢語(yǔ)言轉(zhuǎn)換器(4. 2)根據(jù)查詢語(yǔ)句進(jìn)行查詢,形成存儲(chǔ)和查詢的交互接口 ; 查詢計(jì)劃生成器(4.3)的主要作用是生成查詢計(jì)劃,并存儲(chǔ)在查詢計(jì)劃信息結(jié)構(gòu)中, 并對(duì)該查詢計(jì)劃進(jìn)行優(yōu)化,使得查詢能夠正確高效地執(zhí)行。
4.根據(jù)權(quán)利要求1或2所述的存儲(chǔ)優(yōu)化的語(yǔ)義數(shù)據(jù)查詢系統(tǒng),其特征在于,語(yǔ)義數(shù)據(jù)存儲(chǔ)管理模塊( 括數(shù)據(jù)存儲(chǔ)器(2. 1),數(shù)據(jù)查詢器(2.幻,字符串管理器(2.幻,索引管理器 (2. 4),統(tǒng)計(jì)信息管理器(2. 5),實(shí)例數(shù)據(jù)管理器(2. 6),以及存儲(chǔ)空間管理器(2. 7);數(shù)據(jù)存儲(chǔ)器(2. 1)用于在接收語(yǔ)義數(shù)據(jù)導(dǎo)入模塊(1)所產(chǎn)生的格式化數(shù)據(jù)之后,首先將三元組的各個(gè)分量傳遞給字符串管理器(2.幻,再將該三元組按照模式數(shù)據(jù)分別傳遞給索引管理器O. 4)、統(tǒng)計(jì)信息管理器(2. 和實(shí)例數(shù)據(jù)管理器0.6);統(tǒng)計(jì)信息管理器(2. 5)用于統(tǒng)計(jì)各個(gè)三元組的各個(gè)分量的出現(xiàn)情況,并存儲(chǔ)統(tǒng)計(jì)信息;索引管理器(2. 4)用于建立實(shí)例數(shù)據(jù)的索引,以便加快數(shù)據(jù)的查詢;字符串管理器(2. 3)用于建立的是字符串與其標(biāo)識(shí)符之間的映射; 實(shí)例數(shù)據(jù)管理器(2. 6)用于將得到的實(shí)例數(shù)據(jù)進(jìn)按照從模式數(shù)據(jù)提取出來(lái)的元數(shù)據(jù)行優(yōu)化存儲(chǔ),建立一個(gè)數(shù)據(jù)存儲(chǔ)優(yōu)化模型;數(shù)據(jù)查詢器(2. 用于響應(yīng)語(yǔ)義數(shù)據(jù)查詢模塊的字符串-標(biāo)識(shí)符查詢的請(qǐng)求,將字符串轉(zhuǎn)換成標(biāo)識(shí)符或者將標(biāo)識(shí)符轉(zhuǎn)換成字符串返回給語(yǔ)義數(shù)據(jù)查詢模塊;還用于響應(yīng)語(yǔ)義數(shù)據(jù)查詢模塊(4)的統(tǒng)計(jì)信息查詢的請(qǐng)求,與統(tǒng)計(jì)信息管理器(2. 5)交互,將統(tǒng)計(jì)信息返回給語(yǔ)義數(shù)據(jù)查詢模塊;并將符合語(yǔ)義數(shù)據(jù)查詢模塊(4)傳遞來(lái)的模式返回給語(yǔ)義數(shù)據(jù)查詢模塊;存儲(chǔ)空間管理器(2. 7)負(fù)責(zé)整個(gè)系統(tǒng)的內(nèi)存空間的分配,管理整個(gè)系統(tǒng)的存儲(chǔ)空間, 并與數(shù)據(jù)存儲(chǔ)持久化模塊( 進(jìn)行交互。
5.根據(jù)權(quán)利要求4述的存儲(chǔ)優(yōu)化的語(yǔ)義數(shù)據(jù)查詢系統(tǒng),其特征在于,實(shí)例數(shù)據(jù)管理器 (2. 6)建立一個(gè)數(shù)據(jù)存儲(chǔ)優(yōu)化模型的過(guò)程為將實(shí)例數(shù)據(jù)按照謂詞進(jìn)行分組,將謂詞相同的實(shí)例數(shù)據(jù)存儲(chǔ)在一起,按照謂詞的不同分別執(zhí)行下述過(guò)程A、B或C:A對(duì)于謂詞為類型(rdf:type)的實(shí)例數(shù)據(jù)按照客體的不同進(jìn)一步劃分; B對(duì)于謂詞為客體屬性類型(Objectfroperty)的實(shí)例數(shù)據(jù),按照傳統(tǒng)的垂直分割的方式進(jìn)行存儲(chǔ);C對(duì)于屬于數(shù)據(jù)類型屬性(DatatypeProperty)的謂詞所描述的實(shí)例數(shù)據(jù),只做匹配和信息檢索操作。
全文摘要
本發(fā)明公開了一種存儲(chǔ)優(yōu)化的語(yǔ)義數(shù)據(jù)查詢系統(tǒng),包括語(yǔ)義數(shù)據(jù)導(dǎo)入模塊、語(yǔ)義數(shù)據(jù)存儲(chǔ)管理模塊、存儲(chǔ)數(shù)據(jù)持久化模塊和語(yǔ)義數(shù)據(jù)查詢模塊。本系統(tǒng)支持了多種規(guī)范描述的資源描述框架數(shù)據(jù)的導(dǎo)入,并可以將存儲(chǔ)模型映射到磁盤中,可以實(shí)現(xiàn)內(nèi)存存儲(chǔ)模型的快速重現(xiàn)。系統(tǒng)通過(guò)對(duì)語(yǔ)義數(shù)據(jù)查詢進(jìn)行轉(zhuǎn)換和處理,形成底層存儲(chǔ)模型可操作的查詢圖模型;通過(guò)對(duì)底層存儲(chǔ)數(shù)據(jù)進(jìn)行統(tǒng)計(jì),建立了查詢連接操作的代價(jià)模型,并使用貪婪算法實(shí)現(xiàn)了語(yǔ)義數(shù)據(jù)查詢的優(yōu)化模塊,對(duì)查詢的先后順序進(jìn)行了調(diào)整,提高了查詢的性能。
文檔編號(hào)G06F17/30GK102270232SQ201110205140
公開日2011年12月7日 申請(qǐng)日期2011年7月21日 優(yōu)先權(quán)日2011年7月21日
發(fā)明者劉譜, 吳德龍, 趙峰, 金海 申請(qǐng)人:華中科技大學(xué)
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
城步| 永德县| 和平区| 和静县| 平谷区| 滨海县| 六安市| 关岭| 嵊州市| 夹江县| 嘉荫县| 栾川县| 嘉鱼县| 鄄城县| 白城市| 南康市| 阿尔山市| 东阳市| 安乡县| 龙泉市| 建宁县| 陇西县| 江阴市| 石柱| 德安县| 黑河市| 左云县| 诏安县| 阿城市| 松潘县| 百色市| 洛宁县| 哈尔滨市| 太保市| 三穗县| 沾化县| 巧家县| 武邑县| 梨树县| 资兴市| 乌兰察布市|