一种元数据知识图谱构建方法、存储介质及系统与流程

文档序号:31074659发布日期:2022-08-09 21:33阅读:469来源:国知局
一种元数据知识图谱构建方法、存储介质及系统与流程

1.本发明涉及元数据管理技术领域,特别涉及一种元数据知识图谱构建方法、存储介质及系统。


背景技术:

2.按照传统的定义,元数据(metadata)是用于描述数据的数据。在数据仓库系统中,元数据是描述数据仓库内数据的结构和建立方法的数据,可按用途分为技术元数据(technical metadata)和业务元数据(business metadata),元数据可以帮助数据仓库管理员和数据仓库的开发人员非常方便地找到他们所关心的数据。现有的元数据管理主要是在数据仓库系统中定义一套完整的元模型体系结构,利用该元模型体系结构分别对数据仓库构建和应用的不同类型元数据进行建模得到多个元模型,基于多个元模型之间的关系以及元模型内部各个元数据之间的关系构建元数据知识图谱从而对元数据进行管理。
3.知识图谱(knowledge graph)本质上是一种叫做语义网络(semantic network)的知识库,即是具有有向图结构的一个知识库,其具有多个节点和用于表示节点间关系的边,通俗一点说:知识图谱是由实体、关系和属性组成的一种数据结构,节点表示实体或属性,边表示节点间的关系。知识图谱由数据层(data layer)和模式层(schema layer)构成。
4.模式层是知识图谱的概念模型和逻辑基础,用于对数据层进行规范约束,通常采用本体(schema)作为知识图谱的模式层,借助本体定义的规则和公理来约束知识图谱的数据层,也可将知识图谱视为实例化了的本体,知识图谱的数据层就是本体的实例。在知识图谱的模式层,节点表示本体概念,边表示概念间的关系。
5.在数据层,事实以“实体-关系-实体”或“实体-属性-属性值”的三元组形式存储,形成一个图状知识库。其中,实体是知识图谱的基本元素,指具有可区别性且独立存在的某种事物,例如人名、组织机构名、地名、日期、时间等;关系是两个实体之间的语义关系,是模式层所定义关系的实例;属性是对实体的说明,是实体与属性值之间的映射关系。在知识图谱的数据层,节点表示实体,边表示实体间的关系或实体的属性。
6.目前,元数据知识图谱只支持结构化元数据的管理,缺乏管理图片、文本、英文单次/词组等非结构化元数据的能力,且当元模型新增或者发生变更时,基于元模型所采集到的元数据信息有所变化,但元数据知识图谱无法动态更新元数据的变化信息。


技术实现要素:

7.本发明要解决的技术问题是如何令元数据知识图谱具备管理非结构化元数据的能力且能动态更新元数据的变化信息。
8.为解决上述技术问题,本发明提供一种元数据知识图谱构建方法,包括如下步骤:
9.a.按照公共仓库元模型的规范,获取用户输入的属性信息和元模型关系信息进行元模型定义,构建面向全域数据结构类型的多个元模型;
10.b.根据所述多个元模型进行动态本体建模,具体包括如下步骤b1~b4:
11.——b1.获取全部元模型的全部属性信息,将相似度达到预设程度的多个属性信息合并成一个属性信息,然后根据各个属性信息创建本体的属性;
12.——b2.根据各个元模型及其属性信息,构建本体中的各个概念及其与属性之间的关系;
13.——b3.根据用户输入的元模型关系信息,构建本体中的各个概念之间的关系;
14.——b4.根据本体中的各个概念与属性之间的关系以及各个概念之间关系,构建元数据的本体模型以及本体实例数据转换规则;
15.c.按照元模型中定义的属性信息进行元数据采集,将采集到的元数据信息保存到元数据库表中;
16.d.根据本体实例数据转换规则,将元数据库表中的元数据信息转换为本体模型的本体实例数据,根据语义相似度算法计算同一本体模型涉及的各个元数据信息之间的相似度,据此得到同一本体模型中各个本体实例数据之间的相似度,对本体模型中相似度达到预设程度的本体实例数据进行合并后生成元数据知识图谱。
17.优选地:所述步骤c中,运用sql语句从数据库中进行元数据采集;包括步骤e.对元数据采集过程中运用到的sql语句进行血缘解析,得到采集到的元数据信息与其源字段之间的字段级血缘关系,以及用于保存所述元数据信息的元数据库表与该源字段在所述数据库中存储的源库表之间的库表级血缘关系,将所述字段级血缘关系和所述库表级血缘关系同步更新到元数据知识图谱中。
18.优选地,所述步骤d中,在对本体模型中相似度达到预设程度的本体实例数据进行合并后,以本体模型中的概念和本体实例数据作为元数据知识图谱的实体,生成所述元数据知识图谱。
19.优选地,包括步骤f.对所述元数据知识图谱进行质量评估,根据评估结果对所述元数据知识图谱进行优化,质量评估包括如下步骤f1~f3当中的至少一个:
20.f1.获取用户检测所述元数据知识图谱中的实体关系是否与实际情况一致的结果,根据一致性检测结果对所述元数据知识图谱进行质量评估;
21.f2.获取用户检测所述元数据知识图谱中的各个实体的血缘关系是否完整的结果,根据完整性检测结果对所述元数据知识图谱进行质量评估;
22.f3.获取用户对所述元数据知识图谱中的实体进行时效性检测的结果,根据时效性检测结果对所述元数据知识图谱进行质量评估。
23.优选地,所述步骤f1中,实体关系与实际情况越一致,质量评估结果越好;且/或所述步骤f2中,各个实体的血缘关系越完整,质量评估结果越好;且/或所述步骤f3中,实体的时效性越好,质量评估结果越好。
24.优选地,所述步骤a中,面向全域数据结构类型的多个元模型当中有结构化数据元模型、非结构化数据元模型和半结构化数据元模型。
25.优选地,所述步骤a中,公共仓库元模型的规范包括uml规范、mof规范和xmi规范。
26.优选地,所述元模型关系信息是元模型之间的继承关系、依赖关系或组合关系。
27.本发明还提供计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的元数据知识图谱构建方法中的步骤。
28.本发明还提供一种元数据知识图谱构建系统,包括相互连接的计算机可读存储介
质和处理器,计算机可读存储介质如上所述。
29.本发明具有以下有益效果:按照公共仓库元模型的规范进行元模型定义,就可构建面向全域数据结构类型的多个元模型,即能得到结构化数据元模型、非结构化数据元模型和半结构数据元模型,根据这些元模型进行动态本体建模得到本体模型并生成元数据知识图谱后,该元数据知识图谱就具备管理非结构化元数据的能力;按照元模型中定义的属性信息进行元数据采集,再根据本体实例数据转换规则将元数据信息转换为本体模型的本体实例数据之后,根据语义相似度算法计算同一本体模型涉及的各个元数据信息的相似度,据此得到同一本体模型中各个本体实例数据之间的相似度,然后对本体模型中相似度达到预设程度的本体实例数据进行合并后生成元数据知识图谱,这样,若元模型新增或者发生变更,则元数据库表中的元数据信息就会有所变化,由于本体模型的本体实例数据是由元数据库表中的元数据信息转换而来的,此时本体模型的本体实例数据会跟随元数据信息变化,使元数据知识图谱动态更新元数据的变化信息。
附图说明
30.图1是元数据知识图谱构建方法的流程示意图;
31.图2是元模型的示意图;
32.图3是本体的属性示意图;
33.图4是本体中的概念与属性之间的关系示意图;
34.图5是本体中的概念与属性之间的关系、各个概念之间的关系示意图;
35.图6是元数据知识图谱的示意图。
具体实施方式
36.以下结合具体实施方式对本发明创造作进一步详细说明。
37.本实施例提供一种元数据知识图谱构建系统,包括相互连接的计算机可读存储介质和处理器,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现如图1所示的元数据知识图谱构建方法,该方法包括如下步骤a、b、c、d、e、f。
38.a.按照公共仓库元模型的规范,获取用户输入的属性信息和元模型关系信息进行元模型定义,构建面向全域数据结构类型的多个元模型。
39.公共仓库元模型(common warehouse metamodel,cwm)是omg(对象管理组织)制定的一个互操作标准,为数据仓库和业务分析领域中使用的元数据定义了一种通用语言和交换机制,其规范包括:uml(unified modeling language)规范,即统一建模语言规范,是omg的一个建模标准;mof(meta object facility)规范,即元对象工具规范,是omg关于元模型和元数据库的一个标准;xmi(xml metadata interchange)规范,即xml元数据交换规范,是omg关于元数据交换的标准。
40.在进行元模型定义的过程中,按照公共仓库元模型的上述规范能够拓展元模型层,在结构化数据元模型的基础上增加文本、图片、音频、时序数据等非结构化数据元模型和半结构化数据元模型,即在获取用户输入的属性信息和元模型关系信息之后就能构建面向全域数据结构类型的多个元模型,这多个元模型当中有结构化数据元模型、非结构化数据元模型和半结构化数据元模型。
41.结构化数据元模型主要的数据对象包括系统、数据库、库表、字段、作业、指标等,不同的对象形成含有不同模型属性(也称为元模型元素)的元模型,而元模型属性是对不同对象的元数据概念的描述。非结构化数据元模型主要的数据对象包括文档、图片、视频、音频等,不同的对象形成含有不同模型属性的元模型,例如文档元模型、图片元模型等。半结构数据元模型主要数据对象是iot设备(物联网设备)产生的时序数据,通过描述不同的时序数据对象形成不同的元模型。
42.以系统作为数据对象构建系统元模型为例,用户输入的属性信息包括属性名称、属性描述、属性类型、属性长度和属性标签,例如:用户输入的第1组属性信息当中,属性名称为“系统名称”,属性描述为“系统的名称”,属性类型为“string”,属性长度为“200”,属性标签为“业务元数据”;用户输入的第2组属性信息当中,属性名称为“系统版本”,属性描述为“符合标准规范的系统唯一版本编号”,属性类型为“string”,属性长度为“20”,属性标签为“业务元数据”。如此则构建出来的系统元模型如图2所示。
43.b.根据多个元模型进行动态本体建模,具体包括如下步骤b1~b4:
44.——b1.获取全部元模型的全部属性信息,将相似度达到预设程度的多个属性信息合并成一个属性信息,然后根据各个属性信息创建本体的属性。
45.以上述的系统元模型为例,在进行动态本体建模时,先获取该系统元模型的全部属性信息,然后采用编辑距离算法(levenshtein distance算法)来计算该系统元模型的属性名称与其他元模型的已有属性信息的相似度,若相似度达到预设程度(例如90%),则将相似度达到预设程度的多个属性信息合并成一个,然后根据各个属性信息创建本体的属性。本实施例中,系统元模型的属性名称与其他元模型已有的属性信息的相似度都没有达到预设程度,则无需对该属性信息进行合并,如此则创建出本体的属性如图3所示。
46.需要说明的是,编辑距离算法是指计算两个字符串之间,由其中一个转成另一个所需要的最小编辑操作次数,许可的编辑操作包括将一个字符替换成另一个字符、插入一个字符、删除一个字符。一般来说,编辑操作次数越少,编辑距离越小,两个字符串相似度越大。
47.——b2.根据各个元模型及其属性信息,构建本体中的各个概念及其与属性之间的关系。
48.本体中的概念主要是指集合、类别、对象类型、食物的种类,以上述的系统元模型为例:第1组属性信息当中,属性类别为“string”,即是字符串,所以根据该系统元模型的第1组属性信息构建出来的概念是字段(column);第2组属性信息当中,属性类别也为“string”,所以根据该系统元模型的第2组属性信息构建出来的概念也是字段(column)。然后根据系统元模型的属性信息就能构建出本体中各个概念与属性之间的关系,例如,第一个概念所对应的属性有属性名称“系统名称”、属性描述“系统的名称”、属性类型“string”、属性长度“200”和属性标签“业务元数据”,而第二个概念所对应的属性有属性名称“系统版本”、属性描述“符合标准规范的系统唯一版本编号”、属性类型“string”、属性长度“20”和属性标签“业务元数据”,具体如图4所示。
49.——b3.根据用户输入的元模型关系信息,构建本体中的各个概念之间的关系。
50.用户输入的元模型关系信息是元模型之间的继承关系、依赖关系或组合关系,以上述的系统元模型为例,在系统名称中通常会写上系统版本,所以系统版本依赖于系统名
称,而系统名称被系统版本依赖,所以用户输入的元模型关系信息应为第1组属性信息被第二组属性信息依赖,第2组属性信息依赖于第1组属性信息,由此可构建本体中的两个概念之间的关系。
51.——b4.根据本体中的各个概念与属性之间的关系以及各个概念之间关系,构建元数据的本体模型以及本体实例数据转换规则。
52.以上述的系统元模型为例,在构建出本体中的各个概念与属性之间的关系以及各个概念年之间的关系之后,就可根据本体中的各个概念与属性之间的关系以及各个概念之间关系,构建出元数据的本体模型以及本体实例数据转换规则,其中,元数据的本体模型具体如图5所示,本体实例数据转换规则是将基于系统元模型的属性信息采集到的元数据信息转换为本体中的属性的规则。
53.c.按照元模型中定义的属性信息进行元数据采集,将采集到的元数据信息保存到元数据库表中。
54.以上述的系统元模型为例,在需要进行元数据采集时,可按照系统元模型中定义的属性名称、属性描述、属性类型、属性长度和属性标签,运用sql语句从数据库中进行元数据采集,支持对结构化、非结构化、半结构化元数据的采集,具体地:
55.结构化元数据采集:采用jdbc(java数据库连接)访问数据库,读取数据库中的库表、字段、索引、分区、存储过程、函数等元数据信息,通过元模型和采集对象的映射关系将库表、字段、索引、分区、存储过程、函数等元数据信息保存到元数据库表中。
56.非结构化元数据采集:对文本、word、pdf这些文件内容进行分词、去停用词等预处理,然后采用nlp(自然语言处理技术)的基于textrank的关键词提取算法和摘要提取算法,获取文本、word、pdf等文件的非结构化元数据信息,将元数据信息保存到对应的元数据库表中。
57.半结构化元数据采集:电网的时序数据是iot设备上传到kafka中的,所以针对时序数据的元数据采集从kafka集群中读取iot topic(路由表)中的数据,然后对数据进行json解析,将解析后的元数据信息保存到时序元数据库表中。
58.d.根据本体实例数据转换规则,将元数据库表中的元数据信息转换为本体模型的本体实例数据,根据语义相似度算法计算同一本体模型涉及的各个元数据信息之间的相似度,据此得到同一本体模型中各个本体实例数据之间的相似度,对本体模型中相似度达到预设程度的本体实例数据进行合并后生成元数据知识图谱。
59.例如,按照系统元模型中定义的属性信息采集系统名称和系统版本相关的元数据信息,得到的第一条元数据信息“系统名称为数据资产运营管控平台v2.0”,第二条元数据信息“系统版本为v2.0”,则根据本体实例数据转换规则,将第一条元数据信息转换为本体模型的本体实例数据,即将本体模型中的“系统名称”转换为“数据资产运营管控平台v2.0”,将本体模型中的“系统版本”转换为“v2.0”,然后相应修改本体模型中的其它属性,但由于“数据资产运营管控平台v2.0”所对应的属性描述是“系统的名称”,属性类型是“string”,属性长度是“200”,属性标签是“业务元数据”,而“v2.0”所对应的属性描述是“符合标准规范的系统唯一版本编号”,属性类型是“string”,属性长度是“20”,属性标签是“业务元数据”,即本体模型中的其它属性没有变化,故不用修改。
60.然后,根据语义相似度算法计算同一本体模型涉及的各个元数据信息之间的相似
度,据此得到同一本体模型中各个本体实例数据之间的相似度。例如,假若采集到的元数据信息当中,有来自系统的元数据信息“系统版本为v2.0”和来自word文件的元数据信息“系统版本=v2.0”,则根据语义相似度算法计算出这两个元数据信息的相似度达到90%,即达到预设程度,则据此得到同一本体模型中各个本体实例数据之间的相似度达到预设程度,故将这两个本体实例数据进行合并。本实施例中,第一条元数据信息“系统名称为数据资产运营管控平台v2.0”和第二条元数据信息“系统版本为v2.0”的相似度不会达到90%,则据此得到同一本体模型中各个本体实例数据之间的相似度没有达到预设程度,无需对本体实例数据进行合并,则直接以本体模型中的概念和本体实例数据作为元数据知识图谱的实体,生成元数据知识图谱,具体如图6所示。
61.这样,按照公共仓库元模型的规范进行元模型定义,就可构建面向全域数据结构类型的多个元模型,即能得到结构化数据元模型、非结构化数据元模型和半结构数据元模型,根据这些元模型进行动态本体建模得到本体模型并生成元数据知识图谱后,该元数据知识图谱就具备管理非结构化元数据的能力;按照元模型中定义的属性信息进行元数据采集,再根据本体实例数据转换规则将元数据信息转换为本体模型的本体实例数据之后,根据语义相似度算法计算同一本体模型涉及的各个元数据信息的相似度,据此得到同一本体模型中各个本体实例数据之间的相似度,然后对本体模型中相似度达到预设程度的本体实例数据进行合并后生成元数据知识图谱,这样,若元模型新增或者发生变更,则元数据库表中的元数据信息就会有所变化,由于本体模型的本体实例数据是由元数据库表中的元数据信息转换而来的,此时本体模型的本体实例数据会跟随元数据信息变化,使元数据知识图谱动态更新元数据的变化信息。
62.e.对元数据采集过程中运用到的sql语句进行血缘解析,得到采集到的元数据信息与其源字段之间的字段级血缘关系,以及用于保存元数据信息的元数据库表与该源字段在数据库中存储的源库表之间的库表级血缘关系,将字段级血缘关系和库表级血缘关系同步更新到元数据知识图谱。
63.在运用sql语句进行元数据采集的过程中,采用sqlparser对sql语句进行sql解析,从而得到表级和字段级的血缘关系,具体地:
64.元数据信息为目标字段,目标字段可以解析成源字段的表达式,这些表达式可以是单个数据值,也可以运算符将常量、变量、列或函数等连接构成的式子,甚至是用运算符将两个或更多的简单表达式联接起来组成复杂表达。其转换关系表达如下:
65.y=f(x1,x2,x3

xn),其中y是目标字段,f是表达式,包括标识表达式、属性表达式、聚合表达式、字符表达式、数值表达式、为空表达式、方法调用表达式、in子查询表达式、case表达式,x1,x2,x3

xn表示字段、文本、数值、关键字、表达式。
66.例如d字段是由sum(case whenc is null then b else a end)表达式生成的,那么通过对转换关系进行递归解析,最终可以得到如下解析关系:
67.d=case表达式(c is null,b,a)
68.d=case表达式(为空表达式(c),b,a)
69.由于a,b,c都是字段,所以终止字段解析过程,从而得到(c,b,a)

d的字段级血缘关系。
70.血缘关系解析的流程如下:
71.读取sql文件,进行sql清洗得到规则化的sql语句列表;循环解析每条sql,基于druidsqlparser解析引擎构建selectlineageparser、createlineageparser、updatelineageparser、mergelineageparser、insertlineageparser、producelineageparser、indexlineageparser,针对sql类型调用不同血缘解析器,采用广度递归的方式对sql解析,从而从sql、存储过程和索引中获取字段级别的血缘映射关系;对血缘关系进行压缩和过滤处理,将etl脚本、存储过程中的中间表字段进行剔除,得到最终的源字段和目标字段的血缘关系,即源字段和元数据信息的血缘关系;通过计算血缘关系中源字段和目标字段的文本编辑距离,实现血缘关系中的源字段映射到目标字段上,即映射到元数据信息对应的本体实例数据上,最后通过实体链接将血缘关系同步到元数据知识图谱中。
72.f.对元数据知识图谱进行质量评估,根据评估结果对元数据知识图谱进行优化,质量评估包括如下步骤f1~f3当中的至少一个:
73.f1.获取用户检测元数据知识图谱中的实体关系是否与实际情况一致的结果,根据一致性检测结果对元数据知识图谱进行质量评估。
74.在生成元数据知识图谱之后,用户查看元数据知识图谱中的各个实体关系是否与实际情况一致,若一致则意味着质量评估结果较好,用户向系统输入相应的评估结果,若不一致则意味着质量评估结果较差,用户向系统输入相应的评估结果,系统根据评估结果对元数据知识图谱进行优化。
75.f2.获取用户检测元数据知识图谱中的各个实体的血缘关系是否完整的结果,根据完整性检测结果对元数据知识图谱进行质量评估。
76.在生成元数据知识图谱并将血缘关系同步到元数据知识图谱中之后,用户将血缘关系同步到元数据知识图谱中各个实体的血缘关系是否完整,若完整则意味着质量评估结果较好,用户向系统输入相应的评估结果,若不完整则意味着质量评估结果较差,用户向系统输入相应的评估结果,系统根据评估结果对元数据知识图谱进行优化。
77.f3.获取用户对元数据知识图谱中的实体进行时效性检测的结果,根据时效性检测结果对元数据知识图谱进行质量评估。
78.在生成元数据知识图谱之后,用户对标与元数据知识图谱有较高重合度的高质量外部数据作为基准数据,定期对目标知识图谱进行质量和对比检测,保证实体信息的时效性,若时效性较好则意味着质量评估结果较好,用户向系统输入相应的评估结果,若时效性较差则意味着质量评估结果较差,用户向系统输入相应的评估结果,系统根据评估结果对元数据知识图谱进行优化。
79.如上所述仅为本发明创造的实施方式,不以此限定专利保护范围。本领域技术人员在本发明创造的基础上作出非实质性的变化或替换,仍落入专利保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1