999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Neo4j圖數據庫的課程體系知識圖譜系統設計與實現

2018-01-08 20:30:34肖慶都屈亮亮侯霞
電腦知識與技術 2017年36期

肖慶都 屈亮亮 侯霞

摘要:為了解決課程大綱課程編寫不規范的問題,并梳理課程之間的關系,使用JAVA技術與Neo4j圖數據圖設計并實現了一個知識圖譜系統,可以發現課程大綱之間存在的問題,以及在知識圖譜中快速搜索課程信息。

關鍵詞:JAVA;圖數據庫;知識圖譜

中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2017)36-0130-03

1 背景

關系型數據庫長期以來一直占市場主流。目前主流關系型數據庫管理系統有:SQL Server、MySQL、Oracle等。隨著網絡應用程序的規模日漸變大,數據形式更加多樣化,關系型數據庫在數據建模和存儲中的一些缺陷和問題隨之凸顯而來。真實世界中很多數據關系是圖形的,圖數據庫可以更好地描述此類數據[1]。例如Neo4j就是一種圖形數據庫管理系統。

課程大綱由于人工編寫的原因,會存在一些問題。同時學生從課程單中很難清晰地梳理課程體系的關系。針對這類問題,本文提供了一種解決方案,基于Neo4j數據庫,使用JAVA編程語言,構建課程體系的知識圖譜系統,可以更加直觀地展示各個課程之間關系,并發現大綱中存在的問題。在并對特定節點的前驅進行查詢并展示,替代手工查找,更加節省時間,便于對所需內容的快速獲取。

2 相關概念

在圖計算中,基本的數據結構表達式是:[G=V,E,V=vertex(節點),E=edge(邊)] 。圖數據庫中數據模型主要以節點和關系(邊)來體現[2],也可以處理鍵值對。數據具有如下特征:

l 包含節點和邊

l 節點上有屬性(鍵值對)

l 邊有名字和方向,并總是有一個開始節點和結束節點

l 邊也可以有屬性

Neo4j數據庫是一個高性能的NOSQL圖形數據庫,它將結構化數據存儲在網絡上而不是表中。Neo4j也可以被看作是一個高性能的圖引擎,該引擎具有成熟數據庫的所有特性。具有以下優點:

l 自帶易于學習的查詢語言(名為Cypher)

l 不使用schema,可以滿足任何形式的需求

l 相比關系型數據庫,查詢速度要快上很多

l 實體與關系結構非常自然地切合人類的直觀感受

l 支持JAVA進行操作

l 提供可視化查詢控制臺

3 系統總體設計

系統設計目標:構建一個課程體系的知識圖譜,數據存儲在圖數據庫中,界面展示知識圖譜,并可以根據特定的節點查詢所需內容。

系統設計分為數據提取,數據存儲,知識圖譜可視化及查詢。主要處理流程如圖1所示,包括如下步驟:

l 數據準備和提取:準備Word形式的課程大綱和存儲課程性質(如必修、選修等)的Excel文件;使用JAVA語言自動化抽取Word,Excel中相應信息,并將Word中文檔信息與Excel文檔中的信息進行匹配;

l 數據存儲:根據抽取信息構建課程體系的知識圖譜,存儲到圖數據庫中;

l 圖譜的可視化及查詢:界面展示知識圖譜,并可基于圖譜進行課程關系的查詢。

4 系統主要模塊設計

本節將給出系統的主要模塊的相關設計。

4.1 數據抽取

數據抽取是系統中最關鍵的基礎部分,對Word,Excel文檔進行數據自動化提取以及規范化。Word文檔數據抽取主要對表格處理,抽取課程名稱,先修課程。抽取得到的內容需要進行相應處理,對于字符的大小寫以及特殊字符處理,如將所有的英文字符全部規定為大寫字符,以及所有含有特殊字符的數據處理為英文的特殊字符,例如:中文的括號、逗號等。Word課程大綱文檔結構如圖2。

4.2 數據存儲

數據存儲首先需要將數據處理完畢,構成知識圖譜。知識圖譜在數據庫中存儲結構的示意圖如圖4所示。

數據類型分為必修,選修,以及未匹配三種類型,數據節點顏色不同,數據類型不同,更加直觀展示節點之間的關系以及節點的信息,便于進行查找節點之間的關系。

單個數據節點的存儲結構:節點可擁有不同屬性值,節點的顏色會隨type類型的變化而變化。由于數據庫的特殊性,可以創建兩個除ID之外完全相同的節點,在創建節點時尤其要注意字符的處理。

數據庫中信息節點可以文本類型查看,通過文本類型,可更加直觀展示單個節點的所包含的信息。

由于抽取的數據以及存儲的數據為中文信息,在圖數據庫中進行存儲時,要特別注意的是中文的字符的長度,特殊字符的中英文區別,否則將會創建多個相同的節點。造成知識圖譜的混亂。

存儲數據時首先要先檢查所要創建的節點以及關系在數據庫中是否存在,圖數據庫的特殊性在于如果不做事先處理,節點之間的關系可以存在多個關系,以及同樣的節點可以存在多個,最終造成圖譜的混亂,達不到系統的設計要求。

4.3 知識圖譜展示以及查詢

知識圖譜展示需要首先將圖數據庫中節點信息抽取,使用插件將信息進行解析,展示在界面中[3]。在界面中輸入特定節點信息,查詢與之相關的所有前驅節點,并展示。

查詢算法設計:

1) 輸入節點名稱n

2) 節點n在數據庫中存在,否則跳轉步驟12

3) Rset為空(Rset為與n相關節點的結果集),否則跳轉步驟5

4) 輸出節點n的信息

5) list集合存儲與n相關節點名稱

6) list不為空,否則跳轉步驟12

7) 遍歷list集合,對list中每個元素,查詢得到結果集Rset2

8) 移除當前list中當前查詢的節點名稱

9) 結果集Rest2不為空,否則跳轉步驟6

10) 繼續將與節點相關的元素添加到list集合中

11) 輸出節點信息,跳轉到步驟6

12) 結束

該算法采用遞歸方式,對輸入特點節點進行查詢與之相關的節點,從而達到對特定節點進行查詢與之相連的所有節點的目的。算法中關鍵部分在于查詢到一個節點相連的所有節點,如何對這些節點接著進行查詢的問題。該算法采用list集合,存儲與節點相連的所有節點,加入集合中。對集合進行遍歷,查詢集合中每個節點的信息,并從集合中刪除該節點。算法關鍵流程如圖5所示。

5 系統的實現

5.1 抽取數據的技術

Jacob是Java與COM組件橋接的縮寫,即JAVA-COM Bridge。通過使用Jacob類庫,我們可以很方便地在Java程序中調用COM自動化組件[4]。

Word中以表格形式存儲課程名稱,先修課程信息。表格有一定的規范性,只需要對表格特定位置進行操作,即可獲取信息,將信息存放在HashMap中,以課程名稱作為鍵值,先修課程進行規范化處理后,以List集合整體作為HashMap的值。由于HashMap的存儲特性,進行存儲過程中首先檢查HashMap中是否存在相同的鍵,如果存在,即比較其值,選擇存儲。不存在相同的鍵,直接存儲。

在抽取Excel表中信息時,首先針對Excel表進行處理,保證課程名稱無重復信息,Excel表的規范性,只需要對特定表格進行處理,即可得到相應的課程信息,同樣使用HashMap進行存儲課程名稱-課程類型。

使用Jacob相關方法對Word以及Excel文檔進行操作,達到對數據進行抽取以及處理的目的[5]。

5.2 數據展示的技術

數據展示采用D3.js插件來顯示圖數據中數據節點以及節點之間的關系[6],D3.js是一個JavaScript庫,它可以通過數據來操作文檔。D3.js可以通過使用HTML、SVG和CSS把數據鮮活形象地展現出來。

為了便于Neo4j和D3.js的數據交互,采用JSON格式形式進行前后臺的數據交互[7],如

{source:"1",target:”2”, type:”選修”,type2:”必修”,rela:”先修”}

使用插件對JSON數據進行解析,得到源節點,目標節點,源節點的類型,目標節點的類型,源節點與目標節點直接的關系這些信息。D3.js通過解析這些信息進行圖譜的可視化[8]。

6 實驗結果

通過對Word和Excel文檔進行信息抽取,從Word中獲取到課程信息,前驅課程即課程之間的關系,從Excel中獲取課程名稱和課程類型,將課程信息進行比對,得到課程名稱,課程類型以及課程之間的關系即前驅。在數據庫中構建課程知識體系圖譜,知識體系圖譜如圖6所示。

針對課程知識體系圖譜可以查詢到指定課程的前驅課程,輸入指定課程名稱例如:計算機網絡。查詢結果如圖7所示。

7 結束語

本篇文章主要介紹了從最初的設計到最終實現知識圖譜系統的相關內容,圖譜不僅僅可以用在構建知識體系圖譜,可以運用到家庭圖譜、交通網絡、社交網絡等等,圖譜的應用較為廣泛,生活中的方方面面都可以使用圖譜。構建知識圖譜來發現知識體系中存在的問題,并進行加以解決,通過知識圖譜更加快捷地查找到所需要的內容,以及發現節點與節點之間的關系。

通過頁面展示與數據庫展示可以快速發現數據之間的關系以及存在的問題,頁面展示可以快速查詢所需節點與之相關的信息。

參考文獻:

[1] 姜洋, 彭智勇, 彭煜瑋. 基于圖數據庫的在線族譜編錄系統[J]. 計算機應用, 2015, 35(1):125-130.

[2] 程耀東, 趙建昌, 徐軍. 圖形數據庫應用技術研究[J]. 工程圖學, 2006, 27(1):143-148.

[3] 宋海軍. 基于Web的數據庫檢索系統的實現[J]. 中國科技信息工程論壇, 2005(5):96.

[4] 李瑞, 李永剛. JAVA中基于JACOB的COM 組件調用研究[J]. 微計算機信息, 2007 , 23(15):168-170.

[5] 王春明, 朱曉輝, 陸天捷. 基于 JACOB 的 Word 文檔自動生成技術研究[J]. 南通職業大學學報, 2012 , 26(1):77-80.

[6] 張運良, 張兆鋒, 張曉丹, 等. 使用D3.js的知識組織系統Web動態交互可視化功能實現[J]. 現代圖書情報技術, 2013, 29(7):127-131.

[7] 陳衛衛, 王艷. 基于NoSQL數據庫的通用數據存儲結構的設計方案[J]. 價值工程, 2012, 31(26):191-192.

[8] 權鑫. 基于D3.js的數據可視化系統框架設計與實現[D]. 北京: 北京交通大學 , 2016.

主站蜘蛛池模板: 久久久久久久97| 97无码免费人妻超级碰碰碰| 欧美另类精品一区二区三区| 精品国产免费观看一区| 99色亚洲国产精品11p| 波多野结衣久久精品| 国产精品色婷婷在线观看| 亚洲狼网站狼狼鲁亚洲下载| 美女被躁出白浆视频播放| 成人国产一区二区三区| 亚洲 成人国产| 日韩毛片免费| 欧美在线导航| 日韩欧美中文在线| 在线另类稀缺国产呦| 久久亚洲国产最新网站| 成人精品免费视频| 国产在线精彩视频二区| 欧美成人精品一区二区| 狠狠做深爱婷婷久久一区| 丰满的熟女一区二区三区l| 久无码久无码av无码| 毛片一级在线| 在线a视频免费观看| 国禁国产you女视频网站| 91久久精品日日躁夜夜躁欧美| 久久精品人妻中文视频| 欧美成人免费午夜全| 尤物视频一区| 国产精品hd在线播放| 精品五夜婷香蕉国产线看观看| 亚洲电影天堂在线国语对白| 毛片视频网址| 色九九视频| 啪啪免费视频一区二区| 久久亚洲精少妇毛片午夜无码| 国产熟睡乱子伦视频网站| 久久久久青草线综合超碰| 亚洲综合久久一本伊一区| 男女性午夜福利网站| 国产欧美日韩专区发布| 国产欧美日韩另类| 亚洲中文久久精品无玛| 国产精品免费久久久久影院无码| 成人综合网址| 五月婷婷欧美| 亚洲天堂网2014| 无码不卡的中文字幕视频| 亚洲人成人无码www| 99热国产在线精品99| 欧美日韩国产在线观看一区二区三区 | 久久精品国产免费观看频道| 亚洲综合色婷婷| 青青极品在线| 77777亚洲午夜久久多人| 无码啪啪精品天堂浪潮av| 五月婷婷丁香综合| 97青草最新免费精品视频| 无码内射在线| 在线观看亚洲精品福利片| 黄色网站不卡无码| 一本无码在线观看| 最新加勒比隔壁人妻| 中文字幕va| 91美女视频在线观看| 亚洲国产精品人久久电影| 91免费国产在线观看尤物| 欧美a级在线| 在线观看国产一区二区三区99| 99国产精品免费观看视频| 国产无码精品在线| 亚洲人成网址| 中国特黄美女一级视频| 成人精品免费视频| 亚洲日韩精品无码专区97| 在线高清亚洲精品二区| 女人爽到高潮免费视频大全| 精品国产香蕉在线播出| 日本午夜影院| 日本91在线| 久久久久无码国产精品不卡| 一本大道在线一本久道|