一种大规模RDF数据关联路径发现方法技术

技术编号:13128795 阅读:217 留言:0更新日期:2016-04-06 14:20
本发明专利技术公开了一种大规模RDF数据关联路径发现方法。本方法为:1)抽取RDF数据库中的RDF关联数据并以<主语>、<谓语>、<宾语>形式缓存;2)对主语和宾语分别分配一id,生成主语id、url和宾语id、url存入到点文档中;将主语id宾语id谓语url存储到边文档中;3)将点文档内容存到nodes表中构建出点弹性分布式数据集实例,将边文档内容储到edges表中构建出边弹性分布式数据集实例;然后进行实例化,得到分布式图形数据集合;4)计算该集合中数据的所属子图,生成若干没有关联的最大连通子图;将同一子图中的点集合两两组合并计算每一组合中两点之间的关联路径。本发明专利技术能更快速完整的发现关联路径。

【技术实现步骤摘要】

本专利技术涉及一种基于SPARKGRAPHX的大规模RDF数据关联路径发现方法,属于计算机软件

技术介绍
语义网是人工智能和Web技术相结合的产物,语义网的内容表达是基于XML(eXtensibleMarkupLangauge)语言和资源描述框架(RDF)来实现的。XML允许使用者以层次结构自定义标记来标注数据,并将其作为标注放置在网页中,以便计算机程序处理网页内容。XML的内容包括XML声明、定义语言语法的DTD(DocumentTypeDeclaration)、描述标记的详细说明及文档本身等。RDF是Web上用于数据交换的标准模型,继承了Web的连接结构,使用统一资源标识符(URI)描述网络上的节点以及节点间的联系,即三元组模型。使用这个简单的模型,允许结构化和半结构化的数据在不同的应用程序间共享。目前广泛用来检索RDF信息以及数据之间的关联路径都是通过拼接有限的SPARQL语句来完成数据关联路径的搜索,但目前的SPARQL只支持RDF数据基本模式的匹配查询,不支持对RDF数据节点间或者单节点周围可能存在的联系路径的查询,不能充分挖掘RDF数据节点间关联的特性,因此很难直接发挥RDF数据模型区别于其它数据模型的优势,而实际应用中不仅需要使用SPARQL对RDF数据进行基本模式匹配的查询,很多时候挖掘RDF数据节点间的联系也十分重要。目前也有一些专利技术和软件是在做RDF数据关联路径发现,例如RELFINDER可以发现RDF数据之间的关联和关联路径,但是它的运行原理和机制是限制了数据发现的路径长度和数据之间连接的方向,列举了三种场景下给出每一种场景下的SPARQL语句拼接,这种方式在一定程度上确实能够发现RDF数据的关联路径,但是诸多的限制也会造成数据关联路径发现不完全的现象,而且RELFINDER在很大程度上它要求底层必须为RDF数据库且该数据库支持SPARQL标准,对底层数据库的耦合性也较高。另外RELFINDER要求发现关联数据必须在同一台RDF数据库当中,只有这样才能够发现数据之间的关联路径,但是现实情况往往是数据量大且数据节点多,一个RDF数据库无法存储所有的数据,此时RELFINDER就解决不了这样的数据的关联路径发现问题。
技术实现思路
针对现有技术中存在的技术问题,本专利技术的目的在于提供一种基于SPARKGRAPHX的大规模RDF数据关联路径发现方法,该方法运用了现有的一些大数据处理平台尤其是图形数据并行化处理框架,通过自主研发的一套关联数据处理和分析机制,实现了基于spark的RDF数据关联路径的发现。从总体说来,该专利技术主要包含RDF关联数据抽取模块、关联数据组织模块、关联数据的存储和管理模块、关联数据构图模块、最大连通子图计算模块、关联数据路径搜索模块、关联数据源的指定和关联路径可视化展示模块。本专利技术的技术方案为:一种基于SPARKGRAPHX的大规模RDF数据关联路径发现方法,其步骤为:1)RDF关联数据抽取模块:该模块读取关于多个RDF数据库地址信息、用户名、密码、数据库名称的配置信息,启动SPARQL构建语句模块,通过该模块作用是调用系统内置的sparql查询语句,查询关联数据,即主语、谓语、宾语均为url的资源,然后连接RDF数据库,抽取数据库当中的RDF关联数据,并且将多台RDF数据库查询出来的关联数据三元组以<主语><谓语><宾语>的形式缓存在内存中,超出专利技术给予的缓存上限1G,启动连接HDFS模块,启动HDFS写入模块将数据写入到HDFS当中,存储的文件名称为rdf_relations.n3由分布式文件系统存储RDF关联数据信息。2)关联数据组织模块:RDF数据都是URL形式,而GRAPHX接收的数据id为long类型且数据与数据之间的关系都通过这个id进行描述,而RDF数据与数据之间的关系都通过URL描述。因此本专利技术对RDF的主语和宾语内容进行了重编码。因此本模块的功能是从HDFS当中读取主语和宾语的信息并且给主语和宾语内容重新分配id,首先是通过hive这个数据仓储工具,将之前注入到hdfs文件系统中rdf_relations.n3数据调用系统编制好的hive脚本,读取出来rdf_relations.n3文件当中的主语url、谓语url和宾语url,然后首先对主语url和宾语url进行编码,分别对主语和宾语的url都分配一个long整型的id号,最终生成主语id1主语url和宾语id2宾语url这样的内容,将这个内容存入到node.txt文件中。然后再生成id1id2谓语url这样的内容,将这个内容存储到edge.txt文件中。根据上述的关联关系模块的功能,发明首先利用了hive的client创建了一个结构为id–url(例如1http://baidu.com,2http://google.com.cn)RDF_relationship表格结构,这个表格结构存储在了hive的metasore模块当中,然后调用了系统内置的装载数据的脚本,将rdf_relations.n3内容装载到了RDF_relationship表中,首先调用系统内置脚本读取表中的主语内容和宾语内容,然后将这个主语url和宾语url进行编码,在读取这个主语和宾语对应的谓语,最后形成两种结构的内容,一个是id主语url,id宾语url;另一个是主语id宾语id谓语url,再将第一种结构的内容存储到点文档node.txt当中,再将第二种结构的内容存储到edge.txt边文档中。最后再把这两个文档存储到hdfs当中。3)关联数据的存储和管理模块:该模块的主要功能有两个,一个是建立点表格(nodes)和边表格(edges)且将这个文档结构存储在hivemetastore中,第二个就是调用数据载入脚本将HDFS中的node.txt和edge.txt文档中的内容存储到edges表和nodes表中。那么具体的做法是首先系统启动内置点表格创建脚本createtablenodesvalues(idlong,urlString)和边表格创建脚本createtableedgesvalues(idlong,idlong,urlString)构建边表格和点表格结构,然后调用loaddataintotable这样的批次载入数据的方式将node.txt和edge.txt文档中的内容注入到上述表格中。最后hive会将创建的边表格结构和点表格结构存储到metastore中。接收点文档和边文档,启动HDFS数据写入模块,然后将点文档和边文档存储到HDFS文件本文档来自技高网
...

【技术保护点】
一种大规模RDF数据关联路径发现方法,其步骤为:1)RDF关联数据抽取模块连接每一设定的RDF数据库并抽取RDF数据库中的RDF关联数据,然后将抽取的所有RDF关联数据以三元组形式缓存;其中,该三元组形式为:主语url、谓语url、宾语url;2)关联数据组织模块对每一所述三元组数据中的主语和宾语分别分配一id,生成主语id及其对应url和宾语id及其对应url并存入到一点文档node.txt中;然后将主语id宾语id谓语url存储到一边文档edge.txt中;3)关联数据的存储和管理模块分别建立一边表格edges表和一点表格nodes表,然后将点文档node.txt中的内容存储到nodes表中,将边文档edge.txt中的内容存储到edges表中;4)关联数据构图模块根据nodes表构建出点弹性分布式数据集实例、根据edges表构建出边弹性分布式数据集实例;然后将该点弹性分布式数据集实例、边弹性分布式数据集实例进行实例化,得到一分布式图形数据集合;5)最大连通子图计算模块计算该分布式图形数据集合中数据的所属子图,生成若干个没有关联的最大连通子图;6)关联数据路径搜索模块将同一最大连通子图中的点集合两两组合并计算每一组合中两点之间的所有关联路径。...

【技术特征摘要】
1.一种大规模RDF数据关联路径发现方法,其步骤为:
1)RDF关联数据抽取模块连接每一设定的RDF数据库并抽取RDF数据库中的RDF关
联数据,然后将抽取的所有RDF关联数据以三元组形式缓存;其中,该三元组形式
为:主语url、谓语url、宾语url;
2)关联数据组织模块对每一所述三元组数据中的主语和宾语分别分配一id,生成主语id
及其对应url和宾语id及其对应url并存入到一点文档node.txt中;然后将主语id宾
语id谓语url存储到一边文档edge.txt中;
3)关联数据的存储和管理模块分别建立一边表格edges表和一点表格nodes表,然后将
点文档node.txt中的内容存储到nodes表中,将边文档edge.txt中的内容存储到edges
表中;
4)关联数据构图模块根据nodes表构建出点弹性分布式数据集实例、根据edges表构建
出边弹性分布式数据集实例;然后将该点弹性分布式数据集实例、边弹性分布式数据
集实例进行实例化,得到一分布式图形数据集合;
5)最大连通子图计算模块计算该分布式图形数据集合中数据的所属子图,生成若干个没
有关联的最大连通子图;
6)关联数据路径搜索模块将同一最大连通子图中的点集合两两组合并计算每一组合中
两点之间的所有关联路径。
2.如权利要求1所述的方法,其特征在于,构建出所述点弹性分布式数据集实例的方法为:
首先从nodes表中获取id和url数据,创建一数组Array,用于存储node实例;然后通过
SparkContext序列化接口接收该数组Array,创建出所述点弹性分布式数据集实例。
3.如权利要求1或2所述的方法,其特征在于,构建出所述边弹性分布式数据集实例的方法
为:首先从edge表获取ididurl数据创建一数组Array,用于存储edge实例;然后通过
Sp...

【专利技术属性】
技术研发人员:高玥黎建辉周园春侯艳飞韩岳岐
申请(专利权)人:中国科学院计算机网络信息中心
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1