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

文档序号:32159012发布日期:2022-11-12 01:39阅读:38来源:国知局
1.本技术涉及数据处理
技术领域
:,更具体地,涉及一种高级企业应用编程语言的数据血缘挖掘方法及装置。
背景技术
::2.高级企业应用编程语言(advancedbusinessapplicationprogramming,abap)是一种基于广泛使用的管理软件sap平台的高级开发语言,经常被用于帮助大型公司在大型机上建立原材料管理和财务会计管理商务应用的平台。另一方面,在海量的数据被数字生产服务所收集、存储和处理的背景下,数据血缘作为一种高效的数据本身与数据关系的描述方法,可以有效地帮助企业工作人员对数据之间的如产生、计算、流转、引用等关系进行分析与建模,进而降低实现业务逻辑的复杂性、应用程序的维护成本以及可扩展性成本。因此,挖掘abap代码及其数据血缘关系是一个非常具有商业价值的任务。3.作为一种高级开发语言,abap语言拥有丰富的语法规则,但是尚无开源方法对abap程序源码进行完整解析来获得数据之间的血缘关系。技术实现要素:4.本技术提供一种高级企业应用编程语言的数据血缘挖掘方法及装置,对abap程序代码进行细粒度的分词处理,并以此为基础进行语义解析,最终获得数据之间的关联关系,确定节点之间的血缘关系。5.本技术提供了一种高级企业应用编程语言的数据血缘挖掘方法,包括:6.对高级企业应用编程语言的代码进行分词处理,获得标记列表;其中,分词处理以词和符号为最小单位进行划分;7.依据巴科斯范式的语法规则对标记列表进行解析,获得语义表达式列表,语义表达式列表包括语法关键字和语法内容;8.依据巴科斯范式的语法规则对语义表达式列表进行格式化,获得语义表达式字典列表;9.解析语义表达式字典列表,创建节点,寻找不同节点之间的血缘关系并保存。10.优选地,对高级企业应用编程语言的代码进行分词处理,获得标记列表,具体包括:11.逐词逐符号地遍历高级企业应用编程语言的代码,以指定符号为分词节点,将相邻两个指定节点之间的词以及在后的指定节点组成一条标记或一条注释,并加入标记列表,指定符号不包括换行符。12.优选地,当遍历到存在歧义的符号时,基于上下文内容以及语料库对操作符的多种分词方式进行语义距离的比较,将最小语义距离对应的分词方式作为分词结果。13.优选地,依据巴科斯范式的语法规则对标记列表进行解析,获得语义表达式列表,具体包括:14.对于包含结束符的代码,以结束符为语义分割节点,依据巴科斯范式的语法规则将代码分解成至少一个语义表达式,并加入语义表达式列表。15.优选地,依据巴科斯范式的语法规则对语义表达式列表进行格式化,获得语义表达式字典列表,具体包括:16.遍历语义表达式列表,依据巴科斯范式的语法规则形成包括多个关键字字典的关键字字典列表,关键字字典包括与关键字相关的语法规则描述;17.按照关键字字典列表将语义表达式列表进行标准化处理,形成对应的格式化表达式,作为语义表达式字典,并加入语义表达式字典列表。18.优选地,解析语义表达式字典列表,创建节点,寻找不同节点之间的血缘关系,具体包括:19.依据语义表达式字典中的关键字的类型确定语义表达式字典的解析路径;20.依据解析路径解析语义表达式字典,创建与关键字的类型对应的节点,并依据关键字的含义挖掘语义表达式字典内以及不同的语义表达式字典之间的不同节点之间的数据血缘关系,形成节点-关系-节点三元组关系。21.本技术还提供一种高级企业应用编程语言的数据血缘挖掘装置,包括分词模块、语义表达式生成模块、语义表达式字典生成模块以及数据血缘挖掘模块;22.分词模块用于对高级企业应用编程语言的代码进行分词处理,获得标记列表;其中,分词处理以词和符号为最小单位进行划分;23.语义表达式生成模块用于依据巴科斯范式的语法规则对标记列表进行解析,获得语义表达式列表,语义表达式列表包括语法关键字和语法内容;24.语义表达式字典生成模块用于依据巴科斯范式的语法规则对语义表达式列表进行格式化,获得语义表达式字典列表;25.数据血缘挖掘模块用于解析语义表达式字典列表,创建节点,寻找不同节点之间的血缘关系并保存。26.优选地,分词模块包括节点划分模块,节点划分模块用于逐词逐符号地遍历高级企业应用编程语言的代码,以指定符号为分词节点,将相邻两个指定节点之间的词以及在后的指定节点组成一条标记或一条注释,并加入标记列表,指定符号不包括换行符。27.优选地,语义表达式字典生成模块包括关键字字典列表获得模块和标准化模块;28.关键字字典列表获得模块用于遍历语义表达式列表,依据巴科斯范式的语法规则形成包括多个关键字字典的关键字字典列表,关键字字典包括与关键字相关的语法规则描述;29.标准化模块用于按照关键字字典列表将语义表达式列表进行标准化处理,形成对应的格式化表达式,作为语义表达式字典,并加入语义表达式字典列表。30.优选地,数据血缘挖掘模块包括解析路径确定模块、解析模块;31.解析路径确定模块用于依据语义表达式字典中的关键字的类型确定语义表达式字典的解析路径;32.解析模块用于依据解析路径解析语义表达式字典,创建与关键字的类型对应的节点,并依据关键字的含义挖掘语义表达式字典内以及不同的语义表达式字典之间的不同节点之间的数据血缘关系,形成节点-关系-节点三元组关系。33.通过以下参照附图对本技术的示例性实施例的详细描述,本技术的其它特征及其优点将会变得清楚。附图说明34.被结合在说明书中并构成说明书的一部分的附图示出了本技术的实施例,并且连同其说明一起用于解释本技术的原理。35.图1为本技术提供的高级企业应用编程语言的数据血缘挖掘方法的流程图;36.图2为本技术提供的在不包含结束符的情况下获得语义表达式列表的优选实施例的流程图;37.图3为数据表达式中的数据血缘关系示意图;38.图4为类数据就节点的数据血缘关系示意图;39.图5为本技术提供的高级企业应用编程语言的数据血缘挖掘装置的结构示意图。具体实施方式40.现在将参照附图来详细描述本技术的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本技术的范围。41.以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本技术及其应用或使用的任何限制。42.对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,技术、方法和设备应当被视为说明书的一部分。43.在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。44.本技术提供一种高级企业应用编程语言的数据血缘挖掘方法及装置,对abap程序代码进行细粒度的分词处理,并以此为基础进行语义解析,最终获得数据之间的关联关系,确定节点之间的血缘关系。45.实施例一46.如图1所示,高级企业应用编程语言的数据血缘挖掘方法包括:47.s110:对高级企业应用编程语言的代码进行分词处理,获得标记列表;其中,分词处理以词和符号为最小单位进行划分。48.需要说明的是,传统的分词方式难以完全分词,如对于代码:《l_record_no》=《_ys_sc_1》-record,传统的分词方式将该句代码切分为(《l_record_no》、=、《_ys_sc_1》、-、-record.)五个部分,在后续进行数据血缘分析时,该段代码的血缘关系会被分析为“《l_record_no》”字段由“《_ys_sc_1》”字段与“record”字段相减得来,而该代码的实际语义为“《l_record_no》”字段等于“《_ys_sc_1》”字段的“record”值。49.基于上述考虑,本技术的s110中,逐词逐符号地遍历高级企业应用编程语言的代码,以指定符号为分词节点,将相邻两个指定节点之间的词以及在后的指定节点组成一条标记或一条注释,并加入标记列表,指定符号不包括换行符。50.作为一个实施例,s110包括如下步骤:51.s1101:初始化标记捕获器和中文注释捕获器以及结果列表,其中,标记捕获器用于捕集代码中注释内容之外的代码项,中文注释捕集器用于捕集中文注释内容。该步骤中,初始化是指将标记捕获器、中文注释捕获器或结果列表更新为空集合。52.s1102:逐词逐符号地遍历高级企业应用编程语言的代码,依据指定规则进行词和符号的划分和整理。具体地:53.1、当遍历到空格时,标记捕获器将已捕获的词加入标记列表,并重新初始化标记捕获器,由此,标记捕获器当前捕获的空格之前的词形成了一条标记。54.2、当遍历到“,”或者“.”(二者属于指定符号)时,将已捕获的词和“,”或者“.”加入标记列表,并重新初始化token捕获器,由此,标记捕获器当前捕获的词与“,”或者“.”形成了一条标记。55.3、当遍历到“+,*,/,=》”(这些属于指定符号)等无歧义的操作符时,将已捕获的词和操作符加入标记列表,并重新初始化token捕获器,由此,这些操作符与标记捕获器当前捕获的词形成了一条标记。56.4、当遍历到“‑,-》”等有歧义的操作符时,对操作符的多种分词方式进行语义距离的比较,将最小语义距离对应的分词方式作为分词结果。57.在进行判断时,结合上下文内容,及已有的abap代码内容语料库,判断方法可以简化表示为:[0058][0059]其中:[0060]dis(vki)=∑(xki-xkil)2[0061]其中,假设在歧义情况下,共有n种分词方式,记为1,2,3…n,vk为第k种分词方式,每种分词方式由一个词列表组成,vki为第k种分词方式中的第i个词,遍历每种分词方式中的每个词,获得每个词与上下文的距离dis(vki),每种分词方式中所有词与上下文的距离的和为该种分词方式的距离。result为经过距离比较后最终所选择的分词方式。[0062]dis(vki)中,xki为第k种分词方式中的第i个词的位置,xkil为最初定义时xki的第l个上下文(例如前面和后面两个词)在文中的位置。通过该方法,可充分考量代码上下文关系,避免解析到歧义语句。[0063]5、当遍历到“\n”时,将“\n”加入标记列表,由此换行符“\n”形成了一条标记。[0064]6、当遍历到生成的中文注释内容时,利用中文注释捕集器识别并捕获对应的中文,当遍历到“*”(属于指定符号)号时,将中文注释加入标记列表,并初始化中文注释捕获器,由此中文注释捕集器当前捕集到的中文内容形成了一条注释。[0065]当完成代码中所有词和符号的遍历和划分后,即可形成标记列表。[0066]s120:依据巴科斯范式(bnf范式)的语法规则对标记列表进行解析,获得语义表达式列表,语义表达式列表包括语法关键字和语法内容。[0067]该步骤中,对标记列表进行词段组合,将同属一个abap语句的代码项划分至同一个语义表达式中,最终生成若干个语义表达式列表。其中,语义表达式的第一个元素为语法关键字,后续元素则为语法表达式内容。若存在注释内容,则语义表达式的最后一项为代码注释。[0068]由于不同的语句有不同的语义关系,可以解析出不同的数据血缘,因此,需要对标记列表进行规范化处理。[0069]具体地,首先初始化语义表达式列表、表达列表以及前缀列表,然后依次遍历标记列表中的标记和注释。其中,表达列表用于在形成一个语义表达式的过程中临时存储获得的词,在满足语义表达式的要求后将获得的词组成一个语义表达式,并传输给语义表达式列表。[0070]具体地,作为一个实施例,对于包含结束符的代码,以结束符为语义分割节点,依据巴科斯范式的语法规则将代码分解成至少一个语义表达式,并加入语义表达式列表。[0071]具体地,在一条标记(例如关于定义参数的标记)中,当遍历到符号“:”时,将符号“:”之前的词加入前缀列表,并且使表达列表等于前缀列表,随后初始化表达列表,继续遍历符号“:”之后的内容。当遍历到其他字符(例如词)时,将字符直接加入表达列表。[0072]当遍历到符号“,”时,将前缀列表和表达列表(存储符号“:”与“,”之间的词)合并,形成一条语义表达式,将语义表达式加入语义表达式列表,并初始化表达列表;[0073]当遍历到符号“.”时,将前缀列表和表达列表合并,形成一条语义表达式,将语义表达式加入语义表达式列表,并初始化表达列表及前缀列表。[0074]在传统的方法下,会以行为单位进行分词,在行的末尾会有结束符,如“,”或“.”或“。”或“:”等符号,但在abap语言中,一部分语句在行末以“,”或“.”作为结束符,一部分语句却无结束符,通过换行的方式继续开始新的内容。例如:[0075][0076][0077]该段代码只有一个结束符“.”,若使用传统方式,该段代码将会被解析成一句语义表达式,无法正确识别代码中的关键字及对应语句,蕴含着不同血缘关系的代码语句就不会被分开解析,导致数据血缘内容的缺失。[0078]基于上述原因,本技术中,如图2所示,对于不包含结束符的代码,获得语义表达式列表,包括:[0079]s1201:将目标词与和目标词最近的终止符之间的词作为一个语义分析序列。[0080]s1202:判断语义分析序列是否满足巴科斯范式的语法规则。若是,则执行s1206:将该语义分析序列作为一个语义表达式;否则,执行s1203。[0081]s1203:自右向左进行语义匹配。具体地,自右向左逐词减少,同时判断减少后的第一序列是否满足语法规则,直至匹配到满足语法规则的序列,获得至少一个第一语义表达式和至少一个第一剩余词。[0082]具体地,从语义分析序列的右边开始,每减少一个词即判断获得的新序列是否满足巴科斯范式的某个语法描述。依次循环,直至匹配到最后一个词或者匹配到满足语法规则的序列,以此生成语义表达式。[0083]作为一个实施例,获得至少一个第一语义表达式和至少一个第一剩余词后,将至少一个第一语义表达式加入语义表达式列表。[0084]为避免过多匹配,即匹配语义表达式时,因为语法的可选择性,影响到下一条语义表达式的生成,优选地,若语义分析序列不满足巴科斯范式的语法规则,还包括:[0085]s1204:自左向右进行语义匹配。具体地,自左向右逐词减少,同时判断减少后的第二序列是否满足语法规则,直至匹配到满足语法规则的序列,获得至少一个第二语义表达式和至少一个第二剩余词。该步骤的方法与s1203相同。[0086]s1205:将第一剩余词和第二剩余词中较少者对应的匹配方式获得的语义表达式加入语义表达式列表。[0087]可以理解地,在该优选实施例中,步骤s1203和s1204可以颠倒顺序,也可以同时进行。[0088]在该步骤中,根据语法规则对分词结果进行初步的格式化解析,将蕴含数据血缘的代码语句转换成简单的语义表达式列表。[0089]s130:依据巴科斯范式的语法规则对语义表达式列表进行格式化,获得语义表达式字典列表。[0090]在该步骤中,根据abap语法规则,对语义表达式列表进行更进一步的格式化处理,将其转换成对应的语义表达式字典,以便于进行数据血缘的挖掘。[0091]具体地,首先依次遍历语义表达式列表中的语义表达式,根据语法规则生成关键字字典列表,初始化语义表达式字典列表。[0092]具体地,对于关键字,使用巴科斯范式所描述的语法规则内容进行规范化处理,生成关键字字典列表。[0093]例如,在abap语法中,描述数据定义的语法规则如下:[0094]data{vartype{{reftoref}|{{standardtableoftable}|{tableoftable}}|abap_type}[lengthlen][decimalsdec]}[0095][valueval|{isinitial+initial}][0096][read-only+readonly].[0097]在该段语法规则的描述中,“[]”中的内容代表为可选项,“{}”中的内容代表为可重复0至无限次的项,“|”代表左右两侧任选一项。[0098]在解析这段语法规则时,将语法规则按照空格进行分词,逐个词进行遍历,根据上述的规则进行匹配,将其转换成对应的关键字字典,如下所示:[0099]{'data':['data',['var','type',[('|',('|',['ref','to','ref'],[('|',['standard','table','of','table'],['table','of','table'])]),'abap_type')],('[',['length','len']),('[',['decimals','dec'])],('[',['value',('|','val',['is','initial','+initial'])]),('[',['read-only','+readonly'])]}[0100]关键字字典中,“data”为关键字,该关键字所对应的内容为关键字“data”所对应的语法规则描述。[0101]在完成对所有语法描述的解析后,会生成多个关键字字典形成的关键字字典列表。[0102]在遍历s120获得的语义表达式列表时,按照关键字字典列表将语义表达式列表进行标准化处理,形成对应的格式化表达式,作为语义表达式字典,并加入语义表达式字典列表。[0103]具体地,提取每一个语义表达式的第一个元素(语法关键字),根据所生成的关键字字典,选择对应的语法规则描述对语义表达式进行格式化处理。[0104]格式化处理时,针对语义表达式除第一个元素的剩余部分,根据所获得的语法规则描述,使用回溯法进行匹配,即:针对语义表达式除第一个元素的剩余部分,从语法规则的第一个元素开始与该剩余部分进行匹配,当有多种匹配方案时,先选择其中一种方案进行匹配,若此方案可完全匹配成功,则返回对应的匹配结果;如此方案匹配失败,则返回至选择时的状态,选择另外一种方案进行匹配,直至将语义表达式的剩余部分与语法规则完全匹配。匹配成功的格式化表达式作为该语义表达式的语义表达式字典,并加入语义表达式字典列表。[0105]在匹配过程中,具体包括:[0106]1、判断语义表达式列表的最后一项是否是代码注释,若是,则建立注释内容与关键字之间的字典关系,由此形成一条语义表达式字典。[0107]2、判断语义表达式中是否有符号“=”,若有,则使用递归的方法格式化“=”号左边和右边的内容,由此形成一条语义表达式字典。[0108]例如,对于abap代码语句[0109]result=x*x+y.[0110]在该语句中,描述了数据字段result和数据字段x及数据字段y之间的产生流转关系,在该步骤中,会将此句代码格式化为:[0111]('=',{'lhs':['result'],'rhs':['x','*','x','+','y']})[0112]其中“=”为关键字,“lhs”为等号左边内容,“rhs”为等号右边内容。[0113]3、对于数据的定义中,往往蕴含数据节点的初始化内容,比如对于abap代码语句:[0114]xtypei[0115]通过本步骤,即将其标准化处理为:[0116]('data',{'var':'x','abap_type':'i'})[0117]其中“data”为关键字,“var”为变量名称,“abap_type”为字段类型。[0118]同样的,对于其他abap语义表达式,本步骤将其格式化成相应的语义表达式字典。[0119]s140:解析语义表达式字典列表,创建节点,寻找不同节点之间的血缘关系并保存。根据语义表达式字典的关键字和内容进行节点的初始化和数据血缘的挖掘。[0120]解析语义表达式字典语义表达式字典列表,创建节点,寻找不同节点之间的血缘关系,具体包括:[0121]s1401:依据语义表达式字典中的关键字的类型确定语义表达式字典的解析路径。[0122]s1402:依据解析路径解析语义表达式字典,创建与关键字的类型对应的节点,并依据关键字的含义挖掘语义表达式字典内以及不同的语义表达式字典之间的不同节点之间的数据血缘关系,形成节点-关系-节点三元组关系。[0123]例如,当遍历到的关键字是“data”时,获取字典中的数据类型、变量名称、参照、是否唯一、是否只读等属性,根据这些属性创建数据节点。[0124]若语义表达式字典中有“table”字段,根据“table”字段的值,建立一个table数据节点,建立data数据节点与table数据节点的引用关系,形成一条数据血缘关系。[0125]若语义表达式字典中有“ref”字段,根据“ref”字段的值,建立data数据节点与ref对应的类的关系,形成一条数据血缘关系。[0126]若语义表达式字典中有“value”字段,根据“value”字段的值,新建并初始化一个常量节点,值为“value”字段的值,建立data数据节点与常量节点的关系,形成一条数据血缘关系。[0127]当遍历到的关键字是“data_begin”时,获取语义表达式字典中的结构体名称,初始化并创建一个结构体数据节点,并遍历结构体中子数据的语义表达式字典,初始化创建数据节点,并在结构体数据节点与结构体中的子数据节点之间建立从属关系,形成一条数据血缘关系。[0128]当遍历到的关键字是“move”时,获取语义表达式字典中的“move”的原始字段的数据节点和目标字段的数据节点,建立两个数据节点之间的赋值关系,形成一条数据血缘关系。[0129]当遍历到的关键字是“=”时,分别递归的获取等号的左边、右边所对应的数据节点,在两个数据节点之间建立相等关系,形成一条数据血缘关系。[0130]当解析复杂运算表达式时,根据运算优先级对复杂运算进行格式化处理。[0131]当处理两个数据节点之间的运算操作时,先递归获取操作左边以及右边的数据节点,后获取操作类型,并创建一个数据节点,该数据节点的名称为“左边数据名称_操作名称_右边数据名称”,建立该数据节点与左边数据节点、右边数据节点之间的关系,关系名称为运算的名称,并返回这个新创建的节点。图3示出了在abap代码中,数据表达式中的数据血缘关系示意图,有data1、data2、data3三个数据节点经过某种操作得到result数据节点,其中data3和data2之间的运算拥有优先级。[0132]当遍历到的关键字是“add”或“subtract”或“multiply”或、“divide”时,获取语义表达式字典中原始字段的数据节点和目标字段的数据节点,基于关键字类型建立两个数据节点之间关系,形成一条数据血缘关系。[0133]当遍历到的关键字是“if”时,获取字段中if所有的判断块和执行内容,遍历所有判断块,获取判断块的真假,并递归的执行判断为真的相应的内容,挖掘对应的数据血缘。[0134]当遍历到的关键字是“while”或“do”时,获取循环的次数或条件,并挖掘循环中的数据血缘关系,在数据血缘关系内容上加上循环的次数。[0135]遍历到的关键字是“class”时,初始化并新建一个class数据节点,并建立class节点和class中公开数据节点及私密数据节点的从属关系,形成一条数据血缘关系。[0136]图4示出了一个类数据节点class与其所对应的公开数据节点和私密数据节点的关系。在该类数据节点中,有数据1,数据2,....,数据k等公开属性的数据节点,有数据a,数据b,....,数据n等隐私属性的数据节点。[0137]在完成数据节点的初始化创建和数据血缘的挖掘后,将数据血缘描述成(节点ni,关系ri,j,节点nj)的三元组的关系,整理数据节点与数据节点之间的数据血缘关系,将节点和关系保存。[0138]优选地,通过图数据库(如neo4j)的方式存储数据节点以及数据节点之间的血缘关系。[0139]实施例二[0140]基于上述数据血缘挖掘方法,本技术还提供了一种高级企业应用编程语言的数据血缘挖掘装置。如图5所示,数据血缘挖掘装置包括分词模块510、语义表达式生成模块520、语义表达式字典生成模块530以及数据血缘挖掘模块540。[0141]分词模块510用于对高级企业应用编程语言的代码进行分词处理,获得标记列表;其中,分词处理以词和符号为最小单位进行划分。[0142]语义表达式生成模块520用于依据巴科斯范式的语法规则对标记列表进行解析,获得语义表达式列表,语义表达式列表包括语法关键字和语法内容。[0143]语义表达式字典生成模块530用于依据巴科斯范式的语法规则对语义表达式列表进行格式化,获得语义表达式字典列表。[0144]数据血缘挖掘模块540用于解析语义表达式字典列表,创建节点,寻找不同节点之间的血缘关系并保存。[0145]作为一个实施例,分词模块510包括节点划分模块5101,节点划分模块5101用于逐词逐符号地遍历高级企业应用编程语言的代码,以指定符号为分词节点,将相邻两个指定节点之间的词以及在后的指定节点组成一条标记或一条注释,并加入标记列表,指定符号不包括换行符。[0146]作为另一个实施例,分词模块510还包括歧义符号处理模块5102,歧义符号处理模块5102用于当遍历到存在歧义的符号时,基于上下文内容以及语料库对操作符的多种分词方式进行语义距离的比较,将最小语义距离对应的分词方式作为分词结果。[0147]作为一个实施例,语义表达式字典生成模块530包括关键字字典列表获得模块5301和标准化模块5302。[0148]关键字字典列表获得模块5301用于遍历语义表达式列表,依据巴科斯范式的语法规则形成包括多个关键字字典的关键字字典列表,关键字字典包括与关键字相关的语法规则描述。[0149]标准化模块5302用于按照关键字字典列表将语义表达式列表进行标准化处理,形成对应的格式化表达式,作为语义表达式字典,并加入语义表达式字典列表。[0150]作为一个实施例,数据血缘挖掘模块540包括解析路径确定模块5401、解析模块5402。[0151]解析路径确定模块5401用于依据语义表达式字典中的关键字的类型确定语义表达式字典的解析路径。[0152]解析模块5402用于依据解析路径解析语义表达式字典,创建与关键字的类型对应的节点,并依据关键字的含义挖掘语义表达式字典内以及不同的语义表达式字典之间的不同节点之间的数据血缘关系,形成节点-关系-节点三元组关系。[0153]本技术针对sap数据辅助决策平台中数据流转方式呈多样性、复杂性方法,提出一种可从abap代码解析并挖掘数据血缘的方法,该方法可自动化挖掘abap代码中各类数据的流转关系,提高了数据追溯、分析和拓展的效率。并且本技术通过图数据库保存,有助于可视化。[0154]虽然已经通过例子对本技术的一些指定实施例进行了详细说明,但是本领域的技术人员应该理解,以上例子仅是为了进行说明,而不是为了限制本技术的范围。本领域的技术人员应该理解,可在不脱离本技术的范围和精神的情况下,对以上实施例进行修改。本技术的范围由所附权利要求来限定。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1