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