存储方法及装置与流程

摘要: 本技术涉及存储,特别涉及一种存储方法及装置。背景技术:1、随着大数据的发展和关联数据(linkeddata)的推动,越来越多领域的知识采用知识图谱(knowle...
存储方法及装置与流程

本技术涉及存储,特别涉及一种存储方法及装置。

背景技术:

1、随着大数据的发展和关联数据(linked data)的推动,越来越多领域的知识采用知识图谱(knowledge graphs,kgs)来表示数据。示例性的,以kgs形式表示数据的领域包括但不限于生物医学、百科全书、常识性知识等。

2、当前主流的知识图谱存储方案主要包括基于关系的存储方案。基于关系的存储方案主要通过关系型数据库来实现。示例性的,基于关系的存储方案包括但不限于:三元组表(triple table)、水平表(horizontal table)、属性表(property table)、垂直划分(vertical partitioning)存储方案以及六重索引(sextuple indexing)存储方案等。

3、然而,真实的知识图谱数据往往比较稀疏,并且没有固定的模式,这导致基于关系的存储方案很难实现高效的知识图谱数据存储。

技术实现思路

1、本技术提供了一种存储方法及装置,该方法能够实现对知识图谱的高效存储。

2、本技术提供的技术方案如下。

3、第一方面,本技术提供一种存储方法,该方法包括:获取实体集,该实体集包括多个实体,实体集中的实体是知识图谱的节点表示的实体,实体集中的实体包含至少一种属性;基于实体集中实体包含的每种属性的频次存储实体集中实体的属性。其中,实体集中的实体包含第一属性,第一属性的频次用于指示实体集中包含第一属性的实体的数量。

4、本技术提供的方法实现了基于知识图谱中实体包含的每种属性的频次来存储知识图谱中实体属性的目的,例如可以将知识图谱中实体的高频次属性采用关系型存储方式进行存储,又例如将知识图谱中实体的低频次属性采用键值(key-value,kv)方式存储,如此既能避免采用kv存储知识图谱中所有属性时键名大量重复的问题,又能解决采用关系型存储方式存储低频次属性时出现大量空值的问题,因而该方法大大压缩了存储知识图谱的存储空间,并实现了知识图谱的高效存储。

5、在一种可能的设计方式中,上述基于实体集中实体包含的每种属性的频次存储实体集中实体的属性,包括:采用关系形存储方式存储实体集中实体包含的高频次属性。其中,通过关系形存储方式存储高频次属性时使用的关系表包括标识符(identifier,id)列和至少一个高频属性列,id列用于存放实体的id,一个高频属性列用于存储一个高频次属性。当实体集中包含第一属性的实体的数量或比例超过第一阈值时,第一属性为高频次属性。

6、在另一种可能的设计方式中,当实体集中包含第一属性的实体的数量或比例低于第一阈值时,第一属性为低频次属性,则上述关系表还包括稀有属性列。上述基于实体集中实体包含的每种属性的频次存储实体集中实体的属性,包括:在稀有属性列中以非结构化存储方式存储实体集中实体包含的低频次属性。

7、在又一种可能的设计方式中,非结构化存储方式为kv存储方式。

8、通过上述几种可能的设计,本技术实现了对知识图谱中实体的高频次属性采用关系型存储方式进行存储,以及对知识图谱中实体的低频次属性采用非结构化存储方式(如kv方式)进行存储的混合存储模式,如此不仅能避免采用kv存储知识图谱中包含高频次属性在内的所有属性时键名大量重复的问题,还能解决采用关系型存储方式存储低频次属性时出现大量空值的问题,如此实现了知识图谱的高效存储。

9、在又一种可能的设计方式中,上述基于实体集中实体包含的每种属性的频次存储实体集中实体的属性,包括:基于实体集中实体的类型确定多个实体簇,一个实体簇包括实体集中的至少一个实体,该至少一个实体具有相同的类型;对于多个实体簇中的第一实体簇,采用第一关系表中的高频属性列存储第一实体簇中实体包含的高频次属性,并在第一关系表包括的稀有属性列中以非结构化存储方式存储第一实体簇中实体包含的低频次属性。其中,第一实体簇是多个实体簇中的任一实体簇。当第一实体簇中包含第二属性的实体的数量超过第二阈值时,第二属性为高频次属性。当第一实体簇中包含第二属性的实体的数量低于第二阈值时,第二属性为低频次属性。第一关系表是用于存储第一实体簇中实体所包含属性的关系表。

10、通过该可能的设计,实现了在实体集的同类实体中基于实体所包含每种属性的频次来存储实体的目的,如此,能够减少在属性的频次分布较为极端的情况下存储实体及其属性的表产生大量空值而导致存储空间的大量浪费的问题。其中,属性的频次分布较为极端的情况例如是:按照频次判断实体集中实体的两种属性均为高频次属性,但这两种属性分布在实体集中完全不同的实体上。

11、在又一种可能的设计方式中,上述基于实体集中实体的类型确定多个实体簇,包括:将实体集中具有相同类型的实体归为一个实体簇,以得到多个实体簇;或者,基于实体集中实体的类型和实体包含的属性,确定多个实体簇,该多个实体簇包括第一实体簇,第一实体簇是多个实体簇中的任一实体簇,第一实体簇中的每个实体包含共同的属性。

12、在又一种可能的设计方式中,上述基于实体集中实体的类型和实体包含的属性,确定多个实体簇,包括:将实体集中具有相同类型的实体归为一个实体类簇,以得到多个实体类簇;对于多个实体类簇中的第一实体类簇,将第一实体类簇划分为多个单元簇,每个单元簇包含第一实体类簇中具有相同属性的一个或多个实体;在多个单元簇中确定第一单元簇和第二单元簇,第一单元簇中实体包含的属性和第二单元簇中实体包含的属性之间的相异度大于第三阈值;对于多个单元簇中的第三单元簇,在第一相异度小于第二相异度的情况下,将第一单元簇和第三单元簇归为一个实体簇,在第二相异度小于第一相异度的情况下,将第二单元簇和第三单元簇归为一个实体簇;其中,第一相异度是第一单元簇中实体包含的属性和第三单元簇中实体包含的属性之间的相异度,第二相异度是第二单元簇中实体包含的属性和第三单元簇中实体包含的属性之间的相异度。

13、通过该可能的设计,实现了基于实体属性的相异度对实体的聚类。当基于聚类所得的实体簇中实体包含的每种属性的频次存储实体时,能够避免在属性的频次分布较为极端的情况下存储实体及其属性的表产生大量空值而导致存储空间的大量浪费的问题。

14、第二方面,本技术提供一种存储装置。该存储装置用于执行上述第一方面提供的任一种方法。本技术可以根据上述第一方面提供的任一种方法,对该存储装置进行功能模块的划分。例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。示例性的,本技术可以按照功能将该存储装置划分为获取单元和存储单元等。上述划分的各个功能模块执行的可能的技术方案和有益效果的描述均可以参考上述第一方面以及第一方面中任一种可能的设计方式所提供的方案,此处不再赘述。

15、第三方面,本技术提供一种计算设备。该计算设备包括:存储器、通信接口和一个或多个处理器。其中,该一个或多个处理器通过通信接口接收或发送数据,该一个或多个处理器被配置为读取存储在存储器中的程序指令,以执行如第一方面以及第一方面中任一种可能的设计方式所提供的方法。

16、第四方面,本技术提供一种计算机可读存储介质,该计算机可读存储介质为非易失性计算机可读存储介质,该计算机可读存储介质包括计算机程序指令,当计算机程序指令由处理器、包括处理器的计算设备或计算机系统执行时,处理器、包括处理器的计算设备或计算机系统执行如第一方面以及第一方面中任一种可能的设计方式所提供的方法。

17、第五方面,本技术提供了一种包含指令的计算机程序产品,当该指令被处理器、包括处理器的计算设备或计算机系统运行时,使得处理器、包括处理器的计算设备或计算机系统执行如第一方面以及第一方面中任一种可能的设计方式所提供的方法。

18、第六方面,本技术提供了一种芯片,该芯片包含用于运行程序指令或代码的处理器,该芯片或包含该芯片的设备可以用于执行如第一方面以及第一方面中任一种可能的设计方式所提供的方法。示例性的,该芯片还包括:输入接口、输出接口以及存储器。其中,芯片的输入接口、输出接口、处理器以及存储器之间通过该芯片的内部连接通路相连,芯片中的存储器则用于存储由处理器运行的程序指令或代码,芯片的输入接口和输出接口则用于该芯片与其他芯片或设备的连接通信。

19、可以理解的是,上述提供的任一种存储装置、计算设备、计算机可读存储介质、计算机程序产品或芯片等均可以应用于上文所提供的对应的方法,因此,其所能达到的有益效果可参考对应的方法中的有益效果,此处不再赘述。

20、在本技术中,上述存储装置等的名字对设备或功能模块本身不构成限定,在实际实现中,这些设备或功能模块可以以其他名称出现。只要各个设备或功能模块的功能和本技术类似,则均属于本技术的保护范围之内。