[发明专利]预存储RDF三元数据的方法和装置有效
申请号: | 201010577037.2 | 申请日: | 2010-11-29 |
公开(公告)号: | CN102479239A | 公开(公告)日: | 2012-05-30 |
发明(设计)人: | 徐林昊;孙行智;武硕;王庆法;潘越 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京市中咨律师事务所 11247 | 代理人: | 于静;周良玉 |
地址: | 美国*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 存储 rdf 三元 数据 方法 装置 | ||
技术领域
本发明涉及RDF三元数据的存储和管理,更具体而言,涉及用于加速RDF三元数据的查询和读取的方法和装置。
背景技术
RDF(Resource Description Framework,资源描述框架)是万维网联盟(W3C)提出的一组标记语言的技术标准,以便更为丰富地描述和表达Web资源的内容与结构。具体地,RDF可专门用于表达关于Web资源的元数据,比如Web页面的标题、作者和修改时间,Web文档的版权和许可信息,某个被共享资源的可用计划表等。然而,将“Web资源”这一概念一般化后,RDF可用于表达关于任何可在Web上被标识的事物的信息。随着基于语义的网络描述的发展,RDF数据越来越多地应用在各种网络相关应用中,对RDF数据的管理也变得愈加重要。
与一般的关系数据不同,RDF数据可表达为三元组的形式,该三元组包括<主体,谓词,客体>。也就说,RDF通过这样的三元组描述各个元素之间的关系。在将这样的RDF三元组存储在诸如数据库的存储系统的情况下,通常通过W3C推荐的SPARQL语言进行数据查询。
图1示出现有的RDF数据存储和查询系统的结构。该系统100包括数据库101,数据加载器102,数据存取模块103和查询引擎104。数据库101用于存储RDF三元数据。具体地,在数据库101中,包括IRI表和三元组表。IRI表用于存储内部ID或索引与数据中的IRI串之间的对应关系,而三元组表用上述内部ID的表示形式来存储三元组数据。可以理解,这样的存储方式有利于数据的压缩存储,从而节省存储空间。在从外部输入新的RDF数据时,数据加载器102接收数据输入,并对输入的RDF数据进行解析,将其转化为内部数据模型。对于该内部数据模型中的每个IRI串,数据存取模块103为其分配一个唯一的内部ID,并将该ID与该串之间的对应关系插入或存储到上述IRI表中。之后,对于数据模型中的每个RDF三元组,数据存取模块103将其内部ID的表示形式插入或存储到上述三元组表中。对于如此存储的RDF三元数据,在想要进行数据查询时,查询引擎104接收用户的SPARQL查询请求,并将SPARQL查询请求转译为对应的标准化SQL(结构化查询语言)语句。数据存取模块103根据SQL语句从数据库101中提取所查询的三元组,并将结果返回给查询引擎104。
下面结合具体例子说明在上述系统100中执行的RDF数据存储和查询的过程。在一个例子中,在数据库101中存储关于学校课程设置的信息,这些信息均以RDF三元组形式存储。假定,用户想要知道选修Jack所教授的课程的学生名单,那么可以在查询引擎104中将SPARQL查询设置为:
SELECT?name
WHERE{
?student:hasName ?name. (1)
?student:takeCourse ?course.(2)
?course:toughtBy ?person. (3)
?person:hasName“Jack”. (4)
}
在上述SPARQL查询中,请求返回所有name值,其中WHERE{}中的语句为name需要满足的关系。具体地,该查询中包含了4行三元组形式的查询语句(1)-(4),每个这样的语句称为一个三元模式(triplepattern)。可以理解,此处为了便于描述而对这些语句进行了编号,在实际查询中不存在这样的编号。与RDF数据相对应地,每个三元模式也表示为<主体,谓词,客体>的形式,但是可以在三元组的至少一个元素前添加问号,将其设定为变量,以表示对该元素进行查询。例如,三元模式(4)表示希望查询在三元组中的谓词为hasName,客体为Jack的情况下,对应的变量person,即确定名字叫Jack的person。继而,通过三元模式(3),可以搜索谓词为toughtBy,客体为以上确定的person的情况下,对应的主体course,也就是确定person所教授的课程course。在三元模式(2)中,搜索选修course的所有student,最后,在三元模式(1)中,确定上述student的名字name。于是,通过以上的三元模式(1)-(4),以person,course,student为中间变量,就可以确定最终想要查询的name的值。
通过逐一执行上述三元模式,图1中的数据存取模块103从数据库101中依次提取出期望的查询结果,并返回给查询引擎104。在一个例子中,返回的RDF三元组可以为如下的形式:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010577037.2/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置