CN117215535A - 一种基于建筑数据交换标准的语句处理方法、装置和设备 - Google Patents
一种基于建筑数据交换标准的语句处理方法、装置和设备 Download PDFInfo
- Publication number
- CN117215535A CN117215535A CN202311166978.0A CN202311166978A CN117215535A CN 117215535 A CN117215535 A CN 117215535A CN 202311166978 A CN202311166978 A CN 202311166978A CN 117215535 A CN117215535 A CN 117215535A
- Authority
- CN
- China
- Prior art keywords
- keyword
- grammar
- tree
- logic
- execution result
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 16
- 238000000034 method Methods 0.000 claims abstract description 34
- 238000012545 processing Methods 0.000 claims abstract description 17
- 230000015654 memory Effects 0.000 claims description 29
- 230000011218 segmentation Effects 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 19
- 238000007689 inspection Methods 0.000 description 9
- 238000010276 construction Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 7
- 230000014509 gene expression Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 230000018109 developmental process Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000012552 review Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013497 data interchange Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000005662 electromechanics Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000009423 ventilation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于建筑数据交换标准的语句处理方法、装置和设备,该方法应用于一种客户端,所述方法包括:获取基于建筑数据交换标准定义的领域特定语言DSL语句;解析所述DSL语句得到至少一个关键字,利用预定义的语法树对所述至少一个关键字的语义和语法进行检查;若检查每个关键字的语义和语法均正确,则通过预设接口执行每个关键字的逻辑,得到执行结果;并将所述执行结果输出给外部设备。本方法由于是基于GFC自定义的DSL语句,因此可以随时修改,有效支撑数据审查国标、地标、行标、企标等快速实施;并且本方案应用于BIM模型审查领域,从而实现自主灵活的制定审查规则,解决了BIM模型合规性审查的审查路线无法自由修改的问题。
Description
技术领域
本发明涉及数据处理技术领域,尤其是涉及一种基于建筑数据交换标准的语句处理方法、装置和设备。
背景技术
在各个专业领域,相关的专业工程师或者对应软件服务提供商一般都会为具体的业务场景设计专业的软件或者系统平台。如办公领域,Microsoft Office软件为电子表格需求场景开发了Excel客户端工具。在Excel中,用户可以输入各种自定义函数来进行各种表格数据处理。
同样地,在工程建设领域,为了进行建筑信息模型(Building InformationModeling,BIM)规范审查,不同的厂商也推出了各自的审查产品,提供了审查规则定义逻辑,如国外主流审查软件Solibri和清华开发的模型信息表达语言SNL(Small NestedLanguage,简单的具有嵌套过程的程序设计语言)都可以应用在BIM模型审查场景。
目前,由于工程建设领域内尚未建立起统一的BIM模型审查的相关规定和制度,因此,各建设单位、设计单位、施工单位均很难判断BIM模型是否达到了相关规范的质量要求(如国标、地标、行标、企标),为此,不得不分别设计和使用了各类市场化的审查系统或者工具软件。这些系统或者软件基本都基于定制化审查需求开发,一般无法由用户自由修改审查路线,而且购买成本高、研发周期长、复用和升级灵活性都比较差。
发明内容
为了解决上述技术问题,本发明实施例提供了一种基于建筑数据交换标准的语句处理方法,该方法以建筑数据交换标准GFC定义的构件关键字为基础,定义了一种新的语法书写规范,设计了一种DSL语句,系统内部接收该DSL语句后先对其进行语义解释,获取语句中的至少一个关键字,然后再基于每个关键字启动对应的执行逻辑对源数据进行规则执行,得到最终输出的执行结果。具体地,公开了如下技术方案:
第一方面,本发明提供了一种基于建筑数据交换标准的语句处理方法,该方法可应用于一种客户端,该方法包括:
获取基于建筑数据交换标准定义的领域特定语言DSL语句;解析DSL语句得到至少一个关键字,至少一个关键字包括:数值、操作符、属性和构件主体;利用预定义的语法树对至少一个关键字的语义和语法进行检查;若检查每个关键字的语法和语义均正确,则通过预设接口执行每个关键字的逻辑,得到执行结果;将执行结果输出给外部设备。外部设备,比如使用方将该审查结果作为一种辅助审查手段,对原始数据的合规性进行审查,以便判断模型是否满足各类规范的要求。
结合第一方面,在一种可能的实施方式中,解析DSL语句得到至少一个关键字,包括:按照语法定义的规则对DSL语句进行词句切分,得到至少一个关键字。
结合第一方面,在另一种可能的实施方式中,客户端包括解析器,DSL语句按照预定的审查规则撰写生成。
上述利用预定义的语法树对至少一个关键字的语法和语义进行检查,包括:解析器通过遍历语法树检查审查规则中是否存在语法错误,以及,分析审查规则的语义是否正确。
结合第一方面,在又一种可能的实施方式中,上述方法还包括:如果存在语法错误或者语义错误,则解析器确定发生错误的关键字或错误语法,并报错显示关键字或语法。
结合第一方面,在又一种可能的实施方式中,客户端还包括执行器。
解析DSL语句得到至少一个关键字之后,还包括:解析器根据至少一个关键字生成关键字列表。
若检查每个关键字的语法和语义均正确,则通过预设接口执行每个关键字的逻辑,得到执行结果,包括:解析器将关键字列表通过语法树进行关系关联,生成关键字列表树,并将关键字列表树发送给执行器;执行器接收关键字列表树,并执行关键字列表树中每个关键字的逻辑,得到执行结果。
结合第一方面,在又一种可能的实施方式中,上述执行关键字列表树中每个关键字的逻辑,得到执行结果,包括:执行器遍历关键字列表树上的每一个关键字,按照系统内部为每个关键字预制的执行逻辑进行运算,输出每个关键字的运算结果;当所有关键字都被执行完毕时,按照DSL语句中指定的每个运算结果之间的逻辑关系,汇总生成执行结果。
可选的,解析器是基于开源技术框架生成,用于读取、处理、执行或翻译结构化文本或二进制文件。
第二方面,本发明提供了一种基于建筑数据交换标准的语句处理装置,所述装置包括:
获取模块,用于获取基于建筑数据交换标准定义的领域特定语言DSL语句;
解析模块,用于解析所述DSL语句得到至少一个关键字,所述至少一个关键字包括:数值、操作符、属性和构件主体;
检查模块,用于利用预定义的语法树对所述至少一个关键字的语义和语法进行检查;
执行模块,用于在所述检查模块检查每个所述关键字的语法和语义均正确时,通过预设接口执行每个所述关键字的逻辑,得到执行结果;
传输模块,用于将所述执行结果输出给外部设备。
第三方面,本发明实施例还公开了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器连接的存储器。
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使至少一个处理器执行如第一方面或第一方面任一实施方式所述的方法。
另外,本发明实施方式还公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,可实现如前述第一方面或第一方面任一实施方式所述的方法。
本实施例提供的一种基于建筑数据交换标准的语句处理方法、装置和设备,由于是基于建筑数据交换标准GFC自定义的DSL语句,因此可以随时修改,有效支撑数据审查国标、地标、行标、企标等快速实施;相关专业人员可将本技术方案应用于BIM模型审查领域,从而实现自主灵活的制定审查规则,解决了BIM模型合规性审查的审查路线无法自由修改的问题,达到降低审查规则的开发成本、提高了复用和升级的灵活性的有益效果。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种基于GFC标准的语句处理方法的流程图;
图2是本发明实施例提供的一种基于GFC标准的语句处理方法的框架示意图;
图3是本发明实施例提供的另一种基于GFC标准的语句处理方法的流程图;
图4是本发明实施例提供的一种通过语法树查询结果的示意图;
图5是本发明实施例提供的一种通过语法树查询结果显示错误的示意图;
图6是本发明实施例提供的一种语句处理装置的结构框图;
图7是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的技术方案属于数字建筑领域对建筑数据的实际应用,尤其是应用在设计单位、建设单位、施工单位在对应阶段针对施工图纸及BIM模型的合规性审查,用于解决目前各类市场化的审查系统或工具软件不支持用户自由修改审查路线、购买成本高、研发周期长、复用和灵活性较差的问题。
为了解决该技术问题,本发明实施例提供了一种基于建筑数据交换标准的语句处理方法。下面结合附图对本实施例提供的语句处理方法进行详细说明。
参见图1,为本实施例提供的一种基于GFC标准的语句处理方法,该方法可用于客户端,所述客户端包括但不限于移动终端,如手机、平板电脑,以及Web客户端等。如图1所示,该流程包括如下步骤:
步骤S101:获取基于建筑数据交换标准定义的领域特定语言DSL语句。
其中,所述建筑数据交换标准(Glodon Foundation Classes,GFC)是由广联达科技股份有限公司自主编制的数据标准,并基于此标准开发的行业通用模型数据格式。可通过统一的转换插件,可导出或导入基于GFC数据标准格式的文件。GFC数据标准的目标,统一各产品之间的数据接口,对外开发共享,形成统一的标准数据格式。
GFC标准,用于建筑数据在建筑物设计、施工及运维管理项目中的各种参与者之间交换和共享。本实施例中基于GFC标准定义构件的关键字,以及定义了新的语法书写规范,设计出一种新的DSL语言,写成DSL语句。
所述DSL语句由预定义的语法框架和至少一个关键字,并基于DSL语言生成。进一步地,所述预定义的语法框架(或简称“语法”)包括以下任意一种:
属性检查语法(condition)、简单函数语法(functionExpres)、空间包含语法(contains FunctionExpr)、穿越关系语法(crossFunctionExpr)、管道连接语法(connectFunctionExpr)、客体构件计数语法(countGuestFunctionExpr)、封闭空间判断语法(enclosedFunctionExpr)、净高判断语法(clearHeightFunctionExpr)、构件特定角度语法(specificAngleFunctionExpr)、OBB包围盒空间包含语法(obbContainsFunctionExpr)、构件逻辑关系语法(logicalContains FunctionExpr)、指定房间判断语法(specificRoomFunctionExpr)、净面积比例判断语法(clear AreaRateFunctionExpr)、净宽判断语法(clearWidthFunctionExpr)、分组聚合语法(groupSum FunctionExpr)、管道距离判断语法(pipeDistanceFunctionExpr)、空间位置判断语法(spacePositionFunctionExpr)、空间内逃生距离语法(spaceExitDistanceFunctionExpr)、空间内安全出口距离语法(roomExitDistanceFunctionExpr)、属性计算语法(attributeCalculator FunctionExpr)、出入口包含语法(entranceContainsFunctionExpr)、轮廓上逃生距离语法(outlineExitDistanceFunctionExpr)、净面积判断语法(clearAreaFunctionExpr)、平行关系语法(parallel FunctionExpr)、属性模糊判断语法(valueLikeFunctionExpr)、属性值范围判断语法(value BetweenFunctionExpr)、客体分组计数语法(guestGroupCountFunctionExpr)、客体数量包含语法(containsGuestCountFunctionExpr)、结构墙钢筋信息判断语法(getSTWallRebarInfoFunctionExpr)、标高判断语法(elevationDiffFunctionExpr)、构件间角度判断语法(element AngleInRoomFunctionExpr)、房间开间、进深判断语法(roomDepthFunctionExpr)、角度范围判断语法(angleBetweenElementFunctionExpr)、房间回转空间直径判断语法(roomSwing DiameterFunctionExpr)、防护等级判断语法(getProtectionGradeFunctionExpr)、空间构件数量比例判断语法(getNumRatioInSpaceFunctionExpr)。
所述至少一个关键之包括:数值(value)、操作符(operator)、属性(attribute)和构件主体(object)等,此外还可以包括其它关键字。其中属性(attribute)、构件主体(object)关键字取值基于GFC标准中的构件和构件属性定义的关键字。
应理解,上述语法仅仅是例举,并不穷举,还可以包括其他用户定义的语法,本实施例对此不做限制。
DSL(Domain-Specific Language)是一种针对特定领域的专用语言。与通用编程语言相比,DSL具有更高的领域特定性,旨在解决特定领域的问题,提供更加直观和高效的表达方式。DSL可以分为内部DSL(Internal DSL)和外部DSL(External DSL)两种类型。
本实施例中采用的是内部DSL,该内部DSL是在通用编程语言中灵活使用的一种领域特定语言。通过利用通用编程语言的语法和库,开发者可以构建具有特定领域特性的DSL。
一种DSL语法规则定义的语法选型为:
条件语句:if条件(过滤主体构件)then结果(Do Something执行);
上述每一种语法可以实现一种功能,比如当用户要获取某类房间的窗地比时,结合DSL语法选型,用户可以输入如下执行DSL语句:
if[Room].Name≈客厅then[Room].WindowRatio≥0.02
其中,窗地比WindowRatio要求大于等于0.02。
需要说明的是,上述DSL语句中包括至少一个关键字和DSL语法规则定义的语法;且DSL语句的属性(attribute)、构件主体(object)的命名可以是基于GFC3.2版本定义。
步骤S102:解析所述DSL语句得到至少一个关键字,所述至少一个关键字包括:数值、操作符、属性和构件主体。
具体地,一种实施方式是,解析器按照语法定义的规则对所述DSL语句进行词句切分,得到所述至少一个关键字。所述语法定义的规则可以是前述任意一种语法框架。解析器按照语法定义的规则对DSL语句进行词句切分,并通过遍历解析树来提取至少一个关键字。具体的方法包括创建词法解析器、语法解析器,遍历解析树并根据DSL要求提取关键字。
本实施例中,定义格式化语句的解释执行,实现了一个基于DSL语句的审查语法。该语法内部实现了一个语法解析器和一个执行器。分别负责DSL规则的语法解析及具体规则的执行。
其中,DSL语法解析器基于ANTLR(全称为ANother Tool for LanguageRecognition)技术框架实现,该框架是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件。它被广泛用于构建语言、工具和框架。ANTLR根据语法定义生成解析器,解析器则用于构建和遍历解析树。
ANTLR使用LL(*)(LL-star)语法分析算法,可以处理包括上下文相关语法在内的多种语法规则。它支持多种编程语言,包括Java、C#、Python等,并且生成的解析器可以用于构建各种类型的应用程序。ANTLR提供了丰富的功能和工具,包括语法定义、词法分析器和语法分析器的生成、语法分析树的遍历、错误处理和错误恢复机制等。它被广泛应用于编程语言设计、自然语言处理、模板引擎等领域。
例如图2所示,涉及到的核心环节包括:
1)源数据定义(结构化源数据):基于GFC标准定义了输入语法关键字标准,并结合上下文。
2)DSL语言解析器:基于输入的DSL语句字符串,通过语法解析,获取待执行至少一个关键字。
3)DSL语言执行器:通过语法关键字执行对应的运行逻辑,从而得到执行结果。
步骤S103:利用预定义的语法树对所述至少一个关键字的语义和语法进行检查。
具体地,步骤S103包括:解析器通过遍历所述语法树检查所述审查规则中是否存在语法错误,以及,分析所述审查规则的语义是否正确。
可选的,所述语法树为一种抽象语法树(Abstract Syntax Tree,AST),AST是在编译器、解释器和语言处理工具中常用的一种数据结构。它用于表示源代码的语法结构,以树状的形式展现程序的抽象语法元素和它们之间的关系。
AST通常由一系列节点组成,每个节点表示编程语言中的一个语法结构,如表达式、语句、函数定义等。节点之间通过父子关系连接,构成了一棵树。每个节点包含了语法元素的相关信息,如类型、值、运算符等。本步骤中,通过遍历和操作AST,解析器能够分析程序的结构和执行逻辑,进行语义分析、优化、代码生成等操作。
具体地,如图3所示,基于语法解析器的语法定义,将审查规则组织为AST语法树,基于该语法树,审查引擎进行:
第一、语法检查:解析器可以通过遍历AST来检查审查规则中是否存在语法错误。
第二、语义分析:解析器可以使用AST来分析审查规则的语义,例如识别类型错误、作用域错误等。
第三、代码生成:解析器可以根据AST生成目标代码,本实施例中生成对应的JAVA语言代码。
步骤S104:若检查每个所述关键字的语义和语法均正确,则通过预设接口执行每个所述关键字的逻辑,得到执行结果。
如果上述检查每个关键字,诸如对象关键字、属性关键字、函数关键字、操作符关键字和逻辑运算符关键字等语义和语法均正常,则执行器利用预定的interface接口执行每个关键字的逻辑运算,得到执行结果。
如DSL语法里面存在关键字“conditions”,针对该关键字的执行逻辑只需要实现conditionsInterface函数即可针对该关键字完成技术代码执行。
步骤S105:将所述执行结果输出给外部设备。
外部设备,比如使用方将该审查结果作为一种辅助审查手段,对原始数据的合规性进行审查,以便判断模型是否满足各类规范的要求。
其中,所述外部设备可以是网络接口,或者是文件方式。
本实施例提供的方法,基于GFC标准自定义DSL语句,可实现的对象关键字、属性关键字、函数关键字60余类,可以满足源数据实体属性检查、空间包含检查、空间碰撞检查、管道连接检查、属性计算检查、空间路径检查等审查场景,支持建筑、结构、机电、暖通、给排水五大设计专业模型数据审查。
同时,该系统支持语法便捷扩充,只需要定义对应的书写规则及运行逻辑即可,进而有效支撑数据审查国标、地标、行标、企标等快速实施;相关专业人员可将本技术方案应用于BIM模型审查领域,从而实现自主灵活的制定审查规则,将审查技术执行策略的控制权从系统开发人员上浮到专业的业务人员,解决了BIM模型合规性审查的审查路线无法自由修改的问题,达到降低审查规则的开发成本、提高了复用和升级的灵活性的有益效果。
在一具体示例中,基于上述用户输入的执行DSL语句:
if[Room].Name≈客厅then[Room].WindowRatio≥0.02
经过步骤S103被检查,该规则被识别的AST语法树如图4所示,审查每个关键字:构件主体object关键字:房间room;属性attribute关键字:名字Name;操作符operator关键字:≈;数值value关键字:客厅等是否正确,以及还包括属性attribute关键字:窗地比WindowRatio和数值value关键字:0.02等是否正确,如果均正确,则正常显示,如图4所示。
如果检查发现存在语法错误或者语义错误,则解析器确定发生错误的关键字或错误语法,并报错显示所述关键字或所述语法。例如图5所示,当检查输入了一个错误的审查规则语句时,解析器会识别到错误语法,继而执行异常语法路径逻辑,审查路线同时变更。
在图5中,对于检查发现错误时,语法树会对发生错误的关键字或语法进行标记,比如属性值attribute关键字:识别出名字1(IDENTIFIER Name 1)和识别出窗地比(WindowRatio2)错误,则在语法树中对这两个关键字画框显示,或者标红/涂红色标识等,以提醒用户修改或变更审查路线。
具体地,上述步骤S102,解析器解析所述DSL语句得到至少一个关键字之后,还包括:
S102-1:解析器根据所述至少一个关键字生成关键字列表。
该关键字列表中包括:对象关键字、属性关键字、函数关键字、操作符关键字和逻辑运算符关键字等至少一个关键字。
上述步骤S104:若检查每个所述关键字的语法和语义均正确之后,方法还包括:
S104-1:解析器将所述关键字列表通过语法树进行关系关联,生成关键字列表树,并将所述关键字列表树发送给所述执行器。所述关键字列表树如上述图4或图5所示。
S104-2:执行器接收所述关键字列表树,并执行所述关键字列表树中每个关键字的逻辑,得到所述执行结果。具体地,步骤S104-2包括:
首先,执行器遍历所述关键字列表树上的每一个关键字,按照系统内部为每个关键字预制的执行逻辑进行运算,输出每个所述关键字的运算结果。当所有关键字都被执行完毕时,按照所述DSL语句中指定的每个所述运算结果之间的逻辑关系,汇总生成所述执行结果。
执行器是针对语法关键字定义的执行单元。每一个语法关键字均对应一个具体执行逻辑。执行器里面所有的执行单元的执行结果即为该语句的输出结果。当所有的关键字都被执行完毕后,按照DSL语句中指定的各结果之间的逻辑关系汇总最终的结果,输出给外部设备(外部设备可以是网络接口或者文件方式)。
本实施例基于AST语法树的递归遍历,遍历输入DSL语句中的所有关键字,从而执行所有执行逻辑。只需要为每个关键字实现具体的业务逻辑,即可完成对应执行器逻辑的执行。
另外,基于上述步骤S101中定义的DSL语句,还可以采用通用语法,从而提供用户自定义的灵活性和复用。
具体地,设计DSL语句和执行语句过程中,第一:全量搜索某一类对象,针对此对象判断有无过滤条件;对应的语法为:[对象Token].*;第二:将项目信息也视为一个单独的对象,定义对象名称:Building,如审查点中遇到建筑高度,则可表示为:[Building].aboveHeight;第三:一个执行表达式可以分多段编写。每段作为独立的执行语句,最终结果汇总;第四、执行表达式支持嵌套语句,比如卫生间应该有不小于DN100的地漏,执行表达式可以为:Room.Contains(FloorDrain.Diameter>100);更为复杂的嵌语句可以对客体执行多个执行表达式;比如,contains(Object,Operater opt,double offset,DSL)。
应理解,上述在DSL语句设计和执行过程中还可以自定义其他语义、语法规则和关键字,本实施例对此不予限制。
本实施例基于GFC通用数据格式,实现了一套标准自定义DSL语言,基于内部实现的语法解析器和执行器,执行语句自定义,随时修改,有效支撑数据审查国标、地标、行标、企标等快速实施,实现了语句的灵活编写和高效执行。同时还降低审查成本,执行结果对象化,与具体源数据展示技术可实现联动。
在本实施例中还提供了一种语句处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
如图6所示,本实施例提供一种基于GFC标准的语句处理装置,包括:获取模块610、解析模块620、检查模块630、执行模块640和传输模块650。此外,该装置中还可以包括其他更多或更少的模块,比如存储模块等,本实施例对此不做限制。
具体地,获取模块610,用于获取基于建筑数据交换标准定义的领域特定语言DSL语句。
解析模块620,用于解析所述DSL语句得到至少一个关键字,所述至少一个关键字包括:数值、操作符、属性和构件主体。
检查模块630,用于利用预定义的语法树对所述至少一个关键字的语义和语法进行检查;
执行模块640,用于在所述检查模块检查每个所述关键字的语法和语义均正确时,通过预设接口执行每个所述关键字的逻辑,得到执行结果。
传输模块650,用于将所述执行结果输出给外部设备。
可选的,在本实施例的一种具体的实施方式中,解析模块620,具体用于按照语法定义的规则对所述DSL语句进行词句切分,得到所述至少一个关键字。
可选的,在本实施例的另一种具体的实施方式中,所述客户端包括解析器,所述DSL语句按照预定的审查规则撰写生成。
解析模块620,具体用于通过遍历所述语法树检查所述审查规则中是否存在语法错误,以及,分析所述审查规则的语义是否正确。
可选的,在本实施例的又一种具体的实施方式中,执行模块640,还用于如果检查模块630检测存在语法错误或者语义错误,则确定发生错误的关键字或错误语法,并报错显示所述关键字或所述语法。
可选的,在本实施例的又一种具体的实施方式中,解析模块620,还用于根据所述至少一个关键字生成关键字列表;以及将关键字列表通过所述语法树进行关系关联,生成关键字列表树,并将所述关键字列表树发送给所述执行器。
执行模块640,具体还用于接收所述关键字列表树,并执行所述关键字列表树中每个关键字的逻辑,得到所述执行结果。
可选的,在本实施例的又一种具体的实施方式中,执行模块640,具体用于遍历所述关键字列表树上的每一个关键字,按照系统内部为每个关键字预制的执行逻辑进行运算,输出每个所述关键字的运算结果;当所有所述关键字都被执行完毕时,按照所述DSL语句中指定的每个所述运算结果之间的逻辑关系,汇总生成所述执行结果。
本实施例提供的装置,基于GFC自定义的DSL语句,使得审查语句随时修改,从而有效支撑数据审查国标、地标、行标、企标等快速实施;并且相关专业人员可将本技术方案应用于BIM模型审查领域,从而实现自主灵活的制定审查规则,解决了BIM模型合规性审查的审查路线无法自由修改的问题。
本实施例中的语句处理装置是以功能模块的形式来呈现,这里的模块可以是一种ASIC(Application Specific Integrated Circuit)专用集成电路,用于执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本发明实施例还提供一种电子设备,包含上述图6所示的语句处理装置。
请参阅图7,是本发明实施例提供的一种电子设备的结构示意图,如图7所示,该电子设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。
其中,各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。
在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图7中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,所述存储器20存储有可由至少一个处理器10执行的指令,以使所述至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据一种小程序落地页的展现的计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括输入装置30和输出装置40。处理器10、存储器20、输入装置30和输出装置40可以通过总线或者其他方式连接,图7中以通过总线连接为例。
输入装置30可接收输入的数字或字符信息,以及产生与该计算机设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等。输出装置40可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。上述显示设备包括但不限于液晶显示器,发光二极管,显示器和等离子体显示器。在一些可选的实施方式中,显示设备可以是触摸屏。
此外,上述电子设备还包括至少一个通信接口,用于该电子设备与其他设备或通信网络通信。
可选的,上述电子设备可以是一种客户端,比如智能手机、平板电脑Pad、个人计算机PC等。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。
其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的语句处理方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种基于建筑数据交换标准的语句处理方法,其特征在于,应用于一种客户端,所述方法包括:
获取基于建筑数据交换标准定义的领域特定语言DSL语句;
解析所述DSL语句得到至少一个关键字,所述至少一个关键字包括:数值、操作符、属性和构件主体;
利用预定义的语法树对所述至少一个关键字的语义和语法进行检查;
若检查每个所述关键字的语义和语法均正确,则通过预设接口执行每个所述关键字的逻辑,得到执行结果;
将所述执行结果输出给外部设备。
2.根据权利要求1所述的方法,其特征在于,所述解析所述DSL语句得到至少一个关键字,包括:
按照语法定义的规则对所述DSL语句进行词句切分,得到所述至少一个关键字。
3.根据权利要求1所述的方法,其特征在于,所述客户端包括解析器,所述DSL语句按照预定的审查规则撰写生成;
所述利用预定义的语法树对所述至少一个关键字的语法和语义进行检查,包括:
所述解析器通过遍历所述语法树检查所述审查规则中是否存在语法错误,以及,分析所述审查规则的语义是否正确。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
如果存在语法错误或者语义错误,则所述解析器确定发生错误的关键字或错误语法,并报错显示所述关键字或所述语法。
5.根据权利要求3所述的方法,其特征在于,所述客户端还包括执行器;
所述解析所述DSL语句得到至少一个关键字之后,还包括:
所述解析器根据所述至少一个关键字生成关键字列表;
所述若检查每个所述关键字的语法和语义均正确,则通过预设接口执行每个所述关键字的逻辑,得到执行结果,包括:
所述解析器将所述关键字列表通过所述语法树进行关系关联,生成关键字列表树,并将所述关键字列表树发送给所述执行器;
所述执行器接收所述关键字列表树,并执行所述关键字列表树中每个关键字的逻辑,得到所述执行结果。
6.根据权利要求5所述的方法,其特征在于,所述执行所述关键字列表树中每个关键字的逻辑,得到所述执行结果,包括:
所述执行器遍历所述关键字列表树上的每一个关键字,按照系统内部为每个关键字预制的执行逻辑进行运算,输出每个所述关键字的运算结果;
当所有所述关键字都被执行完毕时,按照所述DSL语句中指定的每个所述运算结果之间的逻辑关系,汇总生成所述执行结果。
7.根据权利要求3所述的方法,其特征在于,所述解析器是基于开源技术框架生成,用于读取、处理、执行或翻译结构化文本或二进制文件。
8.一种基于建筑数据交换标准的语句处理装置,其特征在于,所述装置包括:
获取模块,用于获取基于建筑数据交换标准定义的领域特定语言DSL语句;
解析模块,用于解析所述DSL语句得到至少一个关键字,所述至少一个关键字包括:数值、操作符、属性和构件主体;
检查模块,用于利用预定义的语法树对所述至少一个关键字的语义和语法进行检查;
执行模块,用于在所述检查模块检查每个所述关键字的语法和语义均正确时,通过预设接口执行每个所述关键字的逻辑,得到执行结果;
传输模块,用于将所述执行结果输出给外部设备。
9.一种电子设备,其特征在于,包括处理器和存储器,所述处理器和所述存储器耦合,所述存储器中存储有计算机可读程序指令;
当所述处理器读取所述存储器中的指令时,执行如权利要求1至7中任一所述的基于建筑数据交换标准的语句处理方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,
当所述计算机程序被处理器执行时,实现如权利要求1至7中任一所述的基于建筑数据交换标准的语句处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311166978.0A CN117215535A (zh) | 2023-09-11 | 2023-09-11 | 一种基于建筑数据交换标准的语句处理方法、装置和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311166978.0A CN117215535A (zh) | 2023-09-11 | 2023-09-11 | 一种基于建筑数据交换标准的语句处理方法、装置和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117215535A true CN117215535A (zh) | 2023-12-12 |
Family
ID=89045612
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311166978.0A Pending CN117215535A (zh) | 2023-09-11 | 2023-09-11 | 一种基于建筑数据交换标准的语句处理方法、装置和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117215535A (zh) |
-
2023
- 2023-09-11 CN CN202311166978.0A patent/CN117215535A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8516458B2 (en) | System representation and handling techniques | |
US8850414B2 (en) | Direct access of language metadata | |
CN107704382B (zh) | 面向Python的函数调用路径生成方法和系统 | |
US20140325491A1 (en) | Transformation of computer programs and eliminating errors | |
US20070050704A1 (en) | XML compiler that will generate an application specific XML parser | |
CN108255837B (zh) | 一种sql解析器及方法 | |
CN106951305B (zh) | 一种基于模型转换由QVT-R语言生成midCore脚本的方法 | |
CN110673854A (zh) | Sas语言编译方法、装置、设备及可读存储介质 | |
CN108037913B (zh) | xUML4MC模型到MSVL语言程序的转换方法、计算机可读存储介质 | |
CN114840196B (zh) | Modelica语言模型处理方法、设备和存储介质 | |
Angelov et al. | PGF: A portable run-time format for type-theoretical grammars | |
Lee | Building environment rule and analysis (BERA) language | |
CN117113347A (zh) | 一种大规模代码数据特征提取方法及系统 | |
CN115202626A (zh) | 一种支持多技术栈组件的低代码前端开发方法 | |
Jiang et al. | Automatic building information model query generation | |
CN102298552A (zh) | 基于代码查询进行源代码插桩的方法 | |
CN108932225B (zh) | 用于将自然语言需求转换成为语义建模语言语句的方法和系统 | |
US8434071B2 (en) | Method for translating a graphical workflow in a textual description | |
Couto et al. | Application of ontologies in identifying requirements patterns in use cases | |
Savic et al. | Use case specification at different levels of abstraction | |
CN114064601A (zh) | 存储过程转换方法、装置、设备和存储介质 | |
JP7344259B2 (ja) | 深層学習フレームワークにおけるパターン変換方法、装置、電子デバイス、コンピューター記憶媒体およびコンピュータープログラム製品 | |
CN117215535A (zh) | 一种基于建筑数据交换标准的语句处理方法、装置和设备 | |
CN110737431A (zh) | 软件开发方法、开发平台、终端设备及存储介质 | |
WO2009106843A2 (en) | System representation and handling techniques |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |