Logic
逻辑理论实际上是一个规范性(normative)的理论,而不是一个描述性的(descriptive)理论。
即,它并不是用来描述人类究竟是采用何种的形式来推理的,而是来研究人类应该如何有效的进行推理的。
经典逻辑:
命题逻辑proposition logic
一阶谓词逻辑first-order predicate logics / FOL
高阶逻辑higher order logics
概率逻辑probability logics
什么是知识表示?
1. 研究如何用形式化的符号系统来表达特定的知识的一个学术分支。
2. 人工智能的一个分支
3. 还研究如何在计算机系统上实现推理过程
Description Logic 描述逻辑
什么是描述逻辑(DL)?
一种基于对象的知识表示的形式化。
建立在概念和关系(Role)之上。
概念:对象的集合
关系:对象之间的二元关系
是一阶逻辑FOL的一个可判定的子集
特点:
1. 具有很强的表达能力
2. 是可判定的,总能保证推理算法终止
------
备受关注的原因:
1. 清晰的模型-理论机制
2. 适合于通过概念分类学来表示应用领域
3. 提供了有用的推理服务
DL的体系结构:
1. 表示概念和关系(Role)的构造集
2. TBox(Terminology Box):描述领域结构的公理集,包含概念定义及公理
##可以理解为对类别的定义
3. ABox(Assertional Box):具体个体的公理集,包含概念断言和关系断言
##可以理解为对个体的定义,以及具体的个体间的关系
4. TBox和ABox上的推理机制:一个基于DL的知识库就是K=TBox+ABox,简写为 KB(T,A) ##KB即Knowledge Base
DL的基本元素:概念和关系
概念:一个领域的子集。如学生、孩子、哺乳动物等概念
{x|Student(x)},{x|Children(x)}
关系(Role):属性,二元关系。如朋友,夫妻
{<x,y>|Friend(x,y)},{<x,y>|Couple(x,y)}
一个例子:图1:

图1
TBox:描述领域结构的公理的集合
1. 引入概念的名称,表示类(一元谓词)
{x|Student(x)}
2. 声明包含关系的公理(属性,二元谓词)
{<x,y>|Friend(x,y)}
(如图1)
一个解释I满足TBox T iff 它满足T中的每个公理(I entails T )
## 这里蕴含符号打不出来,使用 entails 代替
## 逻辑符号表可参见:http://en.wikipedia.org/wiki/Table_of_logic_symbols
ABox:断言部分,是描述具体清晰的公理的结合
1. 概念断言:表示一个对象是否属于某个概念
a:C or C(a)
例如:Student(Tom) 表示Tom是一个学生,也可以用Tom:Student表示
2. 关系断言:表示两个对象是否满足一定的关系
<a,b>:R or R(a,b)
例如:hasChild(John,Mary) 表示John有个孩子叫Mary
一个解释I满足ABox A iff 它满足A中的每个公理,记为 I entails A
## I 被称作一个解释(Interpretation),实质上就是一个模型。
一个解释I满足知识库∑=<T,A> iff 它满足T和A,记为 I entails ∑
语法和语义
(如图2)

图2
DL中的构造算子
一般的,DL根据提供的构造算子,在简单的概念和关系上构造出复杂的概念和关系
DL通常包括以下算子:合取、析取、非、存在量词、全称量词
最基本的DL称为ALC
例如,ALC中概念Happy-father定义为:
(如图3)

图3
DL中的其他算子(如图4)

图4
DL的演变:
实际应用中,不仅要描述概念,还要增强角色的能力。(这里角色 和 属性 是一个概念)
具有传递性的角色常用于构造复合对象。
S:在ALC的基础上允许部分属性具有传递性
H:纳入属性包含公理(如“父子关系”包含于“家长孩子关系”),形成属性(role)分层
I:若S中的属性的逆势封闭的,即存在“逆属性”算子
在SHI的基础上再添加数量限制、函数线约束或定性数量限定,就有了SHIN, SHIF, SHIQ
DL中的推理
一致性consistency
C关于TBox T是Consistent ?
--- 即检测是否有T的模型(解释)I使得C不等于空集。
知识库KB<T,A>是consistent?
--- 即检测是否有<T,A>的模型(解释)I。
可满足性 satisfiability
检验一个概念的可满足性,实际就是看是否有解释使得这个概念成立。
例如:Male ∩ Female
即检测是否存在这样的个体既是男的,又是女的。若存在,则可满足,若不存在,不可满足
## see detail in:http://wenku.baidu.com/view/27ff9086bceb19e8b8f6ba2f.html%20-%20## 
## start from PPT-23
包含检测 subsumption
实例检测 instance checking
Tableaux算法
可判定性
计算复杂性

+++++++++++++++++++++++++++++++++++++++++++++++++

其他关于一阶逻辑的介绍见以下链接。

https://wenku.baidu.com/view/966e2cdb6f1aff00bed51e79.html

描述逻辑(DL)基础知识的更多相关文章

  1. DL一(ML基础知识)

    基础知识ML 在进行深度学习前,根据学习网站的建议,首先学习机器学习的基础课程,学习资料主要是Andrew讲的ShortVideo,网址:http://openclassroom.stanford.e ...

  2. Windows内核基础知识-2-段描述符

    Windows内核基础知识-2-段描述符 比如: ES 002B 0(FFFFFFFF) 意思就是es段寄存器,段选择子/段选择符 为002B, 起始地址base为0, 限制范围Limit地址最大能寻 ...

  3. 逻辑回归Logistic Regression 之基础知识准备

    0. 前言   这学期 Pattern Recognition 课程的 project 之一是手写数字识别,之二是做一个网站验证码的识别(鸭梨不小哇).面包要一口一口吃,先尝试把模式识别的经典问题—— ...

  4. C#基础知识汇总(不断更新中)

    ------------------------------目录---------------------------- 1.隐式类型2.匿名类型3.自动属性4.初始化器5.委托6.泛型7.泛型委托8 ...

  5. RabbitMQ基础知识

    RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...

  6. TCP/IP协议(一)网络基础知识

    参考书籍为<图解tcp/ip>-第五版.这篇随笔,主要内容还是TCP/IP所必备的基础知识,包括计算机与网络发展的历史及标准化过程(简述).OSI参考模型.网络概念的本质.网络构建的设备等 ...

  7. Oracle数据库基础知识

    oracle数据库plsql developer   目录(?)[-] 一     SQL基础知识 创建删除数据库 创建删除修改表 添加修改删除列 oracle cascade用法 添加删除约束主键外 ...

  8. HTML基础知识

    一个完美的web前端攻城狮,所具备的专业素养有:HTML5.XHTML.CSS3.JavaScript.JQuery.PS.PHP等.所以说,我要学的东西还有很多... 没别得,我也是一个H5的初学者 ...

  9. HTML基础知识总结

    经过这段时间的学习,对于html的一些基础知识有了一定的了解.所谓好记性不如烂笔头,唯有一点点累积,才能汇聚成知识的海洋.现在,我对这段时间的学习做一个总结. 一.HTML的定义 HTML,超文本标记 ...

随机推荐

  1. Node.js使用jszip实现打包zip压缩包

    一.前言 最近有这样的一个需求,需要把两个同名的.mtl文件和.obj文件打包成一个同名的.zip压缩包.刚开始文件不多的时候,只有几个,或者十几个,甚至二三十个的时候,还能勉强接受手动修改,但是随着 ...

  2. scikit-learn 决策树 分类问题

    1.Demo from sklearn import tree import pydotplus import numpy as np #李航p59表数据 #年龄,有工作,有自己房子,信贷情况,类别 ...

  3. 斜率优化dp 的简单入门

    不想写什么详细的讲解了...而且也觉得自己很难写过某大佬(大米饼),于是建议把他的 blog 先看一遍,然后自己加了几道题目以及解析...顺便建议看看算法竞赛(蓝皮书)的 0x5A 斜率优化(P294 ...

  4. orm总结

    x先谈谈java方面的. mybatis优点是基本啥都有了,sql统一管理,只需接口就可以了,缺点是对于复杂语句的执行还是麻烦,一般还是在程序里解决,自带的动态sql功能较弱不说,重点是调式时还是麻烦 ...

  5. js中split 正则表示式 (/[,+]/)

    定义和用法 split() 方法用于把一个字符串分割成字符串数组. 语法 stringObject.split(separator,howmany) separator 作为分隔符,separator ...

  6. Node中包的加载机制

      1.Node原生提供的核心模块:http.fs.os.path.url.querystring,Node在加载核心模块时,不需要传入路径,因为Node.js已经将核心模块的文件代码编译到了二进制的 ...

  7. 关于 win10 系统中 Anaconda3 中修改 Jupyter Notebook 默认启动目录

    目标: 修改Anaconda3中自带的Jupyter Notebook默认启动目录. 步骤:     1.提前创建好你想要启动位置文件夹.     2.寻找配置文件,"jupyter_not ...

  8. [慢更]Sublime Text 快捷键及使用过的插件

    整理自己常用的sublime text命令和插件 1.pretty json Json 快速格式化,免去url访问json站点的烦恼. 摘自:https://segmentfault.com/a/11 ...

  9. codeforces 502 g The Tree

    题解: 一道优秀的题目 有几种做法: 1.维护后缀和 刚开始我想的是维护前缀和 然后用$sum[x]-sum[y]>=dep[x]-dep[y]$来做 但是这样子树赋值为0这个操作就很难进行了 ...

  10. Redis数据结构之intset

    本文及后续文章,Redis版本均是v3.2.8 上篇文章<Redis数据结构之robj>,我们说到redis object数据结构,其有5中数据类型:OBJ_STRING,OBJ_LIST ...