基于元模型的Modelica模型解析与语义重构方法及系统与流程
本技术涉及基于模型的系统工程(mbse)和语义网技术的交叉领域,具体涉及一种基于元模型的modelica模型解析与语义重构方法及系统。
背景技术:
1、modelica语言由modelica协会自1997年起制定和维护,目前主流版本为modelica3.6(2023年发布),已被国际自动控制联合会(international federation of automaticcontrol,ifac)和国际电工委员会(international electrotechnical commission,iec)推荐为多领域物理系统建模的标准语言,广泛应用于航空航天、汽车工业、能源系统、机器人控制及建筑节能等领域的系统级建模。随着基于模型的系统工程(model-based systemsengineering,mbse)方法论在复杂产品研制中的深入推广,系统模型的可追溯性、可验证性和跨工具互操作性已成为行业刚性需求。
2、modelica语言具有复杂的语法特性,包括多重继承、泛型类型、数组维度、条件表达式、可变结构参数等,使得对其模型文件的解析和理解具有较高的技术门槛。现有技术在处理modelica模型时主要面临以下挑战:
3、第一,语法耦合较为紧密。传统解析方式通常与modelica具体语法强耦合,当语言规范升级或存在不同仿真厂商的方言扩展时,解析器往往需要大量修改,维护成本较高。
4、第二,语义表达缺乏统一标准。不同仿真工具(如dymola、openmodelica、simulationx等)对同一modelica模型可能产生不同的内部数据表达,导致模型语义在不同工具链之间难以对齐。
5、第三,互操作性有待提升。现有方案多聚焦于单一工具的模型管理,缺乏面向跨工具语义推理的技术手段,难以支撑mbse全生命周期中的需求追溯、设计验证和变更影响分析。
6、第四,本体语义支撑不足。目前尚缺少面向modelica语言的专有元模型定义,以及从语法解析到owl本体语义映射的完整自动化技术方案。部分现有方案依赖人工建模,难以适应大规模模型库场景。
7、申请号为cn202411834875的发明专利申请公开了一种基于antlr4的modelica语法解析方法,但该方案仅实现了语法层面的解析,未建立独立于语法的元模型抽象层,也未实现从模型对象到owl本体的自动化映射;vtt技术报告中的modelica-to-owl方案虽涉及语义转换,但依赖人工建模,缺乏自动化处理能力。上述现有技术均未形成"元模型定义—语法解析—语义映射—标准化发布"的完整自动化技术链路,在语义互操作性方面存在改进空间。
技术实现思路
1、有鉴于此,本发明提供了一种基于元模型的modelica模型解析与语义重构方法及系统,以解决现有技术中modelica模型解析与具体语法强耦合、缺乏统一语义表达标准、跨工具互操作性不足以及本体语义支撑薄弱的问题。
2、根据本发明第一方面,提供了一种基于元模型的modelica模型解析与语义重构方法,包括以下步骤:
3、步骤s101:定义modelica语言的抽象元模型,所述抽象元模型包括模型类、包类、连接器类、块类、参数类、组件类和继承关系类,以面向对象方式表达modelica语言的核心语义概念,形成与具体语法无关的中间表示层;
4、步骤s102:采用antlr4工具,基于modelica语言规范编写词法规则文件和语法规则文件,生成对应的词法分析器和语法分析器;将modelica源文件输入所述词法分析器进行词法分析,将字符流转换为token流;再将所述token流输入所述语法分析器进行语法分析,生成抽象语法树ast;
5、步骤s103:遍历所述抽象语法树,根据预设的语法节点识别规则和映射规则,将符合规则的ast节点转换为步骤s1中定义的所述元模型类的实例对象,构建层次化的元模型对象图;
6、其中,所述预设的语法节点识别规则包括:从ast根节点出发,递归遍历所有类定义节点;提取类前缀字段确定当前模型元素的类型;提取类体字段获取类体元素列表;遍历元素列表,分别处理继承子句、组件参数声明和嵌套的类定义;对于继承子句提取继承目标路径建立extendsrelationship记录;对于组件参数声明提取类型前缀、类型说明符、数组下标、修饰符和注释字段;
7、步骤s104:基于预设的owl本体映射规则,将步骤s103构建的所述元模型对象图转换为owl/rdf语义断言,生成具有统一语义的owl本体。
8、本发明第二方面,提供了一种基于元模型的modelica模型解析与语义重构系统,包括:
9、元模型定义模块,用于定义并存储modelica语言的抽象元模型;
10、解析模块,用于采用antlr4工具对modelica源文件进行词法分析和语法分析生成ast;
11、元模型构建模块,用于从ast根节点出发,递归遍历所有类定义节点,提取类前缀字段确定模型元素类型,提取类体字段获取类体元素列表。遍历每个元素,分别处理继承子句(建立extendsrelationship并过滤modelica标准库继承)、组件参数声明(提取类型前缀、类型说明符、数组下标、修饰符和注释字段,执行参数三分类判定)和嵌套类定义(递归处理),形成层次化元模型对象图;
12、owl重构模块,用于基于owl本体映射规则将元模型对象图转换为owl/rdf语义断言;
13、存储模块,用于持久化存储元模型对象图和owl/rdf语义断言。
14、本发明第三方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,所述计算机程序被所述处理器执行时,实现如前述任一项所述的基于元模型的modelica模型解析与语义重构方法的步骤。
15、本发明第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如前述任一项所述的基于元模型的modelica模型解析与语义重构方法的步骤。
16、本发明与现有技术相比存在的有益效果包括以下五个方面:
17、第一,语法解耦,可扩展性强。通过引入元模型抽象层,将具体modelica语法(antlr4生成的ast)与模型语义表达(元模型对象)彻底分离,元模型类的定义与语法解析器生成的语法树节点类之间不存在继承或依赖关系。当modelica语言规范升级或需要适配不同仿真厂商的方言扩展时,仅需调整antlr4的.g4语法规则文件并重新生成解析器,无需修改元模型定义和下游的owl重构逻辑。
18、第二,统一语义表达,支持智能推理。基于w3c标准的owl本体表达modelica模型的语义信息,使得模型的类型关系、参数约束、继承结构和物理单位等可被标准rdf推理引擎(如apache jena、pellet、hermit)进行逻辑推理,可被sparql查询语言进行语义检索,实现了从"语法级模型管理"到"语义级模型管理"的跨越。
19、第三,跨工具互操作,支撑mbse全生命周期。通过oslc标准接口暴露owl本体,dymola、openmodelica、simulationx等不同仿真工具可通过统一的restful api访问和查询模型语义信息,实现仿真工具链之间的模型语义互通,对于mbse全生命周期的需求追溯、设计验证和变更影响分析具有重要价值。
20、第四,解析精度高,覆盖复杂场景。参数三分类机制解决了模型参数语义歧义问题,protected代码过滤排除了非语义信息的干扰,继承关系的标准库过滤和自动传递处理确保了继承语义的完整性和本体的简洁性,package.order排序和数组维度处理保证了与主流建模工具的兼容性。经实验验证,本技术方法在航空发动机控制系统(enginecontrol.mo,含47个模型类、312个参数)的解析中,完整提取率达100%,参数三分类准确率达98.7%,owl本体生成耗时约2.3秒,相比人工建模方式效率提升约40倍。
21、第五,技术方案完整,可直接工程化。本技术从元模型定义、antlr4解析、ast映射、owl语义重构到oslc服务暴露提供了覆盖全技术链路的明确技术手段和实现方法,每个步骤均基于成熟的开源框架(antlr4、apache jena、eclipse lyo),可直接指导工程实现。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com