段紅偉,鄭麗娜,張 娜
(1.湖北省基礎(chǔ)地理信息中心(湖北省北斗衛(wèi)星導(dǎo)航應(yīng)用技術(shù)研究院),湖北 武漢 430073)
隨著GPS技術(shù)、移動(dòng)通信技術(shù)、互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,地理信息位置服務(wù)及其產(chǎn)業(yè)化正在飛速發(fā)展。國家測(cè)繪地理信息局在《國家地理信息產(chǎn)業(yè)發(fā)展規(guī)劃(2014~2020)》中明確指出,要大力發(fā)展地理信息服務(wù),加快推進(jìn)地理信息與北斗衛(wèi)星導(dǎo)航定位的融合。
定位搜索是地理信息位置服務(wù)重要的研究和應(yīng)用方向,主要面向地理實(shí)體數(shù)據(jù)、地名地址數(shù)據(jù)等地理對(duì)象,根據(jù)地理對(duì)象的名稱、地址、空間位置、時(shí)間等相關(guān)信息對(duì)其進(jìn)行定位。傳統(tǒng)的搜索引擎通常是基于地名詞典和地名數(shù)據(jù)庫開展地名地址的定位搜索服務(wù),即采用地理編碼和反地理編碼技術(shù)實(shí)現(xiàn)空間位置定位。該方法通過文本搜索與地理約束相結(jié)合的方式提供檢索服務(wù),強(qiáng)調(diào)空間位置信息,卻忽略了事件主題信息和時(shí)間信息,時(shí)空信息與事件主題的語義關(guān)聯(lián)不足,因此只能實(shí)現(xiàn)靜態(tài)的空間信息查詢。同時(shí),傳統(tǒng)定位搜索的索引結(jié)構(gòu)一般采用正排索引、倒排索引或簽名文件索引,均以磁盤為介質(zhì)存儲(chǔ)索引文件,當(dāng)面對(duì)規(guī)模較大的查詢請(qǐng)求時(shí),將產(chǎn)生大量I/O請(qǐng)求操作,導(dǎo)致整個(gè)系統(tǒng)的性能較低。
大數(shù)據(jù)時(shí)代的到來使得地理對(duì)象的時(shí)空特性愈加明顯和重要。時(shí)空數(shù)據(jù)的時(shí)間性和事件關(guān)聯(lián)性在定位查詢中扮演的角色也越來越重要。國家測(cè)繪地理信息局《智慧城市時(shí)空大數(shù)據(jù)與云平臺(tái)建設(shè)技術(shù)大綱(2017版)》中明確要求,傳統(tǒng)的地理數(shù)據(jù)需通過添加時(shí)空標(biāo)識(shí)來實(shí)現(xiàn)傳統(tǒng)地理數(shù)據(jù)向時(shí)空數(shù)據(jù)的升級(jí)轉(zhuǎn)換,注入時(shí)間、空間和屬性“三域”標(biāo)志。因此,根據(jù)時(shí)空數(shù)據(jù)的特點(diǎn)和存儲(chǔ)方式,在定位搜索中對(duì)時(shí)空數(shù)據(jù)的空間性、時(shí)間性、事件關(guān)聯(lián)性進(jìn)行一致性表達(dá),實(shí)現(xiàn)時(shí)空信息的快速查詢,對(duì)于時(shí)空大數(shù)據(jù)的應(yīng)用和服務(wù)具有重要意義。
語義和自然語言處理技術(shù)的發(fā)展為時(shí)空數(shù)據(jù)的定位搜索提供了一種可行的解決方案。分詞策略[1-2]、全文檢索策略[3-4]、基于規(guī)則策略[5-6]是定位搜索中進(jìn)行地址要素匹配的主要手段??紤]到地理數(shù)據(jù)的語義特點(diǎn),有些學(xué)者通過研究本體構(gòu)建[7-8]、本體事件推理[9-10]、語義相似度[10-12]來實(shí)現(xiàn)基于地理本體的語義地址匹配和定位搜索。本文首先分析了時(shí)空數(shù)據(jù)特征,并結(jié)合時(shí)空數(shù)據(jù)定位搜索特點(diǎn)確定了主要的時(shí)空搜索表達(dá)模式,從而明確時(shí)空定位搜索適用的主要應(yīng)用場(chǎng)景;然后根據(jù)時(shí)空數(shù)據(jù)的時(shí)間、事件特性,并結(jié)合地理本體模型建立了時(shí)空數(shù)據(jù)模型;最后基于時(shí)空數(shù)據(jù)模型實(shí)現(xiàn)了對(duì)應(yīng)數(shù)據(jù)庫、數(shù)據(jù)索引的建設(shè)和原型系統(tǒng)。
在時(shí)空定位搜索中,時(shí)空數(shù)據(jù)的特征為:
1)具有名稱標(biāo)識(shí)。時(shí)空定位搜索引擎在進(jìn)行對(duì)象定位時(shí)必須依賴一個(gè)具名的定位網(wǎng)絡(luò),該網(wǎng)絡(luò)的建設(shè)基于各類名稱標(biāo)識(shí),因此時(shí)空對(duì)象必須是具名的,即具有名稱標(biāo)識(shí)。
2)包含點(diǎn)、線、面狀幾何類型。作為時(shí)空定位搜索引擎的處理對(duì)象,時(shí)空對(duì)象不僅包含點(diǎn)狀對(duì)象實(shí)體,同時(shí)包含線狀、面狀對(duì)象實(shí)體,這將加大定位搜索范圍,優(yōu)化查詢內(nèi)容。
3)時(shí)間特征是重要特征。時(shí)間特征是時(shí)空對(duì)象的重要信息內(nèi)容,在時(shí)空定位搜索時(shí)應(yīng)充分考慮時(shí)間特性的查詢因素。
4)時(shí)空對(duì)象的關(guān)聯(lián)性變得更加重要。時(shí)空定位搜索引擎不僅要支持地名地址、POI等顯性時(shí)空對(duì)象的查詢,還需支持與地名地址關(guān)聯(lián)的事件、案件等隱性時(shí)空對(duì)象的查詢。
5)數(shù)據(jù)源的結(jié)構(gòu)具有廣泛性。時(shí)空對(duì)象的數(shù)據(jù)源可以是shape的空間數(shù)據(jù),也可以是數(shù)據(jù)庫,還可以是Excel格式的數(shù)據(jù)內(nèi)容。時(shí)空定位搜索引擎對(duì)上述數(shù)據(jù)進(jìn)行數(shù)據(jù)重組,得到支持時(shí)空定位搜索的數(shù)據(jù)結(jié)構(gòu)。
由于數(shù)據(jù)類型多樣、結(jié)構(gòu)多樣、已查詢內(nèi)容多樣,時(shí)空數(shù)據(jù)查詢時(shí)要考慮時(shí)空對(duì)象的空間信息、時(shí)間信息、關(guān)聯(lián)信息和位置屬性信息。①考慮空間信息:支持點(diǎn)、線、面空間信息的存儲(chǔ)和查詢;②考慮時(shí)間信息:支持對(duì)時(shí)間點(diǎn)、時(shí)間段信息的存儲(chǔ)和查詢;③考慮關(guān)聯(lián)信息:支持對(duì)關(guān)聯(lián)內(nèi)容的存儲(chǔ)和查詢;④考慮位置屬性信息:不可或缺的信息是時(shí)空對(duì)象定位搜索的關(guān)鍵元素。
時(shí)空數(shù)據(jù)的特性以及對(duì)數(shù)據(jù)關(guān)聯(lián)融合的要求使得時(shí)空定位搜索在查詢內(nèi)容和表達(dá)方式上有其特定要求,具體要求見表1。
表1 時(shí)空定位搜索的查詢內(nèi)容及其表達(dá)模板
本體是共享概念模型明確的形式化規(guī)范說明[13],其目的是以通用、標(biāo)準(zhǔn)化的方式定義領(lǐng)域知識(shí),并提供領(lǐng)域知識(shí)的共同理解。目前,本體己在智能信息集成、基于知識(shí)的系統(tǒng)、自然語言處理和信息檢索等方面獲得應(yīng)用。
事件本體[14]定義了一個(gè)事件知識(shí)模型,認(rèn)為事件應(yīng)包括一個(gè)事件、一個(gè)位置、推動(dòng)行為、影響因素和產(chǎn)生的結(jié)果。如圖1所示,把圍繞事件的實(shí)體分為6類:事件(Event)/子事件(sub_event)、代理(foaf:Agent)、因子(factor)、產(chǎn)品(producce)、空間事物(geo:SpatialThing)和時(shí)間實(shí)體(time:TemporalEntity),其中agent指起作用者(通常是人,但也可能是物,如計(jì)算機(jī)),factor指除agent外的其他參與因素(如使用的工具、抽象的起因等)。
圖1 事件本體模型
為了充分利用現(xiàn)實(shí)中各類關(guān)系數(shù)據(jù)庫存儲(chǔ)的時(shí)空數(shù)據(jù),本文基于事件本體建立了時(shí)空數(shù)據(jù)對(duì)象模型(圖2),指導(dǎo)數(shù)據(jù)融合和數(shù)據(jù)庫建庫。建設(shè)的時(shí)空數(shù)據(jù)庫可利用D2RQ和Dump工具實(shí)現(xiàn)數(shù)據(jù)庫與本體的數(shù)據(jù)交互,進(jìn)而可利用Jena進(jìn)行語義推理。
時(shí)空數(shù)據(jù)對(duì)象模型包括時(shí)空對(duì)象、時(shí)空實(shí)時(shí)狀態(tài)、事件和時(shí)空對(duì)象聚合。該模型能描述時(shí)空對(duì)象的一個(gè)瞬態(tài),可對(duì)時(shí)空對(duì)象的連續(xù)變化進(jìn)行分析,進(jìn)而預(yù)測(cè)未來的發(fā)展趨勢(shì)。
圖2 時(shí)空數(shù)據(jù)對(duì)象模型
1)時(shí)空對(duì)象是對(duì)一段時(shí)間內(nèi)某個(gè)時(shí)空對(duì)象序列化狀態(tài)的抽象表達(dá),包括時(shí)空對(duì)象的靜態(tài)屬性、動(dòng)態(tài)屬性和事件機(jī)制。
2)時(shí)空實(shí)時(shí)狀態(tài)表示實(shí)時(shí)狀態(tài)信息,與某個(gè)地理時(shí)空對(duì)象StObject相關(guān)聯(lián),其變化表示時(shí)空對(duì)象的某個(gè)屬性發(fā)生了變化。
3)事件包含了事件類型,各事件類型與事件源、處理事件目標(biāo)類型相關(guān)聯(lián),包括子事件以及事件產(chǎn)生的原因和結(jié)果。
4)時(shí)空對(duì)象聚合由一系列相互作用的同類型時(shí)空對(duì)象負(fù)責(zé)接收和轉(zhuǎn)發(fā)時(shí)空對(duì)象(同層或不同層的)產(chǎn)生的事件。
根據(jù)時(shí)空數(shù)據(jù)對(duì)象模型,本文設(shè)計(jì)的時(shí)空數(shù)據(jù)庫如圖3所示?!笆录庇涗浟伺c事件有關(guān)的事件/子事件、代理、因子、結(jié)果、空間事物和時(shí)間實(shí)體;“時(shí)空狀態(tài)”記錄了時(shí)空數(shù)據(jù)的時(shí)空動(dòng)態(tài)信息;“時(shí)空現(xiàn)勢(shì)狀態(tài)”記錄了時(shí)空數(shù)據(jù)的狀態(tài)性信息,其標(biāo)志性信息記錄在“時(shí)空標(biāo)志信息”中;“時(shí)空標(biāo)志信息”為點(diǎn)狀信息,如地名地址、POI數(shù)據(jù);“時(shí)空對(duì)象信息”描述了時(shí)空對(duì)象的信息結(jié)構(gòu),由時(shí)空現(xiàn)勢(shì)狀態(tài)信息、時(shí)空標(biāo)志信息和屬性信息組成;“時(shí)空元”是時(shí)空對(duì)象的元信息,包括對(duì)象類型、對(duì)象的時(shí)間范圍、空間范圍等。
圖3 時(shí)空數(shù)據(jù)庫設(shè)計(jì)
為了快速定位,時(shí)空數(shù)據(jù)必須建立索引文件,并依托索引文件進(jìn)行定位搜索。由于在時(shí)空定位搜索中,需構(gòu)建的索引包括時(shí)間信息、空間信息和屬性信息,因此本文采用文件索引(四叉樹[13]、B樹[14])和內(nèi)存索引的混合結(jié)構(gòu)來構(gòu)建索引結(jié)構(gòu)(圖4)。
本文基于Sorl 4.6引擎,通過擴(kuò)展其索引器和檢索器來實(shí)現(xiàn)對(duì)時(shí)間、空間信息的定位搜索。
3.3.1 索引器擴(kuò)展
1)定義一個(gè)IndexWriter,將索引寫進(jìn)Sorl引擎的數(shù)據(jù)庫。
2)定義一個(gè)Document。Document 相當(dāng)于二維表中的一行數(shù)據(jù),包含F(xiàn)ield 字段,其對(duì)應(yīng)了時(shí)間、空間和屬性信息。
3)根據(jù)索引結(jié)構(gòu),分別對(duì)不同F(xiàn)ield字段建立索引,同時(shí)需考慮索引優(yōu)化、合并以及更新問題。
圖4 時(shí)空定位搜索的索引結(jié)構(gòu)
3.3.2 檢索器擴(kuò)展
1)定義一個(gè)新方法IndexSearch,從Index目錄讀取索引。
2)根據(jù)IndexReader 創(chuàng)建對(duì)應(yīng)的檢索器Searcher,解析檢索的關(guān)鍵字,包含查詢內(nèi)容、查詢字段、分析器等。先解析時(shí)空對(duì)象類型,其決定了查詢的索引文件和范圍。
推理使用Jena推理機(jī),通過將既定的規(guī)則以邏輯的形式進(jìn)行描述,建立推理所需的對(duì)準(zhǔn)[15](Alignment),從而進(jìn)行邏輯推理。本文基于“is-a”和“has-a”的基礎(chǔ)邏輯,利用Jena建立的推理算法框架為:
‘關(guān)聯(lián)模型
1 Model mapingShcema=Model Factory.create Ontology Model();
2 Model orignalModel==ModelFactory.create Ontology Model();
‘關(guān)聯(lián)模型填充
3 maping Shcema.add(EventOWL);‘添加GML應(yīng)用模式轉(zhuǎn)換的地理OWL
4 maping Shcema.add(AligemtOWL);‘添加自動(dòng)對(duì)準(zhǔn)和手工對(duì)準(zhǔn)信息
‘原始數(shù)據(jù)模型填充
5 Instance=D2RQ(Db)‘得到數(shù)據(jù)庫實(shí)例,并轉(zhuǎn)為RDF
6 orignalModel.add(Instance);‘加載GML應(yīng)用實(shí)例準(zhǔn)換后的地理本體實(shí)例
‘推理
7 Resoner resoner=ResonerRegistry.getOWLResoner();
8 resoner=resoner.bindSchema(mapingShcema);
本文基于Sorl架構(gòu)建立了一個(gè)時(shí)空對(duì)象定位搜索引擎的原型系統(tǒng)(圖5),能對(duì)郵編、道路、地名地址等點(diǎn)、線、面進(jìn)行基本查詢、時(shí)間擴(kuò)展查詢以及事件擴(kuò)展查詢。
圖5 原型系統(tǒng)
本文在一臺(tái) Core? i7-3770 CPU、4G內(nèi)存的臺(tái)式計(jì)算機(jī)上,根據(jù)表1的查詢方式進(jìn)行系統(tǒng)性能測(cè)試,使用數(shù)據(jù)包括湖北省地名地址數(shù)據(jù)、行政區(qū)劃數(shù)據(jù)、道路數(shù)據(jù)和郵編數(shù)據(jù),數(shù)據(jù)集大小約為100萬條。在查詢耗時(shí)方面,一元要素查詢時(shí)間約為15 ms;二元要素查詢時(shí)間約為58 ms;三元要素查詢時(shí)間在130~246 ms(平均188 ms);查準(zhǔn)率達(dá)到85%以上,查全率達(dá)到90%以上。
圖6 不同查詢的查詢耗時(shí)統(tǒng)計(jì)
本文通過定義時(shí)空數(shù)據(jù)對(duì)象模型,建立了該模型所對(duì)應(yīng)的數(shù)據(jù)庫、時(shí)空索引和引擎,從而實(shí)現(xiàn)了時(shí)空數(shù)據(jù)定位搜索的一體化結(jié)構(gòu)設(shè)計(jì)。該方法可統(tǒng)一集成點(diǎn)、線、面各類時(shí)空數(shù)據(jù),并建立統(tǒng)一的索引文件,是對(duì)傳統(tǒng)定位搜索的一種有效擴(kuò)展。原型系統(tǒng)測(cè)試表明,該方法查詢效率較好,具有實(shí)際應(yīng)用價(jià)值。本文還對(duì)時(shí)空語義推理進(jìn)行了嘗試和實(shí)踐,構(gòu)建了“is-a”和“has-a”的基礎(chǔ)邏輯以及邏輯算法框架,下一步將細(xì)化時(shí)空計(jì)算邏輯,優(yōu)化時(shí)空語義推理。