国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Cytoscape.js的Neo4j農(nóng)藥知識(shí)圖譜Web可視化研究

2020-05-16 09:15:20李彥志朱紅梅
軟件 2020年4期
關(guān)鍵詞:丙環(huán)唑苯甲圖譜

李彥志,朱紅梅

(1. 西南大學(xué)電子信息與工程學(xué)院,重慶 400715;2. 山東農(nóng)業(yè)大學(xué)信息科學(xué)與工程學(xué)院,山東 泰安 271000)

0 引言

正文內(nèi)容。Google于 2012年提出知識(shí)圖譜概念[1],其本質(zhì)是一種表示知識(shí)的語(yǔ)義網(wǎng)絡(luò),用圖的形式描述客觀事物,即由節(jié)點(diǎn)和邊組成。其中,節(jié)點(diǎn)用來(lái)表示概念和實(shí)體,概念是抽象出來(lái)的事物,實(shí)體是具體的事物;邊表示實(shí)體與概念之間的關(guān)系,事物的內(nèi)部特征用屬性來(lái)表示,外部聯(lián)系用關(guān)系來(lái)表示。知識(shí)圖譜描述實(shí)體之間的關(guān)系,其通用表達(dá)方式是三元組[2],可以表達(dá)豐富的語(yǔ)義關(guān)系[3]。

農(nóng)藥領(lǐng)域的知識(shí)牽扯到農(nóng)業(yè)相關(guān)的多個(gè)方面,例如:農(nóng)作物的分類(lèi),作物的不同品種和名稱(chēng),因此,知識(shí)的專(zhuān)業(yè)性強(qiáng),數(shù)據(jù)的結(jié)構(gòu)復(fù)雜,相關(guān)實(shí)體之間關(guān)系復(fù)雜,織起了一張巨大復(fù)雜的關(guān)系網(wǎng),可以用圖數(shù)據(jù)庫(kù)(Graph database)來(lái)組織這些知識(shí),構(gòu)建農(nóng)藥知識(shí)圖譜,用知識(shí)圖譜展示農(nóng)業(yè)知識(shí)是一種很好的工具[4],通過(guò)知識(shí)的鏈接發(fā)掘更多知識(shí)[5]。原生圖數(shù)據(jù)庫(kù) Neo4j使用的存儲(chǔ)后端專(zhuān)門(mén)為圖結(jié)構(gòu)數(shù)據(jù)的存儲(chǔ)和管理進(jìn)行了定制和優(yōu)化,在圖上互相關(guān)聯(lián)的節(jié)點(diǎn)在數(shù)據(jù)庫(kù)中的物理地址也指向彼此,因此更能發(fā)揮出圖結(jié)構(gòu)形式數(shù)據(jù)的優(yōu)勢(shì)。因此,采用圖結(jié)構(gòu)組織知識(shí)的農(nóng)藥知識(shí)圖譜非常適合用 Neo4j進(jìn)行存儲(chǔ)。知識(shí)可視化在傳遞知識(shí)方面有很大優(yōu)勢(shì)[6],用可視化的方式在Web端展示知識(shí)圖譜的網(wǎng)絡(luò)關(guān)系圖是知識(shí)圖譜查詢(xún)結(jié)果的一種形象化的展示形式,可以使人一目了然看到結(jié)果,有助于直觀揭示對(duì)象之間的關(guān)系,展示多方面的屬性,理解節(jié)點(diǎn)之間的連接和關(guān)系,確保對(duì)關(guān)系的理解更直觀和形象。Cytoscape.js[7]是一個(gè)用JS編寫(xiě)的開(kāi)源圖庫(kù),它允許用戶與圖形交互以及顯示操作豐富的交互式圖形。通過(guò)把Cytoscape.js集成到應(yīng)用程序中,就可以實(shí)現(xiàn)顯示neo4j圖形數(shù)據(jù)庫(kù)的數(shù)據(jù)到Web端。

1 農(nóng)藥知識(shí)圖譜的結(jié)構(gòu)模型

知識(shí)圖譜由大量結(jié)構(gòu)化元組數(shù)據(jù)組成。農(nóng)藥品種很多,標(biāo)準(zhǔn)不同,分類(lèi)也不同,可以按用途分類(lèi),按原料來(lái)源分類(lèi),按化學(xué)結(jié)構(gòu)分類(lèi),按加工劑型分類(lèi)等,一種實(shí)體可能屬于多個(gè)不同分類(lèi)。所以,在農(nóng)藥知識(shí)圖譜中,一個(gè)概念節(jié)點(diǎn)C或?qū)嵗?jié)點(diǎn)E可能與多個(gè)概念節(jié)點(diǎn),如C1,C2,…,Cn分別存在關(guān)系R1,R2,…,Rn。如果2個(gè)概念節(jié)點(diǎn)C1,C2之間存在關(guān)系 RC,且 E1、E2分別與概念節(jié)點(diǎn) C1、C2存在概念-實(shí)例關(guān)系,則E1和E2之間也存在關(guān)系RC。農(nóng)藥知識(shí)圖譜包括概念層和實(shí)例層,其基本結(jié)構(gòu)模型如圖1所示。其中,虛線框部分是概念層,其余部分是實(shí)例層。一種農(nóng)藥與某病/蟲(chóng)/草害或調(diào)節(jié)生長(zhǎng)之間具有actOn關(guān)系,該關(guān)系具有屬性:‘制劑用藥量’和‘使用方法’;農(nóng)藥節(jié)點(diǎn)本身也具有屬性:‘農(nóng)藥登記證號(hào)’、‘有效成分’和‘有效成分含量’。這些節(jié)點(diǎn)、關(guān)系和屬性都要求在需要的時(shí)候能夠?qū)崿F(xiàn)

Web可視化。

圖1 農(nóng)藥知識(shí)圖譜的結(jié)構(gòu)模型Fig.1 The Structure Model of Pesticide Knowledge Graph

2 農(nóng)藥知識(shí)圖譜的的Web可視化實(shí)現(xiàn)

把存儲(chǔ)在 neo4j圖數(shù)據(jù)庫(kù)的農(nóng)藥知識(shí)圖譜數(shù)據(jù)顯示到前端的可視化系統(tǒng)的架構(gòu)體系如圖2所示。該架構(gòu)的后端包括:圖形數(shù)據(jù)庫(kù) neo4j用來(lái)存儲(chǔ)網(wǎng)絡(luò)節(jié)點(diǎn)及節(jié)點(diǎn)間的關(guān)系;一個(gè)基于 Python的 Web微框架Flask;neo4j的Python API包py2neo[8]。前端包括:用于顯示節(jié)點(diǎn)及關(guān)系的cytoscape.js,AJAX用的庫(kù) jQuery.js。Cytoscape.js 是開(kāi)源 JavaScript圖形庫(kù),可以用它分析和制作可視化圖形。

圖2 農(nóng)藥知識(shí)圖譜Web可視化的架構(gòu)體系Fig.2 Framework of Web visualization of pesticide knowledge graph

2.1 搭建基于Flask的農(nóng)藥知識(shí)圖譜可視化網(wǎng)站

添加需要的html/Javascript/css文件以滿足功能要求,項(xiàng)目的目錄結(jié)構(gòu)如下:

| app.py

+---static

| +---css

| | style.css

| +---js

| code.js

| cytoscape.min.js

| jquery-1.11.2.min.js

| cytoscape-qtip.js

| jquery.qtip.css

| jquery.qtip.js

+---templates

| index.html

templates 目錄用于存放html網(wǎng)頁(yè),index.html是網(wǎng)站的主頁(yè)。flask應(yīng)用程序 app.py對(duì)應(yīng)到templates目錄下找響應(yīng)頁(yè)面。 static 目錄用于存放網(wǎng)站的靜態(tài)文件,包括javascript文件和css文件。cytoscape.min.js是cytoscape必須的Javascript庫(kù);AJAX實(shí)現(xiàn)客戶端與服務(wù)器端的異步通信,創(chuàng)建快速動(dòng)態(tài)網(wǎng)頁(yè),jquery-1.11.2.min.js為網(wǎng)站提供AJAX交互;前臺(tái)程序code.js調(diào)用cytoscape.min.js在前臺(tái)生成網(wǎng)絡(luò)關(guān)系圖;style.css是自定義的樣式表,cytoscape.min.js讀取樣式表初始化網(wǎng)絡(luò)關(guān)系圖的樣式,如:畫(huà)布的寬度,高度,背景;jquery.qtip.css、query.qtip.js和 cytoscape-qtip.js是 jquery的提示插件,用于鼠標(biāo)點(diǎn)擊時(shí)的消息提醒。

2.2 用py2neo查詢(xún)農(nóng)藥知識(shí)圖譜獲取節(jié)點(diǎn)和關(guān)系

Cypher[9]是noe4j數(shù)據(jù)庫(kù)的查詢(xún)語(yǔ)言。本項(xiàng)目的主程序主要完成連接 neo4j圖數(shù)據(jù)庫(kù),從主頁(yè)獲取查詢(xún)條件,生成用Cypher語(yǔ)言描述的查詢(xún)matchstr,通過(guò)調(diào)用py2neo的session.run(matchstr)語(yǔ)句查詢(xún)農(nóng)藥知識(shí)圖譜,得到圖的節(jié)點(diǎn)和邊,再構(gòu)建web顯示節(jié)點(diǎn)和邊的信息,取得節(jié)點(diǎn)的id,屬性(properties),標(biāo)簽(Label),返回圖的節(jié)點(diǎn)和邊的列表,構(gòu)造網(wǎng)站動(dòng)態(tài)圖數(shù)據(jù)。

2.3 用cytoscape.js顯示農(nóng)藥知識(shí)網(wǎng)絡(luò)關(guān)系圖

2.3.1 查詢(xún)結(jié)果的可視化

用cytoscape.js畫(huà)圖的典型方法如下:

var cy = cytoscape({

container: document.getElementById('cy'), // 定義需要渲染的容器

elements:{

nodes:[/*...*/],

edges:[/*...*/]

},

style:[/*...*/],

layout<{ name:'cose'}

});

圖3 顯示用于‘水稻’病害的藥劑(部分)Fig.3 Show pesticide for 'rice' disease (part)

該方法用cytoscape()函數(shù)生成cy,并為其設(shè)置各種屬性,如:container,elements,style,layout等。其中,container定義需要渲染的容器,elements中的nodes是要顯示的節(jié)點(diǎn),edges是要顯示的邊,style,layout等規(guī)定了顯示時(shí)的樣式、布局,包括大小、前景、背景顏色等。還可以定義一些交互選項(xiàng),如:圖是否可縮放、縮放級(jí)別的界限、是否使用事件、是否啟用平移、節(jié)點(diǎn)是否可拖動(dòng)等。

查找用于‘水稻’病害的藥劑(部分)如圖 3所示。從圖示可以看出,用于‘水稻’病害的藥劑有:‘咪錳·多菌靈’和‘咪鮮胺’用于治療‘惡苗病’,‘稻瘟靈’用于治療‘稻瘟病’,‘丙環(huán)唑’、‘苯甲丙環(huán)唑’、‘噻呋酰胺’、‘己唑醇’用于治療‘紋枯病’。

2.3.2 節(jié)點(diǎn)屬性的可視化

在展示圖中,當(dāng)用戶點(diǎn)擊農(nóng)藥節(jié)點(diǎn)時(shí)要顯示這種農(nóng)藥的屬性,如:農(nóng)藥登記號(hào) Registration-CertificateNo,有效成分 ActiveIngredient及其含量ActiveIngredientContent,其設(shè)置如下:

cy.nodes('[label ="AgriChem"]').qtip({

content:

{

text:function(){

return '有 效 成 分 :'+ this.data( 'ActiveIngredient')+'<br/> 有 效 成 分 含 量 :'+this.data('ActiveIngredientContent')

},

title:function(){ return ''+this.data('RegistrationCertificateNo')}

},

position:{[/*...*/]},

style:{[/*...*/]}

});

圖4 顯示農(nóng)藥節(jié)點(diǎn)的屬性Fig.4 Show attribute of pesticide node

點(diǎn)擊農(nóng)藥‘苯甲·丙環(huán)唑'節(jié)點(diǎn)顯示其屬性如圖 4所示。從圖示可以看出,農(nóng)藥‘苯甲·丙環(huán)唑’的‘農(nóng)藥登記證號(hào)’是LS20082140,有效成分是‘苯醚甲環(huán)唑,丙環(huán)唑’,有效成分含量是 300克/升,用于治療水稻‘紋枯病’。

2.3.3 關(guān)系屬性的可視化

在展示圖中,當(dāng)用戶點(diǎn)擊農(nóng)藥與某種病/蟲(chóng)/草害的actsOn關(guān)系時(shí)要顯示這種關(guān)系的屬性,如:制劑用藥量Dosage和使用方法Usage,其設(shè)置如下:

cy.edges('[relationship ="actsOn"]').qtip({

content:

{

text:function(){ return ' 制 劑 用 藥量 :'+this.data('Dosage')+'<br/> 使 用 方法:'+this.data('Usage')},

title:function(){ return ''+this.data('relationship')}

},

position:{[/*...*/]},

style:{[/*...*/]}

});

圖5 顯示農(nóng)藥與病害的actsOn關(guān)系的屬性Fig.5 Show attribute of relation ‘a(chǎn)ctsOn'between pesticides and diseases

點(diǎn)擊農(nóng)藥‘苯甲·丙環(huán)唑'與‘紋枯病’的 actsOn關(guān)系顯示其屬性如圖5所示。從圖示可以看出,農(nóng)藥‘苯甲·丙環(huán)唑'用于治療水稻‘紋枯病’時(shí),制劑用藥量是 15-20毫升/畝,使用方法是噴霧。

3 總結(jié)與展望

本文介紹Neo4j農(nóng)藥知識(shí)圖譜Web可視化的方法。該方法在分析農(nóng)藥知識(shí)圖譜結(jié)構(gòu)的基礎(chǔ)上,搭建了基于 Flask的農(nóng)藥知識(shí)圖譜可視化網(wǎng)站,從網(wǎng)頁(yè)獲取查詢(xún)條件,生成用Cypher語(yǔ)言描述的查詢(xún)語(yǔ)句,通過(guò)py2neo查詢(xún)neo4j農(nóng)藥知識(shí)圖譜,取得圖的節(jié)點(diǎn)和邊的信息,構(gòu)造網(wǎng)站動(dòng)態(tài)圖數(shù)據(jù),利用cytoscape.js實(shí)現(xiàn)查詢(xún)結(jié)果的Web可視化。完善和擴(kuò)展農(nóng)藥知識(shí)圖譜,增加其它多種節(jié)點(diǎn)和關(guān)系的屬性展示是進(jìn)一步要完成的工作。

猜你喜歡
丙環(huán)唑苯甲圖譜
19%啶氧.丙環(huán)唑微乳劑分析方法研究
36%丙環(huán)唑·咪鮮胺懸浮劑的高效液相色譜分析
HP-β-CD水相中4-甲氧基苯甲硫醚的選擇性氧化
繪一張成長(zhǎng)圖譜
高效液相色譜法同時(shí)測(cè)定紡織品中11種二苯甲酮類(lèi)紫外吸收劑
世界上最苦的物質(zhì)是什么?
補(bǔ)腎強(qiáng)身片UPLC指紋圖譜
中成藥(2017年3期)2017-05-17 06:09:01
主動(dòng)對(duì)接你思維的知識(shí)圖譜
30%苯甲·丙環(huán)唑乳油防治設(shè)施草莓白粉病藥效試驗(yàn)
上海蔬菜(2015年2期)2015-12-26 05:03:42
雜草圖譜
闸北区| 化州市| 永城市| 比如县| 分宜县| 贵阳市| 溆浦县| 舒城县| 元氏县| 芷江| 汤原县| 裕民县| 延寿县| 永城市| 安岳县| 东至县| 含山县| 嘉祥县| 松阳县| 溧阳市| 太仆寺旗| 盖州市| 米脂县| 灌阳县| 淅川县| 张北县| 鄯善县| 雷山县| 新密市| 清河县| 汉源县| 客服| 田阳县| 南京市| 嘉禾县| 文山县| 保德县| 邮箱| 来宾市| 赫章县| 石嘴山市|