程 祥,殷贛華
(1.北京市測繪設計研究院,北京 100038;2.北京市測繪設計研究院基礎地理信息中心研發室,北京 100038)
2010年1 月,國務院下發了《關于開展第一次全國水利普查的通知》(國發[2010]4號),決定在3年內完成我國水利普查工作,這是新中國成立60多年來首次開展全國性水利普查。第一次全國水利普查包括河湖基本情況普查、水利工程基本情況普查、經濟社會用水情況調查、河湖開發治理保護情況普查、水土保持情況普查、水利行業能力建設情況普查,以及灌區和地下水取水井兩個專項普查。水利普查數據成果包括了自然類、管理類、設施類、用水類共4大類40小類要素數據。與通常的基礎地理數據或地形數據相比,水利普查后形成的空間數據具有其特殊性:一方面,具有空間關系的水利各要素間需要存儲拓撲信息;另一方面,具有業務關系的各要素也需要存儲關聯關系信息。在數據采集和處理過程中,成果數據的空間關系不進行顯示存儲,主要通過預先定義的拓撲關系準則對數據進行約束,而業務關系則要求通過關系表進行顯示保存。水利數據量龐大,數據模型關系復雜,依靠人工處理進行實現數據的關系建模和維護,不僅工作量大,而且容易出錯。因此,實現智能化、自動化的水利空間數據關系建模,具有重要意義。
空間數據的自動處理一般包括兩種方式:一是對多種處理功能進行邏輯抽象,并建立算法庫,通過算法庫中算法的組合及參數配置來實現各種自動化處理功能;二是在更高層次上建立知識庫系統,依托知識庫和規則處理系統實現數據的自動處理。前者不需要復雜的建模,應用廣泛,但靈活性低、擴展性差,一旦需求發生變更,就可能需要修改算法庫;后者具有很強的靈活性和擴展性,通過知識庫的擴充和定制就能夠滿足更多需求。本文則采用第二種方法來實現水利空間數據的自動化建模。
所謂知識庫,是指針對某些領域問題求解的需要,采用若干知識表達方式在計算機存儲器中存儲、組織、管理和應用互相聯系的知識片集合。普通的應用程序與基于知識的系統間的區別在于:一般的應用程序是把問題求解的知識隱含在程序的編碼中,而基于知識的系統則是將應用領域的問題求解知識顯示進行顯示的表達,并單獨組織在一個相對獨立的軟件實體中。根據知識的應用領域、背景、屬性和使用特征,知識庫可以被構造成有結構的、便于利用的組織形式。通常,知識庫中的知識是有層次的,最低層是事實知識;中間層是用來控制邏輯的知識(如規則、過程等);最高層是策略,以中間層知識為控制對象。在當前的主流知識庫應用系統中,產生式規則是知識的常用表示和應用形式。
“產生式”是1943年美國數學家Post首先在一種計算形式體系中提出的術語。20世紀70年代,Newell和Simon等學者在對人類認知模型研究中,開發了基于規則的產生式系統。從那時開始,產生式系統成為專家系統的最基本結構,而產生知識表示則在人工智能中得到了廣泛應用。產生式系統雖然在形式上很簡單,但在一定意義上模仿了人類思考的過程。
產生式規則是產生式系統的主體,是產生式系統知識表示的核心。一般產生式的結構可表示為自然語言形式,事實上,在自然語言表達中,人們廣泛使用的各種“原因—結果”、“條件—結論”、“前提—操作”、“事實—進展”及“情況—行為”等結構,都可歸結為產生式的知識表達形式。產生式規則基本形式是

式中,A是產生式的前提,用于指出該產生式是否可用的條件(前件);B是一組結論或操作,用于指出當前提A所指示的條件滿足時應該得出的結論或應該執行的操作(后件)。其中,前件就是前提,后件是結論或動作,前件和后件可以是由邏輯運算符AND、OR、NOT組成的表達式。如果前提滿足,則可得到結論或者執行相應的動作,即后件由前件來觸發。所以,前件是規則的執行條件,后件是規則體。
水利空間數據關系的自動化建模處理主要包括4個方面的內容:數據采集和編輯時的自動空間關系約束、數據處理完成后的空間關系自動檢查、數據采集時的業務關系自動創建、數據處理完成后的關聯關系自動檢查。
由于各要素存在一些相互的空間拓撲關系,在數據采集和編輯時,需要對這些空間關系進行自動維護和約束。具體形式包括錯誤提醒和自動錯誤處理。如按照空間關系,水閘工程必須要和水系軸線、引調水工程或渠道中的一個對象相交。而在采集和編輯過程中,如果水閘工程沒有和這些要素相交,則提示錯誤信息。再比如河湖排污口應該落在河湖邊界上,在采集河湖排污口時,如果沒有落在河湖邊界上,則提示錯誤信息;在編輯移動河湖邊界時,對應的河湖排污口應該隨之自動移動。
根據以上情況,產生式規則中If…Then…語句中的前件可分為3部分內容:一是當前的處理狀態;二是當前的處理數據類型;三是數據分析。通過這3部分內容結合來作為前件。對于水閘工程,規則語句如下:
If(當前處理狀態是數據采集或數據編輯,當前處理對象類型為水閘工程,水閘工程與水系軸線不相交并且水閘工程與引調水工程不相交并且水閘工程與渠道不相交)Then(提示錯誤信息)
對于河湖排污口的采集,規則語句如下:
If(當前處理狀態是數據采集,當前處理對象類型為河湖排污口,河湖排污口與河湖邊線不重疊)Then(提示錯誤信息)
對于河湖邊線的編輯,規則語句如下:
If(當前處理狀態是數據編輯,當前處理對象類型為河湖邊線,存在與河湖邊線重疊的河湖排污口)Then(河湖排污口自動聯動)
數據采集和編輯完成后,需要對各要素之間的拓撲關系是否正確進行自動檢查,將錯誤的空間關系記錄下來以供用戶定位和查看。與數據采集和編輯時的自動空間關系約束不同,此時后件的處理動作變成了錯誤信息記錄。以水閘工程為例,規則語句如下:
If(當前處理狀態是質量檢查,當前處理對象類型為水閘工程,水閘工程與水系軸線不相交并且水閘工程與引調水工程不相交并且水閘工程與渠道不相交)Then(記錄錯誤信息)
各要素間業務關系的建立主要包括3個渠道:一是通過外業采集,然后導入到采集軟件;二是人工在數據采集時指定;三是通過空間關系進行自動構建。通過空間關系進行自動構建時,同樣可以基于產生式規則進行描述。以水閘工程和水系軸線為例,水閘工程除和水系軸線存在空間關系外,還存在業務關系,業務關系也可以根據是否具有空間關系進行建立。具體規則如下:
If(當前處理狀態是數據采集,當前處理對象類型為水閘工程,水閘工程與水系軸線相交)Then(建立水閘工程和水系軸線的業務關系)
數據處理完成后,同樣需要對業務關系進行檢查,此時后件的處理動作是記錄錯誤信息記錄,具體規則如下:
If(當前處理狀態是質量檢查,當前處理對象類型為水閘工程,(水閘工程與水系軸線相交并且水閘工程與水系軸線不存在業務關系)或(水閘工程與水系軸線不相交并且水閘工程與水系軸線存在業務關系))Then(記錄錯誤信息)
水利數據關系知識庫主要由產生式規則庫、推理機、外部接口和知識管理系統4部分構成,知識庫的構成如圖1所示。

圖1 知識庫的組成
通過知識庫的建模,專業的水利空間數據自動化建模知識并以產生式規則的形式進行表示。產生式規則庫則是這些產生式規則的集合。
推理機由空間算子庫和邏輯執行器兩部分組成。其中,空間算子庫是各類空間關系判斷處理算法的庫體,邏輯執行器則用于解譯并執行產生式規則。邏輯執行器中的邏輯包括分支邏輯、合并邏輯和循環邏輯等邏輯算子。空間算子和邏輯算子構成了推理機的執行模型。圖2解釋了一條產生式規則的推理機構成。

圖2 推理機的構成示意
推理機的執行模型采用參數關聯的方式實現規則的邏輯化。圖3是執行模型的參數關聯示意。
推理機的運行模式是通過循環檢測各執行模型所需數據和參數是否齊備,先齊備的先執行。圖4闡述了推理機的運行模式。

圖3 執行模型的參數關聯示意

圖4 推理機的運行模式
外部接口是知識庫與外部系統和用戶的接口,包括處理數據的調用接口、自動處理的響應接口、處理結果的反饋接口等。
知識維護系統負責對產生式規則的添加、刪除等維護和管理。通過圖形化的規則定制和管理界面,可以實現無需編碼的知識管理和擴充,從而提高整個系統的易用性、易維護性和擴展性。
將本文的知識庫系統應用于北京市水務普查空間數據采集與處理軟件,成功實現了水務數據采集和編輯時的自動化糾錯、質量自動檢查,以及業務模型自動創建等功能,并得到實際生產的檢驗(如圖5所示)。

圖5 軟件總體界面
圖6是基于知識庫水務空間數據關系的質量檢查功能界面。

圖6 質量檢查功能界面
圖7是數據采集和編輯時,知識庫在操作錯誤后的自動提示界面。

圖7 操作錯誤時的自動提示
目前,北京市水務普查數據處理工作已經基本完成,該系統在生產過程中取得了良好效果。實踐證明,該系統大大提高了水務數據處理的自動化和智能化程度,降低了生產成本,提高了生產效率,為北京市水務普查做出了積極貢獻。
[1] SUWA M,SCOTT A C,SHORTLIFFE E H.An Approach to Verifying Completeness and Consistency in a Rule-based Expert System[J].Artificial Intelligence Magazine,1982,3(4):16-20.
[2] LIGEZA A.Towards Logical Analysis of Tabular Rulebased Systems[J].International Journal of Inteligence System,2001,16(3):333-337.
[3] 吳朝暉,潘云鶴.知識表達的發展狀況和趨勢[J].計算機科學,1995,22(6):39-44.
[4] 伍奎,李潤方,劉景浩.智能化系統的知識表達與推理機制[J].機械工程學報,2005,41(5):98-103.
[5] 麥中凡.面向對象程序設計風范與軟件開發方法[J].計算機科學,1992,19(4):17-23.
[6] 李雷,高鐵曼.產生式規則專家系統的原理與實現[J].微計算機應用,2006,27(5):631-634.
[7] 孫運傳,別榮芳.產生式規則庫的求精研究[J].北京師范大學學報:自然科學版,2003,39(4):435-443.
[8] 郭慶勝,任曉燕.智能化地理信息處理[M].武漢:武漢大學出版社,2003:57-86.
[9] 田晶,黃仁濤,匡露露.專題地圖制圖決策系統規則庫的設計[J].地理空間信息,2007,5(1):95-98.
[10] 龔自興,徐光佑.人工智能及應用[M].北京:清華大學出版社,2003:49-71.