CN104346340A - 一种存储资源描述框架数据的方法和装置 - Google Patents
一种存储资源描述框架数据的方法和装置 Download PDFInfo
- Publication number
- CN104346340A CN104346340A CN201310314352.XA CN201310314352A CN104346340A CN 104346340 A CN104346340 A CN 104346340A CN 201310314352 A CN201310314352 A CN 201310314352A CN 104346340 A CN104346340 A CN 104346340A
- Authority
- CN
- China
- Prior art keywords
- rdf
- tlv triple
- statement
- rdf tlv
- triplet sets
- 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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种存储资源描述框架数据的方法和装置,属于计算机技术领域。所述方法包括:获取待存储的至少一个资源描述框架RDF三元组,所述待存储的RDF三元组中包括本体RDF三元组和声明RDF三元组;根据所述待存储的RDF三元组中的本体RDF三元组,确定传递本体RDF三元组集合;根据所述待存储的RDF三元组中的声明RDF三元组,以及所述传递本体RDF三元组集合,确定主声明RDF三元组集合;存储所述传递本体RDF三元组集合和所述主声明RDF三元组集合。采用本发明,可以提高数据库存储资源的利用率。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种存储资源描述框架数据的方法和装置。
背景技术
语义分析是一种通过对语义数据进行推理得到新语义数据的手段来实现数据分析目的的方法。语义数据可称作本体,是指对真实世界中的实体以及实体之间的关系的描述数据。语义分析是一种处理海量数据的有效手段,语义分析主要采用构建本体并基于本体进行推理的方法。RDF(Resource DescriptionFramework,资源描述框架)是一种最常用的本体描述方法。RDF采用三元组的方式进行描述,RDF三元组包括资源、属性和属性值(或称为主体、谓语和客体),例如,“苹果是水果”是一个RDF三元组,其中,“苹果”是主体,“是”是谓语,“水果”是客体。
数据库中存储有海量的RDF数据,一般采用的存储RDF数据的方法是对加入数据库中的RDF三元组直接进行存储。对于数据库中存储的RDF三元组可以进行RDF查询,查询符合查询条件的RDF三元组,以获取RDF三元组所承载的信息。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
现有技术中,直接将请求存入数据库的RDF三元组进行存储,随着RDF三元组数量的不断增长,对数据库的存储资源占用量过大。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种存储资源描述框架数据的方法和装置,以在存储RDF数据时提高数据库存储资源的利用率。所述技术方案如下:
一方面,提供了一种存储资源描述框架数据的方法,所述方法包括:
获取待存储的至少一个资源描述框架RDF三元组,所述待存储的RDF三元组中包括本体RDF三元组和声明RDF三元组;
根据所述待存储的RDF三元组中的本体RDF三元组,确定传递本体RDF三元组集合;
根据所述待存储的RDF三元组中的声明RDF三元组,以及所述传递本体RDF三元组集合,确定主声明RDF三元组集合;其中,所述主声明RDF三元组集合中包括所述待存储的RDF三元组中的部分声明RDF三元组,且基于所述传递本体RDF三元组集合能够推理得到所述待存储的RDF三元组中的部分声明RDF三元组之外的声明RDF三元组;
存储所述传递本体RDF三元组集合和所述主声明RDF三元组集合。
另一方面,提供了一种存储资源描述框架数据的装置,所述方法包括:
获取模块,用于获取待存储的至少一个资源描述框架RDF三元组,所述待存储的RDF三元组中包括本体RDF三元组和声明RDF三元组;
第一确定模块,用于根据所述待存储的RDF三元组中的本体RDF三元组,确定传递本体RDF三元组集合;
第二确定模块,用于根据所述待存储的RDF三元组中的声明RDF三元组,以及所述传递本体RDF三元组集合,确定主声明RDF三元组集合;其中,所述主声明RDF三元组集合中包括所述待存储的RDF三元组中的部分声明RDF三元组,且基于所述传递本体RDF三元组集合能够推理得到所述待存储的RDF三元组中的部分声明RDF三元组之外的声明RDF三元组;
存储模块,用于存储所述传递本体RDF三元组集合和所述主声明RDF三元组集合。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例中,对传递本体RDF三元组集合和主声明RDF三元组集合进行存储。这样,数据库在对RDF三元组进行存储时,只需存储其中的一部分声明RDF三元组,其余部分的声明RDF三元组可以通过存储的RDF三元组推理得出,从而,可以提高数据库存储资源的利用率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的存储RDF数据的方法流程图;
图2a是本发明实施例提供的PTIF的构建方式示意图;
图2b是本发明实施例提供的DRTF的构建方式示意图;
图2c是本发明实施例提供的CTIF的构建方式示意图;
图3是本发明实施例提供的存储RDF数据的应用实例处理示意图;
图4是本发明实施例提供的更新RDF数据的方法流程图;
图5是本发明实施例提供的查询RDF三元组的方法流程图;
图6是本发明实施例提供的存储RDF数据的装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例一
本发明实施例提供了一种存储资源描述框架数据的方法,如图1所示,该方法的处理流程可以包括如下的处理步骤:
步骤101,获取待存储的至少一个RDF三元组,待存储的RDF三元组中包括本体RDF三元组和声明RDF三元组。
步骤102,根据待存储的RDF三元组中的本体RDF三元组,确定传递本体RDF三元组集合。
步骤103,根据待存储的RDF三元组中的声明RDF三元组,以及传递本体RDF三元组集合,确定主声明RDF三元组集合;其中,该主声明RDF三元组集合中包括待存储的RDF三元组中的部分声明RDF三元组,且基于传递本体RDF三元组集合能够推理得到待存储的RDF三元组中的此部分声明RDF三元组之外的声明RDF三元组。
步骤104,存储传递本体RDF三元组集合和主声明RDF三元组集合。
本发明实施例中,对传递本体RDF三元组集合和主声明RDF三元组集合进行存储。这样,数据库在对RDF三元组进行存储时,只需存储其中的一部分声明RDF三元组,其余部分的声明RDF三元组可以通过存储的RDF三元组推理得出,从而,可以提高数据库存储资源的利用率。
实施例二
本发明实施例提供了一种存储资源描述框架数据的方法,该方法的执行主体可以是存储RDF数据的数据库服务器。
本发明实施例中,RDF三元组的格式可以是s p o,其中,s是主体,p是谓语,o是客体。RDF三元组的推理基于RDF三元组推理规则进行,RDF三元组具有13条推理规则,具体可以如下:
1:s p o(if o is a literal)=>_:n rdf:type rdfs:Literal
2:p rdfs:domain x&s p o=>s rdf:type x
3:p rdfs:range x&s p o=>o rdf:type x
4a:s p o=>s rdf:type rdfs:Resource
4b:s p o=>o rdf:type rdfs:Resource
5:p rdfs:subPropertyOf q&q rdfs:subPropertyOf r=>p rdfs:subPropertyOf r
6:p rdf:type rdf:Property=>p rdfs:subPropertyOf p
7:s p o&p rdfs:subPropertyOf q=>s q o
8:s rdf:type rdfs:class=>s rdfs:subClassOf rdfs:Resource
9:s rdf:type x&x rdfs:subClassOf y=>s rdf:type y
10:s rdf:type rdfs:Class=>s rdfs:subClassOf s
11:x rdfs:subClassOf y&y rdfs:subClassOf z=>x rdfs:subClassOf z
12:p rdf:type rdfs:ContainerMembershipProperty=>p rdfs:subPropertyOfrdfs:member
13:o rdf:type rdfs:Datatype=>o rdfs:subClassOf rdfs:Literal
其中,s、p、o、q、r、x、y可以任意,“&”表示和,“=>”表示推理得到,例如,s rdf:type x&x rdfs:subClassOf y=>s rdf:type y,表示根据RDF三元组srdf:type x和RDF三元组x rdfs:subClassOf y进行推理,能够得到RDF三元组srdf:type y。rdfs:subClassOf用于表示类的继承关系,三元组A rdfs:subClassOf B表示A是B的子类;rdfs:subPropertyOf用于表示属性的继承关系,三元组Ardfs:subPropertyOf B表示A是B的子属性;rdfs:type用于表示实例关系,三元组A rdfs:type B表示A是B的一个实例;rdfs:Resource用于表示资源类,是rdfs:Class(总的类)的子类;rdfs:Literal用于表示文本类,是rdfs:Resource的子类;rdfs:Datatype用于表示数据类型类,是rdfs:Class的子类;rdfs:range用于表示范围关系,三元组A rdfs:range B表示A是B的范围;rdfs:domain用于表示领域关系,三元组A rdfs:domain B表示A是B的领域;rdfs:member用于表示成员类,是rdfs:Resource的子类。
在本发明实施例中,RDF三元组包括本体RDF三元组和声明RDF三元组。
其中,本体RDF三元组(OT,Ontological Triples)是,谓语为rdfs:domain、rdfs:range、rdfs:subClassOf或rdfs:subPropertyOf的RDF三元组,以及谓语为rdf:type并且客体为rdfs:Datatype、rdfs:Class或rdfs:ContainerMembershipProperty的RDF三元组。本体RDF三元组能够显著地影响推理得到的RDF三元组数量。除本体RDF三元组外,其它的RDF三元组称为声明RDF三元组(AT,AssertionalTriples)。
本体RDF三元组,包括传递本体RDF三元组和非传递本体RDF三元组。传递本体RDF三元组是具有传递推理功能的本体RDF三元组,也即基于RDF三元组推理规则,能够与另一个RDF三元组推理得到第三个RDF三元组的本体RDF三元组。传递本体RDF三元组可以具体为谓语为rdfs:domain、rdfs:range、rdfs:subClassOf或rdfs:subPropertyOf的RDF三元组,可以应用于上述推理规则中的2、3、5、7、9、11的推理过程中。非传递本体RDF三元组是除传递本体RDF三元组之外的本体RDF三元组。非传递本体RDF三元组又是能够推理得到传递本体RDF三元组的本体RDF三元组。非传递本体RDF三元组可以具体为谓语为rdf:type并且客体为rdfs:Datatype、rdfs:Class或rdfs:ContainerMembershipProperty的RDF三元组。
下面将结合具体的实施过程,对图1所示处理流程进行详细的说明,具体内容可以如下:
步骤101,获取待存储的至少一个RDF三元组,待存储的RDF三元组中包括本体RDF三元组和声明RDF三元组。
其中,待存储的RDF三元组可以包括一个或多个RDF三元组。
本处理流程可以应用于对数据库中原存储的RDF数据进行处理并重新存储,缩减存储的数据量,也可以应用于对新建的数据库将待存入的RDF数据进行处理并存储。相应的,待存储的RDF三元组可以是数据库中原存储的RDF三元组或新请求存入的RDF三元组。
步骤102,根据待存储的RDF三元组中的本体RDF三元组,确定传递本体RDF三元组集合。
其中,待存储的RDF三元组中的本体RDF三元组包括传递本体RDF三元组和非传递本体RDF三元组。
具体的,该步骤的处理过程可以包括:
首先,获取待存储的本体RDF三元组中的传递本体RDF三元组;并根据待存储的本体RDF三元组中的非传递本体RDF三元组,推理得到非传递本体RDF三元组对应的传递本体RDF三元组。
在实施中,可以根据谓语和客体将待存储的本体RDF三元组划分为传递本体RDF三元组(即谓语为rdfs:domain、rdfs:range、rdfs:subClassOf或rdfs:subPropertyOf的本体RDF三元组)和非传递本体RDF三元组(即谓语为rdf:type并且客体为rdfs:Datatype、rdfs:Class或rdfs:ContainerMembershipProperty的本体RDF三元组)。
根据非传递本体RDF三元组推理对应的传递本体RDF三元组时,可以采用推理规则10、12、13。
然后,将获取的传递本体RDF三元组和推理得到的传递本体RDF三元组构成传递本体RDF三元组集合。
其中,传递本体RDF三元组集合,可以包括:属性传递本体RDF三元组子集合、范围传递本体RDF三元组子集合和类传递本体RDF三元组子集合。上述的各子集合可以为空集。
属性传递本体RDF三元组是表示属性关系的传递本体RDF三元组,具体可以是谓语为rdfs:subPropertyOf的本体RDF三元组。属性传递本体RDF三元组子集合可以包括:待存储的RDF三元组中的属性传递本体RDF三元组;以及根据待存储的RDF三元组中的谓语为rdf:type且客体为rdfs:Container-MembershipProperty的本体RDF三元组按照推理规则(推理规则12)推理得到的本体RDF三元组。
范围传递本体RDF三元组是表示范围关系的传递本体RDF三元组,具体可以是谓语为rdfs:domain或rdfs:range的本体RDF三元组。
类传递本体RDF三元组是表示类关系的传递本体RDF三元组,具体可以是谓语为rdfs:subClassOf的本体RDF三元组。类传递本体RDF三元组子集合可以包括:待存储的RDF三元组中的类传递本体RDF三元组;根据待存储的RDF三元组中的谓语为rdf:type且客体为rdfs:Class的本体RDF三元组按照推理规则(推理规则10)推理得到的本体RDF三元组;以及根据待存储的RDF三元组中的谓语为rdf:type且客体为rdfs:Datatype的本体RDF三元组按照推理规则(推理规则13)推理得到的本体RDF三元组。
优选的,上述传递本体RDF三元组集合具体可以采用TIF(Transfer InferenceForest,传递推理森林)的形式,TIF可以是根据本体RDF三元组之间的传递推理关系构建的有向图的集合。在TIF中,可以包括以下三种类型的TIF:PTIF(Property Transfer Inference Forest,属性传递推理森林)、DRTF(Domain/RangeTransform Forest,范围传递推理森林)和CTIF(Class Transfer Inference Forest,类传递推理森林)。相应的,属性传递本体RDF三元组子集合可以具体为PTIF,范围传递本体RDF三元组子集合可以具体为DRTF,类传递本体RDF三元组子集合可以具体为CTIF。
PTIF可以是根据属性传递本体RDF三元组之间的推理关系构建的有向图的集合,构建方式可以如图2a所示。PTIF中,每一个节点为本体RDF三元组的主体或客体,有向边表示主体与客体之间的rdfs:subPropertyOf的关系。
DRTF可以是根据范围传递本体RDF三元组之间的推理关系构建的有向图的集合,构建方式可以如图2b所示。DRTF中,每一个节点为本体RDF三元组的主体或客体,有向边表示主体与客体之间的rdfs:domain或rdfs:range的关系。
CTIF可以是根据类传递本体RDF三元组之间的推理关系构建的有向图的集合,构建方式可以如图2c所示。PTIF中,每一个节点为本体RDF三元组的主体或客体,有向边表示主体与客体之间的rdfs:subClassOf的关系。
在TIF中定义有前向路径(Forward Path)和逆向路径(Reverse Path)。
前向路径(Forward Path):前向路径表示在一个图当中,从某一给定的节点或者边开始,沿着树当中边的方向,路由到达终点的路径。其中终点表示TIF当中不存在出发边的节点。例如,图2a当中,边p4→p5的前向路径为p5→p7,节点p4的前向路径则为p4→p6和p4→p5→p7。
逆向路径(Reverse Path):逆向路径与前向路径相反,表示在一个图当中,从某一给定的节点或者边开始,沿着树当中边的逆方向,路由到达终点的路径。其中终点表示TIF当中不存在到达边的节点。例如,图2a当中,边p1→p2的逆向路劲为p0→p1,节点p7的逆向路径为p4→p5→p7。
基于TIF,在实际应用中,可以进行以下的RDF三元组推理:
因为,PTIF中有向边表示其连接的节点之间具有rdfs:subPropertyOf的关系,所以,基于推理规则5(p rdfs:subPropertyOf q&q rdfs:subPropertyOf r=>prdfs:subPropertyOf r),可以获得主体和客体为PTIF当中的所有的相互可达(通过边连接)的节点对,且谓语为rdfs:subPropertyOf的RDF三元组。
因为,CTIF中有向边表示其连接的节点之间具有rdfs:subClassOf的关系,所以,基于推理规则11(x rdfs:subClassOf y&y rdfs:subClassOf z=>xrdfs:subClassOf z),可以获得主体和客体为CTIF当中的所有的相互可达的节点对,且谓语为rdfs:subClassOf的RDF三元组。
因为,PTIF中有向边表示其连接的节点之间具有rdfs:subPropertyOf的关系,所以,推理规则7(s p o&p rdfs:subPropertyOf q=>s q o)可以认为属性相关的声明RDF三元组在PTIF当中沿着边的方向进行谓语替代。
因为,CTIF中有向边表示其连接的节点之间具有rdfs:subClassOf的关系,所以,推理规则9(s rdf:type x&x rdfs:subClassOf y=>s rdf:type y)可以认为类相关的声明RDF三元组在CTIF当中沿着边的方向进行客体替代。
因为,DRTF中有向边表示其连接的节点之间具有rdfs:domain或rdfs:range的关系,所以,推理规则2(p rdfs:domain x&s p o=>s rdf:type x)和推理规则3(p rdfs:range x&s p o=>o rdf:type x)可以认为属性相关的声明RDF三元组沿着DRTF的边的方向生成类相关的声明RDF三元组。
步骤103,根据待存储的RDF三元组中的声明RDF三元组,以及传递本体RDF三元组集合,确定主声明RDF三元组集合。
其中,该主声明RDF三元组集合中包括待存储的RDF三元组中的部分声明RDF三元组,且基于传递本体RDF三元组集合能够推理得到待存储的RDF三元组中的此部分声明RDF三元组之外的声明RDF三元组。
这里,基于传递本体RDF三元组集合对主声明RDF三元组集合进行推理能够得到待存储的RDF三元组中的此部分声明RDF三元组之外的全部声明RDF三元组。所以,该步骤的处理,可以获取到少量的声明RDF三元组,此少量的声明RDF三元组能够推理出待存储的RDF三元组中的全部声明RDF三元组。
该步骤中确定出的主声明RDF三元组集合中可以包括属性相关的声明RDF三元组和/或类相关的声明RDF三元组。类相关的声明RDF三元组是谓语为rdf:type的声明RDF三元组。属性相关的声明RDF三元组是谓语不为rdf:type的声明RDF三元组,即除类相关的声明RDF三元组之外的其它声明RDF三元组。
优选的,上述主声明RDF三元组集合中的声明RDF三元组为有效声明RDF三元组(EAT,Effective Assertional Triples),相应的,主声明RDF三元组集合中的属性相关的声明RDF三元组为PEAT(Property Effective Assertional Triple,属性相关的有效声明RDF三元组),类相关的声明RDF三元组为CEAT(ClassEffective Assertional Triple,类相关的有效声明RDF三元组),也即主声明RDF三元组集合中包括属性相关的有效声明RDF三元组和类相关的有效声明RDF三元组。有效声明RDF三元组包括PEAT和CEAT。
在上述主声明RDF三元组集合中,PEAT为,在待存储的RDF三元组中的属性相关的声明RDF三元组中,不能根据传递本体RDF三元组集合对待存储的RDF三元组中的属性相关的声明RDF三元组进行推理得到的属性相关的声明RDF三元组。
可以设置用于获取PEAT的PEAT算子,PEAT算子的具体设置可以如下:
输入:PTIF以及一组具有相同主体和客体的属性相关的声明RDF三元组{<si,p1,oi>,<si,p2,oi>,……}(可以是待存储的RDF三元组中的属性相关的声明RDF三元组)。
输出:PEAT{si,oi,<pi>}
算子处理过程:获取输入的RDF三元组的谓语列表<p1,p2…>;遍历谓语列表当中的每一个谓语pj,获得该谓语在PTIF中的前向路径,如果谓语列表当中的谓语pi存在于前向路径当中,从列表当中移除该谓语pi。
在主声明RDF三元组集合中,基于全部的PEAT可以根据PTIF推理得到主声明RDF三元组集合中其它属性相关的声明RDF三元组。
如在图2a所示的PTIF下,RDF三元组T2:<s1,p2,o1>可以通过T1:<s1,p0,o1>推理得到。T1在PTIF的推理结果(基于推理规则7)包括<s1,p0,o1>,<s1,p1,o1>,<s1,p2,o1>,<s1,p3,o1>,T2的推理结果包括<s1,p2,o1>,<s1,p3,o1>完全被T1的推理结果所包含,针对T2的推理则没有必要。因此,通过PEAT就可以推理出其它属性相关的声明RDF三元组能够推理得到的结果。所以,只记录待存储的RDF三元组中PEAT,就可以起到记录待存储的RDF三元组中的全部属性相关的声明RDF三元组的作用。
类似的,通过CEAT就可以推理出其它类相关的声明RDF三元组能够推理得到的结果。所以,只记录待存储的RDF三元组中CEAT,就可以起到记录待存储的RDF三元组中的全部属性相关的声明RDF三元组的作用。
在上述主声明RDF三元组集合中,CEAT为,在待存储的RDF三元组中的类相关的声明RDF三元组,以及根据传递本体RDF三元组集合对待存储的RDF三元组中的属性相关的声明RDF三元组进行推理得到的类相关的声明RDF三元组中,不能根据传递本体RDF三元组集合对其它类相关的声明RDF三元组进行推理得到的类相关的声明RDF三元组。
可以设置用于获取CEAT的CEAT算子,CEAT算子的具体设置可以如下:
输入:CTIF以及一组具有相同主体并且谓语为rdf:type的类相关的声明RDF三元组{<si,rdf:type,o1>,<si,rdf:type,o2>,……}(可以是待存储的RDF三元组中的类相关的声明RDF三元组)。
输出:CEAT{si,<oi>}
算子处理过程:获取输入的RDF三元组的客体列表<o1,o2…>;遍历客体列表当中的每一个客体oj,获得该客体在CTIF中的前向路径,如果列表当中的客体oi存在于前向路径当中,从列表当中移除该客体oi。
在主声明RDF三元组集合中,基于全部的CEAT可以根据CTIF推理得到主声明RDF三元组集合中其它类相关的声明RDF三元组。
在实施中,步骤103的执行过程可以如下:
首先,在待存储的RDF三元组中的属性相关的声明RDF三元组中,将不能根据属性传递本体RDF三元组子集合对待存储的RDF三元组中的属性相关的声明RDF三元组进行推理得到的属性相关的声明RDF三元组,确定为PEAT。
具体的,可以在待存储的RDF三元组中的属性相关的声明RDF三元组中,将具有相同主体和客体的RDF三元组分为一组,对每组RDF三元组使用上述PEAT算子确定相应的PEAT。
然后,根据范围传递本体RDF三元组子集合,对确定出的PEAT进行推理,得到PEAT对应的类相关的声明RDF三元组。
具体的,对于每一个PEAT中的谓语p,可以获取p在PTIF中的前向路径,如果该前向路径中有节点存在于DRTF当中,对该PEAT进行DRTF推理(基于推理规则2和推理规则3的推理),得到类相关的声明RDF三元组。
再后,在待存储的RDF三元组中的类相关的声明RDF三元组和推理得到的类相关的声明RDF三元组中,将不能根据类传递本体RDF三元组子集合对待存储的RDF三元组中的类相关的声明RDF三元组和推理得到的类相关的声明RDF三元组进行推理得到的类相关的声明RDF三元组,确定为CEAT。
具体的,可以获取待存储的RDF三元组中的类相关的声明RDF三元组和上述推理得到的类相关的声明RDF三元组,在这些类相关的声明RDF三元组中,将具有相同主体并且谓语为rdf:type的声明RDF三元组分为一组,对每组声明RDF三元组使用上述CEAT算子确定相应的CEAT。
最后,将确定出的PEAT和CEAT构成上述主声明RDF三元组集合。
主声明RDF三元组集合可以包括上述确定出的PEAT和CEAT。
步骤104,存储传递本体RDF三元组集合和主声明RDF三元组集合。
可以将传递本体RDF三元组集合和主声明RDF三元组集合存储在数据库中。具体的,可以将TIF和EAT进行存储。
如图3所示,为上述图1的处理流程的应用实例的处理示意图,可以方便对处理流程的理解。
本发明实施例中,对传递本体RDF三元组集合和主声明RDF三元组集合进行存储。这样,数据库在对RDF三元组进行存储时,只需存储其中的一部分声明RDF三元组,其余部分的声明RDF三元组可以通过存储的RDF三元组推理得出,从而,可以提高数据库存储资源的利用率。
本发明实施例还提供了在数据库中添加RDF三元组的处理方法,这里可以假设数据库中存储的RDF数据为按上述步骤101-104的方法存储的RDF数据。添加RDF三元组的处理过程,可以在上述对传递本体RDF三元组集合和主声明RDF三元组集合进行存储之后执行,如图4所示,可以包括如下的处理步骤:
步骤401,接收RDF数据添加请求,该RDF数据添加请求中携带有增量RDF三元组(即待添加的新增的RDF三元组)。RDF数据添加请求是对在数据库中添加RDF数据的请求,该请求中可以携带一个或多个增量RDF三元组。
在数据库中已经根据上述步骤101-104的处理流程存储了传递本体RDF三元组集合和主声明RDF三元组集合的情况下,可以通过步骤401-404的处理流程对RDF数据添加请求进行处理。
步骤402,根据增量RDF三元组中的本体RDF三元组,确定增量传递本体RDF三元组集合,将增量传递本体RDF三元组集合与存储的传递本体RDF三元组集合进行合并,得到更新的传递本体RDF三元组集合。
具体的,根据增量RDF三元组中的本体RDF三元组构建增量传递本体RDF三元组集合的方式,与步骤102中根据待存储的RDF三元组中的本体RDF三元组构建传递本体RDF三元组集合的处理方式相同,可以参见步骤102中的具体描述。该步骤中构建的增量传递本体RDF三元组集合可以具体为增量TIF。增量TIF中可以包括已有边和增量边,已有边为原存储的TIF中已存在的边,增量边为原存储的TIF中不存在的边。
具体的,将增量传递本体RDF三元组集合中的RDF三元组,合并到存储的传递本体RDF三元组集合中,将增量传递本体RDF三元组集合中的RDF三元组和存储的传递本体RDF三元组集合中的RDF三元组进行组合并去重,以对存储的传递本体RDF三元组集合进行更新,得到更新的传递本体RDF三元组集合。具体可以是将增量TIF合并到存储的TIF中,得到更新的TIF,可以包括更新的PTIF、更新的DRTF、更新的CTIF。
步骤403,根据更新的传递本体RDF三元组集合,存储的主声明RDF三元组集合,以及增量RDF三元组中的声明RDF三元组,确定更新的主声明RDF三元组集合。该步骤的处理与步骤103的处理类似,可以参见相关的内容。
其中,此更新的主声明RDF三元组集合中包括增量RDF三元组中的声明RDF三元组和存储的主声明RDF三元组集合的并集中的部分声明RDF三元组,且基于更新的传递本体RDF三元组集合能够推理得到该并集中的部分声明RDF三元组之外的声明RDF三元组。
在优选情况下:更新的主声明RDF三元组集合中包括更新的PEAT和更新的CEAT;更新的传递本体RDF三元组集合包括更新的属性传递本体RDF三元组子集合、更新的范围传递本体RDF三元组子集合、更新的类传递本体RDF三元组子集合。
在这种情况下,步骤403的处理可以如下:
首先,在上述并集中的属性相关的声明RDF三元组中,将不能根据更新的属性传递本体RDF三元组子集合对该并集中的属性相关的声明RDF三元组进行推理得到的属性相关的声明RDF三元组,确定为更新的PEAT。
具体的,可以在存储的主声明RDF三元组集合内的PEAT和增量RDF三元组中的属性相关的声明RDF三元组中,将具有相同主体和客体的RDF三元组分为一组,对每组RDF三元组使用上述PEAT算子确定更新的PEAT。
或者,也可以先在增量RDF三元组中的属性相关的声明RDF三元组中,将具有相同主体和客体的RDF三元组分为一组,对每组RDF三元组使用上述PEAT算子确定增量PEAT;然后,在存储的PEAT和增量PEAT中,将具有相同主体和客体的RDF三元组分为一组,对每组RDF三元组使用上述PEAT算子确定更新的PEAT。
然后,根据更新的属性传递本体RDF三元组子集合和更新的范围传递本体RDF三元组子集合,对更新的PEAT进行推理,得到更新的PEAT对应的类相关的声明RDF三元组。
具体的,对于更新后的每一个PEAT中的谓语p,可以获取p在更新的PTIF中的前向路径,如果该前向路径中有节点存在于更新的DRTF当中,对该PEAT进行DRTF推理(基于推理规则2和推理规则3的推理),得到类相关的声明RDF三元组。
再后,在上述并集中的类相关的声明RDF三元组和上述推理得到的类相关的声明RDF三元组中,将不能根据更新的类传递本体RDF三元组子集合对该并集中的类相关的声明RDF三元组和上述推理得到的类相关的RDF三元组进行推理得到的类相关的声明RDF三元组,确定为更新的CEAT。
具体的,可以获取存储的CEAT、增量RDF三元组中的类相关的声明RDF三元组和上一步中得到的类相关的声明RDF三元组,在这些类相关的声明RDF三元组中,将具有相同主体并且谓语为rdf:type的声明RDF三元组分为一组,对每组声明RDF三元组使用上述CEAT算子确定更新的CEAT。
最后,将确定出的更新的PEAT和更新的CEAT构成更新的主声明RDF三元组集合。
更新的主声明RDF三元组集合可以包括上述确定出的更新的PEAT和更新的CEAT。
步骤404,存储更新的传递本体RDF三元组集合和更新的主声明RDF三元组集合。可以用更新的传递本体RDF三元组集合,替换数据库中原存储的传递本体RDF三元组集合,并用更新的主声明RDF三元组集合,替换数据库中原存储的主声明RDF三元组集合。具体的,可以将更新的TIF和EAT进行存储。
本发明实施例中,在数据库中添加RDF三元组的过程中,对更新的传递本体RDF三元组集合和更新的主声明RDF三元组集合进行存储。这样,数据库在对增量RDF三元组和原存储的RDF三元组共同进行存储时,只需存储其中的一部分声明RDF三元组,其余部分的声明RDF三元组可以通过存储的RDF三元组推理得出,从而,可以提高数据库存储资源的利用率。
基于上述RDF数据的存储方法,本发明实施例还提供了对RDF三元组进行查询的处理流程,如图5所示,可以包括如下的处理步骤:
步骤501,接收RDF三元组查询请求,该RDF三元组查询请求中携带有RDF三元组查询条件。
RDF三元组查询条件可以包括以下几种:<?x ?y ?z>,<?x ?y o>,<?x p o>,<?x p ?z>,<s p ?z>,<s ?y ?z>,<s ?y o>,<s p o>,其中,带“?”的参数表示需要查询的参数,不带“?”的参数表示给定的参数条件。例如,<?x p o>表示给定谓语p和客体o,查询存储的以及能够推理得到的(基于存储的RDF三元组推理得到)全部谓语为p、客体为o的RDF三元组。
步骤502,根据存储的传递本体RDF三元组集合和主声明RDF三元组集合,以及RDF三元组推理规则,获取满足RDF三元组查询条件的查询结果。
优选的,可以根据存储的TIF和EAT,以及推理规则,获取满足RDF三元组查询条件的查询结果。
步骤503,对获取的查询结果进行反馈。
本发明实施例中,基于上述存储的PTIF、DRTF、CTIF、PEAT、CEAT,针对RDF三元组的查询,给出了以下几种基本的查询算子:
(1)前向查询:
查询算子a:在PTIF中,针对给定的主体和客体,查询相应的谓语。获得该主体和客体对应的PEAT,对于PEAT当中的每一个谓语p,输出该谓语p以及p在PTIF中的前向路径上的每一个节点。
查询算子b:在CTIF中,针对给定主体,并且谓语为rdf:type,查询相应的客体。获得该主体对应的CEAT,对于CEAT当中的每一个客体o,输出该客体o以及o在CTIF中的前向路径上的每一个节点。
(2)逆向查询:
查询算子c:在PTIF中,针对给定谓语为p,查询所有对应的主体、客体组合。如果该谓语存在于PTIF当中,获得该谓语对应节点逆向路径,对于该节点以及逆向路径上的每一个节点q,输出所有包含q的PEAT当中的主体、客体组合。因为这些主体和客体的组合均能够推理得到满足查询条件的RDF三元组。
查询算子d:在CTIF中,针对给定谓语为rdf:type、客体为c,查询所有的主体,如果该客体存在于CTIF当中,获得该客体对应节点的逆向路径,对于该节点以及逆向路径上的每一个节点d,输出所有包含d的CEAT当中的主体。因为这些主体均能够推理得到满足查询条件的RDF三元组。
(3)可达节点查询:
查询算子e:在PTIF当中,针对给定谓语为rdfs:subPropertyOf、主体为s,查询所有的客体,如果该主体包含于PTIF当中,输出该节点的前向路径上的节点。
查询算子f:在CTIF当中,针对给定谓语为rdfs:subClassOf、主体为s,查询所有的客体,如果该主体包含于CTIF当中,输出该节点的前向路径上的节点。
基于上述的查询算子,针对不同的RDF三元组查询条件,步骤502的具体查询策略可以如下:
<?x ?y ?z>:表示获得RDF三元组闭包,RDF三元组闭包是数据库存储的以及能够推理得到的(基于存储的RDF三元组推理得到)全部RDF三元组。
可以对于存储的每一个主体、客体组合,在PTIF上做前向查询(基于查询算子a),并对于存储的每一个主体,在CTIF上做前向查询(基于查询算子b)。
<?x p ?z>:表示给定谓语p,查询主体、客体组合。
如果p是在PTIF当中,在PTIF当中做逆向查询(基于查询算子c)。
如果p是rdf:type,对于存储的每一个主体,在CTIF上做前向查询(基于查询算子b)。
如果p是rdfs:subPropertyOf,对于PTIF中的每一个节点,执行将节点作为主体的可达性查询(基于查询算子e),并输出得到的全部主体、客体组合。
如果p是rdfs:subClassOf,对于CTIF中的每一个节点,执行将节点作为主体的可达性查询(基于查询算子f),并输出得到的全部主体、客体组合。
<?x p o>,<s p ?z>,<s p o>:这三类RDF三元组查询条件的查询过程与<?xp ?z>的查询过程类似,可以先按照上述的<?x p ?z>的查询过程进行查询,然后对<?x p ?z>的查询结果进行不同的处理。<?x p o>对应的查询过程中,可以在<?xp ?z>的查询结果中,选取客体为o的查询结果中的主体作为<?x p o>的查询结果。<s p ?z>对应的查询过程中,可以在<?x p ?z>的查询结果中,选取主体为s的查询结果中的客体作为<s p ?z>的查询结果。<s p o>对应的查询过程中,可以在<?x p ?z>的查询结果所述的RDF三元组中,选取主体为s且客体为o的RDF三元组作为<s p o>的查询结果。若没有符合条件的RDF三元组,则返回查询结果为空。
<s ?y o>:表示给定主体s和客体o,查询谓语。
如果存储有包含主体s和客体o的PEAT,则在PTIF上执行前向查询(基于查询算子a)
如果o存在于CTIF中,则在CTIF上执行逆向查询(基于查询算子d),如果查询到主体s,则输出rdf:type。
<s ?y ?z>:表示给定主体s,查询谓语和客体。
获得所有包含主体s的PEAT当中的主体、客体组合<s,o>,对于每个主体、客体组合<s,o>,按照上述<s ?y o>的查询过程进行查询。
如果s存在于CEAT中,对于包含s的各CEAT中的每一个客体,在CTIF中执行前向查询(基于查询算子b),将得到的客体和谓语rdf:type作为查询结果输出。
<?x ?y o>:表示给定客体o,查询主体和谓语。
获得所有包含客体o的PEAT当中的主体、客体组合<s,o>,对于每个主体、客体组合<s,o>,按照上述<s ?y o>的查询过程进行查询。
如果o存在于CTIF当中,在CTIF中执行逆向查询(基于查询算子d),将得到的主体和谓语rdf:type作为查询结果输出。
可见,基于本发明实施例提供的RDF数据的存储和查询方法,在进行查询时,无需推理计算庞大的RDF闭包(存储的RDF三元组和基于存储的RDF三元组能够推理得到的全部RDF三元组的集合),可以有效的提高查询的速度。
实施例三
基于相同的技术构思,本发明实施例还提供了一种存储资源描述框架数据的装置,如图6所示,所述装置包括:
获取模块610,用于获取待存储的至少一个资源描述框架RDF三元组,所述待存储的RDF三元组中包括本体RDF三元组和声明RDF三元组;
第一确定模块620,用于根据所述待存储的RDF三元组中的本体RDF三元组,确定传递本体RDF三元组集合;
第二确定模块630,用于根据所述待存储的RDF三元组中的声明RDF三元组,以及所述传递本体RDF三元组集合,确定主声明RDF三元组集合;其中,所述主声明RDF三元组集合中包括所述待存储的RDF三元组中的部分声明RDF三元组,且基于所述传递本体RDF三元组集合能够推理得到所述待存储的RDF三元组中的部分声明RDF三元组之外的声明RDF三元组;
存储模块640,用于存储所述传递本体RDF三元组集合和所述主声明RDF三元组集合。
优选的,所述待存储的RDF三元组中的本体RDF三元组包括传递本体RDF三元组和非传递本体RDF三元组;
所述第一确定模块620,用于:
获取所述待存储的本体RDF三元组中的传递本体RDF三元组;
并根据所述待存储的本体RDF三元组中的非传递本体RDF三元组,推理得到所述非传递本体RDF三元组对应的传递本体RDF三元组;
将获取的传递本体RDF三元组和推理得到的传递本体RDF三元组,构成所述传递本体RDF三元组集合。
优选的,所述传递本体RDF三元组集合包括:属性传递本体RDF三元组子集合、范围传递本体RDF三元组子集合、类传递本体RDF三元组子集合;
所述主声明RDF三元组集合中包括属性相关的有效声明RDF三元组和类相关的有效声明RDF三元组;
所述第二确定模块630,用于:
在所述待存储的RDF三元组中的属性相关的声明RDF三元组中,将不能根据所述属性传递本体RDF三元组子集合对所述待存储的RDF三元组中的属性相关的声明RDF三元组进行推理得到的属性相关的声明RDF三元组,确定为属性相关的有效声明RDF三元组;
根据所述范围传递本体RDF三元组子集合,对所述属性相关的有效声明RDF三元组进行推理,得到所述属性相关的有效声明RDF三元组对应的类相关的声明RDF三元组;
在所述待存储的RDF三元组中的类相关的声明RDF三元组和所述推理得到的类相关的声明RDF三元组中,将不能根据所述类传递本体RDF三元组子集合对所述待存储的RDF三元组中的类相关的声明RDF三元组和所述推理得到的类相关的声明RDF三元组进行推理得到的类相关的声明RDF三元组,确定为类相关的有效声明RDF三元组;
将所述属性相关的有效声明RDF三元组和所述类相关的有效声明RDF三元组构成所述主声明RDF三元组集合。
优选的,还包括更新模块,用于:
在所述存储所述传递本体RDF三元组集合和所述主声明RDF三元组集合之后,接收RDF数据添加请求,所述RDF数据添加请求中携带有增量RDF三元组;
根据所述增量RDF三元组中的本体RDF三元组,确定增量传递本体RDF三元组集合,将所述增量传递本体RDF三元组集合与存储的传递本体RDF三元组集合进行合并,得到更新的传递本体RDF三元组集合;
根据所述更新的传递本体RDF三元组集合,存储的主声明RDF三元组集合,以及所述增量RDF三元组中的声明RDF三元组,确定更新的主声明RDF三元组集合;其中,所述更新的主声明RDF三元组集合中包括所述增量RDF三元组中的声明RDF三元组和存储的主声明RDF三元组集合的并集中的部分声明RDF三元组,且基于所述更新的传递本体RDF三元组集合能够推理得到所述并集中的部分声明RDF三元组之外的声明RDF三元组;
存储所述更新的传递本体RDF三元组集合和所述更新的主声明RDF三元组集合。
优选的,所述更新的传递本体RDF三元组集合包括:更新的属性传递本体RDF三元组子集合、更新的范围传递本体RDF三元组子集合、更新的类传递本体RDF三元组子集合;
所述更新的主声明RDF三元组集合中包括属性相关的有效声明RDF三元组和类相关的有效声明RDF三元组;
所述更新模块,用于:
在所述并集中的属性相关的声明RDF三元组中,将不能根据所述更新的属性传递本体RDF三元组子集合对所述并集中的属性相关的声明RDF三元组进行推理得到的属性相关的声明RDF三元组,确定为属性相关的有效声明RDF三元组;
根据所述更新的属性传递本体RDF三元组子集合和所述更新的范围传递本体RDF三元组子集合,对所述属性相关的有效声明RDF三元组进行推理,得到所述属性相关的有效声明RDF三元组对应的类相关的声明RDF三元组;
在所述并集中的类相关的声明RDF三元组和所述推理得到的类相关的声明RDF三元组中,将不能根据所述更新的类传递本体RDF三元组子集合对所述并集中的类相关的声明RDF三元组和所述推理得到的类相关的RDF三元组进行推理得到的类相关的声明RDF三元组,确定为类相关的有效声明RDF三元组;
将所述属性相关的有效声明RDF三元组和所述类相关的有效声明RDF三元组构成所述更新的主声明RDF三元组集合。
优选的,还包括查询模块,用于:
在所述存储所述传递本体RDF三元组集合和所述主声明RDF三元组集合之后,接收RDF三元组查询请求,所述RDF三元组查询请求中携带有RDF三元组查询条件;
根据存储的传递本体RDF三元组集合和主声明RDF三元组集合,以及RDF三元组推理规则,获取满足所述RDF三元组查询条件的查询结果,并反馈所述查询结果。
本发明实施例中,对传递本体RDF三元组集合和主声明RDF三元组集合进行存储。这样,数据库在对RDF三元组进行存储时,只需存储其中的一部分声明RDF三元组,其余部分的声明RDF三元组可以通过存储的RDF三元组推理得出,从而,可以提高数据库存储资源的利用率。
需要说明的是:上述实施例提供的存储资源描述框架数据的装置在存储资源描述框架数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的存储资源描述框架数据的装置与存储资源描述框架数据的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种存储资源描述框架数据的方法,其特征在于,所述方法包括:
获取待存储的至少一个资源描述框架RDF三元组,所述待存储的RDF三元组中包括本体RDF三元组和声明RDF三元组;
根据所述待存储的RDF三元组中的本体RDF三元组,确定传递本体RDF三元组集合;
根据所述待存储的RDF三元组中的声明RDF三元组,以及所述传递本体RDF三元组集合,确定主声明RDF三元组集合;其中,所述主声明RDF三元组集合中包括所述待存储的RDF三元组中的部分声明RDF三元组,且基于所述传递本体RDF三元组集合能够推理得到所述待存储的RDF三元组中的部分声明RDF三元组之外的声明RDF三元组;
存储所述传递本体RDF三元组集合和所述主声明RDF三元组集合。
2.根据权利要求1所述的方法,其特征在于,所述待存储的RDF三元组中的本体RDF三元组包括传递本体RDF三元组和非传递本体RDF三元组;
所述根据所述待存储的RDF三元组中的本体RDF三元组,确定传递本体RDF三元组集合,包括:
获取所述待存储的本体RDF三元组中的传递本体RDF三元组;
并根据所述待存储的本体RDF三元组中的非传递本体RDF三元组,推理得到所述非传递本体RDF三元组对应的传递本体RDF三元组;
将获取的传递本体RDF三元组和推理得到的传递本体RDF三元组,构成所述传递本体RDF三元组集合。
3.根据权利要求1所述的方法,其特征在于,所述传递本体RDF三元组集合包括:属性传递本体RDF三元组子集合、范围传递本体RDF三元组子集合、类传递本体RDF三元组子集合;
所述主声明RDF三元组集合中包括属性相关的有效声明RDF三元组和类相关的有效声明RDF三元组;
所述根据所述待存储的RDF三元组中的声明RDF三元组,以及所述传递本体RDF三元组集合,确定主声明RDF三元组集合,包括:
在所述待存储的RDF三元组中的属性相关的声明RDF三元组中,将不能根据所述属性传递本体RDF三元组子集合对所述待存储的RDF三元组中的属性相关的声明RDF三元组进行推理得到的属性相关的声明RDF三元组,确定为属性相关的有效声明RDF三元组;
根据所述范围传递本体RDF三元组子集合,对所述属性相关的有效声明RDF三元组进行推理,得到所述属性相关的有效声明RDF三元组对应的类相关的声明RDF三元组;
在所述待存储的RDF三元组中的类相关的声明RDF三元组和所述推理得到的类相关的声明RDF三元组中,将不能根据所述类传递本体RDF三元组子集合对所述待存储的RDF三元组中的类相关的声明RDF三元组和所述推理得到的类相关的声明RDF三元组进行推理得到的类相关的声明RDF三元组,确定为类相关的有效声明RDF三元组;
将所述属性相关的有效声明RDF三元组和所述类相关的有效声明RDF三元组构成所述主声明RDF三元组集合。
4.根据权利要求1所述的方法,其特征在于,所述存储所述传递本体RDF三元组集合和所述主声明RDF三元组集合之后,还包括:
接收RDF数据添加请求,所述RDF数据添加请求中携带有增量RDF三元组;
根据所述增量RDF三元组中的本体RDF三元组,确定增量传递本体RDF三元组集合,将所述增量传递本体RDF三元组集合与存储的传递本体RDF三元组集合进行合并,得到更新的传递本体RDF三元组集合;
根据所述更新的传递本体RDF三元组集合,存储的主声明RDF三元组集合,以及所述增量RDF三元组中的声明RDF三元组,确定更新的主声明RDF三元组集合;其中,所述更新的主声明RDF三元组集合中包括所述增量RDF三元组中的声明RDF三元组和存储的主声明RDF三元组集合的并集中的部分声明RDF三元组,且基于所述更新的传递本体RDF三元组集合能够推理得到所述并集中的部分声明RDF三元组之外的声明RDF三元组;
存储所述更新的传递本体RDF三元组集合和所述更新的主声明RDF三元组集合。
5.根据权利要求4所述的方法,其特征在于,所述更新的传递本体RDF三元组集合包括:更新的属性传递本体RDF三元组子集合、更新的范围传递本体RDF三元组子集合、更新的类传递本体RDF三元组子集合;
所述更新的主声明RDF三元组集合中包括属性相关的有效声明RDF三元组和类相关的有效声明RDF三元组;
所述根据所述更新的传递本体RDF三元组集合,存储的主声明RDF三元组集合,以及所述增量RDF三元组中的声明RDF三元组,确定更新的主声明RDF三元组集合,包括:
在所述并集中的属性相关的声明RDF三元组中,将不能根据所述更新的属性传递本体RDF三元组子集合对所述并集中的属性相关的声明RDF三元组进行推理得到的属性相关的声明RDF三元组,确定为属性相关的有效声明RDF三元组;
根据所述更新的属性传递本体RDF三元组子集合和所述更新的范围传递本体RDF三元组子集合,对所述属性相关的有效声明RDF三元组进行推理,得到所述属性相关的有效声明RDF三元组对应的类相关的声明RDF三元组;
在所述并集中的类相关的声明RDF三元组和所述推理得到的类相关的声明RDF三元组中,将不能根据所述更新的类传递本体RDF三元组子集合对所述并集中的类相关的声明RDF三元组和所述推理得到的类相关的RDF三元组进行推理得到的类相关的声明RDF三元组,确定为类相关的有效声明RDF三元组;
将所述属性相关的有效声明RDF三元组和所述类相关的有效声明RDF三元组构成所述更新的主声明RDF三元组集合。
6.根据权利要求1所述的方法,其特征在于,所述存储所述传递本体RDF三元组集合和所述主声明RDF三元组集合之后,还包括:
接收RDF三元组查询请求,所述RDF三元组查询请求中携带有RDF三元组查询条件;
根据存储的传递本体RDF三元组集合和主声明RDF三元组集合,以及RDF三元组推理规则,获取满足所述RDF三元组查询条件的查询结果,并反馈所述查询结果。
7.一种存储资源描述框架数据的装置,其特征在于,所述方法包括:
获取模块,用于获取待存储的至少一个资源描述框架RDF三元组,所述待存储的RDF三元组中包括本体RDF三元组和声明RDF三元组;
第一确定模块,用于根据所述待存储的RDF三元组中的本体RDF三元组,确定传递本体RDF三元组集合;
第二确定模块,用于根据所述待存储的RDF三元组中的声明RDF三元组,以及所述传递本体RDF三元组集合,确定主声明RDF三元组集合;其中,所述主声明RDF三元组集合中包括所述待存储的RDF三元组中的部分声明RDF三元组,且基于所述传递本体RDF三元组集合能够推理得到所述待存储的RDF三元组中的部分声明RDF三元组之外的声明RDF三元组;
存储模块,用于存储所述传递本体RDF三元组集合和所述主声明RDF三元组集合。
8.根据权利要求7所述的装置,其特征在于,所述待存储的RDF三元组中的本体RDF三元组包括传递本体RDF三元组和非传递本体RDF三元组;
所述第一确定模块,用于:
获取所述待存储的本体RDF三元组中的传递本体RDF三元组;
并根据所述待存储的本体RDF三元组中的非传递本体RDF三元组,推理得到所述非传递本体RDF三元组对应的传递本体RDF三元组;
将获取的传递本体RDF三元组和推理得到的传递本体RDF三元组,构成所述传递本体RDF三元组集合。
9.根据权利要求7所述的装置,其特征在于,所述传递本体RDF三元组集合包括:属性传递本体RDF三元组子集合、范围传递本体RDF三元组子集合、类传递本体RDF三元组子集合;
所述主声明RDF三元组集合中包括属性相关的有效声明RDF三元组和类相关的有效声明RDF三元组;
所述第二确定模块,用于:
在所述待存储的RDF三元组中的属性相关的声明RDF三元组中,将不能根据所述属性传递本体RDF三元组子集合对所述待存储的RDF三元组中的属性相关的声明RDF三元组进行推理得到的属性相关的声明RDF三元组,确定为属性相关的有效声明RDF三元组;
根据所述范围传递本体RDF三元组子集合,对所述属性相关的有效声明RDF三元组进行推理,得到所述属性相关的有效声明RDF三元组对应的类相关的声明RDF三元组;
在所述待存储的RDF三元组中的类相关的声明RDF三元组和所述推理得到的类相关的声明RDF三元组中,将不能根据所述类传递本体RDF三元组子集合对所述待存储的RDF三元组中的类相关的声明RDF三元组和所述推理得到的类相关的声明RDF三元组进行推理得到的类相关的声明RDF三元组,确定为类相关的有效声明RDF三元组;
将所述属性相关的有效声明RDF三元组和所述类相关的有效声明RDF三元组构成所述主声明RDF三元组集合。
10.根据权利要求7所述的装置,其特征在于,还包括更新模块,用于:
在所述存储所述传递本体RDF三元组集合和所述主声明RDF三元组集合之后,接收RDF数据添加请求,所述RDF数据添加请求中携带有增量RDF三元组;
根据所述增量RDF三元组中的本体RDF三元组,确定增量传递本体RDF三元组集合,将所述增量传递本体RDF三元组集合与存储的传递本体RDF三元组集合进行合并,得到更新的传递本体RDF三元组集合;
根据所述更新的传递本体RDF三元组集合,存储的主声明RDF三元组集合,以及所述增量RDF三元组中的声明RDF三元组,确定更新的主声明RDF三元组集合;其中,所述更新的主声明RDF三元组集合中包括所述增量RDF三元组中的声明RDF三元组和存储的主声明RDF三元组集合的并集中的部分声明RDF三元组,且基于所述更新的传递本体RDF三元组集合能够推理得到所述并集中的部分声明RDF三元组之外的声明RDF三元组;
存储所述更新的传递本体RDF三元组集合和所述更新的主声明RDF三元组集合。
11.根据权利要求10所述的装置,其特征在于,所述更新的传递本体RDF三元组集合包括:更新的属性传递本体RDF三元组子集合、更新的范围传递本体RDF三元组子集合、更新的类传递本体RDF三元组子集合;
所述更新的主声明RDF三元组集合中包括属性相关的有效声明RDF三元组和类相关的有效声明RDF三元组;
所述更新模块,用于:
在所述并集中的属性相关的声明RDF三元组中,将不能根据所述更新的属性传递本体RDF三元组子集合对所述并集中的属性相关的声明RDF三元组进行推理得到的属性相关的声明RDF三元组,确定为属性相关的有效声明RDF三元组;
根据所述更新的属性传递本体RDF三元组子集合和所述更新的范围传递本体RDF三元组子集合,对所述属性相关的有效声明RDF三元组进行推理,得到所述属性相关的有效声明RDF三元组对应的类相关的声明RDF三元组;
在所述并集中的类相关的声明RDF三元组和所述推理得到的类相关的声明RDF三元组中,将不能根据所述更新的类传递本体RDF三元组子集合对所述并集中的类相关的声明RDF三元组和所述推理得到的类相关的RDF三元组进行推理得到的类相关的声明RDF三元组,确定为类相关的有效声明RDF三元组;
将所述属性相关的有效声明RDF三元组和所述类相关的有效声明RDF三元组构成所述更新的主声明RDF三元组集合。
12.根据权利要求7所述的装置,其特征在于,还包括查询模块,用于:
在所述存储所述传递本体RDF三元组集合和所述主声明RDF三元组集合之后,接收RDF三元组查询请求,所述RDF三元组查询请求中携带有RDF三元组查询条件;
根据存储的传递本体RDF三元组集合和主声明RDF三元组集合,以及RDF三元组推理规则,获取满足所述RDF三元组查询条件的查询结果,并反馈所述查询结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310314352.XA CN104346340B (zh) | 2013-07-24 | 2013-07-24 | 一种存储资源描述框架数据的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310314352.XA CN104346340B (zh) | 2013-07-24 | 2013-07-24 | 一种存储资源描述框架数据的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104346340A true CN104346340A (zh) | 2015-02-11 |
CN104346340B CN104346340B (zh) | 2018-10-16 |
Family
ID=52501971
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310314352.XA Active CN104346340B (zh) | 2013-07-24 | 2013-07-24 | 一种存储资源描述框架数据的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104346340B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105608228A (zh) * | 2016-01-29 | 2016-05-25 | 中国科学院计算机网络信息中心 | 一种高效的分布式的rdf数据存储方法 |
CN110309122A (zh) * | 2018-03-28 | 2019-10-08 | 腾讯科技(深圳)有限公司 | 获取增量数据的方法、装置、服务器和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521299A (zh) * | 2011-11-30 | 2012-06-27 | 华中科技大学 | 资源描述框架数据的处理方法 |
US20120303678A1 (en) * | 2008-05-23 | 2012-11-29 | Nokia Corporation | Apparatus, method and computer program product for processing resource description framework statements |
CN103116625A (zh) * | 2013-01-31 | 2013-05-22 | 重庆大学 | 一种基于Hadoop的海量RDF数据分布式查询处理方法 |
-
2013
- 2013-07-24 CN CN201310314352.XA patent/CN104346340B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120303678A1 (en) * | 2008-05-23 | 2012-11-29 | Nokia Corporation | Apparatus, method and computer program product for processing resource description framework statements |
CN102521299A (zh) * | 2011-11-30 | 2012-06-27 | 华中科技大学 | 资源描述框架数据的处理方法 |
CN103116625A (zh) * | 2013-01-31 | 2013-05-22 | 重庆大学 | 一种基于Hadoop的海量RDF数据分布式查询处理方法 |
Non-Patent Citations (3)
Title |
---|
GRAU B C: "History Matters:Incremental Ontology Reasoning Using Modules", 《THE SEMANTIC WEB, INTERNATIONAL SEMANTIC WEB CONFERENCE, ASIAN SEMANTIC WEB CONFERENCE, ISWC 2007 + ASWC 2007, BUSAN, KOREA, NOVEMBER. DBLP, 2007》 * |
JACOPO URBANI: "WebPIE: A Web-scale Parallel Inference Engine using MapReduce", 《WEB SEMANTICS: SCIENCE, SERVICES AND AGENTS ON THE WORLD WIDE WEB》 * |
徐恒: "基于RDF 的本体知识库设计与实现", 《PROCEEDINGS OF 2010 THE 3RD INTERNATIONAL CONFERENCE ON COMPUTATIONAL INTELLIGENCE AND INDUSTRIAL APPLICATION》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105608228A (zh) * | 2016-01-29 | 2016-05-25 | 中国科学院计算机网络信息中心 | 一种高效的分布式的rdf数据存储方法 |
CN105608228B (zh) * | 2016-01-29 | 2019-05-17 | 中国科学院计算机网络信息中心 | 一种高效的分布式的rdf数据存储方法 |
CN110309122A (zh) * | 2018-03-28 | 2019-10-08 | 腾讯科技(深圳)有限公司 | 获取增量数据的方法、装置、服务器和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104346340B (zh) | 2018-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Franconi et al. | A robust logical and computational characterisation of peer-to-peer database systems | |
LEE | A solution to the multiple set-up problem with dynamic. demand | |
CN108108439A (zh) | 一种数据查询方法、装置及电子设备 | |
CN105681477B (zh) | 一种数据访问方法和一种服务器 | |
CN110471949A (zh) | 数据血缘分析方法、装置、系统、服务器及存储介质 | |
CN112464672B (zh) | 一种在物联网边缘设备中构建语义模型的优化方法 | |
CN108376169A (zh) | 一种用于联机分析处理的数据处理方法和装置 | |
CN103514229A (zh) | 用于在分布式数据库系统中处理数据库数据的方法和装置 | |
Javanmard et al. | A solving method for fuzzy linear programming problem with interval type-2 fuzzy numbers | |
CN103927331A (zh) | 数据查询方法、装置及系统 | |
CN104298598B (zh) | 分布式环境下rdfs本体的调试方法 | |
CN104615703A (zh) | 一种结合Rete算法的RDF数据分布式并行推理方法 | |
CN109491857A (zh) | 一种基于规则引擎的数据监控方法、系统及终端设备 | |
CN108280227A (zh) | 基于缓存的数据信息处理方法及装置 | |
CN110427386A (zh) | 数据处理方法、装置及计算机存储介质 | |
CN104572833A (zh) | 一种映射规则创建方法及装置 | |
CN110442602A (zh) | 数据查询方法、装置、服务器及存储介质 | |
CN105912721B (zh) | Rdf数据分布式语义并行推理方法 | |
CN112364052A (zh) | 异构数据管理方法、装置、设备和计算机可读存储介质 | |
CN104346340A (zh) | 一种存储资源描述框架数据的方法和装置 | |
CN114003775A (zh) | 图数据处理、查询方法及其系统 | |
CN107784073A (zh) | 一种本地缓存的数据查询方法、存储介质和服务器 | |
CN108241709A (zh) | 一种数据集成方法、装置和系统 | |
CN110058869A (zh) | 移动应用推送方法、计算机可读存储介质及终端设备 | |
CN109240893A (zh) | 应用运行状态查询方法及终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |