一种基于知识图谱的审计方法和系统与流程

文档序号:23629216发布日期:2021-01-12 10:43阅读:202来源:国知局
一种基于知识图谱的审计方法和系统与流程
本发明涉及知识图谱
技术领域
,尤其涉及一种基于知识图谱的审计方法和系统。
背景技术
:当前企业的大数据背景(例如,员工报销系统数据、税收系统数据、企业资质数据、采购和销售数据)都需要人为来做审核,这样既费人力也容易出错。知识图谱技术作为人工智能技术的组成部分,其强大的语义处理和互联网组织能力,为智能化信息应用提供了基础。目前知识图谱主要应用于语义搜索、智能问答、个性化推荐、辅助决策等。上述应用目前对知识图谱的利用仅停留在通过关联关系给出其他关联信息,没有使用图谱的推理性。基于以上情况,提出对知识图谱的一种新的应用场景,即利用知识图谱对数据本身进行审计,这种场景可以应用到公司员工报销、税务审查、企业资质等数据审计中。在利用图谱对数据进行审计时,最大的困难就是图谱中关系路径的多样性和数据审计中要求数据的单一性之间的矛盾。在利用知识图谱对数据进行审计时,审计方法是根据表达式对图节点和路径进行审计判断的。利用表达式对图谱数据进行审计最便捷的办法就是将表达式里的关系和节点类型固定下来,也就是为一个想要执行的表达式定制化一套审计方法。但是会导致审计方法不能重复利用,通用性差,此外一旦表达式数量太大,这个定制化的工作会非常巨大。技术实现要素:鉴于上述的分析,本发明实施例旨在提供一种基于知识图谱的审计方法和系统,用以解决现有审计方法不能重复利用,通用性差的问题。一方面,本发明实施例提供了一种基于知识图谱的审计方法,包括:利用基础数据源,基于知识图谱schema构建知识图谱;在所述知识图谱中配置规则表达式;以及基于所述规则表达式自动审计知识图谱数据,包括:循环遍历多个起始节点,并获取其中一个起始节点;将所述规则表达式拆分为多个规则子表达式;循环遍历执行所述多个规则子表达式,其中,当执行所述规则子表达式出错时,参与所述规则子表达式执行的所有节点作为违反规则数据被记录;以及循环遍历记录的违反规则数据,并对所述多个规则子表达式赋值得到赋值后的规则表达式;执行赋值后的所述规则表达式,并当执行所述规则表达式出错时,通过可视化知识图谱展示所述违反规则数据。上述技术方案的有益效果如下:本发明实施例的基于知识图谱的审计方法利用知识图谱来审计数据,将审计过程抽象化,用户可以根据自己的需求来配置表达式然后执行表达式自动完成审计过程。因此,相比于现有审计方法,增强了通用型和可扩展性。基于上述方法的进一步改进,在循环遍历多个起始节点,并获取其中一个起始节点之前,还包括:解析所述规则表达式的首节点名字labelname;以及查找所述首节点名字labelname下的所有节点,并存储在startnodes列表中;循环遍历多个起始节点,并获取其中一个起始节点进一步包括:循环遍历所述startnodes列表,以从所述startnodes列表中取出一个起始节点startnode作为当前起始节点。基于上述方法的进一步改进,将所述规则表达式拆分为多个规则子表达式包括:拆分所述规则表达式得到多个规则子表达式;以及将拆分出的所述多个规则子表达式存储在子表达式列表list中。基于上述方法的进一步改进,循环遍历执行所述多个规则子表达式包括:从所述子表达式列表list中取出一个规则子表达式作为当前子表达式;解析所述当前子表达式的参数;根据解析出来的参数和当前起始节点,在所述知识图谱中查找符合所述当前子表达式的若干条路径数据;将查找到的所述路径数据存储在路径信息二维表中;循环遍历所述路径信息二维表,将取出的所述路径数据带入并执行所述当前子表达式中;当执行所述当前子表达式出错时,将参与所述规则子表达式执行的所有节点作为违反规则数据存储在结果二维列表result中;直到遍历完成所述多个规则子表达式。基于上述方法的进一步改进,在将查找到的所述路径数据存储在路径信息二维表中之后,判断所述当前子表达式是常规表达式还是函数表达式;将取出的所述路径数据带入并执行所述当前子表达式中进一步包括:当所述当前子表达式是所述常规表达式时,将取出的所述路径数据带入所述常规表达式,执行所述常规表达式并返回并记录所述违反规则数据;以及当所述当前子表达式是所述函数表达式时,将取出的所述路径数据带入所述函数表达式,执行所述函数表达式并返回并记录所述违反规则数据。基于上述方法的进一步改进,所述常规表达式包括加、减、乘、除、大于、小于、恒等、不等、并、或、和交;以及所述函数表达式包括路径全等、路径全不等、路径部分等、节点属性存在、节点属性不存在、路径存在、路径不存在和属性属于函数。基于上述方法的进一步改进,循环遍历记录的违反规则数据,并对所述多个规则子表达式赋值包括:循环遍历所述结果二维列表result,用第一维的大小赋值给value;当所述value大于零时,将与所述value相对应的所述规则子表达式赋值为true,否则将与所述value相对应的所述规则子表达式赋值为false;以及执行所述规则表达式,并当执行所述规则表达式出错时,通过可视化知识图谱展示所述违反规则数据:包括:执行赋值后的所述规则表达式;当执行所述规则表达式出错时,报错并返回参与所述规则表达式执行的所有节点信息并以可视化知识图谱展示所述违反规则数据;以及当执行所述规则表达式正确时,进入下一轮数据审计。基于上述方法的进一步改进,在所述知识图谱中配置规则表达式包括:设置规则基本描述信息;选择规则相关实体;基于规则意图形成规则表达式并将所述规则表达式分解成多个规则子表达式,其中,每个规则子表达式为知识图谱中的一条实体与关系路径;配置所述多个规则子表达式中的一个规则子表达式,选定所述一个规则子表达式的首实体,并显示所述首实体的所有基础属性和关系属性;选择所述基础属性或者所述关系属性,以配置所述首实体的属性数据;当选择所述基础属性时,所述属性数据为所述基础属性对应的数据,所述一个规则子表达式配置完成,以与所述一个规则子表达式相同的方式继续配置剩余的规则子表达式;当选择所述关系属性时,实体选择框会自动切换为关系属性所对应的尾实体,所述属性数据变换为所述尾实体对应的属性数据,以与所述一个规则子表达式相同的方式继续配置剩余的规则子表达式;构建规则子表达式、规则子表达式函数和常规运算符之间的关系以完成规则表达式配置。基于上述方法的进一步改进,所述基础数据源通过下述方式提供,包括:通过批量导入excel文件,以提供半结构化数据;通过url连接方式添加关系型数据库,以将所述关系型数据库中的结构化数据映射到所述知识图谱中;以及通过知识抽取将非结构化数据进行结构化处理,以提供结构化处理后的数据。另一方面,本发明实施例提供了一种基于知识图谱的审计系统,包括:知识图谱构建模块,用于利用基础数据源,基于知识图谱schema构建知识图谱;规则配置模块,用于在所述知识图谱中配置规则表达式;以及审计模块,用于基于所述规则表达式自动审计知识图谱数据,包括:节点遍历子模块,用于循环遍历多个起始节点,并获取其中一个起始节点;表达式拆分子模块,用于将所述规则表达式拆分为多个规则子表达式;子表达式遍历子模块,用于循环遍历执行所述多个规则子表达式,其中,当执行所述规则子表达式出错时,参与所述规则子表达式执行的所有节点作为违反规则数据被记录;违规数据遍历子模块,用于循环遍历记录的违反规则数据,并对所述多个规则子表达式赋值得到赋值后的规则表达式;以及违规数据显示模块,用于执行赋值后的所述规则表达式,并当执行所述规则表达式出错时,通过可视化知识图谱展示所述违反规则数据。与现有技术相比,本发明至少可实现如下有益效果之一:1、利用知识图谱来审计数据,将审计过程抽象化,用户可以根据自己的需求来配置表达式然后执行表达式自动完成审计过程。因此,相比于现有审计方法,增强了通用型和可扩展性。2、不再关注某一个具体的表达式执行过程,而是将图谱审计的过程抽象化,对审计中出现的特殊情况(主要是常规表达式无法解决的情况)进行提炼并将其函数化(即,函数表达式),能够自由配置表达式,然后利用该方法或系统解析表达式并执行图谱数据审计的过程。3、将报账系统里的数据图谱化,然后在利用本发明实施例的审计方法就可以自动找到有错误的数据并提醒报错,这样大大降低了人力成本。本发明中,上述各技术方案之间还可以相互组合,以实现更多的优选组合方案。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过说明书以及附图中所特别指出的内容中来实现和获得。附图说明附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。图1为根据本发明实施例的基于知识图谱的审计方法的流程图。图2为根据本发明实施例的表达式解析流程图。图3为根据本发明实施例的表达式执行流程图。图4为根据本发明实施例的循环遍历执行子表达式流程图。图5为根据本发明实施例的基于知识图谱表达式的审计数据推理方法执行流程图。图6为根据本发明的第一实例的待审计的知识图谱数据。图7为根据本发明的第一实例的审计结果图。图8为根据本发明的第二实例的待审计的知识图谱数据。图9为根据本发明的第二实例的审计结果图。图10为根据本发明的第三实例的待审计的知识图谱数据。图11为根据本发明的第三实例的审计结果图。图12为根据本发明的第四实例的待审计的知识图谱数据。图13为根据本发明的第四实例的审计结果图。图14为根据本发明的第五实例的待审计的知识图谱数据。图15为根据本发明的第五实例的审计结果图。图16为根据本发明实施例的基于知识图谱的审计系统的框图。具体实施方式下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。本发明的一个具体实施例,公开了一种基于知识图谱的审计方法。参考图1,基于知识图谱的审计方法,包括:步骤s110,利用基础数据源,基于知识图谱schema构建知识图谱;步骤s120,在知识图谱中配置规则表达式;以及步骤s130,基于规则表达式自动审计知识图谱数据,包括:步骤s132,循环遍历多个起始节点,并获取其中一个起始节点;步骤s134,将规则表达式拆分为多个规则子表达式;步骤s136,循环遍历执行多个规则子表达式,其中,当执行规则子表达式出错时,参与规则子表达式执行的所有节点作为违反规则数据被记录;步骤s138,循环遍历记录的违反规则数据,并对多个规则子表达式赋值得到赋值后的规则表达式;以及步骤s140,执行赋值后的规则表达式,并当执行规则表达式出错时,通过可视化知识图谱展示违反规则数据。与现有技术相比,本实施例提供的基于知识图谱的审计方法利用知识图谱来审计数据,将审计过程抽象化,用户可以根据自己的需求来配置表达式然后执行表达式自动完成审计过程。因此,相比于现有审计方法,增强了通用型和可扩展性。下文中,将参考图1至图5对基于知识图谱的审计方法进行详细描述。基于知识图谱的审计方法包括以下具体步骤。在步骤s110,利用基础数据源,基于知识图谱schema构建知识图谱。基础数据源包括:(1)通过批量导入excel文件,以提供半结构化数据。(2)通过url连接方式添加关系型数据库,以将关系型数据库中的结构化数据映射到知识图谱中,具体地,通过url连接方式添加关系型数据库,以及将关系型数据库中的结构化数据映射到知识图谱中,以为知识图谱配置结构化数据。结构化数据映射包括:实体映射、属性映射和关系映射,其中,实体映射将图谱设计模块定义的实体与关系型数据库中的数据表进行逐个关联;属性映射将实体的属性与其关联的数据表中的字段进行映射;以及关系映射是建立首实体与尾实体之间的关系。(3)通过知识抽取将非结构化数据进行结构化处理,以提供结构化处理后的数据。具体地,对非结构化文本数据进行知识抽取,包括本体管理、语料管理、算法管理、模型训练和模型作业,其中,本体管理根据业务场景需求定义从非结构化文本数据中抽取的实体及其关系作为本体;语料管理对上传的非结构化样本语料进行管理,其中,基于本体对非结构化样本语料中的实体与实体关系进行标注;算法管理对非结构化文本数据中的实体与实体关系抽取算法进行管理;模型训练根据任务需求选择算法和训练样本,然后进行模型训练;以及模型作业使用训练好的模型和需要被处理的新的原始样本构建模型作业,从新的原始样本中抽取实体及其关系。在构建完成知识图谱之后,进入步骤s120,在知识图谱中配置规则表达式。具体地,包括:设置规则基本描述信息;选择规则相关实体;基于规则意图形成规则表达式并将规则表达式分解成多个规则子表达式,其中,每个规则子表达式为知识图谱中的一条实体与关系路径;配置多个规则子表达式中的一个规则子表达式,选定一个规则子表达式的首实体,并显示首实体的所有基础属性和关系属性;选择基础属性或者关系属性,以配置首实体的属性数据;当选择基础属性时,属性数据为基础属性对应的数据,一个规则子表达式配置完成,以与一个规则子表达式相同的方式继续配置剩余的规则子表达式;当选择关系属性时,实体选择框会自动切换为关系属性所对应的尾实体,属性数据变换为尾实体对应的属性数据,以与一个规则子表达式相同的方式继续配置剩余的规则子表达式;构建规则子表达式、规则子表达式函数、和常规运算符之间的关系以完成规则表达式配置。在配置完规则表达式之后,进入步骤s130,基于规则表达式自动审计知识图谱数据。下文中,参考图2至图4,对基于规则表达式自动审计知识图谱数据进行详细描述。首先,参考图2,基于规则表达式自动审计知识图谱数据(步骤s130)包括:解析规则表达式的首节点名字labelname;在解析出首节点名字labelname之后,查找首节点名字labelname下的所有节点,并存储在startnodes列表中。在将查找到的首节点名字labelname下的所有节点存储在列表中之后,进入步骤s132,循环遍历多个起始节点,并获取其中一个起始节点。具体地,循环遍历startnodes列表,以从startnodes列表中取出一个起始节点startnode作为当前起始节点。在获取其中一个起始节点之后,进入步骤s134,将规则表达式拆分为多个规则子表达式。具体地,拆分规则表达式;以及将拆分出的多个规则子表达式存储在子表达式列表list中。在规则表达式拆分为多个规则子表达式之后,进入步骤s136,循环遍历执行多个规则子表达式,其中,当执行某一规则子表达式出错时,参与该规则子表达式执行的所有节点作为违反规则数据被记录。参考图3,循环遍历执行多个规则子表达式包括:从子表达式列表list中取出一个规则子表达式作为当前子表达式;解析当前子表达式的参数;根据解析出来的参数和当前起始节点,在知识图谱中查找符合当前子表达式的若干条路径数据;将查找到的路径数据存储在路径信息二维表中;判断当前子表达式是常规表达式还是函数表达式;循环遍历路径信息二维表,将取出的路径数据带入并执行当前子表达式中,具体地,当当前子表达式是常规表达式时,将取出的路径数据带入常规表达式并执行常规表达式并返回并记录违反规则数据;以及当当前子表达式是函数表达式时,将取出的路径数据带入函数表达式,执行函数表达式并返回并记录违反规则数据。例如,常规表达式包括加、减、乘、除、大于、小于、恒等、不等、并、或、和交,以及函数表达式包括路径全等、路径全不等、路径部分等、节点属性存在、节点属性不存在、路径存在、路径不存在和属性属于函数。当执行当前子表达式出错时,将参与规则子表达式执行的所有节点作为违反规则数据存储在结果二维列表result中;直到遍历完成多个规则子表达式。在遍历完成多个规则子表达式之后,进入步骤s138,循环遍历记录的违反规则数据,并对多个规则子表达式赋值,得到赋值后的规则表达式。参考图4,具体地,包括:循环遍历结果二维列表result,用第一维赋值给value;当value大于零时,将与value相对应的规则子表达式赋值为true,否则将与value相对应的规则子表达式赋值为false。在得到赋值后的规则表达式之后,进入步骤s140,执行赋值后的该规则表达式,并当执行规则表达式出错时,通过可视化知识图谱展示违反规则数据,以将违反规则数据推送给管理员,以便于管理员及时准确地掌握违反规则数据。继续参考图4,具体地,包括:执行赋值后的规则表达式;当执行规则表达式出错时,报错并返回参与规则表达式执行的所有节点信息并以可视化知识图谱展示违反规则数据;以及当执行规则表达式正确时,进入下一轮数据审计。下文中,将参考图2至图5,以具体实例的方式,对基于知识图谱的审计方法进行详细描述。图5为基于知识图谱表达式的审计数据推理方法执行流程图,其中,以下具体实例参考图5进行描述。一.获取表达式首实体名字下的所节点实例。解析出来表达式的首实体名字labelname,根据labelname去图谱中查找所有该labelname下的实例节点,存储在类型为list<graphnode>的startnodes的列表中,如图2表达式解析流程图所示。graphnode为图谱节点的类,包括节点名、属性、和关系(以该节点为开始节点)。二.循环遍历startnodes取出一个节点startnode后,执行如下步骤:1、拆分子表达式,表达式是由多个子表达式组成的,我们在执行表达式前要先执行完子表达式,获得子表达式的结果后再来执行表达式得到最终的执行结果。如表达式c>0&&d=100拆分为两个子表达式c>0、d==100。拆分的方法为以逻辑或||和逻辑与&&符号为分割取出所有子表达式。将拆分的结果存储在list<string>的列表list中。2、定义一个list<list<errornodes>>的二维表result,用来记录表达式的执行情况,其中list<errornodes>用来记录一个子表达式的执行情况。errornodes为记录每次执行子表达式出错时参与该次表达式执行的所有节点。3、执行各子表达式,如图3表达式执行流程图所示。执行以下步骤:a.定义list<errornodes>的列表expresult,用于记录子表达式的执行结果。循环遍历存储子表达式的列表list取出子表达式取得子表达式expression。b.解析表达式参数,例如routecompleteequal(a,b)解析出来的结果为a、b,d=100解析出的结果为d。c.根据解析出来的参数和起始节点startnode去图谱中查找想要获得的路径数据,数据格式为list<list<graphnode>>的二维列表中,里面记录了所有存在的路径信息。list<graphnode>就为一条路径信息,包括了该路径下的所有节点。因为可能存在的路径不只有一条所有的用二维列表存储。由于参数可能有多个所以记录路径信息的二维列表可能也存在多个,一个参数有一个路径信息二维列表。d.判断子表达式为函数类型还是常规表达式。e.循环遍历路径信息二维列表,取出其中的路径信息,带入表达式中,根据b的判断结果来执行表达式。如果表达式执行错误就将该次执行的所有参数节点存储一个errornodes的实例中,并将该实例存入到expresult中。f.当所有路径信息都遍历完后将expresult返回,存储到result中。然后执行下一个子表达式。4、循环遍历执行完子表达式后的result二维表,我们只取到第一层list<errornodes>,用其大小赋值给value,如果value大于零,则将该value对应的子表达式赋值为true,否则,我们将该value对应的子表达式赋值为false。当给表达式的子表达式全部赋值后,执行表达式,如果为错误,则返回所有参与这次表达式执行的节点信息,如果正确则不作处理,进入下一轮数据审计。循环遍历过程如图4循环遍历执行子表达式流程图所示。本发明的实施例是为了让用户自由配置审计表达式,然后系统根据配置好的表达式去审计数据,找出违反表达式的数据集合,达到数据审计的要求。在对知识图谱审计的过程中出现的特殊情况(常规表达式无法解决)提炼出来了八种基础方法并将其函数化,包括:1、路径全等。描述:方法函数描述为routecompleteequal(a,b),该方法判断参数a得到的路径的终端节点在参数b得到的路径终端节点中都能找到。实现步骤:用a得到的所有终端节点集合到b得到的所有终端节点集合中去查找,全部查找到即为正确,否则为错误。2、路径全不等。描述:方法函数描述为routenoequal(a,b),该方法判断参数a得到的路径的终端节点在参数b得到的路径终端节点中都不能找到。实现步骤:用a得到的所有终端节点集合到b得到的所有终端节点集合中去查找,全部都查找不到即为正确,否则为错误。3、路径部分等。描述:方法函数描述为routepartequal(a,b),该方法判断参数a得到的路径的终端节点在参数b得到的路径终端节点中部分能找到。实现步骤:用a得到的所有终端节点集合到b得到的所有终端节点集合中去查找,只要有一个能查找到即为正确,否则为错误。4、节点属性存在。描述:方法函数描述为attributeexist(a),该方法判断参数a得到的路径的终端节点的某一个属性值是否存在。实现步骤:取出终端节点要查找的某一个属性,若为非空值则为正确,否则为错误。5、节点属性不存在。描述:方法函数描述为attributenoexist(a),该方法判断参数a得到的路径的终端节点的某一个属性值是否不存在。实现步骤:取出终端节点要查找的某一个属性,若为空则为正确,否则为错误。6、路径存在。描述:方法函数描述为relationexist(a),该方法判断参数a得到的路径存在。实现步骤:依据表达式参数a得到路径结果,若路径结果为非空值则为正确,否则为错误。7、路径不存在。描述:方法函数描述为relationnoexist(a),该方法判断参数a得到的路径不存在。实现步骤:依据表达式参数a得到路径结果,若结果为空值则为正确,否则为错误。8、属性属于。描述:方法函数描述为belongto(a,b),该方法判断参数a得到的路径的终端节点的某一个属性值属于参数b得到的路径的终端节点的某一个属性值。实现步骤:参数b得到的某一路径的终端节点的某一属性值如果包括参数a得到的路径的终端节点的某一属性值则为正确,否则为错误。这八种基础方法是处理特殊情况的图谱数据审计过程。我们将其命名为函数表达式,其他的表达式都为常规表达式。下文中,参考图6至图15,以举例说明的方式对审计方法进行描述。1、审计功能:审查行程地址与交通发票地址是否一致。1.1审计数据的表达式:routecompleteequal([报销行程][火车票][目的地]城市@名称,[报销行程][目的地]城市@名称)&&routecompleteequal([报销行程][火车票][出发地]城市@名称,[报销行程][出发地]城市@名称)。1.2待审计的数据:图6为数据库存储的待审计的知识图谱数据。1.3审计过程:获取表达式参数中首节点labelname为报销单。根据首节点labelname,在图谱数据中查找所有开始节点存放在startnodes{报销单1,报销单2}列表中。遍历startnodes列表。取出首实体实例,假如取出顺序为报销单1、报销单2。a.取一个首实体实例。拆分表达式为子表达式存储在list{routecompleteequal([报销行程][火车票][目的地]城市@名称,[报销行程][目的地]城市@名称),routecompleteequal([报销行程][火车票][出发地]城市@名称,[报销行程][出发地]城市@名称)}列表中。b.遍历存储子表达式存储list,取出子表达式,假如取出顺序为routecompleteequal([报销行程][火车票][目的地]城市@名称,[报销行程][目的地]城市@名称)、routecompleteequal([报销行程][火车票][出发地]城市@名称,[报销行程][出发地]城市@名称)。(1)取出一个子表达式,解析出参数,判断是否为函数表达式,根据先前取到的首实体实例,获得链路节点信息,并带入子表达式中。表1:报销单1、报销单2在各子表达中获得链路信息后的情况(2)执行带入链路信息的子表达式。将违反该子表达式的链路的节点保存在二维表result中。循环执行下一个子表达式。表2:报销单01,报销单02在执行完所有子表达式后result结果情况首实体result报销单1{{报销单1、行程1、火车票01、苏州}、{报销单1、行程1、武汉}}报销单2{}c.遍历result中的第一层,赋值给value,判断value大小是否为零。若为零则将对应的子表达式设置为true。否则为false。然后执行表达式。若为错误,则保存出错的链路信息。跳转到a继续下一轮执行。表3:报销单01,报销单02根据result结果,给表达式赋值并执行的结果首实体赋值后的表达式表达式执行结果报销单1true&&falsefalse报销单2true&&truetrue根据以上分析,可以得出报销单2没有问题,而报销单1有问题,其行程出发地和火车票出发地不一致(行程出发地为苏州,而火车票上的出发地则为武汉),系统审计给出的结果如图7所示。2、审计功能:行程目的地是否属于火车票目的地下级地区(说明routepartequal函数)2.1审计数据表达式:routepartequal([火车票][目的地]城市@名称,[目的地][下级行政区]城市@名称)解释:如果火车票的目的在出差行程的下级区间集合之内,则符合表达式,否则违反表达式。2.2待审计的数据:图8为图数据库存储的待审计的知识图谱数据。2.3审计流程(如上所述)结果分析:行程4的目的地为唐家湾,火车票的目的地武汉的下级行政区域包括{武昌、汉口、汉阳},因为唐家湾不在集合{武昌、汉口、汉阳}中,所以违反了这条表达式(参考图9)。3、审计功能:行程目的地不在火车票目的地的下级行政区中(说明routenoequal函数)3.1审计数据表达式:routenoequal([目的地]城市@名称,[火车票][目的地][下级行政区]城市@名称)解释:如果出差行程的目的城市不在出差行程火车票目的地城市的下级行政区,则符合表达式要求,否则违反表达式要求,为错误数据。3.2待审计的数据:图10为图数据库存储的待审计的知识图谱数据。3.3审计流程(如上所述)结果分析:行程1的目的地为汉口,火车票的目的地武汉的下级行政区域包括{武昌、汉口、汉阳},因为汉口在集合{武昌、汉口、汉阳}中,所以违反了这条表达式(参考图11)。4、审计功能:员工存在职位信息(说明attributeexist函数)审计数据表达式为attributeexist(员工@职位)。如果员工的职位信息为空,则违反该表达式。结果分析为丁俐和张宇两个同事,丁莉的职位信息为空,张宇的职位信息为项目经理,则丁俐这个节点违反了表达式。5、审计功能:出差行程没有行程名字(说明attributenoexist函数)审计数据表达式:attributenoexist(出差行程@名称)。如果行程的名字信息为不为空,则违反该表达式。结果分析为行程1和行程2两个行程,行程1的名字信息为不为空,行程2的职位信息为空,则行程2这个节点违反了表达式。6、审计功能:报销单下面有立项单(说明relationexist函数)审计数据表达式:relationexist([所属立项单]立项单@立项单号)。如果报销单下面没有立项单,则违反该表达式。结果分析为888和999两个报销单,报销单888下面没有立项单与之相联,报销单999的下面有立项单1与之相联,所以报销单888违反了表达式。7、审计功能:报销单下面没有立项单(说明relationnoexist函数)审计数据表达式:relationnoexist([所属立项单]立项单@立项单号)。如果报销单下面有立项单,则违反该表达式。结果分析为2149和2100两个报销单,报销单2100下面没有立项单与之相联,报销单2149的下面有立项单1916与之相联,所以报销单2149违反了表达式。8、员工火车票报销与职级是否相匹配(说明belong函数)审计数据表达式:belong([火车票]火车票@座次,[所属职级][交通工具与座位]交通工具与座位等级标@座次)。员工下面的火车票的座次,包含在员工职级对于的交通工具座次集合内,则符合该表达式,否则不符合。例如小张报销火车票座次为高铁二等座,而小张职级对应的交通工具与座次等级为{高铁二等座,普通硬座,硬卧},则小张的报销符合要求,没有违规。结果分析为小赵下面有一张火车票座次为{高特二等座},二小赵关联的职级为p7,p7关联的交通工具与座位等级为{高铁二等座,普通硬座,硬卧,高铁商务座},因为高特二等座属于{高铁二等座,普通硬座,硬卧,高铁商务座}集合,所以小赵的火车票报销符合规范要求。9、审计功能:企业税务情况9.1表达式:relationnoexist([欠税公告]欠税公告@欠税金额)9.2待审的数据(参考图12)9.3审计过程:获取表达式参数中首节点labelname为企业。根据首节点labelname,在图谱数据中查找所有开始节点存放在startnodes{广州甘地酒店管理有限公司,广州易迅科技}列表中。遍历startnodes列表。取出首实体实例,假如取出顺序为广州甘地酒店管理有限公司、广州易迅科技.a.取一个首实体实例。因为没有子表达式,直接解析出表达式参数为{[欠税公告]欠税公告@欠税金额}b.根据参数找到对应实例的链路信息,带入表达式。表4:广州甘点1、广州易迅2在各子表达中获得链路信息后的情况表5:广州甘点1、广州易迅2根据result结果,给表达式赋值并执行的结果首实体赋值后的表达式表达式执行结果广州甘点酒店管理有限公司falsefalse广州易迅科技truetrue根据以上分析,广州易迅科技没有欠税公告节点与之相联系,表达式执行正确,所以不违反设定的规则,而广州甘点酒店管理有限公司下面有{欠税公告001}这个欠税公告节点与之相联系,表达式执行错误,所以违反了该规则,稽查出了广州甘点酒店管理有限公司的税务情况有问题。参考图13,系统的审计结果可以看出广州甘点酒店管理有限公司欠所得税9800000元。10、审计功能:查询企业的经营风险:10.1表达式:relationnoexist([经营异常]经营异常@名称)10.2待审计的数据(参考图14)10.3审计过程:获取表达式参数中首节点labelname为企业。根据首节点labelname,在图谱数据中查找所有开始节点存放在startnodes{广州甘地酒店管理有限公司,广州地铁集团有限公司,远光软件}列表中。遍历startnodes列表。取出首实体实例,假如取出顺序为广州甘地酒店管理有限公司、广州地铁集团有限公司、远光软件。a.取一个首实体实例。因为没有子表达式,直接解析出表达式参数为{[经营异常]经营异常@名称}b.根据参数找到对应实例的链路信息,带入表达式。表6:广州甘点1、广州地铁2、远光软件3在各子表达中获得链路信息后的情况表7:广州甘点1、广州地铁2、远光软件3根据result结果,给表达式赋值并执行的结果首实体赋值后的表达式表达式执行结果广州甘点酒店管理有限公司falsefalse广州地铁集团有限公司truetrue远光软件truetrue根据以上分析,广州地铁集团有限公司和远光软件均没有经营异常的节点与之相联系,表达式执行均为正确的,所以不违反设定的规则,而广州甘点酒店管理有限公司下面有{未依照《企业信息公示暂行条例》第八条规定的期限公示年度报告}这个经营异常节点与之想联系,表达式执行错误,所以违反了该规则,稽查出了广州甘点酒店管理有限公司的经营异常问题(参考图15)。本发明的一个具体实施例,公开了一种基于知识图谱的审计系统。参考图16,基于知识图谱的审计系统,包括:知识图谱构建模块1602,用于利用基础数据源,基于知识图谱schema构建知识图谱;规则配置模块1604,用于在知识图谱中配置规则表达式;以及审计模块1606,用于基于规则表达式自动审计知识图谱数据,包括:节点遍历子模块1608,用于循环遍历多个起始节点,并获取其中一个起始节点;表达式拆分子模块1610,用于将规则表达式拆分为多个规则子表达式;子表达式遍历子模块1612,用于循环遍历执行多个规则子表达式,其中,当执行规则子表达式出错时,参与规则子表达式执行的所有节点作为违反规则数据被记录;违规数据遍历子模块1614,用于循环遍历记录的违反规则数据,并对多个规则子表达式赋值;以及违规数据显示子模块1616,用于执行规则表达式,并当执行规则表达式出错时,通过可视化知识图谱展示违反规则数据。基于知识图谱的审计系统还包括多个其他模块,由于审计系统与审计方法相对应,所以为了避免赘述,省略了多个其他模块的详细描述。与现有技术相比,本发明至少可实现如下有益效果之一:1、利用知识图谱来审计数据,将审计过程抽象化,用户可以根据自己的需求来配置表达式然后执行表达式自动完成审计过程。因此,相比于现有审计方法,增强了通用型和可扩展性。2、不再关注某一个具体的表达式执行过程,而是将图谱审计的过程抽象化,对审计中出现的特殊情况(主要是常规表达式无法解决的情况)进行提炼并将其函数化(即,函数表达式),能够自由配置表达式,然后利用该方法或系统解析表达式并执行图谱数据审计的过程。3、将报账系统里的数据图谱化,然后在利用本发明实施例的审计方法就可以自动找到有错误的数据并提醒报错,这样大大降低了人力成本。本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1