本发明涉及一种基于关系模型转换的复杂装备知识图谱冷启动方法。
背景技术:
::1、知识图谱以图链接的方式对知识进行组织,在知识搜索、推理计算等方面具有显著优势,随着水平领域知识图谱技术的不断成熟,垂直领域知识图谱构建与应用已成为当前的研究热点。经过多年的积累,复杂装备在设计、制造、运维领域各业务系统中已经积累了部分知识,有效提取整合这些知识是构建知识图谱的首要任务。2、与传统知识图谱不同,复杂装备知识的应用具有与零部件强关联且对知识的完整性要求高的特点。目前尚未发现有针对复杂装备知识完整性的图谱构建方法,同时现有的结构化数据向知识三元组转换算法仅能将数据发布为虚拟的rdf(resourcedescriptionframework,资源描述框架)数据,无法直接导入原生图数据库构建图谱。3、针对上述问题,本发明研究复杂装备知识图谱本体约束模型,设计基于关系模型的结构化知识本体层和数据层映射算法,对本体和数据进行完整性检查,实现复杂装备知识图谱的冷启动,能大大提升复杂装备知识图谱的构建效率。技术实现思路1、为了实现上述发明目的,本发明提供了以下技术方案:2、一种基于关系模型转换的复杂装备知识图谱冷启动方法,包括步骤s1-步骤s7:步骤s1:建立复杂装备知识图谱本体约束模型;步骤s2:建立产品族gbom;步骤s3:关系选择及基于主外键的关系模式分类;步骤s4:关系模式向本体模式转换;步骤s5:本体模式完整性检查及补全;步骤s6:知识数据抽取检查转换入库;步骤s7:领域字典生成与补全;3、其中,步骤s1:建立复杂装备知识图谱本体约束模型;步骤s1具体包括:4、约束1:每个领域图谱至少包含一类实体类知识,且每个实体类知识均存在与gbom节点间的有向可达路径,以保证知识与零部件间关系的完整性;本约束为数据层强约束,即本体模式和数据存入均需满足本约束;5、约束2:每个领域可以有多个元类概念,但每个元类概念至少与一个实体类概念之间建立instance-of联系,以保证元类知识的可用性;本约束为本体层弱约束,即本体模式需满足本约束,并不强制每条知识都满足本约束;6、约束3:实体类知识之间的弱实体识别联系用part-of构建,以便保证弱实体类知识的完整性;本约束为数据层强约束,即本体模式和数据存入图谱均需满足本约束;7、其中,步骤s3:关系选择及基于主外键的关系模式分类;步骤s3包括步骤s31-步骤s32:8、步骤s31:用户在系统的引导下选择蕴含知识的关系表及属性,步骤s31包括步骤s311-步骤s313:9、步骤s311:连接待转换的关系数据库,读取数据库字典,加载用户关系表对象及语义;10、步骤s312:用户选择1张或多张关系表,形成待转换表集合set-tlist[];11、步骤s313:对于set-tlist[]中的每张表tablei,系统加载除自增字段外的每个属性构成属性列表,用户选择表中需要转换的属性,形成属性集attri[];12、步骤s32:关系表类型判断分类,步骤s32包括步骤s321-步骤s327;13、步骤s321:初始化关系表分类队列,具体为:联系表队列relationlist[]=null,元表队列metalist[]=null,实体表队列entitylist[]=null;14、步骤s322:定义并初始化表指针i=1;15、步骤s323:对set-tlist[]中的每张表tablei,获取表的主键属性集pki[]和外键属性集fki[];16、步骤s324:通过式(1)判断表中所有属性是否均为主键属性或外键属性:17、pki[] ∪ fki[] = ∪attri (1)18、式中∪表示取并集,∪attri表示表tablei的所有属性;若式(1)两边相等成立,则将表tablei加入联系表队列relationlist[],转到步骤s327;19、步骤s325:通过式(2)判断是否为元类知识表:20、(fki[]=null λ fk(fki)≥2)= true (2)21、式中λ表示左右两个条件同时满足,fki[]=null表示表tablei无外键,fk(fki)表示查询主键fki在set-tlist[]中做外键的表的数量,true表示为真,若(2)成立,表示该类知识被多类其它知识使用,将表tablei加入元表队列metalist[],转到步骤s327;22、步骤s326:将表tablei加入实体表队列entitylist[],转到步骤s327;23、步骤s327:i=i+1,判断i>set-tlist[]中表数量是否成立,不成立则转到步骤s323,成立则结束;24、其中,步骤s4:关系模式向本体模式转换;步骤s4包括步骤s41-步骤s43;25、步骤s41:实体表队列entitylist[]向本体概念及联系转换;步骤s41包括s411-s412:26、步骤s411:实体类转换:对entitylist[]中的每一张表tablei,将其转换为一个实体类,选中的属性转换为该类的属性,建立类与各选中属性间的attribute-of联系;27、步骤s412:实体类间联系转换,步骤s412包括步骤s4121-步骤s4123:28、步骤s4121:查询entitylist[]所有外键对应的主表集primarytlist[];29、步骤s4122:计算primarytlist[]∩entitylist[];30、步骤s4123:对于属于交集中的每个表,建立其转换的类与entitylist[]中从表转换的类之间的part-of联系,并且主键对应表为头实体,外键对应表为尾实体;31、步骤s42:元表队列metalist[]向本体概念及联系转换;s42包括步骤s421-步骤s424:32、步骤s421:定义并初始化表指针i=1;33、步骤s422:建立元类,取tablei表名作为元类名,以表中选中属性作为元类属性,建立类与各选中属性之间的attribute-of联系;34、步骤s423:查询tablei主键作为外键关联的从表集,建立tablei对应的类和从表对应的实体类之间的instance-of联系;35、步骤s424:i=i+1,判断i>metalist[]中表数量是否成立,不成立则转到步骤s422;36、步骤s43:联系表队列relationlist[]向本体联系转换;步骤s43包括步骤s431-步骤s432:37、步骤s431:对relationlist[]中的每一张表tablei,按tablei的外键查询关联的主表集;38、步骤s432:取主表集中的主表两两组合,对每一组合建立对应类之间的联系,联系名为关系表名;39、其中,步骤s5:本体模式完整性检查及补全;步骤s5包括步骤s51-步骤s53:40、步骤s51:按约束1查询与gbom类必须建立联系的实体类,具体包括:41、步骤s511:查询本体中除存在part-of联系的弱实体类外的所有实体类;42、步骤s512:用类名查询实体表集合entitylist[]获得除去弱实体外实体类对应的表集合instancelist[];43、步骤s52:将gbom类加入领域本体中;44、步骤s53:判断并建立实体类与gbom类间联系,步骤s53包括步骤s531-步骤s533:45、步骤s531:初始化表指针i=1;46、步骤s532:对instancelist[]中的第i个表tablei,判断其是否能建立与gbom类的联系,步骤s532包括步骤s5321-步骤s5324:47、步骤s5321:查询获得tablei的属性集;48、步骤s5322:对属性名及语义分词,识别是否有零部件标识属性;49、步骤s5323:若识别出零部件标识属性,显示由用户确认;若未识别出零部件标识属性,由用户选配;50、步骤s5324:若取得零部件标识属性,则建立该实体类与gbom类之间的in stance-of联系,否则将tablei对应的实体类及关系从本体中删除;51、步骤s533:i=i+1,判断i>instancelist[]表数量是否成立,若不成立则转到步骤s5321。52、步骤s2中,针对待构建知识图谱的产品,在知识图谱系统中提供gbom构建接口,用户通过接口自上而下建立各产品族gbom,根节点为产品族名称,根节点下可添加子系统节点,各子系统节点下可添加零部件节点,每个节点包含编码和名称属性,逐层构建完成形成gbom结构树。53、步骤s6包括步骤s61-步骤s63;54、步骤s61:元类数据抽取转换入库;55、步骤s62:实体类数据和关系抽取检查转换入库;56、步骤s63:实体关系补全。57、步骤s61包括步骤s611-步骤s615;58、步骤s611:定义并初始化表指针i=1;59、步骤s612:查询tablei,提取选中的各属性值;60、步骤s613:对各个属性值的每行值,按<实体,attribute-of,属性值>三元组转换,形成三元组集;61、步骤s614:将三元组集存入知识图谱;62、步骤s615:i=i+1,判断i>metalist[]表数量是否成立,若不成立则转到步骤s612。63、步骤s62包括步骤s621-步骤s624;64、步骤s621:读取经步骤s4和步骤s5转换生成的本体模式,查询与gbom存在联系的实体类存入实体类集合instances[];65、步骤s622:对instances[]中的每个实体类,进行实例数据的完整性约束检查和转换入库;66、步骤s623:读取经步骤s4和步骤s5转换生成的本体模式,查询与gbom不存在直接联系的弱实体类集合phantoentity[];67、步骤s624:对每个phantoentity[i],进行实例数据的完整性约束检查和转换入库。68、步骤s622包括步骤s6221-步骤s6227;69、步骤s6221:定义并初始化表指针i=1;70、步骤s6222:查找实体类对应的关系表,获取零部件标识属性;71、步骤s6223:查询零部件标识属性的属性值;72、步骤s6224:对零部件标识属性值通过相似度匹配计算其与gbom节点值的对应关系;73、步骤s6225:获取匹配的数据,将对应的数据转换为知识实体,抽取属性值,形成<实体,attribute-of,属性值>三元组集,抽取实体外键关联的gbom节点,形成<实体,instance-of,gbom节点>三元组集,将三元组集写入图谱;74、步骤s6226:对于不匹配的数据,以数据列表形式返回,请用户添加匹配关系,添加关系后按步骤s6225方法转换入库,不能添加匹配关系的数据则丢弃;75、步骤s6227:i=i+1,判断i>instances[]表数是否成立,若不成立则转到步骤s6222。76、步骤s624包括步骤s6241-步骤s6248;77、步骤s6241:定义并初始化表指针i=1;78、步骤s6242:查找phantoentity[i]对应的关系表tablei;79、步骤s6243:按本体中phantoentity[i]的part-of联系查找识别实体类;80、步骤s6244:通过识别实体类找到该类对应的关系表tablej;81、步骤s6245:查询tablei中与tablej关联的外键属性值;82、步骤s6246:获取tablei中满足与tablej参照完整性的数据集;83、步骤s6247:按本体属性抽取属性值,形成<弱实例,attribute-of,属性值>三元组集,按外键联系抽取联系实例,形成<弱实体,part-of,识别实体>三元组集,将三元组集写入图谱;84、步骤s6248:i=i+1,判断i>phantoentity[]表数是否成立,若不成立则转到步骤s6242。85、步骤s63包括步骤s631-步骤s636;86、步骤s631:读取联系表队列relationlist[]中的数据表;87、步骤s632:定义并初始化表指针i=1;88、步骤s633:获取关系表tablei关联的主表;89、步骤s634:用主表名查询主表在本体类中数量;90、步骤s635:若数量大于等于2,对外键集合中属性取2个进行组合,对每个组合中的外键值对,匹配知识图谱中的实体标识,建立两个实体间的关系边;91、步骤s636:i=i+1,判断i>relationlist[]表数是否成立,若不成立则转到步骤s633。92、步骤s7包括步骤s71-步骤s73;93、步骤s71:提取每个实体类已存入图数据库中的实体名作为字典项加入该类知识字典;94、步骤s72:读取本体中与该实体类联系的元类,按字典项查询元类中分类值,建立字典功能分类;95、步骤s73:通过开发接口,按实体类视图为用户提供字典项管理功能,可添加新字典项,添加字典项同义词。96、与现有技术相比,本发明的有益效果:97、(1)发明人在实践中发现:复杂装备由众多零部件装配而成,其设计、制造和运维过程的知识均针对各个零部件,而知识的使用也是基于零部件去查询和索引。本发明针对复杂装备知识特点提出了一种知识完整性约束模型,对实体类知识建立其存在性约束和与gbom节点间数据层强约束、对元类知识建立其与实体类知识间本体层弱约束、对存在部分与整体关系的实体类之间建立数据层强约束,以保证知识的完整性和可用性。98、(2)发明人在实践中发现:复杂装备设计、制造和运维阶段各既有业务信息系统中已经积累了大量的结构化知识,有效提取并融合这些知识,对构建复杂装备知识图谱能起到事半功倍的作用,然而目前关系数据向rdf数据转换方法仅能将数据发布为虚拟的rdf,无法直接构建图谱。本发明提出了一种关系模式向本体元概念、实体概念、属性和关系映射算法,基于选择的关系表,解析关系间参照完整性联系,实现本体层的模式转换。99、(3)发明人在实践中发现:按关系模式转换生成的知识图谱本体模式,无法满足复杂装备知识的完整性约束。本发明提出复杂装备知识图谱本体模型的完整性约束检查算法,计算每个实体类概念对应关系表的属性与gbom节点属性间是否匹配,通过匹配计算将gbom节点类补充进本体,补全gbom节点类与实体类间的联系,同时剔除无法关联的实体类。100、(4)发明人在实践中发现:由于关系数据库外键值可为空,并且各业务系统的零部件标识属性与gbom节点编码及名称可能存在差异,使实体类知识数据难以自动实现与gbom关联。本发明提出一种对本体模式中与gbom类关联的实体类数据对齐检验入库方法,通过相似度匹配及用户设置匹配,对匹配的数据抽取属性值,形成<实体,attribute-of,属性值>三元组集,抽取实体外键关联的gbom节点,形成<实体,instance-of,gbom节点>三元组集,实现实体类数据抽取入库。101、(5)发明人在实践中发现:对于存在部分与整体关系的知识数据,若丢失与整体间的联系,知识本身并无单独应用价值。本发明提出一种针对弱实体知识,建立其与识别实体联系,将<弱实例,attribute-of,属性值>三元组与联系<弱实体,attribute-of,识别实体>三元组,一同抽取写入图谱的方法。102、(6)发明人在实践中发现:关系数据库中已积累的实体概念类知识数据可作为构建领域字典的基础。本发明提出一种在抽取<实体-属性-属性值>时,将实体类知识实体名存入领域字典,并开放字典项和同义词管理接口的领域字典管理方法。当前第1页12当前第1页12