文|北京构力科技有限公司上海分公司 顾宏晔 张继锋 刘学东
工程建设行业的规范标准编制通常以自然语言的表达形式呈现,基于规范进行审查,需将规范条文转化为可量化计算的结构数据形式。目前技术实现路径主要有以下几种形式:①以语素为基础的规则提取法,根据语法和语素分析的结果,给出了五类句式的规范条文的结构化方法;②基于规则的NLP 方法的信息提取技术,在解决信息理解冲突的前提下,提取的规则采用了模式匹配方法,使结果达到较高的准确率;③嵌套式三元组结构化表达,采用Bert 模型的深度学习方法对《住宅建筑规范》进行了实验,发现在边界已知情况下可以非常有效的识别三元组,来处理复杂条文问题。
本文所描述的知识推理技术在BIM 智能化审查应用主要借助三元组数据表达方式,通过三元组隐藏属性信息深度关联,作为审图计算应用的规范解析格式,包括要素提取和子句生成以及组合等。要素包括实体(E)、属性(A)、属性值(AV)、操作(Op)、方位(R)、修饰词(ADJ)等;三元组一般由连续的要素形成,比如实体之间可以通过操作形成实体关系三元组(EOS),(实体+属性)+比较操作+属性值可以形成实体约束三元组(LOR)。三元组作为独立单元通过逻辑组合形成子句。子句通过审查条件(IF)和审查主体(THEN)组成一条规范条文的最小可审查单元。其中代词可通过指定指代的方式替换为实体,从而达到完善语义的效果,最终实现BIM 模型数据的智能化审查。
一般情况下,规范解析后的实体关系三元组(EOS)可以表示建筑、空间或构件之间的关系,而实体约束三元组(LOR)可以表示建筑、空间或构件的属性约束;只要模型数据表示支持所有解析出来的实体、属性和关系,就可通过关系计算以及属性计算结果对应进行审核。但是,模型的数据表示一般比较稳定,不会无限制的增加实体表达(例如:规范中的某些实体可以用实体+属性或者实体关系表示),导致了规范解析的部分实体在审图时是无法对应的;实体的属性名称也有跟模型表示里的属性名称不一致的情况。实体关系三元组(EOS)中除了实体关系外,还会有实体限定词关系,例如,住宅规范6.4.2 中的"十二层及十二层以上的住宅",也无法直接跟BIM 模型数据的结构对应。
为解决规范数据结构化无法与模型数据对应的问题,本文提出可以从三维度对规范解析的结构化数据进行处理,包括:实体解释、属性解释以及修饰词解释,详见表1(其中实体解释有三种类型):
根据表1的类型及处理方式,研究出一种知识推理算法。图2给出了使用知识推理算法的一个推理结果展示,案例章节会给出解析及推理的具体格式。知识推理核心算法伪码如下(细节已简化):
图1 规范解析平台解析规范数据展示
表1 知识推理的三种类型及处理方式
图2 知识推理平台进行审图推理展示
算法:知识推理核心算法
输入:1.规范解析后的条文子句(rule:Rule)
2.知识推理解释配置(config:RuleModelConfig)
输出:推理后的新的条文子句列表(res:List of Rule)
FUNCTION BEGIN
LET entityDict: Map
LET entityList=entity Dict.SortDescendByValue().Keys()//按实体解释个数降序排列
FOR entityName IN entityList
LET entityCount = entityDict[entityName]//当前实体解释个数
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
除核心推理算法,也提出针对一些常见三元组组合的转换算法。例如考虑规范条文中子句“单元设置一台电梯”,规范解析结构化的结果为两个实体关系三元组(EOS):单元+设置+电梯,电梯+满足+一台。其中“一台”是数词和量词的组合,可以认为是一个属性值约束。对于这种固定结构,通过转换算法可以把此结构转换为单一的实体约束三元组(LOR):EOS(单元设置电梯)+Op(contains)+AV(一台),简化审查计算的判断逻辑。
BIM 模型智能审查是基于BIM 模型的结构化表达方式,搭配规范解析的结构化数据格式来进行。《基于BIM 的建筑专业设计合规性自动审查系统及其关键技术》提出以模型IFC 数据转换为ifcOWL 数据,采用SPARQL 审查规则进行BIM 施工图智能审查;《基于BIM 和知识图谱的消防智能审图研究》针对建筑消防规范进行了知识图谱三元组提取,基于IFC 模型数据与三元组审查规则进行匹配审查。《BIM 模型智能检查工具在审查平台及消防审查中的应用》开发了BIM 模型智能检查工具,采用SNL规则建立了防火规范库,通过扩展几何库实现了语义和几何计算结合的智能审查。
本文采用的审查算法基于BIM 模型通用数据格式(XDB),通过三元组形式的规范解析,结合上文的知识推理技术,对BIM 模型进行智能审查。对于XDB 数据格式存在的表达数据,可以直接根据规范解析或知识推理的结果进行审查;对于未定义的数据(比如可计算的构件属性),采用了模型表示扩展的方式,可通过属性扩展接口、实体关系扩展接口对构件或空间进行实体扩展或实体属性计算后进行审查。
以住宅设计规范6.4.2 为例,给出规范解析格式、知识推理格式以及应用到审图的智能审查结果。规范解析和知识推理选取子句:“住宅满足十二层及十二层以上的时,每栋楼应设置可容纳担架的电梯,且可容纳担架的电梯满足一台。”;此子句体现了对实体的解释(住宅)以及对修饰词的解释(十二层及十二层以上的)。
住宅设计规范6.4.2 部分数据解析逻辑过程如下(部分内容简化):
依据如上给出的解析和推理结果,智能审查的结果展示如图3所示。
图3 住宅BIM 模型的6.4.2 审查结果展示
随着BIM 技术的不断发展,对BIM 智能审查应用的需求越来越多,对智能化的要求也越来越高;但模型与规范表达不一致在一定程度上限制了两者数据应用的范围。本文采用基于NLP 三元组技术的规范解析的结果,通过保持规范结构化数据格式的知识推理技术,解决了BIM 模型数据与规范表达不一致,以及规范数据需要进一步解释的问题,拓宽了规范审查的范围,进一步促进了BIM 智能审查技术的应用与实现。