唐天琪,談 帥,高 雅
(江蘇省測(cè)繪研究所, 江蘇 南京 210013)
大數(shù)據(jù)時(shí)代,地理時(shí)空數(shù)據(jù)的迅猛增長(zhǎng)給應(yīng)用理念、技術(shù)框架和服務(wù)形式帶來(lái)挑戰(zhàn)[1]。原國(guó)家測(cè)繪地理信息局在2017年頒布的《智慧城市時(shí)空大數(shù)據(jù)與云平臺(tái)建設(shè)技術(shù)大綱》中提出,一套時(shí)空大數(shù)據(jù)包括市域全覆蓋的歷史與現(xiàn)狀的基礎(chǔ)地理信息數(shù)據(jù)、歷史與現(xiàn)狀的公共專題數(shù)據(jù)、智能感知數(shù)據(jù)和空間規(guī)劃數(shù)據(jù),要求建設(shè)知識(shí)引擎,并“通過(guò)提供不同層級(jí)能力的大數(shù)據(jù)分析工具,幫助用戶完成對(duì)數(shù)據(jù)的深度挖掘,進(jìn)而獲取有價(jià)值的知識(shí)”[2]。
隨著“互聯(lián)網(wǎng)+”、大數(shù)據(jù)、云計(jì)算、人工智能2.0等的迅猛發(fā)展,以知識(shí)圖譜和知識(shí)中心為代表的知識(shí)服務(wù)研究方興未艾[3-5]。國(guó)內(nèi)學(xué)者從基礎(chǔ)地理知識(shí)服務(wù)[6-7]、圖書(shū)館大數(shù)據(jù)知識(shí)服務(wù)[8-9]等方面開(kāi)展了研究,如張鵬程[10]、毛曦[11]等對(duì)智慧城市時(shí)空知識(shí)搜索引擎進(jìn)行了探索,國(guó)外已有學(xué)者對(duì)知識(shí)流程的建立、管理進(jìn)行了研究[12],如搭建Kepler[13]、Taverna[14]等系統(tǒng),旨在增強(qiáng)地理計(jì)算和地理處理網(wǎng)絡(luò)服務(wù)之間的相互作用關(guān)系。然而,面對(duì)智慧城市建設(shè)的不斷深入,自然資源管理業(yè)務(wù)整合的迫切需要,對(duì)于地理國(guó)情普查、傳感網(wǎng)、基礎(chǔ)測(cè)繪等不同部門生產(chǎn)的數(shù)據(jù)進(jìn)行分析和應(yīng)用的需求越來(lái)越大,如何搭建統(tǒng)一的平臺(tái)實(shí)現(xiàn)一站式管理是亟待解決的問(wèn)題。
為此,本系統(tǒng)奉行“從模型到服務(wù),一切皆服務(wù)”的理念,研究知識(shí)模型算法、知識(shí)服務(wù)容器、知識(shí)引擎等相互之間的關(guān)系,以B/S分布式系統(tǒng)架構(gòu)為基礎(chǔ),利用并行計(jì)算與存儲(chǔ)技術(shù)[15]、流程化定制技術(shù)等,開(kāi)發(fā)了算法豐富、支持?jǐn)U展、便于使用的知識(shí)引擎工具,為用戶打造一站式分析流程體驗(yàn),為智慧城市時(shí)空大數(shù)據(jù)云平臺(tái)開(kāi)展分析、挖掘和應(yīng)用提供有力技術(shù)支撐。
本系統(tǒng)創(chuàng)新之處主要體現(xiàn)在以下3個(gè)方面:① 便利性,提供在線建模與分析的服務(wù),既省去了購(gòu)買第三方桌面軟件的費(fèi)用,又不需要開(kāi)發(fā)人員進(jìn)行安裝,一舉兩得,大大縮短了開(kāi)發(fā)的周期;② 多樣性,提供了大量的時(shí)空大數(shù)據(jù)分析相關(guān)服務(wù),用戶進(jìn)行在線建模與分析時(shí)可以根據(jù)自身需求,靈活的選擇多種模型自由組合,該方法有效地改變了過(guò)去在一個(gè)軟件中構(gòu)建模型導(dǎo)出,再導(dǎo)入另一個(gè)軟件進(jìn)行分析的場(chǎng)景,極大地改善了用戶的體驗(yàn);③ 繼承性,僅需簡(jiǎn)單封裝即可將現(xiàn)有的第三方軟件進(jìn)行融合,實(shí)現(xiàn)一站式服務(wù),如果用戶出現(xiàn)新的需求,可以在提供的容器上進(jìn)行二次開(kāi)發(fā)。
根據(jù)《智慧城市時(shí)空大數(shù)據(jù)與云平臺(tái)建設(shè)技術(shù)大綱》(2017版)要求,知識(shí)引擎相關(guān)概念邏輯關(guān)系如圖1所示,具體表現(xiàn)為:① 知識(shí)模型通過(guò)封裝,發(fā)布為知識(shí)服務(wù),存儲(chǔ)在知識(shí)容器中;② 不同服務(wù)提供方擁有多個(gè)容器;③ 多個(gè)服務(wù)提供方匯集在一個(gè)知識(shí)服務(wù)池中,并統(tǒng)一在服務(wù)注冊(cè)中心進(jìn)行注冊(cè),登記服務(wù)的名稱、機(jī)器IP、端口號(hào)、域名等信息;④ 知識(shí)引擎幫助用戶使用容器中的模型,組合成特定應(yīng)用場(chǎng)景下適用的知識(shí)鏈,并按知識(shí)鏈從不同容器中自動(dòng)調(diào)用和執(zhí)行知識(shí)服務(wù),對(duì)數(shù)據(jù)集進(jìn)行一系列運(yùn)算分析并得出最終結(jié)果。
采用容器封裝的優(yōu)點(diǎn)在于:① 解除了各服務(wù)之間的直接聯(lián)系,每個(gè)服務(wù)只要考慮跟容器對(duì)接,無(wú)需考慮對(duì)其他服務(wù)的影響,能保持相互獨(dú)立的狀態(tài);② 運(yùn)維人員無(wú)需關(guān)注原有服務(wù)的具體細(xì)節(jié),僅通過(guò)容器的開(kāi)放接口對(duì)接新模型,顯著提高了更新的效率;③ 容器支持服務(wù)即插即用,實(shí)現(xiàn)了熱插拔,在后續(xù)擴(kuò)充服務(wù)的過(guò)程中,原有的服務(wù)可以一直保持正常運(yùn)行的狀態(tài),充分體現(xiàn)了服務(wù)的可持續(xù)性。
傳統(tǒng)數(shù)據(jù)分析工作往往涉及多個(gè)軟件的操作,例如,遙感數(shù)據(jù)的解譯需要在專門的軟件中完成,但與矢量數(shù)據(jù)的疊置分析工作可能需要在另一個(gè)軟件中完成,這樣的分析過(guò)程給用戶增加了軟件和時(shí)間的成本。
本文研發(fā)的知識(shí)引擎作為連接知識(shí)服務(wù)池和應(yīng)用系統(tǒng)之間的紐帶,是滿足用戶快速分析需求的可交互式工具,具備操作簡(jiǎn)單、可重復(fù)使用、功能強(qiáng)大等優(yōu)點(diǎn),具體表現(xiàn)在以下2個(gè)方面:
(1)集成性與可操作性:本系統(tǒng)開(kāi)發(fā)的知識(shí)引擎集成了多個(gè)分析功能,用戶根據(jù)自身需求,選擇合適的知識(shí)服務(wù),通過(guò)簡(jiǎn)單地拖拽操作即可繪制復(fù)雜的組合流程圖,既降低了原先的開(kāi)發(fā)成本又縮短了分析時(shí)間。
(2)共享性與可擴(kuò)展性:搭建好的組合流程圖可以進(jìn)行保存,便于后期的重復(fù)使用和共享,或者在此基礎(chǔ)上進(jìn)行二次開(kāi)發(fā)。例如,本系統(tǒng)提供的知識(shí)服務(wù)模式有效地融合了基礎(chǔ)測(cè)繪數(shù)據(jù)與“地理國(guó)情分析”相關(guān)研究成果,將地理國(guó)情綜合分析研究中的城鎮(zhèn)發(fā)展專題分析方面的模型導(dǎo)入知識(shí)引擎中,與基礎(chǔ)測(cè)繪成果結(jié)合,進(jìn)一步豐富可視化展示效果。
知識(shí)引擎運(yùn)轉(zhuǎn)的核心體現(xiàn)在以下2個(gè)部分(圖2):① 流程設(shè)計(jì)器,主要負(fù)責(zé)前端模型的解譯,將可視化的流程圖形解譯為流程引擎所能理解的元素,即通過(guò)前端的可視化定制方式形成標(biāo)準(zhǔn)的BPMN流程文件,并映射為引擎內(nèi)置對(duì)象;② 流程引擎,負(fù)責(zé)幫助用戶使用容器中的模型,組合成特定應(yīng)用場(chǎng)景下適用的知識(shí)鏈,并按知識(shí)鏈從不同容器中自動(dòng)調(diào)用并執(zhí)行知識(shí)服務(wù)。
將系統(tǒng)功能模塊設(shè)計(jì)為4個(gè)部分,即知識(shí)模型展示模塊、流程定制模塊、流程執(zhí)行模塊和流程管理模塊。
知識(shí)模型包括所有知識(shí)容器發(fā)布的知識(shí)服務(wù),存儲(chǔ)在模型庫(kù)中,通過(guò)服務(wù)接口獲取知識(shí)模型的服務(wù)元數(shù)據(jù)信息,根據(jù)元數(shù)據(jù)信息,將模型以樹(shù)形結(jié)構(gòu)的形式進(jìn)行分類組織并展現(xiàn)出來(lái),用戶可以利用關(guān)鍵字進(jìn)行篩選和查找。
2.2.1 流程引擎設(shè)計(jì)
用戶通過(guò)對(duì)節(jié)點(diǎn)(知識(shí)模型)的拖拽、組合和屬性配置,繪制個(gè)性化組合流程圖,每個(gè)知識(shí)模型具有不同的配置信息,通過(guò)模型的元數(shù)據(jù)動(dòng)態(tài)生成參數(shù)配置表單,方便用戶修改。為了保證流程引擎的標(biāo)準(zhǔn)化和可擴(kuò)展性,實(shí)現(xiàn)跨業(yè)務(wù)、跨部門、跨平臺(tái)的應(yīng)用,流程引擎設(shè)計(jì)嚴(yán)格遵循BPMN2.0規(guī)范,通過(guò)統(tǒng)一的執(zhí)行語(yǔ)義和格式,利用標(biāo)準(zhǔn)的圖元,描述真實(shí)的流程發(fā)生過(guò)程。本系統(tǒng)設(shè)置了8個(gè)核心元素,分別是流程、節(jié)點(diǎn)、事件、任務(wù)、流程結(jié)構(gòu)控制點(diǎn)、監(jiān)聽(tīng)器、流程線和流程結(jié)構(gòu),如表1所示。
表1 流程引擎元素
2.2.2 基于Web服務(wù)的流轉(zhuǎn)
本文的任務(wù)節(jié)點(diǎn)主要是外部的Web服務(wù),流程引擎對(duì)Web服務(wù)的處理狀態(tài)進(jìn)行監(jiān)控,當(dāng)Web服務(wù)執(zhí)行完成時(shí)自動(dòng)流轉(zhuǎn)到下一個(gè)節(jié)點(diǎn)。
2.3.1 邏輯流程
流程引擎需要通過(guò)前端可視化工具(流程設(shè)計(jì)器)實(shí)現(xiàn)與用戶的交互,通過(guò)封裝復(fù)雜的后臺(tái)程序,呈現(xiàn)給用戶簡(jiǎn)單、易操作的界面,即用戶只需根據(jù)自身需求選擇相應(yīng)的模型和流程元素,就可以畫(huà)出較為復(fù)雜的流程圖,其他計(jì)算都由后臺(tái)完成。
流程設(shè)計(jì)器主要負(fù)責(zé)前端模型的解譯,將可視化的流程圖形解譯為流程引擎所能理解的元素。其原理是通過(guò)前端可視化定制方式形成標(biāo)準(zhǔn)的BPMN流程文件,并映射為引擎內(nèi)置對(duì)象。根據(jù)流程引擎的工作機(jī)制,如圖3所示,將流程設(shè)計(jì)器的設(shè)計(jì)分為3步:① 可視化模型節(jié)點(diǎn)的生成和顯示;② 流程的配置過(guò)程,對(duì)節(jié)點(diǎn)元素進(jìn)行顯示、拖動(dòng)、繪制和屬性配置,形成可視化的流程;③ 對(duì)配置的流程進(jìn)行解譯和轉(zhuǎn)換,形成標(biāo)準(zhǔn)的BPMN格式,并持久化。
2.3.2 頁(yè)面設(shè)計(jì)
整個(gè)系統(tǒng)界面分別由樹(shù)形的知識(shí)模型面板、工具欄、流程繪制區(qū)、流程執(zhí)行狀態(tài)欄、模型參數(shù)配置區(qū)等部分組成,具體闡述見(jiàn)3.2小節(jié)。
定制好的流程通過(guò)引擎保存在用戶模型庫(kù)中,并接入時(shí)空信息云平臺(tái)中,具體功能設(shè)計(jì)分為查看、添加、新增、刪除、執(zhí)行5個(gè)基本方面。
(1)模型查看
分行顯示模型縮略圖、名稱、創(chuàng)建時(shí)間、摘要信息等,支持根據(jù)模型名稱進(jìn)行查詢。
(2)模型添加
通過(guò)在模型庫(kù)選擇要添加的模型,加入模型列表中。
(3)模型新增
用戶在流程設(shè)計(jì)器中定制新模型后進(jìn)行保存,輸入模型名稱和描述信息,即可完成新增操作。
(4)模型刪除
從專題目錄中刪除指定的模型,對(duì)應(yīng)的知識(shí)引擎模型庫(kù)的模型不刪除。模型庫(kù)的模型從知識(shí)引擎的模型管理中刪除。
(5)模型執(zhí)行
模型執(zhí)行模塊包括模型的參數(shù)配置、執(zhí)行狀態(tài)監(jiān)聽(tīng)、結(jié)果集管理。模型的參數(shù)配置實(shí)現(xiàn)了執(zhí)行節(jié)點(diǎn)的參數(shù)配置信息;執(zhí)行狀態(tài)監(jiān)聽(tīng)通過(guò)文本行的形式展示了流程在執(zhí)行過(guò)程中的實(shí)時(shí)狀態(tài);結(jié)果集是模型執(zhí)行后產(chǎn)生的結(jié)果數(shù)據(jù),結(jié)果集管理用來(lái)維護(hù)結(jié)果集的信息,以及對(duì)應(yīng)的數(shù)據(jù)集關(guān)系。
系統(tǒng)后臺(tái)開(kāi)發(fā)工具采用Eclipse,開(kāi)發(fā)框架采用Spring MVC,開(kāi)發(fā)語(yǔ)言為Java。前端開(kāi)發(fā)工具采用WebStorm,使用React結(jié)合NoteJS的開(kāi)發(fā)模式。Web地圖開(kāi)發(fā)使用ArcGIS javascript api 4.7。數(shù)據(jù)庫(kù)采用Oracle、PostGIS,Oracle存儲(chǔ)管理業(yè)務(wù)數(shù)據(jù),PostGIS存儲(chǔ)管理空間數(shù)據(jù)。
時(shí)空大數(shù)據(jù)知識(shí)引擎系統(tǒng)界面如圖4所示,界面由樹(shù)形的知識(shí)模型面板、工具欄、流程繪制區(qū)、流程執(zhí)行狀態(tài)欄、模型參數(shù)配置區(qū)等部分組成。
根據(jù)第2章節(jié)中功能模塊的設(shè)計(jì)思路,實(shí)現(xiàn)以下功能:
(1)知識(shí)模型展示
本系統(tǒng)已經(jīng)在平臺(tái)上搭建了兩個(gè)模型節(jié)點(diǎn)容器:通用模型容器與專業(yè)模型容器,共包含32個(gè)模型節(jié)點(diǎn)。其中,通用模型容器中開(kāi)發(fā)了聚合點(diǎn)分析、計(jì)算密度查找熱點(diǎn)、追加數(shù)據(jù)、緩沖區(qū)分析、匯總屬性等18個(gè)地理信息系統(tǒng)常用的空間分析方法;在專業(yè)模型容器方面,將江蘇省省級(jí)基礎(chǔ)測(cè)繪項(xiàng)目《江蘇省地理國(guó)情綜合分析—城鎮(zhèn)發(fā)展專題分析》的成果轉(zhuǎn)化為包括城鎮(zhèn)空間格局分析、城鎮(zhèn)化質(zhì)量與規(guī)模綜合計(jì)算模型等在內(nèi)的10個(gè)節(jié)點(diǎn),同時(shí)結(jié)合深度學(xué)習(xí)影像解譯技術(shù)開(kāi)發(fā)遙感影像分析節(jié)點(diǎn)3個(gè),文本地理數(shù)據(jù)挖掘節(jié)點(diǎn)1個(gè)。
(2)流程定制
模型定制模塊主要實(shí)現(xiàn)對(duì)知識(shí)模型的制作,用戶通過(guò)拖拽控件(如開(kāi)始事件、任務(wù)、執(zhí)行方式等)到繪制區(qū),同時(shí)可以對(duì)部分控件進(jìn)行參數(shù)配置、算法選擇、模塊執(zhí)行等操作。
(3)流程執(zhí)行
模型執(zhí)行模塊包括模型的參數(shù)配置、執(zhí)行狀態(tài)監(jiān)聽(tīng)、結(jié)果集管理。模型的參數(shù)配置實(shí)現(xiàn)了執(zhí)行節(jié)點(diǎn)的參數(shù)信息配置;執(zhí)行狀態(tài)監(jiān)聽(tīng)通過(guò)文本行的形式展示了流程在執(zhí)行過(guò)程中的實(shí)時(shí)狀態(tài);結(jié)果集是模型執(zhí)行后產(chǎn)生的結(jié)果數(shù)據(jù),結(jié)果集管理用來(lái)維護(hù)結(jié)果集的信息,以及對(duì)應(yīng)的數(shù)據(jù)集的關(guān)系。
由系統(tǒng)提供的知識(shí)服務(wù)遵循OGC(Open Geospatial Consortium開(kāi)發(fā)地理信息聯(lián)盟)的標(biāo)準(zhǔn)WPS(Web Processing Service網(wǎng)絡(luò)處理服務(wù))規(guī)范,因此,用戶在選擇模型時(shí),系統(tǒng)通過(guò)在線請(qǐng)求獲取服務(wù)的元數(shù)據(jù)信息,自動(dòng)生成參數(shù)配置表單。例如,通過(guò)請(qǐng)求DescribeProcess方法獲取“城鎮(zhèn)占地面積計(jì)算”模型的元數(shù)據(jù),如圖5所示。利用XML解析器,把相關(guān)的元數(shù)據(jù)信息轉(zhuǎn)換為JSON對(duì)象,最后通過(guò)表單生成器生成表單,如圖6所示。
(4)流程管理
用戶定制流程后,通過(guò)引擎保存在用戶模型庫(kù)中,用戶可以對(duì)自己定制的模型進(jìn)行添加、刪除、修改信息等操作。
3.3.1 實(shí)驗(yàn)數(shù)據(jù)
實(shí)驗(yàn)數(shù)據(jù)為地理國(guó)情普查中2016年淮安市企業(yè)經(jīng)濟(jì)數(shù)據(jù)和地理國(guó)情院落數(shù)據(jù)。本系統(tǒng)旨在打通基礎(chǔ)測(cè)繪、地理國(guó)情普查等數(shù)據(jù)之間融合的技術(shù)道路,后期會(huì)根據(jù)實(shí)際生產(chǎn)需求進(jìn)一步擴(kuò)充實(shí)驗(yàn)數(shù)據(jù)。
3.3.2 實(shí)例展示
以構(gòu)建土地產(chǎn)能分析模型為例,如圖7所示,定制分析流程為:① 開(kāi)始事件;② 空間聚合分析服務(wù);③ 計(jì)算分析服務(wù);④ 結(jié)束事件。
兩個(gè)服務(wù)任務(wù)都是調(diào)用已經(jīng)封裝好的WPS服務(wù),即聚合點(diǎn)分析和計(jì)算分析,根據(jù)用戶選擇的企業(yè)經(jīng)濟(jì)數(shù)據(jù)和對(duì)應(yīng)年份的地理國(guó)情院落數(shù)據(jù),進(jìn)行空間聚合分析和分類統(tǒng)計(jì),結(jié)束任務(wù)后得到淮安市以院落為單位的企業(yè)效益與占地面積之比,該結(jié)果可作為其他定制流程的數(shù)據(jù)源進(jìn)行可視化展示或者其他應(yīng)用,將分析結(jié)果按照屬性字段“平均產(chǎn)值”進(jìn)行分級(jí)設(shè)色可視化展示,顏色越深代表土地效能越高。
從分析結(jié)果來(lái)看,土地效能最高的是淮安潤(rùn)爾華化工有限公司,如圖8所示。在得到分析結(jié)果后,可以將該模型進(jìn)行封裝并發(fā)布為服務(wù),只要有相同需求出現(xiàn),就可以直接調(diào)用該服務(wù),選擇需要分析的數(shù)據(jù)即可輕松得到分析結(jié)果。
3.3.3 應(yīng)用優(yōu)勢(shì)
按照傳統(tǒng)思路,上述實(shí)例需要先將數(shù)據(jù)導(dǎo)入ArcGIS中,分別進(jìn)行聚合點(diǎn)分析和計(jì)算分析,該過(guò)程需要經(jīng)歷較多的操作步驟,而本系統(tǒng)只需簡(jiǎn)單地拖拽即可實(shí)現(xiàn)同樣的效果。此外,在分析完成后的可視化過(guò)程中,相較ArcGIS相關(guān)軟件需要多步操作才能看到最終效果的情況,用戶通過(guò)左側(cè)的面板參數(shù)設(shè)置(圖8),即可在右側(cè)直觀看到可視化效果。
綜上所述,時(shí)空大數(shù)據(jù)知識(shí)引擎系統(tǒng)有效避免了過(guò)多復(fù)雜的操作,提高了分析效率,改善了用戶體驗(yàn),并且結(jié)果和模型都可以進(jìn)行靈活調(diào)用,為地理國(guó)情監(jiān)測(cè)、生態(tài)環(huán)境監(jiān)測(cè)等數(shù)據(jù)的應(yīng)用提供了新的思路。
本文研究將時(shí)空分析算法和模型發(fā)布為服務(wù),部署在知識(shí)服務(wù)容器中;定義知識(shí)服務(wù)接口,接入用戶和第三方的空間分析算法與模型,不斷提高知識(shí)服務(wù)能力;設(shè)計(jì)分布式知識(shí)容器架構(gòu),形成知識(shí)服務(wù)池,建立知識(shí)服務(wù)注冊(cè)與發(fā)現(xiàn)機(jī)制,開(kāi)發(fā)流程引擎與流程設(shè)計(jì)器,支持用戶根據(jù)需求在知識(shí)服務(wù)池中選擇知識(shí)服務(wù),進(jìn)行定制與流程化。今后對(duì)智能感知數(shù)據(jù)進(jìn)行探索,如實(shí)時(shí)交通數(shù)據(jù)等,進(jìn)一步提升從模型到服務(wù)的轉(zhuǎn)變能力。