
摘 要 本文主要基于語義網(wǎng)的引入,對多源異構(gòu)數(shù)據(jù)進行語義關(guān)聯(lián),探討本體構(gòu)建、關(guān)聯(lián)抽取、數(shù)據(jù)發(fā)現(xiàn)的方法,以此實現(xiàn)軟件工程關(guān)聯(lián)數(shù)據(jù)的自動構(gòu)建。
【關(guān)鍵詞】軟件工程本體 關(guān)聯(lián)數(shù)據(jù) 本體構(gòu)建
軟件工程數(shù)據(jù)對軟件工程的開發(fā)至關(guān)重要,但軟件工程數(shù)據(jù)具有多樣性,在群體軟件開發(fā)過程中,為知曉信息、挖掘數(shù)據(jù),需要對軟件工程關(guān)聯(lián)數(shù)據(jù)進行構(gòu)建。本文基于本體的自動構(gòu)建方法,對軟件工程關(guān)聯(lián)數(shù)據(jù)的自動構(gòu)建進行探討,旨在為語義的檢索、數(shù)據(jù)的挖掘提供依據(jù)。
1 相關(guān)概念
1.1 關(guān)聯(lián)數(shù)據(jù)
關(guān)聯(lián)數(shù)據(jù)主要以網(wǎng)絡(luò)本體語言(OWL)、資源描述框架(RDF)對無序數(shù)據(jù)、大規(guī)模異構(gòu)進行構(gòu)建,使其具有語義化和結(jié)構(gòu)化,從而方面計算機進行理解。近年來,軟件工程領(lǐng)域中關(guān)聯(lián)數(shù)據(jù)的應(yīng)用越來越廣泛,使復(fù)雜軟件工程的數(shù)據(jù)開發(fā)更為簡便。在軟件工程的開發(fā)中,一個團隊容易對另一個團隊的項目開發(fā)構(gòu)建產(chǎn)生依賴,與此同時,團隊之間的協(xié)作是確保相關(guān)項目順利完成的重要基礎(chǔ)。微軟建立的Codebook平臺可以借助連接圖的建立,連接軟件元件及相關(guān)團隊信息。Iqbal在Kiefer等研究的基礎(chǔ)上,通過資源標(biāo)識符(URI)的統(tǒng)一,從源代碼、版本控制系統(tǒng)中對數(shù)據(jù)進行抽取,以PDF文件格式對關(guān)聯(lián)數(shù)據(jù)進行構(gòu)建,利用SPARQL引擎可以完成查詢操作。因此,引入關(guān)聯(lián)數(shù)據(jù),可以方便處理軟件工程的復(fù)雜數(shù)據(jù)。但國內(nèi)現(xiàn)有研究僅局限于缺陷跟蹤、源代碼等內(nèi)容,并未涉及文檔、郵件及開發(fā)人員信息等數(shù)據(jù)。
1.2 數(shù)據(jù)的抽取
目前,國內(nèi)研究主要是針對關(guān)系型數(shù)據(jù)庫-本體概念和關(guān)聯(lián)數(shù)據(jù)的映射。一般都是基于關(guān)系型數(shù)據(jù)庫,對本體概念和關(guān)聯(lián)數(shù)據(jù)進行構(gòu)建。此類方法的自動化程度較高,但容易抽取出冗余的關(guān)聯(lián)數(shù)據(jù)。本研究主要采用定制映射的方式,在關(guān)系型數(shù)據(jù)庫中對軟件工程關(guān)聯(lián)數(shù)據(jù)進行抽取。
1.3 數(shù)據(jù)的發(fā)現(xiàn)
數(shù)據(jù)源信息具有多樣性,現(xiàn)有研究主要通過獲取已有關(guān)聯(lián)數(shù)據(jù)的特征,針對特定關(guān)聯(lián),發(fā)現(xiàn)更多軟件工程的數(shù)據(jù)關(guān)聯(lián)。ReLink利用文本相似度、人員身份匹配、時間間隔發(fā)現(xiàn)軟件變更和缺陷之間的關(guān)聯(lián);也有開發(fā)者借助追蹤鏈圖以文本和結(jié)構(gòu)分析的方式發(fā)現(xiàn)文檔與源代碼的關(guān)聯(lián)。由于信息語義分析的不足,借助信息檢索技術(shù)發(fā)現(xiàn)關(guān)聯(lián)數(shù)據(jù)依然會存在漏洞。本文基于信息檢索技術(shù)(IR)和語言處理技術(shù)(NLP),通過文本和結(jié)構(gòu)的分析,來發(fā)現(xiàn)關(guān)聯(lián)數(shù)據(jù)。
2 本體概念的構(gòu)建
2.1 構(gòu)建初始本體概念
基于規(guī)則的映射方法,根據(jù)關(guān)系型數(shù)據(jù)庫元數(shù)據(jù)對初始本體概念進行構(gòu)建,構(gòu)建步驟分為兩步:
(1)在關(guān)系型數(shù)據(jù)庫中抽取元數(shù)據(jù)信息;
(2)利用關(guān)系映射規(guī)則對新概念及概念屬性、層次、關(guān)系等進行創(chuàng)建。
2.2 本體融合
融合不同數(shù)據(jù)源中的初始本體概念,識別出相似的初始本體概念,對其進行合并,統(tǒng)一軟件工程領(lǐng)域本體。如在開發(fā)軟件工程的過程中,不同團隊的缺陷數(shù)據(jù)會出現(xiàn)在不同的跟蹤工作中。在Bugzilla中,抽取的初始本體Bug概念會表示為“SoftwareEngineering#Bug”。利用本體融合方法,借助概念命名、屬性及關(guān)系對概念間的相似度進行計算,可以有效合并相同概念。
3 數(shù)據(jù)的抽取
3.1 關(guān)聯(lián)數(shù)據(jù)映射
初始本體概念的生成過程中,關(guān)系型數(shù)據(jù)庫的表、列、鍵等元數(shù)據(jù)均與本體概念建立了相應(yīng)關(guān)系,借助這些關(guān)系可以直接對映射文件進行創(chuàng)建,隨后通過映射規(guī)則可以完成領(lǐng)域本體與結(jié)構(gòu)化數(shù)據(jù)之間的映射。
3.2 實例消解
對不同關(guān)系型數(shù)據(jù)庫的關(guān)聯(lián)數(shù)據(jù)進行融合,需要合并各結(jié)構(gòu)化元數(shù)據(jù)中的本體概念,同時,本體實例需要對齊。如Bugzilla中的“Katharina@gmail.com”與Bugfree中的“katrin@hotmail.com”兩個實例指的是同一人。另外,在本體實例消解和本體融合中,相似度計算及合并的方法基本相同。
3.3 實例屬性消歧
實例消解可以消除實例間的歧義,實例屬性消歧能夠處理實例合并中屬性值的不一致問題。多值屬性出現(xiàn)不一致的情況時,可以保留所有屬性值。單值屬性出現(xiàn)不一致的情況時,需要基于屬性出現(xiàn)次數(shù)的“投票”方式及其所在實例的度決定屬性值。
4 數(shù)據(jù)的發(fā)現(xiàn)
4.1 關(guān)聯(lián)數(shù)據(jù)的特征
關(guān)聯(lián)數(shù)據(jù)具有同義詞、動賓短語、結(jié)構(gòu)關(guān)系三個特征。同義詞:軟件開發(fā)的不同的參與者對同一事物的描述存在差異,但各自的用詞用語存在近義或同義的關(guān)系。動賓短語:非結(jié)構(gòu)化數(shù)據(jù)的信息主要采用自然語言進行描述,動賓短語結(jié)構(gòu)含有語句的關(guān)鍵信息,故借助動賓短語可以替代語句表示數(shù)據(jù)信息。結(jié)構(gòu)關(guān)系:同一概念下的實例數(shù)據(jù)往往存在結(jié)構(gòu)關(guān)系,連接實例可以得到結(jié)構(gòu)關(guān)系的表達方式。兩個實例關(guān)聯(lián)為一個實例時,它們的結(jié)構(gòu)關(guān)系一般都是相連的。
4.2 數(shù)據(jù)關(guān)聯(lián)的重建
參照關(guān)聯(lián)數(shù)據(jù)的重建方法(見圖1),對數(shù)據(jù)集的非結(jié)構(gòu)化文本數(shù)據(jù)進行預(yù)處理、動賓短語抽取、同義詞識別,隨后建立向量空間模型,借助機器學(xué)習(xí)方法計算模型參數(shù)的相似度,之后結(jié)合數(shù)據(jù)集中的結(jié)構(gòu)關(guān)系數(shù)據(jù)更新相似度結(jié)果,即可發(fā)現(xiàn)關(guān)聯(lián)數(shù)據(jù)。
5 結(jié)語
本文探討了軟件工程關(guān)聯(lián)數(shù)據(jù)的自動構(gòu)建方法,以便群體軟件開發(fā)中,信息知曉和協(xié)同開發(fā)的問題能夠得到解決。該方法主要通過領(lǐng)域本體的構(gòu)建在軟件倉庫結(jié)構(gòu)化數(shù)據(jù)中對關(guān)聯(lián)數(shù)據(jù)進行抽取,同時根據(jù)關(guān)聯(lián)數(shù)據(jù)的三個特征,利用NLP技術(shù)IR技術(shù)發(fā)現(xiàn)軟件倉庫中潛在的關(guān)聯(lián)數(shù)據(jù)。后續(xù)將采取實驗來驗證這一方法的自動化程度與有效性,從而證實這一構(gòu)建方法的可行性。
參考文獻
[1]陳蘭蘭.基于社會網(wǎng)絡(luò)分析和共詞分析的國內(nèi)關(guān)聯(lián)數(shù)據(jù)研究[J].圖書與情報,2013(05):129-132.
[2]張明衛(wèi),朱志良,劉瑩等.一種大數(shù)據(jù)環(huán)境中分布式輔助關(guān)聯(lián)分類算法[J].軟件學(xué)報,2015,26(11):2795-2810.
[3]毛宇星,陳彤兵,施伯樂等.一種高效的多層和概化關(guān)聯(lián)規(guī)則挖掘方法[J].軟件學(xué)報,2011,22(12):2965-2980.
[4]張永娟,陳濤,張珅等.基于Sesame及Rdfizer擴展工具的關(guān)聯(lián)數(shù)據(jù)應(yīng)用平臺[J].圖書情報工作,2013,57(16):135-139.
[5]夏立新,李成龍.基于關(guān)聯(lián)數(shù)據(jù)的科技報告語義共享框架設(shè)計與實現(xiàn)[J].數(shù)字圖書館論壇,2015(09):2-9.
作者簡介
韓雨豪(1999-),山東省濟寧縣人。高中學(xué)歷。現(xiàn)為山東夢巴克網(wǎng)絡(luò)科技有限公司高級電腦技師,主要從事電腦應(yīng)用與翻譯方面工作。
作者單位
山東夢巴克網(wǎng)絡(luò)科技有限公司 山東省濟寧市 272000