文|北京構力科技有限公司上海分公司 顧宏曄 張繼鋒 劉學東
工程建設行業(yè)的規(guī)范標準編制通常以自然語言的表達形式呈現(xiàn),基于規(guī)范進行審查,需將規(guī)范條文轉(zhuǎn)化為可量化計算的結構數(shù)據(jù)形式。目前技術實現(xiàn)路徑主要有以下幾種形式:①以語素為基礎的規(guī)則提取法,根據(jù)語法和語素分析的結果,給出了五類句式的規(guī)范條文的結構化方法;②基于規(guī)則的NLP 方法的信息提取技術,在解決信息理解沖突的前提下,提取的規(guī)則采用了模式匹配方法,使結果達到較高的準確率;③嵌套式三元組結構化表達,采用Bert 模型的深度學習方法對《住宅建筑規(guī)范》進行了實驗,發(fā)現(xiàn)在邊界已知情況下可以非常有效的識別三元組,來處理復雜條文問題。
本文所描述的知識推理技術在BIM 智能化審查應用主要借助三元組數(shù)據(jù)表達方式,通過三元組隱藏屬性信息深度關聯(lián),作為審圖計算應用的規(guī)范解析格式,包括要素提取和子句生成以及組合等。要素包括實體(E)、屬性(A)、屬性值(AV)、操作(Op)、方位(R)、修飾詞(ADJ)等;三元組一般由連續(xù)的要素形成,比如實體之間可以通過操作形成實體關系三元組(EOS),(實體+屬性)+比較操作+屬性值可以形成實體約束三元組(LOR)。三元組作為獨立單元通過邏輯組合形成子句。子句通過審查條件(IF)和審查主體(THEN)組成一條規(guī)范條文的最小可審查單元。其中代詞可通過指定指代的方式替換為實體,從而達到完善語義的效果,最終實現(xiàn)BIM 模型數(shù)據(jù)的智能化審查。
一般情況下,規(guī)范解析后的實體關系三元組(EOS)可以表示建筑、空間或構件之間的關系,而實體約束三元組(LOR)可以表示建筑、空間或構件的屬性約束;只要模型數(shù)據(jù)表示支持所有解析出來的實體、屬性和關系,就可通過關系計算以及屬性計算結果對應進行審核。但是,模型的數(shù)據(jù)表示一般比較穩(wěn)定,不會無限制的增加實體表達(例如:規(guī)范中的某些實體可以用實體+屬性或者實體關系表示),導致了規(guī)范解析的部分實體在審圖時是無法對應的;實體的屬性名稱也有跟模型表示里的屬性名稱不一致的情況。實體關系三元組(EOS)中除了實體關系外,還會有實體限定詞關系,例如,住宅規(guī)范6.4.2 中的"十二層及十二層以上的住宅",也無法直接跟BIM 模型數(shù)據(jù)的結構對應。
為解決規(guī)范數(shù)據(jù)結構化無法與模型數(shù)據(jù)對應的問題,本文提出可以從三維度對規(guī)范解析的結構化數(shù)據(jù)進行處理,包括:實體解釋、屬性解釋以及修飾詞解釋,詳見表1(其中實體解釋有三種類型):
根據(jù)表1的類型及處理方式,研究出一種知識推理算法。圖2給出了使用知識推理算法的一個推理結果展示,案例章節(jié)會給出解析及推理的具體格式。知識推理核心算法偽碼如下(細節(jié)已簡化):
圖1 規(guī)范解析平臺解析規(guī)范數(shù)據(jù)展示
表1 知識推理的三種類型及處理方式
圖2 知識推理平臺進行審圖推理展示
算法:知識推理核心算法
輸入:1.規(guī)范解析后的條文子句(rule:Rule)
2.知識推理解釋配置(config:RuleModelConfig)
輸出:推理后的新的條文子句列表(res:List of Rule)
FUNCTION BEGIN
LET entityDict: Map
LET entityList=entity Dict.SortDescendByValue().Keys()//按實體解釋個數(shù)降序排列
FOR entityName IN entityList
LET entityCount = entityDict[entityName]//當前實體解釋個數(shù)
FOR index = 1 TO entityCount
LET newRule = rule.Copy()//原子句副本作為新子句
FOR tri:Triple IN rule.GetAllTriples()//遍歷三元組,進行解釋
ReplacePropertyAlias(tri,newRule)//屬性別名解釋
ReplaceEntity(tri,newRule)//實體解釋
ReplaceAdj(tri,newRule)//實體修飾詞解釋
ENDFOR
res.Add(newRule)//推理后的新子句加入到結果列表中
ENDFOR
ENDFOR
RETURN res
FUNCTION END
除核心推理算法,也提出針對一些常見三元組組合的轉(zhuǎn)換算法。例如考慮規(guī)范條文中子句“單元設置一臺電梯”,規(guī)范解析結構化的結果為兩個實體關系三元組(EOS):單元+設置+電梯,電梯+滿足+一臺。其中“一臺”是數(shù)詞和量詞的組合,可以認為是一個屬性值約束。對于這種固定結構,通過轉(zhuǎn)換算法可以把此結構轉(zhuǎn)換為單一的實體約束三元組(LOR):EOS(單元設置電梯)+Op(contains)+AV(一臺),簡化審查計算的判斷邏輯。
BIM 模型智能審查是基于BIM 模型的結構化表達方式,搭配規(guī)范解析的結構化數(shù)據(jù)格式來進行?!痘贐IM 的建筑專業(yè)設計合規(guī)性自動審查系統(tǒng)及其關鍵技術》提出以模型IFC 數(shù)據(jù)轉(zhuǎn)換為ifcOWL 數(shù)據(jù),采用SPARQL 審查規(guī)則進行BIM 施工圖智能審查;《基于BIM 和知識圖譜的消防智能審圖研究》針對建筑消防規(guī)范進行了知識圖譜三元組提取,基于IFC 模型數(shù)據(jù)與三元組審查規(guī)則進行匹配審查?!禕IM 模型智能檢查工具在審查平臺及消防審查中的應用》開發(fā)了BIM 模型智能檢查工具,采用SNL規(guī)則建立了防火規(guī)范庫,通過擴展幾何庫實現(xiàn)了語義和幾何計算結合的智能審查。
本文采用的審查算法基于BIM 模型通用數(shù)據(jù)格式(XDB),通過三元組形式的規(guī)范解析,結合上文的知識推理技術,對BIM 模型進行智能審查。對于XDB 數(shù)據(jù)格式存在的表達數(shù)據(jù),可以直接根據(jù)規(guī)范解析或知識推理的結果進行審查;對于未定義的數(shù)據(jù)(比如可計算的構件屬性),采用了模型表示擴展的方式,可通過屬性擴展接口、實體關系擴展接口對構件或空間進行實體擴展或?qū)嶓w屬性計算后進行審查。
以住宅設計規(guī)范6.4.2 為例,給出規(guī)范解析格式、知識推理格式以及應用到審圖的智能審查結果。規(guī)范解析和知識推理選取子句:“住宅滿足十二層及十二層以上的時,每棟樓應設置可容納擔架的電梯,且可容納擔架的電梯滿足一臺?!保淮俗泳潴w現(xiàn)了對實體的解釋(住宅)以及對修飾詞的解釋(十二層及十二層以上的)。
住宅設計規(guī)范6.4.2 部分數(shù)據(jù)解析邏輯過程如下(部分內(nèi)容簡化):
依據(jù)如上給出的解析和推理結果,智能審查的結果展示如圖3所示。
圖3 住宅BIM 模型的6.4.2 審查結果展示
隨著BIM 技術的不斷發(fā)展,對BIM 智能審查應用的需求越來越多,對智能化的要求也越來越高;但模型與規(guī)范表達不一致在一定程度上限制了兩者數(shù)據(jù)應用的范圍。本文采用基于NLP 三元組技術的規(guī)范解析的結果,通過保持規(guī)范結構化數(shù)據(jù)格式的知識推理技術,解決了BIM 模型數(shù)據(jù)與規(guī)范表達不一致,以及規(guī)范數(shù)據(jù)需要進一步解釋的問題,拓寬了規(guī)范審查的范圍,進一步促進了BIM 智能審查技術的應用與實現(xiàn)。