买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】基于Spark Streaming的流式RDF数据并行推理算法_福州大学_201810521793.X 

申请/专利权人:福州大学

申请日:2018-05-28

公开(公告)日:2022-03-11

公开(公告)号:CN108763451B

主分类号:G06F16/2455(20190101)

分类号:G06F16/2455(20190101);G06N5/04(20060101)

优先权:

专利状态码:有效-授权

法律状态:2022.03.11#授权;2018.11.30#实质审查的生效;2018.11.06#公开

摘要:本发明涉及一种基于SparkStreaming的流式RDF数据并行推理算法。首先结合OWLHorst推理规则,构建相应的规则连接变量关系表;在迭代并行推理阶段定时获取Streaming数据流中的批量新数据以及前次推理产生的数据作为输入数据,对输入的模式数据和实例数据进行归类处理并存储到相应的Redis集群;然后,根据规则连接变量关系表,判断本次推理能够激活的规则,结合相应的实例数据产生推理数据;最后,删除本次推理产生的重复数据并存储,本次迭代推理结束。本发明减少了MapReduce的任务数,结合Spark进行流式数据的迭代推理;设计规则连接变量关系表来存储数据以及推理中产生的新数据,保证了算法的完备性;设计了实例三元组的存储方案,结合Redis的特性,以空间换时间,实现了实例数据的快速读取。

主权项:1.一种基于SparkStreaming的流式RDF数据并行推理算法,其特征在于,包括如下步骤:步骤S1、结合OWLHorst推理规则,构建相应的规则连接变量关系表;在迭代并行推理阶段定时获取Streaming数据流中的批量新数据以及前次推理产生的数据作为输入数据,对输入的模式数据和实例数据进行归类处理并存储到相应的Redis集群;步骤S2、根据规则连接变量关系表,判断本次推理能够激活的规则,结合相应的实例数据产生推理数据;步骤S3、删除本次推理产生的重复数据并存储,本次迭代推理结束;步骤S1中,所述模式数据即模式三元组数据,所述实例数据即实例三元组数据;所述实例三元组数据存储到Redis集群中的方式为:根据Redis集群的特点,采用key,value的形式,以三元组中的主语S、谓语P、宾语O分别作为key,即分别以S,P,O、P,S,O和O,S,P的形式存在三张表中;所述模式三元组数据存储到Redis集群中的方式为:将OWLHorst推理规则的每一条规则生成对应一张表Rulem_Table,存储在Redis中;以规则作为表名,根据每个规则连接变量个数的不同分为2类:无需连接变量的规则、有连接变量的规则;无需连接变量的规则:在Redis中的存储方式以P作为key,S,O作为value来存储;有连接变量的规则:(1)对于单个连接变量的规则,在Redis中的存储方式以P作为key,且只有一个key取值;(2)对于复杂的有多个连接变量的规则,在Redis中的存储方式以P作为key,S、O以S,O,0、O,S,1的Map型式存入value,其中0表示key为主语,1表示key为宾语。

全文数据:基于SparkStreaming的流式RDF数据并行推理算法技术领域[0001]本发明属于海量流式RDF数据推理技术领域,具体涉及一种基于SparkStreaming的流式RDF数据并行推理算法。背景技术[0002]现有的基于OWL规则的推理方法大多是集中式的处理固定大小的静态数据集,由于集中式处理机制的限制,现有算法在处理海量的实时数据时效率低下。为了响应这种不断增长的需求,不少学者研究并提出自己的RDF流式推理架构=BarbieriDF[1]等人提出了基于流式和富背景知识的增量推理算法,该算法向每个RDF三元组中添加到期时间信息,当新的流式数据到达时,对新数据进行推理计算,并且终止明确的事实以及删除无效的三元组。IDRM[2]算法能够高效可扩展的对增量数据进行RDFS推理。ChevalierJ[3]等人提出来一种有效的增量推理器SIider,该推理器通过语义数据流中的内在特征对其进行推理,从而实现了针对流式数据的可扩展批处理推理器。叶怡新等人提出了结合伪双向网络的基于Spark平台的流式RDF数据并行推理算法PRAS[4]。[0003]RDF流式推理的主要目标是如何将收到的流式数据进行存储并进行推理。IDRM算法针对RDFS规则进行特殊建模,所以对于OWLHorst规则推理的效率不高。SIider只针对RDFS规则进行设计,所以对于复杂的OWLHorst规则推理并不适用。PRAS算法通过设计伪双向网络来进行流式数据的推理,但是由于伪双向网络通信的消耗较大,因此处理大量的流式数据的效率不高。[0004]本发明提出的结合Spark平台的流式RDF数据推理算法要解决的就是流式数据的存储和推理两个问题。为了保证推理结果的完备性,如何设计流式数据的存储方案是本文的重点。本发明利用Redis数据库集群来存储大规模的RDF数据,结合分布式流式计算框架SparkStreaming,借助平台中的MapReduce计算模型,研究并实现了流式RDF数据的分布式并行推理方案,解决了面对大量流式数据无法快速推理和推理结果不完备的问题。这些对于海量数据的推理具有良好的借鉴意义。[0005]参考文献:[0006][l]BarbieriDF,BragaD,CeriS,etal.Incrementalreasoningonstreamsandrichbackgroundknowledge[C]ExtendedSemanticWebConference.SpringerBerlinHeidelberg,2010:1-15.[0007][2]LiuB,WuLjLiJ,etal.ExploitingIncrementalReasoninginHealthcareBasedonHadoopandAmazonCloud[C]SemanticCitiesWorkshopatAAAIConferenceonArtificialIntelligenceΑΑΑΓ14.2014.[0008][3]ChevalierJ,SubercazeJ,GravierC,etal.Slider:anEfficientIncrementalReasoner[C]Proceedingsofthe2015ACMSIGMODInternationalConferenceonManagementofData.ACM,2015:1081-1086.[0009][4]叶怡新,汪璟玢.基于Spark的分布式并行推理算法[J].计算机系统应用,2017,2605:97-104.发明内容[00Ί0]本发明的目的在于提供一种基于SparkStreaming的流式RDF数据并行推理算法,该算法减少了MapReduce的任务数,结合Spark进行流式数据的迭代推理;设计规则连接变量关系表来存储数据以及推理中产生的新数据,保证了算法的完备性;设计了实例三元组的存储方案,结合Redis的特性,以空间换时间,实现了实例数据的快速读取。[0011]为实现上述目的,本发明的技术方案是:一种基于SparkStreaming的流式RDF数据并行推理算法,包括如下步骤:[0012]步骤SI、结合OWLHorst推理规则,构建相应的规则连接变量关系表;在迭代并行推理阶段定时获取Streaming数据流中的批量新数据以及前次推理产生的数据作为输入数据,对输入的模式数据和实例数据进行归类处理并存储到相应的Redis集群;[0013]步骤S2、根据规则连接变量关系表,判断本次推理能够激活的规则,结合相应的实例数据产生推理数据;[0014]步骤S3、删除本次推理产生的重复数据并存储,本次迭代推理结束。[0015]在本发明一实施例中,步骤Sl中,所述模式数据即模式三元组数据,所述实例数据即实例三元组数据。[0016]在本发明一实施例中,所述实例三元组数据存储到Redis集群中的方式为:根据Redis集群的特点,采用〈key,value〉的形式,以三元组中的主语S、谓语P、宾语0分别作为1«^,即分别以〈5,屮,0、〈?,(5,0和〈0,(5,巧的形式存在三张表中。[0017]在本发明一实施例中,所述模式三元组数据存储到Redis集群中的方式为:将OWLHorst推理规则的每一条规则生成对应一张表Rulem_Table,存储在Redis中;以规则作为表名,根据每个规则连接变量个数的不同分为2类:无需连接变量的规则、有连接变量的规则;[0018]无需连接变量的规则:在Redis中的存储方式以P作为key,〈S,0作为value来存储;[0019]有连接变量的规则:[0020]1对于单个连接变量的规则,在Redis中的存储方式以P作为key,且只有一个key取值;[0021]2对于复杂的有多个连接变量的规则,在Redis中的存储方式以P作为key,S、0以、〈0,〈S,1的Map型式存入value,其中0表示key为主语,1表示key为宾语。[0022]在本发明一实施例中,步骤S2的具体实现过程如下:[0023]步骤S21、遍历规则连接变量关系表,判断能够激活的规则;[0024]步骤S22、对于能够激活的规则,如果不需要实例三元组数据就可直接推理得出结论,则跳至步骤S23;如果需要结合实例三元组数据,那么以每个规则需要的实例三元组数据的连接变量作为key,从事先存储好的实例表去找对应的实例三元组数据,如果能找到对应的实例三元组数据,则进入步骤S23,否则重复步骤S22的判定工作;如果所有数据都完成计算,则结束算法;[0025]步骤S23、执行当前规则推理,得到推理结论,将推理产生的三元组〈Si,Pj,0k输出到集合〈Si,(Pj,0k中,并跳至步骤S22。[0026]在本发明一实施例中,步骤S3的具体实现过程如下:[0027]步骤S31、接收步骤S2推理生成的新三元组集合,如果接收到的数据为空,则结束算法;[0028]步骤S32、遍历接收到的新三元组集合,去除其中重复的三元组;[0029]步骤S33、将去重后的三元组集合以itr_data为集合名,保存于Redis集群中,用于下次推理的读取。[0030]相较于现有技术,本发明具有以下有益效果:[0031]1、减少了MapReduce的任务数,结合Spark进行流式数据的迭代推理;[0032]2、设计规则连接变量关系表来存储数据以及推理中产生的新数据,保证了算法的完备性;[0033]3、设计了实例三元组的存储方案,结合Redis的特性,以空间换时间,实现了实例数据的快速读取。附图说明[0034]图1为本发明算法总体框架图。[0035]图2为本发明OWLHorst规则。具体实施方式[0036]下面结合附图,对本发明的技术方案进行具体说明。[0037]本发明提供了一种基于SparkStreaming的流式RDF数据并行推理算法,包括如下步骤:[0038]步骤Sl、结合OWLHorst推理规则,构建相应的规则连接变量关系表;在迭代并行推理阶段定时获取Streaming数据流中的批量新数据以及前次推理产生的数据作为输入数据,对输入的模式数据和实例数据进行归类处理并存储到相应的Redis集群;[0039]步骤S2、根据规则连接变量关系表,判断本次推理能够激活的规则,结合相应的实例数据产生推理数据;[0040]步骤S3、删除本次推理产生的重复数据并存储,本次迭代推理结束。[0041]步骤Sl中,所述模式数据即模式三元组数据,所述实例数据即实例三元组数据。[0042]所述实例三元组数据存储到Redis集群中的方式为:根据Redis集群的特点,采用〈key,value〉的形式,以三元组中的主语S、谓语P、宾语0分别作为key,即分别以、〈P,(S,0和〈0,(S,P的形式存在三张表中。所述模式三元组数据存储到Redis集群中的方式为:将OWLHorst推理规则的每一条规则生成对应一张表Rulem_Table,存储在Redis中;以规则作为表名,根据每个规则连接变量个数的不同分为2类:无需连接变量的规则、有连接变量的规则;[0043]无需连接变量的规则:在Redis中的存储方式以P作为key,〈S,0作为value来存储;[0044]有连接变量的规则:[0045]1对于单个连接变量的规则,在Redis中的存储方式以P作为key,且只有一个key取值;[0046]2对于复杂的有多个连接变量的规则,在Redis中的存储方式以P作为key,S、0以、〈0,〈S,1的Map型式存入value,其中0表示key为主语,1表示key为宾语。[0047]步骤S2的具体实现过程如下:[0048]步骤S21、遍历规则连接变量关系表,判断能够激活的规则;[0049]步骤S22、对于能够激活的规则,如果不需要实例三元组数据就可直接推理得出结论,则跳至步骤S23;如果需要结合实例三元组数据,那么以每个规则需要的实例三元组数据的连接变量作为key,从事先存储好的实例表去找对应的实例三元组数据,如果能找到对应的实例三元组数据,则进入步骤S23,否则重复步骤S22的判定工作;如果所有数据都完成计算,则结束算法;[0050]步骤S23、执行当前规则推理,得到推理结论,将推理产生的三元组〈Si,Pj,0k输出到集合〈Si,(Pj,0k中,并跳至步骤S22。[0051]步骤S3的具体实现过程如下:[0052]步骤S31、接收步骤S2推理生成的新三元组集合,如果接收到的数据为空,则结束算法;[0053]步骤S32、遍历接收到的新三元组集合,去除其中重复的三元组;[0054]步骤S33、将去重后的三元组集合以itr_data为集合名,保存于Redis集群中,用于下次推理的读取。[0055]以下为本发明的具体实现过程。[0056]本发明的基于SparkStreaming的流式RDF数据并行推理算法PSRH算法),算法主要分为构建规则连接变量关系表和迭代并行推理两阶段,其中迭代并行推理包括流式数据归类和OWLHorst规则的推理两个部分。该算法首先结合OWLHorst推理规则,构建相应的规则连接变量关系表;在迭代并行推理阶段定时获取Streaming数据流中的批量新数据以及前次推理产生的数据作为输入数据,对输入的模式数据和实例数据进行归类处理并存储到相应的Redis集群;然后,根据规则连接变量关系表,判断本次推理能够激活的规则,结合相应的实例数据产生推理数据。最后,删除本次推理产生的重复数据并存储,本次迭代推理结束。PSRH算法的总体框架图如图1所示,具体算法过程如下。[0057]1、RDF流式数据存储[0058]PSRH算法根据Redis集群的特点,结合OWLHorst规则如图2所示)以及RDF本体数据,对推理模型进行构建。而后通过SparkStreaming框架实时获取三元组数据,并将其中的模式三元组数据与实例三元组数据区分开来。[0059]1.1、实例三元组存储设计[0060]由于实例数据非常庞大,并且在推理过程中,具体规则所用到的连接变量可能是实例三元组中的主语谓语宾语中的任意一个,因此对于实例三元组的查找效率就降低了。本章算法算法根据Redis集群的特点,采用〈key,value〉的形式,以三元组中的主语、谓语、宾语分别作为key,分别以、〈P,(S,0和〈0,(S,P的形式存在三张表中。这样一来,无论是以主谓宾中的哪一个关键词去实例表中查找,根据对应的key并结合Redis集群的特性,将实例三元组的查找时间缩短为01,达到了以空间换时间的效果。[0061]1.2、模式三元组存储设计[0062]对于模式三元组,我们设计了规则连接变量关系表来存储。[0063]OWL规则的各个前件之间需要通过变量的连接,才能产生新的三元组数据。由于算法为流式处理算法,因此模式三元组数据不可能像处理静态数据那样,一次性都加载完成,所以我们在算法中根据模式三元组数据建立了连接变量表,来记录推理过程中满足部分前件的规则,这样在下一次新数据进入节点的时候,就可以根据表的内容,继续上一次未完成的推理。[0064]将OWL规则的每一条规则生成对应一张表Rulem_Table,存储在Redis中。以规则作为表名,根据每个规则连接变量个数的不同分为2类:无需连接变量的规则、有连接变量的规则。[0065]我们根据不同类别,分别构造不同的表:[0066]1无需连接变量的规则[0067]无需连接变量的规则的前件中的P大多都是具有传递、相似、互逆的性质,因此我们在Redis中的存储方式以P作为key,作为value来存储。以OWLHorst规则12aVowl:equivalentClassw=vrdf:subClassOfw为例,不例如表1-1:[0068]表1-1OWLHorst规则12a的存储表结构[0069][0070]同样的,此处给出对于其他无连接变量的规则的表结构,如表1-2。[0071]表1-2OWLHorst规则12a、13a、13b的存储表结构[0072][0073]2有连接变量的规则[0074]对于单个连接变量的规则,在Redis中的存储方式以P作为key,且只有一个key取值。以OWL的规则3prdf:typeowl:SymmetricProperty,vpu=upV为例,其中连接变量为P,示例如表1-3:[0075]表1-3OWLHorst规则3的存储表结构[0076][0077]上述示例表示此次流式数据中,存在p为连接变量的三元组,其type为SymmetricProperty0[0078]对于复杂的有多个连接变量的规则,由于流式数据的特点,无法简单的用一对〈key,Value来存储一条规则涉及的所有模式三元组。为了不遗漏每次数据流传过来的模式三元组数据,也为了方便后续连接,以规则前件模式三元组的P作为key,S,0以〈S,〈0,0,和的Map型式存入value,其中0表示key为主语,1表示key为宾语,这样存储的作用是保证了不论连接变量是主语还是宾语,都能通过key在01时间内查找到。[0079]同时,在表中以〈LinkVar,〈a,b,…》的形式存放当前规则中已经匹配完成的模式前件所包含的连接变量。由此在推理过程中可以优先查找key为LinkVar对应的值,如果根据LinkVar的值从实例表中找到对应的实例三元组,则可以直接推理出结果。以OWL的规则16vowl:allValuesFromu,vowl:onPropertyp,wrdf:typev,wpx=xrdf:typeu[0080]为例,其中连接变量为v、p和w,存储示例如表1-4:[0081]表1-4OWLHorst规则16的存储表结构[0082][0084]如果RuIe16_TabIe中的四个行键有某一个的vaIue为空,那么则说明该规则所需要的模式前件不完备,这条规则是无法进行推理的,可省去查找实例数据的推理时间,从而提尚推理效率。[0085]对于其他含有连接变量的规则,此处给出它们的表结构,如表1-5至1-14。[0086]表1-5OWLHorst规则1的存储表结构[0087][0088]表1-6OWLHorst规则2的存储表结构[0089][0090]表1-7OWLHorst规则4的存储表结构[0091][0092]表1-8OWLHorst规则8a的存储表结构[0093][0094]表1-9OWLHorst规则8b的存储表结构[0095][0096]表1-10OWLHorst规则12c的存储表结构[0098]表1-11OWLHorst规则13c的存储表结构[0099][0100]表1-12OWLHorst规则14a的存储表结构[0101][0102]表1-13OWLHorst规则14b的存储表结构[0103][0104]表1-14OWLHorst规则15的存储表结构[0105][0107]1·3、owl:sameAs相关三元组存储设计[0108]对于谓语owl:sameAs的三元组,由于owl:sameAs所关联的主语(宾语)既可以是模式数据,也可以是实例数据,因此本节为包含owl:sameAs的规则设计不同的规则连接变量关系表,具体示例如表1-15至1-19:[0109]表1-15OWLHorst规则6的存储表结构[0110][0111]表1-16OWLHorst规则7的存储表结构[0113]表1-17OWLHorst规则9的存储表结构[0114][0115]表1-18OWLHorst规则10的存储表结构[0116][0117]表1-19OWLHorst规则11的存储表结构[0118][0119]1.4、流式数据存储实现[0120]该阶段通过并行化方式完成数据的分类存储,定时获取Streaming数据流中的批量流数据new_data以及前次推理产生的数据itr_data。然后检查new_data或itr_data中的三元组,如果是实例三元组则直接根据1.1的设计存储;如果是模式三元组则匹配该三元组所对应的推理规则,并依据1.2中规则连接变量关系表的设计,存储所有模式三元组。[0121]算法1并行数据存储算法Para11eIStoreForHorst[0122]输入:流式三元组数据new_data、前次推理产生的新三元组数据(itr_data[0123]输出:空[0124]以1·3规则6Vowl:sameAsw=wowl:sameAsV和1·2规则16[0125]vowl:alIValuesFromu,vowl:onPropertyp,wrdf:typev,wpx=xrdf:typeu[0126]为例,该阶段的伪码描述如下:[0127][0128][0132]规则14a中LinkVar的获取算法[0133][0135]规则15中LinkVar的获取算法[0136][0137]规则16中LinkVar的获取算法[0138][0139][0140]2、并行化推理阶段[0141]2.1、Map阶段:数据推理[0142]Map阶段主要完成数据推理,具体步骤如下:[0143]Stepl遍历规则连接变量关系表,判断哪些规则可以激活。[0144]Step2对于可以激活的规则,如果规则前件不需要实例三元组就可以直接推理得出结论,则跳至Step3;如果需要结合实例三元组,那么以每个规则需要的实例三元组的连接变量作为key,从事先存储好的实例表去找对应的实例三元组,如果能找到对应的实例三元组,则进入Step3,否则重复Step2的判定工作。如果所有数据都完成计算,则结束算法。[0145]Step3执行当前规则推理,得到推理结论,将推理产生的三元组〈Si,Pj,0k输出到集合〈Si,(Pj,Ok中,并跳至St印2。[0146]算法2数据推理算法ParalIeIReasoningForHorst[0147]输入:规则连接变量关系表Rulei_Table、实例三元组存储(S_Table、P_Table、0_Table[0148]输出:推理产生的新三元组[0149]算法的总体代码描述如下:[0150]ParallclRcasoningForHorsi[0151][0154]上述是无连接变量的规则的推理伪代码,接下来描述有连接变量的规则,以I.2中规贝丨Jl6vowl:allValuesFromu,vowl:onPropertyp,wrdf:typev,wpx=xrdf:typeu[0155]为例,伪码描述如下在伪码中,定义sl6为Set_16的对象):[0157][0158]类似于多连接变量的规则16,通过在Redis集群中构建〈key,value〉形式来储存模式三元组,可以快速进行连接变量的匹配;对于关联的实例三元组,利用Redis中实例三元组的存储策略,通过连接变量的值查找出相关的实例三元组,由于Redis根据key查找的时间为01,所以推理效率大大提高。[0159]2.2、Reduce阶段:去重和存储[0160]Reduce阶段主要对推理产生的数据进行保存。对于推理产生的三元组,保存于1^1丨8集群中名为”;[1:1'_^丨3”的集合,并且对重复的三元组进行去重操作,然后将”;[1:1'_data”集合作为下次推理输入数据的一部分。本文提出的数据去重和存储算法具体步骤如下:[0161]Stepl.接收Map阶段推理生成的新三元组集合(包括SchemaTriple和InstanceTriple,如果接收到的数据为空,则结束算法;[0162]Step2.遍历接收到的新三元组集合,去除其中重复的三元组;[0163]Step3.将去重后的三元组集合以itr_data为集合名,保存于Redis集群中,用于下次推理的读取。[0164]算法3.Reduce算法(DuplicateRemovalForHorst[0165]输入集合〈Si,(Pj,Ok[0166]输出itr_data。[0167]本发明算法减少了MapReduce的任务数,结合Spark进行流式数据的迭代推理;设计规则连接变量关系表来存储数据以及推理中产生的新数据,保证了算法的完备性;设计了实例三元组的存储方案,结合Redis的特性,以空间换时间,实现了实例数据的快速读取。[0168]以上是本发明的较佳实施例,凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。

权利要求:1.一种基于SparkStreaming的流式RDF数据并行推理算法,其特征在于,包括如下步骤:步骤SI、结合OWLHorst推理规则,构建相应的规则连接变量关系表;在迭代并行推理阶段定时获取Streaming数据流中的批量新数据以及前次推理产生的数据作为输入数据,对输入的模式数据和实例数据进行归类处理并存储到相应的Redis集群;步骤S2、根据规则连接变量关系表,判断本次推理能够激活的规则,结合相应的实例数据产生推理数据;步骤S3、删除本次推理产生的重复数据并存储,本次迭代推理结束。2.根据权利要求1所述的基于SparkStreaming的流式RDF数据并行推理算法,其特征在于,步骤Sl中,所述模式数据即模式三元组数据,所述实例数据即实例三元组数据。3.根据权利要求2所述的基于SparkStreaming的流式RDF数据并行推理算法,其特征在于,所述实例三元组数据存储到Redis集群中的方式为:根据Redis集群的特点,采用〈key,value〉的形式,以三元组中的主语S、谓语P、宾语0分别作为key,即分别以〈S,(P,0、〈P,(S,0和〈0,(S,P的形式存在三张表中。4.根据权利要求3所述的基于SparkStreaming的流式RDF数据并行推理算法,其特征在于,所述模式三元组数据存储到Redis集群中的方式为:将OWLHorst推理规则的每一条规则生成对应一张表Rulem_Table,存储在Redis中;以规则作为表名,根据每个规则连接变量个数的不同分为2类:无需连接变量的规则、有连接变量的规则;无需连接变量的规则:在Redis中的存储方式以P作为key,〈S,0作为value来存储;有连接变量的规则:1对于单个连接变量的规则,在Redis中的存储方式以P作为key,且只有一个key取值;2对于复杂的有多个连接变量的规则,在Redis中的存储方式以P作为key,S、0以〈S,〈0,0、〈0,〈S,1»的Map型式存入value,其中0表示key为主语,1表示key为宾语。5.根据权利要求4所述的基于SparkStreaming的流式RDF数据并行推理算法,其特征在于,步骤S2的具体实现过程如下:步骤S21、遍历规则连接变量关系表,判断能够激活的规则;步骤S22、对于能够激活的规则,如果不需要实例三元组数据就可直接推理得出结论,则跳至步骤S23;如果需要结合实例三元组数据,那么以每个规则需要的实例三元组数据的连接变量作为key,从事先存储好的实例表去找对应的实例三元组数据,如果能找到对应的实例三元组数据,则进入步骤S23,否则重复步骤S22的判定工作;如果所有数据都完成计算,则结束算法;步骤S23、执行当前规则推理,得到推理结论,将推理产生的三元组〈Si,Pj,0k输出到集合〈Si,Pj,0k中,并跳至步骤S22。6.根据权利要求5所述的基于SparkStreaming的流式RDF数据并行推理算法,其特征在于,步骤S3的具体实现过程如下:步骤S31、接收步骤S2推理生成的新三元组集合,如果接收到的数据为空,则结束算法;步骤S32、遍历接收到的新三元组集合,去除其中重复的三元组;步骤S33、将去重后的三元组集合以itr_data为集合名,保存于Redis集群中,用于下次推理的读取。

百度查询: 福州大学 基于Spark Streaming的流式RDF数据并行推理算法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。