CN110347846A - 有时间约束的非连通知识图谱查询方法 - Google Patents
有时间约束的非连通知识图谱查询方法 Download PDFInfo
- Publication number
- CN110347846A CN110347846A CN201910638217.8A CN201910638217A CN110347846A CN 110347846 A CN110347846 A CN 110347846A CN 201910638217 A CN201910638217 A CN 201910638217A CN 110347846 A CN110347846 A CN 110347846A
- Authority
- CN
- China
- Prior art keywords
- query
- time
- node
- predicate
- inquiry
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/36—Creation of semantic tools, e.g. ontology or thesauri
- G06F16/367—Ontology
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Animal Behavior & Ethology (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种有时间约束的非连通知识图谱查询方法,本发明通过查询图接收器接收用户提交的查询请求,并按照时间顺序将查询请求放入查询等待队列;查询图分析器依次对查询等待队列中的每一个查询图进行分析;时间输入图查询器对时间输入图进行相应的查询处理,将查询结果送入时间集;时间约束处理器根据时间约束关系对时间集进行处理,得到主查询要满足的时间约束条件;根据时间约束,主查询处理器对主查询图进行处理,将查询结果送入结果集队列,能够进行有时间约束的非连通知识图谱查询,即查询图由非连通子图构成,子图间存在时间的约束关系,在时间知识图谱中通过子图匹配的相关技术,将符合时间约束关系的子图查询出来。
Description
技术领域
本发明涉及一种有时间约束的非连通知识图谱查询方法。
背景技术
知识图谱也被称为科学知识图谱,在图书情报界称为知识域可视化或知识领域映射地图,是显示知识发展进程与结构关系的一系列各种不同的图形,用可视化技术描述知识资源及其载体,挖掘、分析、构建、绘制和显示知识及它们之间的相互联系。知识图谱是以图形的方式表现实体、相关属性,以及实体之间的关系。2012年Google公司提出了知识图谱的概念,得到学术界和工业界的普遍认可,现已成为一个热点的研究领域。知识图谱把现实世界中的事物表示为实体,把实体间的联系表示为关系。比如Tom在A学校上学,Tom和A学校可以表示为实体,上学表示为两个实体间的关系。知识图谱是一个交叉研究领域,不同的计算机学科从不同的角度对知识图谱进行相关的研究,比如从数据库和数据管理角度出发,研究知识图谱的存储、查询等,从自然语言处理的角度出发,研究相关的语义、信息的抽取等。
目前,对于知识图谱的存储和查询,存在如下主要问题:
(1)没有考虑查询图中关系间存在的时间关系。大多数知识图谱都只关心主体与客体当前的关系,忽视了关系间存在着时间的约束关系;
(2)没有考虑由时间约束关系产生的非连通子图查询。知识图谱中引入时间,实体关系上会存在时间的相互制约,因而会产生有时间约束的非连通知识图谱查询。
发明内容
本发明的目的在于提供一种有时间约束的非连通知识图谱查询方法。
为解决上述问题,本发明提供一种有时间约束的非连通知识图谱查询方法,包括:
使用邻接表来存储时间知识图谱,在该邻接表中,每个表节点由ID、uLabel、ppro、tpre、hpre共5项组成,其中,ID表示图中节点的编号;uLabel表示节点的标签值;ppro是个指针,指向图谱中描述每个表节点的属性和属性值,每个属性用一个proItem对象描述,包括pro、value、next共3项,分别代表属性、属性值和指向下一个属性的指针;tpre是一个指针,表示知识图谱中哪些实体指向了该表节点所代表的实体,这些实体用preItem对象来描述,包括pre、obj、tf、next共4项,分别代表谓词、主体或宾语、时间段和指向下一个表节点的指针,相同谓词的按照时间先后连接;hpre指针表示该表节点所代表的实体指向知识图谱中哪些实体;
采用的索引表中每个表项由工D、predicate、rel共3项组成,其中,工D表示编号,predicate表示谓词,rel是一个指针,指向哪些主体和宾语之间包含该谓词,由一个reItem项表示,包括sub、obj、tfnext共4项组成,分别表示主体、宾语、时间段和指向下一个reItem项的指针;
查询图接收器接收用户提交的查询请求,并按照时间顺序将查询请求放入查询等待队列;
查询图分析器依次对查询等待队列中的每一个查询图进行分析,其中,查询图是具有时间约束的非连通图,查询分析器读取查询图,获取主查询图和时间输入图,解析主查询图和时间输入图在时间段上存在的关系,用非连通图深度优先遍历的方法遍历查询图,将所述查询图中只有时间参数为待查询对象的图作为时间输入图,将另外的子图作为主查询图;
时间输入图查询器对时间输入图进行相应的查询处理,将查询结果送入时间集,其中,时间输入图查询器查询时间输入图以获取待查的时间段;
时间约束处理器根据时间约束关系对时间集进行处理,得到主查询要满足的时间约束条件;
根据时间约束,主查询处理器对主查询图进行处理,将查询结果送入结果集队列;
步骤6:输出结果集,有时间约束的非连通知识图谱查询结束。
进一步的,在上述方法中,时间输入图查询器对时间输入图进行相应的查询处理,将查询结果送入时间集,其中,时间输入图查询器查询时间输入图以获取待查的时间段,包括:
(1)如果主体是确定的,则在存放时间知识图谱的邻接表中,读取第一个表节点,获得表节点的uLabel项,看该值是否和时间输入图中的主体一致,如果不一致,进入(2);如果一致,进入(3);如果主体是“*”,进入步骤(6),其中,主体为“*”表示无需查询的内容;
(2)继续读取邻接表中的下一个表节点,如已到达邻接表的最后一个表节点,则提示没有与查询对象相匹配的查询结果,退出查询;否则,获得表节点的uLabel项,看该值是否和查询对象中的主体一致,如果不一致,重复(2);如果一致,进入(3);
(3)在邻接表中找到该表节点hpre指针指向的第一个表节点对象preItem,读取其中的pre项,与查询对象中的谓语进行匹配,如果相同进入(4),否则继续读取下一个表节点对象preItem,直到pre项与查询对象中的谓语匹配,进入(4),如果没有查询到,则提示没有相匹配的查询结果,退出查询;
(4)读取当前表节点对象preItem中obj项所代表的表节点编号,若查询对象中的宾语为确定值,则根据obj项中表节点编号查询该表节点的uLabel值,并将该值和宾语进行匹配,若不相同继续读取下一个preItem项,直到匹配到相同的宾语或者已经是链表的最后一个表节点;如果在链表最后一个表节点上都没有匹配到相同的宾语,则提示没有相匹配的查询结果,退出查询。若匹配到相同的宾语,则读取tf项中的值存入临时时间集,进入(8);若查询对象中的宾语为“*”,进入(5);
(5)读取当前表节点对象preItem的tf项,存入临时时间集,继续读取下一个表节点对象preItem,直到该表节点的pre项和查询对象中的谓语不相匹配为止,将匹配项的tf值存入临时时间集,进入(8);
(6)在存放时间知识图谱的邻接表中,读取第一个表节点,获得表节点的uLabel项,看该值是否和时间输入图中的宾语一致,如果一致,进入(7);如果不一致,继续读取下一个表节点,直到uLabel项和宾语一致,进入(7),如果查询不到匹配的宾语,提示没有匹配的查询结果,退出查询。
(7)在邻接表中找到该表节点tpre指针指向的第一个节点对象preItem,读取其中的pre项,与查询对象中的谓语进行匹配,如果相同进入(5),否则继续读取下一个表节点对象preItem,直到pre项与查询对象中的谓语匹配,进入(5),如果没有查询到,则提示没有相匹配的查询结果,退出查询;
(8)将临时时间集中的时间段值送入时间集,时间输入图查询结束。
进一步的,在上述方法中,根据时间约束,主查询处理器对主查询图进行处理,将查询结果送入结果集队列,包括:
(1)如果主体是确定的,则在存放时间知识图谱的邻接表中,读取第一个表节点,获得表节点的uLabel项,看该值是否和主查询图中的主体一致,如果一致,进入(2);如果不一致,继续读取下一个表节点,直到该表节点的uLabel项和主查询图中的主体一致,进入(2),如果直到最后一个表节点都没有匹配到相同的值,则退出查询。如果主体是“?”,进入步骤(5),其中,“?”表示待查询项;
(2)在邻接表中找到该表节点中hpre指针指向的第一个节点对象preItem,读取其中的pre项,与查询对象中的谓语进行匹配,如果相同进入(3),否则继续读取下一个节点对象preItem,直到pre项与查询对象中的谓语匹配,进入(3),如果没有查询到,则提示没有相匹配的查询结果,退出查询;
(3)读取当前节点的tf项,看时间段是否满足时间约束条件,如果不满足,进入(4);如果满足,将tf值作为匹配到的时间段,读取当前节点的obj项所代表节点的编号,通过编号在邻接表中找到该节点的uLabel,并把该值作为查询到的宾语,将结果以<主体、谓词、宾语、时间段>的形式加入临时结果集,进入(4);
(4)继续读取下一个节点对象preItem,取出pre项,与查询对象中的谓语进行匹配,如果相同进入(3),如果不相同,查询结束,进入(12)。
(5)如果宾语是“?”,进入(9);如果宾语确定的,在邻接表中读取第一个表节点,获得表节点的uLabel项,看该值是否和主查询图查询对象中的宾语一致,如果一致,进入(6);如果不一致,继续读取下一个表节点,直到uLabel项和宾语一致,进入(6),如果查询不到匹配的宾语,提示没有匹配的查询结果,退出查询;
(6)在邻接表中找到该表节点tpre指针指向的第一个节点对象preItem,读取其中的pre项,与查询对象中的谓语进行匹配,如果相同进入(7),否则继续读取下一个节点preItem,直到pre项与查询对象中的谓语匹配,进入(7),如果没有查询到,则提示没有相匹配的查询结果,退出查询;
(7)读取当前节点的tf项,看时间段是否满足时间约束条件,如果不满足,进入(8);如果满足,将tf值作为匹配到的时间段,读取当前节点的obj项所代表节点的编号,通过编号在邻接表中找到该节点的uLabel,并把该值作为查询到的主体,将结果以<主体、谓词、宾语、时间段>的形式加入临时结果集,进入(8);
(8)继续读取下一个节点对象preItem,取出pre项,与查询对象中的谓语进行匹配,如果相同进入(7),如果不相同,查询结束,进入(12);
(9)在谓词索引图中找到第一个表节点,看predicate项是否和主查询对象的谓词相同,如果相同,进入(10),如果不同,继续找到下一个表节点,将predicate项和主查询对象的谓词相匹配,直到匹配到相同的表节点为止;如果没有匹配到相同的项,则提示没有匹配的查询结果,退出查询;
(10)找到表节点中rel指针指向的第一个节点项reItem,读取tf值,如果该值与时间约束关系不相符,进入(11);如果该值与时间约束关系相符,则将该节点中的sub值作为查询到的主体,obj项作为查询到的宾语,tf作为查询到的时间段,将结果以<主体、谓词、宾语、时间段>的形式加入临时结果集,进入(11);
(11)继续读取下一个节点项reItem,如果该值与时间约束关系相符,则将该节点中的sub值作为查询到的主体,obj项作为查询到的宾语,tf作为查询到的时间段,将结果以<主体、谓词、宾语、时间段>的形式加入临时结果集,重复(11),直到该谓词对应的最后一个reItem项,查询结束,进入(12);
(12)对临时结果集中的结果进行进一步的确认,如果结果项中存在<主体、谓词、宾语>和时间查询图中的<主体、谓词、宾语>完全相同的项,则将该结果项从临时结果项中去除;将临时结果集中保留下来的值送入结果集队列,主查询图查询结束。
与现有技术相比,本发明通过查询图接收器接收用户提交的查询请求,并按照时间顺序将查询请求放入查询等待队列;查询图分析器依次对查询等待队列中的每一个查询图进行分析;时间输入图查询器对时间输入图进行相应的查询处理,将查询结果送入时间集,其中,时间输入图查询器查询时间输入图以获取待查的时间段;时间约束处理器根据时间约束关系对时间集进行处理,得到主查询要满足的时间约束条件;根据时间约束,主查询处理器对主查询图进行处理,将查询结果送入结果集队列;输出结果集,有时间约束的非连通知识图谱查询结束。进行有时间约束的非连通知识图谱查询,即查询图由非连通子图构成,子图间存在时间的约束关系,在时间知识图谱中通过子图匹配的相关技术,将符合时间约束关系的子图查询出来。
附图说明
图1是本发明一实施例的时间关系图;
图2是本发明一实施例的时间知识图谱的逻辑结构图;
图3是本发明一实施例的时间知识图谱的存储结构图;
图4是本发明一实施例的谓词索引图;
图5是本发明一实施例的装置的结构框图;
图6是本发明一实施例的时间约束非连通查询图示例图;
图7是本发明一实施例的查询图分析图;
图8是本发明一实施例的查询实例图;
图9是本发明一实施例的查询分析器分析后的查询图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明是关于知识图谱的查询,目前数据管理方法主要有基于关系数据模型的方法和基于图数据模型的方法,本发明采用了基于图数据模型的方法。
1.时间知识图谱
知识图谱普遍采用了语义网框架中RDF(Resource Description Framework,资源模式框架)模型来表示数据。Claudio Gutierrez等人将时间因素加入RDF数据,使之成为了RDF时间图。一个有序的时间对[a,b](a≤b),表示从a到b的一个时间区间,在原有RDF图中加入时间对,构成RDF时间图。在知识图谱的实体关系上加入这样的时间对,形成时间知识图谱,在该知识图谱上进行数据查询,可以查询出带有时间信息的知识。
2.图匹配技术
现有研究大多是将知识图谱查询转化为成子图匹配的问题。从图的角度出发,知识图谱由大型的数据图表示,图中的顶点和边分别代表知识图谱中的实体和关系,用户查询用一个查询图表示,利用图查询技术在数据图中找出与查询图能够匹配的子图,从而得到相关的查询结果。子图匹配一般可以分为子图同构和子图模拟两种。子图同构对图的拓扑结构有严格的要求,是在数据图中搜索出与查询图完全匹配的子图,由于噪声的存在,使得实际查询过程中容易遗漏满足用户查询需求的查询结果。子图模拟是子图的近似匹配,能够屏蔽一定的噪声,匹配的结果与查询图之间可能存在一定差别,但是通常可以满足实际的使用需求。
3.时间关系
在时间的处理上,ALLEN将时间关系分成了图1所示的13种关系。本发明查询图中的时间约束关系也是基于这几种,主要是先于关系(before)、部分重叠关系(overlaps)、起始关系(starts)、包含关系(contains)、终止关系(finishes)、相遇关系(meets)和相等关系(equals)。
知识图谱通常采用RDF模型来表示数据,RDF的三元组<主体(subject),谓词(predicate),宾语(object)>用于描述知识图谱中的资源间的关系和资源的特征。其中主体是一个被描述的资源,由URI来表示,图1中“y:公司A”表示一个资源,y表示URI的前缀。谓词可以表示主体的属性,或者表示主体和宾语之间关系;当表示属性时,宾语就是属性值,否则宾语是由URI表示的资源。图2中<y:Tom,籍贯,苏州>,“籍贯”就表示属性,“苏州”表示属性值;<y:Sam,朋友,y:Mike>,“朋友”表示主体和宾语之间的关系,即主体“y:Sam”和“y:Mike”是朋友关系。本发明是针对时间知识图谱,因而采用四元组来表征资源的特征和资源间的关系,<主体(subject),谓词(predicate),宾语(object),时间段(time frame)>,如图2<y:Mike,工作,y:公司B,[1998,2010]>表示Mike在1998年到2010年是在公司B工作。每个时间段都有起始值和终止值,时间段中的“*”代表过去或者至今,比如图2中<y:Mike,工作,y:公司C,[2011,*]>表示Mike从2011年至今一直在C公司工作。
本发明所要解决的技术问题主要是:
进行有时间约束的非连通知识图谱查询,即查询图由非连通子图构成,子图间存在时间的约束关系,在时间知识图谱中通过子图匹配的相关技术,将符合时间约束关系的子图查询出来。
本发明是一种支持时间约束关系的非连通知识图谱查询装置,首先给出时间知识图谱的逻辑结构和存储结构,其次给出查询图的逻辑结构,最后说明整个查询装置。
图2所示的是时间知识图谱的逻辑结构。时间知识图谱是由5元组构成的集合,G=<V,LV,E,LE,TE>,其中V是知识图谱中实体点的集合;LV是知识图谱中实体点值的集合;E是连接点与点的边;LE是边上关系值的集合;TE是边上时间段的集合。
在本发明中使用邻接表来存储时间知识图谱。图3所示的是本发明装置采用的存储结构。
在该邻接表中,每个表节点由(ID,uLabel,ppro,tpre,hpre)5项组成。ID表示图中节点的编号;uLabel表示节点的标签值;ppro是个指针,指向图谱中描述每个节点的属性和属性值,比如y:Mike节点有名字、性别等,每个属性用一个proItem对象描述,包括(pro,value,next)3项,分别代表属性、属性值和指向下一个属性的指针;tpre是一个指针,表示知识图谱中哪些实体指向了该表节点所代表的实体,这些实体用preItem对象来描述,包括(pre,obj,tf,next)4项,分别代表谓词、主体(或宾语)、时间段和指向下一个节点的指针,相同谓词的按照时间先后连接;hpre指针表示该表节点所代表的实体指向知识图谱中哪些实体。
下面以0号表节点为例说明该存储结构。0号节点的uLabel为“y:Mike”,ppro指针指向了描述它的属性和相关的属性值,比如名字是“Mike”,性别是“男”,籍贯是“上海”,出生年月是“1976”。tpre指向一个preItem对象,它的obj项为1,说明1号节点有一条边指向0号节点,边上的关系为“朋友”,时间是从1996年至今。hpre指向的第一个preItem对象,它的obj为5,表示5号节点,即0号节点有一条指向5号节点的边,边上的关系为“工作”,时间区间为[1998,2010]。该对象的next指针指向下一个preItem对象,说明0号节点还有一条指向6号节点的边。
图4所示的是本发明装置采用的谓词索引图,索引表中每个表项由(ID,predicate,rel)3项组成,其中ID表示编号,predicate表示谓词,rel是一个指针,指向哪些主体和宾语之间包含该谓词,由一个reItem项表示,包括(sub,obj,tf,next)4项组成,分别表示主体、宾语、时间段和指向下一个reItem项的指针。
给定一个时间知识图谱,进行有时间约束的非连通知识图谱查询,图5所示的就是本发明所述的查询装置结构框图。
有时间约束的非连通知识图谱查询装置的具体执行方法如下:
步骤1:查询图接收器接收用户提交的查询请求,并按照时间顺序将查询请求放入查询等待队列;
步骤2:查询图分析器依次对查询等待队列中的每一个查询图进行分析,其中,查询图是具有时间约束的非连通图,比如图6是本发明的一个查询图示例,查询在Tom工作之前就退休的那些人,他们曾经的工作履历情况。
在本发明中四元组的主体或者宾语为“*”表示无需查询的内容,即用户不关心该项具体的值是什么,“?”表示待查询项,比如图6中,四元组<y:Tom,工作,*,?t1)表示查询Tom工作的时间,无需查询出具体的工作单位。<?p,工作,?c,?t2)表示查询工作经历。t1和t2分别代表不同四元组<y:Tom,工作,*,t1)>和<?p,工作,?c,t2)中的时间段,t2before t1代表时间约束关系,t2要在t1开始之前。
查询分析器读取查询图,获取主查询图和时间输入图,解析它们时间段上存在的关系,用非连通图深度优先遍历的方法遍历查询图,将所述查询图中只有时间参数为待查询对象的图作为时间输入图,将另外的子图作为主查询图。如图7所示。
分析后的图以查询对象的形式呈现:在时间输入图的查询对象中,对于不需要确定值的参数,对象中用“*”表示。时间输入图分析后的查询对象有以下三种形式(确定的主体、谓词、确定的宾语)、(确定的主体、谓词、*)以及(*、谓词、确定的宾语)。在主查询图的查询对象中,对于待查的参数,用“?”表示。主查询图分析后的查询对象有以下三种形式(确定的主体、谓词、?)、(?、谓词、确定的宾语)、(?、谓词、?)。
步骤3:时间输入图查询器对时间输入图进行相应的查询处理,将查询结果送入时间集,其中,时间输入图查询器查询时间输入图以获取待查的时间段t1。所述时间输入图查询器的工作过程如下:
(1)如果主体是确定的,则在存放时间知识图谱的邻接表中,读取第一个表节点,获得表节点的uLabel项,看该值是否和时间输入图中的主体一致,如果不一致,进入(2)。如果一致,进入(3)。如果主体是“*”,进入步骤(6)。
(2)继续读取邻接表中的下一个表节点,如已到达邻接表的最后一个表节点,则提示没有与查询对象相匹配的查询结果,退出查询。否则,获得表节点的uLabel项,看该值是否和查询对象中的主体一致,如果不一致,重复(2)。如果一致,进入(3)。
(3)在邻接表中找到该表节点hpre指针指向的第一个节点对象preItem,读取其中的pre项,与查询对象中的谓语进行匹配,如果相同进入(4),否则继续读取下一个节点对象preItem,直到pre项与查询对象中的谓语匹配,进入(4),如果没有查询到,则提示没有相匹配的查询结果,退出查询。
(4)读取当前节点对象preItem中obj项所代表的节点编号,若查询对象中的宾语为确定值,则根据obj项中节点编号查询该节点的uLabel值,并将该值和宾语进行匹配,若不相同继续读取下一个preItem项,直到匹配到相同的宾语或者已经是链表的最后一个节点。如果在链表最后一个节点上都没有匹配到相同的宾语,则提示没有相匹配的查询结果,退出查询。若匹配到相同的宾语,则读取tf项中的值存入临时时间集,进入(8)。若查询对象中的宾语为“*”,进入(5)。
(5)读取当前节点对象preItem的tf项,存入临时时间集。继续读取下一个节点对象preItem,直到该节点的pre项和查询对象中的谓语不相匹配为止,将匹配项的tf值存入临时时间集,进入(8)。
(6)在存放时间知识图谱的邻接表中,读取第一个表节点,获得表节点的uLabel项,看该值是否和时间输入图中的宾语一致,如果一致,进入(7);如果不一致,继续读取下一个表节点,直到uLabel项和宾语一致,进入(7),如果查询不到匹配的宾语,提示没有匹配的查询结果,退出查询。
(7)在邻接表中找到该表节点tpre指针指向的第一个节点对象preItem,读取其中的pre项,与查询对象中的谓语进行匹配,如果相同进入(5),否则继续读取下一个节点对象preItem,直到pre项与查询对象中的谓语匹配,进入(5),如果没有查询到,则提示没有相匹配的查询结果,退出查询。
(8)将临时时间集中的时间段值送入时间集,时间输入图查询结束。
步骤4:时间约束处理器根据时间约束关系对时间集进行处理,得到主查询要满足的时间约束条件。
步骤5:根据时间约束,主查询处理器对主查询图进行处理,将查询结果送入结果集队列。其工作过程如下:
(1)如果主体是确定的,则在存放时间知识图谱的邻接表中,读取第一个表节点,获得表节点的uLabel项,看该值是否和主查询图中的主体一致,如果一致,进入(2);如果不一致,继续读取下一个表节点,直到该节点的uLabel项和主查询图中的主体一致,进入(2),如果直到最后一个表节点都没有匹配到相同的值,则退出查询。如果主体是“?”,进入步骤(5)。
(2)在邻接表中找到该表节点中hpre指针指向的第一个节点对象preItem,读取其中的pre项,与查询对象中的谓语进行匹配,如果相同进入(3),否则继续读取下一个节点对象preItem,直到pre项与查询对象中的谓语匹配,进入(3),如果没有查询到,则提示没有相匹配的查询结果,退出查询。
(3)读取当前节点的tf项,看时间段是否满足时间约束条件,如果不满足,进入(4);如果满足,将tf值作为匹配到的时间段,读取当前节点的obj项所代表节点的编号,通过编号在邻接表中找到该节点的uLabel,并把该值作为查询到的宾语,将结果以<主体、谓词、宾语、时间段>的形式加入临时结果集,进入(4)。
(4)继续读取下一个节点对象preItem,取出pre项,与查询对象中的谓语进行匹配,如果相同进入(3),如果不相同,查询结束,进入(12)。
(5)如果宾语是“?”,进入(9);如果宾语确定的,在邻接表中读取第一个表节点,获得表节点的uLabel项,看该值是否和主查询图查询对象中的宾语一致,如果一致,进入(6)。如果不一致,继续读取下一个表节点,直到uLabel项和宾语一致,进入(6),如果查询不到匹配的宾语,提示没有匹配的查询结果,退出查询。
(6)在邻接表中找到该表节点tpre指针指向的第一个节点对象preItem,读取其中的pre项,与查询对象中的谓语进行匹配,如果相同进入(7),否则继续读取下一个节点preItem,直到pre项与查询对象中的谓语匹配,进入(7),如果没有查询到,则提示没有相匹配的查询结果,退出查询。
(7)读取当前节点的tf项,看时间段是否满足时间约束条件,如果不满足,进入(8);如果满足,将tf值作为匹配到的时间段,读取当前节点的obj项所代表节点的编号,通过编号在邻接表中找到该节点的uLabel,并把该值作为查询到的主体,将结果以<主体、谓词、宾语、时间段>的形式加入临时结果集,进入(8)。
(8)继续读取下一个节点对象preItem,取出pre项,与查询对象中的谓语进行匹配,如果相同进入(7),如果不相同,查询结束,进入(12)。
(9)在谓词索引图中找到第一个表节点,看predicate项是否和主查询对象的谓词相同,如果相同,进入(10),如果不同,继续找到下一个表节点,将predicate项和主查询对象的谓词相匹配,直到匹配到相同的表节点为止。如果没有匹配到相同的项,则提示没有匹配的查询结果,退出查询。
(10)找到表节点中rel指针指向的第一个节点项reItem,读取tf值,如果该值与时间约束关系不相符,进入(11);如果该值与时间约束关系相符,则将该节点中的sub值作为查询到的主体,obj项作为查询到的宾语,tf作为查询到的时间段,将结果以<主体、谓词、宾语、时间段>的形式加入临时结果集,进入(11)。
(11)继续读取下一个节点项reItem,如果该值与时间约束关系相符,则将该节点中的sub值作为查询到的主体,obj项作为查询到的宾语,tf作为查询到的时间段,将结果以<主体、谓词、宾语、时间段>的形式加入临时结果集,重复(11),直到该谓词对应的最后一个reItem项,查询结束,进入(12)。
(12)对临时结果集中的结果进行进一步的确认,如果结果项中存在<主体、谓词、宾语>和时间查询图中的<主体、谓词、宾语>完全相同的项,则将该结果项从临时结果项中去除。将临时结果集中保留下来的值送入结果集队列,主查询图查询结束。
步骤6:输出结果集,有时间约束的非连通知识图谱查询结束。
实例说明:
图8为图2所示知识图谱的一个查询图示例,需要查询比Tom早进入公司D,但在Tom工作期间离职的员工,他们在公司D的这段工作经历。下面以该查询图说明整个查询的过程。
步骤1:查询图接收器接收用户提交的查询请求,并按照时间顺序将查询请求放入查询等待队列;
步骤2:查询图分析器依次对查询等待队列中的每一个查询图进行分析。用图深度遍历的方式,将只有时间段为待查询项的子图作为时间输入图,另一个连通子图作为主查询图,如图9所示。
获得时间查询图的查询对象(y:Tom,工作,y:公司D),主查询图的查询对象(?,工作,y:公司D)。
步骤3:对时间输入图进行查询处理,过程如下:
(1)在图3所示的存储结构中,找到第一个表节点获取它的uLabel值为y:Mike,与y:Tom不匹配。继续找下一个表节点,直到找到工D为2的节点,该节点的uLabel值为y:Tom。
(2)找到该节点hpre指针指向的第一个节点,获取该节点的pre值,该值为“工作”,和时间查询图查询对象的谓词匹配,读取节点的obj值所代表的节点标号4,找到4号节点的uLabel,为“y:公司A”,和时间图查询对象的宾语不符合。继续读取该节点next指针指向的下一个节点,获取该节点的pre值,与谓词相匹配,读取该节点的obj所代表的节点标号7,找到7号节点的uLabel,值为“y:公司D”,该值与时间查询图查询对象的宾语相匹配,获取该节点的tf值,将该值[2017,*]放入临时时间集。
(3)时间查询图查询结束,将[2017,*]送入时间集。
步骤3:时间约束处理器根据时间约束关系对时间集进行处理,得到主查询要满足的时间约束条件是t2 overlaps t1,即主查询图的时间段和时间输入图的时间段有部分重叠。
步骤4:对主查询图进行查询处理,过程如下:
(1)主查询图的主体为“?”,宾语是“y:公司D”,在图2的邻接表中匹配到uLabel值为“y:公司D”的表节点,找到该节点tpre指针指向的第一个表节点,读取pre值是否和谓词匹配,两者都为“工作”能够匹配,读取tf的值为[2000,2018],该时间段和时间输入图中的时间段能够形成部分覆盖(overlaps)的约束关系,读取当前节点的obj项,获取1号节点的uLabel值,该值“y:Sam”作为查询到的主体,将<y:Sam,工作,y:公司D,[2000,2018]>加入临时结果集。
(2)继续读取当前节点next指针指向的下一个节点,获取pre值为“工作”,和主查询图中的谓词匹配,读取tf值为[2017,*],不满足时间约束关系。由于该节点的next项为NULL,无需再读取下个节点。
(3)检验临时结果集,<y:Sam,工作,y:公司D,[2000,2018]>的<主体、谓词、宾语>和时间输入图不同,因而将该值放入结果集队列。
步骤5:输出查询结果,<y:Sam,工作,y:公司D,[2000,2018]>,即Sam在Tom之前入职公司D,入职时间为2000年,他在Tom工作期间于2018年离职。
本发明扩展了知识图谱的查询结构,将查询扩展成了有时间约束关系的非连通图查询。具体来说,将查询图分解成了时间输入图和主查询图,这两个图之间通过时间约束关系相连。查询时间输入图获取时间段,通过时间约束关系获取主查询图中待查时间段应该要满足的时间关系,最后查询主查询图获得满足要求的相应子图,结果是四元组<主体、谓词、宾语、时间段>的一个集合。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
显然,本领域的技术人员可以对发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
Claims (3)
1.一种有时间约束的非连通知识图谱查询方法,其特征在于,包括:
使用邻接表来存储时间知识图谱,在该邻接表中,每个表节点由ID、uLabel、ppro、tpre、hpre共5项组成,其中,ID表示图中节点的编号;uLabel表示节点的标签值;ppro是个指针,指向图谱中描述每个表节点的属性和属性值,每个属性用一个proItem对象描述,包括pro、value、next共3项,分别代表属性、属性值和指向下一个属性的指针;tpre是一个指针,表示知识图谱中哪些实体指向了该表节点所代表的实体,这些实体用preItem对象来描述,包括pre、obj、tf、next共4项,分别代表谓词、主体或宾语、时间段和指向下一个表节点的指针,相同谓词的按照时间先后连接;hpre指针表示该表节点所代表的实体指向知识图谱中哪些实体;
采用的索引表中每个表项由工D、predicate、rel共3项组成,其中,ID表示编号,predicate表示谓词,rel是一个指针,指向哪些主体和宾语之间包含该谓词,由一个reItem项表示,包括sub、obj、tfnext共4项组成,分别表示主体、宾语、时间段和指向下一个reItem项的指针;
查询图接收器接收用户提交的查询请求,并按照时间顺序将查询请求放入查询等待队列;
查询图分析器依次对查询等待队列中的每一个查询图进行分析,其中,查询图是具有时间约束的非连通图,查询分析器读取查询图,获取主查询图和时间输入图,解析主查询图和时间输入图在时间段上存在的关系,用非连通图深度优先遍历的方法遍历查询图,将所述查询图中只有时间参数为待查询对象的图作为时间输入图,将另外的子图作为主查询图;
时间输入图查询器对时间输入图进行相应的查询处理,将查询结果送入时间集,其中,时间输入图查询器查询时间输入图以获取待查的时间段;
时间约束处理器根据时间约束关系对时间集进行处理,得到主查询要满足的时间约束条件;
根据时间约束,主查询处理器对主查询图进行处理,将查询结果送入结果集队列;
输出结果集,有时间约束的非连通知识图谱查询结束。
2.如权利要求1所述的有时间约束的非连通知识图谱查询方法,其特征在于,时间输入图查询器对时间输入图进行相应的查询处理,将查询结果送入时间集,其中,时间输入图查询器查询时间输入图以获取待查的时间段,包括:
(1)如果主体是确定的,则在存放时间知识图谱的邻接表中,读取第一个表节点,获得表节点的uLabel项,看该值是否和时间输入图中的主体一致,如果不一致,进入(2);如果一致,进入(3);如果主体是“*”,进入步骤(6),其中,主体为“*”表示无需查询的内容;
(2)继续读取邻接表中的下一个表节点,如已到达邻接表的最后一个表节点,则提示没有与查询对象相匹配的查询结果,退出查询;否则,获得表节点的uLabel项,看该值是否和查询对象中的主体一致,如果不一致,重复(2);如果一致,进入(3);
(3)在邻接表中找到该表节点hpre指针指向的第一个表节点对象preItem,读取其中的pre项,与查询对象中的谓语进行匹配,如果相同进入(4),否则继续读取下一个表节点对象preItem,直到pre项与查询对象中的谓语匹配,进入(4),如果没有查询到,则提示没有相匹配的查询结果,退出查询;
(4)读取当前表节点对象preItem中obj项所代表的表节点编号,若查询对象中的宾语为确定值,则根据obj项中表节点编号查询该表节点的uLabel值,并将该值和宾语进行匹配,若不相同继续读取下一个preItem项,直到匹配到相同的宾语或者已经是链表的最后一个表节点;如果在链表最后一个表节点上都没有匹配到相同的宾语,则提示没有相匹配的查询结果,退出查询。若匹配到相同的宾语,则读取tf项中的值存入临时时间集,进入(8);若查询对象中的宾语为“*”,进入(5);
(5)读取当前表节点对象preItem的tf项,存入临时时间集,继续读取下一个表节点对象preItem,直到该表节点的pre项和查询对象中的谓语不相匹配为止,将匹配项的tf值存入临时时间集,进入(8);
(6)在存放时间知识图谱的邻接表中,读取第一个表节点,获得表节点的uLabel项,看该值是否和时间输入图中的宾语一致,如果一致,进入(7);如果不一致,继续读取下一个表节点,直到uLabel项和宾语一致,进入(7),如果查询不到匹配的宾语,提示没有匹配的查询结果,退出查询。
(7)在邻接表中找到该表节点tpre指针指向的第一个节点对象preItem,读取其中的pre项,与查询对象中的谓语进行匹配,如果相同进入(5),否则继续读取下一个表节点对象preItem,直到pre项与查询对象中的谓语匹配,进入(5),如果没有查询到,则提示没有相匹配的查询结果,退出查询;
(8)将临时时间集中的时间段值送入时间集,时间输入图查询结束。
3.如权利要求1所述的有时间约束的非连通知识图谱查询方法,其特征在于,根据时间约束,主查询处理器对主查询图进行处理,将查询结果送入结果集队列,包括:
(1)如果主体是确定的,则在存放时间知识图谱的邻接表中,读取第一个表节点,获得表节点的uLabel项,看该值是否和主查询图中的主体一致,如果一致,进入(2);如果不一致,继续读取下一个表节点,直到该表节点的uLabel项和主查询图中的主体一致,进入(2),如果直到最后一个表节点都没有匹配到相同的值,则退出查询。如果主体是“?”,进入步骤(5),其中,“?”表示待查询项;
(2)在邻接表中找到该表节点中hpre指针指向的第一个节点对象preItem,读取其中的pre项,与查询对象中的谓语进行匹配,如果相同进入(3),否则继续读取下一个节点对象preItem,直到pre项与查询对象中的谓语匹配,进入(3),如果没有查询到,则提示没有相匹配的查询结果,退出查询;
(3)读取当前节点的tf项,看时间段是否满足时间约束条件,如果不满足,进入(4);如果满足,将tf值作为匹配到的时间段,读取当前节点的obj项所代表节点的编号,通过编号在邻接表中找到该节点的uLabel,并把该值作为查询到的宾语,将结果以<主体、谓词、宾语、时间段>的形式加入临时结果集,进入(4);
(4)继续读取下一个节点对象preItem,取出pre项,与查询对象中的谓语进行匹配,如果相同进入(3),如果不相同,查询结束,进入(12)。
(5)如果宾语是“?”,进入(9);如果宾语确定的,在邻接表中读取第一个表节点,获得表节点的uLabel项,看该值是否和主查询图查询对象中的宾语一致,如果一致,进入(6);如果不一致,继续读取下一个表节点,直到uLabel项和宾语一致,进入(6),如果查询不到匹配的宾语,提示没有匹配的查询结果,退出查询;
(6)在邻接表中找到该表节点tpre指针指向的第一个节点对象preItem,读取其中的pre项,与查询对象中的谓语进行匹配,如果相同进入(7),否则继续读取下一个节点preItem,直到pre项与查询对象中的谓语匹配,进入(7),如果没有查询到,则提示没有相匹配的查询结果,退出查询;
(7)读取当前节点的tf项,看时间段是否满足时间约束条件,如果不满足,进入(8);如果满足,将tf值作为匹配到的时间段,读取当前节点的obj项所代表节点的编号,通过编号在邻接表中找到该节点的uLabel,并把该值作为查询到的主体,将结果以<主体、谓词、宾语、时间段>的形式加入临时结果集,进入(8);
(8)继续读取下一个节点对象preItem,取出pre项,与查询对象中的谓语进行匹配,如果相同进入(7),如果不相同,查询结束,进入(12);
(9)在谓词索引图中找到第一个表节点,看predicate项是否和主查询对象的谓词相同,如果相同,进入(10),如果不同,继续找到下一个表节点,将predicate项和主查询对象的谓词相匹配,直到匹配到相同的表节点为止;如果没有匹配到相同的项,则提示没有匹配的查询结果,退出查询;
(10)找到表节点中rel指针指向的第一个节点项reItem,读取tf值,如果该值与时间约束关系不相符,进入(11);如果该值与时间约束关系相符,则将该节点中的sub值作为查询到的主体,obj项作为查询到的宾语,tf作为查询到的时间段,将结果以<主体、谓词、宾语、时间段>的形式加入临时结果集,进入(11);
(11)继续读取下一个节点项reItem,如果该值与时间约束关系相符,则将该节点中的sub值作为查询到的主体,obj项作为查询到的宾语,tf作为查询到的时间段,将结果以<主体、谓词、宾语、时间段>的形式加入临时结果集,重复(11),直到该谓词对应的最后一个reItem项,查询结束,进入(12);
(12)对临时结果集中的结果进行进一步的确认,如果结果项中存在<主体、谓词、宾语>和时间查询图中的<主体、谓词、宾语>完全相同的项,则将该结果项从临时结果项中去除;将临时结果集中保留下来的值送入结果集队列,主查询图查询结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910638217.8A CN110347846B (zh) | 2019-07-15 | 2019-07-15 | 有时间约束的非连通知识图谱查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910638217.8A CN110347846B (zh) | 2019-07-15 | 2019-07-15 | 有时间约束的非连通知识图谱查询方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110347846A true CN110347846A (zh) | 2019-10-18 |
CN110347846B CN110347846B (zh) | 2023-05-26 |
Family
ID=68176351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910638217.8A Active CN110347846B (zh) | 2019-07-15 | 2019-07-15 | 有时间约束的非连通知识图谱查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110347846B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113486092A (zh) * | 2021-07-30 | 2021-10-08 | 苏州工业职业技术学院 | 一种基于时间约束的时间图近似查询方法及装置 |
WO2021238436A1 (zh) * | 2020-05-29 | 2021-12-02 | 京东方科技集团股份有限公司 | 多药共用查询方法、移动终端及存储介质 |
CN117273143A (zh) * | 2023-08-08 | 2023-12-22 | 南京邮电大学 | 基于马尔可夫逻辑网络的时序知识图谱推理方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108520035A (zh) * | 2018-03-29 | 2018-09-11 | 天津大学 | 基于星形分解的sparql基本图模式查询处理方法 |
CN108959613A (zh) * | 2018-07-17 | 2018-12-07 | 杭州电子科技大学 | 一种面向rdf知识图谱的语义近似查询方法 |
CN109992593A (zh) * | 2019-03-13 | 2019-07-09 | 中南大学 | 一种基于子图匹配的大规模数据并行查询方法 |
-
2019
- 2019-07-15 CN CN201910638217.8A patent/CN110347846B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108520035A (zh) * | 2018-03-29 | 2018-09-11 | 天津大学 | 基于星形分解的sparql基本图模式查询处理方法 |
CN108959613A (zh) * | 2018-07-17 | 2018-12-07 | 杭州电子科技大学 | 一种面向rdf知识图谱的语义近似查询方法 |
CN109992593A (zh) * | 2019-03-13 | 2019-07-09 | 中南大学 | 一种基于子图匹配的大规模数据并行查询方法 |
Non-Patent Citations (1)
Title |
---|
YANXIA XU等: "Time-Constrained Graph Pattern Matching in a Large Temporal Graph", 《SPRINGER》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021238436A1 (zh) * | 2020-05-29 | 2021-12-02 | 京东方科技集团股份有限公司 | 多药共用查询方法、移动终端及存储介质 |
CN113742443A (zh) * | 2020-05-29 | 2021-12-03 | 京东方科技集团股份有限公司 | 多药共用查询方法、移动终端及存储介质 |
CN113486092A (zh) * | 2021-07-30 | 2021-10-08 | 苏州工业职业技术学院 | 一种基于时间约束的时间图近似查询方法及装置 |
CN113486092B (zh) * | 2021-07-30 | 2023-07-21 | 苏州工业职业技术学院 | 一种基于时间约束的时间图近似查询方法及装置 |
CN117273143A (zh) * | 2023-08-08 | 2023-12-22 | 南京邮电大学 | 基于马尔可夫逻辑网络的时序知识图谱推理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110347846B (zh) | 2023-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kharlamov et al. | Ontology based access to exploration data at statoil | |
US8180810B2 (en) | Interactive generation of integrated schemas | |
CN104750681B (zh) | 一种海量数据的处理方法及装置 | |
CN110347846A (zh) | 有时间约束的非连通知识图谱查询方法 | |
Hor et al. | A semantic graph database for BIM-GIS integrated information model for an intelligent urban mobility web application | |
CN108052547A (zh) | 基于问句和知识图结构分析的自然语言问答方法及系统 | |
JP2010517137A (ja) | データベース管理システム内のデータ及び関連付けられたオントロジの問い合わせ | |
JP2001014329A (ja) | データベース処理方法及び実施装置並びにその処理プログラムを記憶した媒体 | |
CN104346383A (zh) | 一种数据权限控制方法和系统 | |
Lin et al. | OWL Ontology Extraction from Relational Databases via Database Reverse Engineering. | |
CN113934750A (zh) | 基于编译方式的数据血缘关系分析方法 | |
CN115640406A (zh) | 一种基于多源异构大数据分析处理与知识图谱构建方法 | |
William et al. | Semantic similarity relations and computation in schema integration | |
CN113157978B (zh) | 数据的标签建立方法和装置 | |
Liu | The application of data mining technology in the teaching evaluation in colleges and universities | |
Jovanovic et al. | Ore: An iterative approach to the design and evolution of multi-dimensional schemas | |
Song et al. | Semantic similarity relations in schema integration | |
CN116010439A (zh) | 一种可视化中文sql系统及构建查询方法 | |
CN110147396A (zh) | 一种映射关系生成方法及装置 | |
CN115934969A (zh) | 一种不可移动文物风险评估知识图谱构建方法 | |
CN116304220A (zh) | 一种面向数据集成的多粒度溯源方法 | |
CN113221528B (zh) | 基于openEHR模型的临床数据质量评估规则的自动生成与执行方法 | |
CN114201543A (zh) | 一种药学数据集成方法及系统 | |
Bajpai et al. | Data quality issues and current approaches to data cleaning process in data warehousing | |
KR20220109978A (ko) | 자연어를 sql로 변환하는 시스템을 위한 훈련 세트 수집 장치 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |