鐘波濤, 胡云忠, 胡海盟
(華中科技大學(xué) 土木工程與管理學(xué)院, 湖北 武漢 430074)
建筑工程質(zhì)量監(jiān)控是確保工程符合國家法律、法規(guī)和強(qiáng)制性標(biāo)準(zhǔn),保證工程質(zhì)量與安全的重要舉措。目前,我國已經(jīng)形成了相對完善的建筑規(guī)范標(biāo)準(zhǔn)體系,這些建筑規(guī)范標(biāo)準(zhǔn)在規(guī)范建筑行為,指導(dǎo)設(shè)計(jì)施工,保證工程質(zhì)量與安全等方面發(fā)揮著重要作用。
在工程質(zhì)量監(jiān)控過程中質(zhì)檢人員需要參照大量的規(guī)范條款,這些規(guī)范條款通常以紙質(zhì)文檔手冊的形式出現(xiàn),質(zhì)量監(jiān)控人員需要查閱這些文檔,理解把握后進(jìn)行現(xiàn)場監(jiān)控工作。對一個(gè)建筑工程的監(jiān)控,很大程度上取決于質(zhì)量監(jiān)控人員對規(guī)范的了解和把握程度,這導(dǎo)致在實(shí)踐中,監(jiān)控過程依賴監(jiān)控人員的主觀性,具有很大的隨意性,經(jīng)常會發(fā)生監(jiān)控過程不規(guī)范,甚至失控的情況。此外,對質(zhì)量監(jiān)控?cái)?shù)據(jù)進(jìn)行人工審查,存在效率低,易錯(cuò)判,漏檢的問題。加強(qiáng)計(jì)算機(jī)對質(zhì)量監(jiān)控過程的支持是克服上述問題,提高質(zhì)量監(jiān)控效率的有效途徑[1]。
目前,很多建筑工程質(zhì)量監(jiān)控管理信息系統(tǒng)被開發(fā)并投入應(yīng)用。文獻(xiàn)[2]開發(fā)基于計(jì)算機(jī)支持的施工質(zhì)量管理系統(tǒng),文獻(xiàn)[3]在網(wǎng)絡(luò)環(huán)境下,開發(fā)工程質(zhì)量信息檢查、缺陷識別和管理系統(tǒng),并集成PDA終端,用于采集質(zhì)量監(jiān)控?cái)?shù)據(jù),文獻(xiàn)[4][5]基于ISO9000質(zhì)量管理體系,開發(fā)支持各方協(xié)同管理的質(zhì)量管理系統(tǒng),文獻(xiàn)[6]采用基于對象的模型方法來表達(dá)建筑設(shè)計(jì)和建筑規(guī)范,并應(yīng)用在集成建筑計(jì)劃和服務(wù)(IBP/IBS)審查系統(tǒng)中,文獻(xiàn)[7]研究將建筑規(guī)范集成進(jìn)三維CAD中,實(shí)現(xiàn)基于規(guī)范知識的設(shè)計(jì)信息合規(guī)性審查,文獻(xiàn)[8]針對建筑工程質(zhì)量監(jiān)控的情境特征,采用基于情境的對象建模方法來表達(dá)質(zhì)量監(jiān)控規(guī)范,文獻(xiàn)[9]研究開發(fā)建筑規(guī)范管理信息系統(tǒng),方便規(guī)范條文的查找和應(yīng)用。
這些研究通過計(jì)算機(jī)編程語言將規(guī)范條款中的約束規(guī)則直接編碼進(jìn)系統(tǒng),需要在程序代碼中嵌入復(fù)雜的約束規(guī)則,這一方式對于復(fù)雜的規(guī)則以及規(guī)則頻繁變動等情況缺乏靈活性,一旦規(guī)范條款知識變動,就需要更改程序代碼,這給系統(tǒng)的動態(tài)更新和維護(hù)帶來了困難。而現(xiàn)實(shí)中,質(zhì)量監(jiān)控規(guī)范常處于變動狀態(tài),譬如,在規(guī)范體系中,不同省份和地區(qū)會依據(jù)自身情況對相應(yīng)的規(guī)范條款進(jìn)行修改,以適應(yīng)當(dāng)?shù)氐馁|(zhì)量監(jiān)控要求。此外,建筑工程項(xiàng)目由于自身的類型、功能等不同,涉及的規(guī)范條款也不同。
針對上述問題,本文利用決策表對質(zhì)量監(jiān)控規(guī)范條款建模,并采用基于框架的表示方法組織質(zhì)量監(jiān)控信息,在此基礎(chǔ)上,開發(fā)基于Drools規(guī)則引擎的質(zhì)量監(jiān)控原系統(tǒng),提高基于規(guī)范的工程質(zhì)量監(jiān)控自動化水平和效率。
目前,大部分質(zhì)量監(jiān)控規(guī)范條款以各類文檔手冊形式存在,規(guī)范條款的編排面向標(biāo)準(zhǔn)管理機(jī)構(gòu),按照標(biāo)準(zhǔn)體系分類結(jié)構(gòu),以章節(jié)目的結(jié)構(gòu)進(jìn)行組織,而在工程質(zhì)量監(jiān)控中,質(zhì)檢人員通常面向特定的監(jiān)控對象,查找相應(yīng)的規(guī)范條款,以此進(jìn)行質(zhì)量監(jiān)控?cái)?shù)據(jù)是否合規(guī)的判斷。因此現(xiàn)有的組織結(jié)構(gòu)給質(zhì)量監(jiān)控過程中條款的應(yīng)用帶來了困難。圖1是建筑地基基礎(chǔ)工程施工質(zhì)量驗(yàn)收規(guī)范(GB 50202-2002)[10]的章節(jié)目組織結(jié)構(gòu)。
圖1 建筑地基基礎(chǔ)工程施工質(zhì)量驗(yàn)收規(guī)范組織結(jié)構(gòu)
從內(nèi)容上看,建筑工程質(zhì)量監(jiān)控規(guī)范條文包含兩部分內(nèi)容,一部分是對監(jiān)控過程作一般的原則性文字描述;一部分對質(zhì)量監(jiān)控對象的各類質(zhì)量性能和參數(shù)(如幾何尺寸、力學(xué)性能等)做出明確的量化性規(guī)定。本文主要針對后者進(jìn)行質(zhì)量監(jiān)控規(guī)范知識建模。
以GB 50202-2002中條款5.1.4為例(如圖1),條款5.1.4規(guī)定了不同的施工工法和樁徑下灌注樁的質(zhì)量約束。分別給出了灌注樁在不同的施工工法、樁直徑和樁位下對樁徑允許偏差、垂直允許偏差、樁位運(yùn)行偏差的質(zhì)量監(jiān)控要求。針對規(guī)范條款進(jìn)行知識分析,識別監(jiān)控對象、約束要求,并定義質(zhì)量監(jiān)控規(guī)則,如表1。
表1 質(zhì)量監(jiān)控抽取規(guī)則
基于規(guī)范的質(zhì)量監(jiān)控就是根據(jù)上述提取的規(guī)則對質(zhì)量監(jiān)控?cái)?shù)據(jù)進(jìn)行評判的過程。決策表對于復(fù)雜規(guī)則具有很好的邏輯表達(dá)能力,如文獻(xiàn)[1]采用決策表進(jìn)行建筑設(shè)計(jì)規(guī)范的知識表達(dá),文獻(xiàn)[11]采用決策表進(jìn)行建筑維護(hù)結(jié)構(gòu)的熱效應(yīng)審查規(guī)則的表達(dá)。
將所有與特定監(jiān)控對象相關(guān)的規(guī)則組織進(jìn)一張決策表,能夠克服特定監(jiān)控對象的相關(guān)規(guī)范條款分布在不同文檔中的問題,實(shí)現(xiàn)面向質(zhì)量監(jiān)控的規(guī)范條款知識組織。采用決策表的方式來表達(dá)規(guī)則,使得規(guī)則的表達(dá)簡單,開發(fā)人員利用熟知的Excel就能夠進(jìn)行規(guī)則的編寫。并且,決策表的規(guī)則嵌入式表達(dá)能夠適應(yīng)建筑規(guī)范和條款的不斷變化,即只需要更新決策表而不需要改變一致性檢測規(guī)則引擎就能更新規(guī)則。
一個(gè)完整的決策表包含表頭以及條件列和行為列。決策表中每一行就是一個(gè)規(guī)則,每一列就是規(guī)則的條件或者行為(結(jié)果)。在決策表的行為列中包括質(zhì)量評價(jià)“結(jié)果”和“規(guī)范參照條款”?!耙?guī)范參照條款”用于表明規(guī)則抽取自哪一規(guī)范條款,支持質(zhì)量監(jiān)控者對基于決策表的質(zhì)量評價(jià)結(jié)果的解釋和規(guī)范條文查找。
為了更好的利用質(zhì)量監(jiān)控?cái)?shù)據(jù),采用基于框架的表示方式來組織質(zhì)量監(jiān)控信息。框架表示法能夠有效表示結(jié)構(gòu)性知識[12],基于1.1節(jié)從規(guī)范中提取的監(jiān)控對象及其質(zhì)量監(jiān)控點(diǎn),一個(gè)質(zhì)量監(jiān)控對象對應(yīng)一個(gè)框架,框架包含一系列的槽,這些槽主要用來存儲質(zhì)量監(jiān)控相關(guān)的信息。圖2現(xiàn)澆混凝土樁質(zhì)量監(jiān)控信息的框架表示,包含三部分:框架名,以質(zhì)量監(jiān)控對象名表示;中間部分為框架的槽,包含監(jiān)控對象監(jiān)控點(diǎn)的質(zhì)量監(jiān)控信息,以及質(zhì)檢人員和質(zhì)檢結(jié)果等;尾部表示質(zhì)量監(jiān)控參照的規(guī)范條款。
圖2 質(zhì)量監(jiān)控信息的框架結(jié)構(gòu)表示
每一個(gè)質(zhì)量監(jiān)控框架被視為一個(gè)質(zhì)量監(jiān)控模板,基于框架的質(zhì)量監(jiān)控?cái)?shù)據(jù)模板可以方便的進(jìn)行拓展、集成、修改。
基于上述質(zhì)量監(jiān)控規(guī)范知識建模和監(jiān)控?cái)?shù)據(jù)的組織思路,開發(fā)基于Drools規(guī)則引擎[13,14]的建筑施工質(zhì)量監(jiān)控原系統(tǒng)。系統(tǒng)采用Drools規(guī)則引擎進(jìn)行條款規(guī)則與質(zhì)量監(jiān)控?cái)?shù)據(jù)的自動匹配審查。Drools 是基于Java的開放源碼規(guī)則引擎,其核心由事實(shí)庫、規(guī)則庫、推理機(jī)三部分組成。Drools規(guī)則引擎的事實(shí)庫中存儲質(zhì)量監(jiān)控信息構(gòu)成的質(zhì)量事實(shí)對象,規(guī)則庫中存儲來自規(guī)范知識的監(jiān)控規(guī)則,推理引擎負(fù)責(zé)觸發(fā)滿足事實(shí)的規(guī)則,輸出質(zhì)量審查結(jié)果。
通過Drools規(guī)則引擎,實(shí)現(xiàn)質(zhì)量監(jiān)控規(guī)范條款與質(zhì)量監(jiān)控?cái)?shù)據(jù)的分離管理,使得監(jiān)控?cái)?shù)據(jù)與規(guī)范條文規(guī)則保持低耦合,增強(qiáng)系統(tǒng)的適應(yīng)性,使得不因規(guī)范條文規(guī)則的修改而重新開發(fā)。同時(shí),Drools支持Excel文件格式的決策表,并支持在電子表格中管理規(guī)則,方便根據(jù)需要對規(guī)則進(jìn)行擴(kuò)充、刪除、修改。
原系統(tǒng)開發(fā)流程如圖3所示。對建筑工程質(zhì)量監(jiān)控相關(guān)的規(guī)范條款進(jìn)行分析,抽取質(zhì)量監(jiān)控對象,識別監(jiān)控規(guī)則,利用Excel將這些規(guī)則編入決策表,并通過Drools讀入決策表。每個(gè)監(jiān)控對象對應(yīng)一個(gè)框架,依據(jù)框架建立質(zhì)量監(jiān)控模板,基于監(jiān)控模板開發(fā)質(zhì)量監(jiān)控信息管理界面,以供質(zhì)量監(jiān)控人員填入監(jiān)控?cái)?shù)據(jù)。
圖3 質(zhì)量監(jiān)控原系統(tǒng)開發(fā)流程
整個(gè)系統(tǒng)主要功能模塊如下:
(1) 質(zhì)量監(jiān)控規(guī)范知識庫
知識庫中包含質(zhì)量監(jiān)控規(guī)則庫和規(guī)范條款庫兩部分。質(zhì)量監(jiān)控規(guī)范條款庫中存儲規(guī)范條款電子文本,方便質(zhì)量監(jiān)控人員查閱參照。從相關(guān)質(zhì)量監(jiān)控規(guī)范中抽取質(zhì)量監(jiān)控對象及其對應(yīng)的質(zhì)量要求,形成決策表,每一監(jiān)控對象對應(yīng)一張決策表。在Excel文件中定義這些決策表,并由Drools自動加載進(jìn)規(guī)則庫中,形成質(zhì)量監(jiān)控規(guī)則庫。
圖4 灌注樁質(zhì)量監(jiān)控決策表
如圖4,以《建筑地基基礎(chǔ)工程施工質(zhì)量驗(yàn)收規(guī)范》(GB50202-2002)的表5.1.4(參見圖1)為例,將成孔方法,樁徑允許偏差,垂直允許偏差,以及樁位允許偏差都作為決策表的條件(CONDITION)部分,如果檢測結(jié)果都滿足條件所示,那么我們自定義決策表的行為(ACTION)為通過(Passed)。此外,為了方便對相關(guān)規(guī)范的查詢,在ACTION部分,增加了引用標(biāo)準(zhǔn)規(guī)范的名字,建筑質(zhì)量檢測人員可以根據(jù)該引用的標(biāo)準(zhǔn)規(guī)范名字,查閱相關(guān)的具體規(guī)范。
(2) 質(zhì)量監(jiān)控?cái)?shù)據(jù)模板庫
基于本文提出的建筑質(zhì)量監(jiān)控條款知識建模方法,對“建筑地基基礎(chǔ)工程施工質(zhì)量驗(yàn)收規(guī)范(GB 50202-2002)”進(jìn)行抽取和建模,形成質(zhì)量監(jiān)控模板。這些質(zhì)量監(jiān)控模板構(gòu)成了系統(tǒng)的質(zhì)量監(jiān)控?cái)?shù)據(jù)模板庫。對某個(gè)特定工程實(shí)體A進(jìn)行監(jiān)控,只需要從質(zhì)量監(jiān)控模板庫中選擇A需要的模板,然后對個(gè)別模板進(jìn)行個(gè)性化調(diào)整,形成A的質(zhì)量監(jiān)控計(jì)劃,然后按該計(jì)劃進(jìn)行對A的監(jiān)控。
(3) 質(zhì)量監(jiān)控?cái)?shù)據(jù)審查與顯示界面
基于質(zhì)量監(jiān)控?cái)?shù)據(jù)模板,開發(fā)質(zhì)量監(jiān)控?cái)?shù)據(jù)采集和審查界面。質(zhì)量監(jiān)控?cái)?shù)據(jù)采集界面嵌入標(biāo)準(zhǔn)化的監(jiān)控流程和監(jiān)控職責(zé)。各監(jiān)控點(diǎn)之間基于監(jiān)控流程相連接,一環(huán)扣一環(huán),相互銜接,杜絕不規(guī)范監(jiān)控和個(gè)人任意修改作弊;監(jiān)控職責(zé)寫明參與的單位和負(fù)責(zé)人,要求質(zhì)控人員按順序進(jìn)行職責(zé)確認(rèn)簽名,以備追溯,保證了出問題時(shí)能方便地定位到人。
審查界面中包含對某一質(zhì)量監(jiān)控對象的質(zhì)量檢測數(shù)據(jù)的輸入和審查結(jié)果呈現(xiàn)等功能。系統(tǒng)根據(jù)質(zhì)量檢測數(shù)據(jù)與規(guī)則要求的偏差的程度,分別利用不同的警示符號(三角、圓圈等)提示質(zhì)量監(jiān)控結(jié)果;系統(tǒng)還根據(jù)審查所調(diào)用規(guī)則,以浮動窗形式返回規(guī)則對應(yīng)的參照條款,便于監(jiān)控人員對監(jiān)控結(jié)果的理解。同時(shí),系統(tǒng)還提供規(guī)范條款檢索界面,用來支持質(zhì)檢人員從規(guī)范條款庫中查找需參照的規(guī)范條款。
系統(tǒng)在Windows XP環(huán)境下,采用J2EE框架,在Eclipse平臺下開發(fā),采用經(jīng)典的3 層( MVC) 架構(gòu),采用tomcat應(yīng)用服務(wù)器,Sql Server2000數(shù)據(jù)庫。應(yīng)用表示層用于質(zhì)量監(jiān)控?cái)?shù)據(jù)和審查結(jié)果的輸入輸出,規(guī)范的查詢等;中間服務(wù)層(Servlet、JDBC、Drool)承擔(dān)數(shù)據(jù)訪問、規(guī)則導(dǎo)入、審查推理等工作。數(shù)據(jù)庫服務(wù)層用于數(shù)據(jù)的存儲管理,包含質(zhì)量監(jiān)控規(guī)范知識庫、質(zhì)量監(jiān)控?cái)?shù)據(jù)模板庫、質(zhì)量監(jiān)控?cái)?shù)據(jù)庫。
通過JavaBean連接到數(shù)據(jù)庫Sql Server2000,并將Drools api集成到JavaBean中,在JavaBean中實(shí)現(xiàn)規(guī)則的定義、讀取和基于規(guī)則的推理等操作。以質(zhì)量灌注樁規(guī)則為例,其代碼如下:
Pile pileSj=new Pile(); //從數(shù)據(jù)庫中讀取數(shù)據(jù)
KnowledgeBase kbase = readKnowledgeBase();
StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
KnowledgeRuntimeLogger logge=
KnowledgeRuntimeLoggerFactory.newFileLogger(ksession, "test");
while(pileSj.rs.next())
{
Message message = new Message();
message.setStatus(pileSj.rs.getInt(1));
message.setType(pileSj.rs.getString(2).trim());
message.setMethod(pileSj.rs.getString(3).trim());
message.setD(pileSj.rs.getDouble(4));
message.setPileDiameterDeviation(pileSj.rs.getDouble(5));
message.setVerticalMissing(pileSj.rs.getDouble(6));
message.setSingleRowPile(pileSj.rs.getString(7).trim());
message.setRowPileData(pileSj.rs.getDouble(8));
ksession.insert(message);
ksession.fireAllRules();
}
logger.close();
Pile pileSj=new Pile()創(chuàng)建一個(gè)樁類,用來存放從數(shù)據(jù)庫中讀取的數(shù)據(jù)。緊接著的三個(gè)程序語句是加載樁的決策表規(guī)則部分,函數(shù)readKnowledgeBase()從指定的決策表中讀取規(guī)則,并且存放在工作內(nèi)存中,以備匹配質(zhì)量監(jiān)控?cái)?shù)據(jù)。While循環(huán)部分把從數(shù)據(jù)庫中讀取的樁的質(zhì)量監(jiān)控?cái)?shù)據(jù)放入到樁類中,并調(diào)用工作內(nèi)存中的規(guī)則與監(jiān)控?cái)?shù)據(jù)匹配。其中,函數(shù)ksession.insert(message)將監(jiān)控?cái)?shù)據(jù)放入工作內(nèi)存,函數(shù)ksession.fireAllRules()調(diào)用工作內(nèi)存中的規(guī)則,logger.close()關(guān)閉規(guī)則。
建筑工程質(zhì)量監(jiān)控是確保工程符合國家法律、法規(guī)和強(qiáng)制性標(biāo)準(zhǔn),保證工程質(zhì)量與安全的重要舉措。本文利用決策表建模質(zhì)量監(jiān)控規(guī)范中的規(guī)則知識,采用框架表示法組織質(zhì)量監(jiān)控信息,在此基礎(chǔ)上,構(gòu)建基于Drools規(guī)則引擎的建筑工程質(zhì)量監(jiān)控原系統(tǒng)?;贒rools規(guī)則引擎實(shí)現(xiàn)了監(jiān)控規(guī)則與監(jiān)控?cái)?shù)據(jù)的分離管理,便于動態(tài)修改規(guī)則,快速監(jiān)控規(guī)范需求的變化,提高了系統(tǒng)的可維護(hù)性。
目前本文所提出的規(guī)則知識建模方法主要針對質(zhì)量監(jiān)控規(guī)范中的定量約束。如何有效表達(dá)規(guī)范中的定性約束將是下一步需要研究工作之一。
[1] Johan de Gelder. Conceptual modeling of building regulation knowledge[J]. Artificial Intelligence in Engineering, 1997, 11(3):273-284.
[2] Battikha M. Qualcomm: computer-based system for construction quality management[J]. Journal of Construction Engineering and Management, 2002, 128(2):164-173.
[3] Young S Kim, Se W Oh, Yong K Cho, et al. A PDA and wireless web-integrated system for quality inspection and defect management of apartment housing projects[J]. Automation in Construction, 2008, 17(2): 163-179.
[4] Chin S, Kim K, Kim Y. A process-based quality management information systems[J]. Automation in Construction, 2004, 13(2):241-259.
[5] Ka Chi Lam, Ng Thomas S. A cooperative internet-facilitated quality management environment for construction[J]. Automation in Construction, 2006, 15(1): 1-11.
[6] Khemlani L. Corenet e-Plan Check: Singapore′s Automated Code Checking System AEC Bytes [EB/OL]. [2005-08-10]. http://www.aecbytes.com/buildingthefuture/2005/CORENETePlanCheck.html.
[7] Nguyen T H, Asa E. Integrating Building Code Compliance Checking Into a 3D CAD System[R]. Montreal, Canada: Joint International Conference on Computing and Decision Making in Civil and Building Engineering, 2006.
[8] Boukamp F, Akinci B. Towards Automated Defect Detection: Object-Oriented Modeling of Construction Specifications[C]∥Weimar, Germany: Xth Int. Conf. on Computing in Civil and Building Engineering(ICCCBE-X), 2004.
[9] Gloria T Lau, Shawn Kerrigan, Haoyi Wang. An Information Infrastructure for Government Regulation Analysis and Compliance Assistance[R]. Seattle: Proceedings of the National Conference on Digital Government Research, 2004.
[10] GB 50202-2002,建筑地基基礎(chǔ)工程施工質(zhì)量驗(yàn)收規(guī)范[S].
[11] Minsky M. A Framework for Representing Knowledge [C]// Winton P H. The Psychology of Computer Vision. New York: McGraw-Hill, 1975: 211-277.
[12] Xiangyang Tan, Amin Hammad, Paul Fazio. Automated Code Compliance Checking for Building Envelope Design[J]. Computing in Civil Engineering, 2010, 24(2):203-211.
[13] Drools: Business Rule Management System [EB/OL]. [2010-12-10].http://labs.jboss.com/drools/.
[14] 陶曉俊, 朱 敏. 基于規(guī)則引擎的企業(yè)服務(wù)開發(fā)模式[J]. 計(jì)算機(jī)技術(shù)與發(fā)展,2008,18(2):115-118.