趙偉男 俎再泉 康玉暉 夏方方 候霞



關鍵詞:知識圖譜;圖數據庫;Echarts圖表庫;漸進式框架;Web開發
0 引言
隨著信息技術的高速發展,信息的傳播方式呈現出多元化的趨勢,新媒體成為文化傳播的新方式,它的應用改變了以往人們只能被動接收信息的狀況、打破了文化傳播地域性的限制,人們能夠主動且迅速地獲取到文化內容,同時將自己獲得的信息傳遞出去,使得文化的傳播更加廣泛[1]。
為適應新時代文化傳播方式,線下博物館也開始了文物數字化的轉變。當下,比較成熟的實現成果是博物館網站[2],但其中的內容僅是對獨立的一個作品展覽介紹,沒有將眾多的內在知識關聯起來,難以充分展現文化內容和數據價值。知識圖譜技術能使獨立數據形成實體與實體之間的關聯,作用在博物館數據集中,能充分展示出作品之間的深層次關系,從而豐富作品的展示形式。
本文提出一種基于知識圖譜技術來對民國繪畫、畫家信息進行知識組織的方案,并設計了基于知識圖譜的書畫作品平臺。
1 書畫類知識圖譜數據模型構建
1.1 數據獲取
數據獲取的主要任務是完成對民國畫作、作者數據信息的收集,數據來源包括百度百科、維基百科、Google學術等方面。但從網絡獲取的知識數據多是一些半結構化的數據,該形式不契合關系數據庫中數據表的強關聯性的結構,但是又包含分離語義元素的標簽或數據字段的結構。因此,本文采用爬蟲技術進行數據爬取,對獲取的非結構化數據進行一定的處理,為后續抽取實體和實體關系形成知識圖譜做準備。
從網站上爬取相應數據需要用到解析技術,本文數據解析采用了Beautiful Soup[3]技術來對DOM樹解析,例如使用如下方式對某一個知識節點進行獲取。
Beautiful Soup技術主要是利用DOM樹的結構化標簽的特性,通過按照節點名稱搜索,屬性搜索,節點文本搜索等方式對標簽進行抽取,最后序列化到本地磁盤。
使用網絡爬蟲獲取的數據由于比較混亂,還不能作為實體以及關系抽取的數據源,因此需要對數據進行清洗,即剔除不符合標準的數據,對數據所屬類型進行分類等。最終經過一系列的操作,獲得了干凈的數據源,接下來所要做的操作便是對實體以及關系的抽取。
1.2 領域知識建模
知識領域建模需要對數據進行實體以及實體間關聯的抽取。一般來講,相同的數據可以通過多種模式方法來定義,設計一個優秀的模式可以避免數據的冗余,減少數據庫的存儲空間及維護的成本。
為此,通過對畫作、作者延伸知識的特征分析,總共抽取出7類實體和10類關系:
1) 實體類型:作者籍貫、作者、畫作、畫作風格、畫作類型、題詩、鈐印7類實體。
2) 關系類型:作者徒弟關系、作者籍貫關系、作者創作鈐印關系、朋友關系、擅長風格關系、作者代表作關系、畫作題詩關系、畫作所屬鈐印關系、畫作風格關系、畫作類型關系。
本文構建的知識圖譜示例如圖1所示。其中圓用來標識實體,實體與實體間的關系由圖中的邊定義。例如“ 張大千”與“ 萬壽山昆明湖”的關系為“au?thor_representPainting_painting”,即張大千的代表作為萬壽山昆明湖。其他實體之間的關聯形成與上述情況類似。
2 基于知識圖譜的書畫作品平臺
2.1 系統設計
針對書畫作品展的需求,定義系統功能需求包含如下內容:
1) 首頁使用山水畫,借助輪播圖技術展示。
2) 頭部功能模塊區域,定義“首頁”“畫作”“作者”“主題”四個模塊,點擊頁面跳轉至相應的模塊區域。搜索模塊點擊后可輸入文字,點擊搜索按鈕后跳轉頁面。
3) 畫作瀏覽模塊,展示許多畫作的縮略圖,隨著頁面下滑不斷填入新的畫作,鼠標懸浮顯示畫作基本信息,點擊跳轉詳情頁面。
4) 作者瀏覽模塊,展示許多作者的縮略圖,隨著頁面下滑不斷填入新的作者,鼠標懸浮顯示作者基本信息,點擊跳轉詳情頁面。
5) 主題模塊,展示畫作的三種主題:“山水”“人物”“花鳥”,點擊某個主題跳轉至相應畫作主題展示區域。
6) 畫作詳情模塊,主體區域展示畫作圖片,一旁注明畫作完整信息。此頁面中根據知識圖譜技術推薦與本畫作具有關聯的畫作列表,并提供“換一換”功能。
7) 作者詳情模塊,展示作者基本信息、作者畫作。實現一個中國地圖,地圖上注明作者生平所經過地點、作畫地點。
本方案的核心目標是“多關系圖”的信息可視化。結合知識圖譜的特征、技術原理和傳統信息可視化方法,可以將知識圖譜可視化的過程,歸納為“確定知識主題(主題層)-處理與分析數據(數據層)-構建數據三元組(關系層)-進行可視化映射(可視層)”四個步驟[4]。系統架構如圖2所示。
系統原型的實現,從開發流程上來說,大致可以歸為Neo4j數據庫設計與存儲(數據層與關系層)、后端數據接口的實現、前端布局與交互實現(可視層)三個部分內容[5]。本文將從上述三個模塊展開論述。
2.2 Neo4j 數據庫的設計與存儲
最開始的數據集是非結構化的,語義并不明確,通過構建書畫類知識圖譜數據模型,人工定義實體與關系,再經過幾輪數據清洗后,數據呈現出具有半結構化層次結構且語義清晰的數據集。將其分類存入csv文件中后,在Neo4j數據庫中進行導入,最終實現了數據的存儲。
根據需要,數據庫中設計了“作者”“畫作”“題詩”“印章”“畫作類型”“地區”“畫作風格”幾種實體,以及“作者祖籍”“畫作風格”“作者朋友”“畫作題詩”“畫作印章”“畫作風格”幾種關系。
利用上述節點與關系,構建知識圖譜三元組,例如,“[ 作者”-“祖籍”-“地區”]、“[ 畫作”-“風格”-“畫作”]等,最后將各個節點及關系數據存儲到數據庫中。存儲成功后,經測試,此數據庫可以實現對畫作、作者及各種關系數據進行快速檢索,為前端數據的快速響應與推理提供保障。
2.3 后端數據接口的實現
伴隨著DOM操作庫與模板引擎的出現,市面上的項目逐漸由原先的后端主導模式轉向富前端化,將更多的交互邏輯交由前端來實現,后端只保留數據支持與運維部署。此項目正是因為富前端化,后端僅實現為前端提供數據接口功能。
在使用的SSM(Spring+SpringMVC+MyBatis) 框架中,Spring負責創造bean容器;SpringMVC負責配置前端控制器;MyBatis負責與數據庫進行交互,并取得原始數據。
數據請求處理流程如圖3所示。在請求發出后,前端控制器將請求分發給相應的控制器(Controller) ,控制層調用模型處理業務(Service) ,在Service層調用持久層接口(dao) 取得數據庫原始數據。最終,在Ser?vice層將原始數據封裝為對象,通過第三方工具Jack?Son轉化為json格式響應給前端。
2.4 頁面布局與交互實現
在結合系統功能需求并綜合考慮市面上成型網頁設計元素后,本項目共設立“主界面”“瀏覽畫作”“瀏覽作者”“畫作詳情”“作者詳情”五個關鍵界面,最終使用墨刀平臺進行設計稿的設計。在設計稿實現前確定使用Vue框架開發單頁Web應用來為頁面提供更快的訪問速度,使用Echarts圖標庫來為數據呈現出更好的可視化效果。
1) 主界面
界面主體分為頭部區域與主體區域。頭部區域Logo部分點擊后跳轉頁面首頁,中間四個功能模塊點擊跳轉至相應區域,右邊搜索圖標點擊后彈出搜索框供文字鍵入,在搜索框中有文字的情況再次點擊搜索圖標跳轉搜索結果頁面。主體區域選材為卷類型畫作關鍵部位截取,點擊后跳轉至相應詳情界面,鼠標懸浮畫作會彈出左右切換按鈕,默認情況下每隔5s自動切換下一張。
2) 瀏覽界面
瀏覽界面分為瀏覽畫作與瀏覽畫家兩個界面,在頁面頭部分別點擊“民國繪畫”“民國畫家”進入,兩頁面主體功能邏輯幾乎相同。因圖畫、作者圖片數據較多,為優化頁面響應速度,前端使用插件v-lazy實現圖片的懶加載,優先加載頁面可視區域的圖片,另外,圖片均采用小于256kb的縮略圖。鼠標懸浮在圖片上會顯示相應圖片的名稱信息,點擊后跳轉至詳情頁面。
3) 詳情界面
詳情界面分為畫家、畫作兩個詳情界面,畫作詳情界面展示了畫作的完整圖片,其下注明畫作的相關信息,諸如畫作名稱、畫家、畫作規格等。在底部提供相關畫作推薦功能,根據構建的“[ 畫作”-“關系”-“畫作”]三元組進行內容的提供。
作者詳情界面如圖4所示,主體區域分為左右兩個部分。右側部分為畫家的基本信息,通過上側導航欄可查看當前畫家的畫作列表、生平。左側部分使用Echarts技術實現中國地圖,顯示畫家生平所經歷之處,包括“祖籍”“游歷”“作畫”等地點,配置data數據項來實現鼠標懸浮在相關地區顯示畫家在此地的活動信息。
3 結束語
本文提出了一種基于知識圖譜的書畫類作品平臺,通過圖譜的內在關聯進行知識的快讀導航。從系統設計方案入手,闡述了實際開發中知識圖譜技術與前端框架的使用。系統后端通過對數據進行圖譜構建、存儲,實現數據接口,為前端提供結構化數據及實體關系表;通過分析數據接口中的數據,前端對數據進行雙向綁定與動態渲染,搭建了用戶友好型展示界面,可為用戶進行高效的知識導航。
本次工作對書畫類知識圖譜的構建和應用進行了一次有效探索,后期工作還需深入開展。如數據中畫作、作者的數據還不夠豐富。未來考慮將收集更多的畫作、作者信息,去構建更大的知識圖譜,從而使知識圖譜在Web應用中展現出更大的活力,為其他研究人員及開發人員提供更有價值的參考。