CN104615703A - 一种结合Rete算法的RDF数据分布式并行推理方法 - Google Patents

一种结合Rete算法的RDF数据分布式并行推理方法 Download PDF

Info

Publication number
CN104615703A
CN104615703A CN201510047202.6A CN201510047202A CN104615703A CN 104615703 A CN104615703 A CN 104615703A CN 201510047202 A CN201510047202 A CN 201510047202A CN 104615703 A CN104615703 A CN 104615703A
Authority
CN
China
Prior art keywords
tlv triple
key
stage
reasoning
pattern
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
Application number
CN201510047202.6A
Other languages
English (en)
Other versions
CN104615703B (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.)
Fuzhou University
Original Assignee
Fuzhou 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 Fuzhou University filed Critical Fuzhou University
Priority to CN201510047202.6A priority Critical patent/CN104615703B/zh
Publication of CN104615703A publication Critical patent/CN104615703A/zh
Application granted granted Critical
Publication of CN104615703B publication Critical patent/CN104615703B/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/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24532Query optimisation of parallel queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques

Abstract

本发明涉及一种结合Rete算法的RDF数据分布式并行推理方法,在MapReduce算法框架下结合Rete算法并行推理。在结合Rete算法的时候,不是简单的将RDF数据进行分割,而是在Map阶段完成alpha网络的功能,在Reduce阶段完成beta网络的功能。本发明所提出的一种结合Rete算法的RDF数据分布式并行推理方法只需要启动一个MapReduce推理任务就可以完成所有RDFS/OWL规则的一次性推理,通过多次的推理任务迭代实现针对海量RDF数据的高效推理。

Description

一种结合Rete算法的RDF数据分布式并行推理方法
技术领域
本发明涉及语义网技术领域,特别是一种结合Rete算法的RDF数据分布式并行推理方法。
背景技术
语义万维网(Sematic Web)是万维网的扩展与延伸,当前万维网联盟(W3C)指定的本体标准主要包括RDF/RDFS和OWL。随着语义万维网(Sematic Web)的应用,产生了海量的语义信息。由于数据的复杂性和大规模性,如何通过语义信息并行推理高效地发现其中隐藏的信息是一个亟待解决的问题。目前集中式环境中已经无法满足大规模数据的需求;而分布式的环境能够实现大规模数据的推理。目前,在分布式环境下的推理已经有不少工作。如模糊pD*的推理、ALC逻辑的P2P网络推理、OWL2的EL++分布式推理以及分布式推理引擎WebPIE。这些推理的方法不够高效。这些推理的方案大部分结合了MapReduce计算框架,通过RDFS/OWL推理规则对数据进行推理。
随着语义网中数据的急速增长,如何高效地进行大数据的推理是近两年的研究热点,但还处于研究的初始阶段。目前比较成熟的分布式推理引擎为WebPIE,虽然满足大数据的并行推理,但是由于WebPIE针对每一条规则启用一个或者多个MapReduce任务进行推理,而MapReduce Job的启动相对耗时,因此随着RDFS/OWL推理规则的增加,推理的效率受到了限制。集中式中的Rete算法具有并行的高效性,目前还没有结合Rete算法的分布式并行推理方案。
实用在集中式环境下无法满足海量数据的需求,而分布式环境下的推理不够高效,推理的并行化。集中式环境下的Rete算法虽然能够高效地实现数据的推理,但是由于在alpha阶段和beta阶段执行任务时候需要大量的内存,导致它无法直接在集中式中处理大规模的数据推理。
发明内容
本发明的目的在于提供一种结合Rete算法的RDF数据分布式并行推理方法,以满足大规模数据的分布式并行推理的需求,同时保证Rete算法实现分布后推理数据的正确性。
为实现上述目的,本发明的技术方案是:一种结合Rete算法的RDF数据分布式并行推理方法,其特征在于,按照如下步骤实现:
S1:在MapReduce算法框架下结合Rete算法,在所述分布式并行推理方法的Map阶段完成Rete算法中alpha网络的建立,并根据输入的RDF数据和对应的RDFS/OWL规则,以键值形式输出满足对应RDFS/OWL规则前件的实例三元组;
S2:在所述分布式并行推理方法的Reduce阶段完成Rete算法中beta网络的功能,并根据步骤S1中Map阶段的输出结果,完成RDF数据对应的所有RDFS/OWL规则的并行推理。
进一步的,所述步骤S1还包括如下步骤:
S11:将输入的RDF数据中与对应的RDFS/OWL规则中所有前件的模式三元组作为所述Map阶段的输入,并将该模式三元组加载到内存中;
S12:将所述Map阶段输出的键(key)设定为规则名称,值(value)为满足对应RDFS/OWL规则前件的实例三元组;如果一个实例三元组数据满足的前件是多个规则的前件,则采用不同的键(key)冗余的存储该实例三元组数据;
S13:将所述Map阶段的输出的实例三元组作为所述Reduce阶段的输入数据。
进一步的,所述步骤S2还包括如下步骤:
S21:在所述Reduce阶段,SubReduce阶段个数和键(key)个数匹配,以保证分布式的并行性和推理的完整性,每一个键(key)对应一个SubReduce阶段,根据每个实例三元组对应的键(key),将实例三元组进行组合,获取相同键(key)的实例组合列表值,并将组合后的实例组合列表值作为每个键(key)对应的SubReduce阶段的输入;
S22:在每个SubReduce阶段中,根据该SubReduce阶段对应的键(key)将内存中的所述模式三元组与所述实例组合列表完成连接推理,并获取推理结果;
S23:将所述推理结果保存到一推理三元组列表中,当该推理三元组列表中的数量达到预设阈值N后启动I/O输出,一次性将所述推理结果输出,以避免频繁的I/O输出造成系统性能的下降;输出的推理结果以键(key)和值(value)为变量的形式进行保存,其中N为大于或等于1的正整数。
进一步的,所述步骤S22还包括:在加载模式三元组到内存过程中,将谓语相同的模式三元组存放到一个模式三元组列表中,并命名为P_list,P为该模式三元组的谓语;在每一个SubReduce阶段阶段,根据P_list中的每一个模式三元组,遍历每个三元组列表,判断是否存在与该模式三元组相同的,且用于连接推理的连接变量;若不存在相同的连接变量,则跳过该三元组;若存在相同的连接变量,则根据该键(key)对应的RDFS/OWL规则完成连接推理。
进一步的,所述三元组列表为模式三元组列表或实例组合列表;所述三元组为模式三元组或实例三元组。
进一步的,在执行连接推理过程中,优先连接符合条件的模式三元组,再连接实例三元组。
进一步的,所述连接变量为所述模式三元组中的主语、谓语或宾语。
相较于现有技术,本发明具有以下有益效果:本发明所提出的一种结合Rete算法的RDF数据分布式并行推理方法,能够通过启动一次MapReduce推理任务就完成RDFS/OWL所有规则的一次推理,即借助MapReduce计算框架高效地实现大规模数据的并行推理;和现有的推理方法相比,可以更加高效地进行推理,尤其是在数据量大、规则数量较多的情况下,效果更加明显,同时该方案的推理效率随着推理规则的增加变化较小。本发明弥补了现有的Rete算法在执行推理时占用内存过多、无法对大规模数据进行推理的局限性。由于数据的复杂性和大规模性,如何通过语义信息并行推理高效地发现其中隐藏的信息是一个亟待解决的问题,本发明在海量语义信息推理中意义深远,能够在复杂、大规模的数据中通过语义信息并行推理高效地发现其中的隐藏信息。
附图说明
图1为本发明一实施例中alpha网络和beta网络算法模型示意图。
图2为本发明一实施例中结合Rete算法的分布式并行推理总体框架图。
图3为本发明一实施例中结合Rete算法的一次分布式并行推理框架图。
具体实施方式
下面结合附图,对本发明的技术方案进行具体说明。
本发明提供一种结合Rete算法的RDF数据分布式并行推理方法,其特征在于,按照如下步骤实现:
S1:在MapReduce算法框架下结合Rete算法,在所述分布式并行推理方法的Map阶段完成Rete算法中alpha网络的建立,并根据输入的RDF数据和对应的RDFS/OWL规则,以键值形式输出满足对应RDFS/OWL规则前件的实例三元组,完成所述alpha网络的功能;
S2:在所述分布式并行推理方法的Reduce阶段完成Rete算法中beta网络的建立,并根据步骤S1中Map阶段的输出结果,完成RDF数据对应的所有RDFS/OWL规则的并行推理,完成所述beta网络的功能。
在本实施例中,Rete算法主要分为两个部分:alpha网络和beta网络,算法模型如图1所示;
其中,alpha网络:在工作存储区元素WME(working memory elements)中过滤数据,找出符合规则的每一个模式集合,生成满足该模式的集合。beta网络:有两种类型的节点Beta Memory和Join Node。前者主要存储Join完成后的集合。后者包含两个输入口,分别输入需要匹配的不同WME,由Join节点做合并工作传输给下一个节点。
进一步的,所述步骤S1还包括如下步骤:
S11:将输入的RDF数据中与RDFS/OWL规则中所有前件的模式三元组作为所述Map阶段的输入,并将该模式三元组加载到内存中;在本实施例中,该三元组的类型为(s, p, o)形式的三元组。数据集中的数据分为两种类型的三元组,模式三元组和实例三元组,模式三元组指的是三元组的主谓宾都能够在本体文件中找到(即在本体文件中有定义),如模式三元组:(s1, p1, o1)
主语S1:http://swat.cse.lehigh.edu/onto/univ-bench.owl#publicationAuthor
谓语P1:http://www.w3.org/2000/01/rdf-schema#domain
宾语O1:http://swat.cse.lehigh.edu/onto/univ-bench.owl#Publication
实例三元组指的是主语和宾语通常在本体文件中找不到,是具体的实例:例如实例三元组(s2, p2, o2):
主语S2:http://www.Department0.University0.edu/AssistantProfessor4/Publication5
谓语P2:http://swat.cse.lehigh.edu/onto/univ-bench.owl#publicationAuthor
宾语O2:http://www.Department0.University0.edu/GraduateStudent41
实例三元组为具体的实例,例如实例三元组的主语S2为Publication5; Publication5就是模式三元组中的Publication的具体实例
S12:将所述Map阶段输出的键(key)设定为规则名称,值(value)为满足对应RDFS/OWL规则前件的实例三元组;如果一个实例三元组数据满足的前件是多个规则的前件,则采用不同的键(key)冗余的存储该实例三元组数据,每个值(value)的输出包括满足对应RDFS/OWL规则前件中的实例三元组;在本实施例中,规则rule1:p rdfs:domain x & s p o =>s rdf:type x,如果输入的RDF三元组数据(s1,p1,o1)满足条件“p rdfs:domain x”,经过Map阶段后,将输出的这里的<key, value>为<”rule1”,”s1,p1,o1”>。
为了保证推理结果的正确性,在Map阶段需要冗余的存储实例三元组数据,即对于同一个输入的实例三元组可能会有多个键值对<key, value>的输出。假设实例三元组(s1,p1,o1)满足RDFS/OWL规则中的规则1(rule1)和规则2(rule2)中的某个推理条件,则Map阶段将输出两个键值对:<”rule1”,”s1,p1,o1”>和 <”rule2”,”s1,p1,o1”>。这两个键值对的值(value)是一样的,都是这个实例三元组;但这两个键值对的键(key)不一样。
下面结合一具体实施例进行描述。规则1(rule1: p rdfs:domain x & s p o =>s rdf:type x);规则2(rule2: v owl:someValuesFrom w, v owl:onProperty p, u p x, x rdf:type w => u rdf:type v); 规则3(rule1: v owl:hasValue w & v owl:onProperty p & u p w =>u rdf:type v);其中规则1、规则2和规则3的前件中都包括实例三元组(s,p,o), 即实例三元组数据满足的前件是多个规则的前件,即3个。假设Map阶段输入的实例三元组为(s1,p1,o1)和(s2,p2,o2),则这两个实例三元组都满足规则1、规则2和规则3的前件,此时就需要采用不同的键(key)冗余的存储该实例三元组数据。那么经过Map阶段后,输出的键值对<key,value>为<”rule1”,”s1,p1,o1”> <”rule2”,”s1,p1,o1”> <”rule3”,”s1,p1,o1”>和<”rule1”,”s2,p2,o2”>  <”rule2”,”s2,p2,o2”>  <”rule3”,”s2,p2,o2”>
S13:将所述Map阶段的输出的实例三元组作为所述Reduce阶段的输入数据。在本实施例中,Map阶段的输出结果为<key, value>形式的三元组,例如<”rule1”,”s1 p1 o1”> <”rule2”,”s2 p2 o2”>这里的三元组为实例三元组。
进一步的,所述步骤S2还包括如下步骤:
S21:在所述Reduce阶段,SubReduce阶段个数和对应的键(key)个数匹配,以保证分布式的并行性和推理的完整性,在本实施例中,SubReduce阶段指的是Reduce函数中每个键(key)对应的规则推理算法阶段;如规则1(rule1: p rdfs:domain x & s p o =>s rdf:type x)和规则2(rule2: v owl:someValuesFrom w, v owl:onProperty p, u p x, x rdf:type w => u rdf:type v,其中包括以规则“rule1”为键key的SubReduce阶段1阶段 和 以规则“rule2”为键key的SubReduce阶段2阶段。SubReduce阶段个数指的是每个键(key)对应的规则推理算法的个数,如果RDFS/OWL规则有2个,则SubReduce阶段个数为2;每一个键(key)对应一个SubReduce阶段,根据每个实例三元组中的键(key),将每个实例三元组输入与其键(key)对应的SubReduce阶段中进行处理,根据每个实例三元组中的键(key),在本实施例中,将实例三元组进行组合,获取相同键(key)对应的实例组合列表值(key,iterator values),假设Map阶段得到的输出为<”rule1”,”s1,p1,o1”><”rule1”,”s2,p2,o2”> <”rule1”,”s3,p2,o3”> <”rule2”,”s1,p1,o1”>,经过这个阶段就组合为<”rule1”,”s1,p1,o1” ”s2,p2,o2” ”s3,p2,o3”> 和<”rule2”,”s1,p1,o1”> ,并将组合后的实例组合列表值送入每个键(key)对应的SubReduce阶段中,即将组合后的实例组合列表值作为每个键(key)对应的SubReduce阶段的输入;
S22:在每个SubReduce阶段阶段中,根据该SubReduce阶段对应的键(key)将内存中的所述模式三元组与所述实例组合列表完成连接推理,并获取推理结果;进一步的,在加载模式三元组到内存过程中,将谓语相同的模式三元组存放到一个模式三元组列表中,并命名为P_list,,P为该模式三元组的谓语,如模式三元组” A someValuesFrom B” “C someValuesFrom D” “E domain F”,则将” A someValuesFrom B” “C someValuesFrom D”这两个模式三元组是放在同一个模式三元组列表someValuesFrom_list中;“E domain F”则放在模式三元组列表domain_list中。在每一个SubReduce阶段阶段,根据P_list中的每一个值,遍历每个三元组列表,判断是否存在与该值相同的,且用于连接推理的连接变量;若不存在相同的连接变量,则跳过该三元组;若存在相同的连接变量,则根据该该键(key)对应的RDFS/OWL规则完成连接推理;其中,所述三元组列表为模式三元组列表或实例组合列表,所述三元组为模式三元组或实例三元组,所述连接变量为所述模式三元组中的主语或者谓语或者宾语。此外,在执行连接推理过程中,由于符合条件的实例三元组数量庞大,因此在执行连接推理时,优先连接符合条件的模式三元组,再连接实例三元组。
下面结合又一实施例对其进行描述。规则1(rule1: p rdfs:domain x & s p o =>s rdf:type x)和规则2(rule2: v owl:someValuesFrom w, v owl:onProperty p, u p x, x rdf:type w => u rdf:type v)
此时P_list对应包括domain_list和someValuesFrom_list,在每一个SubReduce阶段阶段,其中包括以规则“rule1”为键key的SubReduce阶段1阶段和以规则“rule2”为键key的SubReduce阶段2阶段。
1:在SubReduce阶段1阶段中,根据domain_list中的每一个模式三元组,遍历每一个实例组合列表,判断是否存在与该值相同的,且用于连接推理的连接变量,如模式三元组” p rdfs:domain x”和实例三元组“s p o”中有相同的变量p,因而示例中的连接推理的连接变量为p。由于在SubReduce阶段1阶段中rule1并没有使用到someValuesFrom,因而在SubReduce阶段1阶段不需要遍历someValuesFrom_list。
2:在SubReduce阶段2阶段中,根据someValuesFrom_list中的每一个模式三元组,遍历每一个实例组合列表,判断是否存在与该值相同的,且用于连接推理的连接变量,如模式三元组“v owl:someValuesFrom w”和模式三元组“v owl:onProperty p”中有相同的变量v;模式三元组“v owl:someValuesFrom w”和实例三元组“x rdf:type w”中有相同的变量w;模式三元组“v owl:onProperty p”和实例三元组“u p x” 中有相同的变量p;实例三元组“u p x”和实例三元组“x rdf:type w”中有相同的变量x;此时用于连接推理的连接变量有v,w,p,x。且在执行连接推理过程中,优先连接符合条件的模式三元组,再连接实例三元组。由于模式三元组“v owl:someValuesFrom w”和模式三元组“v owl:onProperty p”中有相同的变量v,因而在SubReduce阶段2阶段优先选择的连接推理的变量为v。由于在SubReduce阶段2阶段中rule2并没有使用到domain,因而在SubReduce阶段2阶段不需要遍历domain_list。
S23:将所述推理结果保存到一推理三元组列表中,当该推理三元组列表中的数量达到预设阈值N后启动I/O输出,一次性将所述推理结果输出,以避免频繁的I/O输出造成系统性能的下降;输出的推理结果以键(key)和值(value)为变量的形式进行保存,即以<key,value>的形式进行存储,其中N为大于或等于1的正整数,在本实施例中,将N设置为Hadoop中block的大小。
通过配置信息将加载到内存中的所述模式三元组与所述Map阶段的输出的所述实例三元组进行结合,根据相同的键(key)中规则的所有的前件进行连接,完成了规则的推理。
下面具体结合该方法的整体框架说明本发明所提出的一种结合Rete算法的RDF数据分布式并行推理方法,如图2所示,本发明的总框架说明如下:
1:将RDF数据用Jena(Jena是java 的API,用来支持语义网的有关应用)解析成三元组形式存储到HDFS(Hadoop分布式文件系统)上。
2:根据分发明所提出的结合Rete算法的RDF数据分布式并行推理方法对三元组形式的RDF数据进行推理,此推理阶段包括Map阶段和Reduce阶段,且需要将模式三元组加载到内存中。根据本发明所提出的方法可以完成RDFS/OWL规则的一次推理,完成RDFS/OWL规则的一次推理后,会实时的删除当前推理产生的重复三元组数据,将推理所产生的新的三元组数据和原始的三元组数据都作为下一次推理阶段的Map的输入,直到不再产生新的三元组为止,RDFS/OWL规则推理阶段才结束并且得到最终的推理结果,这个根据RDFS/OWL规则的推理过程是反复迭代的一个过程。
下面结合又一具体的实施例对本发明所提出的一种结合Rete算法的RDF数据分布式并行推理方法进行解释。
假设规则集如下表1所示,根据规则集并依据本发明所提出的并行推理方法可得一次并行推理框架图如图3所示:
表1
由于所提出的分布式并行推理算法中:SubReduce阶段个数和RDFS/OWL规则数紧密相连,每一个RDFS/OWL规则对应一个SubReduce阶段。结合Rete算法的分布式并行推理方案需要根据RDFS/OWL规则的特点,对不同的SubReduce阶段进行设计。例如规则1(rule1: p rdfs:domain x & s p o =>s rdf:type x)和规则(rule2: v owl:someValuesFrom w, v owl:onProperty p, u p x, x rdf:type w => u rdf:type v)所对应的SubReduce阶段1和SubReduce阶段2的连接推理算法设计的伪代码如下所示:
input: instance triples
//loading schema triples into memory
map(key, value)
//key: rule name    value: triple
//check triple which meets antecedents of rules
emit(key, value);
reduce(key, iterator values)
//key: rule name
//values: triples to be matched with the schema
//get schema triples from memory
triplelist.clear();
out_tripleList.clear();
switch(key[0])
case”rule1”:// rule1:rdf:domain inheritance
for(Text val:values)
tripleList.add(triple);//add triples with the key”rule1”
for(domain in domainlist) {//each domain triple
for(triple in triplelist ) {//each triple
if(triple.predicate.equals(domain.subject))
       out_tripleList.add(triple);
}//end with for(triple in triplelist )
    }//end with for(domain in domainlist)
for(out_triple in tripleList)
  emit(null, triple);
case”rule2”:
//rule2 someValuesFrom&onProperty inheritance
for(Text val:values)
tripleList.add(triple); //add triples with the key”rule2”
for(someValue in someValueslist){ //each someValue  triple
  for(onProperty in onPropertyList) {//each onProperty triple
    if(someValues.subject equals(onProperty.subject)) {
       for(triple in triplelist ) {//each triple
if(triple.predicate.equals(onProperty.predicate)) {
 out_tripleList.add(triple);
}//end with if (triple.predicate.equals(…))
}//end with for(triple in triplelist )
}//end with if(someValues.subject equals(…))
}//end with for(onProperty in onPropertyList)
}//end with for(someValue in someValueslist)
for(out_triple in tripleList)
emit(null, triple);
以上是本发明的较佳实施例,凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。

Claims (7)

1.一种结合Rete算法的RDF数据分布式并行推理方法,其特征在于,按照如下步骤实现:
S1:在MapReduce算法框架下结合Rete算法,在所述分布式并行推理方法的Map阶段完成Rete算法中alpha网络的建立,并根据输入的RDF数据和对应的RDFS/OWL规则,以键值形式输出满足对应RDFS/OWL规则前件的实例三元组;
S2:在所述分布式并行推理方法的Reduce阶段完成Rete算法中beta网络的功能,并根据步骤S1中Map阶段的输出结果,完成RDF数据对应的所有RDFS/OWL规则的并行推理。
2.根据权利要求1所述的一种结合Rete算法的RDF数据分布式并行推理方法,其特征在于,所述步骤S1还包括如下步骤:
S11:将输入的RDF数据中与对应的RDFS/OWL规则中所有前件的模式三元组作为所述Map阶段的输入,并将该模式三元组加载到内存中;
S12:将所述Map阶段输出的键(key)设定为规则名称,值(value)为满足对应RDFS/OWL规则前件的实例三元组;如果一个实例三元组数据满足的前件是多个规则的前件,则采用不同的键(key)冗余的存储该实例三元组数据;
S13:将所述Map阶段的输出的实例三元组作为所述Reduce阶段的输入数据。
3.根据权利要求2所述的一种结合Rete算法的RDF数据分布式并行推理方法,其特征在于,所述步骤S2还包括如下步骤:
S21:在所述Reduce阶段,SubReduce阶段个数和键(key)个数匹配,以保证分布式的并行性和推理的完整性,每一个键(key)对应一个SubReduce阶段,根据每个实例三元组对应的键(key),将实例三元组进行组合,获取相同键(key)的实例组合列表值,并将组合后的实例组合列表值作为每个键(key)对应的SubReduce阶段的输入;
S22:在每个SubReduce阶段中,根据该SubReduce阶段对应的键(key)将内存中的所述模式三元组与所述实例组合列表完成连接推理,并获取推理结果;
S23:将所述推理结果保存到一推理三元组列表中,当该推理三元组列表中的数量达到预设阈值N后启动I/O输出,一次性将所述推理结果输出,以避免频繁的I/O输出造成系统性能的下降;输出的推理结果以键(key)和值(value)为变量的形式进行保存,其中N为大于或等于1的正整数。
4.根据权利要求3所述的一种结合Rete算法的RDF数据分布式并行推理方法,其特征在于,所述步骤S22还包括:在加载模式三元组到内存过程中,将谓语相同的模式三元组存放到一个模式三元组列表中,并命名为P_list,P为该模式三元组的谓语;在每一个SubReduce阶段阶段,根据P_list中的每一个模式三元组,遍历每个三元组列表,判断是否存在与该模式三元组相同的、且用于连接推理的连接变量;若不存在相同的连接变量,则跳过该三元组;若存在相同的连接变量,则根据该键(key)对应的RDFS/OWL规则完成连接推理。
5.根据权利要求4所述的一种结合Rete算法的RDF数据分布式并行推理方法,其特征在于:所述三元组列表为模式三元组列表或实例组合列表,所述三元组为模式三元组或实例三元组。
6.根据权利要求4所述的一种结合Rete算法的RDF数据分布式并行推理方法,其特征在于:在执行连接推理过程中,优先连接符合条件的模式三元组,再连接实例三元组。
7.根据权利要求4所述的一种结合Rete算法的RDF数据分布式并行推理方法,其特征在于,所述连接变量为所述模式三元组中的主语、谓语或宾语。
CN201510047202.6A 2015-01-30 2015-01-30 一种结合Rete算法的RDF数据分布式并行推理方法 Active CN104615703B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510047202.6A CN104615703B (zh) 2015-01-30 2015-01-30 一种结合Rete算法的RDF数据分布式并行推理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510047202.6A CN104615703B (zh) 2015-01-30 2015-01-30 一种结合Rete算法的RDF数据分布式并行推理方法

Publications (2)

Publication Number Publication Date
CN104615703A true CN104615703A (zh) 2015-05-13
CN104615703B CN104615703B (zh) 2017-12-08

Family

ID=53150145

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510047202.6A Active CN104615703B (zh) 2015-01-30 2015-01-30 一种结合Rete算法的RDF数据分布式并行推理方法

Country Status (1)

Country Link
CN (1) CN104615703B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105912721A (zh) * 2016-05-05 2016-08-31 福州大学 Rdf数据分布式语义并行推理方法
CN105930419A (zh) * 2016-04-19 2016-09-07 福州大学 Rdf数据分布式并行语义编码方法
CN106021457A (zh) * 2016-05-17 2016-10-12 福州大学 基于关键词的rdf分布式语义搜索方法
CN106445913A (zh) * 2016-09-06 2017-02-22 中南大学 基于MapReduce的语义推理方法及系统
CN106599091A (zh) * 2016-11-24 2017-04-26 上海交通大学 基于键值存储的rdf图结构存储和索引方法
CN108199900A (zh) * 2018-01-23 2018-06-22 重庆大学 用于智能环境的分布式推理节点优化分配方法
CN110175676A (zh) * 2019-04-28 2019-08-27 中国科学院软件研究所 一种面向内存受限环境的高性能规则匹配方法
CN111625584A (zh) * 2020-05-22 2020-09-04 中国航天科工集团第二研究院 一种基于事件抽取与规则引擎的盗窃事件赃物归属方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110246407A1 (en) * 2008-12-15 2011-10-06 Korea Instititute of Science & Technology Informat System and method for hybrid rete reasoning based on in-memory and dbms
CN103116625A (zh) * 2013-01-31 2013-05-22 重庆大学 一种基于Hadoop的海量RDF数据分布式查询处理方法
CN104298598A (zh) * 2014-10-01 2015-01-21 东北大学 分布式环境下rdfs本体的调试方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110246407A1 (en) * 2008-12-15 2011-10-06 Korea Instititute of Science & Technology Informat System and method for hybrid rete reasoning based on in-memory and dbms
CN103116625A (zh) * 2013-01-31 2013-05-22 重庆大学 一种基于Hadoop的海量RDF数据分布式查询处理方法
CN104298598A (zh) * 2014-10-01 2015-01-21 东北大学 分布式环境下rdfs本体的调试方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
KOMAZEC等: "《Sparkwave: continuous schema-enhanced pattern matching over RDF data streams》", 《ACM INTERNATIONAL CONFERENCE ON DISTRIBUTED EVENT-BASED SYSTEMS ACM》 *
SUN JIANLING等: "《Scalable RDF store based on HBase and MapReduce》", 《INTERNATIONAL CONFERENCE ON ADVANCED COMPUTER THEORY AND ENGINEERING IEEE》 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105930419A (zh) * 2016-04-19 2016-09-07 福州大学 Rdf数据分布式并行语义编码方法
CN105930419B (zh) * 2016-04-19 2019-08-09 福州大学 Rdf数据分布式并行语义编码方法
CN105912721B (zh) * 2016-05-05 2019-06-07 福州大学 Rdf数据分布式语义并行推理方法
CN105912721A (zh) * 2016-05-05 2016-08-31 福州大学 Rdf数据分布式语义并行推理方法
CN106021457B (zh) * 2016-05-17 2019-10-15 福州大学 基于关键词的rdf分布式语义搜索方法
CN106021457A (zh) * 2016-05-17 2016-10-12 福州大学 基于关键词的rdf分布式语义搜索方法
CN106445913A (zh) * 2016-09-06 2017-02-22 中南大学 基于MapReduce的语义推理方法及系统
CN106599091A (zh) * 2016-11-24 2017-04-26 上海交通大学 基于键值存储的rdf图结构存储和索引方法
CN106599091B (zh) * 2016-11-24 2020-07-14 上海交通大学 基于键值存储的rdf图结构存储和索引方法
CN108199900A (zh) * 2018-01-23 2018-06-22 重庆大学 用于智能环境的分布式推理节点优化分配方法
CN108199900B (zh) * 2018-01-23 2019-11-05 重庆大学 用于智能环境的分布式推理节点优化分配方法
CN110175676A (zh) * 2019-04-28 2019-08-27 中国科学院软件研究所 一种面向内存受限环境的高性能规则匹配方法
CN111625584A (zh) * 2020-05-22 2020-09-04 中国航天科工集团第二研究院 一种基于事件抽取与规则引擎的盗窃事件赃物归属方法

Also Published As

Publication number Publication date
CN104615703B (zh) 2017-12-08

Similar Documents

Publication Publication Date Title
CN104615703A (zh) 一种结合Rete算法的RDF数据分布式并行推理方法
Tanaka et al. An exact algorithm for the single-machine total weighted tardiness problem with sequence-dependent setup times
JP5142174B1 (ja) 規則推論器及びこれを含むワイルドパターン規則の動的な具体化方法
US8429150B2 (en) Distributed query compilation and evaluation system and method
Wang et al. Distributed Pregel-based provenance-aware regular path query processing on RDF knowledge graphs
CN104298598B (zh) 分布式环境下rdfs本体的调试方法
Hayashi et al. Onion-like networks are both robust and resilient
Wang et al. BENU: Distributed subgraph enumeration with backtracking-based framework
CN104915717A (zh) 数据处理方法、知识库推理方法及相关装置
CN105912721B (zh) Rdf数据分布式语义并行推理方法
CN102087665B (zh) 支持持续查询的自动服务组合方法与系统
CN107016110B (zh) 结合Spark平台的OWLHorst规则分布式并行推理算法
Zhao et al. Cloud-based dynamic distributed optimisation of integrated process planning and scheduling in smart factories
Mouhoub et al. Managing dynamic CSPs with preferences
CN106940714A (zh) 一种数据处理方法、装置及电子设备
CN104301212A (zh) 一种功能链组合方法
CN114003775A (zh) 图数据处理、查询方法及其系统
CN101393563A (zh) 基于形式概念分析的Web数据处理方法
CN104731800A (zh) 数据分析装置
Çalışkan A specialized network simplex algorithm for the constrained maximum flow problem
CN116582407A (zh) 一种基于深度强化学习的容器化微服务编排系统及方法
CN106330559B (zh) 基于MapReduce的复杂网络拓扑特征参数计算方法和系统
Deshmukh et al. Parallel processing of frequent itemset based on MapReduce programming model
CN105488056B (zh) 一种对象处理方法与设备
Manne et al. A new self-stabilizing maximal matching algorithm

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