基于本體的資源發(fā)現(xiàn)系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種信息檢索方法,更具體的說,本發(fā)明主要涉及一種基于本體的資源發(fā)現(xiàn)系統(tǒng)及方法。
【背景技術(shù)】
[0002]隨著信息技術(shù)的發(fā)展,分布式系統(tǒng)已成為人類解決問題的重要工具。分布式系統(tǒng)最基本、最重要的功能是實(shí)現(xiàn)資源的無障礙共享,而資源發(fā)現(xiàn)(Resource Discovery)是分布式系統(tǒng)實(shí)現(xiàn)資源共享的基礎(chǔ)與關(guān)鍵。資源發(fā)現(xiàn)是指根據(jù)用戶請(qǐng)求,返回滿足用戶要求資源信息的過程。
[0003]由于具有良好的擴(kuò)展性和健壯性,擁有高效率、低開銷的請(qǐng)求轉(zhuǎn)發(fā)算法;因此基于結(jié)構(gòu)化P2P的資源發(fā)現(xiàn)協(xié)議是目前構(gòu)建分布式系統(tǒng)的最佳選擇。但現(xiàn)實(shí)并非如此,無法有效支持復(fù)雜查詢(Complex Query)阻礙了其在現(xiàn)實(shí)中的應(yīng)用。高效合理的復(fù)雜查詢算法,是資源發(fā)現(xiàn)擁有良好性能的重要保障之一。資源發(fā)現(xiàn)協(xié)議支持的資源查詢方式越多,為用戶提供的服務(wù)就越豐富;而且實(shí)際應(yīng)用中,資源多以多屬性范圍方式進(jìn)行約束,復(fù)雜查詢更加符合用戶的請(qǐng)求模式,因此能否支持復(fù)雜查詢對(duì)資源發(fā)現(xiàn)協(xié)議具有十分重要的意義。
[0004]對(duì)該問題的研宄一直是資源發(fā)現(xiàn)研宄領(lǐng)域的熱點(diǎn),具有代表性的策略有:多覆蓋網(wǎng)絡(luò)策略與屬性組合編碼策略。
[0005]多覆蓋網(wǎng)絡(luò)策略為系統(tǒng)中每個(gè)屬性均構(gòu)建一個(gè)覆蓋網(wǎng)絡(luò),每個(gè)屬性的覆蓋網(wǎng)絡(luò)維護(hù)了所有擁有該屬性資源的信息。改進(jìn)編碼算法,使編碼的順序與屬性值大小具有固定對(duì)應(yīng)關(guān)系。最終同時(shí)解決范圍查詢與多屬性查詢問題。多覆蓋網(wǎng)絡(luò)策略思路簡(jiǎn)單,易于在已有基于結(jié)構(gòu)化P2P的資源發(fā)現(xiàn)系統(tǒng)上進(jìn)行擴(kuò)展。如果一個(gè)資源擁有η個(gè)屬性,則整個(gè)系統(tǒng)需要維護(hù)該資源信息的η個(gè)拷貝;當(dāng)資源種類很多、屬性數(shù)量很大時(shí),會(huì)浪費(fèi)大量系統(tǒng)資源。該策略效率不高,每次查詢所涉及的覆蓋網(wǎng)絡(luò),會(huì)有大量資源信息并不屬于欲請(qǐng)求資源,系統(tǒng)將花費(fèi)大量時(shí)間排除無用信息。
[0006]屬性組合編碼策略對(duì)所有可能出現(xiàn)的屬性組合進(jìn)行編碼[24,25],形成多維編碼空間。空間中每個(gè)坐標(biāo)軸代表一個(gè)屬性,坐標(biāo)軸的值代表了該屬性的取值范圍,然后利用SFC(Space Filled Curve,空間填充曲線)將多維空間映射到I維空間上來。具體策略是:利用SFC對(duì)編碼空間遞歸編碼,遞歸深度為d,其中d是空間維數(shù),每次遞歸將所在子空間分割為η個(gè)子空間(η提前給定),每個(gè)子空間均賦予一個(gè)唯一的η位編碼。SFC通過且僅一次通過空間中的所有點(diǎn),并且僅一次進(jìn)入與退出空間,因此空間中各點(diǎn)的編碼是唯一的。用戶進(jìn)行查詢時(shí),系統(tǒng)首先根據(jù)用戶描述中的屬性約束,將欲請(qǐng)求的資源映射到編碼空間的一點(diǎn)上進(jìn)行編碼,然后再將請(qǐng)求轉(zhuǎn)發(fā)至該編碼所存儲(chǔ)的節(jié)點(diǎn)進(jìn)行查詢。如果該查詢是范圍查詢,則將映射得到編碼空間的一個(gè)子空間上,然后將請(qǐng)求轉(zhuǎn)發(fā)至合適節(jié)點(diǎn),此時(shí)可能是多個(gè)節(jié)點(diǎn)。采用屬性組合編碼策略,當(dāng)屬性數(shù)量很大、屬性取值范圍很廣時(shí),編碼會(huì)十分復(fù)雜。存在大量沒有實(shí)際意義的屬性組合的編碼,造成編碼空間利用率低。該策略的擴(kuò)展性差,當(dāng)系統(tǒng)中出現(xiàn)新類型資源并引入了新屬性時(shí)需要改變所有已有編碼。
[0007]這些策略主要采用基于語(yǔ)法的、完全對(duì)稱的資源匹配方式。系統(tǒng)根據(jù)用戶所提供的約束,將已有資源與約束中的屬性按照一一對(duì)應(yīng)的規(guī)則進(jìn)行匹配,必須完全匹配才被認(rèn)為是合適資源。該方式思想簡(jiǎn)單、易實(shí)現(xiàn),但其無法滿足今后資源發(fā)現(xiàn)協(xié)議發(fā)展的要求,主要原因如下:
(O資源提供者與用戶需要事先約定屬性描述細(xì)節(jié),如屬性名稱、屬性值的單位等。目前,在大規(guī)模分布系統(tǒng)中,資源提供者與用戶多屬于不同組織,建立在不同平臺(tái)上,使用了不同描述方式,必須使用大量中間件進(jìn)行轉(zhuǎn)化。事先進(jìn)行約定的成本過高,可操作性不強(qiáng)。
[0008](2)靈活性不足,無法方便地進(jìn)行擴(kuò)展。分布式系統(tǒng)中資源類型將日益豐富,新屬性隨之逐漸增加,系統(tǒng)必須有良好的靈活性,可以隨著新屬性的加入而方便地?cái)U(kuò)展,目前基于語(yǔ)法的策略很難達(dá)到這一要求。
[0009](3)性能不理想,查準(zhǔn)率與查全率低。由于存在不同資源具有相似、甚至相同描述的可能,還存在部分資源描述不完整、不規(guī)范的情況,所以傳統(tǒng)方式中資源查準(zhǔn)率并不理想。基于語(yǔ)法的查詢只返回與描述約束完全一致的資源,其它滿足要求,但描述不匹配的相關(guān)資源會(huì)被忽略,使得系統(tǒng)查全率低。
【發(fā)明內(nèi)容】
[0010]本發(fā)明的目的之一在于針對(duì)上述不足,提供一種基于本體的資源發(fā)現(xiàn)系統(tǒng)及方法,以期望解決現(xiàn)有技術(shù)中資源信息的不同描述方式需使用中間件進(jìn)行轉(zhuǎn)化,靈活性不足,無法方便的進(jìn)行擴(kuò)展,且查準(zhǔn)率與查全率低下等技術(shù)問題。
[0011]為解決上述的技術(shù)問題,本發(fā)明采用以下技術(shù)方案:
本發(fā)明一方面提供了一種基于本體的資源發(fā)現(xiàn)系統(tǒng),所述的系統(tǒng)包括:
實(shí)例與類匹配模塊,用于將資源或/和請(qǐng)求映射至本體類(指資源本體);
編碼模塊,用于對(duì)資源或/和請(qǐng)求進(jìn)行分別編碼;
資源注冊(cè)模塊,用于將資源在與其編碼擁有最長(zhǎng)共同前綴的節(jié)點(diǎn)處注冊(cè),并將該資源信息傳輸至合適位置,且提供并維護(hù)資源信息;
資源查詢模塊,用于按照請(qǐng)求編碼生成的集合,在覆蓋網(wǎng)絡(luò)中查詢合適的、可用的資源;
覆蓋網(wǎng)絡(luò),用于組織節(jié)點(diǎn),負(fù)責(zé)新節(jié)點(diǎn)加入的相關(guān)動(dòng)作,當(dāng)有新節(jié)點(diǎn)出現(xiàn)時(shí),節(jié)點(diǎn)按照慢加入方式進(jìn)入覆蓋網(wǎng)絡(luò)。
[0012]作為優(yōu)選,進(jìn)一步的技術(shù)方案是:所述編碼模塊用于為本體類中所有Superclass-Subclass關(guān)系賦予一個(gè)ce,再采用貝葉斯網(wǎng)絡(luò)法將資源映射至相應(yīng)的本體葉子類,最后,組合從根類到對(duì)應(yīng)類路徑上的所有ce,生成資源編碼。
[0013]更進(jìn)一步的技術(shù)方案是:所述編碼模塊為本體類中所有Superclass-Subclass關(guān)系賦予一個(gè)ce時(shí),同一個(gè)父類與其子類之間的所有Superclass-Subclass關(guān)系上的ce各不相同。
[0014]更進(jìn)一步的技術(shù)方案是:所述編碼模塊用于為本體類中所有Superclass-Subclass關(guān)系賦予一個(gè)ce,再采用貝葉斯網(wǎng)絡(luò)法將請(qǐng)求映射至所有本體類,最后,組合從根類到對(duì)應(yīng)類路徑上的所有ce,生成請(qǐng)求編碼。
[0015]本發(fā)明另一方面還提供了一種基于本體的資源發(fā)現(xiàn)的實(shí)現(xiàn)方法,其特征在于所述的方法包括如下步驟:
步驟1、實(shí)例與類匹配模塊將資源或/和請(qǐng)求映射至本體類;
步驟2、編碼模塊對(duì)資源或/和請(qǐng)求進(jìn)行分別編碼;
步驟3、資源注冊(cè)模塊將資源在與其編碼擁有最長(zhǎng)共同前綴的節(jié)點(diǎn)處注冊(cè),并將該資源信息傳輸至合適位置,且提供并維護(hù)資源信息;
步驟4、資源查詢模塊按照請(qǐng)求編碼生成的集合,在覆蓋網(wǎng)絡(luò)中查詢合適的、可用的資源;
作為優(yōu)選,進(jìn)一步的技術(shù)方案是所述的方法還包括:覆蓋網(wǎng)絡(luò)組織節(jié)點(diǎn),負(fù)責(zé)新節(jié)點(diǎn)加入的相關(guān)動(dòng)作,當(dāng)有新節(jié)點(diǎn)出現(xiàn)時(shí),節(jié)點(diǎn)按照慢加入方式進(jìn)入覆蓋網(wǎng)絡(luò)。
[0016]更進(jìn)一步的技術(shù)方案是所述資源查詢模塊在覆蓋網(wǎng)絡(luò)中查詢資源的步驟為:
步驟41:將用戶請(qǐng)求轉(zhuǎn)發(fā)至目的節(jié)點(diǎn),并轉(zhuǎn)步驟42 ;
步驟42:目的節(jié)點(diǎn)查看是否存儲(chǔ)有滿足該請(qǐng)求的資源的信息,若沒有則返回空,并轉(zhuǎn)步驟44,否則將合適資源信息加入結(jié)果集,并轉(zhuǎn)步驟43 ;
步驟43:目的節(jié)點(diǎn)檢測(cè)本地葉子集與請(qǐng)求的資源編碼集是否有交集,如果沒有,則轉(zhuǎn)步驟44,否則將請(qǐng)求發(fā)送給交集中的所有節(jié)點(diǎn),并轉(zhuǎn)步驟42;
步驟44:查詢結(jié)束。
[0017]更進(jìn)一步的技術(shù)方案是:所述編碼模塊進(jìn)行資源編碼的方式為將本體類中所有Superclass-Subclass關(guān)系賦予一個(gè)ce,再采用貝葉斯網(wǎng)絡(luò)法將資源映射至相應(yīng)的本體葉子類,最后,組合從根類到對(duì)應(yīng)類路徑上的所有ce,生成資源編碼。
[0018]更進(jìn)一步的技術(shù)方案是:所述編碼模塊為本體類中所有Superclass-Subclass關(guān)系賦予一個(gè)ce時(shí),同一個(gè)父類與其子類之間的所有Superclass-Subclass關(guān)系上的ce各不相同。
[0019]更進(jìn)一步的技術(shù)方案是:所述編碼模塊進(jìn)行資源編碼的方式為將本體類中所有Superclass-Subclass關(guān)系賦予一個(gè)ce,再采用貝葉斯網(wǎng)絡(luò)法將請(qǐng)求映射至所有本體類,最后,組合從根類到對(duì)應(yīng)類路徑上的所有ce,生成請(qǐng)求編碼。
[0020]本發(fā)明以本體層次結(jié)構(gòu)為基礎(chǔ),實(shí)現(xiàn)了資源與請(qǐng)求編碼算法;在此基礎(chǔ)上,進(jìn)一步實(shí)現(xiàn)了資源注冊(cè)與資源查詢算法。使基于結(jié)構(gòu)化P2P的資源發(fā)現(xiàn)協(xié)議可以有效支持復(fù)雜查詢,并提高了查全率與查準(zhǔn)率。通過應(yīng)用該協(xié)議,基于現(xiàn)有技術(shù)中的結(jié)構(gòu)化P2P的資源發(fā)現(xiàn)協(xié)議具有以下有益效果:
(1)采用基于本體的編碼算法,實(shí)現(xiàn)了對(duì)復(fù)雜查詢的有效支持;
(2)采用軟狀態(tài)策略的資源注冊(cè)算法,確保了資源信息的正確性與實(shí)時(shí)性;
(3)以新編碼算法為基礎(chǔ)實(shí)現(xiàn)的資源查詢算法,可以在保證O(1gN)查詢效率的前提下,有效提高資源查詢的查全率與查準(zhǔn)率。
【附圖說明】
[0021]圖1為用于說明本發(fā)明一個(gè)實(shí)施例中資源發(fā)現(xiàn)系統(tǒng)的結(jié)構(gòu)圖;
圖2為用于說明本發(fā)明另一個(gè)實(shí)施例的資源發(fā)現(xiàn)方法執(zhí)行過程圖。
【具體實(shí)施方式】
[0022]下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步闡述。
[0023]參考圖1,本發(fā)明的一個(gè)實(shí)施例是基于本體的資源發(fā)現(xiàn)系統(tǒng),該系統(tǒng)主要由實(shí)例與類匹配模塊、編碼模塊、資源注冊(cè)模塊、資源查詢模塊和覆蓋網(wǎng)絡(luò)構(gòu)成。實(shí)例與類匹配模塊用于將資源或請(qǐng)求映射至本體類;編碼模塊用于對(duì)資源或請(qǐng)求進(jìn)行編碼;資源注冊(cè)模塊在相應(yīng)節(jié)點(diǎn)處注冊(cè)完成編碼的資源,提供并維護(hù)資源信息;資源查詢模塊用于按照請(qǐng)求編碼生成的集合Q,在覆蓋網(wǎng)絡(luò)中查詢合適的、可用的資源;覆蓋網(wǎng)絡(luò)用于組織節(jié)點(diǎn),負(fù)責(zé)新節(jié)點(diǎn)加入的相關(guān)動(dòng)作。當(dāng)有新資源出現(xiàn)時(shí),首先送入實(shí)例與類匹配模塊,采用貝葉斯網(wǎng)絡(luò)法,實(shí)現(xiàn)匹配;然后送入編碼模塊,對(duì)資源進(jìn)行編碼;完成編碼后,開始進(jìn)行資源注冊(cè),將資源信息發(fā)送到相應(yīng)節(jié)點(diǎn)。當(dāng)有新請(qǐng)求出現(xiàn)時(shí),首先送入實(shí)例與類匹配模塊,采用貝葉斯網(wǎng)絡(luò)法,實(shí)現(xiàn)匹配;然后送入編碼模塊,對(duì)請(qǐng)求進(jìn)行編碼;完成編碼后,開始進(jìn)行資源查詢,返回所有滿足用戶請(qǐng)求的資源信息。當(dāng)有新節(jié)點(diǎn)出現(xiàn)時(shí),節(jié)點(diǎn)按照慢加入方式進(jìn)入覆蓋網(wǎng)絡(luò)。
[0024