[go: up one dir, main page]

CN104915717A - 数据处理方法、知识库推理方法及相关装置 - Google Patents

数据处理方法、知识库推理方法及相关装置 Download PDF

Info

Publication number
CN104915717A
CN104915717A CN201510295748.3A CN201510295748A CN104915717A CN 104915717 A CN104915717 A CN 104915717A CN 201510295748 A CN201510295748 A CN 201510295748A CN 104915717 A CN104915717 A CN 104915717A
Authority
CN
China
Prior art keywords
data
knowledge base
key
rule
inference
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
CN201510295748.3A
Other languages
English (en)
Other versions
CN104915717B (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201510295748.3A priority Critical patent/CN104915717B/zh
Publication of CN104915717A publication Critical patent/CN104915717A/zh
Application granted granted Critical
Publication of CN104915717B publication Critical patent/CN104915717B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据处理方法、知识库推理方法及相关装置,其中,所述数据处理方法包括:采用以下方式得到用于确定在知识库推理过程中各规则的调度顺序的规则依赖关系:从所述知识库中选取数据构成第一数据集;根据所述知识库的规则对所述第一数据集进行推理;根据各规则的推理结果及对应的输入数据确定所述规则依赖关系。采用本发明,能够提高知识库推理技术的适用场景和灵活性、提高规则执行的效率以及整体的推理性能。

Description

数据处理方法、知识库推理方法及相关装置
技术领域
本发明涉及数据处理领域,更为具体而言,涉及一种应用于知识库推理的数据处理方法、知识库推理方法及相关装置。
背景技术
知识库中的知识分为两类:本体(ontology)和事实(fact)。采用三元组表示为(主体(subject),谓词(predicate),客体(object)),简写为(s,p,o)。其中事实指的是对现实世界或虚拟世界中的一个基本的描述,如“姚明的妻子是叶莉”可以用一个三元组表示为(姚明,妻子,叶莉)。而本体是对事实的抽象,包括概念、属性、概念之间的关系、属性之间的关系、以及对概念和属性的约束。如定义概念“人”、“运动员”,定义属性“妻子”、“丈夫”,定义概念之间的关系(运动员,子类(subClassOf),人),定义属性之间的关系(妻子,互逆(inverseOf),丈夫)。
知识库推理是指基于知识库中已有的知识和知识描述语言的语义或规则通过程序自动生成知识库中没有明确表述的新事实。以图1所示,用阴影椭圆表示概念,用透明椭圆表示实例,用箭头表示属性,则根据推理规则“(?a,实例,?x),(?x,子类,?y)→(?a,实例,?y)”和“(?a,?p,?b),(?p,互逆,?q)→(?b,?q,?a)”推理出新事实如新增箭头所示。
现有的知识库推理方法一般基于分布式编程框架Hadoop。Hadoop采用MapReduce编程模型,该模型的处理流程主要包括两个阶段,首先,在Map(映射)阶段数据被分割到不同的Map节点上,并在这些节点上运行Hadoop用户实现的Map函数并输出key-value对,然后将Map函数的输出结果根据key排序、合并,并且通过局域网将key相同的所有key-value传输到同一个计算节点。在Reduce(归约)阶段,这些收到数据的节点执行Hadoop用户实现的Reduce函数,并输出结果到硬盘。一种具体的执行流程如图2所示。
现有的基于Hadoop的知识库推理技术,例如,面向表达能力有限的RDFS和OWL规则集的推理引擎,其所有规则都是硬编码到推理引擎中。这样的知识库推理技术无法根据需要实现推理语义的扩展,并且在规则的调度方面也是固定的,无法根据规则/规则集的变化而优化规则的调度顺序。因此,现有的知识库推理技术的适用范围小、灵活性差且推理效率低。
此外,现有的知识库推理技术容易出现内存不足、硬盘开销大等问题,这些问题同样会导致推理效率降低。
发明内容
为了解决现有的知识库推理技术所存在的缺陷,本发明实施例提供一种数据处理方法、知识库推理方法及相关装置,能够提高知识库推理技术的适用场景和灵活性、提高规则执行的效率以及整体的推理性能。
第一方面,本发明实施例提供了一种应用于知识库推理的数据处理方法,包括:
采用以下方式得到用于确定在知识库推理过程中各规则的调度顺序的规则依赖关系:
从所述知识库中选取数据构成第一数据集;
根据所述知识库的规则对所述第一数据集进行推理;
根据各规则的推理结果及对应的输入数据确定所述规则依赖关系。
可选地,在本发明实施例的一种实现方式中,所述根据各规则的推理结果及对应的输入数据确定所述规则依赖关系,包括:将各规则的推理结果与其它规则的条件进行匹配判断;如果第一规则的推理结果与第二规则的条件匹配,则在构建的用于表示所述规则依赖关系的有向无环图中建立从所述第一规则指向所述第二规则的边;其中,所述第一规则和所述第二规则用于表示所述知识库的规则中的任一规则。
进一步地,所述方法还包括:根据拓扑排序算法对所述有向无环图进行拓扑排序,确定在知识库推理过程中各规则的调度顺序。
可选地,在本发明实施例的另一种实现方式中,所述方法还包括:根据所述规则依赖关系确定在知识库推理过程中各规则的调度顺序。
第二方面,本发明实施例提供了一种知识库推理方法,包括:
采用根据本发明实施例第一方面的方法得到用于确定在知识库推理过程中各规则的调度顺序的规则依赖关系;
根据所述规则依赖关系确定在知识库推理过程中各规则的调度顺序;
根据确定的各规则的调度顺序对所述知识库进行知识库推理。
可选地,在本实施例的一种实现方式中,所述方法还包括:在知识库推理过程中进行去重处理,包括:在每个执行推理的MapReduce作业结束后进行所述去重处理,或,在每一轮规则迭代之后进行所述去重处理,或,在确定不产生新的推理结果之后进行所述去重处理。
第三方面,本发明实施例提供了一种应用于知识库推理的数据处理装置,包括:
关系模块,用于得到用以确定在知识库推理过程中各规则的调度顺序的规则依赖关系;
所述关系模块包括:
采样子模块,用于从所述知识库中选取数据构成第一数据集;
推理子模块,用于根据所述知识库的规则对所述第一数据集进行推理;
确定子模块,用于根据各规则的推理结果及对应的输入数据确定所述规则依赖关系。
可选地,在本实施例的一种实现方式中,所述确定子模块具体用于执行以下处理:将各规则的推理结果与其它规则的条件进行匹配判断;如果第一规则的推理结果与第二规则的条件匹配,则在构建的用于表示所述规则依赖关系的有向无环图中建立从所述第一规则指向所述第二规则的边;其中,所述第一规则和所述第二规则用于表示所述知识库的规则中的任一规则。
进一步可选地,所述装置还包括第一顺序模块,用于根据拓扑排序算法对所述有向无环图进行拓扑排序,确定在知识库推理过程中各规则的调度顺序。
可选地,在本实施例的另一种实现方式中,所述装置还包括第二顺序模块,用于根据所述规则依赖关系确定在知识库推理过程中各规则的调度顺序。
第四方面,本发明实施例提供一种推理装置,包括:
如权利要求7或8所述的数据处理装置;
顺序模块,用于根据所述规则依赖关系确定在知识库推理过程中各规则的调度顺序;
根据本发明实施例第三方面的数据处理装置;
顺序模块,用于根据所述规则依赖关系确定在知识库推理过程中各规则的调度顺序;
推理模块,用于根据确定的各规则的调度顺序对所述知识库进行知识库推理。
可选地,在本实施例的一种实现方式中,所述装置还包括:去重模块,用于在所述推理模块进行知识库推理的过程中进行去重处理,包括:在每个执行推理的MapReduce作业结束后进行所述去重处理,或,在每一轮规则迭代之后进行所述去重处理,或,在确定不产生新的推理结果之后进行所述去重处理。
第五方面,本发明实施例提供一种应用于知识库推理的数据处理方法,包括:
采用以下方式存储所述知识库中的数据:
根据预设的分类策略将所述知识库中的数据分类;
根据各类数据的数据量确定第一数据和第二数据,其中,所述第一数据用于作为MapReduce任务的输入,所述第二数据用于在所述MapReduce任务的归约Reduce阶段参与知识库推理,所述MapReduce任务用于根据所述第一数据和第二数据进行数据库推理;
将所述第一数据存储至硬盘,将所述第二数据存储至内存。
可选地,在本实施例的一种实现方式中,所述根据预设的分类策略将所述知识库中的数据分类,包括:根据所述知识库中各数据的谓词类型将所述知识库中的数据分类存放于相应的输入文件中。
可选地,在本实施例的另一种实现方式中,根据各类数据的数据量确定第一数据和第二数据,包括:根据各类数据的数据量进行判断,将各类数据中数据量最大的那类数据作为所述第一数据,其余的数据作为所述第二数据。
可选地,在本实施例的再一种实现方式中,所述MapReduce任务用于根据所述第一数据和第二数据进行数据库推理,包括:在所述MapReduce任务的映射Map阶段,输入所述第一数据并生成分类表示所述第一数据的key-value对;在所述MapReduce任务的归约Reduce阶段,根据输入到各Reduce节点的key-value对和所述第二数据进行知识库推理;其中,分类表示所述第一数据的key-value对包括:以所述第一数据中的数据的客体、谓词或主体为key,以所述第一数据中的数据为value的key-value对。
可选地,在本实施例的又一种实现方式中,将所述第二数据存储至内存包括:将所述第二数据读入至执行所述MapReduce任务的各Reduce节点的内存中,并生成分类表示所述第二数据的key-vakue对;其中,分类表示所述第二数据的key-value对包括:以所述第二数据中的数据的客体、谓词或主体为key,以所述第二数据中的数据为value的key-value对。
第六方面,本发明实施例提供一种知识库推理方法,包括:
从硬盘读取第一数据作为MapReduce任务的输入并执行所述MapReduce任务;
在所述MapReduce任务的映射Map阶段,生成分类表示所述第一数据的key-value对;
在所述MapReduce任务的归约Reduce阶段,根据输入到各Reduce节点的key-value对和内存中的第二数据进行知识库推理;
其中,所述第一数据和第二数据是采用根据本发明实施例第五方面的方法处理知识库中的数据后得到的第一数据和第二数据。
可选地,在本实施例的一种实现方式中,生成分类表示所述第一数据的key-value对,包括:生成以所述第一数据中的数据的客体、谓词或主体为key,以所述第一数据中的数据为value的key-value对。
可选地,在本实施例的另一种实现方式中,所述根据输入到各Reduce节点的key-value对和内存中的第二数据进行知识库推理,包括:在各Reduce节点,根据输入到该Reduce节点的key-value对的key和在该Reduce节点的内存中的分类表示所述第二数据的key-value对的key进行匹配判断,如果匹配成功,则进行连接处理得到推理结果。其中,所述输入到该Reduce节点的key-value对包括:根据key对分类表示所述第一数据的key-value对合并后得到的key-value对,
分类表示所述第二数据的key-value对包括:以所述第二数据中的数据的客体、谓词或主体为key,以所述第二数据中的数据为value的key-value对。
可选地,在本实施例的另一种实现方式中,所述方法还包括:在进行知识库推理的过程中进行去重处理,包括:在每个推理任务结束后进行所述去重处理,或,在每一轮规则迭代之后进行所述去重处理,或,在确定不产生新的推理结果之后进行所述去重处理。
第七方面,本发明实施例提供一种应用于知识库推理的数据处理装置,包括:
存储处理模块,用于将所述知识库中的数据存储于相应位置;
所述存储处理模块包括:
分类子模块,用于根据预设的分类策略将所述知识库中的数据分类,
确定子模块,用于根据各类数据的数据量确定第一数据和第二数据,其中,所述第一数据用于作为MapReduce任务的输入,所述第二数据用于在所述MapReduce任务的归约Reduce阶段参与知识库推理,所述MapReduce任务用于根据所述第一数据和第二数据进行数据库推理;
第一存储子模块,用于将所述第一数据存储至硬盘;
第二存储子模块,用于将所述第二数据存储至内存。
可选地,在本实施例的一种实现方式中,所述分类子模块具体用于,根据所述知识库中各数据的谓词类型将所述知识库中的数据分类存放于相应的输入文件中。或者,所述确定子模块具体用于,根据各类数据的数据量进行判断,将各类数据中数据量最大的那类数据作为所述第一数据,其余的数据作为所述第二数据。
可选地,在本实施例的另一种实现方式中,所述MapReduce任务用于根据所述第一数据和第二数据进行数据库推理,包括:在所述MapReduce任务的映射Map阶段,输入所述第一数据并生成分类表示所述第一数据的key-value对;在所述MapReduce任务的归约Reduce阶段,根据输入到各Reduce节点的key-value对和所述第二数据进行知识库推理;其中,分类表示所述第一数据的key-value对包括:以所述第一数据中的数据的客体、谓词或主体为key,以所述第一数据中的数据为value的key-value对。
可选地,在本实施例的再一种实现方式中,所述第二存储子模块具体用于,将所述第二数据读入至执行所述MapReduce任务的各Reduce节点的内存,并生成分类表示所述第二数据的key-vakue对;其中,分类表示所述第二数据的key-value对包括:以所述第二数据中的数据的客体、谓词或主体为key,以所述第二数据中的数据为value的key-value对。
第八方面,本发明实施例提供一种知识库推理装置,包括:
读取模块,用于从硬盘读取第一数据;
执行模块,用于通过执行MapReduce任务的方式进行知识库推理,包括:
第一执行子模块,用于在所述MaReduce任务的映射Map阶段,以所述第一数据作为输入并生成分类表示所述第一数据的key-value对,
第二执行子模块,用于在所述MapReduce任务的归约Reduce阶段,根据输入到各Reduce节点的key-value对和内存中的第二数据进行知识库推理;其中,
所述第一数据和所述第二数据是由根据本发明实施例第七方面的装置处理知识库中的数据后得到的第一数据和第二数据。
可选地,在本实施例的一种实现方式中,所述第一执行子模块具体用于,生成以所述第一数据中的数据的客体、谓词或主体为key,以所述第一数据中的数据为value的key-value对;和/或,所述第二执行子模块具体用于,在各Reduce节点,根据输入到该Reduce节点的key-value对的key和在该Reduce节点的内存中的分类表示所述第二数据的key-value对的key进行匹配判断,如果匹配成功,则进行连接处理得到推理结果;其中,所述输入到该Reduce节点的key-value对包括:根据key对分类表示所述第一数据的key-value对合并后得到的key-value对,分类表示所述第二数据的key-value对包括:以所述第二数据中的数据的客体、谓词或主体为key,以所述第二数据中的数据为value的key-value对。。
可选地,在本实施例的另一种实现方式中,所述装置还包括:去重模块,用于在所述执行模块进行知识库推理的过程中进行去重处理,包括:在每个推理任务结束后进行所述去重处理,或,在每一轮规则迭代之后进行所述去重处理,或,在确定不产生新的推理结果之后进行所述去重处理。
第九方面,本发明实施例还提供一种知识库推理装置,其包括根据本发明实施例第七方面的数据处理装置。
第十方面,本发明实施例提供一种知识库推理方法,其同时采用根据本发明实施例第一方面和第三方面的数据处理方法。或者,其同时采用根据本发明实施例第二方面和第四方面的知识库推理方法。
第十一方面,本发明实施例提供一种知识库推理装置,其同时包含根据本发明实施例第五方面和第七方面的数据处理装置,或者,其同时包含根据本发明实施例第六方面和第八方面的知识库推理装置的所有模块。
采用本发明的各种实施例具有以下有益效果:
通过确定规则依赖关系,使得知识库推理技术不再局限于固定的、只能以硬编码方式进行推理的规则,而是可以灵活地扩展、变动、定义规则/规则集,增大了知识库推理技术的适用范围、提高了知识库推理技术的灵活性;
通过根据规则的调度顺序进行推理,避免了对规则进行不必要的重复调用,提高了规则执行的效率以及推理性能;
通过将数据量小的数据预先缓存至Reduce计算节点,能够有效避免内存溢出的问题,同时,还能减少对于硬盘的读写操作,提高推理性能。
附图说明
图1是一种知识库推理过程的推理前后的对比示意图;
图2是一种MapReduce任务的执行流程示意图;
图3A是根据本发明实施例的一种应用于知识库推理的数据处理方法的流程示意图;
图3B是RDFS规则集在LUBM数据上的规则依赖图;
图4是根据本发明实施例的一种知识库推理方法的流程示意图;
图5是根据本发明实施例的一种数据处理装置的方块示意图;
图6是根据本发明实施例的一种知识库推理装置的方块示意图;
图7是根据本发明实施例的一种应用于知识库推理的数据处理方法;
图8是根据本发明实施例的一种知识库推理方法的流程示意图;
图9是根据本发明实施例的一种应用于知识库推理的数据处理装置的方块示意图;
图10是根据本发明实施例的一种知识库推理装置的方块示意图;
图11是根据本发明实施例的一种知识库推理装置的方块示意图。
具体实施方式
以下结合附图和具体实施方式对本发明的各个方面进行详细阐述。其中,众所周知的模块、单元及其相互之间的连接、链接、通信或操作没有示出或未作详细说明。并且,所描述的特征、架构或功能可在一个或一个以上实施方式中以任何方式组合。本领域技术人员应当理解,下述的各种实施方式只用于举例说明,而非用于限制本发明的保护范围。还可以容易理解,本文所述和附图所示的各实施方式中的模块或单元或步骤可以按各种不同配置进行组合和设计。
图3A是根据本发明实施例的一种应用于知识库推理的数据处理方法的流程示意图,该方法可用于得到用以确定在知识库推理过程中各规则的调度顺序的规则依赖关系。参照图3A,所述方法包括:
300:从知识库中选取数据构成第一数据集。
可选地,在本实施例的一种实现方式中,通过对知识库进行随机采样得到第一数据集,例如,随机采样知识库中的10%的数据。
302:根据知识库的规则对第一数据集进行推理。换言之,在第一数据集上执行知识库的规则。
需要说明的是,在本发明各实施例中提及的知识库的规则,包括但不限于基于RDFS、OWL2DL和OWL Full等现有的资源描述语言的规则集,还可以包括用户自定义的规则。示例性地,一种用户自定义的规则如下:
规则:条件1,…,条件n→结论1,…,结论m
条件:(s,p,o)∈(R∪V)×(R∪V)×(R∪V∪L)
结论:(s,p,o)∈(R∪V)×(R∪V)×(R∪V∪L)
其中,R表示概念、属性或实例的标识符,V表示变量标识符,L表示字符串值或数值。
304:根据各规则的推理结果及对应的输入数据确定规则依赖关系。
需要说明的是,在本实施例中,一个规则(假设为规则A)对另一个规则(假设为规则B)存在依赖是指:规则B的推理结果会触发规则A的执行,从而影响规则的调度。换言之,在本实施例中,通过确定规则B的推理结果是否能触发规则A即可确定规则A是否对规则B存在依赖性。
因此,根据本实施例中提及的规则依赖关系能够确定知识库的各个规则之间是否的依赖性。
本发明采用图3A所示实施例所提供的数据处理方法,通过确定规则依赖关系,使得知识库推理技术不再局限于固定的、只能以硬编码方式进行推理的规则,而是可以灵活地扩展、变动、定义规则/规则集,增大了知识库推理技术的适用范围、提高了知识库推理技术的灵活性。
可选地,在本实施例的一种实现方式中,如图3A中的虚线框所示,所述方法还包括:
306:根据规则依赖关系确定在知识库推理过程中各规则的调度顺序。
规则的调度顺序对推理的性能影响非常大。例如,规则“rdfs9:?srdf:type?x;?x rdfs:subClassOf?y=>?s rdf:type?y”对规则“rdfs11:?xrdfs:subClassOf?y;?y rdfs:subClassOf?z=>?x rdfs:subClassOf?z”存在依赖性,如果先执行规则rdfs9,则调度的流程是“rdfs9→rdfs11→rdfs9”。如果先执行规则rdfs11,则调度的流程是“rdfs11→rdfs9”。显然,两种不同的规则调度顺序会达到不同的推理性能。
采用本实现方式所提供的方法,无论是固定的规则集还是变化的规则集,均能够根据规则依赖关系确定规则的调度顺序,从而避免了对规则进行不必要的重复调用,提高了规则执行的效率以及推理性能(例如,提高应用本发明实施例或实现方式的推理引擎的推理性能)。
可选地,在本实施例的一种实现方式中,采用以下方式实现处理304:
将各规则的推理结果与其它规则的条件进行匹配判断;如果第一规则的推理结果与第二规则的条件匹配,例如,第一规则的推理结果包含在第二规则的条件中,则在构建的用于表示规则依赖关系的有向无环图中建立从第一规则指向所述第二规则的边。其中,第一规则和第二规则用于表示知识库的规则中的任一规则。
需要说明的是,第一规则的推理结果与第二规则的条件匹配是指第一规则的推理结果能作为第二规则的输入数据,此时,第二规则对第一规则具有依赖性。
采用本实现方式提供的方法能够确定各规则之间的依赖性,由各规则之间的依赖性构成规则依赖关系,并以有向无环图的形式体现规则依赖关系。示例性地,如图3B所示是RDFS规则集在LUBM(用于测试推理引擎性能的测试基准数据集)数据上的规则依赖图。
进一步可选地,在本实现方式中,可以采用以下方式实现处理306:根据拓扑排序算法对有向无环图进行拓扑排序,确定在知识库推理过程中各规则的调度顺序。其中,拓扑排序的结果既可作为各个规则的调度顺序,拓扑排序算法可以是现有的算法,本发明对此不做限制和详细说明。
图4是根据本发明实施例的一种知识库推理方法的流程示意图,参照图4,所述方法包括:
40:根据知识库的规则和知识库中的部分数据确定规则依赖关系。
可选地,在本实施例的一种实现方式中,可以采用图3A所示实施例或其实现方式来实现处理40,本实施例对此不进行赘述。
42:根据规则依赖关系确定在知识库推理过程中各规则的调度顺序。
可选地,在本实施例的一种实现方式中,可以通过现有的拓扑排序算法对用于表示规则依赖关系的有向无环图进行拓扑排序,得到各规则的调度顺序。
44:根据确定的各规则的调度顺序对所述知识库进行知识库推理。
在本实施例中,并不限制具体的推理过程,只要根据采用本发明实施例提供的方法确定的各规则的调度顺序进行推理,即落在本发明的保护范围内。
可选地,在本实施例的一种实现方式中,在处理44中,在按拓扑排序结果(即,各规则的调度顺序)进行知识库推理的过程中,如果一个规则所依赖的所有规则都没有新的推理结果产生,则将该规则从调度队列移除。通过按照拓扑排序结果循环执行各规则,直到没有规则产生新的事实数据,从而完成知识库推理。
采用本实施例提供的知识库推理方法,一方面,不再局限于固定的、采用硬编码方式进行推理的规则,而是可以灵活地扩展、变动、定义规则/规则集,提高了知识库推理技术的适用场景和灵活性;另一方面,通过根据各规则的调度顺序进行推理,避免了对规则进行不必要的重复调用,提高了规则执行的效率以及整体的推理性能。
可选地,在本实施例的一种实现方式中,如图4中的虚线框所示,所述方法还包括:
46:在知识库推理过程中进行去重处理。
需要说明的是,知识库推理的结果不可避免地会和知识库中已有的数据重复,而重复的推理结果一方面会增加知识库的存储空间,另一方面会影响推理性能。例如,在执行推理时需要从硬盘读入数据,并将推理结果写入硬盘,因此,大量重复的推理结果会大大延长推理时间。同时,如果重复的推理结果触发规则的执行,会导致更多重复数据的产生,进而导致推理性能下降并进入恶性循环。
因此,本发明实施例通过在知识库推理过程中进行去重处理,能够有效节省存储空间、提高推理性能。
可选地,在本实施例的一种实现方式中,当基于Hadoop进行知识库推理时,可以采用以下方式进行所述去重处理:在Map阶段输出一个以三元组为key,以null为value的key-value对;在Reduce阶段把key输出到文件。
在知识库推理过程中,过多的去重操作也会带来性能的下降。因此,本发明实施例的一种实现方式提供以下去重策略:在每个执行推理的MapReduce作业结束后做去重,适用于推理任务产生大量重复结果并会触发其他规则的情况;在每一轮规则迭代之后做去重,适用于推理结果量大但不会触发其它规则的情况;在确定不产生新的推理结果之后(即,得到所有推理结果之后)做去重,适用于推理结果量少且不会触发其它规则的情况。
本领域技术人员应当理解,一个MapReduce作业完成一条规则中两个条件的连接,当规则含有多个条件时,一条规则的执行需要执行多轮MapReduce作业。
图5是根据本发明实施例的一种数据处理装置的方块示意图,数据处理装置5应用于知识库推理,下面参照图5对数据处理装置5进行详细说明。
数据处理装置5包括关系模块50,其用于得到用以确定在知识库推理过程中各规则的调度顺序的规则依赖关系,为了实现该目的,关系模块50包括采样子模块501、推理子模块502和确定子模块503。
采样子模块501,用于从知识库中选取数据构成第一数据集。
推理子模块502,用于根据知识库的规则对第一数据集进行推理。
确定子模块503,用于根据各规则的推理结果及对应的输入数据确定规则依赖关系。
采用本实施例提供的数据处理装置5,通过确定规则依赖关系,使得知识库推理技术不再局限于固定的、只能以硬编码方式进行推理的规则,而是可以灵活地扩展、变动、定义规则/规则集。提高了知识库推理技术的适用场景和灵活性。
可选地,在本实施例的一种实现方式中,确定子模块503具体用于执行以下处理:将各规则的推理结果与其它规则的条件进行匹配判断;如果第一规则的推理结果与第二规则的条件匹配,则在构建的用于表示规则依赖关系的有向无环图中建立从第一规则指向第二规则的边;其中,第一规则和第二规则用于表示知识库的规则中的任一规则。
进一步可选地,在本实现方式中,数据处理装置还可以包括第一顺序模块,用于根据拓扑排序算法对有向无环图进行拓扑排序,确定在知识库推理过程中各规则的调度顺序。
可选地,在本实施例的一种实现方式中,如图5中的虚线框所示,数据处理装置5还可以包括第二顺序模块51,用于根据规则依赖关系确定在知识库推理过程中各规则的调度顺序。本领域技术人员应当理解,前文提及的第一顺序模块可以作为第二顺序模块51的一种具体实现方式。
需要说明的是,在本发明的各个装置实施例中,关于各模块、子模块所执行处理的详细说明,关于相关名称、术语、条件的解释,以及关于所解决技术问题、达到技术效果的详细分析和说明等,请参见相应的方法实施例中的说明,不予赘述。
图6是根据本发明实施例的一种知识库推理装置的方块示意图,参照图6,知识库推理装置6包括数据处理装置5、顺序模块60和推理模块61。下面分别进行说明。
数据处理装置5应用于知识库推理装置6中,用于得到用以确定在知识库推理过程中各规则的调度顺序的规则依赖关系。关于数据处理装置5的说明请参见前文,此处不赘述。
顺序模块60,用于根据规则依赖关系确定在知识库推理过程中各规则的调度顺序。例如,针对用于表示规则依赖关系的有向无环图,通过拓扑排序算法计算得到规则的调度顺序。
推理模块61,用于根据确定的各规则的调度顺序对所述知识库进行知识库推理。
采用本实施例提供的知识库推理装置6,一方面,提高了知识库推理技术的适用场景的灵活性;另一方面,提高了规则执行的效率以及整体的推理性能。
可选地,在本实施例的一种实现方式中,如图6中的虚线框所示,知识库推理装置6还包括去重模块62,用于在推理模块61进行知识库推理的过程中进行去重处理,例如,在每个执行推理的MapReduce作业结束后进行去重处理,或,在每一轮规则迭代之后进行去重处理,或,在确定不产生新的推理结果之后进行去重处理。
图7是根据本发明实施例的一种应用于知识库推理的数据处理方法,该方法用于确定知识库中数据的存储方式并进行存储,参照图7,所述方法包括:
700:根据预设的分类策略将知识库中的数据分类。
需要说明的是,在本发明的各种实施例中,知识库中的数据以三元组作为示例。本领域技术人员可以根据需要应用其它数据形式,这同样落在本发明的保护范围内。
可选地,在本实施例的一种实现方式中,处理700可以包括:根据知识库中各数据的谓词类型将知识库中的数据分类存放于相应的输入文件中。例如,将谓词为“rdf:type”的三元组存放于后缀名为“-type-data”的文件中,将谓词为“rdfs:subClassOf”的三元组放入后缀名为“-subclass-schema”的文件中。
可选地,在本实施例的一种实现方式中,处理700可以包括:根据知识库中各数据的谓词类型以及各谓词类型所对应的数据量将知识库中的数据分类存放于相应的输入文件中。例如,对于数据量大的谓词类型,将其所对应的数据存放于一个或多个输入文件中(这些输入文件中不包含其它谓词类型的数据),对于数据量小的谓词类型,将其所对应的数据统一存放于一个输入文件中(例如,在一个输入文件中存放多个谓词类型的数据)。数据量大/小反映的也是谓词类型的常用/不常用情况,本领域技术人员可以根据需要灵活设定数据量大、小的判断标准,本发明对此不做限制。
当然,在本实施例的其它实现方式中,“预设的分类策略”并不限于上述举例,本领域技术人员可以在本实施例的基础上灵活地进行改变。
702:根据各类数据的数据量确定第一数据和第二数据。
其中,第一数据用于作为MapReduce任务的输入,第二数据用于在MapReduce任务的归约Reduce阶段参与知识库推理,所述MapReduce任务用于根据第一数据和第二数据进行数据库推理。
可选地,在本实施例的一种实现方式中,第一数据可以是占用的存储空间超过内存一定比例(例如,80%、50%等,本发明具体的比例值不作具体限制)的那类数据。
可选地,在本实施例的一种实现方式中,处理702可以采用以下方式实现:根据各类数据的数据量进行判断,将各类数据中数据量最大的那类数据作为第一数据,其余的数据作为第二数据。
如前所述,各类数据可以分别存放于一个或多个输入文件中,因此,就某类数据而言,可以根据存放该类数据的所有输入文件的大小确定该类数据的数据量。
可选地,在本实施例的一种实现方式中,MapReduce任务具体可以采用以下方式来根据第一数据和第二数据进行数据库推理:在MapReduce任务的映射Map阶段,输入第一数据并生成分类表示第一数据的key-value对;在MapReduce任务的归约Reduce阶段,根据输入到各Reduce节点的key-value对和第二数据进行知识库推理(具体知识库推理方法将在下文进行说明)。
进一步可选地,分类表示第一数据的key-value对包括:以第一数据中的数据的客体、谓词或主体为key,以第一数据中的数据为value的key-value对。
704:将第一数据存储至硬盘,将第二数据存储至内存。
可选地,在本实施例的一种实现方式中,例如,在执行MapReduce任务之前,将第二数据读入至执行所述MapReduce任务的各Reduce节点的内存中,并生成分类表示第二数据的key-value对。其中,分类表示第二数据的key-value对包括:以第二数据中的数据的客体、谓词或主体为key,以第二数据中的数据为value的key-value对。在该key-value对中,一个value可以是一个数据(例如,三元组),也可以是一个包含多个数据的数据列表(例如,三元组列表)。
在本发明各个实施例中对表示第一数据和第二数据的key-value对的key不做具体限制,本领域技术人员可以根据规则中的条件、推理策略等灵活地确定第一数据和第二数据的key-value对以客体、主体、谓词中的哪个为key。例如,第一数据的key-value对以客体为key,同时第二数据的key-vlalue对以主体为key;第一数据的key-value对以主体为key,同时第二数据的key-vlalue对以客体为key;等。
现有的基于Hadoop的知识库推理技术需要在Reduce节点上缓存多种类型的数据以进行推理。当出现数据倾斜时容易引发内存溢出的问题。而采用本实施例提供的方法,通过在知识库推理之前将数据进行分类存储,例如,将数据量小的数据预先缓存至Reduce计算节点,能够有效避免内存溢出的问题,同时,还能减少对于硬盘的读写操作。
图8是根据本发明实施例的一种知识库推理方法的流程示意图,在本实施例中提及的第一数据和第二数据是采用图7所示实施例或其各种实现方式处理知识库中的数据后得到的第一数据和第二数据。参照图8,所述方法包括:
80:从硬盘读取第一数据作为MapReduce任务的输入并执行MapReduce任务。其中,所述MapReduce任务用于根据第一数据和第二数据进行知识库推理。
82:在MaReduce任务的映射Map阶段,生成分类表示第一数据的key-value对。
可选地,在本实施例的一种实现方式中,处理82具体可包括:在MaReduce任务的映射Map阶段,根据输入到Map节点的第一数据生成以第一数据中的数据(例如,三元组)的客体、谓词或主体为key,以所述第一数据中的数据为value的key-value对。
84:在MapReduce任务的归约Reduce阶段,根据输入到各Reduce节点的key-value对和内存中的第二数据进行知识库推理。
可选地,在本实施例的一种实现方式中,内存中的第二数据包括:在执行MapReduce任务的各Reduce节点的内存中的,分类表示第二数据的key-value对。换言之,可以在每个Reduce节点的内存中以key-value对的形式保存所有的第二数据。其中,分类表示第二数据的key-value对包括以第二数据中的数据的客体、谓词或主体为key,以第二数据中的数据为value的key-value对。进一步可选地,在key-value对中,一个key所对应的value可以是包含多个数据的数据列表(例如,三元组列表)。
可选地,在本实施例的一种实现方式中,处理84具体可包括:在各Reduce节点,根据输入到该Reduce节点的key-value对的key和在该Reduce节点的内存中的分类表示第二数据的key-value对的key进行匹配判断,如果匹配成功,则进行连接处理得到推理结果。
其中,输入到Reduce节点的key-value对可以是根据key对分类表示第一数据的key-value对合并后得到的key-value对。例如,在介于Map阶段和Reduce阶段的shuffle处理过程中,根据key合并Map阶段输出的key-value对得到一个或多个以数据列表为value的key-value对,并根据key将合并得到的key-value对分发给不同的Reduce节点。也就是说,输入到Reduce节点的key-value对中,value可以是一个包含多个数据的数据列表(例如,三元组列表)。
其中,在匹配成功的情况下,所述连接处理具体可以包括:从输入到Reduce节点的key-value对的value(数据列表)中取出数据,与第二数据中相匹配的key所对应的value做连接(适用于一个value就是一条数据的情况),或与第二数据中相匹配的key所对应的value中的数据做连接(适用于一个value是一个数据列表的情况),即可得到一条推理结果。在本实施例中,不限制从输入到Reduce节点的key-value对的value中取数据的顺序,本领域技术人员在此方面可以灵活地进行设置或优化。
可选地,在本实施例的一种实现方式中,如图8中的虚线框所示,所述方法还可以包括:
86:在进行知识库推理的过程中进行去重处理。例如,在每个执行推理的MapReduce作业结束后进行所述去重处理,或,在每一轮规则迭代之后进行去重处理,或,在确定不产生新的推理结果之后进行去重处理。
采用本实施例提供的知识库推理方法,能够在避免内存溢出的同时减少对硬盘的读写操作,有效提高推理性能(即,提高推理效率)。
图9是根据本发明实施例的一种应用于知识库推理的数据处理装置的方块示意图,参照图9,数据处理装置9包括存储处理模块90,其用于将知识库中的数据存储于相应位置,并包括分类子模块901、确定子模块902、第一存储子模块903和第二存储子模块904。下面分别进行说明。
分类子模块901,用于根据预设的分类策略将知识库中的数据分类。
可选地,在本实施例的一种实现方式中,分类子模块901具体用于根据知识库中各数据的谓词类型将知识库中的数据分类存放于相应的输入文件。
确定子模块902,用于根据各类数据的数据量确定第一数据和第二数据。
其中,第一数据用于作为MapReduce任务的输入,第二数据用于在MapReduce任务的归约Reduce阶段参与知识库推理,所述MapReduce任务用于根据第一数据和第二数据进行数据库推理。
可选地,在本实施例的一种实现方式中,确定子模块902具体用于根据各类数据的数据量进行判断,将各类数据中数据量最大的那类数据作为第一数据,其余的数据(即,数据量不是最大的所有数据)作为第二数据。
可选地,在本实施例的一种实现方式中,MapReduce任务具体采用以下方式来根据第一数据和第二数据进行数据库推理:在MapReduce任务的映射Map阶段,输入第一数据并生成分类表示第一数据的key-value对;在MapReduce任务的归约Reduce阶段,根据输入到各Reduce节点的key-value对和所述第二数据进行知识库推理。其中,分类表示第一数据的key-value对包括:以第一数据中的数据的客体、谓词或主体为key,以所述第一数据中的数据为value的key-value对。输入到各Reduce节点的key-value对包括:根据key合并分类表示第一数据的key-value对,并按key分发至各Reduce节点的key-value对。
第一存储子模块903,用于将第一数据存储至硬盘。
第二存储子模块904,用于将第二数据存储至内存。例如,将第二数据读入至执行MapReduce任务的各Reduce节点的内存,并生成分类表示第二数据的key-vakue对;其中,分类表示所述第二数据的key-value对包括:以所述第二数据中的数据的客体、谓词或主体为key,以所述第二数据中的数据为value的key-value对。
采用本实施例提供的数据处理装置9,通过将数据量小的数据预先缓存至Reduce计算节点,能够有效避免内存溢出的问题。
图10是根据本发明实施例的一种知识库推理装置的方块示意图,知识库推理装置10进行知识库推理所基于的第一数据和第二数据,是采用图7所示实施例或其实现方式所提供的方法处理知识库中的数据后得到的第一数据和第二数据,或者,是采用图9所示实施例或其实现方式处理知识库中的数据后得到的第一数据和第二数据。
参照图10,知识库推理装置10包括读取模块101和执行模块102,下面分别进行说明。
读取模块101,用于从硬盘读取第一数据。
执行模块102,用于通过执行MapReduce任务的方式进行知识库推理。具体而言,执行模块102可以包括下述的第一执行子模块和第二执行子模块。
第一执行子模块,用于在MaReduce任务的映射Map阶段,以第一数据作为输入并生成分类表示第一数据的key-value对。
可选地,在本实施例的一种实现方式中,第一执行子模块具体可以用于生成以第一数据中的数据的客体、谓词或主体为key,以第一数据中的数据为value的key-value对。
第二执行子模块,用于在MapReduce任务的归约Reduce阶段,根据输入到各Reduce节点的key-value对和内存中的第二数据进行知识库推理。
可选地,在本实施例的一种实现方式中,第二执行子模块具体用于,在各Reduce节点,根据输入到该Reduce节点的key-value对的key和在该Reduce节点的内存中的分类表示第二数据的key-value对的key进行匹配判断,如果匹配成功,则进行连接处理得到推理结果。
其中,输入到Reduce节点的key-value对包括:根据key对分类表示第一数据的key-value对合并后得到的key-value对。分类表示第二数据的key-value对包括:以第二数据中的数据的客体、谓词或主体为key,以第二数据中的数据为value的key-value对。
可选地,在本实施例的一种实现方式中,如图10中的虚线框所示,知识库推理装置10还包括去重模块103,用于在执行模块102进行知识库推理的过程中进行去重处理。例如,在每个执行推理的Mapreduce作业结束后进行所述去重处理,或,在每一轮规则迭代之后进行所述去重处理,或,在确定不产生新的推理结果之后进行所述去重处理。
采用本实施例提供的知识库推理装置10,能够在避免内存溢出的同时减少对硬盘的读写操作,有效提高推理性能。
图11是根据本发明实施例的一种知识库推理装置的方块示意图,参照图11,知识库推理装置11包括图9所示实施例或其实现方式的数据处理装置9。在本实施例的一种实现方式中,知识库推理装置11还可以具有知识库推理装置10的各个模块及功能。
在本发明的一种实施例中,还提供一种知识库推理方法。其可以同时采用图3A和图5所示实施例或其实现方式中所提供的数据处理方法,也可以同时采用图4和图6所示实施例或其实现方式中所提供的知识库推理方法。
在本发明的一种实施例中,还提供一种知识库推理装置。其可以同时包含数据处理装置7和数据处理装置9,也可以同时包含知识库推理装置8和知识库推理装置10的所有模块。
下面结合一种更为具体的实现方式对本发明的实施例进行说明。
一种可以采用本发明图3A-图6所示实施例或其实现方式的基于Hadoop进行知识库推理的方法如下:
以规则“rdfs9:?s rdf:type?x;?x rdfs:subClassOf?y=>?s rdf:type?y”为例,其中,“?s”、“?x”、“?y”分别表示变量,“?x”是同时出现在两个条件中的共享变量。
在知识库推理过程中,以执行规则rdfs9为例,在Map阶段对所有谓词为“rdfs:type”的数据输出以三元组的客体为key、以三元组为value的key-value对,而对谓词为“rdfs:subClassOf”的数据则输出以三元组的主体为key、以三元组为value的key-value对。这样,在Reduce节点上,一个key的value中包含两种类型的三元组,一类是谓词为“rdfs:type”的三元组,一类是谓词为“rdfs:subClassOf”三元组。将这两类三元组分别存放在两个列表中,从每一个列表中分别取出一个三元组进行连接即可生成一个推理结果。
例如,假设知识库中存在三元组“<姚明rdf:type篮球运动员>,<篮球运动员rdfs:subClassOf运动员>”,则经过推理之后可以得到新的知识“<姚明rdf:type运动员>”。在Map阶段“<姚明rdf:type篮球运动员>”可以匹配规则的第一条件“?s rdf:type?x”,输出key-value对(篮球运动员,<姚明rdf:type篮球运动员>),“<篮球运动员rdfs:subClassOf运动员>”可以匹配规则的第二个条件“?x rdfs:subClassOf?y”,并输出key-value对(篮球运动员,<篮球运动员rdfs:subClassOf运动员>)。因此在Reduce阶段,“篮球运动员”这个key对应的value列表中有两种类型的三元组,一种是谓词为“rdf:type”的三元组,一种是谓词为“rdfs:subClassOf”的三元组。将这两类三元组分别存放在两个列表中,从每一个列表中分别取出一个三元组进行连接即可生成一个推理结果。
但是,上述知识库推理方法所存在的缺陷在于,如果一个key对应的三元组列表过大,则可能出现内存溢出(out of memory)的情况,并且硬盘读写操作较多。而本发明提供的图7-图11所示实施例即可解决这个问题。
具体而言,在图7-图11所示实施例的一种具体实现方式中,知识库推理过程如下:
在执行MapReduce任务之前,按三元组谓词的类型将知识库的三元组存入不同的文件中,并记录各输入文件的大小。例如,将谓词为“rdf:type”的三元组放入后缀名为“-type-data”的文件中,谓词为“rdfs:subClassOf”的三元组放入后缀名为“-subclass-schema”的文件中。然后根据各输入文件的大小进行判断,如果“-type-data”文件最大,或者,“-type-data”文件大小大于内存的一定比例(例如80%),则将“-type-data”文件写入硬盘,将“-subclass-schema”文件预先读入到每个Reduce计算节点的内存。
在执行MapReduce任务时,在Map阶段,只将后缀名为“-type-data”的文件作为输入,这样,Reduce节点的key对应的value中只有谓词为“rdf:type”的三元组。
在进行知识库推理时,从MapReduce任务的输出结果中取出三元组(取出顺序不做限制),并与内存中谓词为“rdfs:subClassOf”的三元组列表中的三元组进行匹配判断,如果匹配,则连接生成推理结果,如果不匹配,则继续针对未进行匹配判断的三元组进行匹配判断,依此类推。
采用这样的实现方式,能够有效避免内存不足的问题,同时减少硬盘读写操作,提高推理效率。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件结合硬件平台的方式来实现。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,智能手机或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本发明说明书中使用的术语和措辞仅仅为了举例说明,并不意味构成限定。本领域技术人员应当理解,在不脱离所公开的实施方式的基本原理的前提下,对上述实施方式中的各细节可进行各种变化。因此,本发明的范围只由权利要求确定,在权利要求中,除非另有说明,所有的术语应按最宽泛合理的意思进行理解。

Claims (31)

1.一种应用于知识库推理的数据处理方法,其特征在于,所述方法包括:
采用以下方式得到用于确定在知识库推理过程中各规则的调度顺序的规则依赖关系:
从所述知识库中选取数据构成第一数据集;
根据所述知识库的规则对所述第一数据集进行推理;
根据各规则的推理结果及对应的输入数据确定所述规则依赖关系。
2.如权利要求1所述的方法,其特征在于,所述根据各规则的推理结果及对应的输入数据确定所述规则依赖关系,包括:
将各规则的推理结果与其它规则的条件进行匹配判断;
如果第一规则的推理结果与第二规则的条件匹配,则在构建的用于表示所述规则依赖关系的有向无环图中建立从所述第一规则指向所述第二规则的边;
其中,所述第一规则和所述第二规则用于表示所述知识库的规则中的任一规则。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
根据拓扑排序算法对所述有向无环图进行拓扑排序,确定在知识库推理过程中各规则的调度顺序。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述规则依赖关系确定在知识库推理过程中各规则的调度顺序。
5.一种知识库推理方法,其特征在于,所述推理方法包括:
采用如权利要求1或2所述的方法得到用于确定在知识库推理过程中各规则的调度顺序的规则依赖关系;
根据所述规则依赖关系确定在知识库推理过程中各规则的调度顺序;
根据确定的各规则的调度顺序对所述知识库进行知识库推理。
6.如权利要求5所述的推理方法,其特征在于,所述方法还包括:
在知识库推理过程中进行去重处理,包括:
在每个执行推理的MapReduce作业结束后进行所述去重处理,或,在每一轮规则迭代之后进行所述去重处理,或,在确定不产生新的推理结果之后进行所述去重处理。
7.一种应用于知识库推理的数据处理装置,其特征在于,所述装置包括:
关系模块,用于得到用以确定在知识库推理过程中各规则的调度顺序的规则依赖关系;
所述关系模块包括:
采样子模块,用于从所述知识库中选取数据构成第一数据集;
推理子模块,用于根据所述知识库的规则对所述第一数据集进行推理;
确定子模块,用于根据各规则的推理结果及对应的输入数据确定所述规则依赖关系。
8.如权利要求7所述的数据处理装置,其特征在于,所述确定子模块具体用于执行以下处理:
将各规则的推理结果与其它规则的条件进行匹配判断;
如果第一规则的推理结果与第二规则的条件匹配,则在构建的用于表示所述规则依赖关系的有向无环图中建立从所述第一规则指向所述第二规则的边;
其中,所述第一规则和所述第二规则用于表示所述知识库的规则中的任一规则。
9.如权利要求8所述的数据处理装置,其特征在于,还包括:
第一顺序模块,用于根据拓扑排序算法对所述有向无环图进行拓扑排序,确定在知识库推理过程中各规则的调度顺序。
10.如权利要求7所述的数据处理装置,其特征在于,还包括:
第二顺序模块,用于根据所述规则依赖关系确定在知识库推理过程中各规则的调度顺序。
11.一种知识库推理装置,其特征在于,该推理装置包括:
如权利要求7或8所述的数据处理装置;
顺序模块,用于根据所述规则依赖关系确定在知识库推理过程中各规则的调度顺序;
推理模块,用于根据确定的各规则的调度顺序对所述知识库进行知识库推理。
12.如权利要求11所述的推理装置,其特征在于,还包括:
去重模块,用于在所述推理模块进行知识库推理的过程中进行去重处理,包括:
在每个执行推理的MapReduce作业结束后进行所述去重处理,或,在每一轮规则迭代之后进行所述去重处理,或,在确定不产生新的推理结果之后进行所述去重处理。
13.一种应用于知识库推理的数据处理方法,其特征在于,所述方法包括:
采用以下方式存储所述知识库中的数据:
根据预设的分类策略将所述知识库中的数据分类;
根据各类数据的数据量确定第一数据和第二数据,其中,所述第一数据用于作为MapReduce任务的输入,所述第二数据用于在所述MapReduce任务的归约Reduce阶段参与知识库推理,所述MapReduce任务用于根据所述第一数据和第二数据进行数据库推理;
将所述第一数据存储至硬盘,将所述第二数据存储至内存。
14.如权利要求13所述的方法,其特征在于,所述根据预设的分类策略将所述知识库中的数据分类,包括:
根据所述知识库中各数据的谓词类型将所述知识库中的数据分类存放于相应的输入文件中。
15.如权利要求13所述的方法,其特征在于,根据各类数据的数据量确定第一数据和第二数据,包括:
根据各类数据的数据量进行判断,将各类数据中数据量最大的那类数据作为所述第一数据,其余的数据作为所述第二数据。
16.如权利要求13-15中任一项所述的方法,其特征在于,所述MapReduce任务用于根据所述第一数据和第二数据进行数据库推理,包括:
在所述MapReduce任务的映射Map阶段,输入所述第一数据并生成分类表示所述第一数据的key-value对;
在所述MapReduce任务的归约Reduce阶段,根据输入到各Reduce节点的key-value对和所述第二数据进行知识库推理;
其中,分类表示所述第一数据的key-value对包括:以所述第一数据中的数据的客体、谓词或主体为key,以所述第一数据中的数据为value的key-value对。
17.如权利要求13-15中任一项所述的方法,其特征在于,将所述第二数据存储至内存包括:
将所述第二数据读入至执行所述MapReduce任务的各Reduce节点的内存中,并生成分类表示所述第二数据的key-vakue对;
其中,分类表示所述第二数据的key-value对包括:以所述第二数据中的数据的客体、谓词或主体为key,以所述第二数据中的数据为value的key-value对。
18.一种知识库推理方法,其特征在于,所述方法包括:
从硬盘读取第一数据作为MapReduce任务的输入并执行所述MapReduce任务;
在所述MapReduce任务的映射Map阶段,生成分类表示所述第一数据的key-value对;
在所述MapReduce任务的归约Reduce阶段,根据输入到各Reduce节点的key-value对和内存中的第二数据进行知识库推理;
其中,所述第一数据和第二数据是采用如权利要求13-17中任一项所述的方法处理知识库中的数据后得到的第一数据和第二数据。
19.如权利要求18所述的方法,其特征在于,生成分类表示所述第一数据的key-value对,包括:
生成以所述第一数据中的数据的客体、谓词或主体为key,以所述第一数据中的数据为value的key-value对。
20.如权利要求18所述的方法,其特征在于,
所述根据输入到各Reduce节点的key-value对和内存中的第二数据进行知识库推理,包括:在各Reduce节点,根据输入到该Reduce节点的key-value对的key和在该Reduce节点的内存中的分类表示所述第二数据的key-value对的key进行匹配判断,如果匹配成功,则进行连接处理得到推理结果;
其中,
所述输入到该Reduce节点的key-value对包括:根据key对分类表示所述第一数据的key-value对合并后得到的key-value对,
分类表示所述第二数据的key-value对包括:以所述第二数据中的数据的客体、谓词或主体为key,以所述第二数据中的数据为value的key-value对。
21.如权利要求18-20中任一项所述的方法,其特征在于,所述方法还包括:
在进行知识库推理的过程中进行去重处理,包括:
在每个执行推理的MapReduce作业结束后进行所述去重处理,或,在每一轮规则迭代之后进行所述去重处理,或,在确定不产生新的推理结果之后进行所述去重处理。
22.一种应用于知识库推理的数据处理装置,其特征在于,该装置包括:
存储处理模块,用于将所述知识库中的数据存储于相应位置;
所述存储处理模块包括:
分类子模块,用于根据预设的分类策略将所述知识库中的数据分类,
确定子模块,用于根据各类数据的数据量确定第一数据和第二数据,其中,所述第一数据用于作为MapReduce任务的输入,所述第二数据用于在所述MapReduce任务的归约Reduce阶段参与知识库推理,所述MapReduce任务用于根据所述第一数据和第二数据进行数据库推理;
第一存储子模块,用于将所述第一数据存储至硬盘;
第二存储子模块,用于将所述第二数据存储至内存。
23.如权利要求22所述的装置,其特征在于,
所述分类子模块具体用于,根据所述知识库中各数据的谓词类型将所述知识库中的数据分类存放于相应的输入文件中。
24.如权利要求22所述的装置,其特征在于,
所述确定子模块具体用于,根据各类数据的数据量进行判断,将各类数据中数据量最大的那类数据作为所述第一数据,其余的数据作为所述第二数据。
25.如权利要求22-24中任一项所述的装置,其特征在于,所述MapReduce任务用于根据所述第一数据和第二数据进行数据库推理,包括:
在所述MapReduce任务的映射Map阶段,输入所述第一数据并生成分类表示所述第一数据的key-value对;
在所述MapReduce任务的归约Reduce阶段,根据输入到各Reduce节点的key-value对和所述第二数据进行知识库推理;
其中,分类表示所述第一数据的key-value对包括:以所述第一数据中的数据的客体、谓词或主体为key,以所述第一数据中的数据为value的key-value对。
26.如权利要求22-24中任一项所述的装置,其特征在于,
所述第二存储子模块具体用于,将所述第二数据读入至执行所述MapReduce任务的各Reduce节点的内存,并生成分类表示所述第二数据的key-vakue对;
其中,分类表示所述第二数据的key-value对包括:以所述第二数据中的数据的客体、谓词或主体为key,以所述第二数据中的数据为value的key-value对。
27.一种知识库推理装置,其特征在于,包括:
读取模块,用于从硬盘读取第一数据;
执行模块,用于通过执行MapReduce任务的方式进行知识库推理,包括:
第一执行子模块,用于在所述MaReduce任务的映射Map阶段,以所述第一数据作为输入并生成分类表示所述第一数据的key-value对,
第二执行子模块,用于在所述MapReduce任务的归约Reduce阶段,根据输入到各Reduce节点的key-value对和内存中的第二数据进行知识库推理;
其中,所述第一数据和所述第二数据是由如权利要求22-26中任一项所述的装置处理知识库中的数据后得到的第一数据和第二数据。
28.如权利要求27所述的知识库推理装置,其特征在于,
所述第一执行子模块具体用于,生成以所述第一数据中的数据的客体、谓词或主体为key,以所述第一数据中的数据为value的key-value对。
29.如权利要求27所述的知识库推理装置,其特征在于,
所述第二执行子模块具体用于,在各Reduce节点,根据输入到该Reduce节点的key-value对的key和在该Reduce节点的内存中的分类表示所述第二数据的key-value对的key进行匹配判断,如果匹配成功,则进行连接处理得到推理结果;其中,所述输入到该Reduce节点的key-value对包括:根据key对分类表示所述第一数据的key-value对合并后得到的key-value对,
分类表示所述第二数据的key-value对包括:以所述第二数据中的数据的客体、谓词或主体为key,以所述第二数据中的数据为value的key-value对。
30.如权利要求27-29中任一项所述的知识库推理装置,其特征在于,还包括:
去重模块,用于在所述执行模块进行知识库推理的过程中进行去重处理,包括:
在每个执行推理的Mapreduce作业结束后进行所述去重处理,或,在每一轮规则迭代之后进行所述去重处理,或,在确定不产生新的推理结果之后进行所述去重处理。
31.一种知识库推理装置,其特征在于,包括如权利要求22-26中任一项所述的数据处理装置。
CN201510295748.3A 2015-06-02 2015-06-02 数据处理方法、知识库推理方法及相关装置 Active CN104915717B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510295748.3A CN104915717B (zh) 2015-06-02 2015-06-02 数据处理方法、知识库推理方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510295748.3A CN104915717B (zh) 2015-06-02 2015-06-02 数据处理方法、知识库推理方法及相关装置

Publications (2)

Publication Number Publication Date
CN104915717A true CN104915717A (zh) 2015-09-16
CN104915717B CN104915717B (zh) 2017-11-14

Family

ID=54084764

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510295748.3A Active CN104915717B (zh) 2015-06-02 2015-06-02 数据处理方法、知识库推理方法及相关装置

Country Status (1)

Country Link
CN (1) CN104915717B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104932956A (zh) * 2015-06-19 2015-09-23 华南理工大学 一种面向大数据的云容灾备份方法
CN105354224A (zh) * 2015-09-30 2016-02-24 百度在线网络技术(北京)有限公司 知识数据的处理方法和装置
CN106251314A (zh) * 2016-08-19 2016-12-21 深圳市唯特视科技有限公司 一种图像推理重建的方法
CN108804473A (zh) * 2017-05-04 2018-11-13 华为技术有限公司 数据查询的方法、装置和数据库系统
CN109299283A (zh) * 2018-08-29 2019-02-01 阿里巴巴集团控股有限公司 一种基于知识图谱的数据推理方法、装置、服务器和介质
CN110569061A (zh) * 2019-09-24 2019-12-13 河北环境工程学院 一种基于大数据的软件工程知识库的自动化构建系统
CN110781258A (zh) * 2019-09-16 2020-02-11 北京三快在线科技有限公司 分组查询方法、装置、电子设备及可读存储介质
CN111539529A (zh) * 2020-04-15 2020-08-14 东莞证券股份有限公司 一种事件推理方法及装置
CN113282606A (zh) * 2021-05-14 2021-08-20 杭州网易云音乐科技有限公司 数据处理方法、装置、存储介质和计算设备
US20210350262A1 (en) * 2020-05-08 2021-11-11 Paypal, Inc. Automated decision platform
CN115033716A (zh) * 2022-08-10 2022-09-09 深圳市人马互动科技有限公司 一种通用自学习系统及基于通用自学习系统的自学习方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1937551A (zh) * 2006-07-25 2007-03-28 中山大学 一种应用于数字家庭网络的上下文事务感知系统及方法
CN102402599A (zh) * 2011-11-17 2012-04-04 天津大学 大规模语义知识库的动态维护系统
CN103745191A (zh) * 2013-11-15 2014-04-23 中国科学院遥感与数字地球研究所 一种基于地形分析的黄土地区塬梁峁自动识别方法
CN104598937A (zh) * 2015-01-22 2015-05-06 百度在线网络技术(北京)有限公司 文字信息的识别方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1937551A (zh) * 2006-07-25 2007-03-28 中山大学 一种应用于数字家庭网络的上下文事务感知系统及方法
CN102402599A (zh) * 2011-11-17 2012-04-04 天津大学 大规模语义知识库的动态维护系统
CN103745191A (zh) * 2013-11-15 2014-04-23 中国科学院遥感与数字地球研究所 一种基于地形分析的黄土地区塬梁峁自动识别方法
CN104598937A (zh) * 2015-01-22 2015-05-06 百度在线网络技术(北京)有限公司 文字信息的识别方法和装置

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104932956B (zh) * 2015-06-19 2018-02-27 华南理工大学 一种面向大数据的云容灾备份方法
CN104932956A (zh) * 2015-06-19 2015-09-23 华南理工大学 一种面向大数据的云容灾备份方法
CN105354224A (zh) * 2015-09-30 2016-02-24 百度在线网络技术(北京)有限公司 知识数据的处理方法和装置
CN105354224B (zh) * 2015-09-30 2019-07-23 百度在线网络技术(北京)有限公司 知识数据的处理方法和装置
CN106251314A (zh) * 2016-08-19 2016-12-21 深圳市唯特视科技有限公司 一种图像推理重建的方法
CN108804473A (zh) * 2017-05-04 2018-11-13 华为技术有限公司 数据查询的方法、装置和数据库系统
CN108804473B (zh) * 2017-05-04 2022-02-11 华为技术有限公司 数据查询的方法、装置和数据库系统
CN109299283B (zh) * 2018-08-29 2021-11-16 创新先进技术有限公司 一种基于知识图谱的数据推理方法、装置、服务器和介质
CN109299283A (zh) * 2018-08-29 2019-02-01 阿里巴巴集团控股有限公司 一种基于知识图谱的数据推理方法、装置、服务器和介质
CN110781258A (zh) * 2019-09-16 2020-02-11 北京三快在线科技有限公司 分组查询方法、装置、电子设备及可读存储介质
CN110569061A (zh) * 2019-09-24 2019-12-13 河北环境工程学院 一种基于大数据的软件工程知识库的自动化构建系统
CN111539529A (zh) * 2020-04-15 2020-08-14 东莞证券股份有限公司 一种事件推理方法及装置
US20210350262A1 (en) * 2020-05-08 2021-11-11 Paypal, Inc. Automated decision platform
WO2021223215A1 (en) * 2020-05-08 2021-11-11 Paypal, Inc. Automated decision platform
US12182732B2 (en) * 2020-05-08 2024-12-31 Paypal, Inc. Automated decision platform
CN113282606A (zh) * 2021-05-14 2021-08-20 杭州网易云音乐科技有限公司 数据处理方法、装置、存储介质和计算设备
CN115033716A (zh) * 2022-08-10 2022-09-09 深圳市人马互动科技有限公司 一种通用自学习系统及基于通用自学习系统的自学习方法

Also Published As

Publication number Publication date
CN104915717B (zh) 2017-11-14

Similar Documents

Publication Publication Date Title
CN104915717B (zh) 数据处理方法、知识库推理方法及相关装置
EP2674875B1 (en) Method, controller, program and data storage system for performing reconciliation processing
Fan et al. Querying big graphs within bounded resources
US20150039611A1 (en) Discovery of related entities in a master data management system
CN113703775A (zh) 一种编译方法、装置、设备及存储介质
WO2021011914A1 (en) Scheduling operations on a computation graph
CN109656798B (zh) 基于顶点重排序的超级计算机大数据处理能力测试方法
Arnaiz-González et al. MR-DIS: democratic instance selection for big data by MapReduce
CN106445913A (zh) 基于MapReduce的语义推理方法及系统
CN111274457B (zh) 一种网络图分割方法及存储介质
JP5555238B2 (ja) ベイジアンネットワーク構造学習のための情報処理装置及びプログラム
CN118093949A (zh) 结构树生成方法、装置、计算机设备和存储介质
Bengre et al. A learning-based scheduler for high volume processing in data warehouse using graph neural networks
CN117376410A (zh) 业务推送方法、装置、计算机设备和存储介质
Huang et al. Efficient algorithms for parallel bi-core decomposition
CN114265701B (zh) 资源处理方法、装置、计算机设备和存储介质
CN111832819A (zh) 基于用户行为和对抗网络的网络舆论传播预测方法与装置
CN110059880A (zh) 一种服务发现方法及装置
US11573721B2 (en) Quality-performance optimized identification of duplicate data
CN117556095B (zh) 图数据分割方法、装置、计算机设备和存储介质
US12265538B2 (en) Schema-adaptable data enrichment and retrieval
US20230385337A1 (en) Systems and methods for metadata based path finding
Shahsavari et al. Semantic Constraint and QoS-Aware Large-Scale Web Service Composition
US20230139783A1 (en) Schema-adaptable data enrichment and retrieval
Sahu An Improved Pattern Mining Technique for Graph Pattern Analysis Using Novel Behavior of Artificial Bee Colony 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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20171225

Address after: 100085 Beijing, Haidian District, No. ten on the ground floor, No. 10 Baidu building, layer 2

Patentee after: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY Co.,Ltd.

Address before: 100085 Beijing, Haidian District, No. ten on the ground floor, No. 10 Baidu building, layer three

Patentee before: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY Co.,Ltd.