CN105630881B - 一种rdf的数据存储方法和查询方法 - Google Patents

一种rdf的数据存储方法和查询方法 Download PDF

Info

Publication number
CN105630881B
CN105630881B CN201510955821.5A CN201510955821A CN105630881B CN 105630881 B CN105630881 B CN 105630881B CN 201510955821 A CN201510955821 A CN 201510955821A CN 105630881 B CN105630881 B CN 105630881B
Authority
CN
China
Prior art keywords
storage
data
rdf
triple
node
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.)
Active
Application number
CN201510955821.5A
Other languages
English (en)
Other versions
CN105630881A (zh
Inventor
袁柳
张鸿洋
翟梅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shaanxi Normal University
Original Assignee
Shaanxi Normal University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shaanxi Normal University filed Critical Shaanxi Normal University
Priority to CN201510955821.5A priority Critical patent/CN105630881B/zh
Publication of CN105630881A publication Critical patent/CN105630881A/zh
Application granted granted Critical
Publication of CN105630881B publication Critical patent/CN105630881B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/81Indexing, e.g. XML tags; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/83Querying
    • G06F16/835Query processing
    • G06F16/8373Query execution

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种RDF的数据存储方法和查询方法,其是通过设计面向实体的RDF数据的存储结构和存储映射,将RDF数据的URI和字面量转化为64位二进制数据后按照设计的存储结构进行存储,在查询方法中对SPARQL查询语句进行解析和转化,将SPARQL语句中的多个每个查询三元组根据对整个数据集的分析结果和各个查询间的连接关系,估算单个询代价,最终生成最小代价查询流程,本发明可以极大的提升数据间比较的速度以及降低存储空间,相比传统的直接将SPARQL转化为SQL进行查询,大幅度提升查询效率,可用于Web数据管理、Web语义检索等领域。

Description

一种RDF的数据存储方法和查询方法
技术领域
本发明属于Web数据管理技术领域,具体涉及一种降低RDF数据的存储空间、提高SPARQL的查询效率的RDF的数据存储方法和查询方法。
背景技术
RDF(resource description framework)是由WWW提出的对万维网(World WideWeb)上信息进行描述的一个框架,它为Web上的各种应用提供信息描述规范。RDF用主语S(Subject)、谓词P(Predicate)、宾语O(Object)的三元组形式来描述Web上的资源。其中,主语一般用统一资源标识符URI(Uniform Resource Identifiers)表示Web上的信息实体(或者概念),谓词描述实体所具有的相关属性,宾语为对应的属性值。这样的表述方式使得RDF可以用来表示Web上的任何被标识的信息,并且使得它可以在应用程序之间交换而不丧失语义信息。因此,RDF成为语义数据描述的标准,被广泛应用于元数据的描述、本体及语义网中。随着语义网数据的不断增多,构造高效的存储和查询这些语义网数据的***成为语义网应用得到普及的一个非常重要的方面,而RDF作为语义网数据的描述基础,因此研究RDF数据的高效存储和查询成为了语义网研究的热点。目前RDF数据的存储方式和优化方式主要有三种。
第一种,基于关系数据库的存储方式
由于RDF数据可以看成<Subject,Predicate,Object>三元组的集合,因此最自然的方式是使用三元组表来直接存储这些数据。因此许多基于关系数据库的RDF数据存储***直接使用关系数据库,设计三元组表或者类似的方式来存储RDF数据。该方法的步骤包含:(1)将RDF数据解析成三元组;(2)对三元组中的URI通过MD5(Message DigestAlgorithm 5)哈希进行编码,并截取MD5哈希的前64位作为资源的标识符;(3)在关系型数据库中使用一张3列的表对数据进行存储,并建立相关索引。但是,该方法在进行SPARQL查询时,需要将SPARQL查询语言转化为结构化查询语言SQL进行查询,需要多层的转换操作。由于RDF数据和关系数据有很大的不同,将RDF数据存储在关系数据库表中时,需要进行表间的映射操作。因此降低了存储利用率和查询的效率。
第二种,基于本地二进制文件的存储方式
RDF文档是能够以一定的格式存储到文件中的,在语义网中,大量的RDF文档就以RDF/XML的形式存在。RDF数据和关系数据在结构上有很大的区别,其描述语法比关系数据库复杂的多,但是使用RDF描述资源是具有较大的灵活性。基于硬盘文件存储RDF文档可以达到更好的存储效率,同时可以保证快速的响应查询,目前已有一些基于硬盘的存储结构的***设计,这些***往往借助于数据库普遍釆用的B树、B+树和Hash表技术。但是,基于文件的存储方式开发成本相对较高,并且由于RDF只是基本的语义网数据描述基础,还有如果需要在基本存储结构上支持对数据进行查询推理那就还需要做大量的工作。
第三种,基于内存的存储方式
随着硬件技术的不断发展,内存也越来越便宜,内存容量也越来越大,构建基于内存的RDF数据存储***也成为近年来研究的热点。首先内存能够提供相当快的访问速度,可以对数据进行实时的操作,节省磁盘的I/O开销,如果在内存中设计一个存储结构良好的RDF存储***,可以进一步的提高查询和分析的效率。但是,该方式不适合大规模的RDF数据存储,且目前的方案BRAHMS、BitMat等都不支持SPARQL的直接查询。可见基于内存的RDF存储结构仍然处于不断的研究和完善阶段。
发明内容
本发明的目的在于克服上述已有技术的不足,提出一种针对RDF学习资源提供一种数据间比较速度快并且降低存储空间的RDF数据存储方法。
本发明还提供了一种与上述存储方法匹配并且能够快速查询的RDF数据查询方法,从而提高RDF学习资源的检索效率。
为了实现上述目的,本发明采用的技术方案是:
本发明RDF数据的存储方法由以下步骤组成:
(1)设计面向实体的RDF数据的存储结构
(1.1)采用面向实体的方式,将数据存到关系型数据库n行的k列中,其中k为RDF数据中所有主语的谓词数量的平均值,n为所有主语需要的行数line的和,当单个主语的谓词数量sum≤k时,则所需行数line=1;当sum>k时,则进行多行存储,则所需行数line=(sum/k)+1;
(1.2)确定k值以后,根据谓词映射算法,将谓词转为列下标,得到一个n行k列的表结构;
其中步骤(1.2)的谓词转化为列下标的具体方法为:
(1.2.1)用谓词映射算法计算列下标,谓词映射算法的公式为:
式中h1,h2…hj对应为j个hash函数,i为列下标;
(1.2.2)当j个hash函数计算完成仍然没有找到空闲的下标时,则开辟新的一行,将该数据存到h1计算的下标中去。
(2)设计用于RDF数据的存储映射
采用hash算法将RDF数据的URI和字面量分别转化为64位二进制数据,URI取hash算法的高64位,字面量取hash算法的低64位,将转换的二进制数据存储到hash索引表中并对hash索引表中的行进行升序排列,以便查找时通过二分查找算法快速进行映射与转化;
(3)RDF数据存储
将RDF数据按照步骤(2)的方法进行映射与转换之后,第一次存储到步骤(1)的表结构中,对存储到表结构中数据进行分析,创建分析表S,记录每个Subject和Object包含的三元组个数以及出现频率最高的20个URI和频率最高的20个字面量对应的频率,再按照步骤(1)的表结构,将Object作为存储实体,对存储到表结构中的数据经过步骤(2)的映射与转换之后再进行第二次存储,即完成RDF的数据存储。
一种与上述的RDF数据存储方法匹配的RDF数据查询方法,其是由以下步骤组成:
(a.1)变量的提取与转化
将SPARQL查询语句中的三元组基本图模式进行分解,并确定查询语句中的变量个数为count,对查询语句中的URI和字面量分别参照存储方法中的步骤(2)中的映射方式将其转化为64位二进制数据,对所包含的变量进行-1到-count的赋值;
(a.2)基本查询图模式的转化
根据步骤(a.1)中的三元组基本图模式分解结果,将每个基本图模式转化为三元组查询节点结构,其中三元组查询节点结构为:
三元组查询节点结构
{
节点的Id;
subject的Id;
predicate的Id;
object的Id;
存储方式的标识;
}
存储方式的标识选择RDF数据存储方法中步骤(3)的第一次存储或第二次存储;
对URI和字面量,subject、predicate、object的Id分别为64位二进制数据;对变量,subject、predicate、object的Id对应为所赋的值;
(a.3)查询连接操作的表示
根据步骤(a.1)中基本图模式中所分解的三元组相互进行比较,对存在相同变量的三元组,以步骤(a.2)结构中的节点Id为唯一标识符建立连接关系,并将连接关系转化为连接操作边结构,其中连接操作边结构为:
连接操作边结构
{
起始三元组的节点的Id,
终止三元组的节点的Id,
共同变量的Id
};
(a.4)计算每个查询的查询代价
根据步骤(a.2)中得到的三元组查询节点结构,对步骤(a.3)中得到的连接操作边结构按照代价算法分别进行代价分析,得到连接操作边结构的代价值为c,代价算法的公式为:
TMC(t,m,S)→c
其中:t为需要查询的三元组;m为RDF数据存储方法的步骤(3)中第一次存储或第二次存储;S为分析表;
(a.5)查询计划的生成
将步骤(a.4)中获得的所有连接操作边结构的代价值c进行由小到大排序,得到按代价值排序的节点序列,选取序列中c值最小的节点为开始节点,依次选取序列中的下一个节点,若节点中的变量未查询,则进行连接查询,直至所有节点中的变量都完成查询,即实现语句的查询。
上述步骤(a.5)之后还包括步骤(a.6)建立缓存机制,具体为:对用户输入的查询语句根据步骤(a.2)中得到的三元组查询节点结构的集合进行hash操作,得到hash函数的结果值,若缓存列表中存在该值,则直接取出缓存结果反馈给用户;否则,则重复步骤(a.3)到(a.5),将所得结果存入硬盘中、对应地址标识和hash函数的结果值存入缓存列表中。
本发明的RDF的数据存储方法和查询方法是对数据的储存结构的优化,以及针对该结构对SPARQL做查询优化,实现对基于RDF的学习资源进行快速的检索和查询的方法。与现有技术相比,本发明具有以下优点:
(1)使用64位二进制数据来代替原本的URI和字面量的存储,可以极大的提升数据间比较的速度以及降低存储空间,同时对URI和字面量,分别取hash算法的高64位和低64位,以区分URI与字面量为相同的字符串。并且对hash索引的存储记录进行排序,以便查找时通过二分查找算法快速的定位到所需要的记录。
(2)对于RDF数据的存储结构,采用面向实体(entry-oriented)的方式,同时存储以主语(Subject)为实体和以宾语(Object)为实体两种方式,前者实现高效的从主语(Subject)去查询谓词(Predicate),避免传统存储方式在查询时的大量的连接操作;后者实现高效的从谓词(Predicate)到Subject(主语)的查询。
(3)对SPARQL查询语句进行解析和转化,将SPARQL语句中的多个每个查询三元组根据对整个数据集的分析结果和各个查询间的连接关系,估算单个询代价,最终生成最小代价查询流程,相比传统的直接将SPARQL转化为SQL进行查询,大幅度提升查询效率。
(4)在查询的过程中加入缓存机制,对查询频率高的数据集进行缓存,在内存中缓存列表,每个缓存列表中的行包含hash函数的结果值和地址标识,提升查询的效率。
(5)本发明提出数据存储模型以及查询优化方案可以推广至Web数据管理、Web语义检索等领域,甚至其他的RDF资源数据的存储与检索。
附图说明
图1为实施例中步骤(a.2)的SPARQL的分析和转化示意图。
图2为实施例中步骤(a.3)的对SPARQL生成查询树的说明。
图3为实施例中步骤(a.6)的缓存模型示意图。
具体实施方式
下面结合附图和实施例对本发明做进一步描述。
本实施例中RDF的数据存储方法由如下步骤实现:
(1)设计用于RDF数据的存储映射
对于RDF数据的存储结构,采用面向实体(entry-oriented)的方式,将数据存到关系型数据库n行的k列中,其中k为RDF数据中所有主语的谓词数量的平均值,n为所有主语需要的行数line的和。
(1.1)确定表结构的列数k和所需行数n
当单个主语(Subject)的谓词(Predicate)数量sum≤k时,则所需行数line=1;当sum>k时,则需要多行元组进行存储,所需行数line=(sum/k)+1;
例如以下数据:
(Charles Flint,born,1850)
(Charles Flint,died,1934)
(Charles Flint,founder,IBM)
(Larry Page,born,1973)
(Larry Page,founder,Google)
(Larry Page,board,Google)
(Larry Page,home,Palo Alto)
(Android,developer,Google)
(Android,version,4.1)
(Android,kernel,Linux)
(Android,preceded,4.0)
(Android,graphics,OpenGL)
存储形式如表1所示:
表1为以Object为实体的存储表
(1.2)确定谓词(Predicate)存储的下标i
确定k值以后,根据谓词映射算法,将谓词转为列下标,当同一对象的多个谓词经过映射算法得到相同的下标,则称为冲突,需要定义多个hash算法尽可能的利用空间的列和避免冲突,当多个hash算法计算完成依旧存在冲突时,则为该Subject多增加元组一行进行存储,谓词映射算法函数为:
式中h1,h2…hj对应为j个hash函数,i为列下标,
当j个hash函数计算完成仍然没有找到空闲的下标时,则开辟新的一行,将该数据存到h1计算的下标中去。
结合表1,查看Subject为Android的三元组,假设该三元组一个一个***数据库中,设置j为2,则存在h1,h2,计算pred的下标过程如表2所示:
表2为计算谓词下标的过程
developer经过h1计算得到下标1,此时下标1无元素,直接放置。
version同理放置到下标2。
kernel经过h1计算,得到下标1,此时1不空闲,意味发生冲突,则使用h2继续计算得到下标为3,放置。
preceded经过h1计算得到下标为k放置。
graphics经过h1,h2得到的下标3和2均被冲突,则新建一行,将其放入pred3
(2)设计用于RDF数据的存储映射
通常RDF的三元组数据分为两类:URI和字面量。
采用hash算法将URI和字面量分别转化为64位二进制数据,对于URI取hash算法的高64位,对于字面量取hash算法的低64位,以便区别相同字符串的URI和字面量,将转换的二进制数据存储到hash索引表中并对hash索引表中的行进行升序排列,以便查找时通过二分查找算法快速进行映射与转化;
(3)RDF数据存储
将RDF数据按照步骤(2)的方法映射与转换之后,第一次存储到步骤(1)的表结构中,并对存储到表结构中数据进行分析,创建分析表S,记录每个Subject和Object包含的三元组个数以及出现频率最高的20个URI和频率最高的20个字面量对应的频率,再按照步骤(1)的表结构,将Object作为存储实体,对存储到表结构中的数据经过步骤(2)的映射与转换之后再进行第二次存储,完成RDF的数据存储。
以表1中的数据,存储形式为表3所示:
表3为表1中的数据按Object为实体的存储形式
一种适用于上述方法存储的RDF数据的高效快速查询方法,由以下步骤实现:
以SPARQL语句包含6个三元组基本图模式(Basic Graph Pattern,BGP)为例,接下来需要SPARQL查询语句转换,转换的目的是为了能够方便对底层的存储结果做操作,转换之后对每个三元组进行查询代价估算,最终形成最低代价执行流程,具体是由以下步骤实现:
(a.1)变量的提取与转化
将SPARQL查询语句的三元组基本图模式(Basic Graph Pattern,BGP)进行分解,并确定查询语句中的变量个数为count,对查询语句中的URI和字面量参照上述RDF数据存储方法的步骤(2)的映射与转化方法将其转化为64位二进制数据,对于查询语句中所包含的变量进行-1到-count的赋值;
例如以下数据:
SELECT?x?y WHERE{
?x home"Palo Alto".//q1
?y founder"IBM".//q2
?z founder"Google".//q3
?x memberOf?z.//q4
?z revenue?y.//q5
?x developer?y.//q6
}
对上述查询语句进行解析则得到三个变量?x,?y,?z,并将所有的变量进行id编码为-1,-2,-3,对于其他URI或者字面量,则直接在步骤(2)的索引表中进行查询即可。
(a.2)基本查询图模式的转化
参见图1,根据步骤(a.1)中的三元组基本图模式(Basic Graph Pattern,BGP)分解结构,将每个基本图模式转化为三元组查询节点结构,其中三元组查询节点结构为:
三元组查询节点结构
{
节点的Id;
subject的Id;
predicate的Id;
object的Id;
存储方式的标识;
}
对URI和字面量,subject、predicate、object的Id分别为64位二进制数据;对变量,subject、predicate、object的Id为所赋的值;
存储方式的标识可选择上述RDF数据存储方法中步骤(3)的第一次存储(access-by-Subject)和第二次存储(access-by-Object),第一次存储实现高效地从主语(Subject)去查询谓词(Predicate),避免传统存储方式在查询时的大量的连接操作;当主语未知时,可选择第二次存储方式查询。
在进行单个三元组查询之前,首先要确定各个三元组变量的个数、常量的个数以及三元组变量和常量之间的关联关系,根据这些关系可以决定查询的顺序。
(a.3)查询连接操作的表示
根据步骤(a.1)中所有的三元组基本图模式分解的三元组相互进行比较,对存在相同变量的三元组以步骤(a.2)结构中的节点Id为唯一标识符建立连接关系,并将连接关系转化为连接操作边结构,其中连接操作边结构为:
连接操作边结构
{
起始三元组的节点的Id,
终止三元组的节点的Id,
共同变量的Id
}
最终形成图2中的连接操作结构。
经过上述对查询语句进行转化和处理,实现了变量的编码和收集,基本图模式的三元组表示以及查询的连接操作表示。
(a.4)计算每个查询的查询代价
根据步骤(a.2)中得到的三元组查询节点结构,对步骤(a.3)中的得到的连接操作边结构按照常规代价算法进行代价分析,得到连接操作边结构的代价值为c,代价算法的公式为:
TMC(t,m,S)→c
其中:t为需要查询的三元组;m为RDF数据的存储方法步骤(3)中第一次存储或第二次存储,S为分析表;
例如:
(?x founder Google)
针对该三元组使用access-by-Object,则TMC函数的执行结果为:分析表S中每个Object中包含的三元组个数。
(a.5)查询计划的生成
将步骤(a.4)中获得的所有连接操作边结构的代价值c进行由小到大排序,得到按代价值排序的节点序列,选取序列中c最小的节点为开始节点,依次选取序列中的下一个节点,若节点中的变量未查询,则进行连接查询,直至所有节点中的变量都完成查询,即实现语句的查询。
参考图2,查询计划首先选取查询计划中第一个三元组查询节点作为起点,选取查询计划结构中的第四个查询节点,按照给出的查询计划的信息,对变量?x进行连接操作,得到两个变量<?x?z>的中间结果集;将该中间结果集再和第五个查询三元组节点进行按照变量?z进行连接操作,得到三个变量的中间表<?z?x?y>,以此类推,执行完成所有的查询语句,将得到<?z?x?y>的中间表。最后对查询的结果进行SELECT操作,取出变量?x?y对应的值。
(a.6)建立缓存机制
在数据查询的过程中,建立缓存机制缓存查询的结果,参见图3,从而提升查询的效率,具体操作是:
对用户输入的查询语句根据步骤(a.2)中得到的三元组查询节点结构的集合进行hash操作,得到hash函数的结果值,若缓存列表中存在该值,则直接取出缓存结果反馈给用户;否则,则重复上述步骤(a.3)到(a.5),将所得结果存入硬盘中,并将对应地址标识和hash函数的结果值存入缓存列表中。当缓存的容量超过预期的设置时,根据查询的频率,删除掉最低的频率。

Claims (3)

1.一种RDF数据存储方法,其特征在于由以下步骤组成:
(1)设计面向实体的RDF数据的存储结构
(1.1)采用面向实体的方式,将数据存到关系型数据库n行的k列中,其中k为RDF数据中所有主语的谓词数量的平均值,n为所有主语需要的行数line的和,当单个主语的谓词数量sum≤k时,则所需行数line=1;当sum>k时,则进行多行存储,则所需行数line=(sum/k)+1;
(1.2)确定k值以后,根据谓词映射算法,将谓词转为列下标,得到一个n行k列的表结构,所述谓词转化为列下标的方法为:
(1.2.1)用谓词映射算法计算列下标,谓词映射算法的公式为:
式中h1,h2…hj对应为j个hash函数,i为列下标;
(1.2.2)当j个hash函数计算完成仍然没有找到空闲的下标时,则开辟新的一行,将该数据存到h1计算的下标中去;
(2)设计用于RDF数据的存储映射
采用hash算法将RDF数据的URI和字面量分别转化为64位二进制数据,URI取hash算法的高64位,字面量取hash算法的低64位,将转换的二进制数据存储到hash索引表中并对hash索引表中的行进行升序排列,以便查找时通过二分查找算法快速进行映射与转化;
(3)RDF数据存储
将RDF数据按照步骤(2)的方法进行映射与转换之后,第一次存储到步骤(1)的表结构中,对存储到表结构中数据进行分析,创建分析表S,记录每个Subject和Object包含的三元组个数以及出现频率最高的20个URI和频率最高的20个字面量对应的频率,再按照步骤(1)的表结构,将Object作为存储实体,对存储到表结构中的数据经过步骤(2)的映射与转换之后再进行第二次存储,即完成RDF的数据存储。
2.一种与权利要求1所述的RDF数据存储方法匹配的RDF数据查询方法,其特征在于由以下步骤组成:
(a.1)变量的提取与转化
将SPARQL查询语句中的三元组基本图模式进行分解,并确定查询语句中的变量个数为count,对查询语句中的URI和字面量分别参照存储方法中的步骤(2)中的映射方式将其转化为64位二进制数据,对所包含的变量进行-1到-count的赋值;
(a.2)基本查询图模式的转化
根据步骤(a.1)中的三元组基本图模式分解结果,将每个基本图模式转化为三元组查询节点结构,其中三元组查询节点结构为:
三元组查询节点结构
存储方式的标识选择RDF数据存储方法中步骤(3)的第一次存储或第二次存储;
对URI和字面量,subject、predicate、object的Id分别为64位二进制数据;对变量,subject、predicate、object的Id对应为所赋的值;
(a.3)查询连接操作的表示
根据步骤(a.1)中基本图模式中所分解的三元组相互进行比较,对存在相同变量的三元组,以步骤(a.2)结构中的节点Id为唯一标识符建立连接关系,并将连接关系转化为连接操作边结构,其中连接操作边结构为:
连接操作边结构
(a.4)计算每个查询的查询代价
根据步骤(a.2)中得到的三元组查询节点结构,对步骤(a.3)中得到的连接操作边结构按照代价算法分别进行代价分析,得到连接操作边结构的代价值为c,代价算法的公式为:
TMC(t,m,S)→c
其中:t为需要查询的三元组;m为RDF数据存储方法的步骤(3)中第一次存储或第二次存储;S为分析表;
(a.5)查询计划的生成
将步骤(a.4)中获得的所有连接操作边结构的代价值c进行由小到大排序,得到按代价值排序的节点序列,选取序列中c值最小的节点为开始节点,依次选取序列中的下一个节点,若节点中的变量未查询,则进行连接查询,直至所有节点中的变量都完成查询,即实现语句的查询。
3.根据权利要求2的RDF数据查询方法,其特征在于所述步骤(a.5)之后还包括步骤(a.6)建立缓存机制,具体为:
对用户输入的查询语句根据步骤(a.2)中得到的三元组查询节点结构的集合进行hash操作,得到hash函数的结果值,若缓存列表中存在该值,则直接取出缓存结果反馈给用户;否则,则重复步骤(a.3)到(a.5),将所得结果存入硬盘中、对应地址标识和hash函数的结果值存入缓存列表中。
CN201510955821.5A 2015-12-18 2015-12-18 一种rdf的数据存储方法和查询方法 Active CN105630881B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510955821.5A CN105630881B (zh) 2015-12-18 2015-12-18 一种rdf的数据存储方法和查询方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510955821.5A CN105630881B (zh) 2015-12-18 2015-12-18 一种rdf的数据存储方法和查询方法

Publications (2)

Publication Number Publication Date
CN105630881A CN105630881A (zh) 2016-06-01
CN105630881B true CN105630881B (zh) 2019-04-09

Family

ID=56045814

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510955821.5A Active CN105630881B (zh) 2015-12-18 2015-12-18 一种rdf的数据存储方法和查询方法

Country Status (1)

Country Link
CN (1) CN105630881B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10445361B2 (en) * 2016-12-15 2019-10-15 Microsoft Technology Licensing, Llc Caching of subgraphs and integration of cached subgraphs into graph query results
US10242223B2 (en) 2017-02-27 2019-03-26 Microsoft Technology Licensing, Llc Access controlled graph query spanning
CN107066573B (zh) * 2017-04-10 2020-04-17 北京工商大学 一种基于三维表结构的数据关联存取方法及应用
CN107229704A (zh) * 2017-05-25 2017-10-03 深圳大学 一种基于ksp算法的资源描述框架查询方法和***
CN108268580A (zh) * 2017-07-14 2018-07-10 广东神马搜索科技有限公司 基于知识图谱的问答方法及装置
CN107480199B (zh) * 2017-07-17 2020-06-12 深圳先进技术研究院 数据库的查询重构方法、装置、设备及存储介质
CN110019911A (zh) * 2017-12-29 2019-07-16 苏州工业职业技术学院 支持知识演化的知识图谱的查询方法和装置
EP3514706A1 (en) * 2018-01-18 2019-07-24 Université Jean-Monnet Method for processing a question in natural language
CN109446358A (zh) * 2018-08-27 2019-03-08 电子科技大学 一种基于id缓存技术的图数据库加速装置和方法
CN109656946B (zh) * 2018-09-29 2022-12-16 创新先进技术有限公司 一种多表关联查询方法、装置及设备
CN112287043B (zh) * 2020-12-29 2021-06-18 成都数联铭品科技有限公司 基于领域知识的图编码自动生成方法及***、电子设备
CN112732746B (zh) * 2021-01-13 2023-05-12 首都师范大学 一种基于sparql端点联合的动态连接排序方法
CN114996370A (zh) * 2022-08-03 2022-09-02 杰为软件***(深圳)有限公司 一种关系型数据库到语义三元组的数据转换和迁移方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521299A (zh) * 2011-11-30 2012-06-27 华中科技大学 资源描述框架数据的处理方法
CN103970820A (zh) * 2014-01-23 2014-08-06 河海大学 Web多媒体资源开放标注数据的可视化方法及装置
CN104462609A (zh) * 2015-01-06 2015-03-25 福州大学 结合星型图编码的rdf数据存储与查询方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7426525B2 (en) * 2003-08-08 2008-09-16 Hewlett-Packard Development Company, L.P. Method and apparatus for identifying an object using an object description language
US8078646B2 (en) * 2008-08-08 2011-12-13 Oracle International Corporation Representing and manipulating RDF data in a relational database management system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521299A (zh) * 2011-11-30 2012-06-27 华中科技大学 资源描述框架数据的处理方法
CN103970820A (zh) * 2014-01-23 2014-08-06 河海大学 Web多媒体资源开放标注数据的可视化方法及装置
CN104462609A (zh) * 2015-01-06 2015-03-25 福州大学 结合星型图编码的rdf数据存储与查询方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"一种基于聚类模式的RDF数据聚类方法";袁柳等;《计算机科学》;20151031;第42卷(第10期);第266-269页 *

Also Published As

Publication number Publication date
CN105630881A (zh) 2016-06-01

Similar Documents

Publication Publication Date Title
CN105630881B (zh) 一种rdf的数据存储方法和查询方法
CN103646032B (zh) 一种基于本体和受限自然语言处理的数据库查询方法
Özsu A survey of RDF data management systems
Hartig et al. Publishing and consuming provenance metadata on the web of linked data
Etcheverry et al. Enhancing OLAP analysis with web cubes
Görlitz et al. Federated data management and query optimization for linked open data
US7702685B2 (en) Querying social networks
US11599535B2 (en) Query translation for searching complex structures of objects
Bikakis et al. The XML and semantic web worlds: technologies, interoperability and integration: a survey of the state of the art
CN104636478A (zh) 信息查询方法和设备
Comyn-Wattiau et al. Model driven reverse engineering of NoSQL property graph databases: The case of Neo4j
CN104137095B (zh) 用于演进分析的***
US20130097151A1 (en) Transformation of complex data source result sets to normalized sets for manipulation and presentation
Masmoudi et al. Knowledge hypergraph-based approach for data integration and querying: Application to Earth Observation
Banane et al. SPARQL2Hive: An approach to processing SPARQL queries on Hive based on meta-models
US20140067853A1 (en) Data search method, information system, and recording medium storing data search program
Gomathi et al. A novel adaptive cuckoo search for optimal query plan generation
CN108241709A (zh) 一种数据集成方法、装置和***
CN101719162A (zh) 基于片段模式匹配的多版本开放式地理信息服务访问方法及***
Fernández et al. Management of big semantic data
KR101897760B1 (ko) 링크드 오픈 데이터 클라우드 정보 서비스를 위한 트리플 변환 및 저장 시스템 및 그 방법
RU2605387C2 (ru) Способ и система для хранения данных графов
KR20200073302A (ko) 링크드 데이터를 활용하여 시각적 분석 서비스를 제공하는 방법, 플랫폼 시스템 및 해당 프로그램이 기록된 기록매체
Babalou et al. Towards a semantic toolbox for reproducible knowledge graph generation in the biodiversity domain-how to make the most out of biodiversity data
Hauswirth et al. Linked data management

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