專利名稱:一種基于語義的重用代碼匹配查詢方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種匹配查詢方法,尤其涉及一種基于語義的重用代碼匹配查詢方法,屬于計算機(jī)軟件技術(shù)領(lǐng)域。
背景技術(shù):
在軟件項目開發(fā)過程中,往往要面臨代碼重用的問題,然而現(xiàn)在的重用代碼查詢方法還存在以下問題1.現(xiàn)代軟件公司缺乏對可重用代碼的利用,甚至沒有建立自己的代碼庫;2.現(xiàn)在代碼庫的使用效率較低,主要體現(xiàn)在采用基于關(guān)鍵字的查找方法,缺乏對可重用代碼進(jìn)行基于領(lǐng)域的分類和沒有對重用代碼進(jìn)行統(tǒng)一的抽象描述;3.沒有借鑒基于SOA的先進(jìn)管理思想和基于語義的匹配方法。以上這些問題導(dǎo)致了在軟件項目開發(fā)過程中需要進(jìn)行大量的重復(fù)性勞動,延緩了項目的開發(fā)進(jìn)度。SOA作為一種面向服務(wù)的架構(gòu),是一種軟件架構(gòu)設(shè)計的模型和方法論。其通過充分利用企業(yè)的各種軟件體系,重新整合并構(gòu)建起一系列新的軟件構(gòu)架。并且能隨著服務(wù)的變化而靈活結(jié)合現(xiàn)有服務(wù),組成新的軟件,共同服務(wù)于整體業(yè)務(wù)。在SOA的框架下,能將各種雜亂的模塊全面整合成有序系統(tǒng),并通過其強(qiáng)悍的靈活性來保證最大的IT資產(chǎn)利用率。語義可以被看作是數(shù)據(jù)所對應(yīng)的現(xiàn)實世界中的事物所代表的概念的含義,以及這些含義之間的關(guān)系。從知識共享的角度看,本體可以被看作是一種概念化的顯示說明,是對客觀存在的概念和關(guān)系的描述。本體通過把某個應(yīng)用領(lǐng)域抽象或概括成一組領(lǐng)域共享的概念及概念的關(guān)系以實現(xiàn)知識理解和共享。本體的目標(biāo)是捕獲相關(guān)領(lǐng)域的知識,提供對該領(lǐng)域知識的共同理解,確定該領(lǐng)域內(nèi)共同認(rèn)可的詞匯,并從不同層次的形式化模式上給出這些詞匯和詞匯之間的相互關(guān)系的明確定義?;诒倔w的語義相似度計算在語義ffeb、信息檢索、數(shù)據(jù)挖掘、信息集成、知識管理等研究工作中具有重要的意義。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種基于語義的重用代碼匹配查詢方法,解決如今重用代碼查準(zhǔn)率和查全率不高等技術(shù)問題,為實現(xiàn)發(fā)明的目的,本發(fā)明采用如下的技術(shù)方案基于語義的重用代碼查詢體系結(jié)構(gòu),包括重用代碼管理中心、重用代碼提供者客戶端、重用代碼請求者客戶端和本體庫,所述重用代碼管理中心,重用代碼提供者客戶端, 重用代碼請求者客戶端是相互連接的,并通過基于本體的語義相似度計算進(jìn)行交互。上述方案涉及以下操作1.為重用代碼所涉及的領(lǐng)域建立領(lǐng)域本體;2.對重用代碼進(jìn)行基于語義的抽象描述;3.對重用代碼進(jìn)行注冊和管理;4.對本體庫進(jìn)行維護(hù);
5.對重用代碼進(jìn)行基于語義的查詢;6.重用代碼信息的返回。所述為重用代碼所涉及的領(lǐng)域建立領(lǐng)域本體是指對重用代碼所涉及領(lǐng)域中的詞匯進(jìn)行建模,并為各詞匯之間建立合適的關(guān)系。所述對重用代碼進(jìn)行基于語義的抽象描述是指在所建領(lǐng)域本體的基礎(chǔ)上將重用代碼抽象描述為帶有語義的web services的簡單結(jié)構(gòu),通過描述的功能、接口和領(lǐng)域分類即可準(zhǔn)確而快速的發(fā)現(xiàn)該重用代碼。重用代碼抽象描述文件的格式都是XML文檔,格式是固定的,便于后續(xù)的文件解析。所述對重用代碼進(jìn)行注冊和管理是指對于重用代碼提供者提供的重用代碼的抽象描述文件,代碼管理中心對其進(jìn)行解析并提取重用代碼的領(lǐng)域分類、功能和接口等抽象描述信息,以及重用代碼庫文件的位置信息。所述對重用代碼進(jìn)行基于語義的查詢是指代碼請求者需要提供一個基于語義描述的查詢請求,重用代碼管理中心在此基礎(chǔ)上進(jìn)行基于領(lǐng)域本體庫的語義相似度計算,為請求者返回合適的查詢結(jié)果。本發(fā)明的具體步驟如下1.如果沒有重用代碼所涉及的領(lǐng)域本體,則為該領(lǐng)域建立領(lǐng)域本體,否則,直接到第3步;2.把新建的領(lǐng)域本體注冊到本體庫中;3.重用代碼提供者將一個領(lǐng)域中常用的函數(shù)進(jìn)行編譯,得到重用代碼的庫文件4.重用代碼提供者對這些函數(shù)的重用代碼進(jìn)行基于語義的抽象描述,得到一個包含描述信息的XML格式文件;5.重用代碼管理中心接收抽象描述信息,并對其進(jìn)行解析以提取相關(guān)信息;6.重用代碼請求者通過代碼管理中心基于語義的查詢接口進(jìn)行重用代碼查詢;7.重用代碼管理中心為代碼請求者為返回重用代碼的詳細(xì)信息,包括重用代碼的輸入、輸出參數(shù)和這些參數(shù)的語義標(biāo)注信息,重用代碼的分類信息,重用代碼的庫文件的位置信息;其中,重用代碼的庫文件的位置信息是必須返回的抽象描述信息,其他抽象描述信息可選。與現(xiàn)有技術(shù)相比,本發(fā)明的積極效果為本發(fā)明解決了現(xiàn)有技術(shù)中有關(guān)大量重用代碼維護(hù)困難,重用代碼查找效率低以及項目開發(fā)的重復(fù)勞動等問題,本發(fā)明通過基于語義的匹配方法來建立高效的重用代碼查詢方法,實現(xiàn)了重用代碼精確快速的查找,提高了項目開發(fā)效率和節(jié)省了人力物力財力。
圖1為本發(fā)明的系統(tǒng)框架示意圖;圖2為代碼管理中心結(jié)構(gòu)示意圖;圖3為Code-DL結(jié)構(gòu)的示意圖;圖4為重用代碼注冊流程示意圖;圖5為重用代碼請求流程示意圖;圖6為交通運(yùn)輸工具的本體示意圖。
具體實施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,以下結(jié)合附圖對本發(fā)明進(jìn)一步詳細(xì)說明本發(fā)明的系統(tǒng)框架包括四部分,分別是重用代碼管理中心,重用代碼請求者客戶端,重用代碼提供者客戶端和領(lǐng)域本體庫,如圖1所示所述重用代碼管理中心是整個系統(tǒng)框架的核心部分,其主要負(fù)責(zé)對重用代碼的描述信息進(jìn)行存儲,主要功能有重用代碼的注冊,重用代碼的查詢以及重用代碼描述信息的更新等。重用代碼管理中心將根據(jù)重用代碼的領(lǐng)域分類描述信息對重用代碼的描述信息進(jìn)行分類存儲。重用代碼管理中心以領(lǐng)域本體為基礎(chǔ)實施重用代碼的注冊、查詢及描述信息更新操作。所述重用代碼請求者客戶端為用戶提供一個查詢重用代碼的接口,重用代碼請求者首先為自己請求的輸入輸出從本體庫中選擇合適的領(lǐng)域本體,該接口將通過XML格式對這些信息進(jìn)行組織以生成基于語義的請求信息,然后將生成的請求信息發(fā)送到重用代碼管理中心。所述重用代碼提供者客戶端主要為提供者提供一個重用代碼注冊接口,重用代碼提供者通過該接口可以獲得本體庫中的領(lǐng)域本體,在此基礎(chǔ)上對重用代碼進(jìn)行基于語義的抽象描述,其通過該接口來提供重用代碼的語義描述信息和重用代碼所屬的領(lǐng)域信息,并將其發(fā)送到重用代碼管理中心。所述領(lǐng)域本體庫中存儲了不同領(lǐng)域的領(lǐng)域本體,它為重用代碼管理中心、重用代碼請求者客戶端和重用代碼提供者客戶端提供領(lǐng)域本體,是三者運(yùn)行的基礎(chǔ),需要專門的管理人員對其進(jìn)行維護(hù)。圖2是一個重用代碼管理中心詳細(xì)結(jié)構(gòu)示意圖,它包含了 Code-DL解析器,重用代碼的注冊,重用代碼的匹配以及其它的管理模塊。Code-DL是重用代碼的抽象描述語言,其是帶有語義信息的WSDL(Web Services Description Language)的簡化版,如圖3所示,Code-DL由抽象和語義兩部分構(gòu)成抽象部分包括類型描述、消息描述、操作描述、端口類型描述和重用代碼的庫文件地址信息五部分。其中每個端口類型在邏輯上是一組操作的集合,每個操作定義了一組消息,作為與重用代碼交互的基本傳輸單位。語義部分包括了輸入/輸出參數(shù)所對應(yīng)領(lǐng)域本體的信息和重用代碼的領(lǐng)域分類 fn息οCode-DL解析器的作用是對重用代碼的查詢請求和注冊信息進(jìn)行解析,并獲取重用代碼查詢或注冊所需的要素,如輸入/輸出端口的語義標(biāo)注信息、重用代碼的分類信息、 重用代碼庫文件的位置信息。其中所述的重用代碼的查詢請求和注冊信息都是采用XML格式進(jìn)行描述的。Code-DL解析器將獲得的信息根據(jù)需求分發(fā)到重用代碼的查詢部分或者重用代碼的注冊部分。重用代碼的注冊部分包括領(lǐng)域分類模塊、注冊信息寫入模塊和注冊消息返回模塊。所述領(lǐng)域分類模塊的作用是根據(jù)重用代碼所屬的領(lǐng)域信息對重用代碼進(jìn)行分類標(biāo)識,以便對重用代碼信息進(jìn)行分類存儲;所述注冊信息寫入模塊的作用是把從Code-DL解析器獲得的注冊信息和從領(lǐng)域分類模塊獲得的分類標(biāo)識寫入到數(shù)據(jù)庫;所述注冊消息返回模塊的作用是把重用代碼注冊后生成的消息返回給重用代碼提供者,其中所述的注冊消息是重用代碼管理中心為所注冊的重用代碼生成的唯一標(biāo)識。 該標(biāo)識由一串字符和數(shù)字組成,其中字符部分是用戶名,數(shù)字部分是重用代碼注冊時的系統(tǒng)時間。重用代碼的匹配部分主要以語義為基礎(chǔ)對重用代碼的各個要素進(jìn)行匹配,包括領(lǐng)域匹配模塊、輸入匹配模塊、輸出匹配模塊和查詢結(jié)果返回模塊。所述領(lǐng)域匹配模塊的作用是對重用代碼所屬的領(lǐng)域信息和重用代碼請求者請求的領(lǐng)域信息之間進(jìn)行匹配,屬于關(guān)鍵字匹配。所述輸入匹配模塊的作用是對重用代碼提供的輸入和重用代碼請求者請求的輸入之間進(jìn)行匹配,是建立在語義相似度計算的基礎(chǔ)上的,屬于語義匹配。在輸入匹配過程中,只有當(dāng)重用代碼請求者請求的輸入和重用代碼提供的輸入相同時,或者重用代碼請求者請求的輸入是重用代碼提供的輸入的子類或者實例時,才稱匹配成功。所述輸出匹配模塊的作用是對重用代碼提供的輸出和重用代碼請求者請求的輸出之間進(jìn)行匹配,是建立在語義相似度計算的基礎(chǔ)上的,屬于語義匹配。在輸出匹配過程中,只有當(dāng)重用代碼請求者請求的輸出和重用代碼提供的輸出相同時,或者重用代碼提供的輸出是重用代碼請求者請求的輸出的子類或者實例時,才稱匹配成功。上面所述的三種匹配的執(zhí)行順序依次為領(lǐng)域匹配_>輸入匹配_>輸出匹配。所述查詢結(jié)果返回模塊的作用是把最終的匹配結(jié)果返回給重用代碼請求者。返回結(jié)果分為四種情況第一種情況同時滿足領(lǐng)域匹配、輸入匹配和輸出匹配的查詢結(jié)果,該查詢結(jié)果會首先被返回給重用代碼請求者;第二種情況同時滿足領(lǐng)域匹配、輸入匹配的查詢結(jié)果;第三種情況同時滿足領(lǐng)域匹配、輸出匹配的查詢結(jié)果。當(dāng)不能滿足第一種情況時,該查詢結(jié)果和第二種情況中的查詢結(jié)果會同時返回給重用代碼請求者;第四種情況不能滿足以上三種情況時,稱查詢失敗,給重用代碼請求者返回一個查詢失敗的消息。由于重用代碼的匹配和重用代碼的注冊都是建立在領(lǐng)域本體的基礎(chǔ)上,因此在對重用代碼進(jìn)行語義標(biāo)注之前,重用代碼提供者需要具有相關(guān)的領(lǐng)域本體。如果本體庫中沒有相應(yīng)的領(lǐng)域本體,則需要請求本體庫的維護(hù)人員建立相關(guān)的領(lǐng)域本體。領(lǐng)域本體的創(chuàng)建過程如下1.本體是一個領(lǐng)域內(nèi)共享概念的形式化說明,在創(chuàng)建領(lǐng)域本體之前需要具備相關(guān)的領(lǐng)域知識或者咨詢相關(guān)領(lǐng)域的專家,以盡可能準(zhǔn)確的確定所需要的詞匯以及詞匯之間的關(guān)系;2.用斯坦福大學(xué)開發(fā)的本體創(chuàng)建工具Prot6g6來創(chuàng)建相關(guān)領(lǐng)域的本體樹,詞匯之間的關(guān)系是通過Prot6g6創(chuàng)建的本體樹來表現(xiàn),即得到領(lǐng)域本體;3.通過Jena提供的API將創(chuàng)建的領(lǐng)域本體注冊到本體庫中以供用戶查詢。
圖4為一個重用代碼提供者從編寫重用代碼到描述重用代碼,直到最后注冊重用代碼的一個流程圖,其詳細(xì)步驟如下1.重用代碼提供者編寫能夠完成一定功能的代碼。如下為一段能夠完成汽車價格查詢功能的代碼
Public String queryPrice(String car)
{
String price;
查詢數(shù)據(jù)庫; return price;
ι2.重用代碼提供者通過Code-DL語言對第1步中編寫的代碼進(jìn)行抽象描述。 Code-DL的抽象描述包括類型、消息、操作、重用代碼的庫文件位置和端口類型。所述類型是數(shù)據(jù)類型的容器,它包含了所有消息定義需要的XML元素的類型定義。XML khema具有內(nèi)置數(shù)據(jù)類型,同時允許定義復(fù)雜的數(shù)據(jù)類型,如在汽車價格查詢的輸入輸出數(shù)據(jù)類型定義中,就引用了 XML Schema內(nèi)置的基本數(shù)據(jù)類型xsString。所述消息具體定義了重用代碼使用過程中消息的數(shù)據(jù)結(jié)構(gòu)。消息建立在類型之上,是由一個或者多個〈name,type)組成。3.重用代碼提供者查詢本體庫中是否具有相關(guān)的領(lǐng)域本體,如果沒有,則進(jìn)入第 (4)步,否則,直接跳轉(zhuǎn)到第(5)步。4.重用代碼提供者請求本體庫維護(hù)人員建立所需的領(lǐng)域本體。5.重用代碼提供者從本體庫中獲得所需的領(lǐng)域本體,然后在此基礎(chǔ)上對第(1)步中所編寫代碼的輸入/輸出參數(shù)進(jìn)行語義標(biāo)注,并將標(biāo)注信息添加到第( 步描述信息中。圖6為一個簡單的運(yùn)輸工具領(lǐng)域本體示意圖,其中car,plane, train等都是Transportation的子類,BMW和BYD是car的兩個instance (實例)。于是可以把第(1)步中汽車價格查詢Mring類型的輸入?yún)?shù)car標(biāo)注為http://localhost:8080/ transportation. owl#car。6.重用代碼提供者將帶有語義標(biāo)注的重用代碼抽象描述信息和重用代碼所屬的領(lǐng)域信息發(fā)送到重用代碼管理中心進(jìn)行注冊。7.重用代碼管理中心接收到注冊信息之后,將按照重用代碼的注冊步驟進(jìn)行注冊并將注冊消息返回給重用代碼提供者。圖5為重用代碼請求者向重用代碼管理中心發(fā)送查詢請求的流程圖,其詳細(xì)步驟如下1.重用代碼請求者查詢本體庫中是否具有自己所需的領(lǐng)域本體。如果不存在相關(guān)的領(lǐng)域本體,則查詢失敗,否則,進(jìn)入到下一步。2.重用代碼請求者選擇所需重用代碼所需的領(lǐng)域。3.重用代碼請求者用第(2)步中所選領(lǐng)域中的本體來標(biāo)注自己請求的輸入/輸出
7參數(shù)。例如重用代碼請求者想查詢能夠完成查詢寶馬價格功能的重用代碼,則請求輸入?yún)?shù)可以用 http://localhost :8080/transportation. owl#BMW 來標(biāo)注。4.重用代碼請求者客戶端將根據(jù)重用代碼請求者提供的需求生成XML格式的請求消息,并發(fā)送到重用代碼管理中心。5.重用代碼管理中心接收到查詢請求后,按照重用代碼提供的匹配部分提供的機(jī)制進(jìn)行重用代碼查詢。6.重用代碼管理中心將滿足查詢請求的重用代碼的庫文件的地址信息返回給重用代碼請求者。
權(quán)利要求
1.一種基于語義的重用代碼匹配查詢方法,其步驟為1)重用代碼提供者客戶端查詢本體庫中是否有待提供重用代碼所屬的領(lǐng)域本體,如果沒有則在所述本體庫中創(chuàng)建該重用代碼的領(lǐng)域本體;2)重用代碼提供者客戶端對該重用代碼進(jìn)行基于語義的抽象描述;3)重用代碼提供者客戶端根據(jù)所述本體庫中該重用代碼的領(lǐng)域本體信息,對該重用代碼抽象描述信息的輸入/輸出參數(shù)進(jìn)行語義標(biāo)注,并將標(biāo)注信息添加到所述描述信息中;4)重用代碼提供者客戶端將步驟幻得到的描述信息和該重用代碼所屬的領(lǐng)域信息發(fā)送到重用代碼管理中心進(jìn)行注冊;5)重用代碼請求者客戶端根據(jù)所述本體庫確定所查詢重用代碼的領(lǐng)域本體,對查詢請求的輸入/輸出參數(shù)進(jìn)行語義標(biāo)注;6)重用代碼請求者客戶端對語義標(biāo)注后的查詢請求進(jìn)行基于語義的抽象描述,然后將其發(fā)送到所述重用代碼管理中心進(jìn)行查詢;7)重用代碼管理中心根據(jù)收到的查詢請求進(jìn)行匹配查詢,將滿足查詢請求的重用代碼抽象描述信息返回給相應(yīng)的重用代碼請求者客戶端。
2.如權(quán)利要求1所述的方法,其特征在于通過Code-DL語言對所述重用代碼進(jìn)行基于語義的抽象描述。
3.如權(quán)利要求2所述的方法,其特征在于所述重用代碼的抽象描述信息包括重用代碼的類型、消息、操作、重用代碼的庫文件位置和端口類型。
4.如權(quán)利要求1或2或3所述的方法,其特征在于采用XML格式保存所述基于語義的抽象描述信息。
5.如權(quán)利要求1所述的方法,其特征在于創(chuàng)建所述重用代碼的領(lǐng)域本體的方法為首先確定重用代碼所屬領(lǐng)域內(nèi)詞匯以及詞匯之間的關(guān)系;然后采用本體創(chuàng)建工具創(chuàng)建詞匯之間的關(guān)系樹,得到該領(lǐng)域的領(lǐng)域本體。
6.如權(quán)利要求1所述的方法,其特征在于所述重用代碼管理中心按照重用代碼所屬的領(lǐng)域?qū)χ赜么a進(jìn)行注冊,并返回注冊信息給相應(yīng)的重用代碼提供者客戶端。
7.如權(quán)利要求6所述的方法,其特征在于所述返回注冊信息為所述重用代碼管理中心為所注冊的重用代碼生成一唯一標(biāo)識;所述標(biāo)識由一串字符和數(shù)字組成,其中字符部分是用戶名,數(shù)字部分是重用代碼注冊時的系統(tǒng)時間。
8.如權(quán)利要求1所述的方法,其特征在于所述重用代碼請求者客戶端通過網(wǎng)絡(luò)分別與所述本體庫、所述重用代碼管理中心連接;所述重用代碼提供者客戶端通過網(wǎng)絡(luò)分別與所述本體庫、所述重用代碼管理中心連接。
9.如權(quán)利要求1或8所述的方法,其特征在于所述重用代碼管理中心包括領(lǐng)域匹配模塊、輸入匹配模塊、輸出匹配模塊;其中,所述領(lǐng)域匹配模塊用于對重用代碼所屬的領(lǐng)域信息與重用代碼請求者客戶端請求的領(lǐng)域信息進(jìn)行關(guān)鍵字匹配;所述輸入匹配模塊用于對重用代碼提供的輸入與重用代碼請求者客戶端請求的輸入進(jìn)行語義匹配;所述輸出匹配模塊用于對重用代碼提供的輸出與重用代碼請求者客戶端請求的輸出進(jìn)行語義匹配。
全文摘要
本發(fā)明公開了一種基于語義的重用代碼匹配查詢方法,屬于計算機(jī)軟件技術(shù)領(lǐng)域。本方法為1)查詢本體庫中是否有待提供重用代碼所屬的領(lǐng)域本體,如果沒有則在所述本體庫中創(chuàng)建該重用代碼的領(lǐng)域本體;2)對該重用代碼進(jìn)行基于語義的抽象描述;3)將描述信息和該重用代碼所屬的領(lǐng)域信息發(fā)送到重用代碼管理中心進(jìn)行注冊;4)請求端根據(jù)本體庫確定所查詢重用代碼的領(lǐng)域本體,對查詢請求進(jìn)行語義標(biāo)注;5)請求端對語義標(biāo)注后的查詢請求進(jìn)行基于語義的抽象描述,然后將其發(fā)送到重用代碼管理中心進(jìn)行查詢;6)重用代碼管理中心將滿足查詢請求的重用代碼抽象描述信息返回給相應(yīng)的重用代碼請求者客戶端。本發(fā)明提高了項目開發(fā)效率,節(jié)省了人力物力。
文檔編號G06F9/44GK102520959SQ20111042844
公開日2012年6月27日 申請日期2011年12月16日 優(yōu)先權(quán)日2011年12月16日
發(fā)明者朱曉戰(zhàn), 謝曉燕, 陳彥萍 申請人:西安郵電學(xué)院