一种基于深度知识图谱的数据库系统的制作方法

文档序号:22324438发布日期:2020-09-25 17:52阅读:132来源:国知局
一种基于深度知识图谱的数据库系统的制作方法

本发明涉及计算机科学和信息科学领域,具体涉及一种基于深度知识图谱的数据库系统。



背景技术:

知识图谱是近年来在人工智能,知识问答领域备受关注的一种信息表达技术。传统的知识图谱一般基于实体以及实体之间的关联构建和管理某一个领域内的知识结构,从而实现知识查询或者人机对话的目的。

理论上知识图谱对于知识的表达是万能的,无论物理实体还是抽象的原则都被建模成为实体,然而目前,传统知识图谱难以作为信息底盘支撑实际大型信息系统开发。问题主要归结为:1)目前知识图谱数据库的信息表达能力仍然比较低,难以适应任何通用的信息系统开发的需求。2)随着移动互联网的逐步发展,近年来多媒体数据尤其是视频流和音频流数据成为信息系统中必不可少的组成部分,传统的知识图谱数据库缺乏对海量多媒体数据储存和提取的整合性方案。3)计算性能的瓶颈,随着图谱规模的扩大,其计算性能会因为数据量的扩大而下降。使得如关联查询这样的基础操作的耗时超出一般应用的可接受范围(毫秒级)。4)以往的知识图谱数据库偏向于表层知识的表达,没有针对详细的数据库操作进行细化的接口约定。

基于信息表达的有限性,计算效率的限制,以及通用查询协议的确实等多方面的原因,目前为止还没有足够成熟的商用知识图谱数据库能够为各种信息系统提供性能稳定,信息表达能力足够丰富,接口使用方便的产品。



技术实现要素:

因此,本发明要解决的技术问题在于克服现有技术中的信息表达的有限性、计算效率的限制、缺少多媒体数据整合方案以及缺失通用查询协议的缺陷,从而提供一种基于深度知识图谱的数据库系统。

为此,本发明实施例提供了如下技术方案:

本发明实施例提供一种基于深度知识图谱的数据库系统,包括:概念分割模块、关联创建模块及关联计算模块,其中,概念分割模块,用于根据实体对象概念将知识图谱的全体实体对象分割为多个子集;关联创建模块,用于根据分割后的多个子集创建实体对象之间的关联,生成关联对象集合;关联计算模块,用于将关联对象集合按照关联的类型进行分组,并使用独立内存数据库对关联对象集合进行存取计算。

在一实施例中,关联计算模块,包括:关联类型子模块,用于指定任何两个实体对象之间的关联类型以及在关联计算中按照不同关联类型进行查询和提取;关联强度子模块,用于通过一个预设区间段的实数刻画任意两个实体对象之间的关联强度。

在一实施例中,所述实体对象的结构,包括:基本数据、属性标签数据及扩展属性数据,其中,基本数据包括实体对象的识别信息、概念分类、名称和关联信息;属性标签数据通过以键值对的形式附在实体对象上描述所述实体对象特征;扩展属性数据包括隶属于实体对象的所有数据结构的信息。

在一实施例中,所述扩展属性数据结构的信息,包括:数据类型和承载数据类型的结构容器,其中,数据类型包括:字符数据类型和二进制数据类型;结构容器包括:列表结构、时间序列结构和映射表结构。

在一实施例中,基于深度知识图谱的数据库系统还包括:操作功能模块,用于对概念、实体对象、属性标签及扩展属性进行创建、删除、修改及查询操作;扩展属性数据操作模块,用于对扩展属性中的数据信息进行数据添加、修改、筛选、转换、分页和计算操作;搜索模块,用于基于逆向索引的方式对数据库的实体对象进行搜索;文件管理模块,用于通过多媒体文件管理框架将多媒体资源嵌入知识图谱中;文件查询模块,用于文件数据的提取、转换和基本操作;权限管理模块,用于通过预设权限管理机制控制不同实体对象之间的访问权限;接口模块,用于建立关于概念、实体对象及对象用户的数据库操作接口。

在一实施例中,所述搜索模块通过使用数据库的集合功能,在通过概念划分得到的一个范围内基于实体对象三个层次的信息进行逆向索引的计算。

在一实施例中,所述三个层次分别是对象层面、对象属性层面和属性内的单元层面。

在一实施例中,所述权限管理机制,包括:接收用户对象发送的请求,其中,请求中包含用户对象的识别信息;根据用户对象的识别信息提取操作的主体以及权限范围;根据所述操作的主体以及权限范围判断用户对象有无进行目前操作的权限;在判定用户对象有进行目前的操作的权限后,执行此权限,并将操作结果返回至用户对象。

在一实施例中,所述权限范围由实体对象储存的属性标签数据以及扩展属性数据确定的,包括:概念级别的权限和对象级别的权限,根据所述操作的主体以及权限范围判断用户对象有无进行目前操作的权限,包括,判断概念级别有无进行目前操作的权限;当概念级别有进行目前操作的权限,执行此权限,并将操作结果返回至用户对象;当概念级别无进行目前操作的权限,判断对象级别有无进行目前操作的权限;当对象级别有进行目前操作的权限,执行此权限,并将操作结果返回至用户对象;当对象级别无进行目前操作的权限,则判定用户对象无进行目前操作的权限。

本发明技术方案,具有如下优点:

1.本发明提供的基于深度知识图谱的数据库系统,通过引入深度知识图谱机制,解决了传统知识图谱数据库信息表达能力不足,无法有效支撑大多数工业和商业应用系统后台数据服务需求的问题。数据库底层支持多种基础性的数据操作满足不同应用场景的需求。

2.本发明提供的基于深度知识图谱的数据库系统,允许超大型知识图谱数据库的构建和使用,节点数量规模可达到亿级。通过在知识图谱中引入“概念”划分机制,解决了超大型知识图谱中由于对象节点过多导致计算效率低下的问题。能够实现毫秒级别的关联查询,极大提升了知识图谱中核心操作的实用性。

3.本发明提供的基于深度知识图谱的数据库系统,在深度知识图谱数据库体系内完整的嵌入一个多媒体文件的管理框架,使得多媒体管理框架与主题数据库的实体对象数据能够无缝配合,共同表示一个内部装有任意多个多媒体信息的实体对象,从而解决了一般类知识图谱数据库支持多媒体数据困难的问题。

4.本发明提供的基于深度知识图谱的数据库系统,完善了权限管理机制,建立了用户权限代理对象的概念。通过权限关联,实现不同对象之间的访问权限控制,并且权限控制可以具体到对象内部的属性级别,实现精细的数据读取和编辑控制。

5.本发明提供的基于深度知识图谱的数据库系统,采用基于逆向索引的搜索方法,在知识图谱数据库内部实现了全局的文本搜索算法。实现对象级别和对象内级别的搜索,并且通过算法内部的改进实现了毫秒级的全范围全文本搜索。

附图说明

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

图1为本发明实施例中基于深度知识图谱的数据库系统的一个具体示例的原理框图;

图2为本发明实施例中不同的概念之间的一个树状结构图;

图3为本发明实施例中关联计算模块的一个具体示例的原理框图;

图4为本发明实施例中基于深度知识图谱的数据库系统的一个数据结构图;

图5为本发明实施例中结构容器类型图;

图6为本发明实施例中基于深度知识图谱的数据库系统的另一个具体示例的原理框图;

图7为本发明实施例中资源管理子系统框架与其他部分的关系图。

具体实施方式

下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。

实施例

本发明实施例提供一种基于深度知识图谱的数据库系统,如图1所示,包括:概念分割模块1、关联创建模块2及关联计算模块3,其中,

概念分割模块1,用于根据实体对象概念将知识图谱的全体实体对象分割为多个子集。

本发明实施例中,在知识图谱中引入“概念”这一个定义。概念将知识图谱的全体实体对象按照各自的基本性质,分割为多个子集,一方面解决了大量数据情况下的数据分割问题,另一方面使得数据库使用者对不同实体对象在逻辑上具有明确的预期。如图2所示,不同的概念之间又形成一个具有明确层级关系的树状结构,系统从最根部概念不断进行分化,创造出更多的概念以适应不同应用场景的需求。概念的分化和设置,都是由使用者进行自主定义的,也就意味着数据库系统具有泛用性。另外,引入概念划分机制后,知识图谱中的最常见操作,实体之间的关联提取操作的计算效率问题便有了较好的解决方案。知识图谱在顶层是一个图结构,而图结构中对关联计算具有较大影响的是“超级节点”,即关联度非常高的网络节点。在超级节点上进行关联计算,涉及大量数据的提取,经常造成计算的高延迟。在引入概念分割机制后,关联计算就可以分概念进行,从而使得大节点的关联计算的计算量和信息提取量得到有效的控制。

关联创建模块2,用于根据分割后的多个子集创建实体对象之间的关联,生成关联对象集合。关联计算模块3,用于将关联对象集合按照关联的类型进行分组,并使用独立内存数据库对关联对象集合进行存取计算。

本发明实施例中,通过引入概念的定义,将知识图谱的关联操作无论在计算效率上还是在使用的简易程度上都做了较大改进,使得数据库产品能够更好地支撑信息系统的开发。数据库从三个方面提升了关联计算的性能和泛用性。

第一,通过引入概念定义,将全体实体对象按照他们各自的业务性质分割为多个子集合,导致任何一个对象所关联的全体对象集合都可以按照各自的概念进行分组提取,大大加速了同类事物的信息提取速度,同时对于关联计算的结果增加了可控性。

第二,通过允许添加自定义的关系类型,数据库支持根据概念类型和关联类型的两个维度来提取数据。数据库将实体对象间的关系进行人工编码,确保使用者可以在关联数据提取过程中严格控制提取结果对象的关系性质。这是为了满足信息系统中对数据之间关系的分类管理需求,从而更好的发挥底层数据库的作用。由于关系的编码是用户自定义的,因此完全可以适应不同领域不同业务的需要。

第三,利用独立底层数据结构确保多个实体对象关联交集计算的效率。求得与任意多个实体对象具有特定关联的所有实体对象集合是一个常见的操作,数据库为了应对这类操作,将所有主键关联的对象集合单独使用内存数据库进行存取并实现任意多个集合的交集操作,同时通过将关联交集按照关联的类型进行分组从而实现高效的分类型关联交集操作。

本发明提供的基于深度知识图谱的数据库系统,通过引入深度知识图谱机制,将知识图谱的全体实体对象分割为多个子集,根据实体对象的信息结构创建实体对象之间的关联并进行关联计算,解决了传统知识图谱数据库信息表达能力不足,无法有效支撑大多数工业和商业应用系统后台数据服务需求的问题。提升了超大型知识图谱中计算效率。

在一具体实施例中,如图3所示,关联计算模块3,包括:

关联类型子模块31,用于指定任何两个实体对象之间的关联类型以及在关联计算中按照不同关联类型进行查询和提取。本发明实施例中,通过在各种不同对象之间创建特定类型的关联并进行关联计算,数据库可以为使用者提供与特定对象关联的一系列对象或者查明任意一个对象集合之间的相互关联。

关联强度子模块32,用于通过一个预设区间段的实数刻画任意两个实体对象之间的关联强度。本发明实施例中,引入关联强度的概念进一步强化关联操作的准确性。任意两个实体对象之间的强度使用一个0-100之间的实数进行刻画,不同的强度在不同业务背景下可以反映不同的关联要素。如果是两个用户之间,关联强度可以反映两个用户之间的亲密程度。

在一具体实施例中,所述实体对象的结构,包括:基本数据、属性标签数据及扩展属性数据,其中,基本数据包括实体对象的识别信息、概念分类、名称和关联信息;属性标签数据通过以键值对的形式附在实体对象上描述所述实体对象特征;扩展属性数据包括隶属于实体对象的所有数据结构的信息。

本发明实施例中,实体对象作为构成知识图谱的原子结构,其内部的结构和信息表达是深度知识图谱的核心。实体对象的结构分为三个部分,基本数据,属性标签数据和扩展属性数据,分别具有如下含义:

基本数据:保存所有与实体对象的识别信息、概念分类、名称和关联信息等核心相关数据。其中,识别信息在数据库中被称为对象主键,对象主键在数据库内起到唯一标识该对象的作用。概念分类说明该对象所隶属的概念范围,名称分为基本名称和别称,其中基本名称是这个对象最标准的自然语言表达,而别称是所有可能的语言表达方式的集合。关联信息包括所有与对象关联的其他对象的数量汇总信息,主要目的是为了加速关联计算。

属性标签数据:任意实体对象都可以挂在任意多个以键值对形式存在的属性数据,这些数据既可以是字符串类型,也可以是数值类型或复合类型。例如,中华人民共和国是一个国家概念下的对象,这个对象具有国土面积960万平方公里,首都城市为北京等一系列属性数据。用户可以根据业务使用需求,创建和编辑任何自定义的属性数据。

扩展属性数据:保存了隶属于对象的所有复杂数据结构的信息,包括列表类数据和字典类数据,由于复杂类数据结构信息表达能力强,并且系统不限定绑定在某个对象上的扩展属性数量,因此对象内部的信息表达能力得到了极大的增强。扩展属性分为几个基本类型,每一个基本类型又分为若干子类型,具体的数据结构如图4所示。针对每一种不同类型的扩展属性数据结构明确了基于数据结构基础上的常见操作集合,用来满足绝大多数信息系统的使用需求。在所有的数据类型中,引用类型列表允许任意一个实体对象的扩展属性包含另外一系列对象的引用,这种机制允许一个对象在逻辑上包含不定数量的其他对象,并在相应的引用处以文字说明引用的原因。因此,这种深度知识图谱结构允许使用者以任意的结构复杂度描述一个对象的内部结构,而任意对象的复杂度又可以递归地包含在其他更庞大的对象内部,因此从顶级对象视角就自动化形成了一个庞大的树状信息结构,树中的每一个节点都代表一个对象,而节点与节点之间的连接就是扩展属性中的引用关系。举一个具体的例子说明,某跨国大公司a下属有10个子公司,总部由15个部门组成,每一个分公司由多个子公司部门组成。这种情况下,跨国公司a的整体架构是由分公司,总公司部门以及分公司部门形成的一个树状结构,各类组织都由实体对象代表,而对象内的引用属性则描述不同实体之间的相互隶属关系。

扩展属性数据的格式协议以及支持的操作集合是深度知识图谱数据库系统的核心内容之一,其中涉及实体对象的引用属性部分与知识图谱中的实体关联概念是相互并存的,前者更注重对象内部的信息结构表达而后者在不同实体的关联计算中发挥更大的作用。

在一具体实施例中,所述扩展属性数据结构的信息,包括:数据类型和承载数据类型的结构容器,其中,数据类型包括:字符数据类型和二进制数据类型;结构容器包括:列表结构、时间序列结构和映射表结构。

本发明实施例中,任何对象都是可以包含任意多个属性的,每一个属性的复杂度和通用性由结构容器和数据类型两个因素组合决定。结构容器就是用于承载具体数据的几种数据结构类型,而数据类型就是容器中实际存放的数据类型。数据类型分为字符数据和二进制数据(文件),字符数据又根据表示的内涵分为文字、数值和对象引用,二进制数据则多种多样,大体可以分为图片,视频,音频,可执行文件,文档等等。

而用于盛放这些数据的结构容器,如图5所示,(a)列表结构,(b)时间序列结构和(c)映射表结构三种基本类型。容器结构和数据类型的组合就诞生出众多供任何信息平台使用的组合数据储存类型,从而提供丰富的使用场景。其中,列表分为:文字列表,数值列表,对象引用列表,文件列表(图片,视频,音频,可执行文件,文档等等)。时间序列分为:文字时间序列,数值时间序列,对象引用时间序列,文件时间序列(图片,视频,音频,可执行文件,文档等等)。映射表分为:文字映射表,数值映射表,对象引用映射表,文件映射表(图片,视频,音频,可执行文件,文档等等)。

在一具体实施例中,基于深度知识图谱的数据库系统,如图6所示,还包括:

操作功能模块4,用于对概念、实体对象、属性标签及扩展属性进行创建、删除、修改及查询操作。本发明实施例中,概念的增删改查操作、对象级别的增删改查、属性级别的增删改查,这几个核心的操作是数据库的基础。

扩展属性数据操作模块5,用于对扩展属性中的数据信息进行数据添加、修改、筛选、转换、分页和计算操作。本发明实施例中,对扩展属性中的数据信息的创建、修改、查询和操作是深度知识图谱特有的操作。

搜索模块6,用于基于逆向索引的方式对数据库的实体对象进行搜索。本发明实施例中,在大规模深度知识图谱数据库内部实现了全局的文本搜索算法。使用者可以根据应用的需要进行全局或者局部文本搜索。数据库系统采用基于逆向索引的搜索方法,实现对象级别和对象内级别的搜索,并且通过算法内部的改进实现了毫秒级的全范围全文本搜索。

文件管理模块7,用于通过多媒体文件管理框架将多媒体资源嵌入知识图谱中。本发明实施例中,在深度知识图谱数据库体系内完整的嵌入了一个多媒体文件的管理框架,并且通过url技术使得多媒体管理框架与主题数据库的实体对象数据能够无缝配合,共同表示一个内部装有任意多个多媒体信息的实体对象,从而基本解决了一般知识图谱数据库支持多媒体数据困难的问题。

在实际应用中,任何文本信息在深度知识图谱中都是以特定类型的属性信息保存在实体对象中的,为了能够在属性中保存特定的多媒体信息,数据库使用url的概念将每一个独特的资源类型数据编译为一个url,然后内嵌在系统内的独立资源数据管理模块将每一个资源对应的url通过网络服务的方式转换为实际的资源文件数据。通过这种方式,各种多媒体资源包括但不限于图片,视频,音频,html文件等等都以统一的方式嵌入深层知识图谱中。

所有通过用户向系统上传的文件都会被最终通过主服务框架传递到不同的资源管理服务框架中去。资源管理子系统的框架与其他系统部分的关系如图7所示。首先文件资源管理服务是独立运行的一个或者多个用于二进制文件上传和下载。在数据库主服务中,所有的二进制文件都会被转化为一个指向资源的连接字符串,因此对象作为容器可以像容纳一般的文字一样容纳文件数据。另外,为了管理所有的文件,主服务框架中有一个文件资源管理器对象,其中的属性储存了所有文件资源连接对应的实际位置,从而能够使得任何面向文件的请求导向到对应的文件资源管理服务。本发明实施例整合了文本数据和文件数据两种储存介质,统一将这两大类信息在同一套知识图谱中进行储存和管理,能够更加简洁高效地使用全部的硬件资源。

文件查询模块8,用于文件数据的提取、转换和基本操作。本发明实施例中,包括图片文件的压缩、缩放、旋转、变色操作;视频文件的压缩、分片、合并、截图、转换操作;音频压缩、分片、合并、转换操作。

权限管理模块9,用于通过预设权限管理机制控制不同实体对象之间的访问权限。本发明实施例中,信息的权限管理是任何大型信息系统正常运作的必要组成部分,尤其对于一个用户量庞大的随机读写数据库来说,哪些数据可以被哪部分用户所读取和写入应该是数据库考虑的核心机制之一。

接口模块10,用于建立关于概念、实体对象及对象用户的数据库操作接口。

本发明实施例中,概念相关操作接口包括:概念列表接口、概念详情接口、概念创建接口、概念移动接口、概念删除接口和概念树状图接口,其中,概念列表接口,用于获取指定概念所有对象信息。通过传递概念编号参数,分页返回这个概念下所有对象的基本信息,如对象总数、每个对象的标准名、别称等基本信息。概念详情接口,用于获取指定概念的基本信息。通过传递概念编号参数,接收指定概念涉及到的基本信息,如概念名、概念编号等基本信息。概念创建接口,用于概念创建。传递概念基本信息和上位概念编号,返回概念创建成功/失败的状态。概念移动接口,用于把a概念移动b概念下。传递概念编号和目标概念编号,返回概念移动的状态是成功/失败。概念删除接口,用于从数据库删除指定的概念。传递概念编号,返回概念删除的状态是成功/失败。概念树状图接口,用于获取指定项目下指定概念的所有下位概念。传递概念编号,返回指定概念下的所有下位概念名、及其概念基本信息,如概念名、概念编号、概念直接下位概念名等。

在实体对象相关操作接口中,对象创建接口,用于创建对象,传递对象主键和对象基本信息,接收返回的对象创建成功/失败状态。对象信息修改接口,用于修改对象基本信息,传递对象主键和对象基本信息,接收返回的对象修改成功/失败状态。对象详情信息接口,用于获取对象详情页,传递对象主键接收返回的该对象基本信息以及所有附属信息数据,如列表属性,文字映射属性,数字映射属性。关联对象查询接口,用于查看指定对象的在指定概念下所有关联对象详情,传递对象主键、目标概念编号,接收分页返回的该对象在目标概念下有关联的对象及其基本信息如对象标准名,别称等。列表附加属性筛选接口,用于通过一些时间条件、位置索引条件对数据进行筛选,传递对象主键、附加属性名字、筛选条件,接收返回的符合筛选条件的数据。

短属性创建接口,用于创建指定对象短属性的数据,传递对象主键、短属性名、短属性值,接收返回的短属性创建状态。短属性修改接口,用于修改指定对象的短属性的值,传递对象主键、短属性名、短属性值,接收返回的短属性修改状态。短属性删除接口,用于删除指定对象的短属性,传递对象主键、短属性名,接收返回的短属性删除状态。

文本映射附加属性创建接口,用于创建一个附加属性为文本映射表,传递对象主键、文本映射属性名及相关信息,接收返回的文本映射属性创建状态。文本映射附加属性删除接口,用于删除一个指定对象的文本映射附加属性,传递对象主键,文本映射附加属性名,接收返回的文本映射属性删除状态。文本映射附加属性数据添加接口,用于往指定的文本映射属性中添加数据,传递对象主键、属性名、键值,接收返回文本映射数据添加状态。文本映射附加属性数据删除接口,用于往指定的文本映射属性中删除数据,传递对象主键、属性名、键值,接收返回的文本映射属性数据删除状态。文本映射附加属性数据修改接口,用于往指定的文本属性中修改指定键对应的值,传递对象主键、属性名、键值,接收返回的文本映射数据修改状态。文本映射附加属性数据文本导入接口,通过文本导入,批量添加文本映射附加属性的数据,传递对象主键、属性名、文本文件,接收返回的文本映射附加属性数据导入状态。

数字映射附加属性创建接口,用于创建一个附加属性为数字映射表,传递对象主键、数字映射属性名及相关信息,接收返回的数字映射属性创建状态。数字映射附加属性删除接口,用于删除一个指定对象的数字映射附加属性,传递对象主键、数字映射附加属性名,接收返回的数字映射属性删除状态。数字映射附加属性数据添加接口,用于往指定的数字映射属性中添加数据,传递对象主键、属性名、键、数字,接收返回的数字映射数据添加状态。数字映射附加属性数据删除接口,用于往指定的数字映射属性中删除数据,传递对象主键、属性名、数字,接收返回的数字映射属性数据删除状态。数字映射附加属性数据修改接口,用于往指定的数字属性中修改指定键对应的值,传递对象主键、属性名、键值,接收返回的数字映射数据修改状态。数字映射附加属性数据文本导入接口,通过文本导入,批量添加数字映射附加属性的数据,传递对象主键、属性名、文本文件,接收返回的数字映射附加属性数据导入状态。

列表映射附加属性创建接口,用于创建一个附加属性为列表映射表,传递对象主键、列表映射属性名及相关信息,接收返回的列表映射属性创建状态。列表映射附加属性删除接口,用于删除一个指定对象的列表映射附加属性,传递对象主键、列表映射附加属性名,接收返回的列表映射属性删除状态。列表映射附加属性数据添加接口,用于往指定的列表映射属性中添加数据,传递对象主键、属性名、键值,返回列表映射数据添加状态。列表映射附加属性数据删除接口,用于往指定的列表映射属性中删除数据,传递对象主键、属性名、键值,接收返回的列表映射属性数据删除状态。列表映射附加属性数据修改接口,用于往指定的列表属性中修改指定键对应的值,传递对象主键、属性名、键值,接收返回的列表映射数据修改状态。时间序列文本导入接口,用于通过文本导入,批量添加时间序列的数据,传递对象主键、属性名、文本文件,接收返回的时间序列文本导入状态。

关联创建接口,用于为两个对象主键创建一种关联,传递两个对象主键、关联数字,接收返回的关联创建状态。关联删除接口,用于解除两个对象主键的关联信息,传递两个对象主键,接收返回的关联删除状态。获取指定对象的有关联的所有概念列表接口,用于提取出指定对象和别的概念有关联的概念列表,传递对象主键,接收返回的概念列表及每个概念的基本信息,如概念名,概念编号,有关联的数量。对象关联标签添加接口,用于为指定对象添加关联标签,传递对象主键、标签数据,接收返回的对象关联标签添加状态。对象关联标签删除接口,用于为指定对象删除关联标签,传递对象主键、标签数据,接收返回的对象关联标签删除状态。对象关联标签修改接口,用于为指定对象修改关联标签,传递对象主键、标签数据,接收返回的对象关联标签修改状态。

在对象用户相关操作接口中,登陆接口,用于账号密码登陆,传递用户名、密码,接收返回的登陆状态及session信息。退出接口,用于账号退出,传递sessionid,接收返回的用户退出状态。用户创建接口,用于在超级用户登陆下创建用户,传递输入指定用户名、密码、邮箱、手机号码,接收返回的用户创建状态。用户密码修改接口,用于指定用户想要修改自己密码,传递输入指定用户名、密码,接收返回的用户密码修改状态。概念权限添加接口,用于为指定用户添加指定概念的权限,传递概念编号、权限,接收返回的权修添加状态。概念权限修改接口,用于为指定用户修改指定概念的权限,传递概念编号、权限,接收返回的权限修改状态。概念权限删除接口,用于为指定用户删除指定概念的权限,传递概念编号、权限,接收返回的权限删除状态。对象权限添加接口,用于为指定用户添加指定概念的权限,传递对象主键、权限,接收返回的权限添加状态。对象权限修改接口,用于为指定用户修改指定概念的权限,传递对象主键、权限,接收返回的权修改加状态。对象权限删除接口,用于为指定用户删除指定概念的权限,传递对象主键、权限,接收返回的权限删除状态。数据库最重要的对外服务协议就是操作接口,本发明实施例提供的基于知识图谱的数据库明确给出数据库的操作规范和功能,针对数据库操作进行细化的接口约定。

在一具体实施例中,所述搜索模块通过使用数据库的集合功能,在通过概念划分得到的一个范围内基于实体对象三个层次的信息进行逆向索引的计算。

本发明实施例中,采用基于逆向索引的方式来完成内容的检索。首先是通过概念划分允许在任何一个范围内进行独立的检索查询,这样解决了仅仅在全局范围内检索结果过多后期筛选起来计算效率低下的问题;第二是通过使用内存数据库redis内的集合功能,完成逆向索引的计算,从而保证计算的速度;第三是将对象的全体信息分解拆分成为三个层次的信息,分别建立搜索机制。这三个层次分别是对象层面、对象属性层面和属性内的单元层面。三层搜索机制确保了使用者可以在不同层面寻找自己关系的文字内容,精确定位到对应的对象部分。

在一具体实施例中,所述权限管理机制,包括:接收用户对象发送的请求,其中,请求中包含用户对象的识别信息;根据用户对象的识别信息提取操作的主体以及权限范围;根据所述操作的主体以及权限范围判断用户对象有无进行目前操作的权限;在判定用户对象有进行目前的操作的权限后,执行此权限,并将操作结果返回至用户对象。

本发明实施例中,用户权限的管理是通过用户对象完成的。用户概念是在数据库预留下的一个专门的概念,下面的对象即为用户对象。一个用户对象代表一个真实的用户,并且系统在底层需要将sessionid(一种用于登录的密钥)与用户对象进行一对一的绑定。因为一个用户可能在多个设备上登录,因此sessionid仅仅能够代表一个客户端在系统内的登录,而用户对象可以对应多个sessionid即客户端,这些客户端其实都共享这个用户的权限属性。因此,一个自然人用户可以通过多个客户端登录数据库,同时每一个客户端通过sessionid与数据库内部的用户对象进行一对一的绑定从而实现将自然用户的权限,使用虚拟的用户对象进行代表。

权限管理的基本模式就是当任何一个用户对象试图访问或者修改另外一个对象信息时,通过这个对象内部的权限属性系统会动态判断操作是否可以得到授权。首先,在所有与数据库的互动过程中,sessionkey含有身份信息。根据sessionkey含有的身份信息,系统认定操作的主体是哪个用户对象,提取权限范围。根据操作的类型、操作的主体以及权限范围,查看对应的用户主体有没有进行目前的操作的权限。如果有进行目前的操作的权限,则执行,如果没有,则返回没有权限信息。如果权限授权成功,则执行动作并返回数据;如果授权没有成功,则返回该操作没有足够的权限信息。

在一具体实施例中,所述权限范围由实体对象储存的属性标签数据以及扩展属性数据确定的,包括:概念级别的权限和对象级别的权限,根据所述操作的主体以及权限范围判断用户对象有无进行目前操作的权限,包括,判断概念级别有无进行目前操作的权限;当概念级别有进行目前操作的权限,执行此权限,并将操作结果返回至用户对象;当概念级别无进行目前操作的权限,判断对象级别有无进行目前操作的权限;当对象级别有进行目前操作的权限,执行此权限,并将操作结果返回至用户对象;当对象级别无进行目前操作的权限,则判定用户对象无进行目前操作的权限。

本发明实施例中,用户的信息权限别分为实体对象级别的权限和属性级别的权限。对象级别的权限控制用户是否能够感知到某个对象的存在,而属性级别的权限则管理用户针对不同的属性是否具有读取或者写入的权利。对象级别的查看权描述的是任意一个用户对于某个对象最基础的权利,即拥有察看权是拥有其他信息权利的基础,而没有查看权意味着对象对于用户来说是完全隐形的,无论在列表中还是搜索结果中,用户无法感知到该对象的存在因此就没有任何读取和写入的权限。如果用户对实体对象本身具有查看权,那么下一步则是对特定的对象属性是否具有某种操作的权限。

对象的属性权限分为读取和写入两种,不同用户对不同对象属性的这两种信息权限记录在用户本身的对象属性中。这个属性称为用户的权限属性,其中以引用列表的形式记录了用户具有读取和写入权限的对象以及对应的属性名字。

用户对象的权限,由代表用户的用户对象内的属性数据进行储存。权限分为:概念级别的权限和对象级别的权限两个部分,分别指示用户对于“概念”和“对象”两个级别的访问权利。如下表所示,为“概念”和“对象”两个级别的访问权限范围说明:

数据库核查一个用户对象是否对特定的概念或者对象具有某种权限时,从宏观到微观进行判断,首先从概念层面进行判断,然后判断对象层面。例如,对象a隶属于概念x下,现在某个客户端对应的用户是u,当这个客户端要读取a的一个系统属性的时候,需要查看权限。那么数据库将会从概念层面的权限开始判断,逻辑如下:

1)从用户u的概念权限映射表中,找到概念x对应的权限表示,判断这个权限中是否包含“读取属性”。如果有,则认为本次操作可以进行;如果没有,那么进入对象一级的权限查看;

2)从用户u的概念权限映射表中,找到对象a对应的权限表示,判断这个权限中是否包含“读取属性”。如果有,则认为本次操作可以进行;如果没有,那么判定为权限不够。

因此,权限的表述具有递进性,上面表格中的所有权限信息,既出现在概念权限表中,也会出现在对象权限表中。如果一个对象的概念权限表中,对对象的某种权限做了授权,则认为用户对于概念下的所有对象都有对应的权限。

本发明提供的基于深度知识图谱的数据库系统,将知识图谱的全体实体对象分割为多个子集,根据实体对象的信息结构创建实体对象之间的关联并进行关联计算,采用基于逆向索引的搜索方法,实现对象级别和对象内级别的搜索。通过引入深度知识图谱机制,解决了传统知识图谱数据库信息表达能力不足,无法有效支撑大多数工业和商业应用系统后台数据服务需求的问题。在知识图谱中引入“概念”划分机制,解决了超大型知识图谱中由于对象节点过多导致计算效率低下的问题。能够实现毫秒级别的关联查询,极大提升了知识图谱中核心操作的实用性。在深度知识图谱数据库体系内完整的嵌入一个多媒体文件的管理框架,从而解决了一般类知识图谱数据库支持多媒体数据困难的问题。通过权限关联,实现不同对象之间的访问权限控制,并且权限控制可以具体到对象内部的属性级别,实现精细的数据读取和编辑控制。采用基于逆向索引的搜索方法,实现对象级别和对象内级别的搜索,并且通过算法内部的改进实现了毫秒级的全范围全文本搜索。

显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1