◎西南技術(shù)工程研究所 劉青林 光文軍 羅杰
裝備環(huán)境適應(yīng)性是指武器裝備對環(huán)境的適應(yīng)能力,是武器系統(tǒng)在實際應(yīng)用或服役環(huán)境下的性能和可靠性達(dá)到理想環(huán)境下的程度。隨著金屬材料在武器裝備設(shè)計制造中廣泛使用,新型合金材料和處理工藝不斷出現(xiàn),材料使用或服役的環(huán)境條件復(fù)雜多變,采集和積累的金屬材料效應(yīng)數(shù)據(jù)日漸繁雜冗余,這與科研設(shè)計人員面對多數(shù)據(jù)源如何快速獲取所需金屬材料相關(guān)性能、對金屬材料的環(huán)境適應(yīng)性數(shù)據(jù)進(jìn)行可視化對比以幫助選材優(yōu)材的需求逐漸出現(xiàn)矛盾,而知識圖譜技術(shù)的發(fā)展為此類“數(shù)據(jù)豐富,知識貧乏,可視化效果差”的問題提供了新的技術(shù)解決思路,且在互聯(lián)網(wǎng)上的開放知識圖譜(比如Wikipedia、Freebase、DBpedia、Microsoft Concept Graph)中存在大量不同領(lǐng)域的結(jié)構(gòu)化數(shù)據(jù),為金屬材料環(huán)境適應(yīng)性可視化系統(tǒng)的構(gòu)建與實現(xiàn)提供了高質(zhì)量數(shù)據(jù)源,系統(tǒng)的實現(xiàn)將促進(jìn)金屬材料領(lǐng)域知識的共享和交換,提高其利用價值。
知識圖譜是由相互鏈接的知識點組成的關(guān)系網(wǎng)絡(luò)數(shù)據(jù)庫,是解決知識表達(dá)和存儲管理的一種數(shù)據(jù)組織模式,由谷歌公司于2012 年率先提出這一概念,獲得了前所未有的關(guān)注。本文利用從開放知識圖譜DBpedia 中抽取的金屬材料領(lǐng)域數(shù)據(jù)構(gòu)建了一個領(lǐng)域本體作為可視化圖譜的數(shù)據(jù)源,再通過SQL Server 數(shù)據(jù)庫存儲及處理此數(shù)據(jù)源,最后利用D3.js 構(gòu)建了金屬材料知識圖譜的可視化系統(tǒng),總體思路框架見圖1。
圖1 總體思路框架
圖2 金屬材料知識圖譜構(gòu)建流程
DBpedia 是世界上最大的多領(lǐng)域開放知識圖譜之一,它從維基百科(Wikipedia)的詞條里擷取出結(jié)構(gòu)化的數(shù)據(jù),以強(qiáng)化維基百科的搜索功能。本文利用網(wǎng)絡(luò)爬蟲采集獲取常用金屬材料的科技文獻(xiàn)報告與DBpedia 中抽取的金屬材料領(lǐng)域數(shù)據(jù)構(gòu)建了一個領(lǐng)域本體作為可視化系統(tǒng)的數(shù)據(jù)源,在該本體有4300 多個三元組,其中包含763 個類,1541 個實例以及113 個屬性。將源數(shù)據(jù)按照材料牌號、處理工藝、服役環(huán)境、性能表現(xiàn)等方式進(jìn)行數(shù)據(jù)預(yù)處理,構(gòu)建金屬材料環(huán)境適應(yīng)性信息,具體如表1 所示。
本文通過Python + SQL Server + D3.js 的技術(shù)框架實現(xiàn)了面向常用金屬材料領(lǐng)域的知識圖譜,其主要構(gòu)建流程如圖2。
金屬材料知識圖譜的構(gòu)建過程主要分為數(shù)據(jù)源的采集與存儲、結(jié)構(gòu)化數(shù)據(jù)的構(gòu)建以及可視化系統(tǒng)的開發(fā)等三個步驟,對DBpedia 獲取數(shù)據(jù)通過Redis、Neo4j、SQL Server 等數(shù)據(jù)處理工具的清洗形成金屬材料知識圖,主要流程如下:
1、源數(shù)據(jù)的采集與存儲:本文采用Python 語言的Scrapy 爬蟲框架實現(xiàn)了互聯(lián)網(wǎng)文本數(shù)據(jù)的分布式爬取,將爬取得到的金屬材料文獻(xiàn)數(shù)據(jù)存入Redis 數(shù)據(jù)庫中。
2、結(jié)構(gòu)化數(shù)據(jù)的構(gòu)建:通過自動化腳本對Redis 中的數(shù)據(jù)進(jìn)行進(jìn)一步的數(shù)據(jù)清洗后保存至格式文件中,再將格式文件導(dǎo)入至Neo4j 圖形數(shù)據(jù)庫和SQL Server 關(guān)系型數(shù)據(jù)庫中。
3、可視化系統(tǒng)的構(gòu)建:使用Python 3.7 版本的編程語言完成了爬蟲、數(shù)據(jù)清洗的處理,使用D3.js 實現(xiàn)數(shù)據(jù)的可視化。
本文通過SQL Server 關(guān)系型數(shù)據(jù)庫實現(xiàn)了金屬材料環(huán)境適應(yīng)性數(shù)據(jù)的存儲及管理。數(shù)據(jù)庫包括四張表,其中MetallicMaterial、TreatmentProc 及EnvTest 三張實體表分別存儲了材料牌號和處理工藝、環(huán)境因素與試驗的相關(guān)信息,EnvSuitability 表則存儲了金屬材料知識圖譜中的事實三元組信息。其中MetallicMaterial 表、TreatmentProc 表與EnvTest表是多對多的關(guān)系,通過MetalBrand 和TreatmentProcID 兩個字段進(jìn)行了表間關(guān)系的映射,EnvSuitability 表則存儲了知識圖譜中的三元組。
表1 常用金屬材料環(huán)境適應(yīng)性信息表
圖3 數(shù)據(jù)庫結(jié)構(gòu)
圖4 常用金屬材料的可視化圖譜
具體地說,在數(shù)據(jù)庫中EnvTest 和EnvSuitability 兩張表都表示了金屬材料環(huán)境適應(yīng)性的試驗結(jié)果信息,EnvTest存儲了原始的數(shù)據(jù),而EnvSuitability 則把關(guān)系映射為了三元組,即EnvSuitability 中的數(shù)據(jù)來自于EnvTest。在知識圖譜中的關(guān)系有兩種:一種稱作屬性(property),而另一種稱為關(guān)系(relation)。表EnvSuitability 只存儲實體間的關(guān)系,屬性由實體表檢索得到,在EnvSuitability表中的字段 type,就是用來區(qū)分三元組中的關(guān)系是實體間的關(guān)系還是實體的屬性,便于之后可視化系統(tǒng)的構(gòu)建。
本文的可視化系統(tǒng)以Django 框架搭建了Web Server,Web 前端則通過D3.js 實現(xiàn)了基于知識圖譜的金屬材料環(huán)境適應(yīng)性數(shù)據(jù)可視化。該系統(tǒng)可以檢索不同牌號的金屬材料獲取相應(yīng)的圖譜信息,并會根據(jù)數(shù)據(jù)的更新來調(diào)整有向圖版本。本文選取了常用的6 種金屬材料和其對應(yīng)試驗環(huán)境下的效應(yīng)數(shù)據(jù)進(jìn)行可視化的演示,演示結(jié)果如圖4 所示,其中藍(lán)色的代表知識圖譜中的實體,紅色代表屬性,綠色的是實體和屬性之間的關(guān)系。
本文通過屬性值融合的方法研究構(gòu)建了異構(gòu)多數(shù)據(jù)源的常用金屬材料環(huán)境適應(yīng)性知識圖譜,以Python 編程語言中的Scrapy 爬蟲和Django Web 兩種框架搭建了“數(shù)據(jù)爬取-數(shù)據(jù)存儲-數(shù)據(jù)清洗-數(shù)據(jù)應(yīng)用”的整套處理流程,并以D3.js 為基礎(chǔ)實現(xiàn)了金屬材料環(huán)境適應(yīng)性數(shù)據(jù)的可視化。
隨著大數(shù)據(jù)技術(shù)的發(fā)展,對裝備環(huán)境適應(yīng)性數(shù)據(jù)進(jìn)行深度挖掘和可視化展示的研究成為一項全新的課題,通過對金屬材料環(huán)境適應(yīng)性數(shù)據(jù)的分類和知識圖譜技術(shù)的運用,可以更為深入的了解和研究裝備提供數(shù)據(jù)支持,為科研試制人員在型號設(shè)計時進(jìn)行材料選擇、優(yōu)化材料性能提供科學(xué)決策參考依據(jù)。