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