精华内容
下载资源
问答
  • 知识图谱知识推理

    千次阅读 2017-11-03 17:56:36
    http://www.cnblogs.com/jtianwen2014/p/7000190.html开源工具http://blog.csdn.net/javafreely/article/details/8432522
    http://www.cnblogs.com/jtianwen2014/p/7000190.html

    开源工具

    http://blog.csdn.net/javafreely/article/details/8432522
    展开全文
  • 在协同过滤中引入知识图谱推理技术,通过路径排序算法挖掘实体间多路径关系,将所有的实体关系嵌入到低维的语义空间中,在低维空间中计算任意视频间的语义相似性,将语义相似性与协同过滤的用户行为相似性结合进行...
  • 摘要本文接着知识图谱系列--实体链接技术(1)[1]介绍知识推理方法。知识推理就是通过各种方法获取新的知识或者结论,这些知识和结论满足语义,其具体任务可分为可满足性(satisfiability)、分类(classification)、...

    摘要

    本文接着知识图谱系列--实体链接技术(1)[1]介绍知识推理方法。知识推理就是通过各种方法获取新的知识或者结论,这些知识和结论满足语义,其具体任务可分为可满足性(satisfiability)、分类(classification)、实例化(materialization)。[2]

    paper: Das, R. , Neelakantan, A. , Belanger, D. , & Mccallum, A. . (2016). Chains of reasoning over entities, relations, and text using recurrent neural networks

    实际当前介绍比较多的还是王昊奋老师的课程,介绍的OWL等规则及Jena工具。知识推理算法上实现效果尚不佳,这里介绍一篇Das, R. , Neelakantan, A. , Belanger, D. , & Mccallum, A. . (2016)的论文[3]。

    本文首先介绍了基本的 Path-RNN 的架构,本文的一切改进都是基于该模型的。Path-RNN 的输入是两个实体之间的路径,输出推理出的二者之间的新关系。通过将关系之间的连接用 RNN 表示来进行推理。路径的表示是在处理完路径中所有的关系之后由 RNN 的最后的隐状态给出的。模型结构示意图如图1-2所示。图1

    图2

    本文提出的方法对这个模型做出的改进有:之前的方法最大的问题是要为每一个需要预测的 relation-type 单独训练模型。而本文只训练一个 RNN 来预测所有的 relation type,共享了 RNN 参数精度也显著提高了。本文共享了 relation type 的表示以及 RNN 的 composition matrices,这样同样的训练数据变量就大大减少了。训练模型的损失函数用的是negative log-likelihood如下所示:

    本文使用了 neural attention 机制对多条路径进行推理。之前的工作只推理了 relation,没有推理组成路径上节点的 entities,本文对关系类型,实体和实体类型进行了联合学习和推理。

    分别用 Top-k,average 和 LogSumExp 等多纬度为每一条路径的相似度评分加上权重,这样就考虑了每一条路径包含的信息,而不仅仅是评分最高的那条。

    论文结果如图3-4所示:图4

    参考文献debuluoyi:知识图谱系列--实体链接技术(1)​zhuanlan.zhihu.comv2-7f814de922e61f853cd4970307a61a91_180x120.jpg王昊奋知识图谱教程​www.chinahadoop.cn

    [3] Das, R. , Neelakantan, A. , Belanger, D. , & Mccallum, A. . (2016). Chains of reasoning over entities, relations, and text using recurrent neural networks.

    源码:https://rajarshd.github.io/ChainsofReasoning​rajarshd.github.iogithub.com/debuluoyi​github.com

    展开全文
  • 近年来,知识图谱问答任务取得较大进展,但当问题变得复杂,涉及多个实体的比较和推理时,机器尚不能很好地解答。如何让机器像人类一样学会推理,从而处理复杂问题,是当前的一个研究热点和难点。
  • 先看你用的知识图谱系统支不支持推理引擎吧。你想达到的效果,一般是通过推理引擎实现的。推理的效果好不好,得看知识系统是如何实现的,知识的覆盖面/广度,知识的精准性,推理引擎的算法如何等等。--从这也能看出...

    先看你用的知识图谱系统支不支持推理引擎吧。你想达到的效果,一般是通过推理引擎实现的。

    推理的效果好不好,得看知识系统是如何实现的,知识的覆盖面/广度,知识的精准性,推理引擎的算法如何等等。--从这也能看出,前提还是数据量。再看看图像方面的数据集就明白了,ImageNet、MNIST、COCO、The PASCAL Visual Object Classes Homepage、CIFAR-10 and CIFAR-100 datasets、http://horatio.cs.nyu.edu/mit/tiny/data/、FDDB : Main,这还是近乎语言中立的,就N多个了,而知识图谱呢,不同的语言、不同的领域,这得需要几倍的图像数据集啊,现阶段耳熟能详的又有几个。数据集的数量起来之后,其它的相关算法、论文才会层出不穷吧。有点跑题。。。。

    第二个问题的“其他方法”指啥?传统的数据挖掘?知乎上关于数据挖掘的介绍:如何系统地学习数据挖掘? 在编辑推荐的答案中提到了一张有关数据科学的图,眼花了吗,想玩转数据挖掘,不都了解了解能成吗:

    数据挖掘在右上方。

    而知识图谱呢,本质上就是图,一个图就是N多个三元组:vertex和edge,或者说node和relation,具体而言就这两种:

    object--property--property value

    object--relation--object

    三元组就是最原子的规则。推理引擎用到的也就是这东西。所以,如果你有了这三样东西,只需了解知识的组成和(推理引擎的)查询语言就能推理了,而不用管算法那些底层东西:强大的知识图谱数据集

    推理引擎

    查询语言

    所以,用知识图谱来做数据分析的优点是啥呢?不需要数据科学家,不需要算法专家,只要经过简单的培训(某个领域知识的构成/数据库表,查询语言怎么用/SQL),就能上手把玩了。

    展开全文
  • 知识推理是在已有的事实和逻辑规则的基础上推理新知识的机制一般来说,知识推理是运用已知知识的过程知识推断新知识。 给出知识图推理定义、知识图推理方法、知识图推理应用和机遇与挑战
  • 知识图谱知识推理

    千次阅读 2019-09-03 23:21:02
    OWL本体语言是知识图谱中最规范(W3C制定)、最严谨(采用描述逻辑)、表达能力最强(是一阶谓词逻辑的子集)的语言; 它基于RDF语法,使表示出来的文档具有语义理解的结构基础。 促进了统一词汇表的使用,定义了丰富的...

    一、本体知识推理简介

    1、OWL本体语言

    OWL的特性

    • OWL本体语言是知识图谱中最规范(W3C制定)、最严谨(采用描述逻辑)、表达能力最强(是一阶谓词逻辑的子集)的语言;
    • 它基于RDF语法,使表示出来的文档具有语义理解的结构基础。
    • 促进了统一词汇表的使用,定义了丰富的语义词汇。
    • 允许逻辑推理。

    语法:RDF语法,三元组:(subject, property, object)

    2、描述逻辑

    逻辑基础:描述逻辑

    • 描述逻辑(Description Logic):基于对象的知识表示的形式化,也叫概念表示语言或术语逻辑,是一阶谓词逻辑的一个可判定子集。

    (1)描述逻辑系统

    一个描述逻辑系统由四个基本部分组成:

    • 最基本的元素:概念、关系、个体
    • TBox术语集:概念术语的公理集合;
    • Abox断言集:个体的断言集合;
    • TBox 和 ABox上的推理机制

    不同的描述逻辑系统的表示能力与推理机制由于对这四个组分的不同选择而不同

    下面对四个组成部分进行介绍:

    • 最基本的元素:概念、关系、个体。
      1. 概念:一个领域的子集,如 学生:{x|student(x)}
      2. 关系:该领域上的二元关系(笛卡尔积),如 朋友:{<x,y>|friend(x,y)}
      3. 个体:一个领域内的实例,如 小明:{Ming}
    • TBox术语集——泛化的知识
      1. 定义:描述概念和关系的知识,被称之为公理(Axiom)
      2. 由于概念之间存在包含关系,TBox 知识形成类似 格(Lattice) 的结构,这种结构是由包含关系决定的,与具体实现无关。
      3. Tbox语言
        (1) 定义:引入概念及关系的名称,如 MotherPersonhas_child
        (2) 包含:声明包含关系的公理,例如 Motherhas_child.Person\mathrm{Mother} \sqsubseteq \exists \mathrm{has\_child}.\mathrm{Person}
    • ABox断言集——具体个体的信息
      1. 包含:外延知识(又称为断言(Assertion)), 描述论域中的特定个体。
      2. ABox语言
        (1)概念断言:表示一个对象是否属于某个概念,例如 Mother(Alice)Person(Bob)
        (2)关系断言:表示两个对象是否满足特定的关系,例如 has_child(Alice, Bob)
    • 描述逻辑的知识库 K:=T,AK:=\langle{T,A}\rangleTT 即 TBOx , AA即ABOx。

    (2)描述逻辑的语义

    描述逻辑的语义

    • 解释Ⅰ是知识库 KK 的模型,当且仅当Ⅰ是 KK 中每个断言的模型。若一个知识库 KK 有一个模型,则称 KK 是可满足的。若断言σ对于 KK 的每个模型都是满足的,则称 KK 逻辑蕴含 σ\sigma,记为KσK⊨\sigma。对概念 CC,若 KK 有一个模型Ⅰ使得CϕC^Ⅰ\neq\phi 则称 CC 是可满足的。
    • 描述逻辑依据提供的构造算子,在简单的概念和关系上构造出复杂的概念和关系。描述逻辑至少包含以下 构造算子:交 (\cap)、并(\cup)、非 (¬\neg)、存在量词 (\exists)和全称量词 (\forall)

    有了语义之后,我们可以进行推理。通过语义来保证推理的正确和完备性

    下图给出描述逻辑的语义表:

    构造算子 语法 语义 例子
    原子概念 A AΔA^Ⅰ\subseteq\Delta^Ⅰ Human
    原子关系 R RΔ×ΔR^Ⅰ\subseteq\Delta^Ⅰ\times \Delta^Ⅰ has_child
    对概念 C,D和关系(role) R
    合取 CDC\sqcap{D} CDC^Ⅰ\cap{D^Ⅰ} HumanMale\mathrm{Human}\sqcap\mathrm{Male}
    析取 CDC\sqcup{D} CDC^Ⅰ\cup{D^Ⅰ} HumanMale\mathrm{Human}\sqcup\mathrm{Male}
    ¬C\neg C ΔC\Delta^Ⅰ\setminus C ¬Male\neg Male
    存在量词 R.C\exists R.C {xy.x,yRyC}\{x\mid \exists y.\langle {x,y} \rangle\in {R^Ⅰ}\wedge{y\in{C^Ⅰ}}\} has_child.Male\exists \mathrm{has\_child.Male}
    全称量词 R.C\forall R.C {xy.x,yRyC}\{x\mid \forall y.\langle {x,y} \rangle\in {R^Ⅰ}\Rightarrow{y\in{C^Ⅰ}}\} has_child.Male\exists \mathrm{has\_child.Male}

    描述逻辑与OWL词汇的对应
    在这里插入图片描述

    3、知识推理任务分类

    知识推理:通过各种方法获取新的知识或者结论,这些知识和结论满足语义。

    具体任务可分为:

    • 可满足性(satisfiability)(针对TBox)
    • 分类(classification)(针对TBox)
    • 实例化(materialization)(针对ABox)

    (1)可满足性(satisfiability)

    本体可满足性

    • 检查一个本体是否可满足,即检查该本体是否有模型。如果本体不满足,说明存在不一致

    概念可满足性

    • 检查某一概念的可满足性,即检查是否具有模型,使得针对该概念的解释不是空集。

    示例: 两个不可满足的例子。

    • 第一个本体例子:Man 和 Woman 的交集是空集,那么就不存在同一个本体Allen 既是Man 又是Women。
    • 第二个概念例子:概念Eternity是一个空集,那么它不具有模型,即不可满足。
      在这里插入图片描述

    (2)分类(classification)

    分类:针对 Tbox 的推理,计算新的概念包含关系。

    注意:这里的分类与机器学习中分类不同。

    示例

    • 若 Mother 是 Women的子集,Women是 Person的子集,那么就可以得出 Mother是 Person 的子集这个新类别关系。
      在这里插入图片描述

    (3)实例化

    实例化:计算属于某个概念或关系的所有实例的集合。

    示例

    • 计算新的类实例信息:首先已知 Alice 是Mother,Mother 是 Women的子集,那么可知 Alice 是一个Women。即为Women增加了一个新的实例。
      在这里插入图片描述
    • 计算新的二元关系:已知 Alice 和Bob 有儿子,同时 has_son 是 has_child 的子类,那么可知 Alice 和Bob has_child。
      在这里插入图片描述

    二、本体推理方法与工具介绍

    基于本体推理的常见方法:

    • 基于Tableaux运算的方法:适用于检查某一本体的可满足性,以及实例检测。
    • 基于逻辑编程改写的方法:可以根据特定的场景定制规则,以实现用户自定义的推理过程。
    • 基于一阶查询重写的方法:可以高效低结合不同数据格式的数据源,重写方法关联起了不同的查询语言。以Datalog语言为中间语言,首先重写SPARQL语言为Datalog,再将Datalog重写为SQL查询;
    • 基于产生式规则的方法:可以按照一定机制执行规则从而达到某些目标,与一阶逻辑类似,也有区别;
      下面对上面的几种方法做详细介绍。

    1、基于Tableaux运算的方法

    (1)概述

    基本思想

    • 通过一系列规则构建Abox,以检测可满足性,或者检测某一实例是否存在于某概念。
    • 这种思想类似于一阶逻辑的归结反驳

    适用性:检查某一本体的可满足性,以及实例检测

    Tableaux运算规则(以主要DL算子举例)

    • 以第一个为例进行说明。第一个是说如果 CCDD(x)(x) 的合取是 ϕ\phi,且 C(x)C(x)D(x)D(x) 不在 ϕ\phi 里,则 ϕ\phi 有可能只包含了部分 CC,而 C(x)C(x) 不在里面,那么我们就把它们添加到 ϕ\phi 里。下面我们举个实际的例子:
      在这里插入图片描述

    (2)示例

    示例:检测实例 Allen 是否在 Woman中? 即:检测Woman(Allen)\mathrm{Woman(Allen)}

    ManWoman\mathrm{Man}\sqcap\mathrm{Woman}\sqsubseteq\bot
    Man(Allen)\mathrm{Man(Allen)}

    其解决流程为:
    在这里插入图片描述

    1. 首先加入带反驳的结论:

      ManWoman\mathrm{Man}\sqcap\mathrm{Woman}\sqsubseteq\bot
      Man(Allen)\mathrm{Man(Allen)}
      Woman(Allen)\mathrm{Woman(Allen)}

    2. 初始Abox,记为 ϕ\phi,其内包含 Man(Allen)\mathrm{Man(Allen)}Woman(Allen)\mathrm{Woman(Allen)}

    3. 运用 \sqcap^- 规则,得到 ManWomen(Allen)\mathrm{Man}\sqcap \mathrm{Women(Allen)}。将其加入到 ϕ\phi 中,
      现在的ϕ\phiMan(Allen)   Woman(Allen)    ManWomen(Allen)\mathrm{Man(Allen)} \ \ \ \mathrm{Woman(Allen)} \ \ \ \ \mathrm{Man}\sqcap \mathrm{Women(Allen)}

    4. 运用 \sqsubseteq 规则到 ManWomen(Allen)\mathrm{Man}\sqcap \mathrm{Women(Allen)}ManWomen\mathrm{Man}\sqcap \mathrm{Women}\sqsubseteq\bot 上,得到 Allen\bot\mathrm{Allen}
      此时的 ϕ\phi 包含 Man(Allen)   Woman(Allen)    ManWomen(Allen)    Allen\mathrm{Man(Allen)} \ \ \ \mathrm{Woman(Allen)} \ \ \ \ \mathrm{Man}\sqcap \mathrm{Women(Allen)}\ \ \ \ \bot\mathrm{Allen}

    5. 运用 \bot 规则,拒绝现在的 ϕ\phi

    6. 得出 Allen 不在 Woman 的结论。如果 Woman(Allen)\mathrm{Woman(Allen)} 在初始情况已存在于原始本体,那么推导出该本体不可满足!

    正确性:基于Herbrand模型,Herbrand模型可以把它简单的理解为所有可满足模型的最小模型,具体的可以参考逻辑方面的书籍。

    (3)相关工具介绍

    工具名称 支持本体语言 编程语言 算法
    FaCT++ OWL DL C++ tableau-based
    Racer OWL DL Common Lisp tableau-based
    Pellet OWL DL Java tableau-based
    HermiT OWL 2 Profiles Java tableau-based

    2、基于逻辑编程改写的方法

    (1)概述

    本体推理的局限性

    • 仅支持预定义的本体公理上的推理,无法针对自定义的词汇支持灵活推理;
    • 用户无法定义自己的推理过程。

    解决方法:引入规则推理

    • 它可以根据特定的场景定制规则,以实现用户自定义的推理过程
    • Datalog语言可以结合本体推理和规则推理

    (2)Datalog语言推理

    Datalog语言

    • 面向知识库和数据库设计的逻辑语言,表达能力与OWL相当,支持递归
    • 便于撰写规则,实现推理。

    在这里插入图片描述

    Datalog的语法

    • 原子(Atom)
      • 形式:p(t1,t2,...,tn)p(t_1,t_2,...,t_n),其中 pp 是谓词,nn 是目数,tit_i 是项 (变量或常量),
      • 例如:has_child(X,Y)\mathrm{has\_child(X, Y)}
    • 规则(Rule)
      • 形式:H:B1,B2,,Bm.H:−B_1,B_2,…,B_m.,由原子构建,其中 HH 是头部原子,B1,B2,,BmB_1,B_2,…,B_m 是体部原子。
      • 例如:has_child(X,Y):has_son(X,Y).\mathrm{has\_child(X,Y):−has\_son(X, Y).}
    • 事实(Fact):
      • 形式:F(c1,c2,,cn):F(c1,c2,,cn):F(c_1,c_2,…,c_n):−F(c_1,c_2,…,c_n):−,它是没有体部且没有变量的规则,
      • 例如: has_child(Alice,Bob):\mathrm{has\_child(Alice,Bob):−}
    • Datalog程序是规则的集合
      • 示例:
        has_child(X,Y):has_son(X,Y).has_child(Alice,Bob):\mathrm{has\_child(X,Y):−has\_son(X, Y).} \\ \mathrm{has\_child(Alice,Bob):−}

    Datalog 推理的示例
    在这里插入图片描述

    (3)相关工具简介

    工具名称 支持本体语言 实现编程语言 支持编程语言
    KAON2 OWL DL/SWRL Java Java
    RDFox OWL 2 RL C++ Java/C++/Python

    3、基于一阶查询重写的方法

    (1)概述

    查询重写的目的

    • 高效地结合不同数据格式的数据源;
    • 重写方法关联起了不同的查询语言。

    一阶查询:具有一阶逻辑形式的语言

    • 原因:Datalog是数据库的一种查询语言,同时具有一阶逻辑形式。
      ==》针对本体基于一阶查询进行重写
    • 可以以 Datalog 为中间语言,首先重写 SPARQL 语言为 Datalog ,再将 Datalog 重写为 SQL。
      SPARQLDatalogSQL\mathrm{SPARQL→Datalog→SQL}
      基本流程
      在这里插入图片描述

    (2)示例

    Q: 给定如下本体,查询所有研究人员及其所从事的项目?

    用 SPARQL 表示为:

    SELECT ?r ?p
    WHERE {
    	?r	exp:worksFor	?p .
    	?p	rdf:type		exp:Project
    }
    

    给定Datalog 规则如下:
    CoordinatorResearcherworkForResearcherworkForProjectResearcherworkForProjectworkFornamexsd:StringResearchernameProjectname \begin{aligned} \mathrm{Coordinator} \sqsubseteq &amp; \mathrm{Researcher} \\ \exists\mathrm{workFor} \sqsubseteq &amp; \mathrm{Researcher} \\ \exists\mathrm{workFor-} \sqsubseteq &amp; \mathrm{Project} \\ \mathrm{Researcher} \sqsubseteq &amp; \exists\mathrm{workFor} \\ \mathrm{Project} \sqsubseteq &amp; \exists\mathrm{workFor-} \\ \exists\mathrm{name-} \sqsubseteq &amp;\mathrm{xsd:String} \\ \mathrm{Researcher} \sqsubseteq &amp; \exists\mathrm{name} \\ \mathrm{Project} \sqsubseteq &amp; \exists\mathrm{name} \end{aligned}
    底层数据具体为某数据库中为下图中的两张表:
    在这里插入图片描述

    步骤一: 重写为 Datalog 查询

    • 过滤不需要的公理 (通过语法层过滤)
      在这里插入图片描述
    • 生成所有相关的 Datalog 查询
      q(x)worksFor(x,y),Project(y)q(x)worksFor(x,y),worksFor(,y)q(x)worksFor(x,_)q(x)Researcher(x)q(x)Coordinator(x) \begin{aligned} \mathrm{q(x)} \leftarrow &amp; \mathrm{worksFor(x,y),Project(y)} \\ \mathrm{q(x)} \leftarrow &amp; \mathrm{worksFor(x,y),worksFor(_,y)} \\ \mathrm{q(x)} \leftarrow &amp; \mathrm{worksFor(x,\_)} \\ \mathrm{q(x)} \leftarrow &amp; \mathrm{Researcher(x)} \\ \mathrm{q(x)} \leftarrow &amp; \mathrm{Coordinator(x)} \end{aligned}
      步骤二: 将数据库关系表达式映射成 Datalog 原子
      在这里插入图片描述
    • 步骤三:将从SPARQL以及数据库重写过来的 Datalog 规则整合进行查询

    在这里插入图片描述在这里插入图片描述

    (3)Ontop 工具

    Ontop 工具

    • 最先进的OBDA 系统,兼容RDFs、OWL 2 QL、R2RML、SPARQL标准
    • 支持主流关系数据库: Oracle、MySQL、SQL Server、Postgres

    4、基于产生式规则的方法

    (1)产生式系统组成

    产生式系统

    • 定义:一种前向推理系统,可以按照一定机制执行规则从而达到某些目标,与一阶逻辑类似,但也有区别。
    • 应用:自动规划、专家系统上。

    产生式系统的 组成:

    • 事实集合(Working Memory)
    • 产生式/规则集合
    • 推理引擎组成:

    1. 事实集/运行内存(Working Memory, WM)

    • 定义:事实(WME)的集合,用于存储当前系统中所有事实。
    • 事实(Working Memory Element, WME):包含描述对象和描述关系。
      • 描述对象:
        • 形如:(type attr1:val1 attr2:val2...attrn:valn)\mathrm{(type\ attr_1:val_1\ attr_2:val_2...attr_n:val_n)},其中 type attri vali\mathrm{type\ attr_i\ val_i} 均为原子 (常量);
        • 示例:(student name:Alice age:24)
      • 描述关系(Refication):
        • 例如: (basicFact relation:olderThan firstArg:John secondArg:Alice)\mathrm{(basicFact\ relation:olderThan\ firstArg:John\ secondArg:Alice)} 简记为(olderThanJohnAlice)\mathrm{(olderThan John Alice)}

    2. 产生式集合(Production Memory, PM)

    • 定义:产生式的集合。
    • 产生式
      • IF  conditions  THEN  actions\mathrm{IF} \ \ \color{red}{conditions} \ \ \color{black}{\mathrm{THEN}} \ \ \color{red}{actions}
      • conditions 是由条件组成的集合,又称为 LHS
      • actions 是由动作组成的序列,称为 RHS
    • LHS
      • 定义:条件(condition)的集合,各条件之间是 的关系,当 LHS 中所有条件均被满足,则该规则触发
      • 条件的形式为:(type  attr1:spec1  attr2:spec2...attrn:specn)\mathrm{(type\ \ attr_1:spec_1\ \ attr_2:spec_2...attr_n:spec_n)}
        • 其中 speci\mathrm{spec_i} 表示对 attri\mathrm{attr_i} 的约束,形式可取如下的一种:
          1. 原子,如:Alice                   (person name:Alice)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\mathrm{person\ name:Alice})
          2. 变量,如:xx                        (person name:x)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\mathrm{person\ name:}x)
          3. 表达式,如:[n+4][n+4]            (person age:[n+4])\ \ \ \ \ \ \ \ \ \ \ (\mathrm{person\ age:}[n+4])
          4. 布尔测试,如:{&gt;10}\{&gt;10\}         (person age:[&gt;10])\ \ \ \ \ \ \ \ (\mathrm{person\ age:}[&gt;10])
          5. 约束的 与、或、非 操作
    • RHS
      • 定义:动作序列,即执行时的顺序,是依次执行的;
      • 动作的种类包含:
        • ADD  pattern\mathrm{ADD}\ \ pattern:向WM中加入形如pattern的WME。
        • REMOVE  i\mathrm{REMOVE}\ \ i:从WM中移除当前规则第 ii 个条件匹配的 WME。
        • MODIFY  i  (attr spec)\mathrm{MODIFY }\ \ i\ \ (attr\ spec):对于当前规则第 ii 个条件匹配的 WME,将其对应于 attrattr 属性的值改为 specspec
    • 示例:若有一个学生名为 ?x?x,则向事实集中加入一个事实,表示有一个名为 ?x?x 的人。
      • IF (Student name:x) Then ADD (Person name:x)\mathrm{IF\ (Student\ name:}x) \mathrm{\ Then\ ADD\ (Person\ name:}x) 也可写作 (Student name:x)ADD (Person name:x)\mathrm{(Student\ name:}x) \Rightarrow \mathrm{ADD\ (Person\ name:}x)

    3. 推理引擎(核心步骤):

    • 作用:可以控制系统的执行;
    • 包含(下节重点说明):
      • 模式匹配:用规则的条件部分匹配事实集中的事实,整个LHS都被满足的规则被触发,并被加入议程(agenda);
      • 解决冲突:按一定的策略从被触发的多条规则中选择一条;
      • 执行动作:执行被选择出来的规则的RHS,从而对WM进行一定的操作。

    (2)产生式系统执行

    产生式系统的执行流程

    • 下图的 WM 和产生式集合是我们定义的数据,相当于ABox 和 TBox,中间部分是推理引擎。其实大部分推理系统都是由这三部分组成。
      在这里插入图片描述

    模式匹配:用每条规则的条件部分匹配当前WM。

    • RETE算法——高效的模式匹配算法(空间换时间)

      • 1979年由Charles Forgy (CMU)提出;
      • 思路:将产生式的LHS组织成判别网络形式;
      • 流程
        在这里插入图片描述
    • 冲突解决:从被触发的多条规则中选择一条

      • 常见策略
        • 随机选择:从被触发的规则中随机选择一条执行;

          • 注意:在推理场景下,被触发的多条规则可全被执行;
        • 具体性(specificity):选择最具体的规则;

          • 示例:

            (Student name:x)...(\mathrm{Student\ name:}x) \Rightarrow ...
            (Student name:x age:20)...(\mathrm{Student\ name:}x\ \mathrm{age}:20) \Rightarrow ...
            存在上述两条规则时,若根据具体性,则选择第二条

        • 新近程度(recency):选择最近没有被触发的规则执行动作;

    (3)相关工具介绍

    Drools

    • 商用规则管理系统,其中提供了一个规则推理引擎;
    • 核心算法是基于RETE算法的改进。
    • 提供规则定义语言 ,支持嵌入Java代码。

    Jena

    • Jena 用于构建语义网应用 Java 框架,
    • 提供了处理 RDF、RDFs、OWL 数据的接口,还提供了一个规则引擎。
    • 提供了三元组的内存存储于查询。

    RDF4J

    • RDF4J 是一个处理 RDF 数据的开源框架,
    • 支持语义数据的解析、存储、推理和查询。
    • 能够关联几乎所有RDF存储系统,能够用于访问远程RDF存储。

    GraphDB(原OWLIM)

    • 一个可扩展的语义数据存储系统;
    • 包含:三元组存储、推理引擎、查询引擎
    • 支持 RDFS、OWL DLP、OWL Horst、OWL 2 RL 推理

    对比
    在这里插入图片描述

    展开全文
  • 知识图谱知识推理

    千次阅读 2018-08-30 19:23:05
    知识推理的任务: 可满足性 分类 实例化   1)可满足性 本体可满足性:如男性和女性的交集为空,即不存在一个人既是男,也是女。若小明既是男,又是女,小明这个本体就是不可满足的本体 概念可满足性:检查...
  • 本文分享一篇将强化学习应用在知识图谱多跳推理任务的汇报ppt,简要概述基本概念并推荐几篇近期的优秀论文,介绍其核心思想,完整汇报ppt获取请关注公众号回复关键字:知识图谱强化学习 一、背景知识 1、知识图谱...
  • 知识图谱(二)——知识推理

    万次阅读 2018-04-16 15:17:17
    知识推理知识图谱中很重要的一部分,主要用于推理暗含的知识(丰富知识图谱),检查知识库的不一致(知识清洗) 知识推理分类 演绎推理 从一般到特殊的过程.从一般性的前提出发,通过推导,得到具体描述或个别...
  • 本文分享一篇有关知识图谱上的神经网络和符号逻辑推理汇报ppt,简要概述基本概念并推荐几篇近期的优秀论文,介绍其核心思想,完整汇报ppt获取请关注公众号回复关键字:知识图谱符号逻辑推理 一、背景知识 1、知识...
  • 基于知识图谱知识推理

    千次阅读 2020-10-13 17:18:36
    这基于知识图谱知识推理基本概念、定义推理方法分为三类:知识图推理的相关应用基于规则的推理基于表示学习的推理基于神经网络和强化学习的推理 基本概念、定义 人工智能算法必须具有推理能力,推理过程必须依赖于...
  • 回答大规模知识图谱上的复杂逻辑查询是一项基本而又具有挑战性的任务。在本文中,我将概述如何使用向量空间嵌入在知识图谱中执行逻辑推理
  • 作者信息:费斌杰,熵简科技创始人兼CEO,长期深耕金融资管数据科技一线,对数据中台、知识图谱的技术实践和产业应用有深入理解,曾就职于嘉实基金...知识图谱推理在其中发挥了重要作用,被誉为知识图谱领域的皇冠。 本
  • 知识图谱推理问题总结

    千次阅读 2019-03-09 20:44:19
    这些应用的性能受限于知识图谱的不完整性,甚至是知识图谱中错误内容会导致错误的结果,使用知识图谱推理技术可以对现有知识图谱进行丰富,知识图谱推理技术指的是根据现有的知识图谱中的论据,推断出新的事实,这也...
  • 基于知识图谱推理

    千次阅读 2019-08-14 20:59:52
    基于知识图谱推理的关系推演: https://zhuanlan.zhihu.com/p/42340077
  • 摘要:本文从知识推理的基本概念出发,通俗易懂得介绍了知识图谱知识推理的应用和方法。
  • 知识图谱——知识推理

    千次阅读 2018-10-16 09:01:07
    知识推理的几种方式 https://www.zuozuovera.cn/archives/491/comment-page-1
  • 知识图谱

    万次阅读 2020-01-12 22:51:24
    知识图谱 基本概念 定义 知识图谱是结构化的语义知识库,用于以符号形式描述物理世界中的概念及其相关关系,即是对物理世界的一种符号表示 基本组成单位 实体-关系-实体,实体和相关属性-值对 研究价值 建立...
  • 知识图谱推理

    2019-08-14 17:32:41
    KG上的推理依赖KG的表示。KG的表示目前有两种,一种是符号化的表示,就是把知识表示成RDF三元组形式,即(Subject,Predictor,Object),如(周杰伦,妻子,昆凌)(黄渤,导演作品,一出好戏);另一种是分布式的...
  • 知识图谱知识推理综述(三) 接上一篇文章知识图谱知识推理综述(二) 3 基于表示的知识推理 3.1 方法简述 在之前所介绍的知识推理中,都显示的定义了知识推理所需要的规则,条件等等离散符号。而在基于表示的知识...
  • 知识图谱知识推理综述(一)

    千次阅读 2020-09-04 18:47:18
    知识图谱知识推理综述(一) 1 知识推理的概念以及分类 1.1 知识推理的基本概念 所谓的知识推理,就是在已有知识的基础之上,推断出未知的知识的过程。通过从已知的知识出发,通过已经获取的知识,从中获取到所蕴含...
  • 知识图谱知识推理综述(二) 本文接上一篇博客知识图谱知识推理综述(一) 2 基于传统方法的推理 2.2 基于图结构的推理 2.2.1 引入 在知识图谱中,如果是自下而上的进行构建,那么最终图谱将以一个有向图的形式进行...
  • 知识图谱推理是一个基础问题,在电子商务推荐、生物医学知识图谱药品再利用等领域有着重要的应用。在本教程中,我将全面介绍知识图谱推理的最新进展,包括:(1)知识图谱嵌入的方法(如TransE、TransR和RotatE);(2)传统...
  • 知识图谱推理的几种方式

    万次阅读 2018-07-16 09:44:58
    知识图谱推理的学习链接:知识图谱推理学习
  • 1. 知识推理的分类 归纳推理 归纳推理所推出的结论是没有包含在前提内容中的。 由个别事物推出一般性的知识的过程,是以为增殖新知识的过程。 演绎推理: 在已知领域内的一般性知识的前提下,通过求解一...
  • 基于知识图谱推理的关系推演

    千次阅读 2020-10-15 11:07:15
    对于知识图谱的关注可以分为两个方面:知识图谱的构建和基于...本文主要讲一下基于知识图谱推理的关系推演(或者叫做关系预测),主要包括如下几个方面: 1、知识图谱推理的主要作用; 2、知识图谱推理的基本原理;

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,316
精华内容 3,326
关键字:

知识图谱知识推理