一种高级企业应用编程语言的数据血缘挖掘方法及装置制造方法及图纸

技术编号:35562870 阅读:19 留言:0更新日期:2022-11-12 15:46
本申请公开了一种高级企业应用编程语言的数据血缘挖掘方法及装置,数据血缘挖掘方法包括:对高级企业应用编程语言的代码进行分词处理,获得标记列表;其中,分词处理以词和符号为最小单位进行划分;依据巴科斯范式的语法规则对标记列表进行解析,获得语义表达式列表,语义表达式列表包括语法关键字和语法内容;依据巴科斯范式的语法规则对语义表达式列表进行格式化,获得语义表达式字典列表;解析语义表达式字典列表,创建节点,寻找不同节点之间的血缘关系并保存。本申请对ABAP程序代码进行细粒度的分词处理,并以此为基础进行语义解析,最终获得数据之间的关联关系,确定节点之间的血缘关系。间的血缘关系。间的血缘关系。

【技术实现步骤摘要】
一种高级企业应用编程语言的数据血缘挖掘方法及装置


[0001]本申请涉及数据处理
,更具体地,涉及一种高级企业应用编程语言的数据血缘挖掘方法及装置。

技术介绍

[0002]高级企业应用编程语言(Advanced Business Application Programming,ABAP)是一种基于广泛使用的管理软件SAP平台的高级开发语言,经常被用于帮助大型公司在大型机上建立原材料管理和财务会计管理商务应用的平台。另一方面,在海量的数据被数字生产服务所收集、存储和处理的背景下,数据血缘作为一种高效的数据本身与数据关系的描述方法,可以有效地帮助企业工作人员对数据之间的如产生、计算、流转、引用等关系进行分析与建模,进而降低实现业务逻辑的复杂性、应用程序的维护成本以及可扩展性成本。因此,挖掘ABAP代码及其数据血缘关系是一个非常具有商业价值的任务。
[0003]作为一种高级开发语言,ABAP语言拥有丰富的语法规则,但是尚无开源方法对ABAP程序源码进行完整解析来获得数据之间的血缘关系。

技术实现思路

[0004]本申请提供一种高级企业应用编程语言的数据血缘挖掘方法及装置,对ABAP程序代码进行细粒度的分词处理,并以此为基础进行语义解析,最终获得数据之间的关联关系,确定节点之间的血缘关系。
[0005]本申请提供了一种高级企业应用编程语言的数据血缘挖掘方法,包括:
[0006]对高级企业应用编程语言的代码进行分词处理,获得标记列表;其中,分词处理以词和符号为最小单位进行划分;r/>[0007]依据巴科斯范式的语法规则对标记列表进行解析,获得语义表达式列表,语义表达式列表包括语法关键字和语法内容;
[0008]依据巴科斯范式的语法规则对语义表达式列表进行格式化,获得语义表达式字典列表;
[0009]解析语义表达式字典列表,创建节点,寻找不同节点之间的血缘关系并保存。
[0010]优选地,对高级企业应用编程语言的代码进行分词处理,获得标记列表,具体包括:
[0011]逐词逐符号地遍历高级企业应用编程语言的代码,以指定符号为分词节点,将相邻两个指定节点之间的词以及在后的指定节点组成一条标记或一条注释,并加入标记列表,指定符号不包括换行符。
[0012]优选地,当遍历到存在歧义的符号时,基于上下文内容以及语料库对操作符的多种分词方式进行语义距离的比较,将最小语义距离对应的分词方式作为分词结果。
[0013]优选地,依据巴科斯范式的语法规则对标记列表进行解析,获得语义表达式列表,具体包括:
[0014]对于包含结束符的代码,以结束符为语义分割节点,依据巴科斯范式的语法规则将代码分解成至少一个语义表达式,并加入语义表达式列表。
[0015]优选地,依据巴科斯范式的语法规则对语义表达式列表进行格式化,获得语义表达式字典列表,具体包括:
[0016]遍历语义表达式列表,依据巴科斯范式的语法规则形成包括多个关键字字典的关键字字典列表,关键字字典包括与关键字相关的语法规则描述;
[0017]按照关键字字典列表将语义表达式列表进行标准化处理,形成对应的格式化表达式,作为语义表达式字典,并加入语义表达式字典列表。
[0018]优选地,解析语义表达式字典列表,创建节点,寻找不同节点之间的血缘关系,具体包括:
[0019]依据语义表达式字典中的关键字的类型确定语义表达式字典的解析路径;
[0020]依据解析路径解析语义表达式字典,创建与关键字的类型对应的节点,并依据关键字的含义挖掘语义表达式字典内以及不同的语义表达式字典之间的不同节点之间的数据血缘关系,形成节点

关系

节点三元组关系。
[0021]本申请还提供一种高级企业应用编程语言的数据血缘挖掘装置,包括分词模块、语义表达式生成模块、语义表达式字典生成模块以及数据血缘挖掘模块;
[0022]分词模块用于对高级企业应用编程语言的代码进行分词处理,获得标记列表;其中,分词处理以词和符号为最小单位进行划分;
[0023]语义表达式生成模块用于依据巴科斯范式的语法规则对标记列表进行解析,获得语义表达式列表,语义表达式列表包括语法关键字和语法内容;
[0024]语义表达式字典生成模块用于依据巴科斯范式的语法规则对语义表达式列表进行格式化,获得语义表达式字典列表;
[0025]数据血缘挖掘模块用于解析语义表达式字典列表,创建节点,寻找不同节点之间的血缘关系并保存。
[0026]优选地,分词模块包括节点划分模块,节点划分模块用于逐词逐符号地遍历高级企业应用编程语言的代码,以指定符号为分词节点,将相邻两个指定节点之间的词以及在后的指定节点组成一条标记或一条注释,并加入标记列表,指定符号不包括换行符。
[0027]优选地,语义表达式字典生成模块包括关键字字典列表获得模块和标准化模块;
[0028]关键字字典列表获得模块用于遍历语义表达式列表,依据巴科斯范式的语法规则形成包括多个关键字字典的关键字字典列表,关键字字典包括与关键字相关的语法规则描述;
[0029]标准化模块用于按照关键字字典列表将语义表达式列表进行标准化处理,形成对应的格式化表达式,作为语义表达式字典,并加入语义表达式字典列表。
[0030]优选地,数据血缘挖掘模块包括解析路径确定模块、解析模块;
[0031]解析路径确定模块用于依据语义表达式字典中的关键字的类型确定语义表达式字典的解析路径;
[0032]解析模块用于依据解析路径解析语义表达式字典,创建与关键字的类型对应的节点,并依据关键字的含义挖掘语义表达式字典内以及不同的语义表达式字典之间的不同节点之间的数据血缘关系,形成节点

关系

节点三元组关系。
[0033]通过以下参照附图对本申请的示例性实施例的详细描述,本申请的其它特征及其优点将会变得清楚。
附图说明
[0034]被结合在说明书中并构成说明书的一部分的附图示出了本申请的实施例,并且连同其说明一起用于解释本申请的原理。
[0035]图1为本申请提供的高级企业应用编程语言的数据血缘挖掘方法的流程图;
[0036]图2为本申请提供的在不包含结束符的情况下获得语义表达式列表的优选实施例的流程图;
[0037]图3为数据表达式中的数据血缘关系示意图;
[0038]图4为类数据就节点的数据血缘关系示意图;
[0039]图5为本申请提供的高级企业应用编程语言的数据血缘挖掘装置的结构示意图。
具体实施方式
[0040]现在将参照附图来详细描述本申请的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本申请的范围。
[0041]以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本申请及其应用或使用的任何本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种高级企业应用编程语言的数据血缘挖掘方法,其特征在于,包括:对高级企业应用编程语言的代码进行分词处理,获得标记列表;其中,分词处理以词和符号为最小单位进行划分;依据巴科斯范式的语法规则对所述标记列表进行解析,获得语义表达式列表,所述语义表达式列表包括语法关键字和语法内容;依据巴科斯范式的语法规则对所述语义表达式列表进行格式化,获得语义表达式字典列表;解析所述语义表达式字典列表,创建节点,寻找不同节点之间的血缘关系并保存。2.根据权利要求1所述的高级企业应用编程语言的数据血缘挖掘方法,其特征在于,对高级企业应用编程语言的代码进行分词处理,获得标记列表,具体包括:逐词逐符号地遍历所述高级企业应用编程语言的代码,以指定符号为分词节点,将相邻两个指定节点之间的词以及在后的指定节点组成一条标记或一条注释,并加入标记列表,所述指定符号不包括换行符。3.根据权利要求2所述的高级企业应用编程语言的数据血缘挖掘方法,其特征在于,当遍历到存在歧义的符号时,基于上下文内容以及语料库对操作符的多种分词方式进行语义距离的比较,将最小语义距离对应的分词方式作为分词结果。4.根据权利要求1所述的高级企业应用编程语言的数据血缘挖掘方法,其特征在于,依据巴科斯范式的语法规则对所述标记列表进行解析,获得语义表达式列表,具体包括:对于包含结束符的代码,以结束符为语义分割节点,依据巴科斯范式的语法规则将所述代码分解成至少一个语义表达式,并加入语义表达式列表。5.根据权利要求1所述的高级企业应用编程语言的数据血缘挖掘方法,其特征在于,依据巴科斯范式的语法规则对所述语义表达式列表进行格式化,获得语义表达式字典列表,具体包括:遍历所述语义表达式列表,依据巴科斯范式的语法规则形成包括多个关键字字典的关键字字典列表,所述关键字字典包括与关键字相关的语法规则描述;按照所述关键字字典列表将所述语义表达式列表进行标准化处理,形成对应的格式化表达式,作为语义表达式字典,并加入所述语义表达式字典列表。6.根据权利要求1所述的高级企业应用编程语言的数据血缘挖掘方法,其特征在于,解析所述语义表达式字典列表,创建节点,寻找不同节点之间的血缘关系,具体包括:依据语义表达式字典中的关键字的类型确定所述语义表达式字典的解析路径;依据所述解析路径解析所述语义表达式字典,创建与所述关键字的类型对应的节点,并依据所述关键字的含义挖掘语义表达式字典内以...

【专利技术属性】
技术研发人员:金泳楼卫东高扬华
申请(专利权)人:浙江中烟工业有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1