本技术涉及数据处理,特别是一种基于隐含超类挖掘的本体生成方法、装置和设备。
背景技术:
1、本体,是指特定领域的概念集合及其内在逻辑关系的规范化语义描述,为领域数据提供了基本的分类框架与关联描述机制,进而对数据蕴含的语义进行合理组织。本体技术为领域概念及其关系提供了标准语义描述,是数据语义集成和知识共享的基础。
2、从关系型数据库(relational databases,rdb)中自动地生成本体一直是语义本体领域的研究热点。然而,现有的面向关系数据库的本体生成方法只考虑了关系数据库中最基本的本体语义,例如表名对应于类名、外键名对应于对象属性,无法挖掘元数据所未直接表达的隐含语义,使得生成的本体会丢失部分本体语义信息。因此,有必要开发一种基于隐含超类挖掘的本体生成方法、装置和设备,以提高生成的本体的准确率。
技术实现思路
1、鉴于上述问题,本技术实施例提供了一种基于隐含超类挖掘的本体生成方法、装置和设备,以便克服上述问题或者至少部分地解决上述问题。
2、本技术实施例的第一方面,提供了一种基于隐含超类挖掘的本体生成方法,所述方法包括:
3、从关系数据库中获取待处理的多个关系数据表;
4、提取所述多个关系数据表中各个数据列的列名称,获取每个列名称在所述多个关系数据表中的出现次数信息;
5、根据所述出现次数信息,确定目标列名称,所述目标列名称表示集中出现在所述多个关系数据表中的高频列名称;
6、根据所述目标列名称,从所述多个关系数据表中确定子类关系数据表;
7、将所述目标列名称所对应的数据列作为隐含超类所具有的数据列,将所述子类关系数据表所对应的类,作为所述隐含超类的子类;所述隐含超类表征所述多个关系数据表之间的主要特征;
8、根据所述隐含超类,生成针对所述多个关系数据表的关系型数据本体。
9、在一种可能的实施方式中,根据所述出现次数信息,确定目标列名称,包括:
10、根据所述出现次数信息,排除各个数据列的列名称中的干扰列名称;
11、将剩余的列名称按照出现次数从高到低的顺序,进行排列,得到候选序列;
12、对于所述候选序列中的任一列名称,获取其相邻的两个列名称,组成候选数组;
13、按照出现次数从高到低的顺序,依次计算每个候选数组的标准差;
14、根据每个所述候选数组的标准差,将满足第一条件的候选数组中的列名称确定为所述目标列名称。
15、在一种可能的实施方式中,所述干扰列名称至少包括:第一干扰列名称和第二干扰列名称,所述根据所述出现次数信息,排除各个数据列的列名称中的干扰列名称,包括:
16、根据所述出现次数信息,将出现次数大于或等于最高出现次数阈值的列名称,作为第一干扰列名称排除;
17、根据所述出现次数信息,将出现次数为1的列名称,作为第二干扰列名称排除。
18、在一种可能的实施方式中,根据每个所述候选数组的标准差,将满足第一条件的候选数组中的列名称确定为所述目标列名称,包括:
19、在所述候选数组的标准差大于预设标准差阈值的情况下,确定所述候选数组不满足所述第一条件,按照出现次数从高到低的顺序,继续计算下一候选数组的标准差;
20、在所述候选数组的标准差小于或等于所述预设标准差阈值的情况下,确定所述候选数组满足所述第一条件,将满足所述第一条件的候选数组中的列名称确定为目标列名称;
21、在所述候选数组的标准差再一次出现大于预设标准差阈值的情况下,或,在所有候选数组的标准差计算完成的情况下,停止对后续候选数组的标准差的计算。
22、在一种可能的实施方式中,根据所述目标列名称,从所述多个关系数据表中确定子类关系数据表,包括:
23、将所述目标列名称所对应的数据列放入目标数组中;
24、计算所述多个关系数据表中,每个关系数据表所包含的所述目标数组中的数据列的列数量;
25、将列数量大于或等于预设列数量阈值的关系数据表,确定为所述子类关系数据表。
26、在一种可能的实施方式中,在排除所述干扰列名称后,所述方法还包括:
27、在剩余的列名称的出现次数的最大值小于或等于最低频率阈值的情况下,停止执行查找目标列的操作,确定所述多个关系数据表中不包含所述隐含超类。
28、在一种可能的实施方式中,所述根据所述隐含超类,生成针对所述多个关系数据表的关系型数据本体,包括:
29、对于所述多个关系数据表,分别创建对应的本体类;
30、根据所述隐含超类,创建所述隐含超类和所述子类关系数据表所对应的实体类之间的父子类关系;
31、为所述隐含超类的每个数据列在对应的本体中创建一个同名数据属性,使其定义域为所述隐含超类,其值范围为该数据列的sql数据类型;
32、对于每个所述关系数据表中的主键,为主键内的每个数据列,在本体中创建一个同名数据属性,使其定义域为对应的本体类,其值范围为该数据列的sql数据类型。
33、本技术实施例第二方面提供了一种基于隐含超类挖掘的本体生成装置,所述装置包括:
34、数据获取模块,用于从关系数据库中获取待处理的多个关系数据表;
35、出现次数信息获取模块,用于提取所述多个关系数据表中各个数据列的列名称,获取每个列名称在所述多个关系数据表中的出现次数信息;
36、目标列名称确定模块,用于根据所述出现次数信息,确定目标列名称,所述目标列名称表示集中出现在所述多个关系数据表中的高频列名称;
37、子类关系数据表确定模块,用于根据所述目标列名称,从所述多个关系数据表中确定子类关系数据表;
38、隐含超类生成模块,用于将所述目标列名称所对应的数据列作为隐含超类所具有的数据列,将所述子类关系数据表所对应的类,作为所述隐含超类的子类;所述隐含超类表征所述多个关系数据表之间的主要特征;
39、本体创建模块,用于根据所述隐含超类,生成针对所述多个关系数据表的关系型数据本体。
40、在一种可能的实施方式中,所述目标列名称确定模块,包括:
41、干扰列名称排除子模块,用于根据所述出现次数信息,排除各个数据列的列名称中的干扰列名称;
42、候选序列生成子模块,用于将剩余的列名称按照出现次数从高到低的顺序,进行排列,得到候选序列;
43、候选数组生成子模块,用于对于所述候选序列中的任一列名称,获取其相邻的两个列名称,组成候选数组;
44、标准差计算子模块,用于按照出现次数从高到低的顺序,依次计算每个候选数组的标准差;
45、目标列名称确定子模块,用于根据每个所述候选数组的标准差,将满足第一条件的候选数组中的列名称确定为所述目标列名称。
46、在一种可能的实施方式中,所述干扰列名称至少包括:第一干扰列名称和第二干扰列名称,所述干扰列名称排除子模块,包括:
47、第一排除单元,用于根据所述出现次数信息,将出现次数大于或等于最高出现次数阈值的列名称,作为第一干扰列名称排除;
48、第二排除单元,用于根据所述出现次数信息,将出现次数为1的列名称,作为第二干扰列名称排除。
49、在一种可能的实施方式中,所述目标列名称确定子模块,包括:
50、第一目标列名称确定单元,用于在所述候选数组的标准差大于预设标准差阈值的情况下,确定所述候选数组不满足所述第一条件,按照出现次数从高到低的顺序,继续计算下一候选数组的标准差;
51、第二目标列名称确定单元,用于在所述候选数组的标准差小于或等于所述预设标准差阈值的情况下,确定所述候选数组满足所述第一条件,将满足所述第一条件的候选数组中的列名称确定为目标列名称;
52、停止单元,用于在所述候选数组的标准差再一次出现大于预设标准差阈值的情况下,或,在所有候选数组的标准差计算完成的情况下,停止对后续候选数组的标准差的计算。
53、在一种可能的实施方式中,所述子类关系数据表确定模块,包括:
54、目标数组创建子模块,用于将所述目标列名称所对应的数据列放入目标数组中;
55、列数量计算子模块,用于计算所述多个关系数据表中,每个关系数据表所包含的所述目标数组中的数据列的列数量;
56、子类关系数据表确定子模块,用于将列数量大于或等于预设列数量阈值的关系数据表,确定为所述子类关系数据表。
57、在一种可能的实施方式中,所述装置还包括:
58、停止确定模块,用于在排除所述干扰列名称后,在剩余的列名称的出现次数的最大值小于或等于最低频率阈值的情况下,停止执行查找目标列的操作,确定所述多个关系数据表中不包含所述隐含超类。
59、在一种可能的实施方式中,所述本体创建模块,包括:
60、第一创建子模块,用于对于所述多个关系数据表,分别创建对应的本体类;
61、第二创建子模块,用于根据所述隐含超类,创建所述隐含超类和所述子类关系数据表所对应的实体类之间的父子类关系;
62、第三创建子模块,用于为所述隐含超类的每个数据列在对应的本体中创建一个同名数据属性,使其定义域为所述隐含超类,其值范围为该数据列的sql数据类型;
63、第四创建子模块,用于对于每个所述关系数据表中的主键,为主键内的每个数据列,在本体中创建一个同名数据属性,使其定义域为对应的本体类,其值范围为该数据列的sql数据类型。
64、本技术实施例第三方面还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上的计算机程序,所述处理器执行所述计算机程序以实现本技术实施例第一方面所述的基于隐含超类挖掘的本体生成方法中的步骤。
65、本技术实施例第四方面还提供了一种计算机可读存储介质,其上存储有计算机程序/指令,该计算机程序/指令被处理器执行时实现本技术实施例第一方面所述的基于隐含超类挖掘的本体生成方法中的步骤。
66、本技术实施例第五方面还提供了一种计算机程序产品,所述计算机程序产品在电子设备上运行时,使处理器执行时实现如本技术实施例第一方面所述的基于隐含超类挖掘的本体生成方法中的步骤。
67、本技术实施例提供的一种基于隐含超类挖掘的本体生成方法,该方法包括:从关系数据库中获取待处理的多个关系数据表;提取所述多个关系数据表中各个数据列的列名称,获取每个列名称在所述多个关系数据表中的出现次数信息;根据所述出现次数信息,确定目标列名称,所述目标列名称表示集中出现在所述多个关系数据表中的高频列名称;根据所述目标列名称,从所述多个关系数据表中确定子类关系数据表;将所述目标列名称所对应的数据列作为隐含超类所具有的数据列,将所述子类关系数据表所对应的类,作为所述隐含超类的子类;所述隐含超类表征所述多个关系数据表之间的主要特征;根据所述隐含超类,生成针对所述多个关系数据表的关系型数据本体。
68、具体有益效果在于:
69、相比于直接取最高频率出现的列名称,本技术实施例根据出现次数信息,确定集中出现在多个关系数据表中的高频列名称为目标列名称,以排除一部分表征无效信息的广泛出现在各个关系数据表中的列名称(例如、id列等)。并且,使找到的目标列名称之间具有一定的关联性(多个列名称往往集中出现在关系数据表中)。
70、由此,本技术实施例根据目标列名称,确定多个关系数据表中目标列名称集中出现的子类关系数据表,即子类关系数据表中包含较多的公共数据列,表示子类关系数据表之间存在某些相同属性(目标列名称所对应的数据列)。从而将目标列名称所对应的数据列作为隐含超类所具有的数据列,将子类关系数据表所对应的类,作为隐含超类的子类,再根据该虚拟超类,应用本体生成规则,生成多个关系性数据本体,以挖掘关系数据表中的合理的隐含超类(即隐含语义),避免语义遗漏,得到更为准确的本体。