掌桥专利:专业的专利平台
掌桥专利
首页

基于位矩阵模型的时序RDF数据存储及查询方法

文献发布时间:2023-06-19 16:08:01



技术领域

本发明涉及知识图谱的查询技术领域,尤其涉及时序RDF数据的存储和查询技术。

背景技术

RDF作为W3C语义网络体系的重要组成部分,提供了一个统一的规范用于对语义Web中的资源实体进行描述。RDF的易用性、灵活性以及强大的语义表达能力,使得其在各个领域都得到了广泛的应用。事实上,大部分数据信息并不是一成不变的。时间几乎存在于任何Web应用程序中,例如社交网络、股票交易等,其中的信息随着时间的流逝动态地变化着。RDF的普及使得其逐渐被用于表示和处理大量的时序应用数据。

位矩阵模型的提出主要是为了满足对大规模RDF数据建模需求,其结构简单,表达能力强,能够很好地体现RDF数据的图特征,同时在此结构上能够很好地进行诸如实体间路径查找、RDF实体关系扩张等深化操作。然而,现有位矩阵RDF数据库仅可处理RDF三元组数据。因此对于时序数据而言,皆需将其转化为经典三元组格式。这便需要引入额外结点用于将三元组与其对应的时间信息进行关联。如此将导致数据量以及数据复杂度的增加从而占用更多的存储空间,同时也会使得相关查询图复杂化,对检索效率产生负面影响。此外,现有位矩阵数据库的查询计划生成策略仅考虑查询图模式而忽略了时间因素的影响,故而处理时序查询时,在查询计划的规划上存在一定的缺陷。

发明内容

本发明解决的技术问题在于优化了传统位矩阵数据库在处理时序RDF数据时数据复杂度过高的问题,并提供了一种基于位矩阵模型的时序RDF数据的存储和查询方法。具体采用了如下技术方案:

本发明第一方面提供了一种基于位矩阵模型的时序RDF数据存储方法,应用于对时序RDF数据的持久化存储与构建索引,包括:

以四元组格式对时序RDF数据进行表示,为三元组关系扩展有效时间;

使用位矩阵模型对主谓宾三元组进行建模和存储,采用键-值映射的方式对时间信息进行索引和存储;

构造时序统计信息索引,记录不同时间区间内的查询模式统计信息。

上述方案中,以四元组格式对时序RDF数据进行表示,包括:

依据三元组关系对应的有效时间将时序RDF关系分为恒定、时间区间以及时刻三种类型,其中恒定类型的三元组主要用于描述在RDF数据库中生命周期中恒定有效的三元组;

时间区间类型用于描述在数据集中在某一时间段内有效的三元组;

时刻类型的三元组时间信息仅包括一个时间点,用以表示三元组仅在某个时刻有效。

上述方案中,使用位矩阵模型对主谓宾三元组数据进行建模和存储,采用键-值映射的方式对时间信息进行索引和存储,包括:

将主语、谓语、宾语对应的URI或字符串转换为整形数id;

将时间信息转换为一个8位的整形数进行表示和存储;

位矩阵存储结构中,每个谓词对应的主宾语数据分为按照主语id有序以及宾语id有序存储为两个副本;在此基础上,将主宾语数据依照其对应三元组时间信息的开始时间进行非递减排序;

为每个谓词构造时间信息映射表,通过主宾语id构造SO键,在谓词对应的主宾语数据范围内对三元组进行唯一标识,采用键值映射的方式构造SO键与三元组时间信息之间的关联关系。

上述方案中,将时间信息转换为一个8位的整形数进行表示和存储,包括:

提取时间信息中年、月、日、小时、分钟数字,将其拼接为一个大整形数字对时间进行表示。

上述方案中,通过主宾语id构造SO键,采用键-值映射的方式构造SO键与三元组时间信息之间的关联关系,包括:

通过移位将主语id以及宾语id拼接为主宾组合键Soid;

在时间信息映射表中,将组合键Soid本身作为其对应的hash值,与映射表大小进行取余运算获取组合键在映射表中的映射位置,在位置上存入Soid所表示三元组对应的时间信息。

上述方案中,构造时序统计信息索引,记录不同时间区间内的查询模式统计信息,包括:

以年作为划分粒度,将谓词划分为多个谓词分量,用以记录谓词在某一时间段内的统计信息;

构造时间结点,每个结点设置时间范围,用于记录开始时间、结束时间与结点一致的各个谓词分量;

构造2维K-D树结构对时间结点进行划分。

上述方案中,以年作为划分粒度,将谓词划分为多个谓词分量,用以记录谓词在某一时间段内的统计信息,包括:

提取时间信息中的年份作为划分粒度,每个谓词分量仅统计开始时间及结束时间的年份与其一致的元组信息,且元组中谓词与分量所属谓词需一致;

对于时间区间与其相交、将其包含或被其包含的三元组数据,构建一个新的分量用于记录;

每个谓词分量的统计信息包括元组数量、主语的统计信息以及宾语的统计信息。

上述方案中,构造2维K-D树结构对时间结点进行划分,包括:

在构造过程中,依次根据所有时间结点的开始时间和结束时间的中位数进行划分;

获取所有时间结点的开始时间,取其中位数,并基于中位数将所有结点划分为两部分,而后依据左右两部分的结束时间中位数进行划分,将结束时间等于中位数的时序分量归为K-D树的右节点;

重复上述步骤直至每块区域仅剩一个时间结点,各个区域仅剩的时间结点存入K-D树的叶子结点中。

本发明第二方面还提供了一种基于位矩阵模型的时序RDF数据查询方法,基于如上述第一方面所述的时序RDF数据存储方法进行,包括:

解析时序查询语句,为查询图中每个模式绑定时间约束条件;

应用时序统计信息索引对各查询模式选择度进行估计以对查询执行先后顺序进行规划;

按照查询计划执行查询,并在每个查询模式的查询执行过程中加入时态约束过滤。

上述方案中,应用时序统计信息索引对各查询模式选择度进行估计以对查询执行先后顺序进行规划,包括:

应用K-D树结构按照时间约束进行范围检索以获取符合时间约束条件的所有时间结点,从而获取时间结点中存储的谓词分量;

遍历所有谓词分量,依据查询模式对谓词分量中的统计信息进行整理计算;

将各个查询模型依据其选择度大小进行非递减排序,选择度小的查询模式将被优先执行。

与现有技术相比,本发明具有如下的有益效果:

本发明设计了三种不同类型的时序元组关系,既满足了时序RDF数据的表示需求,也实现了对普通RDF数据的兼容;扩展了位矩阵模型底层存储结构,采用键-值映射的方式对时间信息进行索引和存储,能减少经典位矩阵存储时序RDF数据所需的存储空间,并提升了时序RDF数据查询速度;在查询规划中引入了时间特征,利用基于时间划分的时序统计索引,能精准地预测时序查询子模式的选择度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1是本发明提供的基于位矩阵的时序RDF数据的存储及查询流程概要示意图。

图2是本发明提供的基于位矩阵的时序RDF数据的存储流程示意图。

图3是本发明提供的基于位矩阵的时序RDF数据的查询流程示意图。

具体实施方式

为了进一步理解本发明,下面结合实施例对本发明优选实施方案进行描述,但是应当理解,这些描述只是为进一步说明本发明的特征和优点,而不是对本发明权利要求的限制。

针对现有技术中的缺陷,本发明的目的是提供一种基于位矩阵的时序RDF数据的存储和查询方法。图1是为本发明提供的基于位矩阵的时序RDF数据的存储及查询流程概要示意图。而图2和图3分别是对存储和查询流程进一步的细化展示。

本发明实施例提供了一种基于位矩阵的时序RDF数据的存储方法。图2为本发明提供的基于位矩阵的时序RDF数据存储方法的流程示意图;如图2所示,所述方法应用于对时序RDF数据的存储和构建索引,包括:

步骤S101:依据三元组语义将时间信息分为恒定、时间区间以及时刻三种类型,结合上述分类使用四元组格式对时序RDF数据进行表示;

步骤S102:在位矩阵物理存储结构中,将每个谓词对应的主宾语数据分别按照主语以及宾语排序存储为两个副本,每个副本在原有排序基础上依据各主宾所表示三元组的开始时间进行二次排序;

步骤S103:为每个谓词构造时间信息映射表,通过主宾语构造主宾组合键,采用键值映射的方式建立组合键与三元组时间信息之间的关联关系;

步骤S104:构建时序统计信息索引,基于时间将谓词划分为多个谓词分量,每个谓词分量记录了谓词在谓词分量对应时间区间内的三元组总数以及主语、宾语统计信息,采用K-D树结构对分量进行组织。

本实施例中,所述步骤S101,根据三种不同类型的时间信息将三元组扩展为四元组以对时序RDF数据进行表示。

具体地,时间信息尺度将被细化至秒,结合RDF标准日期格式xsd:dateTime,使用“yyyy-MM-ddTHH:mm:ss”作为时序模型中时间的统一格式。对于恒定类型的三元组,不对其进行扩展,即保留原有三元组格式;对于时间区间类型的三元组,时间信息包含开始时间和结束时间;对于时刻类型三元组,时间信息仅包含一个时间点。对于时间区间和时刻类型的时间信息,将通过冒号连接至原有三元组结尾处。

本实施例中,所述步骤S102,在位矩阵物理存储结构中,将每个谓词对应的主宾语数据分别按照主语以及宾语排序存储为两个副本,同时每个副本在原有排序基础上依据各主宾语所表示三元组的开始时间进行二次排序。

具体地,解析时序RDF四元组数据,提取其中的主谓宾实体所对应的URI以及字符串转换为整形数id的形式进行表示。在位矩阵物理存储结构中,每个谓词对应的主宾语信息将采用数据块链表的结构(桶)存储为两个副本与谓词进行关联,两个副本分别按照主语id以及宾语id进行排序。

进一步地,在两副本原有排序基础上,依据副本中存储的主宾语对应的时间信息进行二次排序。二次排序依照时间信息中的开始时间进行非递减排序。其中,恒定类型的三元组其开始时间被设为0,即作为排序中的最小值置于最前方,对于时刻类型的三元组,其开始时间即为时间点本身。

本实施例中,所述步骤S103,为每个谓词构造时间信息映射表,采用键值映射的方式建立三元组与其时间信息之间的关联关系。

具体地,首先初始化时间信息映射表容量大小、负载因子等。在谓词对应数据块链表构造过程中,通过将主语id左移32位和宾语id进行与操作获取主宾组合键soid用于在谓词对应主宾数据中对三元组进行唯一标识。

进一步地,解析获取四元组中的时间信息,提取时间信息中年、月、日、小时、分钟等数字,将其拼接为一个8位长整形数字用于对时间进行表示。依据转换后的时间数构造时间信息构造时间结构体,包含时间类型、开始时间以及结束时间信息等信息。

进一步地,以组合键soid本身作为哈希值,与时间信息映射表容量进行取余计算以获取其在值数组中的映射位置。将对应的时间信息结构体存入对应位置,并采用线性探查以处理哈希冲突。若时间信息映射表中的存储元素量超过其容量大小与负载因子的乘积,则对其进行扩容,扩容后的容量设置为扩容前的两倍。

本实施例中,所述步骤S104,为构建时序统计信息索引,基于时间将谓词划分为多个分量,并采用K-D树结构对分量进行索引。

具体地,各分量仅记录谓词与其所属谓词一致的元组信息。在划分过程中,某一分量仅统计开始时间、结束时间的年份与其一致的时序四元组信息,而对于时间区间与其相交、将其包含或被其包含的四元组数据,则会构建一个新的时序分量用于记录。

特殊地,对于时刻类型的三元组数据,可将其看作开始时间和结束时间一致的时间区间进行解析。对于恒定类型的三元组数据,则会为相关谓词构造一个单独的时间信息为恒定的谓词分量进行记录。

进一步地,构造时间结点。每个时间结点为一个映射表的结构,以谓词id为键,谓词分量为值,具备开始时间和结束时间属性,用于对开始时间和结束时间与其相同的各谓词分量进行存储。

进一步地,采用K-D树结构对非恒定的时间结点进行组织,依次根据所有时间结点的开始时间和结束时间的中位数进行划分。首先获取所有时间结点的开始时间,取其中位数,并基于中位数将所有结点划分为两部分。然后依据左右两部分的结束时间中位数进行划分,在此可将结束时间等于中位数的时序分量归为K-D树的右节点。重复上述步骤直至每块区域仅剩一个时间结点。

特殊地,对于时间信息为恒定的各谓词分量,将单独构建一个时间类型为恒定的时间结点进行存储。该时间结点不参与K-D树构造,但会被加入K-D树范围查询结果集中。

本发明实施例还提供了一种基于位矩阵的时序RDF数据的查询方法。图3为本发明提供的基于位矩阵的时序RDF数据查询方法的流程示意图;如图3所示,所述方法应用于对时序RDF数据的查询解析和查询执行,包括:

步骤S201:接收、解析时序查询语句,为查询图中每个查询模式绑定时间约束条件;

步骤S202:应用时序统计信息索引对子查询模式选择度进行估计以对其执行先后顺序进行规划;

步骤S203:在对每个模式的查询过程中,根据扫描的主宾信息生成主宾组合键,并依据组合键从时间信息映射表中获取对应时间信息与时间约束进行比较。连接各查询模式结果集,将最终结果返回。

本实施例中,所述步骤S202,基于时序统计信息索引对查询图中各查询模式进行选择度估计。

具体地,应用时序统计信息索引依照查询图对应的时间约束进行范围检索以获取所有符合时间约束的时间结点。在检索过程中,设查询范围为R,查询从K-D树根结点开始,若结点的左子结点L及右子结点R为叶子结点,则返回子结点对应区域范围A与R的交集;若R包含A,则返回A中的所有分量;若为空,则跳过。最终返回结果需添加时间类型为恒定的时间结点。依次遍历时间结点中的谓词分量对各查询模式选择度进行估计计算。

进一步地,基于各个模式之间公共变量对查询模式的执行分组优化。将每个公共变量所对应的查询模式的选择度的最小值作为该公共变量的选择度,并根据公共变量的选择进行排序以确定每个变量的执行先后顺序。

进一步地,在完成排序后,按序遍历所有公共变量,对每个公共变量生成该变量对应的具有最小选择度的查询模式与其他查询模式连接操作的选择度;根据这些选择度对公共变量所对应的查询模式进行排序。最终生成查询计划。

在实施例中,所述步骤S203,在对查询模式执行查询过程中,依据扫描的主宾语生成主宾组合键以从时间信息映射表中获取对应的时间信息与时间约束条件进行比较。最后对各查询模式的结果集进行连接操作。

具体地,根据当前扫描到的主宾语信息进行移位和与运算重新生成主宾组合键soid,并根据组合键soid从时间信息映射表中获取对应的时间信息。

进一步地,判断时间信息的开始时候是否大于时间约束的结束时间。若是,则可中断当前查询模式的查询执行,直接返回结果集。若否,对于恒定类型的时间信息,直接将主宾语加入查询模式对应的结果集中,对于时间区间和时刻类型的时间信息,则判断时间约束条件是否将时间信息包含在内。若是,则加入结果集。

进一步地,对于连接操作,针对参与连接的两个查询模式结果集的特点,采用两种不同的连接策略。(1)归并连接,用于对数据皆是关于键值有序的结果集进行连接。(2)哈希连接,用于处理参与连接的结果集中数据皆不是关于键值有序的情况。最后,返回最终结果。

以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

技术分类

06120114710844